OOAD - 面向对象分析

在软件开发的系统分析或面向对象分析阶段,确定系统需求,识别类并识别类之间的关系。

在面向对象分析中相互结合使用的三种分析技术是对象建模、动态建模和功能建模。

对象建模

对象建模根据对象开发软件系统的静态结构。 它标识对象、对象可以分组到的类以及对象之间的关系。 它还标识了每个类的主要属性和操作。

对象建模的过程可以通过以下步骤进行可视化 −

  • 识别对象并分组
  • 识别类之间的关系
  • 创建用户对象模型图
  • 定义用户对象属性
  • 定义应对类执行的操作
  • 查看术语表

动态建模

分析系统的静态行为后,需要检查其相对于时间和外部变化的行为。 这就是动态建模的目的。

动态建模可以定义为"一种描述单个对象如何响应事件的方法,无论是由其他对象触发的内部事件,还是由外部世界触发的外部事件"。

动态建模的过程可以通过以下步骤进行可视化 −

  • 识别每个对象的状态
  • 识别事件并分析操作的适用性
  • 构建动态模型图,包括状态转换图
  • 用对象属性来表达每种状态
  • 验证绘制的状态转换图

功能建模

功能建模是面向对象分析的最后一个组成部分。 功能模型显示了对象内执行的过程以及数据在方法之间移动时如何变化。 它规定了对象建模操作的含义和动态建模的动作。 该功能模型对应于传统结构化分析的数据流图。

功能建模的过程可以通过以下步骤进行可视化 −

  • 识别所有输入和输出
  • 构建显示功能依赖关系的数据流程图
  • 说明每个函数的用途
  • 确定限制因素
  • 指定优化标准

结构化分析与面向对象分析

结构化分析/结构化设计(SASD)方法是基于瀑布模型的传统软件开发方法。 使用 SASD 的系统开发的阶段是 −

  • 可行性研究
  • 需求分析和规范
  • 系统设计
  • 实施
  • 实施后审核

现在,我们将看看结构化分析方法和面向对象分析方法的相对优缺点。

面向对象分析的优点/缺点

优点 缺点
关注数据而不是结构化分析中的过程。 功能仅限于对象内。 这可能会给本质上是程序性或计算性的系统带来问题。
封装和数据隐藏的原则可以帮助开发人员开发出不能被系统其他部分篡改的系统。 它无法识别哪些对象会生成最佳系统设计。
封装和数据隐藏的原则可以帮助开发人员开发出不能被系统其他部分篡改的系统。 面向对象的模型不容易显示系统中对象之间的通信。
它可以通过模块化来有效管理软件复杂性。 对象之间的所有接口无法在单个图表中表示。
与遵循结构化分析的系统相比,它可以更轻松地从小系统升级到大型系统。

结构化分析的优点/缺点

优点 缺点
由于它遵循自上而下的方法,而不是面向对象分析的自下而上的方法,因此它比 OOA 更容易理解。 在传统的结构化分析模型中,一个阶段应该在下一阶段之前完成。 这会给设计带来问题,特别是在出现错误或需求发生变化的情况下。
它基于功能。 确定总体目的,然后进行功能分解以开发软件。 重点不仅可以更好地理解系统,而且可以生成更完整的系统。 构建系统的初始成本很高,因为整个系统需要立即设计,留下很少的选择来稍后添加功能。
其中的规范是用简单的英语编写的,因此非技术人员更容易分析。 它不支持代码的可重用性。 因此,开发时间和成本本来就很高。