软件工程综合应用例题
第一部分《结构化软件开发方法》
1、根据下列描述,画出教材征订系统的第一层数据流图。学生入学后到教材科订书,教材科根据教材库存情况分析是否需要买书,如需购买,则向书店购买。各种资金往来通过学校的会计科办理。
解:
教材库存
收
应
学生书店
P1
教材科
P2
会计
订书订书
发书发书
F1
款
通
知
付
款
通
知
2、高考录取统分子系统有如下功能:
(1) 计算标准分:根据考生原始分计算,得到标准分,存入考生分数文件;
(2) 计算录取线分:根据标准分、招生计划文件中的招生人数,计算录取线,存入录取线文件。
试根据要求画出该系统的数据流程图,并将其转换为软件结构图。
解:(1)数据流图:(2)软件结构图:
①原始分②标准分③招生计划④录取线
3、有下列伪码程序:
START
INPUT (M,N)
IF M>=10
THEN X:=10
ELSE X:=l
ENDIF
IF N>=20 THEN Y:=20 ELSE Y:=2 ENDIF
PRINT(X,Y) STOP
设计该程序的语句覆盖和路径覆盖测试用例。 解:
语句覆盖测试用例为
①M=9(或<l0),N=l9(或<20); ②M=l0(或>=10),N=20(或>=20) 路径覆盖的测试用例为 ①M=9,N=19; ②M=9、N=20; ③M=l0,N=l9; ④M=10,N=20
4、画出下列伪码程序的程序流程图、盒图(N-S 图)、PAD 图。 START
IF p THEN WHILE q DO
F
END DO ELSE BLOCK
g n
END BLOCK END IF STOP 解:
START
q
p
g n
F
STOP
T
F
T
F
5、根据下面程序流程图,给出测试用例:
入口
返回
A>1 AND B=0
A=2 OR X>1
X=X/A
X=X+1
F T
T
F
解:路径覆盖可使用测试用例: ⑴【A=1,B=1,X=1】 ⑵【A=1,B=1,X=2】 ⑶【A=3,B=0,X=1】 ⑷【A=2,B=0,X=4】 边覆盖,可使用测试用例: ⑴【A=3,B=0,X=3】 ⑵【A=2,B=1,X=1】 判定覆盖的测试用例: ⑴【(A=3,B=0,X=3)】 ⑵【(A=2,B=1,X=1)】 语句覆盖,可使用测试用例: 【 A=2,B=0,X=3 】
6、下面是一段求最大值的程序,其中datalist 是数据表,n 是datalist 的长度。 int GetMax(int n, int datalist[ ]) {
int k=0;
for ( int j=1; j<n; j++ )
if ( datalist[j] > datalist[k] ) k=j; return k; }
画出该程序的程序流程图,并计算其McCabe 复杂度。 解:程序流程图如下:
12345
6
McCabe 复杂度为3。
7、画出下面PDL 伪码程序的程序流程图、N-S 图、PAD 图和程序流图,并计算其McCabe 复杂度。
WHILE P DO
IF A>O THEN A1 ELSE A2 ENDIF; IF B>0 THEN B1;
IF C>0 THEN C1 ELSE C2 ENDIF ELSE B2 ENDIF; B3 ENDWHILE; 解:
P A>0
T T A1
F
A2B>0
T B1
C>0
T C1C2
F T B2
F
B3
P A>0T T
A1
F A2
B>0T
B1C>0T C1C2
F T
B2
F
B3
8、根据下面伪码程序,设计语句覆盖、路径覆盖、边覆盖、判定覆盖、条件覆盖、点覆盖的测试用例。
PROCEDURE EX (A ,B :REAL ;VAR X :REAL ); BEGIN
IF (A=3)OR (B>1)THEN X :=A ×B IF (A>2)AND (B=0)THEN X :=A -3 END
解:先画出程序流程图:
开始结束
A=3 OR B>1
A>2 AND B=0
X=A+B
X=A-3
F
F
T
T
语句覆盖测试用例:[A=3,B=0]
路径覆盖测试用例:[A=3,B=0] [A=3,B=1] [A=4,B=0] [A=2,B=1] 边覆盖测试用例:[A=3,B=0] [A=2,B=1]
9、某培训中心要研制一个计算机管理系统。它的业务是:将学员发来的信件收集分类后,按几种不同的情况处理。
如果是报名的,则将报名数据送给负责报名事务的职员,他们将查阅课程文件,检查该课程是否额满,然后在学生文件、课程文件上登记,并开出报告单交财务部门,财务人员开出发票给学生。
如果是想注销原来已选修的课程,则由注销人员在课程文件、学生文件和帐目文件上做相应的修改,并给学生注销单。
如果是付款的,则由财务人员在帐目文件上登记,也给学生一收费收据。
要求:
(1)对以上问题画出数据流程图。
(2)画出该培训管理的软件结构图的主图。
解:
10、求一组数组中的最大数, 数组表示为A[n] ,n=1,2……n的自然数。
(1)请画出程序流程图
(2)请画出该算法的N-S图
(3)请用PAD图来表示该算法
解:
MAX=A[1]
K=2
K<=N
MAX<=A[K]画出while语句的流程图
MAX=A[K]
K=K+1
开始
结束T
T
F
F
11、把事务型数据流图映射成软件结构图:
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论