《软件工程》期末复习题及答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《软件工程》期末复习题及答案
一、单项选择题(本大题共60小题,在每小题的四个备选答案中,选出一个正确答案,并将正确答案填涂在答题卡上)
1. 软件危机产生的主要原因是 A 。
A.软件日益庞大
B.不能与用户良好地沟通
C.开发人员编写程序能力差
D.没有适应的开发模型
2.软件工程的发展不包括以下那个阶段 B 。
A.传统软件工程阶段
B.自主化开发阶段
C.过程软件工程阶段
D.构件软件工程阶段
3. 现代软件工程研究的内容不包括 D 。
A.软件开发模型
B.软件开发方法
C.软件支持过程
D.软件开发质量
4.以下哪个软件生存周期模型是一种风险驱动的模型 C 。
A.瀑布模型
B.增量模型
C.螺旋模型
D.喷泉模型
5.软件的开发方法不包括 C 。
A.结构化开发方法
B.面向对象开发方法
C.面向管理的开发方法
D. 面向数据结构的开发方法
6.软件生存周期中,准确地确定软件系统必须做什么的阶段是 B 。
A.可行性分析和项目开发计划 B.需求分析 C.概要设计D.详细设计
7. 需求分析中开发人员要从用户那里了解 A 。
A.软件做什么
B.用户使用界面
C.输入的信息
D.软件的规模
8. 结构化分析建立功能模型的工具是 A 。
A.DFD
B.判定树/判定表
C.SC
D.结构化语言
9. 数据词典是对数据定义信息的集合,它所定义的对象都包含于 B 。
A.数据流图
B.程序框图
C.软件结构
D.方框图
10.用于描述结构化分析中数据流加工逻辑的是 A 。
A.判定 B.ER图 C.状态 D.用例图
11.下列几种耦合类型,耦合性最高的是 A 。
A.公共耦 B.控制耦合 C.标记耦 D.数据耦合
12. 通信内聚是指 B 。
A. 把需要同时执行的动作组合在一起形成的模块 B各处理使用相同的输入数据或者产生相同的输出数据
C一个模块中各个处理元素都密切相关于同一功能且必须顺序执行 D模块内所有元素共同完成一个功能,缺一不可
13.模块 B 定义为受该模块内一个判定影响的所有模块集合。
A.控制域
B.作用域
C.宽度
D.接口
14.好的软件结构应该是 B 。
A.高耦合、高内聚
B.低耦合、高内聚
C.高耦合、低内聚
D.低耦合、低内聚
15.结构化程序设计的一种基本方法是 D 。
A.筛选法
B.递归法
C.迭代法
D.逐步求精法
16.结构化设计是一种面向 A 的设计方法。
A.数据流
B.数据库
C.数据结构
D.程序
17.若一个模块中各个处理元素都密切相关于同一功能且必须顺序执行,前一功能元素的输出就是下一功能元素的输入,则该模块的内聚性类型是
C 。
A.时间内聚 B.偶然内聚 C.顺序内聚 D.功能内聚
18.模块的内聚性最高的是 D 。
A、逻辑内聚
B、时间内聚
C、偶然内聚
D、功能内聚
19.在软件结构设计完成后,对于下列说法,正确的是 C 。
A.非单一功能模块的扇入数大比较好,说明本模块重用率高
B.单一功能的模块扇入高时应重新分解,以消除控制耦合的情况
C.一个模块的扇出太多,说明该模块过分复杂,缺少中间层
D.一个模块的扇入太多,说明该模块过分复杂,缺少中间层
20.变换流的DFD由三部分组成,不属于其中一部分的是 A 。
A.事务中心
B.变换中心
C.输入流
D.输出流
21.在详细设计阶段,经常采用的工具有 A 。
P96
A. PDL
B. SA
C. SC
D. DFD
22.详细设计的任务是确定每个模块的 C 。
A.外部特性
B.内部特性
C.算法和使用的数据
D.功能和输入输出数据
23. 详细设计的结果基本决定了最终程序的 A 。
A.代码的规模 B.运行速度 C.质量 D.可维护性
24. 软件复杂性度量的参数包括 B 。
A.效率 B.规模 C.完整性 D.容错性
25. 软件的结构化设计(SD)方法中,一般分为概要设计和详细设计两阶段,其中详细设计主要是要建立 C 。
A、软件结构
B、软件过程
C、软件模型
D、软件模块
26. 不属于常用的程序复杂程度定量度量方法为 B 。
A.语句行度量方法
B.Jackson方法
C.McCabe方法
D.Halstead方法
27.___D____工具在软件详细设计过程中不采用。
A.判定表B.IPO图 C.PDL D.DFD图
28. McCabe方法认为,环域复杂度的规模以___C___较为合理。
A.≦4
B.≦7
C.≦10
D.≧30
29. 一个只有顺序结构的程序,其环形复杂度是 B 。
A.0
B.1
C.3
D.5
30. 衡量某一语言可否做为编码语言,其评价标准不包括 B 。
A.应用领域 B.书写格式 C.算法与计算复杂性 D.效率的考虑
31. 软件测试的目的是 D 。
A.软件的正确性
B.找出软件系统中存在的所有错误
C.证明软件系统中存在错误
D.尽可能多的发现软件系统中的错误
32. 软件测试不需要了解软件设计的 D 。
A.功能
B. 内部结构
C. 处理过程
D.条件
33. 下面说法正确的是 D 。
A.经过测试没有发现错误说明程序正确
B.测试的目标是为了证明程序没有错误
C.成功的测试是发现了迄今尚未发现的错误的测试
D.成功的测试是没有发现错误的测试
34. 测试的关键问题是 B 。
A.如何组织软件评审
B.如何选择测试用例
C.如何验证程序的正确性
D.如何采用综合策略
35. 成功的测试是指运行测试用例后 B 。
A.未发现程序错误
B.发现了程序错误
C.证明程序正确性
D.改正了程序错误
36.软件测试用例主要由输入数据和 C 两部分组成。
A.测试计划
B.测试规则
C.预期输出结果
D.以往测试记录分析
37. 软件测试中白盒法是通过分析程序的 B 来设计测试用例的。
A.应用范围 B.内部逻辑 C.功能 D.输入数据
38. 黑盒法是根据程序的 C 来设计测试用例的。
A.应用范围 B.内部逻辑 C.功能 D.输入数据
39. 不属于白盒测试的技术是 D 。
A.路径覆盖 B.判定覆盖 C.循环覆盖 D.边界值分析
40. 使用白盒测试方法时,确定测试数据应根据 A 和指定的覆盖标准。
A.程序内部逻辑
B.程序的复杂度
C.使用说明书
D.程序的功能
41. 单元测试方法不包括 A 。
A.黑盒测试 B.白盒测试 C.基本路径测试 D.集成测试
42. 单元测试主要针对模块的几个基本特征进行测试,该阶段不能完成的测试是 D 。
A.系统功能
B.局部数据结构
C.重要的执行路径
D.错误处理
43. 集成测试时,能较早发现高层模块接口错误的测试方法为 B 。
A.自顶向下渐增式测试
B.自底向上渐增式测试
C.非渐增式测试
D.系统测试
44.与确认测试阶段有关的文档是 C 。
A.需求规格说明书
B.概要设计说明书
C.详细设计说明书
D.源程序
45. 确认测试也称为 A 。
A.有效性测试 B.无效性测试 C.静态测试 D.动态测试
46. 检查软件产品是否符合需求定义的过程称为 C 。
A.确认测试
B.集成测试
C.系统测试
D.单元测试
47.关于软件维护的说法错误的是 A 。
A.软件维护是软件生命周期中占用时间最长的一个阶段
B.软件维护不只是修改软件中的错误
C.软件维护对于开发商来说是无利可图的
D.在编码过程中添加适当的注释,可以降低软件维护的难度
48.与“程序维护手册”文档有关的人员是 A 。
A.管理人员和开发人员 B.管理人员和维护人员 C.维护人员和用户 D.管理人员和用户
49.在整个软件维护阶段所花费的全部工作中,所占比例最大的是 A 。
A.校正性维护
B.适应性维护
C.完善性维护
D.预防性维护
50.下列选项中,影响软件可维护性的决定因素是 D 。
A. 文档 B. 资金 C. 程序代码 D. MTTF
51.把一组具有相似特性的对象组合在一起,称之为 C 。
A. 多态性 B.继承性 C.类 D.消息
52.面向对象的主要特征除唯一性、继承性、多态性外,还具有 C 。
A.封装性
B.移植性
C.完整性
D.兼容性
53.应用执行对象的操作可以改变该对象的 A 。
A.属性 B.功能 C.行为 D.数据
54.面向对象分析中,对象模型描述了系统的 A 。
A.静态结构 B.动态结构 C.控制结构 D.顺序结构
55.面向对象设计中存在三种内聚,分别是 D 。
A.属性内聚、操作内聚、类内聚B.操作内聚、类内聚、整体-部分内
C.属性内聚、操作内聚、对象内聚D.操作内聚、类内聚、一般-具体内聚
56.不属于人机交互界面设计的准则的是 C 。
A.一致性 B.减少记忆 C.可维护性 D.富有吸引力
57.不属于面向对象系统测试的内容的是 C 。
A.功能测试 B.强度测试 C.基于线程的测试 D.性能测试
58.下列模型属于成本估算方法的有 A 。
A.COCOMO模型
B.McCall模型
C.McCabe度量法
D.时间估算法
59.版本管理是对系统不同版本进行的 A 过程。
A.标识与跟踪
B.标识变更
C.发布变更
D.控制变更
60.美国卡内基—梅隆大学SEI提出的CMM模型将软件过程的成熟度分为5个等级,以下选项中,属于可管理级的特征是 D 。
A.工作无序,项目进行过程中经常放弃当初的计划 B.建立了项目级的管理制度
C.建立了企业级的管理制度 D.软件过程中活动的生产率和质量是可度量的
二.判断题(本大题共30小题,请将答案填涂在答题卡上,正确的涂A,错误的涂B)
1. SA方法的基本思想是自顶向下逐步分解。
( A )
2. 数据词典是为分析人员查找数据流图中有关名字的详细定义而服务的。
( A )
3. 类是对具有共同特征的对象的进一步抽象。
( A )
4. Jackson图只能表达程序结构,不能表达数据结构。
( B )
5. 测试计划、测试用例、出错统计和有关的分析报告一般不用长期保存。
( B )
6. 设计阶段的输出是编码阶段的输入。
( A )
7. 模块耦合越强,则说明模块的独立性越强。
( B )
8. 基本路径测试是黑盒技术设计测试用例的方法之一。
( B )
9. 软件结构图中,模块框之间若有直线连接,表示它们之间存在顺序执行关系。
( B )
10. 判定覆盖不一定包含条件覆盖,条件覆盖也不一定包含判定覆盖。
( A )
11.在进行需求分析时同时考虑维护问题。
( A )
12.完成测试后,为缩短源程序长度而删去程序中的注解,对软件的维护不会产生影响。
( B )
13.尽可能在软件开发过程中保证各阶段文档的正确性。
( A )
14.在面向对象的需求分析方法中,建立动态模型是最主要的任务。
(B )
15.项目应用领域是选择语言的关键因素。
( A )
16.类是对具有共同特征的对象的进一步抽象。
( A )
17.如果测试过程没有发现任何错误,则说明软件没有错误。
( B )
18.CMM 是指导软件开发的一种面向对象的新技术。
( A )
19.CMM包含6个成熟度等级。
( B )
20.Jackson方法是面向数据结构的设计方法。
(A )
21. 一笔交易、一个动作、甚至操作人员按一个按钮都可以看做是一次事物。
(A )
22. 耦合是指一个模块内各个元素彼此结合的紧密程度。
( B )
23. 随着软件技术的发展,人们逐渐认识到阅读程序的重要性,编码不仅要强调效率还要强调清晰。
(A )
24. 白盒法是一种静态测试方法,主要用于模块测试。
( B )
25. 软件工程过程应该以软件设计为中心,关键是编写程序。
( B )
26. 类是对具有共同特征的对象的进一步抽象。
( A )
27. 基于情景的测试是面向对象系统确认测试的主要方法。
( B )
28. 重用是提高软件生产率和目标系统质量的重要途径,它基本上始于设计。
( A )
29. 类图用来表示系统中类和类与类之间的关系,它是对系统动态结构的描述。
( B )
30. 软件项目管理始于项目计划,而第一项计划活动就是估算。
( A )
三.简答题
1.软件生存周期都包括哪些活动?(5分)
答:软件生命期的活动包括:可行性研究与计划;需求分析;概要设计、详细设计;编码、测试;维护等活动。
(这些活动将以适当的方式分配到不同阶段去完成)
2.为什么说现代牌汽车是小汽车类的特化,而车轮不是小汽车的特化?(5分)
答:现代牌汽车是具有小汽车的全部属性和行为,它只不过是一种特定品牌的小汽车,因此现代牌汽车可以从基类派生出来,也就是说,现代牌汽车是小汽车类的特化。
车轮是组成小汽车的一种零件。
小汽车还有车身,发动机等许多种其他的零件,小汽车所具有的许多属性和行为车轮都不具有,因此车轮不能从小汽车类派生出来,它不是小汽车类的特化!
3.模块独立性与信息隐蔽有何关系?(5分)
答“模块独立性”是指软件系统中每个模块只涉及软件要求的具体的子功能,而和软件系统中其它的模块的接口是简单的。
所谓的“信息隐蔽”是指每个模块的实现细节对于其它模块来说是隐蔽的。
也就是说,模块中所包含的信息(包括数据和过程)不允许其它不需要这些信息的模块使用。
衡量模块独立性的一个准则就是模块内聚,达到信息隐蔽的模块是信息内聚模块,它是高内聚的情形,因此模块独立性当然就很强了。
4.什么是结构化分析方法?该方法使用什么描述工具??(5分)
答:结构化分析方法:是面向数据汉进行需求分析的方法。
描述工具:a、数据流图b、数据字典c、描述加工逻辑的结构化语言、判定表、判定树。
5. 面向对象方法的启发规则有哪些?(5分)
答:(1)设计结构应该清晰易懂(2)一般-特殊结构的深度应适当
(3)设计结构的类(4)使用简单的协议(5)使用简单的服务(6)把设计变动减至最小。
6.试述软件测试过程?(5分)
答:可概括为用单元测试保证模块正确工作,用综合测试保证模块集成到一起后正常工作,用确认测试保证软件需求的满足,用系统测试保证软件与其他系统元素合成后达到系统各项性能要求。
7. 答:内容:①软件开发技术②软件开发管理
面临的主要问题:①软件费用②软件可靠性③软件维护④软件生产率⑤软件重用
8. 面向对象的集成测试主要有哪几种不同的测试策略?
答:传统的集成测试策略没有意义。
面向对象软件的集成测试主要有下述两种不同的测试策略:基于线程的测试 ;基于的测试使用
9.模块的内聚性包括哪些类型?(5分)
答:模块的内聚性包括:
(1)偶然内聚 (2) 逻辑内聚 (3)时间内聚 (4) 通信内聚 (5)顺序内聚 (6) 功能内聚
四、设计题(本大题共6小题,每小题15分,共30分)
1. 复印机的工作过程大致如下:未接到复印命令时处于闲置状态,一旦接到复印命令则进入复印状态,完成一个复印命令规定的工作后又回到闲置状态,等待下一个复印命令;如果执行复印命令时发现没纸,则进入缺纸状态,发出警告,等待装纸,装满纸后进入闲置状态,准备接收复印命令;如果复印时发生卡纸故障,则进入卡纸状态,发出警告等待维修人员来排除故障,故障排除后回到闲置状态。
请用状态转换图描绘复印机的行为。
答:从问题陈述可知,复印机的状态主要有“闲置”、“复印”、“缺纸”和“卡纸”。
引起状态转换的事件主要是“复印命令”、“完成复印命令”、“发现缺纸”、“装满纸”、“发生卡纸故障”和“排除了卡纸故障”。
2. 请使用N-S图和PDL语言描述下列程序的算法。
在数据A(1)~A(10)中求最大数和次大数。
答:
PDL语言描述:
GET(a[1],a[2],...a[10])
max=a[1];
max2=a[2];
FOR i=2 TO 10
IF
ELSE a[i]>max
max2=max;
max=a[i];
IF a[i]>max2
max2=a[i];
ENDIF
ENDIF
ENDFOR
PUT(max,max2)
END
3. 假如要建立一个网站,用于发布家教消息,同时建立家教及学生的沟通桥梁。
基本需求如下:
(1)家教求职者希望能注册本人信息、修改本人资料、浏览家教信息、搜索家教信息。
(2)学生希望能够注册本人信息、修改本人资料、浏览家教信息、搜索家教信息。
(3)管理员希望能够发布网站公告、处理家教信息。
根据上面提出的基本需求,加以设计,建立家教网上发布系统的用例图。
答:
4. 将下面给出的伪码转换为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;
}
答:
5.假设一家工厂的采购部每天需要一张定货报表,报表按零件编号排序,表中列出所有需要再次定货的零件。
对于每个需
要再次定货的零件应该列出下述数据:零件编号,零件名称,定货数量,目前价格,主要供应者,次要供应者。
零件入
库或出库称为事务,通过放在仓库中的CRT终端把事务报告给定货系统。
当某种零件的库存数量少于库存量临界值时就应该再次定货。
要求:画出系统的数据流图。
答:
6. 画出下列伪码程序的流图,计算其环形复杂度.
START
INPUT(A, B, C, D)
IF(A>0)AND(B>0)
THEN X=A+B
ELSE X=A-B
END
IF(C>A)OR(D<B)
THEN Y=C-D
ELSE Y=C+D
END
PRINT(X, Y)
STOP
答:
使用下述3种方法中的任一种都可以算出上图所示流图的环形复杂度为5。
(1)该流图共有15条边,12个结点,所以环形复杂度为15-12+2=15。
(2)该流图共有5个区域,因此环形复杂度为5。
(3)该流图中共有4个判定结点,因此环形复杂度为4+1=5。