11面向对象设计.ppt-淮海工学院.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 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交付给客户软件的实际成本;系统的主要组成部分称为子系统,通常根据所提供的功能来划分子系统。 例如,编译系统可划分成词法分析、语法分析、中间代码生成、优化、目标代码生成和出错处理等于系统。 子系统的数目应该与系统规模基本匹配。 在划分和设计子系统时,应该尽量减少子系统彼此间的依赖性。 面向对象设计模型(即求解域的对象模型),也由主题、类与对象、结构、属性、服务等五

文档评论(0)

170****0532 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8015033021000003

1亿VIP精品文档

相关文档