资源描述
软件工程习题集
精品文档
软件工程练习题
一、填空题
1. 软件生存周期一般可以划分为,问题定义、可行性研究、需求分析 、设计、编码、测试和运行与维护。
2. 可行性研究,应从经济可行性、技术可行性、运行可行性、法律可行性等方面研究。
3. 数据流图的四种基本成分:数据输入的源点和数据输出汇点、加工、
数据流 和 数据存储文件。
4. 结构化分析方法是面向_数据流 进行需求分析的方法。
5. 结构化分析方法使用 数据流图DFD 与 数据字典DD来描述。
6. 软件详细设计的主要任务是算法描述和数据结构的设计。
7.为了在软件开发过程中保证软件的质量,主要采取下述措施:审查_、复查和管理复审、测试。
8. 大型软件测试包括 单元测试 、集成测试 、确认测试和 系统测试 四个步骤。
9. 在软件开发过程中要产生大量的信息,要进行大量的修改,软件配置管理 能协调软件开发,并使混乱减到最低程度.
10.McCall提出的软件质量模型包括__13_个软件质量特性。
11.软件可维护性度量的七个质量特性是可理解性、可测试性、可修改性、可靠性、可移植性 、 可使用性和效率。
12. 为了便于对照检查,测试用例应由输入数据和预期的输出结果两部分组成。
13. 软件结构是以模块为基础而组成的一种控制层次结构。
14. 在结构化分析中,用于描述加工逻辑的主要工具有三种,即:结构化语言、判定表、判定树。
15. 结构化语言是介于自然语言和形式语言 之间的一种半形式语言。
16.系统流程图是描述物理模型的传统工具,用图形符号表示系统中各个元素表达了系统中各种元素之间的信息流动 情况。
17.CASE技术是软件工具和软件开发方法的结合。
18.数据字典有四类条目,分别是数据流、数据项、数据存储和基本加工。
19.各种软件系统的数据流图一般可分为变换型和事务型两类。
20. 软件可维护性可用七种质量特性来衡量,分别是可理解性、可测试性、可修改性、可靠性、可移植性、可使用性和效率。
21. 面向对象分析中,动态模型使用状态图_作为描述工具,该图反映了状态与事件的关系。
22.计算机程序及其说明程序的各种文档称为_软件。
23.面向对象分析方法是一种面向_对象 的开发方法。
24.成本——效益分析的目的是从_ _ 角度评价开发一个新的软件项目是否可行。
25.确认测试可以发现软件系统是否符合用户的经济_要求。
26.在算法描述工具中,PAD _是一种由左往右展开的二维树型结构。
27.随着软硬件环境变化而修改软件的维护活动称为适应性维护。
28. 面向对象方法是一种运用对象、类、继承、封装_、聚合、消息、多态性等概念来构造系统的软件开发方法。其中,继承机制实现了子类自动地共享父类中定义的数据和方法。
29.软件总体设计(概要设计)的基本任务是设计初步的软件结构图 ,它直接影响下一阶段详细设计和编码的工作。
30.软件工程方法学包括三个要素:方法、工具和过程。
31.一个程序员在编写程序时所表现出来的特点、习惯、逻辑思路等就构成了这个程序员的编程风格 。
32.软件开发是一个自顶向下逐步细化和求精的过程,而软件测试是一个由单元测试到集成测试,再到确认测试的逐步集成的过程。
33.瀑布模型是以文档为驱动、适合于需求固定的软件项目的模型。
34.在进行软件项目的人员组织上,目前比较流行的组织机构主要有民主组织机构、主程序员组织结构 和现代程序员组。其中,在民主组织机构中如果一个小组有n个成员,则可能的通信信道有n(n-1)/2条。
35. 需求分析最终结果是产生(需求规格说明书 )
36. 软件详细设计的主要任务是确定每个模块的( 算法和使用的数据结构 )。
37. IPO图由输入、处理和输出三个框组成。这个图的特点是能够直观的显示三者之间的关系。
38. 将下面的关系按继承关系、聚集关系或普通关联进行分类。
小汽车-----红旗轿车 (继承) 小汽车------驾驶员( 普通关联)班级---------学生(聚集)
39. 将下列各项分为类或类的实例
我的汽车 ( 实例 ) 交通工具 (类 )
40.软件工程研究的主要内容是软件开发技术和_软件工程管理_两个方面。
二、单项选择题
1.软件设计中划分模块的一个准则是( C )。
A. 低内聚低耦合 B.低内聚高耦合 C.高内聚低耦合 D.高内聚高耦合
2. Jackson设计方法是由英国的M. Jackson提出的,它是一种面向( C )的软件设计方法。
A.对象 B.数据流 C.数据结构 D.控制结构
3. 试判断下列叙述中,哪 个(些)是正确的( C )。
a、软件系统中所有的信息流都可以认为是事务流
b、软件系统中所有的信息流都可以认为是变换流
c、事务分析和变换分析的设计步骤是基本相似的
A、a B、b C、c D、b和c
4.( A )是用户和设计交换最频繁的方法。
A、原型化方法 B、瀑布模型方法C、 螺旋模型方法 D、构件组装模型
5. 软件工程方法学的目的是:使软件生产规范化和工程化,而软件工程方法得以实施的主要保证是( C )。
A、硬件环境 B、软件开发的环境
C、软件开发工具和软件开发的环境 D、 开发人员的素质
6. 20世纪50年代以来,出现了许多不同的程序设计语言,下列语言中哪个语言是低级语言( D )。
A、PASCAL B、 VISUAL BASIC C、 C++ D、 汇编语言
7. 软件测试的目的是?( D )
A、证明软件的正确性 B、找出软件系统中存在的所有错误
C、证明软件系统中存在错误 D、尽可能多的发现软件系统中的错误
8. 使用白盒测试方法时,确定测试数据应根据( A )和指定的覆盖标准。
A、程序的内部逻辑 B、程序的复杂程度
C、该软件的编辑人员 D、程序的功能
9. 软件维护工作的最主要部分是( C )。
A、校正性维护 B、适应性维护 C、完善性维护 D、预防性维护
10、PDL是( B )语言。
A、高级程序设计语言 B、伪码式 C、中级程序设计语言 D、低级程序设计语言
11. 数据字典定义数据流或数据存储组成时,使用了若干符号,其中{…}表示的含义是(D )
A.可选 B.与 C.或 D.重复
12.可行性研究是在( A )之前
A、系统开发 B、测试 C、试运行 D、集成测试
13.结构化方法是一种基于( D )的方法。
A.数据结构 B.程序结构 C.算法 D.数据流
14.软件可行性研究实质上是要进行一次( A )需求分析、设计过程。
A、简化、压缩的 B、详细的 C、彻底的 D、深入的
15.可行性研究的目的是( D )
A、分析开发系统的必要性 B、确定系统建设的方案
C、分析系统风险 D、确定是否值得开发系统
16.需求规格说明书的作用不包括( C )
A、软件验收的依据 B、用户与开发人员对软件要做什么的共同理解
C、软件可行性研究的依据 D、软件设计的依据
17.数据字典是用来定义( D )中的各个成份的具体含义的。
A、程序流程图B、功能结构图 C、系统结构图D、数据流程图
18.数据流程图是( A )方法中用于表示系统逻辑模型的一种图形工具。
A、SA B、SD C、SP D、SC
19. DFD中的每个加工至少有( A )。
A、一个输入流或一个输出流 B、一个输入流和一个输出流
C、一个输入流 D、一个输出流
20.需求分析阶段的关键任务是确定( D )
A、软件开发方法 B、软件开发工具C、软件开发费D、软件系统的功能
21.在SD方法中全面指导模块划分的最重要的原则是(D )。
A、程序模块化B、模块高内聚C、模块低耦合D、模块独立性
22.模块的耦合性可以按照耦合程度的高低进行排序,以下哪一项符合从低到高的正确次序( D )。
A、数据结构耦合,公共耦合,控制耦合,内容耦合
B、数据耦合,控制耦合,数据结构耦合,公共耦合
C、无直接耦合,数据结构耦合,内容耦合,控制耦合
D、无直接耦合,数据耦合,控制耦合,内容耦合
23.PDL(过程设计语言)是描述处理过程( C )
A、做什么B、为什么做 C、怎么做D、对谁做
24.( D )工具在软件详细设计过程中不采用。
A、判定表 B、IPO图 C、PDL D、DFD图
25.为高质量地开发软件项目,在软件结构设计时,必须遵循( A )原则。
A.信息隐蔽 B、质量控制 C、程序优化D、数据共享
26.当一个模块直接使用另一个模块的内部数据,这种模块之间的耦合为( D )
A、数据耦合B、公共耦合C、标记耦合D、内容耦合
27.下列几种类型中,耦合性最弱的是( D )。
A、内容型B、控制型C、公共型D、数据型
28.软件结构使用的图形工具,一般采用( C )图。
A、DFD B、PAD C、SC D、ER
29.在七种偶合中,最低偶合是( D )。
A、内容偶合B、公共偶合C、数据偶合D、非直接偶合
30.结构化程序设计,主要强调的是( C )
A.程序的执行效率 B.模块的内聚 C.程序的可理解性 D.模块的耦合
31.基线可作为软件生存期中各开发阶段的一个检查点。当采用的基线发生错误时,可以返回到最近和最恰当的( C )上。
A.配置项 B.程序 C.基线 D.过程
32.在软件设计中应该保持模块的独立性原则,( A )反映模块独立性。
A.耦合和内聚 B.数据和模块 C. 模块内部的凝聚力 D.模块之间的耦合
33.以下四种逻辑覆盖中,发现错误能力最弱的是( A )
A.语句覆盖 B.条件覆盖C.判定覆盖 D.条件组合覆盖
34.软件工程领域中,与确认测试有关的软件开发阶段是( D )
A.编码 B.详细设计C.概要设计 D.需求分析
35.为了使软件适应环境的变换而修改软件的维护活动称为( B )
A.校正性维护 B.适应性维护C.完善性维护 D.预防性维护
36.McCall质量度量模型中,与“用户熟悉、使用及准备输入和解释输出所需的工作量的大小”所对应的软件质量特性是( D )
A.正确性 B.完整性C.可靠性 D.可用性
37. 软件生存周期中,准确地确定软件系统必须做什么的阶段是( B )
A.可行性分析和项目开发计划 B.需求分析 C.概要设计 D.详细设计
38. 把瀑布模型和专家系统结合在一起的软件生存周期模型是( B )
A.增量模型 B.基于知识的模型 C.螺旋模型 D.喷泉模型
39. 以下不属于项目开发计划主要内容的是( C )
A.实施计划 B.交付期限 C.测试用例 D.人员组织及分工
40. 使用数据流图来表示系统逻辑模型的是( D )
A.Jackson B.VDM C.OOA D.SA
41. 用于描述结构化分析中数据流加工逻辑的是( A )
A.判定树 B.ER图 C.状态图 D.用例图
42.若一个模块中各个处理元素都密切相关于同一功能且必须顺序执行,前一功能元素的输出就是下一功能元素的输入,则该模块的内聚性类型是( C )
A.时间内聚 B.偶然内聚 C.顺序内聚 D.功能内聚
43.下列几种耦合类型,耦合性最高的是( A )
A.公共耦合 B.控制耦合 C.标记耦合 D.数据耦合
44.确认测试也称为( A )
A.有效性测试 B.无效性测试 C.静态测试 D.动态测试
45.黑盒测试技术不包括( B )
A.等价类划分 B.路径覆盖 C.边界值分析 D.错误推测
46.为每个模块完成的功能进行具体描述,把功能描述转变为精确的、结构化的过程描述的阶段是( B )
A.概要设计 B.详细设计 C.编码 D.测试
47.软件开发环境是支持软件整个生存周期各阶段或部分阶段的相关的一组( D )
A.软件模型 B.软件过程 C.软件工程 D.软件工具
48.从结构化的瀑布模型看,在软件生存周期的几个阶段中,对软件的影响最大是( C )
A.详细设计阶段 B.概要设计阶段 C.需求分析阶段 D.测试和运行阶段
49.数据字典是软件需求分析阶段所采用的最重要工具之一,其最基本的功能是( A)
A.数据定义 B.数据通讯 C.数据库设计 D.数据维护
50.软件结构化设计中,好的软件结构应该力求做到( B )
A.顶层扇出较少,中间扇出较高,底层模块低扇入
B.顶层扇出较高,中间扇出较少,底层模块高扇入
C.顶层扇入较少,中间扇出较高,底层模块高扇入
D.顶层扇入较少,中间扇入较高,底层模块低扇入
51.两个模块都使用同一张数据表,模块间的这种耦合称为( A )
A.公共耦合 B.内容耦合 C.数据耦合 D.控制耦合
52.与软件开发需求分析、设计及编码阶段相对应的软件测试步骤是( D )
A.组装测试、确认测试、单元测试 B.单元测试、组装测试、确认测试
C.单元测试、确认测试、组装测试 D.确认测试、组装测试、单元测试
53.软件维护产生的副作用是指( C )
A.开发时的错误 B.隐含的错误C.因修改软件而造成的错误 D.运行时的误操作
54.面向对象建模得到的三个模型,其中核心的模型是( A )
A.对象模型 B.功能模型 C.逻辑模型 D.动态模型
55.原型化方法是用户和设计者之间执行的一种交互构成,适用于___A___系统。
A.需求不确定性高的 B.需求确定的 C.管理信息 D.实时
56.原型化方法是一种___A____型的设计过程。
A.自外向内 B.自顶向下 C.自内向外 D.自底向上
57.为了提高测试的效率,应该(D )
A.随机地选取测试数据 B.取一切可能的输入数据作为测试数据
C.在完成编码以后制定软件的测试计划
D.选择发现错误可能性大的数据作为测试数据
58.数据流图中,当数据流向或流自文件时,(B )。
A、数据流要命名,文件不必命名 B、数据流不必命名,有文件名就足够了
C、数据流和文件均要命名,因为流出和流进的数据流是不同的
D、数据流和文件均不用命名,通过加工可自然反映出
59.数据流图(DFD)是用于描述结构化方法中( B)工作阶段的工具。
A、可行性分析B、需求分析C、详细设计D、程序编码
60.数据流图是用于软件需求分析的工具,下列元素( A )
Ⅰ.数据流 Ⅱ.加工Ⅲ.数据存储 Ⅳ.外部实体
A、 Ⅰ, Ⅱ和Ⅲ B、 Ⅰ和Ⅱ C、 Ⅰ, Ⅲ和Ⅳ D、全部
三、判断题
1. 用黑盒法测试时,测试用例是根据程序内部逻辑设计的。( × )
2.软件开发的主要任务是编写程序。 (× )
3.模块化程序设计中,模块越小,模块化的优点越明显。一般来说,模块的大小都在10行以下。( × )
4.在编制程序时,首先应该对程序的结构充分考虑,不要急于开始编码,而要像写软件文档那样,很好地琢磨程序具有什么样的功能,这些功能如何安排,等等。( √ )
5.软件生存周期是从软件开始开发到开发结束的整个时期。(× )
6.系统流程图是一个典型的描述逻辑系统的传统工具。(× )
7.数据流图和数据字典共同构成系统的逻辑模型。( √ )
8.扇出是一个模块直接调用的模块数目,一般推荐的扇出为3或4。( √ )
9.耦合用于衡量一个模块内部的各个元素彼此结合的紧密程度。(×)
10.程序运行过程中出现错误叫做容错。 (× )
11.软件测试的目的是证明程序没有错误。 (× )
12.白盒测试法是将程序看成一个透明的盒子,不需要了解程序的内部结构和处理过程。( × )
13.软件的质量好坏主要由验收人员负责,其他开发人员不必关心。(× )
14.判定覆盖不一定包含条件覆盖,条件覆盖也不一定包含判定覆盖。(√ )
15.软件测试的目的是为了无一遗漏的找出所有的错误。 ( × )
16.软件概要设计包括软件系统结构设计以及数据结构和数据库设计。(√ )
17.确认测试计划应该在可行性研究阶段制定(× )
18.用户需求经常是变化的,因为软件是灵活的,所以总可以满足用户的需求。(× )
四、简答题
1.什么是软件工程方法学?
2.耦合性和内聚性的定义、类型?
3.黑盒测试法和白盒测试法的定义?
4.软件生命期各阶段的任务是什么?
5.什么是结构化方法?
6.什么是数据流图?其作用是什么?
7.可行性研究的任务是什么?
8.详细设计的任务是什么?描述详细设计的工具有哪些?
9.什么是变换流?什么是事务流?
10.什么是需求分析?需求分析阶段的基本任务是什么?
五、应用题
1. 熟练掌握数据流图的知识。
1)下图描述的是某单位的商品订单处理系统,在这个系统中,描述了货物在各个过程之间是如何流动的,同时描述了其中的数据存储(订单文件和预算文件)。请你完善订单系统的数据流图。
答:
2)假设一家工厂的采购部每天需要一张定货报表,报表按零件编号排序,表中列出所有需要再次定货的零件。对于每个需要再次定货的零件应该列出下述数据:零件编号,零件名称,定货数量,目前价格,主要供应者,次要供应者。零件入库或出库称为事务,通过放在仓库中的CRT终端把事务报告给定货系统。当某种零件的库存数量少于库存量临界值时就应该再次定货。要求:画出系统的数据流图。
解答:
2. 熟练掌握判断树和判断表的画法
某航空公司规定,乘客可以免费托运重量不超过30kg的行李。当行李重量超过30kg时,对头等舱的国内乘客超重部分每公斤收费4元,对其他舱的国内乘客超重部分每公斤收费6元,对外国乘客超重部分每公斤收费比国内乘客多一倍,对残疾乘客超重部分每公斤收费比正常乘客少一半。用判定树表示与上述每种条件组合相对应的计算行李费的算法.
解答:
3. 掌握等价类划分法测试用例的设计
根据下列条件使用等价类划分法设计测试用例。
某一8位微机,其十六进制常数定义为:以0x或0X开头的数是十六进制整数,其值的范围是-7f~7f(表示十六进制的大小写字母不加区别),如0X13,0X6A,-0X3c。
解答:等价划分法 ①划分等价类并编号,如下表所示。
十六进制整型常量输入条件的等价类表
输入数据
合理等价类
不合理等价类
十六进制整数
1. 0x或0X开头1~2位数字串
2. 以-0x打头的1~2位数字串
3. 非0x或非-打头的串
4. 含有非数字且(a,b,c,d,e,f)以外字符
5. 多于5个字符
6. -后跟非0的多位串
7. -0后跟数字串
8. -后多于3个数字
十六进制数范围
9.在-7f~7f之间
10.小于-7f
11.大于7f
②为合理等价类设计测试用例,表中有三个合理等价类,设计两个例子
测试数据
期望结果
覆盖范围
0×23
显示有效输入
1,9
-0×15
显示有效输入
2,9
③为每个不合理等价类至少设计一个测试用例
测试数据
期望结果
覆盖范围
2
显示无效输入
3
G12
显示无效输入
4
123311
显示无效输入
5
-1012
显示无效输入
6
-011
显示无效输入
7
-0134
显示无效输入
8
-0x777
显示无效输入
10
0x87
显示无效输入
11
4. 根据逻辑覆盖判定规格,设计测试用例
根据下列程序流程图,设计不超过2组的测试用例,使之满足语句覆盖,要求给出每组测试数据的执行路径、输入值、输出值及两个判定(3)和(5)的判定结果。
解答: 第一组语句覆盖测试数据: A=9 B=5 C=0
路径path1: 1——2——3——4——5——7——8
(3)的判定结果为真 (5)的判定结果为假
第二组语句覆盖测试数据: A=21 b=1 C=0
路径:path2:1——2——3——5——6——7——8
(3)的判定结果为假 (5)的判定结果为真
5. 掌握N-S图和PAD图的含义及画法
将下列伪码表示为N-S图和PAD图
void root ( float root1, float root2 ) {
i = 1; j = 0;
while ( i <= 10 ) {
输入一元二次方程的系数a, b, c;
p = b*b – 4*a*c;
if ( p < 0 ) 输出“方程i无实数根”;
else if ( p > 0 ) 求出根并输出;
if ( p == 0 ) { 求出重根并输出;
j = j + 1;
}
i = i +1;
}
输出重根的方程的个数j;
}
【解答】
(1)N-S图
i = 1; j = 0;
while ( i <= 10 )
输入a, b, c; 计算 p = b2 - 4ac;
p < 0 ?
输出“方程i”无实根
求出根并输出
â
p > 0 ?
p == 0 ?
求出重根并输出; j = j + 1;
â
i = i + 1;
输出重根的方程个数i
T
T
T
F
F
F
(2)PAD图
i = 1; j = 0;
输出重根的方程个数i
while ( i <= 10 )
输入a,b,c; 计算 p = b2–4ac;
求出根并输出
p > 0 ?
p < 0 ?
输出方程i无实根
p = 0 ?
求出重根并输出; j = j+1;
i = i + 1;
收集于网络,如有侵权请联系管理员删除
展开阅读全文