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

下载本文档

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

文档简介

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

2、和第二层模型。 (具体参考课本上 P69P70 的图 3.4,图 3.5 和图 3.6) c)用 visio 绘制如下图所示的取款手续的数据流图。 图 2 取款手续 d)请结合目前的银行柜台取款手续 ,对图 2的取款数据流图进行 改进,绘制 当前银行柜台取款过程 的顶层和第一层数据流图。 三、实验结果 a)、定货系统的 SFD(系统流程图)的模型 事务 库存清单程序 库存清单 主文件 订货 信息 报告生成程序 订货报告 b)、图 3.4 DFD 的顶层模型 管理员 订货 订货报表 采购员 系统 事务 b)、图 3.5 DFD 的第一层模型 管理员 事务 b)、 DFD 的第二层模型 订货信息

3、订货 信息 订货信息 c)、取款手续的数据流图 帐卡 检验出的问题 取款单 存折 取款 信息 存折 储户 现款 付款信息 登录 付款 年月日 日历 d)、当前银行柜台取款过程的顶层数据流图 处理结果 客户 现款 客户 当前银行柜台取款过程的第一层数据流图 取款 登录 取款 信息 储户文件 实验二、软件设计实验 一、实验目的 学会使用 Case 工具完成描述软件结构的软件结构图和软件层次 图的设计, 并熟练地掌握几种常用的软件详细设计的工具, 如程序流 程图、盒图、PAD图和判定表, 并能把给定的软件问题描述转化为过 程设计结果。 二、实验内容 1、软件结构设计: (1) 采用 visio 绘制

4、教材的图 4.26 中的软件结构图; (2) 采用 visio 绘制教材的图 4.41 的软件层次图。 (3) 分析如下所示的数据流图,并把它转换成软件结构图,然 后用 visio 把结果画出来。 (注意,请用结构图 ) 图 1 某系统的数据流图 2、软件的详细设计 :某航空公司规定,乘客可以免费托运重量 不超过 20 公斤的行李, 当行李重量超过 20 公斤, 对头等舱的国 内乘客超重部分每公斤收费 6 元,对其他舱的国内乘客超重部分 每公斤收费 8 元,对外国顾客超重部分每公斤收费比国内乘客多 1.5 倍,对残疾乘客超重部分每公斤收费比正常乘客少一半。 实验包含三部分的内容: e) 用 w

5、ord 设计描述其详细设计结果的 PAD 图、判定表。 f) 用 viso 画出它的程序流程图,并计算它的 Mccabe程序复杂度 (要求把计算过程写到实验报告中 ) 三、实验结果 1、(1). 采用 visio 绘制教材的图 4.26 中的软件结构图; (2).采用 visio 绘制教材的图 4.41 的软件层次图 读旋转 信号 确定 加速/减 速 读燃料 流量 (3).分析如下所示的数据流图,并把它转换成软件结构图, 然后用 visio 把结果画出来。 2、PAD 图 开始 判定表 判 定 条 件 行李重量 X X20 - - - - Y Y Y Y 乘客类别 外国人 Y N N Y Y

6、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 ) 程序流程图 求 McCabe程序复杂度步骤: 步骤 1: 将程序流程图退化成有向图,将程序流程图的每个处理框退 化成一个节点,将控制流箭头退化成连接各节点的有向弧。 步骤 2:在有向图中,由程序出口到入口连接一条虚有向弧

7、,使有向 图达到强连通。 步骤 3:计算 V(G)=m-n+1 V(G)是有向图的 G中的环数, m是有向图 G中的弧数, n是有向图 G 中的节点数因此环形复杂度为: V(G)=17-13+5=9 ,所以 McCabe程 序复杂度为 9。 实验三、软件测试实验 一、实验目的 学会使用 CASE 工具完成软件测试用例的设计以及初步完成对单 元测试,深刻理解单元测试的基本原理及 CASE 工具的基本使用。 二、实验内容 1、单元测试的逻辑覆盖测试验证实验: 运用工具完成对如下例 子的单元测试,要求分别完成语句覆盖、判定覆盖、条件覆盖、 判定条件覆盖、 条件组合覆盖和路径覆盖测试的测试用例编写以

8、及测试。 要求首先按格式编写出该测试所需要的测试用例, 然后 编写测试程序, 对其进行测试, 最后把你写的测试用例按格式记 录到实验报告中。 测试用例的格式如下: 输入, 期望结果 ,对于本例请遵循如下格式: A,B,X,X a (1) . 如果将第 1 个判定中的“ AND ”错写成了“ OR”,用数据 2,0,3,2.5 (首先,该组数据满足何种逻辑覆盖)对程序 进行测试,可否发现错误?为什么?请先测试,然后把结论 记录到实验报告中。 (2) . 如果将第 2个判定中的“ x1”错写成了“ x1”错写成了“ x1”错写成了“ x1”错写成了“a=1”,且把“b=0” 错写成了 “b0”,则

9、用数据 2,1,1,2 和1,0,2,3 对程序 进行测试,可否发现错误?为什么?请先测试,然后把结论 记录到实验报告中。 (7) . 如果将第 1 个判定中的“a1”错写成了“a=1”,且把“b=0” 错写成了“ b0 ”,则用数据 2,1,1,2 、 2,0,2,2 、 1,1,1,1 和 1,0,2,3 对程序进行测试,可否发现错误? 为什么?请先测试,然后把结论记录到实验报告中。 2、循环结构测试 现有一个简单循环,需要对其进行测试,其程序伪代码如下: Int i,a; Input(i,a); While(i4) a *= 2 ; a += 3; Else If(a1) a -= 4;

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

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

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

13、误, 因为原本执行路径是 abd。出错后执行路径仍为 acd, 所以不能发现错误。 第四组测试数据不能发现错误,因为原本执行路径是abe。出错后执行路径仍为 abe,所以也不能发现错误。 程序代码: #include void main() int A,B; float X,Y; printf( 请输入 A , B,X:n); scanf(%d%d%f, printf( 请输入期望值 Y :); scanf(%f, if(A1 if(A=2|X1) X=X+1; else if(A=2|X1) X=X+1; else printf( 输出 X 的值: ); printf(%f,X); prin

14、tf( 输出 X 的值: ); printf(%fn,X); 2、循环结构 程序: #include void main() int i,a; cout 请输入 i 和 a: ia; while(i4) a=a*2; a=a+3; else if(a1)a=a-4; else a=a+5; i+; a=a*4; coutaendl; 测试用例:(i,a)为( 11,2)(1,5)(1,1)(1,-3) 3、验证实验 实验程序: #include void main() int A,B;printf( 请输入 A 的值 :); scanf(%d, if(A10 printf( 请输出 B 的值

15、:); printf(%dn,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 Abc 输入无效 覆盖无效等价类 5 边界值分析: 根据题意可以取: -1, 0, 1,9, 10, 11,99,100,101,102

16、实验四:软件动态模型建模实验 一、 实验目的 运用 Visio 和 Powerdesigner等 Case工具完成软件问题的时序图、 状态图以及活动图的绘制, 真正理解这些动态模型的含义, 并能熟练 的使用 Case工具。 二、 实验内容 1、 Powerdesigner完成教材图 3.15 的状态图设计 2、 Powerdesigner完成如下软件问题的状态图设计。复印机的工作 流程大致如下:未接到复印命令时处于闲置状态,一旦接到复 印命令后则进入复印状态,完成一个复印命令规定的工作后又 回到闲置状态,等待下一个复印命令;如果执行复印命令时发 现没有纸张,则进入缺纸状态,发出警告,等待装纸,装满纸 后进入闲置状态,准备接受复印命令;如果复印时发生卡纸故 障,则进入卡纸状态,发出警告,等待维修人员来排除故障, 故障排除后回到闲置状态。 3、Powerdesigner完成如下所示的时序图设计 图

温馨提示

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

评论

0/150

提交评论