考虑因素:⑴算法复杂度 ⑵容易理解与容易实现 ⑶易修改 2.选择数据结构 3.定义内部类和内部操作 &11.10 设计关联 关联的遍历 实现单向关联 实现双向关联 关联对象的实现 &11.11 设计优化
一. 确定优先级 二. 提高效率的几项技术
1. 增加冗余关联以提高访问效率 2. 调整查询次序 3. 保留派生属性 三. 调整继承关系
1. 抽象与具体
2. 为提高继承程度而修改类定义 3. 利用委托实现行为共享
第十二章 面向对象实现
一、 面向对象实现主要包括两项工作:把面向对象设计结果翻译成用某种程序语言书写的面向对象程序;测试
并调试面向对象的程序。
二、 面向对象语言的优点
到底选择面向对象语言还是非面向对象语言,关键不在于语言功能强弱。从原理上说,使用任何一种通用语言都可以实现面向对象概念。当然,使用面向对象语言,实现面向对象概念,远比使用非面向对象语言方便,但是,方便性也并不是决定选择何种语言的关键因素。选择编程语言的关键因素,是语言的一致的表达能力、可重用性及可维护性。从面向对象观点来看,能够更完整、更准确地表达问题域语义的面向对象语言的语法是非常重要的,因为这会带来下述几个重要优点:一致的表示方法、可重用性、可维护性。
三、 面向对象语言的技术特点
1) 2) 3) 4) 5) 6) 7) 8) 9)
支持类与对象概念的机制
实现整体-部分(即聚集)结构的机制 实现一般-特殊(即泛化)结构的机制 实现属性和服务的机制 类型检查:弱类型和强类型 类库 效率 持久保存对象 参数化类
10) 开发环境
四、 选择面向对象语言
开发人员在选择面向对象语言时,还应该着重考虑以下一些因素: 1)将来能否占主导地位
25
2)可重用性 3)类库和开发环境
4)其它因素:对用户学习面向对象分析、设计和编码技术所能提供的培训服务;在使用这个面向对象语言期间能提供的技术支持;能提供给开发人员使用的开发工具、开发平台、发行平台;对机器性能和内存的需求;集成已有软件的容易程度等。
五、 程序设计风格
良好的程序设计风格对面向对象实现来说尤为重要,不仅能明显减少维护和扩充的开销,而且有助于在新项目中重用已有的程序代码。
良好的面向对象程序设计风格,既包括传统的程序设计风格准则,也包括为适应面向对象方法所特有的概念而必须遵循一些新准则:
1、
提高可重用性:1)提高方法的内聚;2)减小方法的规模;3)保持方法的一致性;4)把策略与实现分开:策略方法应该检查系统运行状态,并处理出错情况,它们并不直接完成计算或实现复杂的算法;实现方法仅仅针对具体数据完成特定处理,通常用于实现复杂的算法。5)全面覆盖;6)尽量不使用全局信息;7)利用继承机制
2、 3、
提高可扩充性:1)封装实现策略;2)不要用一个方法遍历多条关键链;3)避免使用多分支语句;4)精心确定公有方法
提高健壮性:所谓健壮性就是在硬件故障、输入的数据无效或操作错误等意外环境下,系统能做出适当响应的程度。为提高健壮性应该遵守以下几条准则:1)预防用户的操作错误;2)检查参数的合法性;3)不要预先确定限制条件;4)先测试后优化
六、 测试策略:测试软件的经典策略是,从“小型测试”开始,逐步过渡到“大型测试”。用软件测试的专业
术语描述,就是从单元测试开始,逐步进入集成测试,最后进行确认和系统测试。 1、 2、 3、
面向对象的单元测试:在测试面向对象软件时,不呢不过再孤立地测试单个操作,而应该把操作作为类的一部分来测试。
面向对象的集成测试:分为基于线程的测试和基于使用的测试两种
面向对象的确认测试:和传统的确认测试一样,面向对象的确认测试也集中检查用户可见的动作和用户可识别的输出。对于面向对象的软件来说,主要还是根据动态模型和描述系统行为的脚本来设计确认测试用例。
七、 设计测试用例
1、 2、
测试类的方法:对面向对象的软件来说,小型测试着重测试单个类和类中封装的方法。测试单个类的方法主要有随机测试、划分测试和基于故障的测试等3种。 集成测试方法:1)对类测试;2)从动态模型导出测试用例
26
相关推荐: