网站大量收购闲置独家精品文档,联系QQ:2885784924

软件工程第9章--面向对象.ppt

  1. 1、本文档共126页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
软件工程第9章--面向对象

* 问题领域部分 问题领域部分的内容: 问题领域部分包括与应用问题直接有关的所有类和对象。 识别和定义这些类和对象的工作在OOA 中已经开始,在OOA阶段得到的有关应用的概念模型描述了我们要解决的问题。 在OOD阶段,应当继续OOA阶段的工作,对在OOA中得到的结果进行改进和增补。 * 问题领域部分的设计 改进应针对具体的设计考虑,包括对OOA模型中的某些类与对象、结构、属性、操作进行组合与分解。 要考虑对时间与空间的折衷、内存管理、开发人员的变更、以及类的调整等。(之前一般开发不考虑) 保持问题域组织结构的完整性与稳定性。无论何种修改都是建立在问题域基础上。稳定性是实现可重用的分析、设计及程序设计的关键因素。 如何设计? 下一页…… * (1) 复用设计 直接复用:根据问题解决的需要,把从类库或其它来源得到的既存类增加到问题解决方案中去。 删除可复用类中不需要的属性和操作。 类名《复用》 属性1 属性2 属性3 服务1 服务2 类名《复用》 属性1 属性2 ? 属性3 服务1 ? 服务2 * 通过继承复用:增加从既存类到应用类之间的一般化-特殊化的关系。 把应用类中因继承既存类而成为多余的属性和操作标出。 类名《复用》 属性1 属性2 服务1 类名《复用》 属性3 服务2 类名《复用》 属性1 属性2 ?属性4 服务1 ?服务3 类名《复用》 属性3 服务2 * (2) 把专门的问题领域类组合在一起 在设计时,从类库中引进一个根类,做为容器类,把所有与问题领域有关的类关联到一起,建立类的层次。 把同一问题领域的一些类集合起来,存于类库中。 * (3) 加入一般化类以建立类间协议 有时,某些特殊类要求一组类似的服务。 此时,应加入一个一般化的类,定义为所有这些特殊类共用的一组服务集合,这些服务都是虚函数。相当于一般化类为所有特殊类定义了一个协议,特殊类必须遵循该协议。 在特殊类中定义其实现。 * (4) 调整继承支持层次 在OOA阶段建立的对象模型中可能包括有多继承关系,但实现时使用的程序设计语言可能只有单继承,甚至没有继承机制,这样就需对分析的结果进行修改。 多继承模式有两种: 狭义的菱形:应避免出现属性和服务的命名冲突。 广义的菱形:属性和服务的名称冲突较少,但需要用更多的类表示设计。 * * 针对单继承语言的调整 上述两种模式都必须将多重继承结构转换成单继承结构。 把特殊类的对象看做是一个一般类对象所扮演的角色,通过实例连接把多继承的层次结构转换为单继承的层次结构。 把多继承的层次结构平铺,成为单继承的层次结构。在这种情况下,有些属性或操作在同层的特殊类中会重复出现。如图(b) * * 针对无继承语言的调整 当使用无继承的程序设计语言时,必须把具有继承关系的类层次结构平铺开来,成为一组零层次的类和对象。如: 一般可利用命名惯例,把这些类或对象关联起来。 医生 医学教授 教授 * (5) 改进性能 提高执行效率和速度是系统设计的主要指标之一。有时,必须改变问题领域的结构以提高效率。 影响性能的因素: 数据传输时间:修正网络分布方案,改变网络拓扑结构,选择合适的软件体系结构,选用高速通信设备。 数据存取时间:尽可能减少对文件、数据库等存储管理系统的访问。 数据处理时间:选择计算复杂性级别低的算法。 * (5) 改进性能 调整对象分布 类A 类B 甲机 乙机 类C 类A 类B 类C 类A 类B 甲机 乙机 类C (a) (b)减少数据传送量 (c) 缩短传送路径 * 如果类之间经常需要传送大量消息(高耦合),可合并相关的类以减少消息传递引起的速度损失。 增加属性以减少重复计算。 细化对象的分类。 二次曲线 …… 绘图 二次曲线 …… …… 椭圆 …… 绘图 抛物线 …… 绘图 双曲线 …… 绘图 * 将复杂对象化为整体—部分结构 帧 …… 显示 帧 …… …… 背景 …… 显示 前景 …… 显示 * § 6 Booch方法 Booch G. Object-Oriented Analysis and Design with Applications. 1991 Booch方法的对象模型要素:类、对象、类及对象之间的关系、封装、模块化、层次类型、并发。 开发模型包括静态模型和动态模型,静态模型分为逻辑模型和物理模型,描述了系统的构成和结构。 图形文档(6种图): 基本图: 类图、对象图、模块图、进程图 补充图: 状态转换图、交互图 §6. Booch方法 静态模型 逻辑模型 动态模型 物理模型 * ⑴类图: 表示系统中的类与类之间的相互关系。 §6. Booch方法 类图表示 (a) 关联 (b) 继承 类名 类名 父类 子类 (c) 包含 整体类 成员类 (d) 使用 请求服务类 提供服务类

文档评论(0)

junjun37473 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档