预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共24页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

面向对象实现主要包括两项工作: 把面向对象设计结果翻译成用某种程序语言书写的面向对象程序; 测试并调试面向对象的程序。 面向对象程序的质量基本上由面向对象设计的质量决定,所采用的程序语言的特点和程序设计(chénɡxùshèjì)风格也将对程序的可靠性、可重用性及可维护性产生深远影响。 软件测试仍然是保证软件可靠性的主要措施。但是,面向对象程序中特有的封装、继承和多态等机制,也给面向对象测试带来一些新特点,增加了测试和调试的难度。12.1程序设计语言(yǔyán)12.1.1面向对象语言(yǔyán)的优点12.1.2面向对象语言(yǔyán)的技术特点4.实现属性和服务(fúwù)的机制 对于实现属性的机制应该着重考虑以下几个方面:支持实例连接的机制;属性的可见性控制;对属性值的约束。 对于服务(fúwù)来说主要应该考虑下列因素:支持消息连接的机制;控制服务(fúwù)可见性的机制;动态联编。 5.类型检查 如果语言仅要求每个变量或属性隶属于一个对象,则是弱类型的,如Smalltalk; 如果语法规定每个变量或属性必须准确地属于某个特定的类,则这样的语言是强类型的,如C++。6.类库 大多数面向对象语言都提供一个实用的类库。存在类库,许多软构件就不必由程序员重头编写了,这为实现软件重用带来很大方便。 7.效率(xiàolǜ) 使用拥有完整类库的面向对象语言,有时能比使用非面向对象语言得到运行更快的代码。 绝大多数面向对象语言都优化了查找继承树的过程,从而实现了高效率(xiàolǜ)查找。8.持久保存(bǎocún)对象 一些面向对象语言,没有提供直接存储对象的机制。这些语言的用户必须自己管理对象的输入输出,或者购买面向对象的数据库管理系统。 另外一些面向对象语言(例如,Smalltalk),把当前的执行状态完整地保存(bǎocún)在磁盘上。 还有一些面向对象语言,提供了访问磁盘对象的输入输出操作。9.参数化类 所谓参数化类,就是使用一个或多个类型去参数化一个类的机制,有了这种机制,程序员就可以(kěyǐ)先定义一个参数化的类模板,然后把数据类型作为参数传递进来,从而把这个类模板应用在不同的应用程序中,或用在同一应用程序的不同部分。 10.开发环境 面向对象语言所提供的软件工具或开发环境尤其重要。至少应该包括下列一些最基本的软件工具:编辑程序,编译程序或解释程序,浏览工具,调试器等。12.1.3选择(xuǎnzé)面向对象语言12.2程序设计风格(fēnggé)12.2.1提高可重用性3.保持方法的一致(yīzhì)性 一般说来,功能相似的方法应该有一致(yīzhì)的名字、参数特征、返回值类型、使用条件及出错条件等。 4.把策略与实现分开 策略方法:负责做出决策,提供变元,并且管理全局资源。 实现方法:负责完成具体的操作,但却并不做出是否执行这个操作的决定,也不知道为什么执行这个操作。 为提高可重用性,在编程时不要把策略和实现放在同一个方法中,应该把算法的核心部分放在一个单独的具体实现方法中。5.全面覆盖 针对输入条件的所有组合(zǔhé)写出方法。 对空值、极限值及界外值等异常情况也应该能够作出有意义的响应。 6.尽量不使用全局信息 应该尽量降低方法与外界的耦合程度,不使用全局信息是降低耦合度的一项主要措施。 7.利用继承机制 调用子过程。 分解因子。 使用委托。 把代码封装在类中。12.2.2提高(tígāo)可扩充性12.2.3提高(tígāo)健壮性12.3测试(cèshì)策略12.3.1面向对象的单元测试12.3.2面向对象的集成(jíchénꞬ)测试12.3.3面向对象的确认(quèrèn)测试12.4设计测试(cèshì)用例12.4.1测试(cèshì)类的方法3.基于故障的测试 基于故障的测试(faultbasedtesting)与传统的错误推测法类似,也是首先推测软件中可能有的错误,然后设计出最可能发现这些错误的测试用例。 为了推测出软件中可能有的错误,应该仔细研究分析模型和设计模型,而且(érqiě)在很大程度上要依靠测试人员的经验和直觉。12.4.2集成(jíchénꞬ)测试方法1.多类测试(cèshì) 生成多个类的随机测试(cèshì)用例的步骤: 对每个客户类,使用类操作符列表来生成一系列随机测试(cèshì)序列。这些操作符向服务器类实例发送消息。 对所生成的每个消息,确定协作类和在服务器对象中的对应操作符。 对服务器对象中的每个操作符(已经被来自客户对象的消息调用),确定传递的消息。 对每个消息,确定下一层被调用的操作符,并把这些操作符结合进测试(cèshì)序列中。2.从动态模型导出测试用例 类的状态图可以帮助导出测试该类(及与其协作的那些类)的动态行为的测试用例。 在类的行为导致与