欢迎来到天天文库
浏览记录
ID:36927501
大小:800.60 KB
页数:77页
时间:2019-05-11
《《面向对象设计定》PPT课件》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第11章面向对象设计11.1面向对象设计的准则1模块化2抽象3信息隐藏4弱耦合5强内聚6可重用11.2启发规则1设计结果应该清晰易懂使设计结果清晰、易读、易懂,是提高软件可维护性和可重用性的重要措施。用词一致使用已有的协议减少消息模式的数目避免模糊的定义从类名可以较容易地推想出它的用途2一般特殊结构的深度应适当一般说来,在一个中等规模(大约包含100个类)的系统中,类等级层次数应保持为5-9。应该使一般一特殊结构与领域知识或常识保持一致。3设计简单的类(1)避免包含过多的属性(2)有明确的定义(3)尽量简化对象之间
2、的合作关系(4)不要提供太多服务4使用简单的协议消息中的参数不要超过3个通过复杂消息相互关联的对象是紧耦合的5使用简单的服务6把设计变动减至最小服务通常一般只有3—5行源程序语句一般说来,应该尽量避免使用复杂的服务。如果需要在服务中使用CASE语句,通常应该考虑用一般一特殊结构代替这个类的可能性。设计的质量越高,设计结果保持不变的时间也越长。即使出现必须修改设计的情况,也应该使修改的范围尽可能小。11.3软件重用11.3.1概述1重用:也叫再用或复用,是指同一事物不作修改或稍加改动就多次重复使用。(1)知识重用(例
3、如,软件工程知识的重用)。(2)方法和标准的重用(例如,面向对象方法或国家制定的软件开发规范的重用)。(3)软件成分的重用。2.软件成分的重用级别(1)代码重用·源代码剪贴·源代码包含:提供包含(Include)库中源代码的机制。·继承(2)设计结果重用(3)分析结果重用3典型的可重用软件成分(1)项目计划(2)成本估计(3)体系结构(4)需求模型和规格说明(5)设计(6)源代码(7)用户文档和技术文档(8)用户界面(9)数据(10)测试用例11.3.2类构件面向对象中的类是比较理想的可重用的构件,称类构件。1.可
4、重用软构件应具备的特点(1)模块独立性强具有单一、完整的功能,且经过反复测试被确认是正确的,内部实现在外面是不可见的。(2)具有高度可塑性必须提供为适应特定需求而扩充或修改已有构件的机制,而且所提供的机制必须使用起来非常简单方便。(3)接口清晰、简明、可靠应该有详尽的文档说明2.类构件的重用方式(1)实例重用向创建的实例发送适当的消息,启动相应的服务,完成需要完成的工作。还可以用几个简单的对象作为类的成员,创建出一个更复杂的类,这是实例重用的另一种形式。(2)继承重用提供了一种对已有的类构件进行裁剪的机制(3)多态
5、重用利用多态性不仅可以便对象的对外接口更加一般化(基类与派生类的许多对外接口是相同的),从而降低了消息连接的复杂程度,而且还提供了一种简便可靠的软构件组合机制。系统运行时,根据接收消息的对象类型,由多态性机制启动正确的方法,去响应一个一般化的消息,从而简化消息界面和软构件连接过程。11.3.3软件重用的效益1质量HP公司的研究2生产率创建计划、模型、文档、代码和数据所需花费的时间将减少。重用30%-50%提高生产率25%-40%3成本软件重用带来的净成本节省C=Cs-Cr-CdCs从头开发(没有重用)所需成本;Cr
6、与重用相关联的成本;Cd交付给客户软件的实际成本11.4系统分解系统的主要组成部分称为子系统,通常根据所提供的功能来划分子系统。例如,编译系统可划分成词法分析、语法分析、中间代码生成、优化、目标代码生成和出错处理等于系统。子系统的数目应该与系统规模基本匹配。在划分和设计子系统时,应该尽量减少于系统彼此间的依赖性。面向对象设计模型(即求解域的对象模型),也由主题、类与对象、结构、属性、服务等五个层次组成。这五个层次一层比一层表示的细节更多。面向对象设计模型,在逻辑上都由四大部分组成。这四大部分对应于组成目标系统的四个
7、子系统,它们分别是问题域子系统、人—机交互子系统、任务管理子系统和数据管理子系统。11.4.1子系统之间的两种交互方式1客户一供应商关系在这种关系中,作为“客户”的子系统调用作为“供应商”的子系统,后者完成某些服务工作并返回结果。使用这种交互方案,作为客户的子系统必须了解作为供应商的子系统的接口,然而后者却无须了解前者的接口,因为任何交互行为都是由前者驱动的。2平等伙伴关系在这种关系中,每个子系统都可能调用其他子系统,因此,每个子系统部必须了解其他子系统的接口。总的说来,单向交互比双向交互更容易理解,也更容易设计和
8、修改,因此应该尽量使用客户一供应商关系。11.4.2组织系统的两种方案1.层次组织这种组织方案把软件系统组织成一个层次系统,每层是一个子系统。在上、下层之间存在客户一供应商关系。低层子系统提供服务,相当于供应商,上层子系统使用下层提供的服务,相当于客户。2.块状组织这种组织方案把软件系统垂直地分解成系统相当于一块,每块提供一种类型的服务。利用层次和块的各种可
此文档下载收益归作者所有