2017年北京科技大学冶金工程研究院870软件工程[专业硕士]考研题库
● 摘要
一、选择题
1. 软件生存周期模型有多种,下列选项中,( )不是软件生存周期模型。
A. 螺旋模型
B. 增量模型
C. 功能模型
D. 瀑布模型
【答案】C
【解析】主要的软件生存周期模型有瀑布模型、增量模型、螺旋模型、喷泉模型、变换模型和基于知识的模型。
2. 每个对象可用它自己的一组属性和它可以执行的一组( )来表现。
A. 行为
B. 功能
C. 操作
D. 数据
【答案】C
【解析】在面向对象的系统中,对象是基本的运行时的实体,它既包括数据,也包括作用于数据的操作,所以一个对象的定义包括它的静态属性和动态操作的定义。
3. 在面向数据流的软件设计方法中,一般将信息流分为( )。
A. 变换流和事务流
B. 变换流和控制流
C. 事务流和控制流
D. 数据流和控制流
【答案】A
【解析】面向数据流的软件设计方法是以结构化分析阶段所产生的文档(包括数据流图、数据字典和软件需求说明书)为基础,自顶向下,逐步求精和模块化的过程。它一般将信息流分为变换流和事务流。
①变换流:信息沿着输入通道进入系统,然后通过变换中心(也称主加工)处理,再沿着输出通道离开系统。
②事务流:信息沿着输入通道到达一个事务中心,事务中心根据输入信息(即事务)的类型在若干个动作序列(称为活动流)中选择一个来执行。
4. 以下说法错误的是( )。
A. 单元测试是指对源程序中每一个程序单元进行测试
B. 集成测试各模块组装起来,检查各个模块是否正确实现规定的功能
C. 确认测试主要检查已实现的软件是否满足需求规格说明书中确定了的各种需求
D. 系统测试是指把己确认的软件与其他系统元素结合在一起进行测试
【答案】B
【解析】集成测试也叫做组装测试。通常在单元测试的基础上,将所有的程序模块进行有序的、递增的测试。集成测试是检验程序单元或部件的接口关系,逐步集成为符合概要设计要求的程序部件或整个系统。
5. 随着开发小组人数的( ),因交流开发进展情况和讨论遇到的问题而造成的通信开销也急剧増加。
A. 增加
B. 降低
C. 稳定
D. 不稳定
【答案】A
【解析】当开发小组变得更大时,即开发小组人数增加时,每个人需要用更多时间与组内其他成员讨论问题、协调工作,因此,通信开销也随之增加。
6. 验收测试的任务是验证软件的( )。
A. 完整性
B. 正确性
C. 有效性
D. 移植性
【答案】C
【解析】“软件的有效性”就是指软件系统的功能和性能与用户的要求和期望是否一致。如果一致,说明软件是有效的。验收测试就是系统测试完成后,用户根据合同进行的测试。目的是确定系统功能和性能的可接受性,即验证软件的有效性。
7. 软件测试是软件开发过程中重要和不可缺少的阶段,其包含的内容和步骤甚多,而测试过程的多种环节中基础的是( )。
A. 集成测试
B. 单元测试
C. 系统测试
D. 验收测试
【答案】B
【解析】软件测试一般可分为单元测试、集成测试、系统测试和回归测试四类,其中单元测试又称模块测试, 是针对软件设计的最小单位一程序模块,进行正确性检验的测试工作。其目的在于发现各模块内部可能存在的各种差错,是软件测试中最基础的环节。
8. 分层DFD 是一种比较严格又易于理解的描述方式,它的顶层图描述了系统的( )。
A. 细节
B. 输入与输出
C. 软件的作者
D. 绘制的时间
【答案】B
【解析】数据流图的顶层流图只包含一个加工,用以表示被开发的系统,然后考虑该系统有哪些输入数据,这些输入数据从哪里来;有哪些输出数据,输出到哪里去。这样就定义了系统的输入、输出数据流。顶层图的作 用在于表明被开发系统的范围以及它和周围环境的数据交换关系。顶层图只有一张。
9. “高产”的测试是指( )。
A. 用适量的测试用例,说明测试程序正确无误
B. 用适量的测试用例,说明测试程序符号相应的要求
C. 用适量的测试用例,发现被测试程序尽可能多的错误
D. 用适量的测试用例,纠正被测试程序尽可能多的错误
【答案】C
【解析】软件测试的目的就是在软件系统交付运行之前,尽可能多地发现系统中的错误和缺陷,它是保证软件质量的主要手段之一。在软件测试过程中,为了发现系统中的错误,应竭力设计能暴露错误的测试用例。高效的测试是指用少量的测试用例,发现被测软件尽可能多的错误。
10.面向对象方法有许多特征,如软件系统是由对象组成的;( );对象彼此之间仅能通过传递消息互相联系等。
A. 开发过程基于功能分析和功能分解
B. 强调需求分析重要性
C. 把对象划分成类,每个对象类都定义一组数据和方法
D. 对已有类进行调整
【答案】C
【解析】面向对象方法是一种把面向对象的思想应用于软件开发过程中,指导开发活动的系统方法,它的基 本特征有对象唯一性、封装性、继承性和多态性等,它规定软件系统是由对象组成的,将对象划分成类,每个对象类都定义一组数据和方法。