一、单项选择题
1. 需求规格说明书的作用不应该包括( )。
A、软件设计的依据
B、软件可行性研究的依据
C、用户与开发人员对软件要做什么的共同理解
D、软件验收的依据
2. 耦合的强弱不取决于( )。
A、模块间接口的复杂程度
B、调用模块的方式
C、通过接口的信息处理方式
D、模块内部各个元素彼此之间的紧密结合程度
3. 在各种不同的软件需求中,( )描述了用户使用产品必须要完成的任务,可以在用例模型或方案脚本中予以说明,非功能需求是从各个角度对系统的约束和,反映了应用对软件系统质量和特性的额外要求。
A、业务需求
B、功能需求
C、非功能需求
D、用户需求
4. 软件按照设计的要求,在规定时间和条件下达到不出故障,持续运行的要求的质量特性称为( )。
A、可用性
B、可靠性
C、正确性
D、完整性
5. 结构化设计方法在软件开发中用于( )。
A、概要设计
B、详细设计
C、程序设计
D、测试用例设计
6. 软件维护困难的主要原因是( )。
A、费用低
B、人员少
C、开发方法缺陷
D、得不到用户支持
7. 需求分析阶段的任务是确定( )。
A、软件开发方法
B、软件开发工具
C、软件开发费用
D、软件系统的功能
8.( )是为了确保每个开发过程的质量,防止把软件差错传递到下一个过程而进行的工作。
A、质量检测
B、确认和验收
C、软件容错
D、软件维护
9. 在各种不同的软件需求中,功能需求描述了用户使用产品必须要完成的任务,( )从各个角度对系统的约束和,反映了应用对软件系统质量和特性的额外要求。
A、业务需求
B、非功能需求
C、用户需求
D、质量需求
10. 软件可行性研究一般不考虑( )。
A、人员结构是否满足系统开发
B、相关开发技术
C、经济预算是否合理
D、待开发软件是否有质量问题
二、多项选择题
1. 下列关于效率的说法正确的是( )。
A、效率是一个性能要求,其目标应该在需求分析时给出
B、提高程序效率的根本途径在于选择良好的设计方法,数据结构与算法
C、效率主要指处理机时间和存储器容量两个方面
D、程序的效率与程序的简单性无关
2. 面向对象方法中是一种软件开发方法,构造系统时用到的概念有( )。
A、聚合
B、消息传递
C、对象, 类
D、继承,封装,多态性
三、判断题
1. 在软件开发的过程中,若能推迟暴露其中的错误,则为修复和改正错误所花费的代价就会降低。 ( )
2. 软件可行性分析应在需求分析之前,因此,软件需求规格说明书不应成为软件可行性分析的依据。 ( )
3. 软件技术复审是由用户和测试人员实施的一种质量保证活动。 ( )
4. 用例图定义了系统的功能需求,它是从系统的外部看系统功能,并不描述系统内部对功能的具体实现。 ( )
5. 在可行性研究中最难决断和最关键的问题是经济可行性。 ( )
6. 如果把软件开发所需的资源画成一个金字塔,人是最基本的资源。 ( )
7. 快速原型模型可以有效地适应用户需求的动态变化。 ( )
8. 螺旋模型是在瀑布模型和增量模型的基础上增加了风险分析活动。 ( )
四、填空题
1. 继承性是子类自动共享其父类的___和___的机制。
2. 在面向对象方法中,人们常用状态图描述类中对象的___。
3. 程序设计语言的___特性主要表现在歧义性、简洁性、传统性、局部性和顺序性。
4. 确认测试则是要检查已实现的软件是否满足了需求规格说明中确定了的各种需求,以及___是否完全、正确。
5. 纯收入是指在整个生存周期之内的___ (折合成现在值)与投资之差。
6. 作为计算机科学技术领域中的一门新兴学科,软件工程主要是为了解决___的问题。
7. ___是要检查系统是否满足在需求说明书中规定的性能。
8. 软件=程序+___。
五、简答题
1. 简述容错技术的四种主要手段并解释。
2. 软件维护的副作用有哪些?
《软件工程》习题2答案
一、单项选择题
题号 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
答案 | B | D | B | B | A | C | D | A | B | D |
题号 | 1 | 2 |
答案 | ABC | ABCD |
题号 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
答案 | F | T | F | T | F | T | T | T |
1. 数据结构、 方法
2. 动态行为
3. 心理
4. 软件配置
5. 累计经济效益
6. 如何建立一个软件系统
7. 性能测试
8. 文档
五、简答题
1. 答案:
结构冗余:包括静态冗余、动态冗余和混合冗余。
信息冗余:为检测或纠正信息在运算或传输中的错误,须外加一部分信息。
时间冗余:指重复执行指令或程序来消除瞬时错误带来的影响。
冗余附加技术:指为实现上述冗余技术所需的资源和技术。
2. 答案:
维护的副作用有以下三种:
(1)编码副作用。在使用程序设计语言修改源代码时可能引入的错误。
(2)数据副作用。在修改数据结构时,有可能造成软件设计与数据结构不匹配,因而导致软件错误。数据副作用是修改软件信息结构导致的结果。但它可以通过详细的设计文档加以控制。
(3)文档副作用。如果对可执行软件的修改没有反映在文档中,就会产生文档副作用。