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

第九节 面向对象设计.ppt

  1. 1、本文档共40页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第二部分 面向对象的软件工程 第七章 面向对象方法学引论 第八章 面向对象分析 第九章 面向对象设计 第十章 面向对象的实现 OOD概述 第九章 面向对象设计 9·1 OOD准则 9·2 启发式规则 9·3 软件重用 (Software Reuse) 9·4 系统分解 9·5 设计类中的服务 9·6 设计关联 9·7 优化 9·8 本章重点 9·1 OOD准则 OOD准则(续) OOD准则(续) OOD准则(续) OOD准则(续) 9·2 启发式规则 1、设计结果清晰易懂,应做到: ① 用词一致 —— 按习惯用法命名。不同classes中相似的methods最好取同一名字。 ② 使用已有的protocol。 ③ 尽量减少message模式的数目。 ④ 避免模糊定义。 启发式规则(续) 9·3 软件重用 (Software Reuse) 一、重用的概念(续) 二、重用效果的衡量(续): 二、重用效果的衡量(续): 三、软件重用技术(续): 三、软件重用技术(续): 三、软件重用技术(续): 三、软件重用技术(续): 9·4 系统分解 一、子系统之间的交互方式(collaboration) 二、系统组织方案 二、系统组织方案(续) 三、四种子系统的设计 三、四种子系统的设计(续) 三、四种子系统的设计(续) 三、四种子系统的设计(续) 三、四种子系统的设计(续) 三、四种子系统的设计(续) 9·5 设计类中的服务 一、确立服务(续) 一、确立服务(续) 二、实现方法 9·6 设计关联 一、单向关联(续) 9·7 优化 9·8 本章重点 一、确立服务(续) Input Flow Class …… Process I \ O Class …… Process ? 若 Process=从Input Flow中抽取一个值,则 I O ? 若 和 类型相同,而output实质上是input的另一个状态,则I\O是一类, 有 ? 若 则 I1 I2 I3 P O Output Flow Class …… Process ? 若 则 Process Storage Storage Class …… Process ? 对照DFD与Class--Object图,若一个process涉及多个classes,则必须判断它属于哪一个class。 例如: Activator Receiver Process 若Process 改变了 Receiver,则 Receiver Class …… Process 又如:从关联上看,process所涉及的所有classes中,处于中心地位的class,一般拥有该process。 ⑴ 算法设计:要求做到易修改,并且复杂度低(即效率高) 易理解,易实现。 ⑵ 数据结构设计:需要考虑具体的物理结构的选择。 ⑶ 新添用于存放内部处理中间结果的class;引入新的低层操作,进一步细化。 一、单向关联 例: 雇 员 公 司 被雇用 1+ ? 由雇员找其所属公司,则设雇主为其属性,即一单向指针 雇 员 雇主 公 司 ? 由公司找其下属某一雇员,则有两种方法: 方法1:遍历所有雇员,找雇主匹配且满足特征的雇员。(省空间) 方法2:设公司的属性雇员为一指针集。(快速) 雇 员 公 司 雇员 指针集 二、双向关联 方法1:将上述两种单向关联结合使用 雇 员 雇主 公 司 雇员 指针集 雇 员 公 司 关联类 雇主 雇员 工资 方法2:另设关联类(特别适用于链属性) 雇 员 公 司 find_skill 雇 用 1+ 技 能 具有技能 1+ 1+ 1、确定优先级: 必须站在全局高度确定各项质量指标的优先级,在优化设计时制定折衷方案。切忌各子系统自以为是,导致最终优化目标对立。 最常见的情况是在效率与清晰性之间的折衷。 2、提高效率的技术 ① 增加关联(类) 例:设某公司有2000名雇员,平均每名雇员会10种技能,其中有5人精通日语,现要查询公司中会讲日语的雇员是哪些人 雇 员 公 司 精通语言 1+ 语 言 1+ 方法1:嵌套查询 —— 遍历雇员2000次,而对每个雇员遍历技能10次。命中率为1/4000。 方法2:用Hash Table实现技能,使“会讲日语”对应唯一的技

文档评论(0)

189****6140 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档