1 引言
软件工程导论即将结课,今天在上课之前,将第十二章的内容复习完,真热打铁在晚上就将其整理出来,分享给大家。
2 面向对象实现
面向对象实现主要包括两项工作:
把面向对象设计结果翻译成用某种程序语言书写的面向对象程序;测试并调试面向对象的程序。
对于面向对象的软件来说,情况也是如此。面向对象测试的目标,也是用尽可能低的测试成本发现尽可能多的软件错误。但是,面向对象程序中特有的封装、继承和多态等机制,也给面向对象测试带来一些新特点,增加了测试和调试的难度。必须在实践中努力探索适合于面向对象软件的更有效的测试方法。
2.1 程序设计语言
面向对象设计的结果既可以用面向对象语言、也可以用非面向对象语言实现。
使用面向对象语言时,由于语言本身充分支持面向对象概念的实现,因此,编译程序可以自动把面向对象概念映射到目标程序中。
使用非面向对象语言编写面向对象程序,则必须由程序员自己把面向对象概念映射到目标程序中。
所有非面向对象语言都不支持一般-特殊结构的实现,使用这类语言编程时要么完全回避继承的概念,要么在声明特殊化类时,把对一般化类的引用嵌套在它里面。
从原理上说,使用任何一种通用语言都可以实现面向对象概念。当然,使用面向对象语言,实现面向对象概念,远比使用非面向对象语言方便,但是,方便性也并不是决定选择何种语言的关键因素。选择编程语言的关键因素,是语言的一致的表达能力、可重用性及可维护性。从面向对象观点看来,能够更完整、更准确地表达问题域语义的面向对象语言的语法是非常重要的,因为这会带来下述3个重要优点。
2.1.1 程序设计语言的优点
1.一致的表示方法
2.可重用性
3.可维护性
2.1.2 面向对象语言的技术特点
1.支持类与对象概念的机制
2.实现整体-部分(即聚集)结构的机制
3.实现一般-特殊(即泛化)结构的机制
4.实现属性和服务的机制
5.类型检查
6.类库
7.效率
8.持久保存对象
9.参数化类
10.开发环境
2.1.3 选择面向对象语言
1. 将来能否占主导地位
2. 可重用性
3. 类库和开发环境
4. 其他因素
2.2 程序设计风格
好的程序设计风格
不仅能明显减少维护或扩充的开销,而且有助于在新项目中重用已有的程序代码。
良好的面向对象程序设计风格
既包括传统的程序设计风格准则,
也包括为适应面向对象方法所特有的概念(例如,继承性)而必须遵循的一些新准则。
2.2.1 提高可重用性
一种是本项目内的代码重用,
另一种是新项目重用旧项目的代码。
为做到外部重用(即一个项目重用另一项目的代码),则必须要有长远眼光,需要反复考虑精心设计。
2.2.2 提高可扩充性
2.2.3 提高健壮性
2.3 测试策略
测试软件的经典策略是,从“小型测试”开始,逐步过渡到“大型测试”。
用软件测试的专业术语描述,就是从单元测试开始,逐步进入集成测试,最后进行确认测试和系统测试。
2.3.1 面向对象的单元测试
2.3.2 面向对象的集成测试
(1)基于线程的测试
(2)基于使用的测试
2.3.3 面向对象的确认测试
2.4 设计测试用例
目前,面向对象软件的测试用例的设计方法,还处于研究、发展阶段。与传统软件测试(测试用例的设计由软件的输入—处理—输出视图或单个模块的算法细节驱动)不同,面向对象测试关注于设计适当的操作序列以检查类的状态。2.4.1 测试类的方法
2.划分测试
(1)基于状态的划分
(2)基于属性的划分
(3)基于功能的划分
3.基于故障的测试
2.4.2 集成测试方法
3 结束语
嗯,今天的分享到此结束。