软件工及程11.pptVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
软件工及程11

第十一章 面向对象设计 (Object-Oriented Design) §1. OOD准则:优秀软件设计的一个重要特点是容易维护 §2. 启发式规则 1、设计结果清晰易懂,应做到: ① 用词一致 —— 按习惯用法命名。不同classes中相似的methods最好取同一名字。 ② 使用已有的协议。 ③ 尽量减少message模式的数目。 ④ 避免模糊定义。 §5. 设计类中的服务 —— 细化object model中的 methods §6. 设计关联 §3. 面向对象测试 单元测试(类测试) 在面向对象环境下,最小的可测试的单元是封装了的类或对象,而不是程序模块。 面向对象软件的类测试等价于传统软件开发方法中的单元测试。但它是由类中封装的操作和类的状态行为驱动的。 完全孤立地测试类的各个操作是不行的。 考虑一个类的层次。在基类中我们定义了一个操作X。 每一个派生类都使用操作X,它是在各个类所定义的私有属性和操作的环境中使用的。因使用操作X的环境变化太大,所以必须在每一个派生类的环境下都测试操作X。 在面向对象开发环境下,把操作完全孤立起来进行测试,其收效是很小的。 组装测试 因为面向对象软件没有一个层次的控制结构,所以传统的自顶向下和自底向上的组装策略意义不大。 每次将一个操作组装到类中(像传统的增殖式组装那样)常常行不通,因为在构成类的各个部件之间存在各种直接的和非直接的交互。 对于面向对象系统的组装测试,存在两种不同的测试策略。 基于线索测试 (Thread-based Test) 它把为响应某一系统输入或事件所需的一组类组装在一起。每一条线索将分别测试和组装。 基于应用的测试 (Use-based Test) 它着眼于系统结构,首先测试独立类,这些类只使用很少的服务器类。再测试那些使用了独立类的相关类。一系列测试各层相关类的活动继续下去,直到整个系统构造完成。 3、确认测试 在进行确认测试和系统测试时,不关心类之间连接的细节。着眼于用户的要求和用户能够认可的系统输出。 为了帮助确认测试的执行,测试者需要回到分析模型,根据那里提供的事件序列(脚本)进行测试。 可以利用黑盒测试的方法来驱动确认测试。 §6. 设计关联 方法2:设公司的属性雇员为一指针集。(快速) 雇 员 公 司 雇员 指针集 2、双向关联 方法1:将上述两种单向关联结合使用 雇 员 雇主 公 司 雇员 指针集 雇 员 公 司 关联类 雇主 雇员 工资 方法2:另设关联类(特别适用于链属性) 雇 员 公 司 find_skill 雇 用 1+ 技 能 具有技能 1+ 1+ §7. 优 化 1、确定优先级: 必须站在全局高度确定各项质量指标的优先级,在优化设计时制定折衷方案。切忌各子系统自以为是,导致最终优化目标对立。 最常见的情况是在效率与清晰性之间的折衷。 2、提高效率的技术 ① 增加关联(类) 例:设某公司有2000名雇员,平均每名雇员会10种技能,其中有5人精通日语,现要查询公司中会讲日语的雇员是哪些人 雇 员 公 司 精通语言 1+ 语 言 1+ §7. 优化 方法1:嵌套查询 —— 遍历雇员2000次,而对每个雇员遍历技能10次。命中率为1/4000。 方法2:用Hash Table实现技能,使“会讲日语”对应唯一的技能对象,则命中率上升为1/400。 方法3:增加一个额外的限定关联“精通语言”,即可立刻查得结果。 §7. 优化 ② 调整查询次序,优化算法 例如公司有5名会日语的雇员,有200名会法语的雇员。现要找日、法语均会的雇员,则应先找到 雇员,再从中找 的雇员。 会日语 会法语 ③ 保留内部中间过程产生的派生属性。 3、调整继承关系 ① 向上归纳 ② 向下派生 建立这样的索引必然多占空间,而且基关联改变时也必须相应地修改索引。因此,应只给那些经常执行并且开销大、命中率低的查询建立索引。 第十二章 面向对象实现 两项工作: 面向对象的设计结果翻译成面向对象的程序 测试并调试 §1. 面向对象的程序设计语言 1.一致性 面向对象开发基于不随时间变化的、一致的表示方法。这种表示方法从问题域到OOA,到OOD.到OOP. 一致的表示法既有利于在软件外发过程中始终使用统一的概念,也有利于维护人员理解软件的各种配置成分。 2. 可重用性 在更广泛的范围运用重用机制,在OOA,OOD直到OOP中都显式地表示问题域语义. 既可能重用它在某个问题域内的OOA结果,也可能重用相应的OOD和OOP结果。

文档评论(0)

qiwqpu54 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档