第12章面向对象实现
1.面向对象实现应该选用哪种程序设计语言?为什么?
答:(1)面向对象实现应该尽量选用面向对象语言来实现面向对象分析、设计的结果。
(2)原因
①一致的表示方法。面向对象开发基于不随时间变化的、一致的表示方法。既有利于在软件开发过程中始终使用统一的概念,也有利于维护人员理解软件的各种配置成分。
②可重用性。既可重用面向对象分析结果,也可重用相应的面向对象设计和面向对象程序设计结果。
③可维护性。程序显式地表达问题域语义,对维护人员理解待维护的软件有很大帮助。在选择编程语言时,应该考虑的首要因素是哪个语言能最恰当地表达问题域语义。
2.面向对象程序设计语言主要有哪些技术特点?
答:(1)支持类与对象概念的机制。
(2)实现聚集结构的机制。
(3)实现泛化结构的机制。
(4)实现属性和服务的机制。
(5)类型检查机制。
(6)类库。
(7)效率。
(8)持久保存对象的机制。
(9)参数化类的机制。
(10)开发环境。
3.选择面向对象程序设计语言时主要应该考虑哪些因素?
答:(1)将来能否占主导地位。
(2)可重用性。
(3)类库和开发环境。
(4)其他因素,包括售后服务、对运行环境的需求、集成已有软件的难易程度等。
4.良好的面向对象程序设计风格主要有哪些准则?
答:面向对象程序设计风格应遵循如下准则:
(1)提高重用性。
(2)提高可扩展性。
(3)提高健壮性。
5.测试面向对象软件时,单元测试、集成测试和确认测试各有哪些新特点?
答:(1)单元测试,是在类层面上的测试。由于继承和复合,类(或对象)在很多情况下已不再是单纯意义上的单个操作。因此,具体的测试将在多有与操作有关的每个子类语境中进行。
(2)集成测试,由于面向对象软件中类的成分直接和间接交互,使得传统测试放法已经失去意义。因此有两种策略可供选择,分别是基于线程的测试和基于使用的测试。
(3)确认测试,关注与用户可见的动作和用户识别的系统输出,但基于场景的测试总是主宰面向对象系统的确认测试。
c程序设计语言第几版最好
6.测试面向对象软件时,主要有哪些设计单元测试用例的方法?
答:设计单元测试用例的方法主要有随机测试、划分测试、基于故障的测试。
(1)随机测试:通过执行一些随机产生的测试用例,来对类和对象进行测试的过程。
(2)划分测试:通过把输入和输出分类,设计测试用例以测试划分出的每个类别的过程。主要分为以下几种方法。
①基于状态的划分:根据类操作改变类状态的能力来划分类操作。
②基于属性的划分:根据类操作使用的属性来划分类操作。
③基于功能的划分:根据类操作所完成的功能来划分类操作。
(3)基于故障的测试:首先推测软件中可能有的错误,然后设计出最可能发现这些错误的测试用例。
7.测试面向对象软件时,主要有哪些设计集成测试用例的方法?
答:设计集成测试用例的方法主要有多类测试、从动态模型中导出测试用例。
(1)多类测试:多类测试可分为随机测试和划分测试两种。
①随机测试
a.对每个客户类,使用类操作符列表来生成一系列随机测试序列。
b.对所生成的每个消息,确定协作类和在服务器对象中的对应操作符。
c.对服务器对象中的每个操作符,确定传递的消息。
d.对每个消息,确定下一层被调用的操作符,并把这些操作符结合进测试序列中。
②划分测试
a.应该扩充测试序列以包括那些通过发送给协作类的消息而被调用的操作。
b.根据与特定类的接口来划分类操作。
(2)从动态模型中导出测试用例:类的状态图可以帮助人们导出测试该类的动态行为的测试用例。通过导出大量的测试用例,保证该类的所有行为都被适当地测试了。在类的行为导致与一个或多个类协作的情况下,应该使用多个状态图去跟踪系统的行为流。
8.测试面向对象软件时,主要有哪些设计确认测试用例的方法?
答:设计确认测试用例的方法主要有传统的黑盒方法、基于情景的方法。
(1)黑盒测试:黑盒测试也称功能测试,它是通过测试来检测每个功能是否都能正常使用。在测试中把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地就收输入数据而产生正确的输出信息。黑盒测试着眼于程序外部结构,不考虑内部逻辑结构,主要针对软件界面和软件功能进行测试。
(2)基于情景的方法:场景,是一种有假设条件的故事,可以辅助测试人员把一个复杂的问题或系统通过电影那样地过一遍。测试人员通过把整个场景都设想出来,在设想中的场景中进行的测试就是基于场景的测试。
9.试用C++语言实现(编程并测试)本书习题11第4题要求设计的订货系统。
答:略。