软件工程导论习题解答

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
⑥ 3个判定表达式依次为真、假、真 输入:A=20,B=1,C=60 预期的输出:X=10,Y=2,Z=30
⑦ 3个判定表达式依次为真、真、假 输入:A=20,B=40,C=1 预期的输出:X=10,Y=20,Z=3
⑧ 3个判定表达式全为真 输入:A=20,B=40,C=60 预期的输出:X=10,Y=20,Z=30
③ 3个判定表达式依次为假、真、假 输入:A=1,B=40,C=1 预期的输出:X=1,Y=20,Z=3
④ 3个判定表达式依次为假、真、真 输入:A=1,B=40,C=60 预期的输出:X=1,Y=20,Z=30
⑤ 3个判定表达式依次为真、假、假 输入:A=20,B=1,C=1 预期的输出:X=10,Y=2,Z=3

END IF

IF B>10

THEN Y=20

ELSE Y=2

END IF

IF C>15

THEN Z=30

ELSE Z=3

END IF

PRINT (X,Y,Z)

STOP
2)经验表明,在类似的程序中,单位长度里的错误 数ET/IT近似为常数。美国的一些统计数字告诉我们, 通常
I=I+1 IF WORD=KEYWORD
THEN MATCH=MATCH+1 STORE IN BUFFER
END END IF N=0
THEN PRINT “NO MATCH” ELSE CALL SUBROUTINE TO PRINT BUFFER
INFORMATION END
盒图
(4)该程序逻辑中有两个错误
终端输入各种查询命令
查询结果
5-3.用面向数据流的方法设计下列系统的软件结构。 (3)患者监护系统。
病人 生理信号
1
接收 信号
生 理 信 号
生理信号
2
分析 信号
危机病人 信息
D1 患者安全范围
时钟
日期 时间
4
定时取样 生理信号
定时的 生理信号
5
更新 日志
3
警告
产生警 信息 告信息
精神报告
6
要求
第一个错误是WHILE循环条件I≤T:根据这个条件,当 I=T时应该执行一遍循环体。循环体的第一天语句是 I=I+1,即把I的值加1,使之变成T+1,但是,该检索系 统总共只有T个词条,下标I变成T+1将出现“越界” 错误,因此应该把循环条件改为I<T。
第二个错误是打印出“无匹配”的条件N=0:该程序 使用变量MATCH存放匹配次数,因此,打印出“无匹 配”的条件应该是MATCH=0
书在图书馆S1
扫描两个条形码,在终 端输入C
书被借出S2
扫描两个条形码,在 终端输入R
在终端输入“H=”加书 号
书被预约S3
书归还,扫描两个条形码, 在终端输入R
(二)图书馆终端管理员模式的有穷状态机描述 状态机J:{管理员设置状态,书入库,书出库(删除),预约} 输入集K:{终端输入管理员命令,书的各种状态(S1,S2,S3} 转换函数T:如下图所示 初始态S:{管理员设置状态} 终态集F:{书入库,书出库(删除),预约,}
COMMENT: PROGRAM SEARCHES FOR FIRSTN REFERENCES

TO A TOPIC IN AN INFORMATION RETRRIEVAL

SYSTEM WITH TOTAL ENTRIES

INPUT N

INPUT KEYWORD(S) FOR TOPIC
7-4 (2)假设有一个由1000行FORTRAN语句构成的程序(经编译后大约 有5000条机器指令),估计对其进行测试期间将发现多少个错 误?为什么?
(3)设计下列伪码程序的语句覆盖和路径覆盖测试用例:
START

INPUT (A,B,C)

IF A>5

THEN X=10

ELSE X=1
② 使3个判定表达式之值全为真 输入:A=20,B=40,C=60 预期的输出:X=10,Y=20,Z=30
路径覆盖的测试用例
① 3个判定表达式之值全为假 输入:A=1,B=1,C=1 预期的输出:X=1,Y=2,Z=3
② 3个判定表达式依次为假、假、真 输入:A=1,B=1,C=60 预期的输出:X=1,Y=2,Z=30
4-4.考虑下述的自动化图书馆流通系统:每本书都有一个条形码,每 个人都有一个带条形码的卡片。但一个借阅人想借一本书时,图书 管理员扫描书上的条形码和借阅人卡片的条形码,然后在计算机终 端上输入C;当归还一本书时,图书管理员将再次扫描,并输入R。 图书管理员可以把一些书加到(+)图书集合中,也可以删除(—) 它们。借阅人可以再终端上查找到某个作者所有的书(输入“A=” 和作者名字),或具有指定标题的所有书籍(输入“T=”和标题), 或属于特定主题范围内的所有图书(输入“S=”加主题范围)。最后, 如果借阅人想借的书已被别人借走,图书管理员将给这本书设置一 个预约,以便书归还时把书留给预约的借阅人(输入“H=”加书 号)。
试用有穷状态机说明上述的图书流通系统。
图书馆流通系统的有穷状态机描述如下:
(一)图书状态的有穷状态机描述
状态机J:{书在图书馆S1,书被借出S2,书被预约S3} 输入集K:{书上条形码,借阅卡条形码,终端输入各
种命令} 转换函数T:如下图所示 初始态S:{书在图书馆S1,书被借出S2} 终态集F:{书被借出S2,书被预约S3}

I=0

MATCH=0

DO WHILE I≤T

I=I+1

IF WORD=KEYWORD

THEN MATCH=MATCH+1

STORE IN BUFFER

百度文库
END

IF MATCH=N

THEN GOTO OUTPUT

END

END

IF N=0

THEN PRINT “NO MATCH”
预约
管理员设置状态
书入库
书出库(删除)
(三)图书馆终端用户模式的有穷状态机描述 状态机J:{读者查询状态,查询结果} 输入集K:{终端输入用户查询命令,书的各种状态(S1,S2,
S3)} 转换函数T:如下图所示 初始态S:{读者查询状态} 终态集F:{查询结果}
读者查询状态
OUTPUT: ELSE CALL SUBROUTINE TO PRINT BUFFER

INFORMATION

END
(1)程序流程图
开始
输入N、 KEYWORD(s)
I=0 MATCH=0
I≤T
F
T
I=I+1
WORD=KEYWORD F T
MATCH=MATCH+1
N=0
F
打印出缓冲区 的内容

0.5X10-2≤ ET/IT ≤2X10-2
也就是说,在测试之前每1000条指令中大约有5~20
个错误。
假设在该程序的每1000条指令中有10个错误,则估 计在对它进行测试期间 将发现的错误数为

5000X10/1000=50 (个)
3)
语句覆盖的测试用例
① 使3个判定表达式之值全为假 输入:A=1,B=1,C=1 预期的输出:X=1,Y=2,Z=3
T
打印出“无 匹配”
存入缓冲区
停止
F
MATCH=N
T
(2)这个程序是非结构化的。因为在流程图中“印
出缓冲区的内容”这个处理框有两个入口;此外,循 环结构有两个出口:I≤T为假和MATCH=N为真时都结 束循环。
(3)仅用3种控制结构的等价的结构化程序的伪码如下:
INPUT N INPUT KEYWORD(S) FOR TOPIC I=0 MATCH=0 DO WHILE(I≤T) and (MATCH<N)
产生病
报告
情报告
护士 护士
日志数据
日志数据
D2 患者日志
需求分析阶段得出的数据流图
7-2 研究下面给出的伪码程序,要求: ⑴ 画出它的程序流程图; ⑵ 它是结构化的还是非结构化的?说明理由; ⑶ 若是非结构化的,则 ① 把它改造成仅用三种控制结构的结构化程序; ② 写出这个结构化设计的伪码; ③ 用盒图表示这个结构化程序. ⑷ 找出并改正程序逻辑中的错误.
相关文档
最新文档