软件工程导论
考试说明:
1.选择题: 20个 20分 2.填空题: 20个 20分 3.名词解释题:5题15分 4.分析设计题:2题30分 5.综合题: 1题15分 一、选择题
1. 在软件开发模型中,提出最早、应用最广泛的模型是(A) A瀑布模型 B螺旋模型 C演化模型 2. 瀑布模型存在的问题是(B)
A用户容易参与与开发 B缺乏灵活性 C用户与开发者易沟通 D适用可变需求 3. 软件可行性研究一般不考虑(D)
A是否有足够的人员和相关的技术来支持系统开发 B是否有足够的工具和相关的技术来支持系统开发
D原型模型
1
C待开发软件是否有市场、经济上是否合算 D待开发的软件是否有质量问题
4. 软件详细设计的主要任务是确定每个模块的(A) A算法和使用的数据结构
B外部接口 C功能 D编程
5. 可行性分析是在系统开发的早期所做的一项重要的论证工作,它是决定该系统是否开发的决策依据,因必须给出(B)的回答
A确定
B行或不行
C正确
D无二义
6. 系统流程图是用来(D) A描绘程序结构
B描绘系统的逻辑模型
D描绘物理系统的
C表示信息层次结构的图形工具
7. 为了提高软件的可维护性,在编码阶段应注意(D) A保存测试用例和数据 C文档的副作用
B提高模块的独立性 D养成好的程序设计风格
8. 快速原型模型的主要特点之一是(D) A开发完毕才见到产品
B及早提供全部完整的软件产品
2
C开发完毕后才见到工作软件 D及早提供工作软件
9. 软件需求分析的主要任务是准确地定义出要开发的软件系统是(C) A如何做
B怎么做 C做什么 D对谁做
10. 软件维护产生的副作用,是指(C) A开发时的错误
B隐含的错误 C因修改软件而造成的错误
D运行时误操作
11. 软件生命周期中所花费用最多的阶段是(D) A详细设计
B软件编码 C软件测试 12.模块的内聚性最高的是(D) A逻辑内聚 B时间内聚 C偶然内聚
D功能内聚
13.与确认测试阶段有关的文档是(A) A需求规格说明书 B概要设计说明书 C详细设计说明书
D源程序
14.白盒测试主要用于测试(A)
3
软件维护
D
A程序的内部逻辑 C程序的外部功能
B程序的正确性 D结构合理性
15.软件开发和维护过程中出现的一系列严重问题称为(D) A软件工程 C软件周期
B软件开发 D软件危机
16.在SD方法中全面指导模块划分的最重要的原则是(D) A程序模块化 C模块低耦合
B模块高内聚 D模块独立性
17.下列属于维护阶段的文档是(C) A软件规格说明 C软件问题报告
B用户操作手册 D软件测试分析报告
18.软件按照设计的需求,在规定时间和条件下达到不出故障,持续运行的要求的质量特性成为(B)
A可用性
B可靠性
C正确性
D完整性
19.需求分析中开发人员要从那里了解(A)
4
A软件做什么 C输入的信息
B用户使用界面 D软件的规模
20.(D)是将系统化的、规范的、可定量的方法应用于软件的开发、运行和维护的过程,它包括方法、工具和过程三个要素。
A软件过程
B软件测试 D软件工程
C软件生存周期
21.需求规格说明书的作用不包括(C) A软件验收的依据
B用户与开发人员对软件要做什么的共同理解 C软件可行性研究的依据 D软件设计的依据
22.快速原型是利用原型辅助软件开发的一种新思想,它是在研究(A)的方法和技术中产生的
A需求阶段 C测试阶段
B设计阶段
D软件开发的各个阶段
23.(A)是为了确保每个开发过程的质量,防止把软件差错传递到下一个过程而进行
5
的工作
A质量检测 C软件维护
B软件容错 D系统容错
24.原型化方法是用户和软件开发人员之间进行的一种交互过程,适用于(A)系统 A需求不确定的 C管理信息
B需求确定的 D决策支持
25.软件维护产生的副作用,是指(C) A开发时的错误
B隐含的错误 D运行时误操作
C因修改软件所造成的错误
26.数据字典是用来定义(D)中 的各个成分的具体含义的 A流程图
B功能结构图
D数据流图
C系统结构图
27.在软件产生的程序系统时代由于软件规模扩大和软件复杂性提高等原因导致了(A) A软件危机
B软件工程 D结构化程序设计
6
C程序设计革命
28.需求规格说明书的作用不包括(C) A软件验收的依据
B用户与开发人员对软件要做什么的共同理解 C软件可行性研究的依据 D软件设计的依据
29.总体设计的目的是确定整个系统的(B) A规模
B功能及模块结构 C费用
D测试方案
30.因计算机硬件和软件环境的变化而作出的修改软件的过程称为(B) A校正性维护 C完善性维护
B适应性维护 D预防性维护
31.一个模块内部各个程序都在同一数据结构上操作,这个模块的内聚性称为(C) A时间内聚 C信息内聚
B功能内聚 D过程内聚
32.软件详细设计主要采用的方法是(D) A模块设计
B结构化设计
7
C PDL语言 D结构化程序设计
33.若有一个计算类型的程序,它的输入量只有一个X,其范围是[-1.0,1.0],现从这组输入的角度考虑一组测试用例:-1.001,-1.0,1.0,1.001。设计这组测试用例的方法是(C)
A条件覆盖法
B等价分类法 C边界值分析法
D错误推测法
34.程序的三种基本控制结构是(B) A过程、子程序和分程序 C递归、堆栈和队列
B顺序、选择和循环 D调用、返回和转移
35.白盒测试主要用于测试(A) A程序的内部逻辑 C程序的外部功能 二、填空题
1.基于计算机系统的软件要素中的软件由(程序)、(文档)和(数据)三部分组成。 2.需求分析阶段产生的文档是(软件需求规格说明书),它的主要组成部分是(数据流图)和(数据字典)
3.单独测试某一模块时,要为它设计(驱动)模块和(存根)模块,它们的作用是分别模拟被测试模块的(上级调用模块)和(下级被调用模块)
B程序的正确性 D结构合理性
8
4.软件工程方法学由(方法)、(工具)和(过程)三部分组成,称为软件工程的三要素。
5.面向数据结构的设计方法[Jackson 方法]是进行(详细)设计的形式化方法 6.模块独立性的两个定性度量指标为(内聚)和(耦合)
7.数据流图按照信息流的类型主要分为(事务性)和(变换型)两种 8.描绘物理系统的传统工具是(系统流程图)
9.详细设计通常以(结构化程序设计)技术为逻辑基础,因为从软件工程观点看,(可读性)是软件最重要的质量指标之一
10. (软件过程)是为了获得高质量软件所需要完成的一系列任务的框架
11.为了便于对照检查,测试用例应由(输入数据)和(预期的输出结果)两部分组成 12.采用渐增式集成测试时有两种不同的集成策略,它们是:(自顶向下)集成测试和(自底向上)集成测试
13.通常黑盒测试方法有:(等价类划分)、(濒临值分析)和错误推测法等
14.软件总体设计时需要遵循模块化、抽象、(逐步求精)、信息隐藏、局部化和(模块独立)等6条基本原理
15.通常把测试方法分为(白盒法)和(黑盒法)两大类。因为通常不可能做到穷举测试,所以精心设计(测试用例)是保证达到测试目的所必须的
9
三、名词解释
软件工程:是指导计算机软件开发和维护的一门工程学科。
软件过程:是为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。
软件生命周期:是由软件定义,软件开发和运行维护3个时期组成,每个时期又进一步划分成若干个阶段。
集成测试:是测试和组装软件的系统化技术。有自顶向下和自底向上两种集成方法。
信息隐藏:为了得到最好的一组模块,应该这样设计和确定模块,使得一个模块内包含的信息(过程和数据)对于不需要这些信息的模块来说,是不能访问的。
软件可靠性:是程序在给定的时间间隔内,按照规格说明书的规定,成功地运行的概率。
软件可用性:是程序在给定的时间点,按照规格说明书的规定,成功地运行的概率。 黑盒测试:已经知道产品应该具有的功能,通过测试来检验是否每个功能都能正常使用。
白盒测试:已经知道产品的内部工作原理,通过测试来检验产品内部动作是否按照规格说明书的规定正常进行。
结构化分析:就是面向数据流自顶向下逐步求精进行需求分析。
10
结构化设计:程序应该只有一个入口和一个出口,结构程序设计本质上是一种使程序代码容易阅读,容易理解的编程方法。
软件维护 就是在软件已经交付使用之后,为了改正错误或满足新的需要而修改软件的过程。
软件危机:是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。 作用域:受该模块内一个判断影响的所以模块的集合。
控制域:是这个模块本身以及所以直接或间接从属于它的模块的集合。
扇入:表明有多少个上机模块直接调用它,扇入越大,则共享该模块的上级模块数目越多。
扇出:是通过模块直接控制的模块数目,扇出过大意味着模块过于复杂,需要控制和协调过多的下级模块。
11
因篇幅问题不能全部显示,请点此查看更多更全内容