-
教育软件工程实验指导书
Education Software Engineering
Experiment Instruction Book
编
者:王艳芬
教
务
处
2015
年
11
月
目
录
目
录
...............
..................................................
...
1
实验一
数据流图实验
..........
.............................................
1
实验二
软件设计实验
..........
.............................................
7
实验三
软件测试实验
..........
............................................
10
实验四
软件动态模型建模实验
......
........................................
18
附录
1
:
JUnit4.11
在
eclips
e
中的配置方法
...................................
27
附录
2
:
JUnit4
概述
..............................................
.......... 33
实验一
数据流图实验
一、实验目的:
通过绘制系统流程图
和数据流图,熟练掌握系统流程图和数据流图的基本原理,并能
对简单问题进行系统流图
和数据流图的分析,独立地完成数据流图设计。此外,学会使用
Microsoft V
isio2003
工具完成数据流图和系统流程图的分析与实现。
二、实验学时:
4
学时
三、实验内容:
学会用
Microsoft
Visio2003
绘制系统流程图、数据流图。
1
、用
Microsoft Visi
o2003
绘制出如下定货系统的
SFD
(系统流程图)的模型。
事物
库存
清单
程序
库存清单
主文件
定货
系统
报告生成
程序
p>
定货报告
图
1
某定货系统
SFD
2
、用
Microsoft Visi
o2003
绘制如下定货系统的
DFD
(数据流图)的基本系统模型、
功能级数据流图和把“处理事务”的功能进一步分解后的
数据流图。
1
仓库管
理员
事务
订货系统
订货报表
采购员
图
2
仓库定货系统的
基本系统模型
D
1
库存清单
库存清单
1
仓库管<
/p>
理员
事务
处理
事
务
定货
信息
定货
信息
D
2
订货信息
产生
报表
2
定货报表
采购员
图
3
仓库定货系统的功能级数据流图
D
1
库存
清单
库存清单
仓库管
理员
事务
1.
1
接收
事务
事务
库存
更新库
p>
信息
存清单
1.
2
1.
3
处理
事
务
定货
信息
2
产生
报表
定货信息
D
< br>2
定货信息
定货
报表
采购
员
图
4
把“处理事务”的功能进一步分解后的数据流图
3
、绘制如图
5
所示的取款
手续的数据流图。
图
5
取款手续
2
4
、根据如下考务处理系统需求分析:
(
1
)对考生送来的报名单进行检查;
(
2
)对合
格的报名单编好准考证号后将准考证送给考生,并将汇总后的考生名单送
给阅卷站;
p>
(
3
)对阅卷站
送来的成绩单进行检查,并根据考试中心制定的合格标准审定合格者;
(
4
)制作考生通知单(含成绩合格
< br>/
不合格标志)送给考生;
(
5
)按地区进行成绩分类统计和试题难度分析,产生统计分析表
。
设计考务处理系统的基本系统模型、功能级数据流图以及各
功能进一步分解后的数据流
图。
四、实验步骤
指针工具
连接线工具
文本工具
图
6
Microsoft
Visio 2003
工具栏
如图<
/p>
6
所示为
Microsoft
Visio 2003
的工具栏,可利用“指针工具”选择并添加相应的
符号,利用“连接线工具”添加连接线,利用“文本工具”添加文本,利用“绘图工具”
绘制矩形、椭圆形、直线、曲线等图形。
1
、
用
Microsoft
Visio2003
绘制出如下定货系统的
SFD
(系统流程图)
的模型。
(
1
)打开
Microsoft
Visio 2003
,选择“流程图”下的“基本流程图”绘制系统的
系统流程图。
(
2
)利用指针工具选中需要添加的符号后将其拖拽到绘图区。
(
3
)将基本元素选择好后,利用文本工具为其添
加相应的文本,若需对文本进行旋
转,可利用文本工具下拉菜单中的文本块工具
示。
进行旋转。如图
7
所
3
图
7
系统流
程图基本物理元素
(
3
)利用连接线工具添加数据流连接线,绘制数据流之后得到完整的系统流程图,
如图
8
所示。
图
8
系统流程图
2
、
用
Microsoft
Visi
o2003
绘制如下定货系统的
DFD
(数据流图)的基本系统
4
p>
模型、功能级数据流图和把处理事务的功能进一步分解后的数据流图。
(
1
)
在
已打开的
Microsoft Visio2003
中,如果想
绘制新的模型,可通过单击“文件”
--->
“新建”
--->
“选择绘图类型”进入
Microso
ft
Visio2003
的起始界面,如图
< br>9
所示。
图
9 Microsoft
Visio2003
的起始界面
<
/p>
(
2
)选择“软件”中的“数据流模型图
”来进行
DFD
(数据流图)的绘制。
(
3
)利用指针工具选中需要添加的符
号后将其拖拽到绘图区,将基本元素选择好后,利
用文本工具为其添加相应的文本。如图
10
所示。
图
10
数据流图基本物理元素
(
4
)利用指针工具选中“数据流”符号并将其拖拽到绘图区中相应的位置,
或者利用连
接线工具添加数据流连接线。
(
5
)利用文本工具为数据流命名,完整的订货系统完整的
顶层数据流图如图
11
所示。
图
11
完整
的顶层模型
(
6
)利用相同的方法绘制功能级数据流图和把处理事务的功能进一步分解后的数据流图。
第
3
、
4
题请同学自主完成。
5
五、实验结果
一张系统流程图和七张数据流图。实验报告一份。
6
实验二
软件设计实验
一、实验目的:
学会使用
Microsoft Visio2003
工具完成描述软件结构的软件结构图和软件层次图的设
计,并熟练地掌握几
种常用的软件详细设计的工具,如程序流程图、盒图、
PAD
图
和判定
表,并能把给定的软件问题描述转化为过程设计结果,同时进行环路复杂度计算,
判断结
构化设计结果的复杂性。
二、实验内容:
1
、软件结构设计:
(1)
采用
Microsoft
Visio2003
绘制产生最佳解的软件结构图。
图
1
产生最佳解的软件结构图
(2)
采用
Microsoft
Visio2003
绘制家庭自动化系统的软件层次图。
家庭自动化系统
用户
登录
子系
统
灯光
控制
子系
统
家电
控制
子系
统
环境
控制
子系
统
保安
控制
子系
统
用户
p>
登录
用户
信息
用户
权限
室内
灯光
室外
灯光
空
调
花园
洒水
游泳
池
门窗
监控
摄像
监控
< br>
图
2
家庭自动化系统的软件层次图
(3)
分析如图
< br>3
所示的数据流图,
并把它转换成合理的软件结构图,<
/p>
然后用
Microsoft
Visio
2003
把结果画出来。
(注意,请用结构图,而非层次图)<
/p>
7
A
a
B
p>
b
C
c
P
r
w
R
W
p
D
d
E
< br>e
Q
u
U
v
V
图
3
某系统的数据流图
2
、将下面程序段分别用流程图、
N-S
图、
PAD
图表示,并把结果画出来。
start
while P
{
A;
do B while !Q;
}
End
3
、程序题:输入三个正整数
作为边长,判断该三条边构成的三角形是等边、等腰还
是一般三角形。
< br>
请用流程图
,PAD
图
,N-S
图描述上述程序的算法,并把结果画出来。
< br>
4
、软件的详细设计:假定某单位职工的的职称只分为
助工、工程师和高工三种,保
底津贴分别是
350
、
400
、
500
元,
并且单位根据职工的工作年限给予津贴适当的上浮奖励,
具体上浮情况如下:无论助工、工程师和高工工作年限在
10
年以下的无浮动;对于单位
工作超过
10
年但不到
20
年的职工,助工、工程师津贴上浮<
/p>
20%
,高工上浮
30%
;对于在
单位工作超过
20
年
的职工,助工津贴上浮
30%
,工程师津贴上浮
35%
,高工上浮
40%
。<
/p>
实验包含如下四个部分的内容:
a)
c)
用
word
设计描述其详细设计结果的判定表。
写出它的伪代码。
b)
用
visio
画出它的程序流程图。
d)
将程序流程图转换为流图,
然后计算它的
McCabe
程序复杂度。
(
要求把计算过程
8
写到实验报告中
)
(选做题)
5
、请对自己选定的课程设计题目进行详细
设计,画出其程序流程图,并
将程序流程图转换为流图,然后计算它的
< br>McCabe
程序复杂度。
三
、实验学时:
4
学时
四、实验步骤
1
、
绘制产生最佳解的软件结构图。
(
1
)
软
件结构图的绘制,
打开
Microsoft Visio 20
03
,
选择
“软件”
< br>中的
“程序结构图”
绘制系统的系统流程图。
(
2
)绘制过程同实验
一。
2
、绘制精化后的数字仪表板系
统的软件层次图。
(
1
)软件层次图的绘制,打开
Microsoft Visio 2003
p>
,选择“组织结构”中的“组织结
构图”绘制系统的系统流程图。<
/p>
(
2
)绘制过
程同实验一。
其他题目请同学自主完成。
五.
实验结果
文档:软件结构图、软件层
次图、流程图、
N-S
图、
PAD
p>
图、伪代码、判定表和程序
流程图以及环路复杂度的计算过程,打印
后粘贴在实验报告中;
实验报告一份。
9
实验三
软件测试实验
一、实验目的:
深刻理解软件测试的
目的,
熟知软件测试的基本方法和基本策略。
学会使用
JUnit4.11
工具完成软件测试用例的设计以及初步完成单元测试
,
在此基础上深刻理解单元测试的基
本原理及测试类
JUnit4.11
工具的基本使用。
二、实验内容:
< br>1
、
单元测试的逻辑覆盖测试验证实验:
运用
JNunit
工具完成对如下例子的单元测试,<
/p>
要求分别完成语句覆盖、判定覆盖、条件覆盖、判定条件覆盖、条件组合覆盖和路径覆盖<
/p>
测试的测试用例编写以及测试。要求首先按格式编写出该测试所需要的测试用例,然后编<
/p>
写测试程序,对其进行测试,最后把你写的测试用例按格式记录到实验报告中。
测
试用例的格式如下:
{[
期望结果
], [
输入
]}
,对于本例请遵循如下格式:
{ [X],[A,B,X] }
a
b
F
(A>1)
and
(B=0)
T
c
X = X/A
d
F
T
(A=2)
or
(X>1)
e
X =
X+1
图
1
单元测试逻辑覆盖的验证实验
10
此外,请测试如下情况:
(1).
如果将第
1
个判定中的“
AND
”错写成了“
OR
”
,用数据
{[2.5],[2,0,3]}
(首先,
该组数据满足何种逻辑覆盖)对程序进行测试,可否发现错误?为什么?请
先测试,然后
把结论记录到实验报告中。
(2).
如果将第
2
个判定中的“
x>1
”错写成了“
x<=1
”
,则用数据
{[2.5
],[2,0,3]}
对程序
进行测试,可否发现错误?为什么
?请先测试,然后把结论记录到实验报告中。
(3).
p>
如果将第
1
个判定中的“
< br>AND
”错写成了“
OR
”
p>
,则用数据
{[1/3],[3,0,1]}
和
{[3],[2,1,2]}
(首先,该组数据满足何种逻
辑覆盖)对程序进行测试,可否发现错误?为什
么?请先测试,然后把结论记录到实验报
告中。
(4).
如果将第
2
个判定中的“
x>1
”错写成了“
x<=1
”
,则用数据<
/p>
{[1/3],[3,0,1]}
和
{[
3],[2,1,2]}
)对程序进行测试,可否发现错误?为什么?请先测试,然后把
结论记录到实
验报告中。
(5).
如果将第
2
个判定中的“
x>1
”错写成了“
x<=1
”
,则用数据
{[2.5],[2,0,3]}
和
{[1],[1,1,1]}
(首先,该组数据满
足何种逻辑覆盖)对程序进行测试,可否发现错误?为什
么?请先测试,然后把结论记录
到实验报告中。
(6).
如果将第
1
个判定中的
“
a>1
”
错写成了
“
a<=1
”
,
且把
“
b==0
”
错写成了<
/p>
“
b!=0
”
,
则用数据
{[2],[2,1,1]}
和
{[3],[1,0,2] }
对程序进行测试,可否发现错
误?为什么?请先测试,
然后把结论记录到实验报告中。
(7).
如果将第
1
个判定中的
“
a>1
”
错写成了
“
a<=1
”
,
且把
“
b
==0
”
错写成了
“
< br>b!=0
”
,
则用数据
{[2],[2,1,1]}
、
{[2],[2
,0,2]}
、
{[1],[1,1,1]}
< br>和
{[3],[1,0,2]}
对程序进行测试,可否发
现
错误?为什么?请先测试,然后把结论记录到实验报告中。
经过上述的测试过程,你有什么体会,请写到实验报告中!
2
、循环结构测试
现有一个简单循环,需要对其进行测试,其程序代码如下:
public int test(int i, int a) {
while(i<=10)
{
a += 2;
if(a>4)
{
a *= 2;
a += 3;
}
else
11
{
if(a>1)
a -= 4;
else
a += 5;
}
i++;
}
a *=4;
return a;
要求为该程序设计满足简单循环的所有测
试用例,记录到实验报告中。
3
、等
价类划分及边界值测试的验证实验:有如下算法
A
和
B
均是非负整型变量
(
注
:
int
型
)
,如果
13
图
3
p>
找到要添加的
JARs
文件
并添加,如图
3
所示
JUnit4.11
软件包就被包含
进我们这个
项目了。单击
OK
返回。
(
4
)生成
JUnit<
/p>
测试框架:在
Eclipse
的
Package Explorer
中用右键点击
Calculator
类
弹出菜单,选择“
< br>New--> JUnit Test Case
”
。如
图
4
所示。
图
4
点击“下一步”后,系统会自动
列出你这个类中包含的方法,选择要进行测试的方法
test
。
14
如图
5
所示。
图
5
p>
之后系统会自动生成一个新类
CalculatorTest
,里面包含一些空的测试用例。你只需要将这
些测试用例稍作修改即可
使用。完整的
CalculatorTest
代码如下:
package app;
import
;
import se;
public class
CalculatorTest extends TestCase {
//
为测试
Calculator
类而创建的一个
calculator<
/p>
对象
private static
Calculator calculator = new Calculator();
@Test
//
表明这是一个测试方法
/*
* Test method
for '(double, double, double)'
*/
public void testTest() {
/*
判断期待结果和实际结果是否相
等。
assertEquals
的第一个参数为期待结果,
p>
*
第二个参数为实际结果。
*/
assertEquals(2.5,(2,0,3));
}
15
}
(5)
运行测试代码:在
CalculatorTest
类上点右键,选择“
Run As --->a JUnit Test
p>
”来运行
我们的测试,如图
6
所示。
图
6
运行结果如图
< br>7
所示:
成功
图
7
运行结果
16
-
-
-
-
-
-
-
-
-
上一篇:3DS MAX中英文对照表
下一篇:民航英语缩略词D