- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第11章 面向对象设计;面向对象设计
设计则是把分析阶段得到的需求转变成符合成本和质量要求的、抽象的系统实现方案的过程。
从面向对象分析到面向对象设计(OOD),是一个逐渐扩充模型的过程。
许多分析结果可以直接映射成设计结果,而在设计过程中又往往会加深和补充对系统需求的理解,从而进一步完善分析结果。
面向对象方法的一大优势就是分析和设计活动之间的平滑(无缝)过渡。
;优秀设计就是使得系统在其整个生命周期中的总开销最小的设计, 其主要特点就是容易维护。
结合面向对象方法的特点, 下面重温本书第5章讲述的指导软件设计的几条基本原理。 它们在进行面向对象设计时仍然成立。;1. 模块化
面向对象软件开发模式,很自然地支持模块的设计原理:对象就是模块。
2. 抽象
面向对象方法支持过程和数据抽象。
类是一种抽象数据类型。使用者无须知道类中数据元素的具体表示方法,就可以通过接口使用类中定义的数据。
这类抽象称为规格说明抽象。
3. 信息隐藏
对象的封装性实现支持了信息隐藏。
;4. 弱耦合
耦合主要指不同对象之间相互关联的紧密程度。
两个对象应该通过类的接口实现耦合,而不应该依赖于类的具体实现细节。
对象之间的两类耦合:
(1) 交互耦合:交换消息
使交互耦合尽可能松散的准则:减少消息中包含的参数个数,降低参数的复杂程度, 减少消息数。
(2) 继承耦合:
与交互耦合相反,应该提高继承耦合程度。通过继承关系结合起来的基类和派生类,构成了更大的模块。
;5. 强内聚
在面向对象设计中存在下述3种内聚。
(1) 服务内聚。一个服务应该完成一个且仅完成一个功能。
(2) 类内聚。设计类的原则是,一个类应该只有一个用途,它的属性和服务应该是高内聚的。类的属性和服务应该全都是完成该类对象的任务所必需的。如果某个类有多个用途,通常应该把它分解成多个专用的类。
(3) 一般-特殊(继承)内聚。设计出的一般-特殊结构,应该符合多数人的概念,更准确地说,这种结构应该是对相应的领域知识的正确抽取。
紧密的继承耦合与高度的一般-特殊内聚是一致的。
;6. 可重用
重用有两方面的含义:
一是尽量使用已有的类。
二是在设计新类的协议时考虑将来的可重用性。;1. 设计结果应该清晰易懂
保证设计结果清晰易懂的主要因素如下:
(1) 用词一致:一词一用。
(2) 使用已有的协议。
(3) 减少消息模式的数目。
(4) 避免模糊的定义:类的用途有限,名清晰
;
2. 一般-特殊结构的深度应适当
一个中等规模(大约包含100个类)的系统中,类等级层次数应保持为7±2。
不应该仅仅从方便编码的角度出发随意创建派生类,应该使一般-特殊结构与领域知识或常识保持一致。;3. 设计简单的类
小而简单的类便于开发和管理(高内聚)。为使类保持简单,应该注意以下几点。
(1) 避免包含过多的属性:完成的功能可能太多了。
(2) 有明确的定义:任务应该简单。
(3) 简化对象之间的合作关系:如果需要多个对象协同配合才能做好一件事,则破坏了类的简明性和清晰性。
(4) 不要提供太多服务:典型地,一个类提供的公共服务不超过7个。
;4. 使用简单的协议
消息中的参数最好不要超过3个。
复杂消息导致对象紧耦合。
5. 使用简单的服务(模块复杂性)
类中的服务小为好,3~5行源程序语句,可用一个简单句子描述它的功能。
;6. 把设计变动减至最小(稳定性)
设计的质量越高,设计结果越稳定。
随着时间推移,设计方案日趋成熟,改动越来越小。;1. 重用
重用也叫再用或复用,是指同一事物不作修改或稍加改动就多次重复使用。软件重用可分为3个层次:
(1) 知识重用(例如,软件工程知识的重用)。
(2) 方法和标准的重用(例如,面向对象方法或国家制定的软件开发规范的重用)。
(3) 软件成分的重用。
;2. 软件成分的重用级别
软件成分的重用的3个级别:
(1)几种形式的代码重用
源代码剪贴:几乎无法跟踪原始代码块的修改
源代码包含#include :重新编译都用最新源代码
继承:可扩充或修改库中的类而不影响原有的代码
(2) 设计结果重用
重用某个软件系统的设计模型。
(3) 分析结果重用
重用分析模型, 例如,把一个应用系统移植到完全不同的软硬件平台上。
;3. 10种典型的可重用软件成分
(1) 项目计划:软件质量保证计划。
(2) 成本估计:不同项目中类似功能的成本估算。
(3) 体系结构:事务类处理体系结构。
(4) 需求模型/规格说明:对象模型,数据流图。
(5) 设计:体系结构、数据、接口和过程设计。
(6) 源代码:兼容的程序构件。
(7) 用户文档和技术文档:部分重用。
(8) 用户界面:GUI 可占应用程序的60%代码量。
(9) 数据: 记录结构,文件和完整的数据库。
(10
您可能关注的文档
- 第4章GrADS各类参数设置.ppt
- 第6章模式分解.ppt
- 第8讲函数变量存储类.ppt
- 第10章面向对象分析OOA.ppt
- 第二章水循环与水资源形成.ppt
- 第二章信息保密技术应用.ppt
- 第九章配电网高级应用软件.ppt
- 第七节流体输送管路计算.ppt
- 第三章导电高分子材料.ppt
- 第十五章电子文件管理.ppt
- 2025年辽宁省安全员A证考试试卷带解析附答案【突破训练】.docx
- 2025年辽宁省安全员A证考试试卷带解析附答案【考试直接用】.docx
- 2025年辽宁省安全员A证考试试卷带解析附答案【培优B卷】.docx
- 2025年辽宁省安全员A证考试试卷带解析附答案【基础题】.docx
- 2025年辽宁省安全员A证考试试卷带解析附答案【综合题】.docx
- 2025年辽宁省安全员A证考试试卷带解析附答案【综合题】.docx
- 2025年辽宁省安全员A证考试试卷带解析附答案【实用】.docx
- 2025年辽宁省安全员A证考试试卷带解析附答案【培优B卷】.docx
- 2025年辽宁省安全员A证考试试卷带解析附答案【巩固】.docx
- 2025届四川省遂宁市船山区第二中学初三第五次调研考试化学试题含解析.doc
原创力文档


文档评论(0)