华东交通大学软件工程实验报告.docx

上传人:b****2 文档编号:1420121 上传时间:2023-04-30 格式:DOCX 页数:27 大小:572.44KB
下载 相关 举报
华东交通大学软件工程实验报告.docx_第1页
第1页 / 共27页
华东交通大学软件工程实验报告.docx_第2页
第2页 / 共27页
华东交通大学软件工程实验报告.docx_第3页
第3页 / 共27页
华东交通大学软件工程实验报告.docx_第4页
第4页 / 共27页
华东交通大学软件工程实验报告.docx_第5页
第5页 / 共27页
华东交通大学软件工程实验报告.docx_第6页
第6页 / 共27页
华东交通大学软件工程实验报告.docx_第7页
第7页 / 共27页
华东交通大学软件工程实验报告.docx_第8页
第8页 / 共27页
华东交通大学软件工程实验报告.docx_第9页
第9页 / 共27页
华东交通大学软件工程实验报告.docx_第10页
第10页 / 共27页
华东交通大学软件工程实验报告.docx_第11页
第11页 / 共27页
华东交通大学软件工程实验报告.docx_第12页
第12页 / 共27页
华东交通大学软件工程实验报告.docx_第13页
第13页 / 共27页
华东交通大学软件工程实验报告.docx_第14页
第14页 / 共27页
华东交通大学软件工程实验报告.docx_第15页
第15页 / 共27页
华东交通大学软件工程实验报告.docx_第16页
第16页 / 共27页
华东交通大学软件工程实验报告.docx_第17页
第17页 / 共27页
华东交通大学软件工程实验报告.docx_第18页
第18页 / 共27页
华东交通大学软件工程实验报告.docx_第19页
第19页 / 共27页
华东交通大学软件工程实验报告.docx_第20页
第20页 / 共27页
亲,该文档总共27页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

华东交通大学软件工程实验报告.docx

《华东交通大学软件工程实验报告.docx》由会员分享,可在线阅读,更多相关《华东交通大学软件工程实验报告.docx(27页珍藏版)》请在冰点文库上搜索。

华东交通大学软件工程实验报告.docx

华东交通大学软件工程实验报告

华东交通大学软件学院

上机实验报告

课程名称:

软件工程

指导老师:

唐怀琴

专业班级:

12软件+交通设备信息工程2班

姓名:

徐锦陶学号:

214

学期:

大二下学期

实验一:

数据流图实验

一、实验目的

通过绘制数据流图掌握数据流图的基本原理,并能对简单问题进行数据流图的分析,独立地完成数据流图的分析与设计。

此外,学会使用Case工具完成数据流图和系统流程图的分析与实现。

二、实验容

实验容如下:

a)用visio绘制出如下定货系统的SFD(系统流程图)的模型

b)用visio绘制教材中分别绘制出定货系统的DFD的顶层模型、

第一层模型和第二层模型。

(具体参考课本上P69~P70的图

3.4,图3.5和图3.6)

c)用visio绘制如下图所示的取款手续的数据流图。

帐卡

图2取款手续

d)请结合目前的银行柜台取款手续,对图2的取款数据流图进行改进,绘制当前银行柜台取款过程的顶层和第一层数据流图。

三、实验结果

(b)、图3.4DFD的顶层模型

管理员

事务

订货

订货报表

系统

L,1

采购员

(b)、图3.5DFD的第一层模型

 

库存信息

库存清单

管理员

事务

处理

事务

订货

信息

(b)、DFD的第二层模型

产生订货报表

报表

订货

信息

采购员

 

库存清单

库存清单

库存处理信息事务

订货

信息

(C)、取款手续的数据流图

检验岀的问题

检验

取款单

存折

储户

取款

信息

现款

付款信息

付款

帐卡

订货信息

登录

存折

年月日*日历

 

(d)、当前银行柜台取款过程的顶层数据流图

帐户余额

余额信息"

客户Rjf检查]取款”登录户

L__)取款枕丿

\信息,

取款•..

信息-►储户文件

实验二、软件设计实验

一、实验目的

学会使用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、

(1).采用visio绘制教材的图4.26中的软件结构图;

.X*

好输入

/

1

得到好输入

计算最佳解

产生最佳解

读输入编辑输入

(2).采用visio绘制教材的图4.41的软件层次图

 

发出警报铃声

 

 

(3).分析如下所示的数据流图,并把它转换成软件结构图,然后用visio把结果画出来。

2、PAD图

 

输入行李重量X

Y=0

X>20

T

/

Y=9*(X-20)

头T

国外乘客等

Y=12*(X-20)

 

 

Y=6*(X-20)

头/等\

Y=8*(X-20)

普通乘客

舱—F

 

输出托运费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)

Y=9*(X-20)

Y=8*(X-20)

Y=6*(X-20)

Y=4*(X-20)

Y=3*(X-20)

程序流程图

X3?

・¥,

求McCabe程序复杂度步骤:

步骤1:

将程序流程图退化成有向图,将程序流程图的每个处理框退化成一个节点,将控制流箭头退化成连接各节点的有向弧。

步骤2:

在有向图中,由程序出口到入口连接一条虚有向弧,使有向图达到强连通。

步骤3:

计算V(G)二m-n+1

V(G)是有向图的G中的环数,m是有向图G中的弧数,n是有向图

G中的节点数因此环形复杂度为:

V(G)=17-13+5=9,所以McCabe

程序复杂度为9。

实验三、软件测试实验

一、实验目的

学会使用CASE工具完成软件测试用例的设计以及初步完成对单元测试,深刻理解单元测试的基本原理及CASE工具的基本使用。

二、实验容

1、单元测试的逻辑覆盖测试验证实验:

运用工具完成对如下例子的单元测试,要求分别完成语句覆盖、判定覆盖、条件覆盖、判定条件覆盖、条件组合覆盖和路径覆盖测试的测试用例编写以及测试。

要求首先按格式编写出该测试所需要的测试用例,然后编写测试程序,对其进行测试,最后把你写的测试用例按格式记录到实验报告中。

测试用例的格式如下:

{[输入],[期望结果]},对于本例请遵循如下格式:

{[A,B,X],[X]}

a

图1单元测试逻辑覆盖的验证实验

此外,请测试如下情况:

(1).如果将第1个判定中的“AND”错写成了“OR”,用数据{[2,0,3],[2.5]}(首先,该组数据满足何种逻辑覆盖)对程序进行测试,可否发现错误?

为什么?

请先测试,然后把结论记录到实验报告中。

⑵.如果将第2个判定中的“x>1”错写成了“x<=1”,贝V用数据{[2,0,3],[2.5]}对程序进行测试,可否发现错误?

为什么?

请先测试,然后把结论记录到实验报告中

(3).如果将第1个判定中的“AND”错写成了“OR”,则用数据{[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);

要求为该程序设计满足简单循环的所有测试用例,记录到实

验报告中。

3、等价类划分及边界值测试的验证实验:

有如下算法A和B均

是非负整型变量(注:

int型),如果10vAv100,则B=A*20-5,如果0=100,则

B=A*100-200,请分别用等价类划分方法和边界值分析方法设计测试用例,然后编写测试程序完成测试。

并把测试结论写入到

实验报告中。

三、实验结果

1、

(1)语句覆盖

不能发现错误,因为and比or要求的要严格一些,故and可以满足的数据or也一定可以满足

(2)

请输入飢证

203

请WAO值典2.5输出X的值72.500000

Pr'css比口蚩keytocontinue

不能发现错误,第二个判定or只要满足一个条件即可,因为A=2必然成立,故第二个条件

定为真,所以不能发现错误。

(3)语句覆盖和判定覆盖

'C%User&\xujint曰o\Desktep\Debjg'\4・exc"

■,53HllA.fi,BrK:

301

请輸■厚值*S

憾岀*的值T9-333333

Fpeesankeptocontinue

j:

\users^xujinrao\L^esKro-p\ueoug.exe

i青输入仏田畀=

212

请审入孵值讥3

辅岀X的值二2.000000

Press已n即R巳野tocaintinue

第一组测试数据不能发现错误,因为第一组数据可以满足第一个判定的and判定,肯

定可以通过or判定条件。

而第二组测试数据可以发现错误,因为A=2,B=1,只有A满足条件而B不能满足条件,痛多AND返回0。

又由于把and错写成了or,返回值为1,影响了X的值,所以能发现错误。

第一组测试数据能发现错误。

经过第一个阿婆那段,执行c操作结果得到X=1/3,第二个

判定条件是X<=1,判定成功返回值为1,进行e操作,最后得到结果X=4/3。

与期望结果不同,系统想、提示错误,故能发现错误。

b,x:

耙i岀*的值?

3-000000

Pi*essanykeyt:

oconitInuie

第二组测试数据不能发现错误。

他、因为第一个判定条件是B=0,而B实际值为1判

定不成功,将进行操作b,进行第二个判定时,因为判定条件为A=2,此时X=2,故

判定成功返回1,进行e操作,最后得结果X=3与期望结果相同,不能发现“x>1”错写成了“x<=1”。

故不能发现错误。

(5)判定覆盖条件、语句覆盖、判定覆盖和条件覆盖

—jiij■%.*w~shB兀—1

|:

*基也:

TTZZa*

L冃领人口,B^X=

203

i脚入惡星值典2-&

输岀K的值72-500000

PressaLnykejjtocoritj-nue

第一组测试数据不能发现错误,在第2个判定时,因为A==2正确,满足条件,进行

e操作。

最后x=2.5,与期望结果相同。

所以不能发现“x>1”错写成了“x<=1

1

ssanyke^tocontinue

'C:

\U5ers\xujintao\De空ktop\Oebug\4.exe

对于第二组测试数据,因为对于第二个判定A=2,而A的实际值为1,此时后面的判定X>1或者X<=1对结果就有影响了,错写之后由于X=1,对于X<=1判定成立,返回1,影响

X的值,故能发现错误。

(6)

211

请松磐值趴2

输岀X的值:

2-000000

Pi*essanykey*bocon七inu圧

出错后执行路径仍为abe,

第一组测试数据不能发现错误,因为原本执行路径是abe

所以不能发现错误。

 

'C:

Wse巧'沁jjintm口心半ktop\DebLig\39.exeF

 

出错后执行路径仍为abe,

第二组测试数据也不能发现错误,因为原本执行路径是abe所以也不能发现错误。

(7)

abe,所以不能发现错误

■'C\User^\xujintdo\Dssktcp\Debug\8S

 

出错后执行路径仍为

第二组测试数据可以发现错误,因为原本执行路径是ace

abe,所以能发现错误。

请输人*,H川

111

逆输入讲崖值¥:

1

输岀的值=1.000000

Press战nytocontinue^

出错后执行路径仍为

第三组测试数据不能发现错误,因为原本执行路径是abdacd,所以不能发现错误

*C:

\UsgrsViujint曰口\*?

ktop\DebugXS&.ese"

幘输入鮎R用

1B2

斜入瞻值珀3師岀£的值’3.0S0000

Ppessan即keytocontinue

出错后执行路径仍为

第四组测试数据不能发现错误,因为原本执行路径是abe

abe,所以也不能发现错误

程序代码:

#include

voidmain()

{

intA,B;

floatX,Y;

printf("请输入A,B,X:

\n");scanf("%d%d%f",&A,&B,&X);printf("请输入期望值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

{printf("输出X的值:

");

}

}

printf("输出X的值:

");

printf("%f\n",X);

}

2、循环结构

程序:

#include

voidmain()

{

inti,a;

cout<<"请输入i和a:

"<

cin>>i>>a;

while(i<=10)

{

a=a+2;

if(a>4)

{

a=a*2;

a=a+3;

}

{

if(a>1)a=a-4;

elsea=a+5;

}

i++;

}

a=a*4;

cout<

测试用例:

(i,a)%(11,2)(1,5)(1,1)(1,-3)

3、验证实验

实验程序:

#include

voidmain()

{

intA,B;

printf("请输入A的值:

");

scanf("%d",&A);

if(A>10&&A<100)B=20*A-5;

if(A>0&&A<=10)B=15*A+20;

if(A>=100)B=100*A-200;

printf("请输出B的值:

");

printf("%d\n",B);

输入条件的等价类划分

ID

输入

期望结果

备注

1

50

输入有效

覆盖有等价类1

2

5

输入有效

覆盖有等价类2

3

150

输入有效

覆盖有等价类3

 

有效等价类测试用例

ID

输入

期望结果

备注

1

50

输入有效

覆盖有效等价类1

2

5

输入有效

覆盖有效等价类2

3

150

输入有效

覆盖有效等价类3

 

无效等价类测试用例

ID

输入

期望结果

备注

1

-1

输入无效

覆盖无效等价类4

2

Abe

输入无效

覆盖无效等价类5

边界值分析:

根据题意可以取:

-1,0,1,9,10,11,99,100,101,

102

实验四:

软件动态模型建模实验

一、实验目的

运用Visio和Powerdesigner等Case工具完成软件问题的时序图、状态图以及活动图的绘制,真正理解这些动态模型的含义,并能熟练的使用Case工具。

二、实验容

1、Powerdesigner完成教材图3.15的状态图设计

2、Powerdesigner完成如下软件问题的状态图设计。

复印机的工作流程大致如下:

未接到复印命令时处于闲置状态,一旦接到复印命令后则进入复印状态,完成一个复印命令规定的工作后又回到闲置状态,等待下一个复印命令;如果执行复印命令时发现没有纸,则进入缺纸状态,发出警告,等待装纸,装满纸后进入闲置状态,准备接受复印命令;如果复印时发生卡纸故障,则进入卡纸状态,发出警告,等待维修人员来排除故障,故障排除后回到闲置状态。

3、Powerdesigner完成如下所示的时序图设计

7输人谱码「

"输人类也;

输ARSM6

甘吋出现金

■请抽蹶此車虬

r皓車r

2请或味逬背

孝底卡-

见小卞屏幕

AlM

请求酯汀毗户

请求赴理專务

击务或/

账户仃效

请求处理廿ff唏巻分行师务威功■

图1某系统时序图

4、完成如下用户身份验证功能的活动图设计:

用户首先输入其个人信息,如果确认其输入则向系统提交用户信息,并在数据库中查询用户信息,比较用户信息,同时进行验证,验证通过,该用户获得授权可以进入系统的主界面,否则,验证失败重新回到输入用户信息界面。

如果用户放弃输入,则结束程序。

5、综合题。

综合运用所学00A和00D方法和技术完成教材

P263习题8的第10题。

三、实验结果

1、图3.15

!

!

!

闲直

桂甌电送

1三匸三

-.1—.2—.J1―斗

._^1—L—4—』

・H

广披号音

tLmei=O

(WPfite号者

-且眉加血⑴工,

超时

IjidI

H-

—Hf-——H]H1——1

妥话人回逢

II■I■

■・■・・・!

■■■■■ir|i■■■■■■■■■■・

2、打印机

 

3、时序图

总行

分行

L

要求密码

输入密码

一要求事务类型

输入类型

要求输入取款额「

输入取款额

吐出珊金

请求拿走规金

学走现金-

一请求龜幾曲事势

结康■

印账单

T退卡

丫请求韋迄卡

拿走卡

一显示主屏幕

插卡

请求噓证喘户

赃户有效

请求处理事劳

4、用户身份验证功能活动图

请求分行验证赌户l

账户有数

请求处理分行事势卜

分行事劳砺功

 

5、习题8.10

o

o

 

虹系缱嚼面基擁崽惬入岸籍

物品"

柳品%

库存嘉

生斓+軀

对象模型

 

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 法律文书 > 调解书

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2