软件工程实验指导书1.docx

上传人:b****7 文档编号:8806775 上传时间:2023-02-01 格式:DOCX 页数:23 大小:693.83KB
下载 相关 举报
软件工程实验指导书1.docx_第1页
第1页 / 共23页
软件工程实验指导书1.docx_第2页
第2页 / 共23页
软件工程实验指导书1.docx_第3页
第3页 / 共23页
软件工程实验指导书1.docx_第4页
第4页 / 共23页
软件工程实验指导书1.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

软件工程实验指导书1.docx

《软件工程实验指导书1.docx》由会员分享,可在线阅读,更多相关《软件工程实验指导书1.docx(23页珍藏版)》请在冰豆网上搜索。

软件工程实验指导书1.docx

软件工程实验指导书1

 

软件工程实验指导书

张红斌编

 

华东交通大学软件学院

2010-41.0版本

2014-41.1版本

2015-101.2版本

2016-51.3版本

前言

《软件工程》是软件工程、软件+应用背景专业教学计划中一门综合性和实践性很强的核心课程,主要内容包括软件工程概述、可行性分析、需求分析、概要设计、详细设计、面向对象分析与设计、编码、软件质量与质量保证、项目计划与管理。

根据培养基层应用型人才的需要,本实验指导书从需求分析、软件设计、软件测试以及OOA等软件工程导论中的关键知识点出发设计了4个相关实验。

每个实验均给出了详细的实验过程、考核方式、操作流程等,非常适合《软件工程》的初学者对软件工程基本理论和知识的掌握。

目录

实验一数据流图实验4

实验二软件设计实验9

实验三软件测试实验12

实验四软件动态模型建模实验22

实验一数据流图实验

一、实验目的

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

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

二、实验内容

实验内容如下:

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

图1某定货系统SFD

b)用Microsoftvisio绘制教材中定货系统的DFD的顶层模型、第一层模型和第二层模型。

(参考课本上P69~P70的图3.4,图3.5和图3.6)

教材图3.4仓库定货系统的顶层数据流图描述

教材图3.5仓库定货系统的第一层数据流图描述

教材图3.6“处理事务”的第2层数据流图描述

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

图2取款手续

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

(要求合理地进行需求分析、并完成DFD的分层设计)

三、实验结果

一张系统流程图和六张数据流图,要求把画出的系统流程图和数据流图打印后粘贴在实验报告中。

实验报告一份。

四、成绩评定

该实验成绩满分5分,即占总成绩的5%。

五、附录:

Visio中SFD和DFD绘制的基本使用

Step1:

安装Visio,本说明书中使用的是Visio2003,大家也可下载Visio2007等新版本,如下图:

(注:

下图表示计算机已经安装了Visio,大家只要根据安装向导StepbyStep的完成安装即可)

图3Visio安装

Step2:

打开visio,绘制系统的系统流程图,选择“流程图”下的“基本流程图”,先选择好图形的基本物理元素,如下图:

图4系统流程图基本物理元素

Step3:

绘制数据流之后得到完整的系统流程图(SFD)

图5完整的系统流程图

◆绘制DFD方法1:

Step1:

绘制DFD,选择“软件”中的“数据流模型图”来进行DFD的绘制,首先也是先将基本元素选择好,如下图:

图6顶层模型基本元素

Step2:

绘制数据流,并为数据流命名,得到课本图2.5“定货系统”完整的顶层数据流图,如下图:

图7完整的顶层模型

Step3:

绘制该顶层流图的细化L1层流图,如下图:

图8完整的L1层模型

◆绘制DFD方法2:

Step1:

选择“新建”菜单中“流程图”中的“数据流图表”,进行基本模型的绘制,首先也是先将基本元素选择好,如下图:

图9顶层模型基本元素

Step2:

绘制数据流,形成完整的顶层数据流图,如下图:

图10完整的顶层数据流图

Step3:

绘制第1层数据流图,如下图所示:

图11完整的第1层数据流图

实验二软件设计实验

一、实验目的

学会使用Case工具完成描述软件结构的软件结构图和软件层次图的设计,并熟练地掌握几种常用的软件详细设计的具,如程序流程图、盒图、PAD图和判定表,并能把给定的软件问题描述转化为过程设计结果,同时进行环路复杂度计算,判断结构化设计结果的复杂性。

二、实验内容

1、软件结构设计:

(1)采用visio绘制教材的图4.26中的软件结构图,如下图:

教材图4.26

(2)采用visio或word绘制教材的图4.41的软件层次图,如下图。

教材图4.41

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

(注意,请用结构图,而非层次图)

图1某系统的数据流图

2、软件的详细设计:

某航空公司规定,乘客可以免费托运重量不超过20公斤的行李,当行李重量超过20公斤,对头等舱的国内乘客超重部分每公斤收费6元,对公务舱的国内乘客超重部分每公斤收费8元,对经济舱的国内乘客超重部分每公斤收费10元。

对外国顾客超重部分每公斤收费比国内乘客多1.5倍,对残疾乘客超重部分每公斤收费比正常乘客少一半。

实验包含如下四个部分的内容:

a)用word设计描述其详细设计结果的判定表。

b)用viso画出它的程序流程图。

c)用类C代码写出它的伪代码。

d)将程序流程图转换为流图,然后计算它的Mccabe程序复杂度。

(要求把计算过程写到实验报告中)

三、实验结果

文档:

软件结构图、软件层次图、伪代码、判定表和程序流程图以及环路复杂度的计算过程,打印后粘贴在实验报告中;

实验报告一份。

四、成绩评定

该实验成绩满分5分,即占总成绩的5%。

五、附录:

Visio中软件结构和流程图的绘制

Step1:

软件结构图的绘制,选择“软件”中的“程序结构图”,例如绘制出如下图所示的软件结构(教材图5.5):

图2软件结构图

Step2:

软件层次图的绘制,选择“组织结构图”绘制,如下图:

图3软件层次图

Step3:

程序流程图的绘制,visio中选择“流程图”中的“基本流程图”,得到如下图形:

(下图仅是一个例子)

图4程序流程图

实验三软件测试实验

一、实验目的

深刻理解软件测试的目的,熟知软件测试的基本方法和基本策略。

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

二、实验内容

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

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

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

测试用例的格式如下:

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

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

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

此外,请测试如下情况:

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

为什么?

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

(2).如果将第2个判定中的“x>1”错写成了“x<=1”,则用数据{[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型),如果10=100,则B=A*100-200,请分别用等价类划分方法和边界值分析方法设计测试用例,然后编写测试程序完成测试。

并把测试结论写入到实验报告中。

4、基本路径测试

对下面的程序进行基本路径测试。

三、实验结果

包含测试用例、测试程序以及测试结论的实验报告一份。

四、成绩评定

该实验成绩满分5分,即占总成绩的5%。

五、附录:

Nunit的基本配置

Step1:

安装Nunit,本实验使用的是其2.4.7版本,大家可去其网站下载最新版本(http:

//www.nunit.org/download.html)

图2Nunit安装向导

Step2:

如何在.NET环境中使用Nunit。

Step2.1:

首先在.NET环境中创建一个新的工程,并选择其工程类型是ClassLibrary模板(当然也可以是其它类型的模板,只是后面的配置会不一样),将工程命名为ZhbTest1,如下图:

图3C#创建程序向导

Step2.2:

然后为测试程序增加一个Nunit.Framework.dll的引用(目的是让你的程序可以支持Nunit测试,一般只要Nunit程序成功安装,都会在“添加引用”中找到该库),如下图在解决方案的项目中右击鼠标,然后选择“添加引用”,找到Nunit.Framework(当前版本是2.4.7),确定。

图4在应用程序中引入Nunit

Step2.3:

添加头部引用以及待测试代码如下图所示:

图5编写测试程序

Step2.4:

使得当前的应用程序可以自动运行Nunit程序,如下设置,右键选择项目的属性,然后在Debug中选择启动操作,启动外部程序,然后确定:

图6设置C#应用程序可以启动Nunit

图7同上

Step3:

在.NET环境下运行程序,在弹出Nunit界面之后,运用File菜单下的OpenProject菜单打开需要进行测试的当前.NET程序的表现(注意:

当前是ZhbdogTest1.dll),确定后即可开始测试,如下图:

图8在Nunit中引入需要测试的对象(可以是程序或类库)

点击Run,即可完成测试工作,如下图是一个正常测试的结果:

图9成功测试的界面

如果,修改程序,将”3”修改为”2”,会得到如下界面,表示该函数未通过测试,程序存在错误:

图10失败测试的界面

实验四软件动态模型建模实验

一、实验目的

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

二、实验内容

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

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

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

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

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

图1某系统时序图

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

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

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

5、综合题。

综合运用所学OOA和OOD方法和技术完成教材P263习题8的第10题。

三、实验结果

两张状态转换图,一张活动图、一张时序图以及综合题得到的三大模型。

四、成绩评定

该实验成绩满分5分,即占总成绩的5%。

五、附录:

Powerdesigner及Visio的使用

Step1:

选择“面向对象模型”中的“状态图”,绘制如下图所示的状态转换图:

(仅是一个例子)

图2状态图示例

Step2:

选择“面向对象模型”中的“时序图”,绘制如下图所示的时序图:

(仅是一个例子)

图3时序图示例

Step3:

选择“面向对象模型”中的“活动图”,绘制如下图所示的时序图:

(仅是一个例子)

图4活动图示例

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

当前位置:首页 > 职业教育 > 中职中专

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1