单选题 基于构件的开发模型包括软件的需求分析定义、______、______、______,以及测试和发布5个顺序执行的阶段。
单选题
  • A.构件接口设计
  • B.体系结构设计
  • C.元数据设计
  • D.集成环境设计
【正确答案】 B
【答案解析】[解析] 本题考查基于构件的软件开发模型的基础知识。 基于构件的开发模型利用模块化方法将整个系统模块化,并在一定构件模型的支持下复用构件库中的一个或多个软件构件,通过组合手段高效率、高质量地构造应用软件系统的过程。基于构件的开发模型融合了螺旋模型的许多特征,本质上是演化形的,开发过程是迭代的。基于构件的开发模型由软件的需求分析定义、体系结构设计、构件库建立、应用软件构建及测试和发布5个阶段组成。
单选题
  • A.数据库建模
  • B.业务过程建模
  • C.对象建模
  • D.构件库建立
【正确答案】 D
【答案解析】
单选题
  • A.应用软件构建
  • B.构件配置管理
  • C.构件单元测试
  • D.构件编码实现
【正确答案】 A
【答案解析】
单选题 以下关于软件构件及其接口的叙述,错误的是______。
  • A.构件是软件系统中相对独立且具有一定意义的构成成分
  • B.构件在容器中进行管理并获取其属性或者服务
  • C.构件不允许外部对所支持的接口进行动态发现或调用
  • D.构件可以基于对象实现,也可以不基于对象实现
【正确答案】 C
【答案解析】[解析] 本题考查软件构件的基本概念。 软件构件是软件系统中具有一定意义的、相对独立的可重用单元。与对象相比,构件可以基于对象实现,也可以不作为对象实现。构件需要在容器中管理并获取容器提供的服务;客户程序可以在运行状态下利用接口动态确定构件所支持的功能并调用。
单选题 在一个典型的基于MVC(Model-View-Controller)的J2EE应用中,分发客户请求、有效组织其他构件为客户端提供服务的控制器由______实现。
  • A.Entity Bean
  • B.Session Bean
  • C.Servlet
  • D.JSP
【正确答案】 C
【答案解析】[解析] J2EE平台下实现MVC,系统的界面通常由JSP构件实现,分发客户请求、有效组织其他构件为客户端提供服务的控件器由Servlet构件实现,数据库相关操作由Enity Bean构件实现,系统核心业务逻辑由Session Bean构件实现。
单选题 集成测试有各种方法,以下关于集成测试的描述中,不正确的是______。
  • A.增量式集成测试容易定位错误,排除错误
  • B.非增量式集成测试不能充分利用人力,会拖延工程进度
  • C.增量式集成测试的强度大,测试更彻底
  • D.即使各个模块都通过了测试,但系统集成以后仍可能出现错误
【正确答案】 B
【答案解析】[解析] 集成测试也称组装测试,它是对由各模块组装而成的程序进行测试,主要目标是发现模块间的接口和通信问题。集成测试主要发现设计阶段产生的错误,集成测试计划应该在概要设计阶段制定。集成的方式可分为非增量式和增量式。
非增量式集成测试又称整体拼装。使用这种方式,首先对每个模块分别进行模块测试,然后把所有模块组装在一起进行测试,最终得到要求的软件系统。由于程序中不可避免地存在涉及模块间接口、全局数据结构等方面的问题,所以一次试运行成功的可能性并不是很大。
增量式集成测试又称渐增式集成方式。首先对一个个模块进行模块测试,然后将这些模块逐步组装成较大的系统,在组装的过程中边连接边测试,以发现连接过程中产生的问题。最后通过增殖逐步组装成为要求的软件系统。
①自顶向下的增殖方式:将模块按系统程序结构,沿控制层次自顶向下进行集成。由于这种增殖方式在测试过程中较早地验证了主要的控制和判断点。在一个功能划分合理的程序结构中,判断常出现在较高的层次,较早就能遇到。如果主要控制有问题,尽早发现它能够减少以后的返工。
②自底向上的增殖方式:从程序结构的最底层模块开始组装和测试。因为模块是自底向上进行组装的,对于一个给定层次的模块,它的子模块(包括子模块的所有下属模块)已经组装并测试完成,所以不再需要桩模块。在模块的测试过程中,需要从子模块得到的信息可以直接运行子模块得到。
③混合增殖式测试:自顶向下增殖的方式和自底向上增殖的方式各有优缺点。自顶向下增殖方式的缺点是需要建立桩模块。要使桩模块能够模拟实际子模块的功能将是十分困难的。同时涉及复杂算法和真正输入/输出的模块一般在底层,它们是最容易出问题的模块,到组装和测试的后期才遇到这些模块,一旦发现问题,导致过多的回归测试。而自顶向下增殖方式的优点是能够较早地发现在主要控制方面的问题。自底向上增殖方式的缺点是“程序一直未能作为一个实体存在,直到最后一个模块加上去后才形成一个实体”。就是说,在自底向上组装和测试的过程中,对主要的控制直到最后才接触到。但这种方式的优点是不需要桩模块,而建立驱动模块一般比建立桩模块容易,同时由于涉及复杂算法和真正输入/输出的模块最先得到组装和测试,可以把最容易出问题的部分在早期解决。此外,自底向上增殖的方式可以实施多个模块的并行测试。
鉴于此,通常是把以上两种方式结合起来进行组装和测试。
④衍变的自顶向下的增殖测试:它的基本思想是强化对输入/输出模块和引入新算法模块的测试,并自底向上组装成为功能相当完整且相对独立的子系统,然后由主模块开始自顶向下进行增殖测试。
⑤自底向上一自顶向下的增殖测试:它首先对含读操作的子系统自底向上直至根节点模块进行组装和测试,然后对含写操作的子系统做自顶向下的组装与测试。
⑥回归测试:这种方式采取自顶向下的方式测试被修改的模块及其子模块,然后将这一部分视为子系统,再自底向上测试,以检查该子系统与其上级模块的接口是否适配。
增量式与非增量式测试的优点和缺点比较如表所示。
{{B}}增量式与非增量式测试的优点和缺点比较{{/B}}
增量式集集成测试 非增量式集集成测试
错误定位 容易定位错误,排除故障 不容易定位错误
测试强度 先加入的模块经过多次测试,测试强度大,测试更
彻底
测试强度小
测试的工作量 测试的工作量大 测试的工作量小
测试的进度 测试的过程长,进度慢 对各个模块可以并行测试,加快测试进度
测试辅助程序 自顶向下的增量需要编写桩模块;自底向上的增量
需要编写驱动模块
每个中间模块的测试都需要编写驱动模块
和桩模块