软件工程(第3版第8章 人民邮电出版社
第8章 面向对象设计 从面向对象分析到面向对象设计(通常缩写为OOD),是一个逐渐扩充模型的过程。或者说,面向对象设计就是用面向对象观点建立求解域模型的过程。 尽管分析和设计的定义有明显区别,但是在实际的软件开发过程中二者的界限是模糊的。许多分析结果可以直接映射成设计结果,而在设计过程中又往往会加深和补充对系统需求的理解,从而进一步完善分析结果。因此,分析和设计活动是一个多次反复迭代的过程。 8.1 面向对象设计的准则 所谓优秀设计,就是权衡了各种因素,从而使得系统在其整个生命周期中的总开销最小的设 计。 8.1.1 模块化 对象就是模块。它是把数据结构和操作这些数据的方法紧密地结合在一起所构成的模块。 8.1.2 抽象 面向对象方法不仅支持过程抽象,而且支持数据抽象。类实际上是一种抽象数据类型,某些面向对象的程序设计语言还支持参数化抽象。 8.1.3 信息隐藏 在面向对象方法中,信息隐藏通过对象的封装性实现: 8.1.4 弱耦合 耦合主要指不同对象之间相互关联的紧密程度。一般来说,对象之间的耦合可分为两大类,下面分别讨论这两类耦合。 1.交互耦合 如果对象之间的耦合通过消息连接来实现,则这种耦合就是交互耦合。为使交互耦合尽可能松散,应该遵守下述准则。 · 尽量降低消息连接的复杂程度。 · 减少对象发送(或接收)的消息数。 2.继承耦合 与交互耦合相反,应该提高继承耦合程度。为获得紧密的继承耦合,特殊类应该确实是对它的一般化类的一种具体化, 8.1.5 强内聚 1.服务内聚 一个服务应该完成一个且仅完成一个功能。 2.类内聚 设计类的原则是,一个类应该只有一个用途,它的属性和服务应该是高内聚的。 3.一般—特殊内聚 设计出的一般—特殊结构,应该符合多数人的概念,更准确地说,这种结构应该是对相应的领域知识的正确抽取。 8.1.6 可重用 一是尽量使用已有的类(包括开发环境提供的类库,及以往开发类似系统时创建的类),二是如果确实需要创建新类,则在设计这些新类的协议时,应该考虑将来的可重复使用性。 8.2 启发规则 8.2.1 设计结果应该清晰易懂 使设计结果清晰、易读、易懂,是提高软件可维护性和可重用性的重要措施。显然,人们不会重用那些他们不理解的设计。保证设计结果清晰易懂的主要因素如下。 1. 用词一致 2. 使用已有的协议 3. 减少消息模式的数目 4. 避免模糊的定义 8.2.2 一般—特殊结构的深度应适当 应该使类等级中包含的层次数适当。 8.2.3 设计简单的类 应该尽量设计小而简单的类,以便于开发和管理。 1. 避免包含过多的属性 2. 有明确的定义 3. 尽量简化对象之间的合作关系 4. 不要提供太多服务 8.2.4 使用简单的协议 一般来说,消息中的参数不要超过3个。 8.2.5 使用简单的服务 面向对象设计出来的类中的服务通常都很小,一般只有3~5行源程序语句,可以用仅含一个动词和一个宾语的简单句子描述它的功能。 8.2.6 把设计变动减至最小 通常,设计的质量越高,设计结果保持不变的时间也越长。 8.3 系统分解 大多数系统的面向对象设计模型,在逻辑上都由四大部分组成。这四大部分对应于组成目标系统的四个子系统,它们分别是问题域子系统,人-机交互子系统、任务管理子系统和数据管理子系统。 当然,在不同的软件系统中,这四个子系统的重要程度和规模可能相差很大,规模过大的在设计过程中应该进一步划分成更小的子系统,规模过小的可合并在其他子系统中。某些领域的应用系统在逻辑上可能仅由3个(甚至少于3个)子系统组成。 8.3.1 子系统之间的两种交互方式 在软件系统中,子系统之间的交互有两种可能的方式,分别是客户—供应商(Client_supplier)关系和平等伙伴(peer_to_peer)关系。 1. 客户—供应商关系 2. 平等伙伴关系 总的说来,单向交互比双向交互更容易理解,也更容易设计和修改,因此应该尽量使用客户—供应商关系。 8.3.2 组织系
您可能关注的文档
- 课后练习和思考1.ppt
- 课堂实录:《夸父日》(周益民).doc
- 课堂小结虽然是课堂教学中一个微不足道地环节.doc
- 课堂教学要面向全体学生地有效措施.doc
- 课外文言文50(冕僧寺夜读).doc
- 课标内容要求()了解梭伦改革前雅典的社会状况,认识梭.ppt
- 课程与教学地关系.ppt
- 课程学习地基本要求.ppt
- 课程标准了解重农商海禁等政策及其影响,分析.ppt
- 课程表教师王玲玲9.doc
- (正式版)DB51∕T 1867-2014 《袋栽黑木耳生产技术规程》.docx
- (正式版)DB51∕T 2413-2023 《油橄榄密植丰产栽培技术规程》.docx
- (正式版)DB51∕T 2436-2017 《川菜东坡一品肉烹饪工艺技术规范》.docx
- (正式版)DB51∕T 2396-2017 《农村电子商务服务站(点)服务与管理规范》.docx
- (正式版)DB51∕T 2419-2017 《桢楠扦插育苗技术规程》.docx
- CN105145773B 一种无花果曲奇饼干及其制作方法 (江苏农林职业技术学院).docx
- CN105203825A 微测量电极的制作方法和热电势的测量方法及相关装置 (国家纳米科学中心).docx
- CN105137533B 一种啁啾光纤光栅及其制作方法 (南京航空航天大学).docx
- (正式版)DB51∕T 2453-2018 《巴山新居公共管理指南》.docx
- (正式版)DB51∕T 1892-2014 《川西北地区沙化土地治理技术规程》.docx
原创力文档

文档评论(0)