OOAD - 面向对象范式



简史

面向对象范式起源于一种新的编程方法的初始概念,而对设计和分析方法的兴趣则出现在后期。

  • 第一种面向对象语言是 Simula(真实系统的仿真),由挪威计算中心的科研人员于 1960 年开发。

  • 1970 年,艾伦·凯和他在施乐帕洛阿尔托研究中心的研究小组创建了一台名为 Dynabook 的个人电脑,以及第一种纯面向对象编程语言 (OOPL) - Smalltalk,用于为 Dynabook 编程。

  • 在 1980 年代,Grady Booch 发表了一篇题为“面向对象设计”的论文,主要介绍了一种编程语言 Ada 的设计。在随后的版本中,他将自己的想法扩展到了一种完整的面向对象设计方法。

  • 在 1990 年代,Coad 将行为思想融入到面向对象方法中。

其他重要的创新包括 James Rumbaugh 的对象建模技术 (OMT) 和 Ivar Jacobson 的面向对象软件工程 (OOSE)。

面向对象分析

面向对象分析 (OOA) 是识别软件工程需求并根据软件系统的对象模型开发软件规范的过程,该模型包含相互交互的对象。

面向对象分析与其他形式的分析之间的主要区别在于,在面向对象的方法中,需求围绕对象组织,对象集成了数据和函数。它们以系统与其交互的现实世界对象为模型。在传统的分析方法中,这两个方面——函数和数据——被分别考虑。

Grady Booch 将 OOA 定义为:“面向对象分析是一种分析方法,它从问题域词汇中发现的类和对象的视角来检查需求”。

面向对象分析 (OOA) 中的主要任务包括:

  • 识别对象
  • 通过创建对象模型图来组织对象
  • 定义对象的内部结构,或对象属性
  • 定义对象的行为,即对象操作
  • 描述对象如何交互

OOA 中常用的模型包括用例和对象模型。

面向对象设计

面向对象设计 (OOD) 涉及实现面向对象分析期间产生的概念模型。在 OOD 中,分析模型中的概念(与技术无关)被映射到实现类,识别约束并设计接口,从而产生一个解决方案域模型,即关于如何在具体技术上构建系统的详细描述。

实现细节通常包括:

  • 重构类数据(如有必要),
  • 实现方法,即内部数据结构和算法,
  • 实现控制,以及
  • 实现关联。

Grady Booch 将面向对象设计定义为:“一种设计方法,包含面向对象分解的过程以及描述正在设计的系统的逻辑和物理以及静态和动态模型的符号”。

面向对象编程

面向对象编程 (OOP) 是一种基于对象的编程范式(同时具有数据和方法),旨在结合模块化和可重用性的优势。对象(通常是类的实例)用于相互交互以设计应用程序和计算机程序。

面向对象编程的重要特性包括:

  • 程序设计自底向上方法
  • 程序围绕对象组织,分组到类中
  • 关注数据以及操作对象数据的方法
  • 对象通过函数进行交互
  • 通过创建新类并向现有类添加特性来实现设计可重用性

面向对象编程语言的一些示例包括 C++、Java、Smalltalk、Delphi、C#、Perl、Python、Ruby 和 PHP。

Grady Booch 将面向对象编程定义为:“一种实现方法,其中程序被组织成协作的对象集合,每个对象都代表某个类的实例,并且所有类都是通过继承关系联合起来的类层次结构的成员”。

广告