第8章 面向对象的分析和设计(2)
发布时间:2024-08-27
发布时间:2024-08-27
第6章 面向对象的分析和设计
2/69
第8章 面向对象的分析和设计8.1 面向对象的分析和设计过程 8.2 面向对象设计原则
8.3 用例建模 8.4 静态建模 8.5 动态建模8.6 物理体系结构建模
3/69
8.4 静态建模所谓静态建模是指对象之间通过属性互相联系, 而这些关系不随时间而转移。 类和对象的建模,是UML建模的基础。系统中的类 和对象模型描述了系统的静态结构,在UML中用类图和 对象图来表示。 UML的静态建模机制包括:用例图(Use case diagram)、类图(Class diagram)、对象图(Object diagram)、包图(Package diagram)、构件图 (Component diagram)、配臵图(Deployment diagram)。
4/69
类图由系统中使用的类以及它们之间的关系组成。 类之间的关系有关联、依赖、泛化、实现等。类图是 一种静态模型,它是其它图的基础。一个系统可以有 多张类图,一个类也可出现在几张类图中。对象图是类图的一个实例,它描述某一时刻类图 中类的特定实例以及这些实例之间的特定链接。对象 图使用了与类图相同的符号,只是在对象名下附加下 划线,对象名后可接以冒号和类名,即
object-name:class-name
5/69
类名属性名 :类型 操作
关联
聚集 组合泛化
对象名 :类名 属性名 = 值
依赖 实现
操作
类图和对象图line X1:real Y1:real X2:real Y2:real 2..* 相交 0..* point X: real Y: real L1: line X1=10 Y1=10 X2= -10 Y2= -10 P1:point X=0 类图 L2: line Y=0
6/69
yL2 L1
X1= -10
Y1=10X2=10 Y2= -10 L4 L3 P2 L3: line X1=10 P1
x
Y1= 5 X2= -10 Y2= -5 P2:point X=9 Y=4。5
L4: line
实例
X1=9 Y1=5 X2=9 Y2=3
对象图
7/69
确定类1. 标识类类 — 责 任 — 协 作 者 ( class—responsibility — collaborator,简称CRC)技术来完成类的定义。 CRC是一组表示类的索引卡片,每张卡片分成三 部分,它们分别描述类名、类的责任和类的协作者。 责任是用来描述类的属性和操作,协作者描述为完成 该责任而提供信息的其他相关的类。类名: 责任: 协作者:
8/69
确定和标识类包括发现潜在对象、筛选对象、为 对象分类,最后将同类型的对象抽象为类。 (1) 标识潜在的对象类通常陈述中的名词或名词短语是可能的潜在对象,它 们以不同的形式展示出来,如: 与系统交互的角色:管理者、工程师、销售; 系统的工作环境场所:车间、办公室; 概念实体、发生的事情或事件:报告、信息显示、信 函、信号; 部门、设备:班组、学校、汽车、计算机。 与系统有关的外部实体:其他系统、设备、人员等生 产或消费计算机系统所使用的信息。
9/69
(2)筛选对象类,确定最终对象类可以用以下选择特征来确定最终的对象:⑴关键性:缺少这个对象信息,系统就不能;
⑵可操作性:潜在对象必须拥有一组可标识的操作, 它们可以按某种方式修改对象属性的值; ⑶信息含量:选择信息量较大的对象确定为最终对象, 只有一个属性的对象可以与其他同类对象合并为一个 对象; ⑷公共属性:可以为潜在的对象定义一组属性,这些 属性适用于该类的所有实例;
10/69
⑸公共操作:可以为潜在的对象定义一组操作, 这些操作适用于该类的所有实例; ⑹关键外部信息:问题空间中的外部实体和系统 必需生产或消费信息。
11/69
对象和类还可以按以下特征进行分类:⑴确切性:类表示了确切的事物(如键盘或传感器),还 是表示了抽象的信息(如,预期的输出); ⑵包含性:类是原子的(即不包含任何其它类),还是聚 合的(至少包含一个嵌套对象); ⑶顺序性:类是并发的(即拥有自己的控制线程),还是 顺序的(被外部的资源控制); ⑷完整性:类是易被侵害的(即,它不防卫其资源受外界 的影响),还是受保护的(该类强制控制对其资源的访问)。
12/69
⑸持久性:类是短暂的(即它在程序运行期间被创建和 删除)、临时的(它在程序运行期间被创建,程序终止时 被删除)、还是永久的(它存放在数据库中)。 基于上述分类,CRC卡的内容可以扩充,以包含 类的类型和特征。类名: 类的类型:(如:设备,角色,场所,……) 类的特征:(如:确切的,原子的,并发的,……) 责任: 协作者:
13/69
2. 标识责任责任是与类相关的属性和操作。
⑴ 标识属性属性表示类的稳定特征,即为了完成客户规定的目 标所必须保存的类的信息,一般可以从问题陈述中提取 出或通过对类的理解而辨识出属性。
⑵ 定义操作操作定义了对象的行为并以某种方式修改对象的属 性值。操作可以通过对系统的过程叙述的分析提取出来, 通常叙述中的动词可作为候选的操作。类所选择的每个 操作展示了类的某种行为。
14/69
3.标识协作者一个类可以用它自己的操作去操纵它自己的属性, 从而完成某一特定的责任,一个类也可和其它类协作来 完成某个责任。如果一个对象为了完成某个责任需要向 其它对象发送消息,则我们说该对象和另一对象协作。 协作实际上标识了类间的关系。为帮助标识协作者,可以检索类间的类属关系。如 果两个类具有整体与部分关系(一个对象是另一个对象 的一部分),或者一个类必须从另一个类获取信息,或 者一个类依赖于(depends-upon)另一个类,则它们间 往往有协作关系。
15/69
4. 复审CRC卡在填好所有CRC卡后,应对它进行复审。复审应 由客户和软件分析员参加,复审方法如下: ⑴参加复审的人
,每人拿CRC卡片的一个子集。 注意,有协作关系的卡片要分开,即,没有一个人持 有两张有协作关系的卡片。 ⑵ 将所有用例/场景分类。
⑶ 复审负责人仔细阅读用例,当读到一个命名的 对象时,将令牌(token)传送给持有对应类的卡片的 人员。
16/69
⑷ 收到令牌的类卡片持有者要描述卡片上记录的 责任,复审小组将确定该类的一个或多个责任是否满 足用例的需求。当某个责任需要协作时,将令牌传给 协作者,并重复⑷。 ⑸如果卡片上的责任和协作不能适应用例,则需 对卡片进行修改,这可能导致定义新的类,或在现有 的卡片上刻画新的或修正的责任及协作者。
这种做法持续至所有的用例都完成为止。
下一篇:2006年浙江省预赛试题