华东交通大学软件工程试验报告.docx
- 文档编号:3659920
- 上传时间:2022-11-24
- 格式:DOCX
- 页数:27
- 大小:442.03KB
华东交通大学软件工程试验报告.docx
《华东交通大学软件工程试验报告.docx》由会员分享,可在线阅读,更多相关《华东交通大学软件工程试验报告.docx(27页珍藏版)》请在冰豆网上搜索。
华东交通大学软件工程试验报告
华东交通大学软件学院
上机实验报告
课程名称:
软件工程
指导老师:
唐怀琴
专业班级:
12软件+交通设备信息工程2班
姓名:
徐锦陶
学号:
20122110120214
学期:
大二下学期
实验一:
数据流图实验
一、实验目的
通过绘制数据流图掌握数据流图的基本原理,并能对简单问题进行数据流图的分析,独立地完成数据流图的分析与设计。
此外,学会使用Case工具完成数据流图和系统流程图的分析与实现。
二、实验内容
实验内容如下:
a)用visio绘制出如下定货系统的SFD(系统流程图)的模型。
....
SFD
1图某定货系统的顶层模型、绘制教材中分别绘制出定货系统的DFDb)用visio的图(具体参考课本上P69~P70第一层模型和第二层模型。
)3.5,图和图3.63.4绘制如下图所示的取款手续的数据流图。
用visioc)
取款手续图2
的取款数据流图进行对图2请结合目前的银行柜台取款手续,d)
的顶层和第一层数据流图。
改进,绘制当前银行柜台取款过程
三、实验结果(系统流程图)的模型定货系统的SFD、)a(....
事务库存清单库存清单程序主文件订信报告生成程订货报
的顶层模型DFDb)、图3.4(
采购员
订货报表订货事务管理员系统
的第一层模型DFD3.5(、图b)
....
事务
库存信息订货报表订货信息
库存清单产生处理报表
管理员
采购员
事务订货信息
订货信息
的第二层模型DFD、(b)
接受事务事务
库存清单产生订货报表报表订货信息
库存清单更新库处理库存存信息事务信息订货信息
管理员
采购员
事务
订货信息
取款手续的数据流图、(c)....
帐卡检验出的问题检验存折取款单取款
信息存折储户现款登录付款信息付款年月日
日历
当前银行柜台取款过程的顶层数据流图d)、(
信息账户信息处理结果客户处理
客户
当前银行柜台取款过程的第一层数据流图
帐户余额余额信息存折现款客户检查登录取款信息
客户
取款信息
储户文件
....
实验二、软件设计实验
一、实验目的
学会使用Case工具完成描述软件结构的软件结构图和软件层次图的设计,并熟练地掌握几种常用的软件详细设计的工具,如程序流程图、盒图、PAD图和判定表,并能把给定的软件问题描述转化为过程设计结果。
二、实验内容
1、软件结构设计:
(1)采用visio绘制教材的图4.26中的软件结构图;
(2)采用visio绘制教材的图4.41的软件层次图。
(3)分析如下所示的数据流图,并把它转换成软件结构图,然后用visio把结果画出来。
(注意,请用结构图)
图1某系统的数据流图
2、软件的详细设计:
某航空公司规定,乘客可以免费托运重量不超过20公斤的行李,当行李重量超过20公斤,对头等舱的国内乘客超重部分每公斤收费6元,对其他舱的国内乘客超重部分每公斤收费8元,对外国顾客超重部分每公斤收费比国内乘客多1.5倍,对残疾乘客超重部分每公斤收费比正常乘客少一半。
....
实验包含三部分的内容:
e)用word设计描述其详细设计结果的PAD图、判定表。
f)用viso画出它的程序流程图,并计算它的Mccabe程序复杂度。
(要求把计算过程写到实验报告中)
三、实验结果
(1).
采用visio绘制教材的图4.26中的软件结构图;、1
好输入原始输入
产生最佳解解解
好输入计算最佳解
解
得到好输入编辑结果原始输入
输出结果格式化的解格式化的解
读输入
编辑输入
结果格式化
显示结果
(2).采用visio绘制教材的图4.41的软件层次图。
....
转换成计算确定/减加速速
数字仪表板控制发光二极管
接收传感器信号计算读燃料流量
数据转换控制
驱动仪表板显示
计算
计算
显示显示减加速/速显示
显示
读旋转信号
发出报铃声
分析如下所示的数据流图,并把它转换成软件结构图,(3).把结果画出来。
然后用visio
主程序f10CHf4f5
PI
O
f3f1B
f8f2
A
D
E
G
fF
图、2PAD
开始X
输入行李重量....
Y=0
T
X>20
Y=9*(X-20)TF头
等国外乘客
F舱Y=12*(X-20)
T
头Y=6*(X-20)
等普通乘客
F舱Y=8*(X-20)
Y=3*(X-20)T头
等残疾乘客
F舱Y=4*(X-20)
Y
输出托运费结束
判定表
判定条件
X行李重量
X<20
Y
Y
Y
Y
--
--
--
--
状态
X>20
--
--
--
--
Y
Y
Y
Y
乘客类别
外国人
Y
N
N
Y
Y
N
Y
N
普通人
N
Y
Y
N
N
N
N
Y
残疾人
N
N
N
N
N
Y
N
N
乘坐规格
头等舱
Y
N
Y
Y
N
Y
N
N
普通舱
N
Y
N
N
Y
N
Y
Y
托运费用
Y=0
判定规则
)(Y=12*X-20
X-20()Y=9*
(Y=8*X-20)
X-20(Y=6*)
Y=4*X-20()
X-20Y=3*()
程序流程图
....
程序复杂度步骤:
求McCabe将程序流程图退化成有向图,将程序流程图的每个处理框退1:
步骤化成一个节点,将控制流箭头退化成连接各节点的有向弧。
:
在有向图中,由程序出口到入口连接一条虚有向弧,使有向2步骤图达到强连通。
V(G)=m-n+1
3:
计算步骤是有向图n是有向图G中的弧数,中的环数,V(G)是有向图的Gm程,所以McCabe中的节点数因此环形复杂度为:
GV(G)=17-13+5=9。
序复杂度为9....
实验三、软件测试实验
一、实验目的
学会使用CASE工具完成软件测试用例的设计以及初步完成对单元测试,深刻理解单元测试的基本原理及CASE工具的基本使用。
二、实验内容
1、单元测试的逻辑覆盖测试验证实验:
运用工具完成对如下例子的单元测试,要求分别完成语句覆盖、判定覆盖、条件覆盖、判定条件覆盖、条件组合覆盖和路径覆盖测试的测试用例编写以及测试。
要求首先按格式编写出该测试所需要的测试用例,然后编写测试程序,对其进行测试,最后把你写的测试用例按格式记录到实验报告中。
测试用例的格式如下:
{[输入],[期望结果]},对于本例请遵循如下格式:
{[A,B,X],[X]}
....
a
bF
cT(B=0)X=X/A
and
(A>1)
dFor(A=2)
eT
(X>1)
X=X+1
1单元测试逻辑覆盖的验证实验图此外,请测试如下情况:
,用数据”AND”错写成了“OR
(1).如果将第1个判定中的“(首先,该组数据满足何种逻辑覆盖)对程序{[2,0,3],[2.5]}进行测试,可否发现错误?
为什么?
请先测试,然后把结论记录到实验报告中。
,则用数x<=1”2个判定中的“x>1”错写成了“
(2).如果将第对程序进行测试,可否发现错误?
为什么?
{[2,0,3],[2.5]}据请先测试,然后把结论记录到实验报告中。
,则用数”AND个判定中的“”错写成了“OR1(3).如果将第....
据{[3,0,1],[1/3]}和{[2,1,2],[3]}(首先,该组数据满足何种逻辑覆盖)对程序进行测试,可否发现错误?
为什么?
请先测试,然后把结论记录到实验报告中。
(4).如果将第2个判定中的“x>1”错写成了“x<=1”,则用数据{[3,0,1],[1/3]}和{[2,1,2],[3]})对程序进行测试,可否发现错误?
为什么?
请先测试,然后把结论记录到实验报告中。
(5).如果将第2个判定中的“x>1”错写成了“x<=1”,则用数据{[2,0,3],[2.5]}和{[1,1,1],[1]}(首先,该组数据满足何种逻辑覆盖)对程序进行测试,可否发现错误?
为什么?
请先测试,然后把结论记录到实验报告中。
(6).如果将第1个判定中的“a>1”错写成了“a<=1”,且把“b=0”错写成了“b<>0”,则用数据{[2,1,1],[2]}和{[1,0,2],[3]}对程序进行测试,可否发现错误?
为什么?
请先测试,然后把结论记录到实验报告中。
(7).如果将第1个判定中的“a>1”错写成了“a<=1”,且把“b=0”错写成了“b<>0”,则用数据{[2,1,1],[2]}、{[2,0,2],[2]}、{[1,1,1],[1]}和{[1,0,2],[3]}对程序进行测试,可否发现错误?
为什么?
请先测试,然后把结论记录到实验报告中。
2、循环结构测试
现有一个简单循环,需要对其进行测试,其程序伪代码如下:
Inti,a;
Input(i,a);
While(i<=10)
{
....
a+=2;
if(a>4)
{
a*=2;
a+=3;
}
Else
{
If(a>1)
a-=4;
else
a+=5;
}
i++;
}
a*=4;
Output(a);
要求为该程序设计满足简单循环的所有测试用例,记录到实验报告中。
等价类划分及边界值测试的验证实验:
有如下算法A和B均、3是非负整型变量(注:
int型),如果10=100,则B=A*100-200,请分别用等价类划分方法和边界值分析方法设计测试用例,然后编写测试程序完成测试。
并把测试结论写入到实验报告中。
三、实验结果
1、
(1)语句覆盖
....
也一定可可以满足的数据orand不能发现错误,因为and比or要求的要严格一些,故以满足。
2)(
必然成立,故第二个条件A=2or只要满足一个条件即可,因为不能发现错误,第二个判定一定为真,所以不能发现错误。
)语句覆盖和判定覆盖3(
....
判定,肯定第一组测试数据不能发现错误,因为第一组数据可以满足第一个判定的and满A,B=1,只有可以通过or判定条件。
而第二组测试数据可以发现错误,因为A=2,1or,返回值为andAND返回0。
又由于把错写成了足条件而B不能满足条件,痛多的值,所以能发现错误。
影响了X)(4
,第二个判操作结果得到X=1/3第一组测试数据能发现错误。
经过第一个阿婆那段,执行c。
与期望结果不操作,最后得到结果X=4/31,进行e定条件是X<=1,判定成功返回值为同,系统想、提示错误,故能发现错误。
判定1B实际值为因为第一个判定条件是第二组测试数据不能发现错误。
他、B=0,而,故判定,此时X=2不成功,将进行操作b,进行第二个判定时,因为判定条件为A=2”错写成x>1操作,最后得结果X=3与期望结果相同,不能发现“1成功返回,进行ex<=1了“”。
故不能发现错误。
)判定覆盖条件、语句覆盖、判定覆盖和条件覆盖(5....
正确,满足条件,进行=2个判定时,因为A=第一组测试数据不能发现错误,在第2”。
,与期望结果相同。
所以不能发现“x>1”错写成了“x<=1e操作。
最后x=2.5
X>1此时后面的判定的实际值为1,A=2对于第二组测试数据,因为对于第二个判定,而AX1判定成立,返回,影响X<=1对结果就有影响了,错写之后由于X=1,对于X<=1或者的值,故能发现错误。
6)(
,abe第一组测试数据不能发现错误,因为原本执行路径是abe。
出错后执行路径仍为所以不能发现错误。
,abe第二组测试数据也不能发现错误,因为原本执行路径是abe。
出错后执行路径仍为....
所以也不能发现错误。
(7)
第一组测试数据不能发现错误,因为原本执行路径是abe。
出错后执行路径仍为abe,所以不能发现错误。
第二组测试数据可以发现错误,因为原本执行路径是ace。
出错后执行路径仍为abe,所以能发现错误。
第三组测试数据不能发现错误,因为原本执行路径是abd。
出错后执行路径仍为acd,所以不能发现错误。
第四组测试数据不能发现错误,因为原本执行路径是abe。
出错后执行路径仍为abe,所以也不能发现错误。
程序代码:
#include
....
voidmain()
{
intA,B;
floatX,Y;
牰湩晴尨请输入A,B,X:
\n);
scanf(%d%d%f,&A,&B,&X);
牰湩晴尨请输入期望值Y:
);
scanf(%f,&Y);
if(A>1&&B==0)
{
X=X/A;
if(A==2||X>1)X=X+1;
}
else
{
if(A=2||X>1)X=X+1;
else
灻楲瑮?
输出X的值:
);
printf(%f,X);
}
}
牰湩晴尨输出X的值:
);
printf(%f\n,X);
}
2、循环结构
程序:
#include
voidmain()
{
inti,a;
潣瑵?
请输入i和a:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 华东 交通大学 软件工程 试验报告