1.选择题(共30分,一题3分)
(1)软件特性中,( A )是指系统具有清晰的结构,能直接反映问题的需求的程度。
A.可理解性 B.可靠性 C.可适应性 D.可重用性
(2).具有风险分析的软件生命周期模型是(C)
A:瀑布模型 B:喷泉模型 C:螺旋模型 D:增量模型
(3)UML是软件开发中的一个重要工具,它主要应用于哪种软件开发方法(C )
A、基于瀑布模型的结构化方法 B、基于需求动态定义的原型化方法
C、基于对象的面向对象的方法 D、基于数据的数据流开发方法
(4)软件开发中常采用的结构化生命周期方法,由于其特征而一般称其为(A )
A、 瀑布模型 B、 对象模型 C、 螺旋模型 D、 层次模型
(5)在 E-R 模型中,包含以下基本成分( C )
A:数据、对象、实体 B:控制、联系、对象
C:实体、联系、属性 D:实体、属性、操作
(6)软件中所花费用最多的阶段是( D )。
A.详细设计 B.软件编码
C.软件测试 D.软件维护
(7).软件测试的目标是(B)。
A、证明软件是正确的 B 、发现错误,降低错误带来的风险
C、排除软件中的所有错误 D 、与软件调试相同
(8)瀑布模型本质上是一种( A )。
A.线性顺序模型 B.顺序迭代模型
C.线性迭代模型 D.及早见产品模型
(9)软件维护产生的副作用,是指( C )。
A.开发时的错误 B.隐含的错误
C.因修改软件而造成的错误 D.运行时误操作
(10)在白盒测试技术测试用例的设计中,( A )是最弱的覆盖标准。
A.语句覆盖 B.路径覆盖
C.条件组合覆盖 D.判定覆盖
2.判断题(共10分,一题2分)
(1)在面向对象的软件开发方法中,每个类都存在其相应的对象,类是对象的实例,对象是生成类的模板。(X)
(2) 模块内的高内聚往往意味着模块间的松耦合。(√ )
(3)以对象,类,继承和通信为基础的面向对象设计方法(OOD)也是常见的软件概要设计方法之一。(√)
(4)软件生存周期是从软件开始开发到开发结束的整个时期。(X)
(5)耦合用于衡量一个模块内部的各个元素彼此结合的紧密程度。(X)
3.简答题(共30分,一题6分)
(1)衡量模块独立性的两个定性标准是什么 ?这两个标准的定义分别是什么 ?在我们的软件设计中,关于模块独立性我们追求的目标是什么 ?
答:衡量模块独立性的两个定性标准是内聚和耦合。
耦合是指对一个软件结构内不同模块彼此之间互相依赖(连接)的紧密程度;而内聚则标志一个模块内部各个元素彼此结合的紧密程度。
在我们的软件设计中,关于模块独立性我们追求的目标是紧密内聚松散耦合。
(2)请简要说明需求分析的三个层次包括那些主要内容。
答:软件需求包括三个不同的层次—业务需求、用户需求和功能需求—也包括非功能需求。
业务需求反映了组织机构或客户对系统、产品高层次的目标要求。
用户需求文档描述了用户使用产品必须要完成的任务。
功能需求定义了开发人员必须实现的软件功能,使得用户能完成他们的任务,从而满足了业务需求。
(3)比较黑盒测试和白盒测试
答:白盒测试(又称结构测试):把程序看成装在一个透明的白盒子里,测试者完全知道程序的结构和处理算法。这种方法按照程序内部的逻辑测试程序,检测程序中的主要执行通路是否都能按预定要求正确工作。
黑盒测试(又称功能测试):把程序看做一个黑盒子,完全不考虑程序的内部结构和处理过程。黑盒测试是在程序接口进行的测试,只检查程序功能是否能按照规格说明书的规定正常使用,程序是否能适当地接收输入数据并产生正确的输出信息,程序运行过程中能否保持外部信息的完整性。。
(4)面向对象的测试和传统开发方法的测试有什么不同 ?
答:(1)二者都可以分成四个阶段进行.但传统测试最小单元是模块,而在面向对象环境下,最小的可测试的单元是封装了的类或对象,而不是程序模块。
(2)因为面向对象软件没有一个层次的控制结构,所以传统的自顶向下和自底向上的组装策略意义不大. 每次将一个操作组装到类中(像传统的增殖式组装那样)常常行不通,因为在构成类的各个部件之间存在各种直接的和非直接的交互.对于面向对象系统的组装测试,存在两种不同的测试策略。
(5)什么是软件维护?软件维护可以分为哪几类?
答:软件维护是指在软件系统已经交付使用之后,软件使用人员为了适应新的要求、满足新的需要或为了改正软件中存在的错误而对软件系统进行修改的过程。可以分为纠错性维护、完善性维护、适应性维护和预见性维护。