好文档 - 专业文书写作范文服务资料分享网站

第10章面向对象分析全解

天下 分享 时间: 加入收藏 我要投稿 点赞

6

软件工程导论(第五版)

(1) 应该记录的对象 (2) 需要它提供服务的对象

同时要关注下述6个方面:

1) 冗余: 去掉冗余的类(如“用户”) 2) 无关: 去掉无关的类(如“储蓄所”) 3) 笼统: 去掉笼统的类(如“银行”)

4) 属性: 区分属性和类(某个性质若具有很强的独立性应当作为“类”)

5) 操作: 区分操作和类(本身具有属性且需独立存在的“操作”应当作为“类”)

6) 实现: 忽忽略略实实现现内内容容(应当去掉仅和实现有关的“类”,如“事务日志”)

10.3.2确定关联

对象之间的相互依赖、相互作用的关系就是关联。在分析的起始阶段,我们不必花过多的精力去区分关联和聚集,聚集不过是一种特殊的关联,是关联的一个特例。

1. 初步确定关联

软件工程导论(第五版)

7

通过分析动词词组我们可以得出大多数关联(例:P238 ATM系统) 2. 筛选

筛选时要关注下述5个方面:

1)已删去的类之间的关联也要删除 2)无关的或在在实实现现阶阶段段考考虑虑的的关关联联要要删删除除 3)描述瞬时事件的关系不应作为关联(关联应该描述问题域的静态结构)

4)三个或三个以上对象的关联要作分解或描述成限定关联

5)冗余关联要删除

3. 进一步完善

完善时要关注下述4个方面:

1)正名:选择更明确的名字作为关联名 2)分解:分解已确定的类以适用关联 3)补充:及时补充遗漏关联 4)标明重数:但无需花过多精力

8

软件工程导论(第五版)

图10.3ATM系统原始的类图

10.3.3划分主题

按问题领域而不是用功能分解来高度概括主题 10.3.4确定属性

属性是类中所定义的数据,它表明了对象的性质。 一般来说,确定属性的过程包括分析和选择两个步骤: 1. 分析

通常用名词词组表示属性,如:“汽车的颜色”、“光标的位置”,而用形容词表示可枚举的具体属性,如:“红色的”、“白色的”。

软件工程导论(第五版)

9

在分析阶段应该仅考虑与具体应用直接相关的属性,而不不要要考考虑虑那那些些纯纯粹粹用用于于实实现现的的属属性性。。 2. 选择

选择时要关注下述6个方面:

1) 区分对象与属性(仅关注其值的是属性); 2) 区分关联类属性与对象属性(例:依赖某个关联链的性质是关联类属性);

3) 区分限定词和属性(能用限定词更好) 4) 区分内部状态和属性(例:某性质是对象的内部状态)

5) 忽略无影响的属性(在分析阶段应该忽略对大多数操作无影响的属性)

6) 注意属性的相关性(分解该“类”)

10

软件工程导论(第五版)

图10.4ATM系统对象模型中的属性

10.3.5识别继承关系

确定了类中的属性之后,就可以利用继承机制共享公共性质,并对众多的类重新加以组织。

一般来说,可以应用两种方式建立继承(即泛化)关系: (1) 自底向上:抽象出现有类的共同性质泛化出父

6wpue2oem86i8ss1c8w102tjb2ixwe014lc
领取福利

微信扫码领取福利

微信扫码分享