[电子书]张海藩软件工程导论第6版教材课后习题答案详解复习题库考研模拟试题

张海藩软件工程导论第6版教材课后习题答案详解复习题库考研模拟试题
微信关注公众号“冲刺线”开启微信学习时代,还有免费课程相送哦!
作者:冲刺线教育
出版社:冲刺宝典
版次:1 资料更新时间:2018-01-07 14:52
资料格式:电子书 资料大小:36.34 M
页数:196 下载次数:
免费阅读

第一部分 名校考研真题

说明:我们从指定张海藩《软件工程》(第6版)为考研参考书目的名校历年考研真题以及相关教辅习题中挑选具有代表性的真题,并对其进行了详细的解答。通过这一部分的练习,可以帮助学员巩固基础知识、夯实专业基础,从而做到全方位备考。

一、选择题

1.软件工程是采用(  )的概念、原理、技术方法指导计算机程序设计的工程学科。[中国传媒大学2014研]

A.工程

B.系统工程

C.体系结构

D.结构化设计

【答案】A查看答案

【解析】软件工程是采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,从而经济地开发出高质量的软件,并且进行有效地维护。

2.随着开发小组人数的(  ),因交流开发进展情况和讨论遇到的问题而造成的通信开销也急剧增加。[中国传媒大学2014研]

A.增加

B.降低

C.稳定

D.不稳定

【答案】A查看答案

【解析】当开发小组变得更大时,即开发小组人数增加时,每个人需要用更多时间与组内其他成员讨论问题、协调工作,因此,通信开销也随之增加。

3.软件质量必须在(  )加以保证。[中国传媒大学2014研]

A.开发之前

B.开发之后

C.可行性研究过程中

D.分析、设计与实现过程中

【答案】D查看答案

【解析】保证软件质量的措施包括基于非执行的测试、基于执行的测试、程序正确性证明,这些措施贯穿于软件开发的分析、设计和实现的过程中。

4.包含风险分析的软件工程模型是(  )。[中国传媒大学2014研]

A.螺旋模型

B.瀑布模型

C.增量模型

D.喷泉模型

【答案】A查看答案

【解析】螺旋模型的基本思想是使用原型及其他方法来尽量降低风险。可以把它看作在每个阶段之前都增加了风险分析过程的快速原型模型,它是风险驱动的软件工程模型。

5.模块独立性是软件模块化所提出的要求,衡量模块独立性的度量标准则是模块的(  )。[中国传媒大学2014研]

A.抽象和信息隐藏

B.局部化和封装化

C.内聚性和耦合性

D.激活机制和控制方法

【答案】C查看答案

【解析】开发具有独立功能而且和其他模块之间没有过多的相互作用的模块,就可以做到模块独立。模块的独立性的度量标准是模块的耦合性和内聚性,内聚性越高模块独立性越强,耦合性越低模块独立性月下,因此,在设计软件时,应尽量做到高内聚、低耦合。

6.详细设计的任务是确定每个模块的(  )。[中国传媒大学2014研]

A.算法

B.功能

C.调用关系

D.输入输出数据

【答案】A查看答案

【解析】从软件开发的工程化观点来看,在使用程序设计语言编制程序之前,需要对所采用算法的逻辑关系进行分析,设计出全部必要的过程细节,并给予清晰的表达。详细设计的任务就是决定各个模块的实现算法,并精确地表达这些算法。

7.软件复杂性度量的参数包括(  )。[中国传媒大学2014研]

A.效率

B.规模

C.完整性

D.容错性

【答案】B查看答案

【解析】软件复杂性度量的方法是把程序的复杂程度乘以适当参数即可估算出软件中错误的数量以及软件开发需要用的工作量。定量度量的结果,可以用来比较两个不同设计或两个不同算法的优劣,程序的定量的复杂程度可作为模块规模的精确限度,因此,规模可作为软件复杂性度量的参数。

8.(  )定义了系统的功能需求,它是从系统的外部看系统功能,并不描述系统内部对功能的具体实现。[中国传媒大学2014研]

A.用例图

B.类图

C.合作图

D.状态图

【答案】A查看答案

【解析】用例模型描述的是外部行为者所理解的系统功能,它不涉及系统内部复杂的功能实现。用例模型的建立是系统开发者和用户反复讨论的结果,它描述了开发者和用户对需求规格所达成的共识。

9.面向对象分析是对系统进行(  )的一种方法。[中国传媒大学2014研]

A.需求建模

B.程序设计

C.设计评审

D.测试验收

【答案】A查看答案

【解析】面向对象分析就是抽取和整理用户需求并建立问题域精确模型的过程,即对系统进行需求建模的过程,它的主要任务包括:①分析陈述用户需求的文件;②深入理解用户需求,抽象出目标系统的本质属性;③用模型准确地表示。

10.测试的关键问题是(  )

A.如何组织软件评审

B.如何选择测试用例

C.如何验证程序的正确性

D.如何采用综合策略

【答案】B查看答案

【解析】软件测试是发现软件错误和缺陷的主要手段,其目的就是在软件系统交付运行之前,尽可能多地发现系统中的错误和缺陷。一般一个高效的测试是指用少量的测试用例,发现被测软件尽可能多的错误。因此,测试的关键就在对软件测试用例的设计与选择上。

11.提高测试的有效性非常重要,成功的测试是指(  )。[中国传媒大学2013研]

A.证明了被测试程序正确无误

B.说明了被测试程序符合相应的要求

C.未发现被测程序的错误

D.发现了至今为止尚未发现的错误

【答案】D查看答案

【解析】软件测试是为了发现程序中的错误而执行程序的过程;好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案;成功的测试是发现了至今为止尚未发现的错误的测试。

12.为了解决软件危机,人们提出了用(  )的原理来设计软件。[中国传媒大学2013研]

A.运筹学

B.工程学

C.软件学

D.数学

【答案】B查看答案

【解析】为了解决软件危机,通过采用软件工程来指导软件的设计。软件工程是采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护。

13.若有一个计算类型的程序,它的输入量只有一个X,其范围是[-1.0,1.0],现从输入的角度考虑一组测试用例:-1.001,-1.0,1.0,1.001。设计这组测试用例的方法是(  )。[中国传媒大学2013研]

A.条件覆盖法

B.等价分类法

C.边界值分析法

D.错误推测法

【答案】C查看答案

【解析】输入值的边界是-1.0和1.0,而设计的测试用例是-1.001、-1.0、1.0、1.001刚好等输入值的边界和刚刚超越边界值,因此,该方法属于边界值分析法。

14.原型化方法需要用户和软件开发人员之间经常交互,适用于(  )系统。[中国传媒大学2013研]

A.需求不确定的

B.需求确定的

C.管理信息

D.决策支持

【答案】A查看答案

【解析】原型化方法特别适用于需求不确定性较高的软件系统的开发。它的基本思想是根据用户给出的基本需求,通过快速实现构造出一个小型的可执行的模型,满足用户的基本要求,让用户在试用后做出反应和评价,然后开发者根据用户的意见对原型加以改进。

15.程序的三种基本控制结构是(  )。[中国传媒大学2013研]

A.过程、子程序和分程序

B.顺序、选择和重复

C.递归、迭代和回溯

D.调用、返回和转移

【答案】B查看答案

【解析】程序的三种基本控制结构是顺序、选择(分支)、重复(循环),所有控制结构都能用这三种结构表示。子程序只是程序设计一种方法,递归则是一种算法,都算不上是控制结构。

16.结构化维护与非结构化维护的主要区别在于(  )。[中国传媒大学2013研]

A.软件是否结构化

B.软件配置是否完整

C.程序的完整性

D.文档的完整性

【答案】B查看答案

【解析】非结构化维护需要付出很大代价,这种维护方式是没有使用良好定义的方法学开发出来的软件的必然结果;结构化维护是在软件开发的早期应用软件工程方法学的结果。因此,结构化维护与非结构化维护的主要区别是软件配置的完整性,有了软件的完整配置能减少精力的浪费并且能提高维护的总体质量。

17.下面是被测模块的流程图。测试数据为:A=1,B=0,X=3;A=2,B=1,X=1。判断符合如下哪个等级的逻辑覆盖:(  )。

HWOCRTEMP_ROC00

A.判定覆盖

B.语句覆盖

C.判定/条件覆盖

D.条件覆盖

【答案】D查看答案

【解析】条件覆盖指使得每个判断中的每个条件的可能值至少执行一次,题中总共有四个条件A>1、B=0、A=2和X>1,测试数据中A=2满足A>1和A=2这两个条件,X=3满足X>1的条件,B=0满足B=0的条件,所以测试数据满足每个判断中的所有条件,符合条件覆盖的要求。

18.模块(  )定义为受该模块内一个判断影响的所有模块集合。[中国传媒大学2013研]

A.控制域

B.作用域

C.宽度

D.接口

【答案】B查看答案

【解析】模块的控制域是这个模块本身以及所有直接或间接从属于它的模块的集合;模块作用域定义为受该模块内一个判断影响的所有模块的集合;模块宽度是软件结构内同一个层次上的模块总数的最大位,一般说来,宽度越大,系统越复杂;模块接口的复杂程度影响模块耦合强弱。

19.面向数据结构的设计方法(Jackson方法)是进行(  )的形式化的方法。[中国传媒大学2013研]

A.系统设计

B.详细设计

C.软件设计

D.编码

【答案】B查看答案

【解析】Jackson方法是一种面向数据结构的设计方法,在完成了软件结构设计之后,可以使用面向数据结构的方法来设计每个模块的处理过程,因此,Jackson方法适合于在详细设计阶段使用。

20.结构化设计方法一般也称为面向(  )的设计。[中国传媒大学2013研]

A.数据流

B.数据编码

C.数据库

D.数据结构

【答案】A查看答案

【解析】结构化设计方法(也称为面向数据流的设计)把信息流映射成软件结构,信息流的类型决定了映射的方法。面向数据流的设计方法的目标是给出设计软件结构的一个系统化的途径。

21.软件详细设计阶段的任务是(  )。[中国传媒大学2013研]

A.算法设计

B.功能设计

C.调用关系设计

D.输入/输出设计

【答案】A查看答案

【解析】从软件开发的工程化观点来看,在使用程序设计语言编制程序之前,需要对所采用算法的逻辑关系进行分析,设计出全部必要的过程细节,并给予清晰的表达。详细设计的任务就是决定各个模块的实现算法,并精确地表达这些算法。

22.DFD中每个加工至少有(  )。[中国传媒大学2013研]

A.一个输入流

B.一个输出流

C.多个输入输出流

D.一个输入输出流

【答案】D查看答案

【解析】数据流图(DFD)是一种用图形方式来表达系统的逻辑功能、数据在系统内部的逻辑流向和逻辑变换过程的图形化技术。每个加工描绘信息流和数据从输入移动到输出的过程中所经受的变换,因此,DFD图中每个加工至少有一个输入流和一个输出流。

23.系统流程图一般用于可行性分析中对(  )进行描述。[中国传媒大学2013研]

A.当前运行系统

B.当前逻辑模型

C.目标系统

D.新系统

【答案】A查看答案

【解析】系统流程图又称事务流程图,是系统分析时常用的一种描述方法。它描述了计算机事务处理中从数据输入开始到获得输出为止,各个处理工序的逻辑过程,是对当前运行系统的描述。

24.(  )工具在软件详细设计过程中不采用。[中国传媒大学2013研]

A.判定表

B.IPO图

C.PDL

D.DFD图

【答案】D查看答案

【解析】数据流图(DFD)中没有具体的物理部件,是一种结构化分析方法,只是描绘数据在软件中流动和被处理的逻辑过程,而且设计时只需考虑系统必须完成的基本逻辑功能,不考虑怎样具体地实现这些功能。在详细设计中由于其具有上述特点,因而一般不采用。

25.(  )详细描述软件的功能、性能和用户界面,以使用户了解如何使用软件。[中国传媒大学2013研]

A.概要设计说明书

B.详细设计说明书计

C.用户手册

D.用户需求说明书

【答案】C查看答案

【解析】在软件文档中,概要设计说明书主要说明系统的功能分配、模块划分、程序的总体结构、I/O及接口设计、运行设计、数据结构设计和错误处理设计等内容;详细设计说明书着重描述每个模块是如何实现的;用户手册帮助用户了解软件的使用,需要描述软件的功能、性能和用户界面;用户需求说明书是开发人员和用户经过充分沟通后对软件需求的共同理解,主要说明软件的功能、性能和运行环境等内容。

26.汽车有一个发动机。汽车和发动机之间的关系是(  )关系。[中国传媒大学2013研]

A.一般—具体

B.整体—部分

C.分类关系

D.主从关系

【答案】B查看答案

【解析】类有两种主要的结构关系,即一般—具体结构关系和整体—部分结构关系。前者称为分类结构,用来描述现实世界中的一般化的抽象关系;后者称为组装结构,用来描述现实世界中的类的组成的抽象关系。汽车有一个发动机,发动机是汽车的一部分,因此,汽车和发动机的关系属于整体—部分关系。

27.面向对象设计是(  )的过程。[中国传媒大学2013研]

A.软件实现

B.需求确立

C.建立问题域模型

D.建立求解域模型

【答案】D查看答案

【解析】面向对象方法把数据和行为看成是同等重要的,它是一种以数据为主线,把数据和对数据的操作紧密地结合起来建立求解域模型的过程。

28.在变更控制中,(  )可以用来确保由不同用户所执行的并发变更。[中国传媒大学2013研]

A.异步控制

B.同步控制

C.存取控制

D.基线控制

【答案】B查看答案

【解析】变更控制包括建立控制点和建立报告与审查制度,其过程中的“检出”和“登入”处理实现了存取控制和同步控制,存取控制管理各个用户存取和修改一个特定软件配置对象的权限,同步控制可用来确保由不同用户所执行任务的并发变更。

29.提高软件质量和可靠的技术大致可分为两大类。其中一类就是避开错误技术,但避开错误技术无法做到完美无缺和绝无错误,这就需要(  )。[中国传媒大学2013研]

A.消除错误

B.检测错误

C.避开错误

D.容错

【答案】D查看答案

【解析】提高软件质量和可靠性的技术大致可分为两类,一类是避开错误技术,即在开发的过程中不让差错潜入软件的技术;一类是容错技术,即对某些无法避开的差错,使其影响减至最小的技术。当避开错误技术无法做到完美无缺时,就需要引入容错技术。

30.面向对象方法有许多特征,如软件系统是由对象组成的;(  );对象彼此之间仅能通过传递消息互相联系等。[中国传媒大学2013研]

A.开发过程基于功能分析和功能分解

B.强调需求分析重要性

C.把对象划分成类,每个对象类都定义一组数据和方法

D.对已有类进行调整

【答案】C查看答案

【解析】面向对象方法是一种把面向对象的思想应用于软件开发过程中,指导开发活动的系统方法,它的基本特征有对象唯一性、封装性、继承性和多态性等,它规定软件系统是由对象组成的,将对象划分成类,每个对象类都定义一组数据和方法。

31.软件维护产生的副作用,是指(  )。[中国传媒大学2013研]

A.开发时的错误

B.隐含的错误

C.因修改软件而造成的错误

D.运行时误操作

【答案】C查看答案

【解析】因修改软件而造成的错误或其他不希望出现的情况称为维护的副作用,包括编码副作用、数据副作用、文档副作用三种。

32.软件详细设计的主要任务是确定每个模型的(  )。[中国传媒大学2013研]

A.算法和使用的数据结构

B.外部接口

C.功能

D.编程

【答案】A查看答案

【解析】软件详细设计的任务包括四点:①为每个模块确定采用的算法;②确定每一模块使用的数据结构;③确定模块接口的细节;④为每一个模块设计出一组测试用例。其中主要的任务是设计每个模块的实现算法、所需的局部数据结构。

33.为了提高模块的独立性,模块内部最好是(  )。[中国传媒大学2013研]

A.逻辑内聚

B.时间内聚

C.功能内聚

D.通信内聚

【答案】C查看答案

【解析】衡量模块独立性的两个标准是内聚和耦合,模块耦合性越低,独立性越强,内聚性越高,独立性越强,在几种内聚中,内聚程度最高的是功能内聚,因此,为了提高模块的独立性,模块内部最好是功能内聚。

34.软件结构图中,模块框之间若有直线连接,表示它们之间存在(  )。[中国传媒大学2013研]

A.调用关系

B.组成关系

C.链接关系

D.顺序执行关系

【答案】A查看答案

【解析】软件结构图也就是为了反映软件系统中组件之间相互关系和约束的体系结构设计图,一般通过分层次或分时间段等方式说明体系结构的各个组成部分的组合关系,软件结构图中的方框表示模块,方框间的直线表示模块间的调用关系。

35.需求分析最终结果是产生(  )。[中国传媒大学2013研]

A.项目开发计划

B.需求规格说明书

C.设计说明书

D.可行性分析报告

【答案】B查看答案

【解析】需求规格说明书是需求分析阶段的最终产物,也是最重要的的文档资料。对帮助开发人员明确用户实际需求起到了重要作用,是进行软件设计和开发的基础,同时也作为测试时的重要文档,用于比对软件功能是否与用户的需求相一致。

36.可行性研究要进行一次(  )需求分析。[中国传媒大学2013研]

A.深入的

B.详尽的

C.彻底的

D.简化的、压缩的

【答案】D查看答案

【解析】可行性研究是在项目建议书被批准后,对项目在技术上和经济上是否可行所进行的科学分析和论证,它需要进行一次简化的、压缩的需求分析。

37.软件测试方法中的(  )属于静态测试方法。[中国传媒大学2013研]

A.黑盒法

B.路径覆盖

C.错误推测

D.人工检测

【答案】D查看答案

【解析】软件测试从需要执行被测试软件的角度,可以分为静态测试和动态测试。静态测试可以由人工进行,充分发挥人的逻辑思维优势,也可以借助软件工具自动进行。

38.结构化设计方法在软件开发中,用于(  )。[中国传媒大学2013研]

A.测试用例设计

B.概要设计

C.程序设计

D.详细设计

【答案】B查看答案

【解析】结构化设计方法是基于模块化、自顶向下细化、结构化程序设计等程序设计技术基础发展起来的。它的基本思想是将软件设计成由相对独立且具有单一功能的模块组成的结构,可用于软件开发的概要设计。

39.软件按照设计的要求,在规定时间和条件下达到不出故障,持续运行的要求的质量特性称为(  )。[中国传媒大学2013研]

A.可用性

B.可靠性

C.正确性

D.完整性

【答案】B查看答案

【解析】软件质量特性包括:功能性、可靠性、易使用性、效率性、可维护性和可移植性。其中可靠性是指在规定的一段时间内和规定的条件下,软件维持在其性能水平有关的能力。

40.下列文档与维护人员有关的有(  )。[中国传媒大学2013研]

A.软件需求说明书

B.项目开发计划

C.概要设计说明书

D.操作手册

【答案】C查看答案

【解析】在进行软件维护时了解原有软件的总体情况是很重要的。概要设计说明书能准确地描述了对软件系统的数据要求、功能需求、性能需求、可靠性和可用性要求、出错处理需求、接口需求、约束、逆向需求及将来可能提出的需求,对了解已有软件的总体情况有很大帮助。在对已有软件做重大修改之前仔细阅读、认真研究概要设计说明书,可以避免许多修改错误。

配套考试学习软件