软件工程导论16章习题Word下载.docx
《软件工程导论16章习题Word下载.docx》由会员分享,可在线阅读,更多相关《软件工程导论16章习题Word下载.docx(19页珍藏版)》请在冰豆网上搜索。
![软件工程导论16章习题Word下载.docx](https://file1.bdocx.com/fileroot1/2023-1/29/2909b7dd-0875-4cb7-aa27-2ff074628c0d/2909b7dd-0875-4cb7-aa27-2ff074628c0d1.gif)
A.1988B.1968
C.1948D.1928
2.瀑布模型的关键不足在于(D)。
A.过于简单B.各个阶段需要进行评审
C.过于灵活D.不能适应需求的动态变更
3.以下哪一项不是软件危机的表现形式(C)。
A.开发的软件不满足用户需要B.开发的软件可维护性差
C.开发的软件价格便宜D.开发的软件可靠性差
7.软件开发的需求活动,其主要任务是(AD)。
A.给出软件解决方案B.给出系统模块结构
C.定义模块算法D.定义需求并建立系统模型
8.以下说法错误的是(A)。
A.文档仅仅描述和规定了软件的使用范围及相关的操作命令
B.文档也是软件产品的一部分,没有文档的软件就不成软件
C.软件文档的编制在软件开发工作中占有突出的地位和相当大的工作量
D.高质量文档对于发挥软件产品的效益有着重要的意义
9.一个项目是否开发,从经济上来说是否可行,归根结底是取决于(A)。
A.成本估算 B.项目计划
C.工程管理 D.工程网络图
21、软件是一种(C)
A、程序
B、数据
C、逻辑产品
D、物理产品
22、需求分析最终结果是产生(B)
A、项目开发计划B、需求规格说明书
C、设计说明书D、可行性分析报告
30、软件按照设计的要求,在规定时间和条件下达到不出故障,持续运行的要求的质量特性称为(B)
A.可用性B.可靠性
C.正确性D.完整性
36、对象实现了数据和操作的结合,使数据和操作(C)于对象的统一体中。
A、结合B、隐藏
C、封装D、抽象
37、(
D)是比较理想的可重用软构件。
A.子程序库
B.源代码包含文件
C.对象
D.类
39、软件生存周期中时间最长的是(D)阶段。
A、总体设计B、需求分析
C、软件测试D、软件维护
42、为使得开发人员对软件产品的各个阶段工作都进行周密的思考,从而减少返工,所以(C)的编制是很重要的。
A、需求说明B、概要说明
C、软件文档D、测试计划
52.以下哪一项不是软件危机的表现形式(3)
(1)成本高
(2)生产率低(3)技术发展快(4)质量得不到保证
53.以下哪一项不是面向对象的特征(4)
(1)多态性
(2)继承性(3)封装性(4)过程调用
59.“软件危机”是指(C)
A.计算机病毒的出现
B.利用计算机进行经济犯罪活动
C.软件开发和维护中出现的一系列问题
D.人们过分迷恋计算机系统
71.快速原型是利用原型辅助软件开发的一种新思想,它是在研究(A)的方法和技术中产生的。
A.需求阶段B.设计阶段
C.测试阶段D.软件开发的各个阶段
78.软件开发过程来自用户方面的主要干扰是( A )
A.功能变化B.经费减少
C.设备损坏D.人员变化
92.需求分析是回答系统必须( A )的问题。
A.做什么B.怎么做
C.何时做D.为谁做
107.螺旋模型是一种将瀑布模型和_________结合起来的软件开发模型。
( A )
A.增量模型B.专家系统
C.喷泉模型D.变换模型
108.需求规格说明书的作用不包括( C )
A.软件验收的依据
B.用户与开发人员对软件要做什么的共同理解
C.软件可行性研究的依据
D.软件设计的依据
111.在软件生产的程序系统时代由于软件规模扩大和软件复杂性提高等原因导致了( A )
A.软件危机B.软件工程
C.程序设计革命D.结构化程序设计
125.需求分析中开发人员要从用户那里了解(A)
A.软件做什么B.用户使用界面C.输入的信息D.软件的规模
129.可行性分析是在系统开发的早期所做的一项重要的论证工作,它是决定该系统是否开发的决策依据,因必须给出(B)的回答。
A.确定B.行或不行C.正确D.无二义
130.需求分析阶段的任务是确定(D)
A.
软件开发方法
B.
软件开发工具
C.
软件开发费
D.软件系统的功能
140.需求分析是分析员经了解用户的要求,认真细致地调研、分析,最终建立目标系统的逻辑模型并写出(B)的过程。
A.模块说明书B.软件规格说明
C.项目开发计划D.合同文档
第二章练习题
7.软件的模块数越少,其软件成本越低。
X
8.软件模块之间的耦合性越弱越好。
√
9.模块化,信息隐藏,抽象和逐步求精的软件设计原则有助于得到高内聚,低耦合度的软件产品。
√
10.耦合是指一个模块内各个元素彼此结合的紧密程度。
11.过大的模块可能是由于分解不充分造成的,即使降低模块独立性也必须继续分解。
12.在设计模块时,其宽度和深度要适当。
13.模块耦合的强弱取决于模块间接口的复杂程度。
10.抽象:
现实世界中一定事物,状态或过程之间总存在着某些相似的方面。
把这些相似的方面集中和概括起来,暂时忽略它们之间的差异,这就是抽象(抽出事物本质的共同的特征而暂不考虑它的细节,不考虑其它因素。
)。
11.模块化:
就是把程序划分独立命名且可独立访问的模块,每个模块完成一个子功能,把这些模块集成起来构成一个整体,可以完成指定的功能满足用户的需求。
12.逐步求精:
为了能集中精力解决主要问题而尽量推迟对问题细节的考虑。
逐步求精是人类解决复杂问题时采用的基本方法,也是许多软件工程技术的基础。
13.耦合:
是对一个软件结构内不同模块之间互联程度的度量。
14.内聚:
标志一个模块内各个元素彼此结合的紧密程度,它是信息隐藏和局部化概念的自然扩展。
15.模块独立:
是模块化、抽象、信息隐藏和局部化概念的直接结果。
16.信息隐蔽:
指在设计和确定模块时,使得一个模块内包含的信息,对于不需要这些信息的其它模块来说,是不能访问的。
10.在面向对象的设计中,我们应遵循的设计准则除了模块化、抽象、低耦合、高内聚以外,还有(B)。
A.隐藏复杂性B.信息隐蔽
C.经常类的复用D.类的开发
20、为了提高模块的独立性,模块内部最好是(C)
A、逻辑内聚B、时间内聚
C、功能内聚D、通信内聚
33、从心理学角度看,一次大模块分解为多少个子模块为宜。
(B)
A、3±
1B、7±
2
C、15±
1D、18±
38、软件设计启发规则不包括(C)
A、在耦合方式上降低模块间接口的复杂性
B、模块功能应该可以预测
C、将模块的控制域保持在其作用域内
D、设计单入口单出口的模块
40、为了提高模块的独立性,模块之间的联系最好的是(D)。
A、公共耦合B、控制耦合
C、内容耦合D、数据耦合
48、下列几种类型中,耦合性最弱的是(D)。
A、内容型B、控制型
C、公共型D、数据型
51.内聚程度最高的是(A)
A、功能内聚B巧合内聚C、过程内聚D、信息内聚
89.通信内聚、逻辑内聚、顺序内聚和时间内聚的内聚性从高到低顺序是(C)
A、通信、逻辑、顺序、时间
B、通信、时间、顺序、逻辑
C、顺序、通信、时间、逻辑
D、顺序、通信、逻辑、时间
90.在下列四种模块的耦合性中,信息隐蔽性能最好的是(D)
A、控制耦合B、内容耦合
C、标记耦合D、数据耦合
103.当一个模块直接使用另一个模块的内部数据,这种模块之间的耦合为(D)
A、数据耦合B、公共耦合
C、标记耦合D、内容耦合
134.信息隐蔽概念与(A)这一概念直接的相关。
A、模块的独立性B、模块类型的划分
C、软件结构定义D、软件生命周期
141.数据耦合和控制耦合相比,则(B)成立。
A、数据耦合的耦合性强B、控制耦合的耦合性强
C、两者的耦合性相当D、两者的耦合性需要根据具体情况分析
第三章练习题
14.PDL的语法是开放式的,其内层语法是确定的,而外层语法则不确定。
(X)
15.过程描述语言可以用于描述软件的系统结构。
(X)
17.结构程序设计:
如果一个程序的代码块仅仅通过顺序、选择和循环这3种基本控制结构进行连接,并且每个代码块只有一个入口和一个出口,则称这个程序是结构化的。
18.详细设计:
详细设计是软件工程中软件开发的一个步骤,就是对概要设计的一个细化,就是详细设计每个模块实现算法,所需的局部结构。
19.对象:
由描述该对象属性的数据以及可以对这些数据施加的所有操作封装在一起构成的统一体。
20.继承:
广义的说是指能够直接获得已有的性质和特征,而不必重复定义它们,狭义的说是子类自动地共享基类中定义的数据和方法的机制。
21.人机界面设计的三条“黄金规则”:
1.置用户与控制之下。
2.减少用户记忆负担。
3.保持界面一致。
22.Jackson图:
描述数据结构,数据元素彼此间的逻辑关系。
18、软件详细设计的主要任务是确定每个模块的(A)
A、算法和使用的数据结构B、外部接口
C、功能D、编程
26.如果一个程序常常需要根据多种条件的复杂组合,选择执行相应的动作,则以下哪种设计工具比较适合描述它?
(A)
A、判定表B、流程图C、PDLD、N-S图
62.下面关于PDL语言不正确的说法是(B)
A、PDL是描述处理过程怎么做
B、PDL是只描述加工做什么
C、PDL也称为伪码
D、PDL的外层语法应符合一般程序设计语言常用的语法规则
87.结构化程序设计采用的三种基本控制结构是(C)
A、顺序、分支、选择B、选择、循环、重复
C、顺序、选择、循环D、输入、变换、输出
88.在软件设计中详细描述处理过程常用的三种工具是(D)
A、SA,SD,SPB、程序流程图,IPO,PAD
C、SA,SC,SDD、图形,表格,语言
101.程序的三种基本控制结构的共同特点是(C)
A、只能用来描述简单程序B、不能嵌套使用
C、单入口,单出口D、仅用于自动控制系统
123.在详细设计阶段,经常采用的工具有(A)
A、PADB、SAC、SCD、DFD
124.详细设计的结果基本决定了最终程序的(C)
A、代码的规模B、运行速度C、质量D、可维护性
136.不属于详细设计的主要工具有(D)。
A、IPO图B、PAD图C、PDLD、SC
4.下列描述中错误的是(C)
A、判定树中,越接近树的叶端重复次数越多。
B、PAD图中的控制流程为自上而下、从左到右的执行。
C、盒图又称N-S图,可以有箭头,允许随意转移。
D、过程设计语言是在伪码基础上,扩充了模块定义和调用、数据定义和输入/输出而形成的。
四、填空题
1.描述程序处理过程的工具称为过程设计工具,它们分为▁▁图形工具▁▁▁▁、▁▁表▁▁格工具▁▁和语言三类。
2.在HIPO图中,H图▁▁描述软件的层次结构▁▁,IPO图描述▁▁模块的输入、处理和输出信息▁▁。
3.在HIPO图中,▁▁▁H▁▁▁图描述软件层次结构,▁▁▁IPO▁▁▁图描述程序输入输出处理过程
4.伪码的语法规则分为“外语法”和“内语法”。
其中▁▁▁外语法▁▁▁可以用英语中一些简单的句子、短语和通用的数学符号,来描述程序应执行的功能。
五、综合应用题
40.试利用McCabe的程序复杂性计算方法计算如下程序图的复杂性。
结点:
15.边:
20.区域:
7
V(G)=7
40.下面是一段伪码程序(代码前的数字只作标号用,不参与程序执行):
START
1:
INPUT(A,B,C,D)
2:
IF(A>
0)AND(B>
0)
THEN
3:
X=A+B
ELSE
4:
X=A-B
5:
END
6:
IF(C>
A)OR(D<
B)<
p>
7:
Y=C-D
8:
Y=C+D
9:
10:
PRINT(X,Y)
STOP
根据以上的描述
(1)画出对应的流程图和程序图。
流程图:
程序图:
(2)计算程序图的环形复杂度。
V(G)=3
40.请使用PAD图和PDL语言描述在数组A
(1)~A(10)中找最大数的算法。
解:
PDL语言:
N=1
WHILEN<
=10DO
IFA(N)<
=A(N+1)MAX=A(N+1);
ELSEMAX=A(N)ENDIF;
N=N+1;
ENDWHILE;
PAD图:
[解析]人工查找时,是从第一个元素开始查找,用当前元素与下一个元素比较,将较大者作为当前元素又与下一元素比较,如此循环,直到数组末尾。
2.某厂对部分职工重新分配工作的政策是:
年龄在20岁以下者,初中文化程度脱产学习,高中文化程度当电工;
年龄在20岁到40岁之间者,中学文化程度(包括高中和初中)男性当钳工,女性当车工,大学文化程度都当技术员。
年龄在40岁以上者,中学文化程度(包括初中和高中)当材料员,大学文化程序当技术员。
请分别用判定表(条件成立用“○”表示,无关条件或条件不成立用空白表示;
用“×
”表示左边相应项动作的发生,空白表示不做左边相应项动作)和判定树表示上述问题的加工逻辑。
1
3
4
5
6
7
8
9
10
年龄
<
=20
○
>
20并且<
40
文化
初中
高中
大学
性别
男
女
脱产学习
×
电工
钳工
车工
技术员
材料员
1.已知一算法的N-S图如下,请画出相应的流程图和PAD图
PAD图:
第四章练习题
16.根据编程规范,在对方法命名时,方法名称的第一个单词常常采用一个名词。
17.随着软件技术的发展,人们逐渐认识到编码不仅要强调效率还要强调清晰。
18.程序要能直截了当地说明程序员的用意。
19.编程作业中,代码的检查是对程序进行动态分析。
20.代码版本控制的优点之一是能获得版本控制工具中保存的任何版本。
21.程序设计语言中应绝对禁止使用GOTO语句。
22.功能性注释嵌在源程序体中,用以解释其后的语句或程序段是在怎么做。
23.在Java源文件中,package行要在import行之前。
24.文件头部注释需要列出文件名、函数名、作者日期等信息√
25.编程作业中,代码的检查是对程序进行的静态分析。
13以下哪一条不属于注释的基本原则?
(C)
A、注释应该增加代码的清晰度。
B、避免使用装饰性内容。
C、注释在源代码中的比例至少为25%.
D、注释信息不仅要包括代码的功能,还应给出原因。
65.下列关于功能性注释不正确的说法是(B)
A、功能性注释嵌在源程序中,用于说明程序段或语句的功能以及数据的状态
B、注释用来说明程序段,需要在每一行都要加注释
C、可使用空行或缩进,以便很容易区分注释和程序
D、修改程序也应修改注释
66.下列关于效率的说法不正确的是(D)
A、效率是一个性能要求,其目标应该在需求分析时给出
B、提高程序效率的根本途径在于选择良好的设计方法,数据结构与算法
C、效率主要指处理机时间和存储器容量两个方面
D、程序的效率与程序的简单性无关
第五章练习题
26.软件测试就是程序测试(和文档测试)。
27.如果通过软件测试没有发现错误,则说明软件是正确的。
28.集成测试主要由用户来完成。
X
29.确认测试计划应该在可行性研究阶段制定X
30.白盒测试无需考虑模块内部的执行过程和程序结构,只要了解模块的功能即可。
31.一个好的测试用例在于能发现至今未发现的错误。
32.集成测试时,一般希望较早地发现系统功能的错误,所以经常采用自底向上的渐增式测试。
33.发现错误多的程序模块,一般残留在模块中的错误也多。
34.在做程序的单元测试时,一般桩模块比驱动模块容易编写。
35.为保证程序的安全,必须做到程序中没有任何错误存在,即容错。
36.软件测试也就是在程序编码结束后对程序进行检错和修正错误。
37.程序测试必须由程序员自己去完成。
38.
23.测试用例:
通常指测试数据和预期的输出结果
24.单元测试:
需要从程序的内部结构出发设计测试用例(对软件中的最小可测试单元进行检查和验证)
25.白盒测试:
按照程序内部的逻辑测试程序,检测程序中重要执行通路是否都按预定要求正确工作
26.黑盒测试:
是在程序结构进行的测试,它只检查程序功能是否按规格说明书的规定正常使用,程序是否适当的接收输入信息并产生正确的输入信息,程序运行过程中能否保持外部信息的完整性
27.等价划分:
把所有可能的输入数据(包括有效或无效的),划分成若干数据类(等价类),然后从每个数据类中选取少数有代表性的数据作为测试用例
6.与确认测试阶段有关的文档是(A)。
A、需求规格说明书B、概要设计说明书
C、详细设计说明书D、源程序
28、经过严密的软件测试后所提交给用户的软件产品中(B)
A、软件不再包含任何错误B、还可能包含少量软件错误
C、所提交给用户的可执行文件不会含有错误D、文档中不会含有错误。
29、等价划分测试方法属于(A)
A、黑盒测试B、白盒测试
C、边界测试D、系统测试
31、确认软件的功能是否与需求规格说明书中所要求的功能相符的测试属于(C)
A、集成测试B、恢复测试
C、确认测试D、单元测试
67.测试的关键问题是(D)
A、如何组织对软件的评审B、如何验证程序的正确性
C、如何采用综合策略D、如何选择测试用例
83.用白盒技术设计测试用例的方法包括(B)
A、边界值分析B、条件组合覆盖C、因果图D、错误推测
84.软件测试的目的是(C)
A、为了表明程序没有错误
B、为了说明程序能正确地执行
C、为了发现程序中的错误
D、为了评价程序的质量
85.针对软件需求分析所进行的软件测试是指(B)
A、集成测试B、确认测试C、黑盒子测试D、白盒子测试
100.软件测试中根据测试用例设计的方法的不同可分为黑盒测试和白盒测试两种。
(D)
A、前者属于静态测试,后者属于动态测试
B、前者属于动态测试,后者属于静态测试
C、都属于静态测试
D、都属于动态测试
119.软件测试方法中的静态测试方法之一为(A)
A、计算机辅助静态分析
B、黑盒法
C、路径覆盖
D、边界值分析
138.单元测试阶段主要涉及的文档。
(B)
A、需求设计B、编码和详细设计C、详细设计D、概要设计
139.在软件测试中,白盒测试方法是通过分析程序的(B)来设计测试用例的方法。
A、应用范围B、内部逻辑C、功能D、输入数据
7.下列关于测试的描述中正确的是(D(B))
A、单元测试是对程序模块接口进行测试。
B、组合测试是将各个程序模块组装起来进行程序之间的连接测试。
C、系统测试又称验收测试。
D.运行测试主要由编程人员完成。
8.下列关于黑盒测试的描述中正确的是(B)
A、黑盒测试是通过分析程序内部的逻辑与执行路线,设计测试用例进行测试的方法。
B、黑盒测试又称为功能测试。
C、黑盒测试主要适用于单元测试等初期阶段的测试。
D、