OOAD - 面向对象范式
简史
面向对象范式的形成源于一种新的编程方法的最初概念,而对设计和分析方法的兴趣则要晚得多。
第一个面向对象的语言是 Simula(真实系统的模拟),由挪威计算中心的研究人员于 1960 年开发。
1970 年,Alan Kay 和他在 Xerox PARK 的研究小组创建了一台名为 Dynabook 的个人计算机和第一个纯面向对象编程语言 (OOPL) - Smalltalk,用于对 Dynabook 进行编程。
20世纪80年代,Grady Booch发表了一篇题为"面向对象设计"的论文,主要介绍了编程语言Ada的设计。 在随后的版本中,他将自己的想法扩展为完整的面向对象的设计方法。
在 20 世纪 90 年代,Coad 将行为思想融入到面向对象的方法中。
其他重大创新是 James Rumbaugh 的对象建模技术 (OMT) 和 Ivar Jacobson 的面向对象软件工程 (OOSE)。
面向对象分析
面向对象分析(OOA)是根据软件系统的对象模型(由交互对象组成)来识别软件工程需求和开发软件规范的过程。
面向对象分析与其他形式的分析之间的主要区别在于,在面向对象方法中,需求是围绕对象组织的,对象集成了数据和功能。 它们是根据系统与之交互的现实世界对象建模的。 传统的分析方法中,功能和数据两个方面是分开考虑的。
Grady Booch 将 OOA 定义为:"面向对象分析是一种从问题域词汇中找到的类和对象的角度检查需求的分析方法"。 p>
面向对象分析 (OOA) 的主要任务是 −
- 识别对象
- 通过创建对象模型图来组织对象
- 定义对象的内部结构或对象属性
- 定义对象的行为,即对象动作
- 描述对象如何交互
OOA 中使用的常见模型是用例和对象模型。
面向对象设计
面向对象设计(OOD)涉及在面向对象分析过程中生成的概念模型的实现。在 OOD 中,分析模型中独立于技术的概念被映射到实现类,识别约束并设计接口,产生解决方案领域的模型,即如何在具体技术上构建系统的详细描述。
实现细节一般包括 −
- 重构类数据(如有必要),
- 方法的实现,即内部数据结构和算法,
- 实施控制,以及
- 实施关联。
Grady Booch 将面向对象设计定义为"一种包含面向对象分解过程的设计方法以及用于描述所设计系统的逻辑和物理以及静态和动态模型的符号" 。
面向对象编程
面向对象编程 (OOP) 是一种基于对象(具有数据和方法)的编程范式,旨在结合模块化和可重用性的优点。 对象通常是类的实例,用于相互交互以设计应用程序和计算机程序。
面向对象编程的重要特征是 −
- 程序设计中的自下而上方法
- 程序围绕对象组织,按类分组
- 通过对对象数据进行操作的方法来关注数据
- 对象之间通过函数进行交互
- 通过向现有类添加功能来创建新类,实现设计的可重用性
面向对象编程语言的一些示例包括 C++、Java、Smalltalk、Delphi、C#、Perl、Python、Ruby 和 PHP。
Grady Booch 将面向对象编程定义为"一种实现方法,其中程序被组织为对象的协作集合,每个对象代表某个类的一个实例,并且其类都是通过继承关系联合起来的类层次结构的成员"。