西南大学《软件工程》网上作业题及答案.docx
《西南大学《软件工程》网上作业题及答案.docx》由会员分享,可在线阅读,更多相关《西南大学《软件工程》网上作业题及答案.docx(14页珍藏版)》请在冰豆网上搜索。
西南大学《软件工程》网上作业题及答案
[0010]《软件工程》
第一次作业
[论述题]
(1) 简述结构化范型和面向对象范型的要点,并分析它们的优缺点。
参考答案:
目前使用得最广泛的软件工程方法学(2种):
1.传统方法学:
也称为生命周期方法学或结构化范型。
优点:
把软件生命周期划分成基干个阶段,每个阶段的任务相对独立,而且比较简单,便于不同人员分工协作,从而降低了整个软件开发过程的困难程度。
缺点:
当软件规模庞大时,或者对软件的需求是模糊的或会承受时间而变化的时候,开发出的软件往往不成功;而且维护起来仍然很困难。
面向对象方法学:
优点:
降低了软件产品的复杂性;提高了软件的可理解性;简化了软件的开发和维护工作;促进了软件重用
[论述题]2软件生命周期划分成哪些阶段。
参考答案:
软件生命周期(各阶段)软件生命周期由软件定义、软件开发和运行维护三个时期组成。
1.软件定义时期划分为三个阶段:
问题定义、可行性研究和需求分析
2.开发时期:
总体设计、详细设计、编码和单元测试、综合测试。
3.维护时期:
主要任务是使软件持久地满足用户的需要。
[论述题]
(3) 什么是需求分析,需求分析阶段的基本任务是什么?
参考答案:
需求分析就是理解用户需求,分析软件用户的需求是什么。
需求分析的任务就是解决"做什么"的问题,在问题定义和可行性研究的基础上,全面地理解用户的各项要求,并准确地表达所接受的用户需求。
具体说来,就是把可行性研究阶段确定的系统功能进一步具体化,交出包括详细的数据流图、数据字典以及简要的算法描述在内的需求说明书。
[论述题](4)可行性研究的任务
参考答案:
1.进一步分析和澄清问题;2.导出系统的逻辑模型;3.从逻辑模型出发,提出若干种系统实现方案4.研究每种实现方案的可行性;5.为每个可行的解决方案制定一个粗略的实现进度6.对以后的行动方针提出建议
[论述题]
(5) 什么叫软件测试,软件测试的方法有哪些?
参考答案:
软件测试:
为了发现程序中的错误而执行程序的过程。
软件测试的方法:
黑盒测试 白盒测试穷尽测试
第二次作业
[论述题]
(6) 什么叫逻辑覆盖,常用的逻辑覆盖方法有哪些,其区别是什么?
(任取其三种来说明即可)
参考答案:
逻辑覆盖:
是对一系列测试过程的总称,这组测试过程逐渐尽兴越来越完整的通路测试,它是以程序内部的逻辑结构
为基础的设计测试用例的技术,适用于白盒测试。
常用的逻辑覆盖法:
语句覆盖:
选择足够多的测试数据,使被测试程序中每个语句至少执行一次。
判定覆盖:
又叫分支覆盖,不仅每个语句要至少执行一次,而且每个判定的每种可能的结果都应该执行一次,即每个判定的每个分支都执行至少一次。
条件覆盖:
不仅每个语句至少执行一次,而且是判定表达式中的每个条件都取到各种可能的结果。
条件组合覆盖:
选择足够多的测试数据,使得每个判定表达式中条件的各种可能组合都至少出现一次。
路径覆盖:
选取足够多的数据,使程序的每条可能路径都至少执行一次(如果程序图中有环,则要求每个环至少经过一次)。
[论述题](7)什么是软件危机?
什么是软件工程?
参考答案:
什么是软件危机?
是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
什么是软件工程?
是指导计算机软件开发和维护的一门工程学科。
[论述题]
(8) 可行性研究的步骤。
参考答案:
可行性研究一般有下面的工作步骤:
1、确定系统的规模和目标
2、分析现有系统
3、设计出新系统的高层系统模型
4、评审系统模型
5、设计和评价新系统的实现方案
6、制定行动方案
7、拟定开发计划
8、编制可行性报告
[论述题](9)瀑布模型优点和缺点。
参考答案:
瀑布模型:
优点:
1.可强迫开发员采用规范的方法2.严格地规定了每个阶段必须提交的文件3.要求每个阶段交出的所有产品都必须经过质量保证小组的仔细验证。
缺点:
传统的瀑布模型过于理想化,是由文档驱动的。
[论述题]
(10) 什么叫测试用例,常用测试用例设计技术有哪些?
参考答案:
1测试用例:
是为某个测试目标而编制的一组测试输入、执行条件以及预期结果的方案,以便测试某个程序路径或核实是否满足某个特定需求。
2、常用测试用例设计技术:
适用于黑盒测试的等价划分、边界值分析、错误推测法;
适用于白盒测试的逻辑覆盖法;
通常的做法是,用黑盒测试法设计基本的测试方案,再用白盒测试法补充一些方案。
第三次作业
[论述题]
(11) 如何将一个复杂数据流图转化为软件结构图。
参考答案:
面向数据流的结构设计过程和步骤是:
第1步:
分析、确认数据流图的类型,区分是事务型还是变换型。
第2步:
说明数据流的边界。
第3步:
把数据流图映射为程序结构。
对于事务流区分事务中心和数据接收通咱,将它映射成事务结构。
对于变换流区分输出和输入分支,并将其映射成变换结构。
第4步:
根据设计准则对产生的结构进行细化和求精。
下面分别讲座变换型和事务型数据流图转换成程序结构图的实施步骤。
变换型
[论述题]
(12) 假定某图书管理系统中,需实现读者查询浏览功能,过程如下:
输入学号,检验读者身份是否有效;根据读入的查询信息,检索数据库和图书记录库得出相应结果。
请画出此功能模块的数据流图。
参考答案:
[论述题](13)根据12所画的查询操作数据流图,采用面向对象数据流的方法,画出系统的软件结构图。
参考答案:
[论述题]
(14) 根据12所画的查询操作数据流图,试着画出对应的程序流程图。
参考答案:
第四次作业
[论述题](15)某航空公司拟开发一个机票预定系统。
旅行社把预订机票的旅客信息(姓名、性别、单位、旅行时间、目的地…等)输入进该系统,系统为旅客安排航班,印出取票通知和账单,旅客在飞机起飞的前一天凭取票通知和账单交款取票,系统核对无误即印出机票给旅客。
请画出此系统的数据流图。
参考答案:
[论述题]
(16) 根据第15题中画出的数据流图,采用面向对象数据流的方法,画出该系统的软件结构图。
参考答案:
[论述题]
(17)请按照软件工程的规范写出写出15题目中的"旅客信息”数据字典。
(定义到第2层)
参考答案:
答案:
旅客信息=姓名+性别+单位+旅行时间+目的地+....
姓名=5{字符}15
单位=10{字符}30
.......
第五次作业
[论述题]
(18) 为方便储户,某银行拟开发计算机储蓄系统。
储户填写的存款单或取款单由业务员键入系统,如果是存款,系统记录存款人姓名、住址、存款类型、存款日期、利率等信息,并印出存款单给储户;如果是取款,在系统计算利息后,打印出取款人姓名,取款数目,利息清单等给储户。
请画出此系统的数据流图。
参考答案:
[论述题]
(19) 根据第18题中画出的数据流图,采用面向对象数据流的方法,画出该系统的软件结构图。
参考答案:
[论述题]
(20) 请按照软件工程的规范写出18题中"存款单”和"取款单”的数据字典。
(定义到第2层)
参考答案:
存款单=姓名+住址+存款类型+存款日期+利率
姓名=5{字符}10
住址=10{字符}20
..............
取款单=姓名+取款数目+利息清单
姓名=5{字符}10
取款数目=1{字符}10
...............
[论述题]
(21)画出下列伪码程序的程序流程图
START
IFpTHEN
WHILEqDO
f
ENDDO
ELSE
BLOCK
g
n
ENDBLOCK
ENDIF
STOP
参考答案:
第六次作业
[论述题]
(22)设计下列伪码程序的语句覆盖测试用例:
START
INPUT(A,B,C)
//判定表达式1
IFA>5THEN
X=10
ELSE
X=1
ENDIF
//判定表达式2
IFB>10THEN
Y=20
ELSE
Y=2
ENDIF
//判定表达式3
IFC>15THEN
Z=30
ELSE
Z=3
ENDIF
PRINT(X,Y,Z)
STOP
参考答案:
语句覆盖的测试用例
序号
判定
输入
预期的输出
1
2
3
A
B
C
X
Y
Z
1
F
F
F
1
1
1
1
2
3
2
T
T
T
20
40
60
10
20
30
[论述题]
(23)设计下列伪码程序的路径覆盖测试用例:
START
INPUT(A,B,C)
//判定表达式1
IFA>5THEN
X=10
ELSE
X=1
ENDIF
//判定表达式2
IFB>10THEN
Y=20
ELSE
Y=2
ENDIF
//判定表达式3
IFC>15THEN
Z=30
ELSE
Z=3
ENDIF
PRINT(X,Y,Z)
STOP
参考答案:
答:
路径覆盖的测试用例
序号
判定
输入
预期的输出
1
2
3
A
B
C
X
Y
Z
1
F
F
F
1
1
1
1
2
3
2
F
F
T
1
1
60
1
2
30
3
F
T
F
1
40
1
1
20
3
4
F
T
T
1
40
60
1
20
30
5
T
F
F
20
1
1
10
2
3
6
T
F
T
20
1
60
10
2
30
7
T
T
F
20
40
1
10
20
3
8
T
T
T
20
40
60
10
20
30
[论述题](24)某工厂公开招工,规定报名都者年龄应在16周岁至35周岁之间(到2002年3月30日止)。
即出生年月不在上述范围内,将拒绝接受,并显示"年龄不合格”等出错信息。
试用等价分类法对这一程序功能的测试用例。
(假定已知出生年月由6位数字字符表示,前4位代表年,后两位代表月)
参考答案:
第一步:
划分等价类。
可以划分为个有效等价类,7个无效等价类,如下表所示:
输入数据
有效等价类
无效等价类
出生年月
①6位数字字符
②有非数字字符
③少于6个数字符
④多于6上数字符
对应数值
⑤在196702~196703之间
⑥<196702
⑦>196703
月份对应数值
⑧在1~12之间
⑨等于"0”
⑩>12
第二步:
设计有效等价类需要的测试用例。
上表中的①、⑤、⑧等3个有效等价类,可以公用一个测试用例,例如:
测试数据
期望结果
测试范围
197011
输入有效
①、⑤、⑧
第三步:
为每一无效等价类至少设计一个测试用例。
本例子具有7个无效等价类,需要不少于7个测试用例。
例如:
测试数据
期望结果
测试范围
MAY,70
输入无效
②
19705
输入无效
③
1968011
输入无效
④
195512
年龄不合格
⑥
196006
年龄不合格
⑦
196200
输入无效
⑨
197222
输入无效
⑩
[论述题](25) 如24题所述,试用边界值分析法设计其测试用例。
参考答案:
从前面练习中可知,有3个输入等价类,即①出生年月;②对应数值;③月份对应数值。
采用边界值分析法,可为这3个输入等价类选取14个边界值测试用例(其中有两个相重,实有13个),其内容如下所示:
输入
等价类
测试用例说明
测试数据
期望结果
选取理由
出生年月
1个数字字符
5
输入无效
仅有1个合法字符
5个数字字符
19705
比有效长度恰少一个字符
7个数字字符
1968011
比有效长度恰多一个字符
有1非个数字字符
19705A
非法字符最少
全是非数字字符
AUGUST
非法字符最多
6个数字字符
196702
输入有效
类型与长度均有效的输入
对应数值
35周岁
合格年龄
最大合格年龄
16周岁
198603
最小合格年龄
>35周岁
196701
不合格年龄
恰大于合格年龄
<16周岁
198604
恰小于合格年龄
月份
对应
数值
月份为1月
196702
输入有效
最小月份
月份为12月
198603
最大月份
月份<1
196700
输入无效
恰小于最小月份
月份>12
197413
恰大于最小月份