五、从下列叙述中选出5条有利于软件可维护性的正确叙述。(在对的前面打√) (1)在进行需求分析时需同时考虑如何实现可维护性问题。 (2)完成测试作业后,为了缩短源程序的长度应删去程序中的注解。 (3)尽可能在软件生产过程中保证各阶段文档的正确性 (4)编程时应尽可能使用全局变量。 (5)选择时间效率和空间效率尽可能高的算法。 (6)尽可能利用硬件的特点。 (7)重视程序结构的设计,使程序具有较好的层次结构 (8)使用维护工具或支撑环境 (9)在进行概要设计时应加强模块间的联系。 (10)提高程序的可读性,尽可能使用高级语言编写程序。 (11)为了加快软件维护作业的进度,应尽可能增加维护人员的数目。 六、下面是一段用赛德尔迭代法求解线性方程组的程序。其中A[n,n]是方程组的系数矩阵,B[n是方程组 的右端项,Ⅺ[n]是方程组的解向量。eps是控制迭代精度的较小实数。imax是控制迭代的最大次数。flag 是标志,=0,表示迭代不收敛:=1,表示迭代收敛。 for k: =I to n do xk: 0.0; X[n]:=1.0; fori: =I to n to B]; if j=k thens: =s+Xkk] if abs(xo-s)>(abs(s)+ 1.0)*eps then flag: =0; L1; (1)试画出它的结构化的程序流程图。 (2)将它改为NS图 (3)计算它的 Mccabe环路复杂性。 七、下面是一趟插入排序的程序,把R[i+1插入到R[.门的适当位置 R[O]=R[i+1] {即[+1]=Rl;j=j-1;} 用路径覆盖方法为它设计足够的测试用例whle循环次数为0次、1次、2次)。 八、阅读下列关于软件可靠性方面的叙述,回答问题1和问题2。 软件的可靠度可定义为:在假定输入和硬件不发生错误的前提下,对于给定的环境和给定的输入,在指定 的时间内能完成规定任务的概率。2 五、从下列叙述中选出 5 条有利于软件可维护性的正确叙述。(在对的前面打√) (1) 在进行需求分析时需同时考虑如何实现可维护性问题。 (2) 完成测试作业后,为了缩短源程序的长度应删去程序中的注解。 (3) 尽可能在软件生产过程中保证各阶段文档的正确性。 (4) 编程时应尽可能使用全局变量。 (5) 选择时间效率和空间效率尽可能高的算法。 (6) 尽可能利用硬件的特点。 (7) 重视程序结构的设计,使程序具有较好的层次结构。 (8) 使用维护工具或支撑环境。 (9) 在进行概要设计时应加强模块间的联系。 (10) 提高程序的可读性,尽可能使用高级语言编写程序。 (11) 为了加快软件维护作业的进度,应尽可能增加维护人员的数目。 六、下面是一段用赛德尔迭代法求解线性方程组的程序。其中 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。 软件的可靠度可定义为:在假定输入和硬件不发生错误的前提下,对于给定的环境和给定的输入,在指定 的时间内能完成规定任务的概率