华东交通大学软件工程实验报告_第1页
华东交通大学软件工程实验报告_第2页
华东交通大学软件工程实验报告_第3页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、华东交通大学软件学院上机实验报告课程名称:软件工程指导老师:唐怀琴专业班级:12软件+交通设备信息工程2班姓名:徐锦陶214学期:大二下学期实验一:数据流图实验实验目的通过绘制数据流图掌握数据流图的基本原理,并能对简单问题进行数据流图的分 析,独立地完成数据流图的分析与设计。此外,学会使用Casel具完成数据流图和 系统流程图的分析与实现。实验内容实验内容如下:a)用visio绘制出如下定货系统的SFD (系统流程图)的模型。图1某定货系统SFDb)用visio绘制教材中分别绘制出定货系统的DFD的顶层模型、第一层模型和第 二层模型。(具体参考课本上P69P70的图3.4,图3.5和图3.6)

2、C)用V1S1O绘制如下图所示的取款手续的数据流图。图2取款手续d) 请结合目前的银行柜台取款手续,对图2的取款数据流图进行改进,绘制当前银行柜台取款过程的顶层和第一层数据流图。三.实验结果(a) 、定货系统的SFD (系统流程图)的模型(b) 、图3.4DFD的顶层模型(b)、图3.5DFD的第一层模型(b) 、DFD的第二层模型(c) 、取款手续的数据流图(d) 、当前银行柜台取款过程的顶层数据流图当前银行柜台取款过程的第一层数据流图实验二、软件设计实验一、实验目的学会使用Case工具完成描述软件结构的软件结构图和软件层次图的设计,并熟练 地掌握几种常用的软件详细设计的工具,如程序流程图、

3、盒图、PAD图和判定表, 并能把给定的软件问题描述转化为过程设计结果。二、实验内容1、软件结构设计:(1)采用visio绘制教材的图4.26屮的软件结构图;采用visio绘制教材的图4.41的软件层次图。(3) 分析如下所示的数据流图,并把它转换成软件结构图,然后用visio把结果画出来。(注意,请用结构图)图1某系统的数据流图2. 软件的详细设计:某航空公司规定,乘客可以免费托运重量不超过20公斤 的行李,当行李重量超过20公斤,对头等舱的国内乘客超重部分每公斤收费6 元,对其他舱的国内乘客超重部分每公斤收费8元,对外国顾客超重部分每公 斤收费比国内乘客多1.5倍,对残疾乘客超重部分每公斤收

4、费比正常乘客少一 半。实验包含三部分的内容:e)用word设计描述其详细设计结果的PAD图、判定表。f)用Bso画出它的程序流程图,并计算它的Mccabe程序复杂度。(要求把计算 过程写到实验报告中)三、实验结果1、(1)采用visio绘制教材的图4.26屮的软件结构图;採用visio绘制教材的图4.41的软件层次图。(3).分析如下所示的数据流图,并把它转换成软件结构图,然后用visio把 结果画出来。2、PAD 图_验世托运费Y 结束y判定表判定条件行李重量XX<20YYYY状态X>20YYYY乘客类别外国人YNNYYNYN普通人NYYNNNNY残疾人NNNNNYNN乘坐规格头

5、等舱YNYYNYNN普通舱NYNNYNYY托 运 费 用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)程序流程McCabe程序复杂度步骤:步骤1:将程序流程图退化成有向图,将程序流程图的每个处理框退化成一个节点, 将控制流箭头退化成连接各节点的有向弧。步骤2:在有向图中,由程序出口到入口连接一条虚有向弧,使有向图达到强连通。步骤3:计算V(G)=mn+lV(G)是有向图的G中的坏数,m是有向图G中的弧数,n是有向图G中的节点数因 此环形复杂度为:V(G)=17 13+5=9,所以McCa

6、be程序复杂度为9。实验三、软件测试实验一. 实验目的学会使用CASE工具完成软件测试用例的设计以及初步完成对单元测试,深刻理 解单元测试的基本原理及CASE工具的基本使用。二、实验内容1单元测试的逻辑覆盖测试验证实验:运用工具完成对如下例子的单元测试,要求分别完成语句覆盖、判定覆盖、条件覆盖、判定条件覆盖、条件组合覆盖 和路径覆盖测试的测试用例编写以及测试。要求首先按格式编写出该测试所需 要的测试用例,然后编写测试程序,对其进行测试,最后把你写的测试用例按 格式记录到实验报告中。测试用例的格式如下:输入,期望结果,对于本例请遵循如下格式:A,B,X,X图1单元测试逻辑覆盖的验证实验 此外,请

7、测试如下情况:(1).如果将第1个判定中的“AND”错写成了 “OR”,用数据2,0,3,2.5 (首先,该组数据满足何种逻辑覆盖)对程序进行测试,可否发现错误?为 什么?请先测试,然后把结论记录到实验报告中。.如果将第2个判定中的“x>l”错写成了 “x<=l” ,贝IJ用数据2,0,3,2.5 对程序进行测试,可否发现错误?为什么?请先测试,然后把结论记录到实 验报告中。(3) .如果将第1个判定中的“AND”错写成了 “OR”,贝I用数据3,0,1,1/3 和2,1,2,3(首先,该组数据满足何种逻辑覆盖)对程序进行测试,可否 发现错误?为什么?请先测试,然后把结论记录到实验

8、报告中。(4) .如果将第2个判定中的“x>l”错写成了 “x<=l” ,贝I用数据3,0,1,1/3 和2,1,2,3)对程序进行测试,可否发现错误?为什么?请先测试,然后 把结论记录到实验报告中。(5) .如果将第2个判定中的“x>l”错写成了 “x<=l” ,贝IJ用数据2,0,3,2.5 和1丄1,1(首先,该组数据满足何种逻辑覆盖)对程序进行测试,可否 发现错误?为什么?请先测试,然后把结论记录到实验报告中。(6) .如果将第1个判定中的 W 错写成了 <=” ,且把“b=0”错写成 了 “20” ,则用数据2,1,1,2和1,0,2,3对程序进行测试,

9、可否发 现错误?为什么?请先测试,然后把结论记录到实验报告中。(7) .如果将第1个判定中的 W 错写成了 <=” ,且把“b=0”错写成 了 “20”,则用数据2,1,1,2、2,0,2,2、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;ElseIf(a>l)a-=4;elsea+=5;i+;a*=4;Output(a);要求为

10、该程序设计满足简单循环的所有测试用例,记录到实验报告屮。3、等价类划分及边界值测试的验证实验:有如下算法A和B均是非负整型变 量(注:int 型),如果 10<A<100,则 B=A*20-5,如果 0<A<=10,则 B=A* 15+20, 如果A>=100,则B=A* 100-200,请分别用等价类划分方法和边界值分析方法 设计测试用例,然后编写测试程序完成测试。并把测试结论写入到实验报告中。三、实验结果1、(1)语句覆盖不能发现错误,因为and比or要求的要严格一些,故and可以满足的数据o也一定可以满足。(2)不能发现错误,第二个判定or只要满足一个条件即

11、可,因为A=2必然成立,故第二个条件一定为真,所以不能 发现错误。(3)语句覆盖和判定覆盖第一组测试数据不能发现错误,因为第一组数据可以满足第一个判定的and判定,肯定可以通过or判定条 件。而第二组测试数据可以发现错误,因为A=2, B=l,只有A满足条件而B不能满足条件,痛多AND返 回0。又由于把and错写成了 or,返回值为1,影响了 X的值,所以能发现错误。(4)第一组测试数据能发现错误。经过第一个阿婆那段,执行c操作结果得到X=l/3,第二个判定条件是X<=1,判 定成功返回值为1,进行e操作,最后得到结果X=4/3。与期望结果不同,系统想、提示错误,故能发现错误。 第二组测

12、试数据不能发现错误。他、因为第一个判定条件是B=0,而B实际值为1判定不成功,将进行操 作b,进行第二个判定时,因为判定条件为A=2,此时X=2,故判定成功返回1,进行e操作,最后得结果 X=3与期望结果相同,不能发现“x>l”错写成了 “x<=l”。故不能发现错误。(4) 判定覆盖条件、语句覆盖、判定覆盖和条件覆盖第一组测试数据不能发现错误,在第2个判定时,因为A"=?2正确,满足条件,进行e操作。最后x?=?2.5, 与期望结果相同。所以不能发现“x>l”错写成了 “x<=l”。对于第二组测试数据,因为对于第二个判定A=2,而A的实际值为1,此时后面的判定

13、X>1或者 X<=1对结果就有影响了,错写之后由于X=l,对于X<=1判定成立,返回1,影响X的值,故能 发现错误。(6)第一组测试数据不能发现错误,因为原本执行路径是abe。出错后执行路径仍为abe,所以不能发现错误。? 第二组测试数据也不能发现错误,因为原本执行路径是abe。出错后执行路径仍为abe,所以也不能发现错 误。(7)第一组测试数据不能发现错误,因为原本执行路径是abe。出错后执行路径仍为abe,所以不能发现错误。 第二组测试数据可以发现错误,因为原本执行路径是ace。出错后执行路径仍为abe,所以能发现错误。第三组测试数据不能发现错误,因为原本执行路径是nbd

14、。出错后执行路径仍为acd,所以不能发现错 误。?第四组测试数据不能发现错误,因为原本执行路径是abe。出错后执行路径仍为abe,所以也不能发现 错误。程序代码:#include<stdio.h>voidniam()intA.B;floatX.Y;输入 A, B,X:nn);scanf(n%d%d%f&A,&E,&X);pnntf(”请输入期望值Y:scanf(n%f&Y);if(A>l&&B=0)X=X/A;if(A=2|X>l)X=X+l;elseif(A=2|X>l)X=X+l;elsepnnrff输出X的值:

15、”); pnntff%fX);pnntfC输出X的值:”);pnntfC%fW',X);2、循环结构程序:#include<iostream.h> voidniam()inti,a;cout«"请输入 i 和 a: "«endl; ciii»i»a;while(i<=10)a=a+2;if(a>4)a=a*2;a=a+3;if(a>l)a=a-4; elsea=a+5;a=a*4; cout«a«endl;测试用例:(i, a)为(11, 2) (1, 5) (1, 1)(1,

16、 -3)3、验证实验实验程序:# iiiclude<stdio.h> voidmainOintA,B;prmtf(ni#输入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; prmtf(ni#输出B的值); pnntf(n%dirB);输入条件的等价类划分ID输入期望结果备注150输入有效覆盖有等价类125输入有效覆盖有等价类23150输入有效覆盖有等价类3有效等价类测

17、试用例?ID偷入期望结果备注150输入有效覆盖有效等价类125输入有效覆盖有效等价类23150输入有效覆盖有效等价类3无效等价类测试用例ID偷入期望结果备注11输入无效覆盖无效等价类42Abe输入无效覆盖无效等价类5边界值分析:??根据题意可以取:1, 0, 1, 9, 10, 11, 99, 100, 101, 102?实验四:软件动态模型建模实验一、实验目的运用Visio和Powerdesigner等Case工具完成软件问题的时序图、状态图以及活 动图的绘制,真正理解这些动态模型的含义,并能熟练的使用Casel具。二、实验内容1、Powerdesigner完成教材图3.15的状态图设计2、Powerdesigner完成如下软件问题的状态图设计。复印机的工作流程大致如下: 未接到复印命令时处于闲置状态,一旦接到复印命令后则进入复印状态,完成 一个复印命令规定的工作后又回到闲置状态,等待下一个复印命令;如果执行 复印命令时发现没有纸张,则进入缺纸状态,发出警告,等待装纸,装满纸后 进入闲置状态,准备接受复印命令;如果复印时发生卡纸故障,则进入卡纸状 态,发出警告,等待维修人员来排

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论