软件导论第58章阶段练习课堂.docx
《软件导论第58章阶段练习课堂.docx》由会员分享,可在线阅读,更多相关《软件导论第58章阶段练习课堂.docx(14页珍藏版)》请在冰豆网上搜索。
![软件导论第58章阶段练习课堂.docx](https://file1.bdocx.com/fileroot1/2023-1/10/fff880ce-680d-4a3d-a1cc-6f5f40d4cebb/fff880ce-680d-4a3d-a1cc-6f5f40d4cebb1.gif)
软件导论第58章阶段练习课堂
第5-8章阶段练习
选择题
(1)模块的内聚性最高的是( )
A.逻辑内聚B.时间内聚
C.偶然内聚D.功能内聚
(2)总体设计的目的是确定整个系统的( )。
A.规模B.功能及模块结构
C.费用D.测试方案
(3)一个模块内部各程序都在同一数据结构上操作,这个模块的内聚性称为( )。
A.时间内聚B.功能内聚
C.通信内聚C.过程内聚
(4)软件总体设计是指软件总体结构设计和数据设计,该阶段的主要任务不包括()。
A.设计软件的模块结构B.定义接口并建立数据结构
C.模块设计D.生成概要设计规格说明
(5)如果某种内聚要求一个模块中包含的任务必须在同一段时间内执行,则这种内聚为()。
A.时间内聚B.逻辑内聚C.通信内聚D.信息内聚
(6)为了提高模块的独立性,模块之间最好使用( )。
A.控制耦合B.公共耦合C.内容耦合D.数据耦合
(7)结构化程序设计的一种基本方法是()。
A.筛选法B.递归法C.归纳法D.逐步求精法
(8)对软件进行分解,是为了()。
A.降低模块间接口的复杂程度
B.降低模块的复杂程度
C.降低模块的复杂程度,并降低模块间接口的复杂程度
D.降低模块的复杂程度,并提高模块间接口的复杂程度
(9)在软件工程中,描绘软件结构的图形工具不包括()。
A.层次图B.HIPO图C.PAD图D.H图
(10)在详细设计阶段经常采用的图形工具包括()。
A.PAD图B.程序流程图C.N-S图D.以上都是
(11)提高程序可读性的手段包括()。
A.使用三种标准控制结构B.采用有实际意义的变量名
C.给程序加注释D.以上都是
(12)结构化程序设计的三种基本控制结构不包括()。
A.顺序B.选择C.转移D.循环
(13)详细设计中,过程设计的常用图形工具不包括()。
A.程序流程图B.数据流图C.N-S盒图D.PAD图
(14)下列关于详细设计中的说法中正确的是()等。
A.详细设计任务相当于设计程序的“蓝图”
B.详细设计的根本目标是应该怎样具体地实现系统
C.详细设计≠编写代码
D.以上都正确
(15)结构化程序之所以具有易于阅读,并且有可能验证其正确性,这是由于( )
A.它强调编程风格B.选择良好的数据结构和算法
C.有限制地使用GOTO语句D.只有三种基本结构
(16)程序设计语言主要分三大类:
机器语言,汇编语言和()。
A.逻辑语言B.高级语言C.自然语言D.智能语言
(17)结构化程序设计中的三种基本控制结构是()。
A.过程、子程序和分程序B.顺序、选择和循环
C.递归、堆栈和队列D.调用、返回和转移
(18)软件详细设计的主要任务是确定每个模块的( )。
A.算法和使用的数据结构 B.外部接口
C.功能D.编程
(19)在详细设计阶段,经常采用的工具包括()。
A.程序流程图B.SAC.SCD.DFD
(20)详细设计的结果基本决定了最终程序的()。
A.代码的规模B.运行速度
C.质量D.可维护性
(21)两个模块彼此传递的信息中有控制信息,这种耦合称为( )。
A.数据耦合B.公共环境耦合C.内容耦合D.控制耦合
(22)结构化设计又称为( )。
A.概要设计 B.面向数据流设计
C.面向对象设计 D.详细设计
(23)按照总体设计中的启发式规则,模块的作用域和模块的控制域之间的关系应为()。
A.模块的作用域应在模块的控制域之内。
B.模块的控制域应在模块的作用域之内。
C.模块的控制域与模块的作用域互相独立。
D.以上说法都不对。
(24)在SD方法中全面指导模块划分的最重要的原则是()。
A.程序模块化B.模块高内聚C.模块低耦合D.模块独立性
(25)软件总体设计是指软件总体结构设计和数据设计,该阶段的主要任务不包括()。
A.设计软件的模块结构B.定义接口并建立数据结构
C.模块内部算法设计D.生成概要设计规格说明
(26)软件详细设计主要采用的方法是( )。
A.模块设计B.结构化设计C.PDL语言D.结构化程序设计
(27)详细设计中,过程设计的常用工具有()等。
A.程序流程图,N-S盒图,PAD图B.程序流程图,数据流图
C.程序流程图,系统流程图D.程序流程图,E-R图
(28)结构化程序设计主要强调的是()。
A.程序易读性B.程序的效率
C.程序设计语言的先进性D.程序的规模
(29)提高程序可读性的最有力手段是()。
A.使用三种标准控制结构B.采用有实际意义的变量名
C.显式说明一切变量D.给程序加注释
(30)一般来说,在软件生命周期中成本最高的阶段是( )。
A.详细设计B.软件编码
C.软件测试D.软件维护
(31)软件测试中根据测试用例设计的方法的不同可分为黑盒测试和白盒测试两种,它们( )。
A.前者属于静态测试,后者属于动态测试
B.前者属于动态测试,后者属于静态测试
C.都属于静态测试
D.都属于动态测试
(32)若有一个计算类型的程序,它的输入量只有一个X,其范围是[-1.0,1.0],现从输入的角度考虑一组测试用例:
-1.001,-1.0,1.0,1.001。
设计这组测试用例的方法是( )。
A.条件覆盖法B.等价分类法C.边界值分析法D.错误推测法
(33)单元测试的测试用例主要根据( )的结果来设计。
A.需求分析B.详细设计C.概要设计D.源程序
(34)软件测试是为了()而执行程序的过程。
A.纠正错误B.发现错误C.避免错误D.证明正确
(35)常用的黑盒测试方法不包括()。
A.等价划分B.边界值分析C.逻辑覆盖D.错误推测
(36)软件测试中,白盒法是通过分析程序的( )来设计测试用例的。
A.应用范围B.内部逻辑C.功能D.输入数据
(37)使用黑盒测试时,测试用例的设计应根据()。
A.程序的内部逻辑B.程序的复杂程度
C.使用说明书D.程序的功能
(38)黑盒测试在设计测试用例时,主要需要研究()。
A.需求规格说明与概要设计说明B.详细设计说明
C.项目开发计划D.概要设计说明与详细设计说明
(39)与确认测试阶段有关的文档是( )。
A.需求规格说明书B.概要设计说明书
C.详细设计说明书D.源程序
(40)()是指程序在给定的时间点,按照规格说明书的规定成功运行的概率。
A.可移植性B.可用性C.可靠性D.可扩展性
(41)()是指程序在给定的时间间隔内,按照规格说明书的规定成功运行的概率。
A.可移植性B.可用性C.可靠性D.可扩展性
(42)软件调试技术包括()。
A.边界值分析B.演绎法C.循环覆盖D.集成测试
(43)为软件的运行增加监控设施以应对将来可能出现的问题,这种维护的维护类型是()。
A.改正性维护B.适应性维护C.完善性维护D.预防性维护
(44)在整个软件维护阶段所花费的全部工作中,哪种维护所占比例最大?
()
A.改正性维护B.适应性维护C.完善性维护D.预防性维护
(45)产生软件维护的副作用,是指( )
A.开发时的错误 B.隐含的错误
C.因修改软件而造成了新的错误 D.运行时误操作
(46)下列属于维护阶段的文档是()。
A.软件规格说明B.用户操作手册
C.软件问题报告D.软件测试分析报告
(47)维护活动必须应用于()
A.软件文档B.整个软件配置C.可执行代码D.数据
(48)为了提高软件的可维护性,在编码阶段应注意( )。
A.保存测试用例和数据B.提高模块的独立性
C.文档的副作用D.养成好的程序设计风格
(49)以下哪些问题是维护人员经常面对的问题?
()。
A.理解别人的程序非常困难B.文档不合格
C.设计时没考虑未来的修改维护D.以上都是
(50)决定软件可维护性的因素包括()。
A.可理解性,可测试性,可修改性,可移植性,可用性
B.可理解性,可测试性,可修改性,可移植性,可重用性
C.可理解性,可靠性,可测试性,可修改性,可移植性
D.可理解性,可扩展性,可测试性,可修改性,可升级性
(51)软件生存周期的()工作与软件可维护性有着密切的关系。
A.编码阶段B.设计阶段C.测试阶段D.每个阶段
(52)软件维护困难的主要原因是()。
A.费用低B.人员少
C开发设计中的缺陷D.得不到用户支持
(53)因计算机硬件和软件环境的变化而作出的修改软件的过程称为()。
A.改正性维护B.适应性维护C.完善性维护D.预防性维护
(54)在软件维护的实施过程中,为了正确和有效地修改,需要经历以下三个步骤:
分析和理解程序,修改程序,重新验证程序。
()是决定维护成败和质量好坏的关键。
A.分析和理解程序B.重新验证程序C.修改程序D.验收程序
(55)软件可移植性是用来衡量软件的()的重要尺度之一。
A.人机关系B.效率C.质量D.通用性
(56)软件质量必须在( )加以保证。
A.开发之前B.开发之后
C.可行性研究过程中D.设计与实现过程中
填空题
1.软件设计的主要任务是根据导出系统的实现方案。
2.一个模块拥有的直属下级模块的个数称为,一个模块的直接上级模块的个数称为。
3.将数据流图映射为软件结构时,所用映射方法涉及信息流的类型。
其信息流分为和两种类型。
4.耦合的强弱取决于的复杂性、进入或调用模块的位置以及通过界面传送数据的多少等。
5.总体设计确定模块的 ,而详细设计确定模块的 。
6.软件结构是以 为基础而组成的一种控制层次结构。
7.详细设计的工具可分为 、 和 三大类。
8.软件过程设计中最常用的技术和工具主要为程序流程图、 、 、盒图、 和PDL语言。
9.详细设计通常以 技术为逻辑基础,因为从软件工程观点看,
是软件最重要的质量标准之一。
10.对于复杂数据中的数据元素的组成方式有、、和可选等四种基本类型。
11.影响编码质量的因素包括 、编程准则和 。
12.软件维护的副作用副作用大致可分为三类:
代码副作用、副作用、的副作用。
13.软件测试的目的是,通常把测试方法分为和两大类。
因为通常不可能做到,所以精心设计是保证达到测试目的所必需的。
14.进行软件测试的关键是设计出的测试用例,测试用例应由和
两部分组成。
15.单元测试过程应为测试模块开发一个和(或)若干个。
16.进行单元测试的依据是 描述,单元测试应对模块内所有重要的 设计测试用例,以便发现模块内部的错误。
17.确认测试应检查软件能否按合同要求进行工作,即是否满足的确认标准。
18.若有一个计算类型的程序,它的输入量只有一个,其范围是现从输入的角度考虑一组测试用例,设计这组测试用例的方法是。
19.在软件开发过程中要产生大量的信息,要进行大量的修改,软件配置管理能协调软件开发,并使混乱减到最低程度。
20.若年利率为i,不计复利,n年后可得钱数为F,则现在的价值
P=F/(1+n*i)。
判断题
1.系统分析阶段和系统设计阶段一般不考虑测试。
()
2.改造程序结构,要降低耦合度,提高内聚度。
()
3.一个软件系统中可能会出现所有模块之间没有任何联系的情况。
()
4.采用信息隐藏原理指导模块设计可以支持模块的并行开发,减少软件测试和软件维护的工作量。
()
5.数据流图的分解速度应保持较高。
通常一个加工每次可分解为10~20个子加工。
(F)
6.概要设计也称总体设计,其过程由确定设计方案和结构设计两个阶段组成。
()
7.只有了解用户、了解任务,才能设计出好的用户界面。
()
8.一般单元测试不可以并行进行。
()
9.测试最终是为了证明程序无错误。
()
10.通常用数据流图、数据字典和简明算法描述表示系统的逻辑模型。
()
11.数据流图就是用来刻画数据流和转换的信息系统建模技术。
()
12.软件过程设计不用遵循“自上而下,逐步求精”的原则和单入口单出口的结构化设计思想。
()
13.判定表不适合做通用的设计工具,不能表示顺序结构、循环结构。
()
14.面向数据结构设计方法一般都包括下列任务:
确定数据结构特征;用顺序、选择和重复三种基本形式表示数据等步骤。
()
15.结构化程序设计SP强调模块采用自上而下逐步求精设计方法,单入口、单出口标准结构。
()
16.盒图的主要优点之一是强制设计人员采用结构化设计方法。
()
17.通常紧致性好的语言一致性就好。
(F)
18.编程风格是在提高性能的前提下,有效地编排和组织程序以提高可读性和可维护性。
()
19.数据输入的一般准则中包括保证信息显示方式与数据输入方式的协调一致;允许用户定做输入格式等内容。
(T)
20.编码时应尽可能使用全局变量。
()
21.用户本身的技能,个性上的差异,行为方式的不同,不会对人机界面使用造成影响。
()
22.为提高可交互性一般应提高用户对话、移动和思考的效率,即最大可能地减少击键次数,缩短鼠标移动的距离,避免使用户产生无所适从的感觉。
()
23.过程式程序设计语言的基本机制包括:
消息传送、数据类型的定义、多态、子程序、控制结构。
()
24.只要完成了软件的测试工作,将软件产品交给用户,软件生命周期就结束了。
()
25.模块的扇入是指该模块被其它模块调用的个数,扇入应尽可能的小。
()
26.系统测试是把软件、硬件和环境连在一起的全面测试。
()
27.软件测试是对软件规格说明、软件设计和编码的最全面、最后的审查。
()
28.软件生命周期中,测试的工作量最大。
()
29.软件测试的目的是为了证明一个软件的设计没有错误,只有没有任何错误的软件才能使用。
()
30.测试计划、测试用例、出错统计和有关的分析报告一般不用长期保存。
()
31.软件测试中,应该尽量穷尽所有的数据,以便保证测试的质量。
()
32.黑盒测试法可有效的检查模块的内部逻辑结构的正确性。
()
33.测试一般情况下是以白盒法为主黑盒法作为补充。
()
34.文档记录软件开发活动和阶段成果,具有永久性,可供人或机器阅读。
()
35.结构化维护用于待维护的软件的配置是完整的维护。
()
36.非结构化维护用于软件的配置中只有源代码维护。
()
37.完善性维护是提高或完善软件的性能。
()
38.定软件项目进度表的途径之一是软件开发小组根据提供软件产品的最后期限从后往前安排时间。
()
39.重构工程也称修复和改造工程,它是在逆向工程所获信息的基础上修改或重构已有的系统,产生系统的一个新版本。
()
附加题
1.请使用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.根据下列条件使用等价类划分法设计测试用例。
某八位微机,其八进制常数定义为:
以零开头的数是八进制整数,其值的范围是-177~177,如05,0127,-065。
(1)划分等价类并编号,如下表示:
八进制整型常量输入条件的等价类表
输入数据
合理等价类
不合理等价类
八进制整数
1、2-4位以0打头的数字串
2、3-5位以-0打头的数字串
3、以非0非-打头的串
4、0打头含有非数字字符的串
5、以-0打头含有非数字字符的串
6、多于5个字符
7、-后非0的多位串
8、-后有非数字字符
9、-后多于4个数字
八进制数范围
10、在-177-177之间
11、小于-177
12、大于177
(2)为合理等价类设计测试用例,表中有两个合理等价类,设计两个例子
测试数据
期望结果
覆盖范围
023
显示有效输入
1,10
-0156
显示有效输入
2,10
(3)为每一个不合理等价类,至少设计一个测试用例
测试数据
期望结果
覆盖范围
102
显示无效输入
3
0A12
显示无效输入
4
-0X33
显示无效输入
5
-02212
显示无效输入
6
-1A1
显示无效输入
7
-02a4
显示无效输入
8
-027711
显示无效输入
9
-0200
显示无效输入
11
0223
显示无效输入
12
2.已知:
某教务管理信息系统中要求用户输入成绩。
成绩限制为0到100之间的整数,即系统只能对该范围内的成绩进行处理。
如果用户输入的成绩不在此范围内,则显示“输入错误”。
输入的成绩小于60则显示“不及格”,大于等于60显示“及格”。
(该系统规定成绩只能为整数,输入小数或其它字符无效。
)
试用等价类划分法和边界值分析法设计测试用例,来测试程序的“输入成绩”功能。
解题:
(1)依据题目,划分的等价类为:
输入等价类
合理等价类
不合理等价类
输入类型
1.整数数字
2.含有非数字字符
3.有小数点
成绩范围
4.0至59之间
5.60至100之间
6.小于0
7.大于100
采用等价划分法设计的测试用例如下:
测试数据
期望结果
覆盖范围
88
输入有效(及格)
1、5
35
输入有效(不及格)
1、4
A
输入无效
2
0.1
输入无效
3
-10
输入无效
6
101
输入无效
7
(2)边界值法设计测试用例的情况如下表所示:
边界值
测试数据
期望结果
0
-1
输入无效
0
输入有效(不及格)
1
输入有效(不及格)
60
59
输入有效(不及格)
60
输入有效(及格)
61
输入有效(及格)
100
99
输入有效(及格)
100
输入有效(及格)
101
输入无效
4.根据下面给出的规格说明,利用等价类划分的方法,给出足够的测试用例。
“一个程序读入3个整数,它们分别代表一个三角形的3个边长。
该程序判断所输入的整数是否构成一个三角形,以及该三角形是一般的、等腰的或等边的,并将结果打印出来。
”
要求:
设三角形的3条边分别为A、B、C,并且
(1)列出等价类表,格式如下:
输入条件
有效等价类
无效等价类
(注意:
将等价类编号)
(注意:
将等价类编号)
(2)设计测试用例,格式如下:
用例n:
输入【A,B,C】覆盖等价类…(列出编号),输出结果为……。
答:
(1)列出等价类表
输入条件
有效等价类
无效等价类
是否构成一个三角形
(1)A>0且B>0且C>0且
A+B>C且B+C>A且
A+C>B。
(2)A≤0或B≤0或C≤0
(3)A+B≤C或A+C≤B
或B+C≤A
是否等腰三角形
(4)A=B或A=C或B=C
(5)A≠B且A≠C且B≠C
是否等边三角形
(6)A=B且A=C且B=C
(7)A≠B或A≠C或B≠C
(2)设计测试用例
用例1:
输入【3,4,5】覆盖等价类(1,2,3,4,5,6),输出结果为构成一般三角形。
用例2:
三者取一
输入【0,1,2】覆盖等价类
(2),输出结果为不构成三角形。
输入【1,0,2】覆盖等价类
(2),输出结果为不构成三角形。
输入【1,2,0】覆盖等价类
(2),输出结果为不构成三角形。
用例3:
三者取一
输入【1,2,3】覆盖等价类(3),输出结果为不构成三角形。
输入【1,3,2】覆盖等价类(3),输出结果为不构成三角形。
输入【3,1,2】覆盖等价类(3),输出结果为不构成三角形。
用例4:
三者取一
输入【3,3,4】覆盖等价类
(1)(4),输出结果为等腰三角形。
输入【3,4,4】覆盖等价类
(1)(4),输出结果为等腰三角形。
输入【3,4,3】覆盖等价类
(1)(4),输出结果为等腰三角形。
用例5:
输入【3,4,5】覆盖等价类
(1)(5),输出结果为不是等腰三角形。
用例6:
输入【3,3,3】覆盖等价类
(1)(6),输出结果为等边三角形。
用例7:
三者取一
输入【3,4,4】覆盖等价类
(1)(4)(7),输出结果为不是等边三角形。
输入【3,4,3】覆盖等价类
(1)(4)(7),输出结果为不是等边三角形。
输入【3,3,4】覆盖等价类
(1)(4)(7),输出结果为不是等边三角形。
(注:
文档可能无法思考全面,请浏览后下载,供参考。
可复制、编制,期待你的好评与关注)