(第三部分:面向对象分析与设计方法,第6章)
Created: 2022-05-10 Tue 23:57
第三部分:面向对象分析与设计方法
第6章:面向对象分析
现实世界中的事物 与 系统的关系 包括以下几种情况:
Figure 1: 系统的参与者与系统边界
面向对象分析模型由3种独立的模型构成:
建立用例模型的目的是提取和分析足够的需求信息。 用例模型应能表述用户需要什么,而不涉及系统如何构造和实现的特定细节。
创建用例模型的过程如下:
【例6.1】选课系统的主要功能是给教师分配课程和学生注册课程。其需求描述如下:
Figure 2: 选课系统的环境图
可以从以下几个方面来获取用例。
Figure 3: 将场景抽象为用例
用例图(Use Case Diagram) 是若干个 参与者 和 用例 以及它们间的 关系 构成的图形表示。
Figure 4: 选课系统的总体用例图
用例建模往往不是一次就能完成的,需要多次迭代、逐步完善。
建立对象模型的5项主要活动:
Figure 5: 对象模型的5个层次
对于选课系统,可以划分以下主题:
系统分析员的主要任务就是根据需求规格说明和用例模型确定问题的类与对象。
类与对象是对问题域中有意义的事物的抽象, 它们既可能是可见的物理实体,也可能是抽象的概念。
可以将客观事物分为以下5类:
筛选时主要依据下列标准来删除不正确或不必要的类或对象:
在类分析时首先从问题域的实体类入手, 如果在建立对象模型时区分实体类、边界类和控制类,将有助于理解系统。
Figure 6: 分析对象模型中的对象
Figure 7: 自上而下地从一般类发现特殊类
Figure 8: 自下而上地从特殊类抽取出一般类
类之间最普遍存在的关系不是泛化(继承)关系,而是关联关系。 关联关系表示的是两个或多个类的实例之间的连接关系。
以下策略用于指导确定关联关系:
以下策略用于指导确定属性:
对象收到消息后所能执行的操作称为它可提供的服务。 在确定每个对象中必须封装的服务时要注意以下两种服务:
Figure 9: 具有5个包的主视图
Figure 10: 类的分视图
Figure 11: 增加类之间的关联关系
Figure 12: 增加关联数量
Figure 13: 增加了聚合关系的类图
Figure 14: 增加了关联类的类图
Figure 15: 增加了泛化关系的类图
Figure 16: Register for a course用例的顺序图
Figure 17: 通信图
Figure 18: CourseTask类对象的状态图