资源描述
《软件工程》试题
一、从供选择的答案中选出应填入下列叙述中( )内的正确答案。
软件设计中划分程序模块通常遵循的原则是使各模块间的耦合尽可能( A 3 )。三种可能的模块耦合是:
( B 5 ),例如,一个模块直接引用另一个模块中的数据。
( C 6 ),例如,一个模块把开关量作为参数传送给另一个模块。
( D 1 ),例如,一个模块通过公共数据结构把数据传送给另一个模块。
其中, ( E 5 )的耦合性最强。
【供选择的答案】
A: ① 强 ② 适中 ③ 弱
B~E: ① 公共耦合 ② 数据耦合 ③ 逻辑耦合
④ 外部耦合 ⑤ 内容耦合 ⑥ 控制耦合
二、为高质量地开发软件项目,在软件结构设计时必须遵循( A3 )的原则,( B2 )建立软件系统的模块结构。并且应根据( C 3 )评价系统模块划分的质量。此外在模块设计时,应从5种基本的( D5 )出发,利用它们组合成一个模块的程序块结构。 要求每个( E1 )的结构应是单入口和单出口。
【供选择的答案】
A:① 质量控制 ② 程序优化 ③ 信息隐蔽 ④ 数据共享 ⑤ 模块通信
B:① 自底向上 ② 自顶向下 ③ 衍变的自顶向下 ④ 随机 ⑤ 回归
C:① 数据独立性 ② 程序独立性 ③ 模块独立性 ④ 可修改性 ⑤ 可理解性
D:① 数据结构 ② 处理结构 ③ 功能结构 ④ 成份 ⑤ 控制结构
E:① 程序块 ② 公共块 ③ 数据块 ④ 记录块 ⑤ 通信块
三、从下列叙述中选出5条关于好的程序设计风格的正确叙述。(在对的前面打√)
(1) 使用括号以改善表达式的清晰性。x
(2) 对递归定义的数据结构不要使用递归过程。x
(3) 尽可能对程序代码进行优化。v
(4) 不要修补不好的程序, 要重新写。v
(5) 不要进行浮点数的相等比较。v
(6) 应尽可能多地输出中间结果。x
(7) 利用数据类型对数据值进行防范。v
(8) 用计数方法而不是用文件结束符或输入序列结束符来判别输入的结束。x
(9) 程序中的注释是可有可无的。x
(10) 使用有意义的标识符。v
四、从下列叙述中选出5条关于软件测试的正确叙述。(在对的前面打√)
(1) 为了使得软件容易测试, 应该使用高级的程序设计语言编制程序。v
(2) 程序测试是一个程序的执行过程, 目的是为了发现软件中隐藏的错误。v
(3) 如果程序中连锁式连接了8个判定(IF)结构, 则程序中总的路径数达28 。v
(4) 白盒测试仅与程序的内部结构有关, 完全可以不考虑程序的功能要求。x
(5) 为了快速完成集成测试, 采用一次性集成方式是适宜的。v
(6) 对一批模块进行测试,发现错误多的模块中残留的错误将比其它的模块少。v
(7) 好的测试用例应能证明软件是正确的。v
(8) 边界值分析方法是取输入/输出等价类的边界值做为测试用例。v
(9) 等价类划分方法考虑了各等价类之间取值的组合情况下可能的结果。v
(10) 判定覆盖法可能查不出在判定中逻辑运算符使用有误时产生的错误。v
五、从下列叙述中选出5条有利于软件可维护性的正确叙述。(在对的前面打√)
(1) 在进行需求分析时需同时考虑如何实现可维护性问题。v
(2) 完成测试作业后,为了缩短源程序的长度应删去程序中的注解。x
(3) 尽可能在软件生产过程中保证各阶段文档的正确性。v
(4) 编程时应尽可能使用全局变量。x
(5) 选择时间效率和空间效率尽可能高的算法。v
(6) 尽可能利用硬件的特点。x
(7) 重视程序结构的设计,使程序具有较好的层次结构。v
(8) 使用维护工具或支撑环境。x
(9) 在进行概要设计时应加强模块间的联系。x
(10) 提高程序的可读性,尽可能使用高级语言编写程序。v
(11) 为了加快软件维护作业的进度,应尽可能增加维护人员的数目。x
六、下面是一段用赛德尔迭代法求解线性方程组的程序。其中A[n,n] 是方程组的系数矩阵, B[n]是方程组的右端项,X[n] 是方程组的解向量。eps是控制迭代精度的较小实数。imax是控制迭代的最大次数。flag是标志,=0,表示迭代不收敛;=1,表示迭代收敛。
for k := 1 to n do X[k] := 0.0;
X[n] := 1.0;
for i := 1 to imax do
begin flag := 1;
for j := 1 to n to
begin s := B[j];
for k := 1 to n do
begin
if j =k then s := s + X[k];
s := s-A[j, k] * X[k]
end;
if abs(X[j]-s) > (abs(s) + 1.0) * eps then flag := 0;
X[j] := s;
end;
if flag =1 then goto L1;
end;
L1:
(1) 试画出它的结构化的程序流程图。
(2) 将它改为N-S图。
(3) 计算它的McCabe环路复杂性。
七、下面是一趟插入排序的程序, 把R[i+1]插入到R[1..i]的适当位置
R[0] = R[i + 1]; j = i;
while ( R[j] > R[0] )
{ R[j + 1] = R[j]; j = j -1; }
R[j + 1] = R[0];
用路径覆盖方法为它设计足够的测试用例(while循环次数为0次、1次、2次)。
八、阅读下列关于软件可靠性方面的叙述,回答问题1和问题2。
软件的可靠度可定义为:在假定输入和硬件不发生错误的前提下,对于给定的环境和给定的输入,在指定的时间内能完成规定任务的概率。
某软件中心的评测部为了评估已开发实现的应用软件ASP的可靠性,决定采用软件可靠性的错误播种模型来进行测试和评估。评测部在评估时,作了下列三个假设:
(1) 在测试前,单位长度的故障个数ET / IT 为一常数,此常数基本上落在一个固定的范围内。其中IT 为被测程序的长度(即机器指令条数),ET 为被测程序中故障总数。
(2) 失效率正比于软件中剩余的(潜伏的)故障数,平均无故障时间MTTF与单位长度的剩余故障个数成反比,即 MTTF = 1/(K*εr )。其中εr 为单位长度剩余故障个数,K的典型值现取为200。
(3) 测试中发现的错误都得到了及时改正,在测试过程中没有引入新的错误。评测部对ASP软件人为地植入了10个错误,即NS = 10,在开始测试的一小段时间内,发现了160个固有故障,即n = 160,又发现了植入的故障2个,即nS = 2,被测程序ASP的长度(机器指令条数)为105 。
问题1:用故障播种(植入)的数学模型,估算出被测程序ASP的固有故障的个数N的值。如果通过测试一段时间后,发现的固有错误个数为ED = 795时,请估算此程序的平均无故障时间MTTF值。
问题2:若要求把此MTTF再提高4倍,应至少再排除多少个固有错误? 请简要地列出有关计算式。
参考答案
一、答案:A. ③ B. ⑤ C. ⑥ D. ① E. ⑤
二、答案:A. ③ B. ② C. ③ D. ⑤ E. ①
三、答案:正确的叙述有:(1)、(4)、(5)、(7)、(10)
说明:(1) 利用括号可以明确地规定表达式中各运算符的优先顺序,这样可以提供表达式运算的清晰性,因此是对的。(4) 对于不好的程序,一是程序逻辑混乱以致理解困难,二是隐藏错误多,三是错误定位和修改容易出问题,所以修修补补,越补越糟,不如重新写。(5) 浮点数的运算有其近似性,两个浮点数可能会非常接近但永远不会相等,所以做浮点数的相等比较可能不会有结果。(7) 利用数据类型来检查数据值,这是静态分析的一种手段,叫做类型分析,因此是对的。(10) 使用有意义的标识符,可以提高程序的可读性,因此是对的。
其它的叙述都不对。(2) 对递归定义的数据结构,应当使用递归过程来解决基于这种数据结构的应用问题。(3) 程序代码的优化工作应交给编译器来做,程序设计时应首先考虑程序代码的清晰性、简明性、可读性、正确性、以至于可维护性。(6) 输出中间结果只是在调试程序时才有用,其它时候输出大量中间结果,不但浪费资源,而且给使用者造成麻烦。(8) 从文件输入数据时,应当使用文件结束符来判断输入的结束,使用计数方法判断输入结束不一定是最佳方式。(9) 程序中的注释是必须的,不是可有可无的。
四、答案:正确的叙述有:(1)、(2)、(3)、(4)、(8)。
说明:(1) 使用高级语言编写的程序模块化、结构化程度都比较好,可读性强,容易测试。(2) 程序测试本身应当是一个程序的执行过程,而不是静态的逻辑分析,其目的是发现程序中潜藏的错误。(3) 连锁式分支结构有n个判定,其路径数有2n条,因此当n = 8时程序中总的路径数有28条。(4) 白盒测试基于程序的内部结构设计测试用例,可以不考虑程序的功能要求。(8) 由于在等价类的边界上最容易出错,所以边界值分析方法选取输入∕输出等价类的边界值作为测试用例,可以有效地查错。
不正确的叙述,如(5) 采用一次性集成方式进行模块组装,往往成功的可能性低,而且出现错误时,不容易确定在什么地方出了问题,因此应采用增殖式集成方式,可以把出错的范围局限到少数模块中间。(6) 测试的实践表明,对一批模块进行测试,发现错误多的模块中残留的错误也多,因此必需注意这一现象,弄清哪些模块问题发现得多,对这些模块重点测试。(7) 好的测试用例是能够发现新错误的测试用例,发现不了问题的测试用例就不是好的测试用例,用它们做测试是浪费时间和金钱。(9) 等价类划分法是选择输入等价类的代表值作为测试用例,而因果图法才是考虑了各等价类之间取值的组合情况及可能的结果来设计测试用例的。(10) 语句覆盖法可能查不出在判定中逻辑运算符使用有误时产生的错误。而判定覆盖法则可能查不出在判定中某些条件中关系运算符使用有误时产生的错误。
五、答案:正确的叙述有:(3)、(5)、(7)、(8)、(10)
说明:(3) 尽可能在软件生产过程中保证各阶段文档的正确性,对于保证软件的可靠性、功能性等有相当大的作用,这样可减少用户提出维护请求的可能,即使要更新,工作的难度和工作量也会降低。(5) 选择时间效率和空间效率尽可能高的算法,可以让编程者把注意力集中在提供程序的正确性、可理解性、可修改性、可测试性、可使用性等方面,从而提高可维护性,不必为追求效率而把程序编写得让人看不懂。(7) 如果程序结构设计得较好,层次结构合理,在维护时理解程序和修改程序容易,不易出错。(8) 使用维护工具或支撑环境可以大大降低维护的工作量。(10) 用高级语言编写程序,易读易懂,可以提高可维护性。
不正确的叙述,如(1) 在需求分析时主要考虑软件要“做什么?”这一阶段对可维护性可以提出要求,要达到什么指标,而如何实现可维护性,是在设计和实现阶段考虑的问题。(2) 在程序中加入注释,这是提高程序可读性,从而提高可维护性的重要手段,不能因为测试通过就删去它们。(9) 在软件概要设计时,对产生的程序模块结构的评价方法就是看模块之间的耦合(联系)是否松散。如果联系密切,这样的结构各部分牵连太多,是不好的。(4) 因此在编程时尽可能用参数表,而不应当用全局变量来传送信息。(6) 尽可能利用硬件的特点,这样的程序可移植性很差,自然维护起来就相当困难了。(11) 增加维护人员会降低维护的生产率,有可能对维护进度带来不利的影响。
Start
六、答案:(1) 结构化的程序流程图:
x[n]=1; i=1; flag = 0;
k = 1;
i<imax && flag==0
F
End
F
T
T
k≤n
k≤n
flag = 1; j = 1;
X[k] = 0; k++;
i ++;
F
j≤n
j≤n
k = 1;
T
s = B[j]; k = 1;
(2) N-S图:
F
k≤n
X[k] = 0; k++;
F
T
F
T
j==k
T
s = s + X[k];
i < imax && flag == 0
x[n]=1; i=1; flag = 0;
s = s - A[j][k]*X[k]; k ++;
flag = 1; j = 1;
s = B[j]; k = 1;
j = j+1
X[j] = s
flag = 0
T
F
| X[j]-s | > (|s|+1)*eps
k≤n
|X[j]-s| > (|s|+1)*eps
T
F
j==k
T
s = s - A[j][k]*X[k]; k ++;
s = s + X[k];
flag = 0;
F
|X[j]-s| > (|s|+1)*eps
X[j] = s; j ++;
X[j] = s; j ++;
i ++;
flag = 0;
(3) McCabe环路复杂性度量V(G) = 判定语句个数+1 = 8
七、`画出该程序的流程图:
①
R[0] = R[i+1]; j = i;
③
②
R[j+1] = R[0];
R[j+1] = R[j]; j --;
F
T
R[j] > R[0]?
测试用例设计
循环
次数
输 入 数 据
预 期 结 果
覆 盖 路 径
j
R[i-2]
R[i-1]
R[i]
R[i+1]
R[0]
j
R[i-2]
R[i-1]
R[i]
R[i+1]
约束
路 径
0
i
―
―
1
2
2
i
―
―
1
2
<
①③
i
―
―
1
1
1
i
―
―
1
1
=
①③
1
i
―
1
3
2
2
i-1
―
1
2
3
><
①②③
i
―
2
3
2
2
i-1
―
2
2
3
>=
①②③
2
i
1
3
4
2
2
i-2
1
2
3
4
>><
①②②③
i
2
3
4
2
2
i-2
2
2
3
4
>>=
①②②③
八、答案:
〖问题1〗利用故障播种(植入)模型,被测程序ASP的固有故障个数N的值为:
N = NS * n / nS = 10 * 160 / 2 = 800 (个故障)。
根据Shooman模型:
〖问题2〗把此MTTF再提高4倍,则MTTF = 500,有
得: EC(t) = 799
因此,只要再排除799 - 795 = 4个固有错误,MTTF就可再提高4倍。
一、单项选择题 每小题1分,共20分。(在每小题的四个选项中只有一个选项是符合题目要求的,请将正确选项前的字母填在题后的括号内)
1.在下列工具与环境中( d )属于较早期的CASE。
A.基于信息工程CASE
B.人工智能CASE
C.结构的基于图形CASE
D.集成的CASE环境
2.Putnam成本估算模型是一个( d )模型。
A.静态单变量 B.动态单变量 C.静态多变量 D.动态多变量
3.在McCall软件质量度量模型中,( b )属于面向软件产品修改。
A.可靠性 B.可重用性 C.适应性 D.可移植性
4.ISO的软件质量评价模型由3层组成,其中用于评价设计质量的准则是( b )
A.SQIC B.SQMC C.SQRC D.SQDC
5.软件复杂性度量的参数包括( c )
A.效率 B.规模 C.完整性 D.容错性
6.对象实现了数据和操作的结合,使数据和操作( c )于对象的统一体中。
A.结合 B.隐藏 C.封装 D.抽象
7.软件调试技术包括( b )
A.边界值分析 B.演绎法 C.循环覆盖 D.集成测试
8.瀑布模型的存在问题是( d )
A.用户容易参与开发
B.缺乏灵活性
C.用户与开发者易沟通
D.适用可变需求
9.软件测试方法中的静态测试方法之一为( b )
A.计算机辅助静态分析
B.黑盒法
C.路径覆盖
D.边界值分析
10.软件生命周期中所花费用最多的阶段是( d )
A.详细设计 B.软件编码 C.软件测试 D.软件维护
11.第一个体现结构化编程思想的程序设计语言是( b )
A.FORTRAN语言 B.Pascal语言 C.C语言 D.PL/1语言
12.程序的三种基本控制结构是( b )
A.过程、子程序和分程序
B.顺序、选择和重复
C.递归、堆栈和队列
D.调用、返回和转移
13.在详细设计阶段,经常采用的工具有( d )
A.PAD B.SA C.SC D.DFD
14.详细设计的结果基本决定了最终程序的( c )
A.代码的规模 B.运行速度 C.质量 D.可维护性
15.需求分析中开发人员要从用户那里了解( a )
A.软件做什么 B.用户使用界面 C.输入的信息 D.软件的规模
16.结构化程序设计主要强调的是( d )
A. 程序的规模
B. 程序的效率
C. 程序设计语言的先进性
D. 程序易读性
17.IDEF。图反映系统( d )
A.怎么做 B.对谁做 C.何时做 D.做什么
18.经济可行性研究的范围包括( d )
A.资源有效性 B.管理制度 C.效益分析 D.开发风险
19.可行性分析是在系统开发的早期所做的一项重要的论证工作,它是决定该系统是否开 发的决策依据,因必须给出( d)的回答。
A.确定 B.行或不行 C.正确 D.无二义
20.需求分析阶段的任务是确定( d )
A. 软件开发方法
B. 软件开发工具
C. 软件开发费
D. 软件系统的功能
二、填空题(每空2分,共20分)。
21.在软件开发过程中要产生大量的信息,要进行大量的修改, 能协调软件开发,并使混乱减到最低程度。
22.规定功能的软件,在一定程度上对自身错误的作用(软件错误)具有屏蔽能力,则称此软件具有 的软件。
23.McCall提出的软件质量模型包括 个软件质量特性。
24.软件可维护性度量的七个质量特性是可理解性、可测试性、可修改性、可靠性、 、 可使用性和效率。
25.为了便于对照检查,测试用例应由输入数据和预期的 两部分组成。
26.程序设计语言的心理特性主要表现在 、简洁性、传统性、局部性和顺序性。
27.软件结构是以 为基础而组成的一种控制层次结构。
28.在结构化分析中,用于描述加工逻辑的主要工具有三种,即:结构化语言、判定表、
。
29.结构化语言是介于自然语言和 之间的一种半形式语言。
30.若年利率为i,不计复利,n年后可得钱数为F,则现在的价值P= 。
三、名词解释题 每小题3分,共15分。
31.软件生存周期模型
32.数据字典(DD)
33.内聚性
34.JSP方法
35.多态性
四、简答题 每小题5分,共20分。
36.简述容错技术的四种主要手段,并解释。
37.以G.J.Myers的观点,简述对软件测试的目的。
38.就程序设计语言的工程特性而言,对程序编码有哪些要求?
39.模块的内聚性包括哪些类型?
五、应用题 第40小题7分,第41小题8分,第42小题10分,共25分。
40.下面是某程序的流程图:
(1)计算它的环路复杂性。
(2)为了完成基本路径测试,求它的一组独立的路径。
41.根据下列条件使用等价划分法设计测试用例。
某一8位微机,其十六进制常数定义为:以0x或0X开头的数是十六进制整数,其值的范围是-7f~7f(表示十六进制的大小写字母不加区别),如0X13,0X6A,-0X3c。
42.图书馆的预定图书子系统有如下功能:
(1)由供书部门提供书目给订购组;
(2)订书组从各单位取得要订的书目;
(3)根据供书目录和订书书目产生订书文档留底;
(4)将订书信息(包括数目,数量等)反馈给供书单位;
(5)将未订书目通知订书者;
(6)对于重复订购的书目由系统自动检查,并把结果反馈给订书者。
试根据要求画出该问题的数据流程图,并把其转换为软件结构图。
《软件工程》试卷1答案
一、单项选择题 每小题1分,共20分。(在每小题的四个选项中只有一个选项是符合题目要求的,请将正确选项前的字母填在题后的括号内)
1.在下列工具与环境中( c )属于较早期的CASE。
A.基于信息工程CASE
B.人工智能CASE
C.结构的基于图形CASE
D.集成的CASE环境
2.Putnam成本估算模型是一个( D )模型。
A.静态单变量 B.动态单变量 C.静态多变量 D.动态多变量
3.在McCall软件质量度量模型中,( C )属于面向软件产品修改。
A.可靠性 B.可重用性 C.适应性 D.可移植性
4.ISO的软件质量评价模型由3层组成,其中用于评价设计质量的准则是( D )
A.SQIC B.SQMC C.SQRC D.SQDC
5.软件复杂性度量的参数包括( B )
A.效率 B.规模 C.完整性 D.容错性
6.对象实现了数据和操作的结合,使数据和操作( C )于对象的统一体中。
A.结合 B.隐藏 C.封装 D.抽象
7.软件调试技术包括( B )
A.边界值分析 B.演绎法 C.循环覆盖 D.集成测试
8.瀑布模型的存在问题是( B )
A.用户容易参与开发
B.缺乏灵活性
C.用户与开发者易沟通
D.适用可变需求
9.软件测试方法中的静态测试方法之一为( A )
A.计算机辅助静态分析
B.黑盒法
C.路径覆盖
D.边界值分析
10.软件生命周期中所花费用最多的阶段是( D )
A.详细设计 B.软件编码 C.软件测试 D.软件维护
11.第一个体现结构化编程思想的程序设计语言是( B )
A.FORTRAN语言 B.Pascal语言 C.C语言 D.PL/1语言
12.程序的三种基本控制结构是( B )
A.过程、子程序和分程序
B.顺序、选择和重复
C.递归、堆栈和队列
D.调用、返回和转移
13.在详细设计阶段,经常采用的工具有( A )
A.PAD B.SA C.SC D.DFD
14.详细设计的结果基本决定了最终程序的( C )
A.代码的规模 B.运行速度 C.质量 D.可维护性
15.需求分析中开发人员要从用户那里了解( A )
A.软件做什么 B.用户使用界面 C.输入的信息 D.软件的规模
16.结构化程序设计主要强调的是( D )
A. 程序的规模
B. 程序的效率
C. 程序设计语言的先进性
D. 程序易读性
17.IDEF。图反映系统( D )
A.怎么做 B.对谁做 C.何时做 D.做什么
18.经济可行性研究的范围包括( C )
A.资源有效性 B.管理制度 C.效益分析 D.开发风险
19.可行性分析是在系统开发的早期所做的一项重要的论证工作,它是决定该系统是否开 发的决策依据,因必须给出( B )的回答。
A.确定 B.行或不行 C.正确 D.无二义
20.需求分析阶段的任务是确定( D )
A. 软件开发方法
B. 软件开发工具
C. 软件开发费
D. 软件系统的功能
二、填空题(每空2分,共20分)。
21.在软件开发过程中要产生大量的信息,要进行大量的修改, (软件配置管理) 能协调软件开发,并使混乱减到最低程度。
22.规定功能的软件,在一定程度上对自身错误的作用(软件错误)具有屏蔽能力,则称此软件具有 (容错功能) 的软件。
23.McCall提出的软件质量模型包括 (11) 个软件质量特性。
24.软件可维护性度量的七个质量特性是 (可理解性、可测试性、可修改性、可靠性、 可移植性 、 可使用性和效率)。
25.为了便于对照检查,测试用例应由输入数据和预期的 (输出结果) 两部分组成。
26.程序设计语言的心理特性主要表现在 (歧义性) 、简洁性、传统性、局部性和顺序性。
27.软件结构是以 (模块) 为基础而组成的一种控制层次结构。
28.在结构化分析中,用于描述加工逻辑的主要工具有三种,即:结构化语言、判定表、
(判定树) 。
29.结构化语言是介于自然语言和 (形式语言) 之间的一种半形式语言。
30.若年利率为i,不计复利,n年后可得钱数为F,则现在的价值P= ( F/(1+(n*i)) ) 。
三、名词解释题 每小题3分,共15分。
31.软件生存周期模型
是描述软件开发过程中各种活动如何执行的模型。
32.数据字典(DD)
数据字典是用来定义数据流图中的各个成分的具体含义的。它以一种准确的、无二义性的说明方式为系统的分析、设计及维护提供了有关元素的一致的定义和详细的描述。
33.内聚性
内聚性是模块独立性的衡量标准之一,它是指模块的功能强度的度量,即一个模块内部各个元素彼此结合的紧密程度的度量。
34.JSP方法
JSP方法是面向数据结构的设计方法,其定义了一组以数据结构为指导的映射过程,它根据输入,输出的数据结构,按一定的规则映射成软件的过程描述,即程序结构。
35.多态性
指相同的操作或函数、过程可作用于多种类型的对象上并获得不同结果。或(不同的对象,收到同一消息可以产生不同的结果。)
四、简答题 每小题5分,共20分。
36.简述容错技术的四种主要手段,并解释。
结构冗余:包括静态冗余、动态冗余和混合冗余。
信息冗余:为检测或纠正信息在运算或传输中的错误,须外加一部分信息。
时间冗余:指重复执行指令或程序来消除瞬时错误带来的影响。
冗余附加技术:指为实现上述冗余技术所需的资源和技术。
37.以G.J.Myers的观点,简述对软件测试的目的。
软件测试是(1)为了发现错误而执行程序的过程;(2)一个好的用例能够发现至今尚未发现的错误的测试。(3)一个成功的测试是发现至今尚未发现的错误的测试。
38.就程序设计语言的工程特性而言,对程序编码有哪些要求?
就程序设计语言的工程特性而言,对程序编码有如下要求:
(1)可移植性
(2)开发工具的可利用性
(3)软件的可重用性
(4)可维护性
39.模块的内聚性包括哪些类型?
模块的内聚性包括:
(1)偶然内聚
(2)逻辑内聚
(3)时间内聚
(4)通信内聚
(5)顺序内聚
(6)功能内聚
五、应用题 第40小题7分,第41小题8分,第42小题10分,共25分。
40.下面是某程序的流程图:
(1)计算它的环路复杂性。
(2)为了完成基本路径测试,求它的一组独立的路径。
解:
(1)环路复杂性=判断数+1=6+1=7(个)
(2)路径1:(0)—①—(13)—(19)
路径2:(0)—②—③—(14)—(19)
路径3:(0)—②—④—⑤—(15)—(19)
路径4:(0)—②—④—⑥—⑦—(16)—(19)
路径5:(0)—②—④—⑥—⑧—⑨—(17)—(19)
路径6:(0)—②—④—⑥—⑧—⑩—(18)—(19)
路径7:(0)—②—④—⑥—⑧—⑩—(12)—(19)
41.根据下列条件使用等价划分法设计测试用例。
某一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
42.图书馆的预定图书子系统有如下功能:
(1)由供书部门提供书目给订购组;
(2)订书组从各单位取得要订的书目;
(3)根据供书目录和订书书目产生订书文档留底;
(4)将订书信息(包括数目,数量等)反馈给供书单位;
(5)将未订书目通知订书者;
(6)对于重复订购的书目由系统自动检查,并把结果反馈给订书者。
试根据要求画出该问题的数据流程图,并把其转换为软件结构图。
《软件工程》试卷2
一、选择题:(每题1分,共20分)(将答案写在题号前的()中)
( C )1. 软件是( )。
A. 处理对象和处理规则的描述 B. 程序
C. 程序及其文档 D. 计算机系统
( B )2. 软件需求规格说明的内容不应包括( )。
A. 主要功能 B. 算法的详细描述
C. 用户界面及运行环境 D. 软件的性能
( B )3. 程序的三种基本控制结构是( )。
A. 过程、子程序和分程序 B. 顺序、选择和重复
C. 递归、迭代和回溯 D. 调用、返回和转移
( D ) 4. 面向对象的分析方法主要是建立三类模型,即( )。
A) 系统模型、ER模型、应用模型
B) 对象模型、动态模型、应用模型
C) E-R模型、对象模型、功能模型
D) 对象模型、动态模型、功能模型
( C ) 5. 在E-R模型中,包含以下基本成分( )。
A) 数据、对象、实体
B) 控制、联系、对象
C) 实体、联系、属性
D) 实体、属性、操作
( A ) 6. 各种软件维护的类型中最重要的是( )。
A) 完善
展开阅读全文