- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
11面向对象设计.ppt-淮海工学院.ppt
学习目标; 第11章 面向对象设计;
11.1 面向对象设计的准则
1 模块化
对象就是模块,封装了数据结构和操作。
2 抽象
类实际上是一种抽象数据类型,它对外开放的公共接口构成了类的规格说明(即协议)。
支持数据抽象和过程抽象。
参数化抽象,把要操作的数据类型作为参数
3 信息隐藏
通过对象的封装来实现
对类的用户来说,属性的表示方法和操作的实现算法应该是隐藏的。
;4 弱耦合
耦合指不同对象之间相互联系的紧密程度。
对象之间的耦合可以分为两大类:
(1)交互耦合
交互耦合通过消息连接来实现,应该遵守下述原则:
尽量降低消息连接的复杂程度。减少参数个数,降低参数的复杂程度。
减少对象发送或接收的消息数。
(2)继承耦合
应该提高继承耦合程度,通过继承关系结合起来的基类和派生类,构成系统中粒度更大的模块。
如果派生类放弃了基类的许多属性,则它们之间是松耦合的。
;5 强内聚
(1)服务内聚
一个类应该完成单一的功能
(2)类内聚
一个类应该只有一个用途,其属性和服务应该是完成类对象的任务所必需的。
(3)一般-特殊内聚
应该是对相应领域知识的正确抽取。
6 可重用
软件重用是提高软件生产率和提高软件质量的重要途径。
(1)尽量重用已有的类。
(2)二是在设计新类时,应考虑将来的可重用性。; 11.2 启发规则;2 一般特殊结构的深度应适当
一般说来,在一个中等规模(大约包含100个类)的系统中,类等级层次数应保持为5-9。
应该使一般一特殊结构与领域知识或常识保持一致。
;3 设计简单的类
(1) 避免包含过多的属性
(2)有明确的定义
(3)尽量简化对象之间的合作关泵
(4)不要提供太多服务
一个类提供的公共服务一般不超过7个
4 使用简单的协议
消息中的参数不要超过3个
通过复杂消息相互关联的对象是紧耦合的; ;;2.软件成分的重用级别
(1)代码重用
·源代码剪贴
·源代码包含:提供包含(Include)库中源代码的机制。
·继承
(2)设计结果重用
重用某个软件系统的设计模型(即求解域模型)
(3)分析结果重用
重用某个系统的分析模型
3 典型的可重用软件成分
(1)项目计划 (2)成本估计
(3)体系结构 (4)需求模型和规格说明
(5)设计 (6)源代码
(7)用户文档和技术文档
(8)用户界面 (9)数据
(10)测试用例;11.3.2 类构件
面向对象中的类是比较理想的可重用的构件,称类构件。
1.可重用软构件应具备的特点
(1)模块独立性强
具有单一、完整的功能,且经过反复测试被确认是正确的,内部实现在外面是不可见的。
(2)具有高度可塑性
必须提供为适应特定需求而扩充或修改已有构件的机制,而且所提供的机制必须使用起来非常简单方便。;(3)接口清晰、简明、可靠
应该有详尽的文档说明
2.类构件的重 用方式
(1)实例重用
创建的实例发送适当的消息,启动相应的服务,完成需要完成的工作。
还可以用几个简单的对象作为类的成员,创建出一个更复杂的类,这是实例重用的另一种形式。
(2)继承重用
提供了一种对已有的类构件进行裁剪的机制。; (3)多态重用
利用多态性不仅可以便对象的对外接口更加一般化(基类与派生类的许多对外接口是相同的),从而降低了消息连接的复杂程度,而且还提供了一种简便可靠的软构件组合机制。系统运行时,根据接收消息的对象类型,由多态性机制启动正确的方法,去响应一个一般化的消息,从而简化消息界面和软构件连接过程。;11.3.3 软件重用的效益
1 质量
HP公司研究发现,被重用代码的错误率是每千行0.9个错误,新开发的软件的错误率是每千行4.1个错误。
2 生产率
创建计划、模型、文档、代码和数据所需花费的时间将减少。重用30%-50%提高生产率25%-40%
;3 成本
软件重用带来的净成本节省
C=Cs-Cr-Cd
Cs从头开发(没有重用)所需成本;
Cr与重用相关联的成本;
Cd交付给客户软件的实际成本;系统的主要组成部分称为子系统,通常根据所提供的功能来划分子系统。
例如,编译系统可划分成词法分析、语法分析、中间代码生成、优化、目标代码生成和出错处理等于系统。
子系统的数目应该与系统规模基本匹配。
在划分和设计子系统时,应该尽量减少子系统彼此间的依赖性。
面向对象设计模型(即求解域的对象模型),也由主题、类与对象、结构、属性、服务等五
您可能关注的文档
最近下载
- ISO27001 2022版内审全套资料(内审计划+检查表+审核报告等).doc
- fidic99版新红皮书中英文双语对照版.docx VIP
- 钢板弹簧设计计算程序Ver1.0-20070405.xls VIP
- 区块链产业学院建设思路与规划.pptx VIP
- 建筑外门窗气密、水密、抗风压性能分级(1).doc VIP
- 读本低年级 第2讲《一心跟着共产党》第二课时《党和人民心连心》教学课件.pptx VIP
- 数控车床高级工理论考试题库(含答案).docx VIP
- 《WPS Office办公应用案例教程》教学课件 项目8 WPS Office App文档的基本应用.ppt VIP
- 《WPS Office办公应用案例教程》教学课件 项目9 WPS Office App表格和演示文稿的应用.ppt VIP
- 通用质量特性工作计划-模板.docx VIP
文档评论(0)