-
软件工程实验指导书
适
p>
用
专
业
:
计
算
机
科
学
与
< br>技
术
编
写
人
:
p>
闻
晓
、
杨
阳
、
范
成
瑜
修
改
人
:
黄
敏
修
改
时
p>
间
:
2013
年
9
月
1
日
计
算
p>
机
与
信
息
科
学
学
院
2010
年
9
月
前
言
软件工程实验是为计算机相关专业本科《软件工程》课程配
套设置的,
是《软件工程》课程讲授中一个重要的、不可或缺的实践环节。其目的是使<
/p>
学生能够针对具体软件工程项目,全面掌握软件工程管理、软件需求分析、
软件初步设计、软件详细设计、软件测试等阶段的方法和技术,通过该课程
设计
使学生进一步理解和掌握软件开发模型、软件生命周期、软件过程等理
论在软件项目开发
过程中的意义和作用,培养学生按照软件工程的原理、方
法、技术、标准和规范,进行软
件开发的能力,培养学生的合作意识和团队
精神,培养学生对技术文档的编写能力,从而
使学生提高软件工程的综合能
力,提高软件项目的管理能力。
CDIO
代表构思
(conceive
)
、设计
(design)
、实施
p>
(implement)
、运行
(oper
ate)
,是由美国麻省理工学院、瑞典皇家工
学院、瑞典查尔摩斯工业
大学和瑞典林雪平大学共同创立的工程教育改革模式
。
CDIO
改革的愿景是
为学生提供一
种在实际系统和产品的构思
-
设计
-<
/p>
实施
-
运行的背景环境下强
调工程基础的工程教育,使学生能够掌握深厚的技术基础知识;领导新产品
和
新系统的开发与运行;
理解工程技术的研究与发展对社会的重要性和战略
影响。
按该课程的特点,实验内容包括软件开发的两
大方法学的专题训练,即
结构化
(生命周期学)
的方法学和面向对象的方法学,
通过对一个简单项目,
要求学生利用结构化软件开发技术或面向对象的软件开发技术完成对该项
目的开发。因此
设置五个实验项目,从项目发的准备工作,系统分析过程,
系统设计过程,软件测试到系
统实施,覆盖软件开发的整个过程,此外又引
入
CDIO
,以规范技术文档的书写标准,提高实验教学质量。
通过实验训练,达到如下目的:
使学
生进一步了解和掌握软件工程原理,提高对实际项目的分析和设计
能力,通
过
实
验
课
< br>程
,熟
悉
和
基
本
掌
握
软
件
工
程
方<
/p>
法
学
、软
件
p>
开
发
的
过
程
,
文
档
资
料
的
编
< br>写
格
式
及
规
范
,
全
面
领
会
和
贯
p>
通
所
学
习
的
理
论
知
识
,
从
而
< br>培养学生综合运用所学课程知识,分析解决问题的能力,
培养学生理论联系实际作
风,实事求是,严肃认真的科学态度和良好的工作
作风,为今后从事科学研究工作打下基
础。
实验一
项目准备及问题定义
实验学时:
3
实验类型:
验证
+
综合
一
、
实
p>
验
目
的
1.
确定课题,组织组员,合理分工
,熟悉软件开发环境,培养团
队精神。
2.
通过绘制系统流程图和数据流图
,
熟练掌握系统流程图和数据
流图的基本原理,并能对简单问题
进行系统流图和数据流图的分析,
独立地完成数据流图设计。此外,学会使用
Case
工具完成数据流图
和系统流程图的分析与
实现。
二
、
实
验
内
容
p>
与
要
求
1.
根据各组选择的课题,实行项目
经理制,各组推荐一名组长,
统一管理整个项目的实施过程,
并
和理调整资源和负责项目全局;
根
据项目的难易合理分配组员的
任务,
对问题达成一直的看法;
针对项
目的实施,熟悉相应的软件开发工具的使用环境。
2.
准备参考资料和阅读相关的国家有关软件开发的标准文档。
3.
选择安装
Microsoft
Visio
或
Rational Rose
或其他
case
软件,
并
完成如下绘制实验:
a)
用
Microsoft Visio
绘
制出如下定货系统的
SFD
(系统流程
图)的模型。
图
1
某定货系统
SFD
b)
用
Microsoft vis
io
绘制教材中定货系统的
DFD
的顶
层模型、
第一层模型和第二层模型。
(参考课本上
P43~P44
的图
2.5
,
图
2.6
和图
2.7
)
教材图
2.5
仓库定货系统的顶层数据流图描述
教材图
2.6
仓库定货系统的第一层数据流图描述
教材图
2.7
“处理事务”的第
2
层数据流图描述
c)
用
Microsoft Visio
绘制如下图所示的取款手续的数据流
图。
图
2
取款手续
三
、
实
p>
验
结
果
:
1.
小组实验每组
5
-
6
人,共
同形成一份问题定义文档
2.
绘制系统流程图和数据流图每人绘制一份
四
、
成
p>
绩
评
定
该实验按
A
、
B
、
C
、<
/p>
D
、
E
给出成绩
,占实验总成绩的
20%
。
五
、
思
考
题
1.
项目开发首先要做的事是什么?
2.
你认为该软件应具备的最重要的特性是什么。
3.
你认为怎样分工是最合理的?
六
、
附
p>
录
:
Visio
中
SFD
和
DFD
绘
制
的
基
本
使
用
Ste
p1:
安装
Visio
,本说明书中使
用的是
Visio2003
,大家也可下载
Visio2007
等新版本,如下图:(注:下图表示计算机已经安装了
Visio
,大家只要根据安装向导
Stepb
yStep
的完成安装即可)
图
3
Visio
安装
Step2:
p>
打开
visio
,绘制系统的系统流程图,
选择“流程图”下的
“基本流程图”,先选择好图形的基本物理元素,如下图:
图
4
系统流程图基本物理元素
Step3
:
绘制数据流之后得到完整的系统流程图(
SFD
)
图
5
完整的系统流程图
?
绘制
DF
D
方法
1
:
Step1:
绘制
DFD
,选择“软件”中的“数据流模型图”来进行
DFD
的绘制,首先也是先将基本元素选择好,如下图:
图
6
顶层模型基本元素
Step2: <
/p>
绘制数据流,并为数据流命名,得到课本图
2.5
“定货系统”
完整的顶层数据流图,如下图:
图
7
完整的顶层模型
Step3:
p>
绘制该顶层流图的细化
L1
层流图,如下图
:
图
8
完整的
L1
层模型
?
绘制
DFD
方法
2
:
Step1
:选择“新建”菜单中“流程图”中的“数据
流图表”,进行
基本模型的绘制,首先也是先将基本元素选择好,如下图:
图
9
< br>顶层模型基本元素
Step2
:绘制数据流,形成完整的顶层数据流图,如下图:
图
10
完整的顶层数据流图
Step3
p>
:绘制第
1
层数据流图,如下图所示:
p>
图
11
p>
完整的第
1
层数据流图
实验二
需求分析
实验学时:
3
实验类型:设计性
一
、
实
p>
验
目
的
确定项目的可实施性,
在此基础上完成系统的逻辑功能模型的建
立。
二
、
实
p>
验
内
容
与
要
求
采用结构化的软
件开发技术,
完成对项目的分析过程,
给出系统
的逻辑功能模型,数据字典以及规格说明书。包括:绘制项目的业务
流程图、逐
渐细化的数据流程图,编写数据字典,数据加工处理的描
述,软件系统流程设想图(新系
统模型)
。
三
、
实
p>
验
结
果
以项目小组为单位,形成一份规范的需求规格说明书。
四
、
成
p>
绩
评
定
该实验按
A
、
B
、
C
、
D
、
E
给出成绩,占实验总成绩的
< br>20%
。
五
、
思
考
题
1.
需求分析在软件开发中真的有那么重要吗?
2.
分析系统流程图,流程图和数据流图的区别和各自的特点。
3.
怎样写合乎规范的数据流图和数据词典?
4.
怎样组织对该工作的评审?
实验三
系统设计
实验学时:
9
实验类型:技能性
一
、
实
p>
验
目
的
学会使用
Case
工具完成描述软件结构的软件
结构图和软件层次
图的设计,
并熟练地掌握几种常用的软件详细
设计的具,
如程序流程
图、
盒图、
p>
PAD
图和判定表,
并能把给定的软件问题
描述转化为过程
设计结果,
同时进行环路复杂度计算,
判断结构化设计结果的复杂性。
在实验二基础
上完成系统的体系结构的建立和系统详细设计。
包
括:认真分析
实验二的结果,给出系统合理的体系结构,描绘系统结
构图,
并
合理划分系统的各组成模块,
最后给出系统的各部分设计规
格说
明书。
二
、
实
验
内
容
p>
与
要
求
1.
软
件<
/p>
结
构
设
计
:
(1)
采
p>
用
visio
绘
制
教
材
的
图
p>
4.26
中
的
软<
/p>
件
结
构
图
,
如
下
图
:
教
材
图
5.5
(2)
采
用
visio
或
其
他
工
具
绘
制
教
材
的
图<
/p>
4.41
的
软
件
层
次
图
,
p>
如
下
图
。
教
材
图
5.19
(3)
分<
/p>
析
如
下
所
示
的
数
据
流
图
,
并
把
它
转
换
成
合
理
的
软
件
结
构
图<
/p>
,然
后
用
vis
io
把
结
果
画
出
来
。
(
p>
注
意
,请
用
结
构
图
,而
非
层
次
图
)
图
1
某
系<
/p>
统
的
数
据
流
图
2.
软
件<
/p>
的
详
细
设
计
:
某
航
空
公
司
规
定
,
乘
客
可
以
免
费
托
运
重
量<
/p>
不
超
过
20
p>
公
斤
的
行
李
,
当
行
李
重
量
超
< br>过
20
公
斤
,
对
头
等
舱
的
国
内
乘<
/p>
客
超
重
部
分
每
公
斤
收
费
6
元
,对
公
务
舱
< br>的
国
内
乘
客
超
重
部
分
每
公
斤
收
p>
费
8
元
,
对
经
济
舱
的
国
内
乘
< br>客
超
重
部
分
每
公
斤
收
费
10
元
。<
/p>
对
外
国
顾
客
超
重
部
分
每
公
斤
收
费
比
国
内
乘
客
多
1.5
倍
,
对
残
疾
乘
客
超<
/p>
重
部
分
每
公
斤
收
费
比
正
常
乘
客
少
一
半
。
实
验
包
含
如
下
四<
/p>
个
部
分
的
内
容
:
a)
用
word
设
计
描
述
其
详
细
设
计<
/p>
结
果
的
判
定
表
。
b)
用
visio
< br>画
出
它
的
程
序
流
程
图
。
c)
用
类
C
代
码
p>
写
出
它
的
伪
代
码
。
d)
将
程
序
流
程
图
< br>转
换
为
流
图
,
然
后
计
算
它
的
Mcc
abe
程
序
复
杂
度
。
(
要<
/p>
求
给
出
计
算
过
程
)
3.
在<
/p>
实
验
二
的
基
础
上
,
以
项
目
小
组
为
单
位
,
完
成
小
组
项
目
的
功<
/p>
能
结
构
图
设
计
,软
件
处
理
流
程
设
计
,输
出
设
计(
主
要
< br>指
打
印
输
出
设
计
)
,
存
储
文
件
p>
格
式
设
计
(
数
据
库
结
构
设
计
< br>)
,
输
入
设
计
(
主
要
指
数
据
录
p>
入
卡
设
计
)
,
代
码
设
计
,
程
< br>序
设
计
说
明
书
三
、
p>
实
验
结
果
:
1.
实
验
内
容
3
,
每
小
组
实
验
每
组
5
-
6
人<
/p>
,
共
同
形
成
一
份
项
目
设
计
说
明
文
档
2.
实
验<
/p>
内
容
1
、
2
,
每
人
一
份
实
验
结
果
四
、
成
p>
绩
评
定
该实验按
A
、
B
、
C
、
D
、
E
给出成绩,占实验总成绩的
< br>40%
。
五
、
思
考
题
1.
系
统<
/p>
设
计
和
需
求
分
析
的
关
系
是
什
么
?
两
者
必
须
先
后
关
联
吗
?
2.
怎
样<
/p>
描
绘
系
统
的
体
系
结
构
?
3.
怎
样<
/p>
绘
制
复
合
规
范
的
流
程
图
。
4.
怎
样<
/p>
组
织
对
设
计
阶
段
工
作
的
评
审
?
六
、
附
p>
录
:
Visio
中
软
件
结
构
p>
和
流
程
图
的
绘
制
Step1:
软件结构图的绘制,选择“软件”中的“程序结
构图”
,例
如绘制出如下图所示的软件结构:
< br>
图
2
软件结构图
Step2:
软件层次图的绘制,选择“组织结构图”绘制,如下图:
图
3
软件层次图
Step3:
程序流程图的绘制,
visio
中选择“流程图
”中的“基本流
程图”
,得到如下图形:
(下图仅是一个例子)
图
4
程序流程图
实验四
软件测试实验
实验学时:
3
实验类型:验证性
一
、
目
p>
的
与
任
务
深刻理解软件测试的目的,熟知软件测试的基本方法和基本策
略。
学会使用
CASE
工具完成软件测试用例的设计以及初步完成单元
测试,
在此基础
上深刻理解单元测试的基本原理及测试类
CASE
工具
的基本使用。
二
、
实
p>
验
内
容
由于小组项目尚未编码实现,无法针对每个小组的项目进行测
试,所以本
实验安排统一的测试题目。
1.
单元测试的逻辑覆盖测试验证实验:
运用
Nunit
工具完成对如下例子的单元测试,要求分别完成
语句
覆盖、判定覆盖、条件覆盖、判定条件覆盖、条件组合覆盖和路径覆
盖测试的测试用例编写以及测试。
要求首先按格式编写出该测试所需
要的测试用例,然后编写测试程序,对其进行测试,最后把你写的测
试用例
按格式记录到实验报告中。
测试用例的格式如下:
{[
输入
], [
期望结果
]}
,对于本例请遵循如下格式:
{[A,B,X],[X]}
a
F
b
F
(A>1)
and
(B=0)
a
T
c
T
X
= X/A
c
F
d
d
(A=2)
or
(X>1)
T
e
e
X =
X+1
图
1
单元测试逻辑覆盖的验证实验
a)
此外,请测试如下情况:
如果将第<
/p>
1
个判定中的“
AND
< br>”错写成了“
OR
”
,用数据<
/p>
{[2,0,3],[2.5]}
(首先,该组数据满足何种逻辑
覆盖)对程序进
行测试,
可否发现错误?为什么?请先测试,<
/p>
然后把结论记录
到实验报告中。
如果将第
2
个判定中的“
x>1
”错写成了“
x<=1
”<
/p>
,则用数据
{[2,0,3],[2.5]}
对程序进行测试,
可否发现错误?为什么?请先
测试,然后
把结论记录到实验报告中。
如果将第
1
个判定中的“
AND
”错写成了“<
/p>
OR
”
,则用数据
{[3,0,1],[1/3]}
和
{[2,1,2],[3
]}
(首先,该组数据满足何种逻辑覆
盖)对程序进行测试,可
否发现错误?为什么?请先测试,然
后把结论记录到实验报告中。
如果将第
2
个判定中的“
x>1
”错写成了“
x<=1
< br>”
,则用数据
{[3,0,1],[1/3]}
和
{[2,1,2],[3]}
)对程序进行测
试,可否发现错
误?为什么?请先测试,然后把结论记录到实验报告中。
如果将第
2
个判定中的“<
/p>
x>1
”错写成了“
x<=1
”
,则用数据
{[2,0,3],[2.5]}<
/p>
和
{[1,1,1],[1]}
(首先,
该组数据满足何种逻辑覆
盖)对程序进行测试,可否发现错误?为什么?请先测试,然<
/p>
后把结论记录到实验报告中。
如果将第
1
个判定中的“
a>1
”错写成了“
a<=1
”
,且
把“
b=0
”
b)
c)
d)
e)
f)
错写成了“
b<>0
”
,则用数据
{[2,1
,1],[2]}
和
{[1,0,2],[3]}
对程序
进行测试,
可否发现错误?为什么?请先测试
,
然后把结论记
录到实验报告中。
g)
如果将第
1
个判定中的“
a>1
”错写成了“
a<=1
”
,且把“
< br>b=0
”
错
写
< br>成
了
“
b<>0
”
,
则
用
数
据
{[2,1,1],[2]}
、
{[2,0,2],[2]}
、
{[
1,1,1],[1]}
和
{[1,0,2],[3]}
对程序进行测试,
可否发现错误?为
什么?请
先测试,然后把结论记录到实验报告中。
经过上述的测试过程,你有什么体会,请写到实验报告中!
2.
循环结构测试
现有一个简单循环,<
/p>
需要对其进行测试,
其程序伪代码如下:
Int i,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<
/p>
型
)
,如果
-
-
-
-
-
-
-
-
-
上一篇:CATIA全部命令的中英文对照表
下一篇:小学美术测评标准