资源描述
软件工程实践
报
告
姓 名:吕伟 学 号: 08113441
专 业: 计算机科学与技术
班 级: 计算机科学与技术11-4班
设计题目: 软件工程实践
成 员: 皇甫飞波(08113438) 刘什(08113440)
指引教师: 赵莹
12月31日 徐州
课程设计指引教师评阅书
指引教师评语:
成 绩: 指引教师签字:
年 月 日
目 录
第一章 图书管理系统总体规划-----------------------------------------------------------------------1
第二章 实验一:运用Visio绘制DFD图-----------------------------------------------------------1
1、顶层及零层数据流图(DFD)----------------------------------------------------------------1
2、分层数据流图(DFD)-------------------------------------------------------------------------2
第三章 实验二:UML工具使用 -----------------------------------------------------------------4
1、用例图----------------------------------------------------------------------------------------------4
2、类图 -----------------------------------------------------------------------------------------------7
3、序列图----------------------------------------------------------------------------------------------7
4、状态图----------------------------------------------------------------------------------------------8
5、协作图----------------------------------------------------------------------------------------------9
6、活动图----------------------------------------------------------------------------------------------9
第四章 实验三:软件源代码管理---------------------------------------------------------------------10
1、SVN简介 -----------------------------------------------------------------------------------------10
2、SVN软件使用阐明 -----------------------------------------------------------------------------11
第五章 实验四:使用软件测试工具-----------------------------------------------------------------18
1、Nunit软件测试工具-----------------------------------------------------------------------------18
1.1 TDD简介----------------------------------------------------------------------------------19
1.2.NUnit简介---------------------------------------------------------------------------------19
1.2.1Nunit简介----------------------------------------------------------------------------19
1.2.2 某些惯用属性-------------------------------------------------------------------------22
1.3如何在.NET中应用NUnit-----------------------------------------------------------------24
1.4其她某些核心概念-----------------------------------------------------------------------28
Test Suite -----------------------------------------------------------------------------------32
Explicit属性----------------------------------------------------------------------------------35
Expected Exception属性-------------------------------------------------------------------35
1.5 测试生命周期合约 -----------------------------------------------------------------------36
2、Test Manager软件测试工具-------------------------------------------------------------------38
2.1 Test Manager简介---------------------------------------------------------------------------38
2.2 Test Manager详细使用---------------------------------------------------------------------38
第一章 图书管理系统总体规划
对于数据库系统,规划工作是十分必要。规划好坏将直接影响到整个图书管理系统成功与否,数据库设计中规划阶段重要任务是建立数据库必要性及可行性分析,拟定数据库系统在整个图书管理系统地位。
依照图书管理数据库对技术人员和管理人员水平、数据采集和管理活动以及借阅者计算机素质规定;数据库技术对计算机系统软硬件规定。决定把数据库管理系统设计成为一种综合数据库。此数据库涉及所有操作人员所有活动功能。由于,此图书管理系统应用界面较简朴、功能单一。因此,用一种综合数据库就能满足图书管理规定,并且实现容易。
因而,图书管理系统可以按照顾客权限和实现功能不同分为两某些:外部学生对数据库查阅访问和内部管理人员对图书记录管理维护。但是,这两某些都调用是同一数据库,只但是内部管理人员能实现所有管理功能,而外部学生访问数据库时,某些功能被屏蔽,只能进行查阅。书管理系统整个应用状况作全面、详细调查,拟定图书管理目的,收集支持系统总设计目的基本数据和对这些数据规定,拟定顾客需求,并把这些写成顾客和数据库设计者都可以接受文档。
第二章 实验一 运用Visio绘制DFD图
实验规定:
1.可以采用构造化办法对所选系统进行需求分析;
2.采用Visio绘制系老式DFD图;
3.提交绘制图形和实验报告。
1、 图书管理系统顶层和第零层DFD图
图书管理系统顶层DFD图
图书管理系统第零层DFD图
2、 图书管理系统分层DFD图
图书管理系统第1层DFD图
图书管理系统第2层DFD图
注:皇甫飞波负责实验一报告整顿和图书管理系统顶层和零层DFD图绘制;
吕伟负责图书管理系统第1层DFD图绘制;
刘什负责图书管理系统第2层DFD图绘制。
第三章 实验二 UML工具使用
实验规定:
1.下载、安装Rational Rose、StarUML等工具软件,学习软件使用;
2.绘制用例图、类图、序列图、状态图、活动图等图形针对所选系统进行模型分析和设计。
1、 用例图
在绘制图书管理系统用例图之前咱们要对其中角色进行辨认,对一种图书管理系统来说,重要有两种角色:读者和图书管理员。另一方面,在重要角色基本上,可以辨认出与角色相应用例,从而画出用例图。与读者有关过程涉及:借书、还书、图书信息检索、借阅信息查询、个人有关信息查询及修改(如:姓名、性别、年级、专业、家庭住址、联系电话、民族、身份证号、出生日期等),与图书管理员有关过程涉及:办理借书、办理还书、图书订购、读者信息管理、图书信息管理以及系统管理。以上分析中,与读者、图书管理员有关过程构成了本系统基本用例。
图书管理系统基本用例图
图书管理模块用例图
图书管理模块涉及与图书有关某些过程,重要有图书借出、图书归还、图书信息检索、图书订购、图书有关信息管理。
读者管理模块用例图
读者管理模块重要涉及与读者有联系有关过程。重要有读者增长/删除、修改读者权限及密码、借阅信息查询、个人信息查询及修改、借阅超期/丢失罚款
系统管理模块用例图
系统管理模块重要有系统登录、退出,系统更新、系统维护
2、 类图
3、 序列图
借书普通过程序列图
4、 状态图
图书管理员使用系统状态图
图书管理员重要时间流可以有图书管理系统状态图分析而来,与图书管理员有关过程涉及:办理借书、办理还书、解除预定,图书预定、图书信息管理(增长/删除书目、图书类别管理、流通状况)、读者信息管理(增长/删除读者、读者权限修改等)
5、 协作图
借书普通过程协作图
读者刷卡进入图书馆,先查询图书及个人借阅信息,然后去挑选书,挑好书后进入借车程序,图书管理员先检查读者证件与否合理,如合理则进行借车,读者借完书后,图书管理员要修改读者借阅信息和库存图书信息。
6、 活动图
借书普通过程活动图
注:皇甫飞波负责基本用例图以及各模块用例图绘制;
吕伟负责类图和图书管理员使用系统状态图绘制;
刘什负责借书普通过程协作图、时序图以及活动图绘制。
第四章 实验三 软件源代码管理
实验规定:
1.下载、安装SVN、Trac等工具软件,学习软件使用;
2.对所选系统源代码进行版本管理。
1、SVN简介
subversion(简称svn)是近年来崛起版本管理软件,是cvs接班人。当前,绝大多数开源软件都使用svn作为代码版本管理软件。
使用状况
虽然在 时 Subversion 使用族群依然远少于老式 CVS,但已有许多开放原码团队决定将 CVS 转换为 Subversion。已经转换使用 Subversion 涉及了 FreeBSD、Apache Software Foundation、KDE、GNOME、GCC、Python、Samba、Mono 以及许多团队。
许多开发团队换用 Subversion 是由于 Trac、SourceForge、CollabNet、CodeBeamer等专案协同作业软件以及Eclipse、NetBeans等IDE提供 Subversion增援整合。 除此之外,某些自由软件开发协作网如SourceF除了提供 CVS 外,当前也提供专案开发者使用 Subversion 作为原码管理系统, JavaForge、Google Code以及 BountySource 则以 Subversion 作为官方原码管理系统。
,绝大多数CVS服务已经改用SVN。CVS已经停止维护。
2、SVN软件使用阐明
注:皇甫飞波负责SVN下载和安装;
吕伟负责图书管理系统源代码整顿和分析;
刘什负责运用软件对系统源代码进行软件版本管理。
第五章 实验四 使用软件测试工具
实验规定:
1.下载、安装Webstress、NUnit和Test Manager等工具软件,学习软件使用;
2.运用NUnit工具软件进行白盒测试用例设计及自动测试;
3.运用Webstress工具软件进行性能自动测试;
4.理解Test Manager测试管理工具用法。
1、Nunit软件测试工具
前一段时间,有人问我在.NET里如何进行TDD开发.这个问题促使我想对NUnit做一种详细简介.由于咱们人们都懂得NUnit是在.NET进行TDD利器.
如果你已经懂得诸多关于NUnit应用,请指出我不对之处和提出某些建议,使本文更加完善.如果你对NUnit还不是很理解话,我建议你还是阅读一下.
本文分为如下某些:
1.1 TDD简介
一方面什么是TDD呢?Kent Beck在她<<测试驱动开发 >>(Addison-Wesley Professional,)一书中,使用下面2个原则来定义TDD:
·除非你有一种失败自动测试,永远不要写一单行代码.
我想第一种原则是显而易见.在没有失败自动测试下就不要写代码.由于测试是嵌入在代码必要满足需求中.如果没有需求,就没有必要实现任何东西.因此这个原则制止咱们去实现那些没有测试和在解决方案中不需要功能.
第二个原则阐明了在一种程序中,不应当包括重复代码.如果代码重复,我想这就是不好软件设计象征.随着时间流逝,它会对程序导致不一致问题,并且使代码变非常混乱 ,由于咱们时常不会记得重复代码位置.如果发当代码重复,我想咱们应当及时删除代码重复.其实这就涉及到重构了.在这里我就不多讲了.
普通来说,测试分为2种类型,一是程序员自己测试,此外一种是客户测试.关于客户测试,我推荐一种FIT框架,非常不错。在这里,咱们讲TDD就是程序员测试.那么什么是程序员测试呢?我以为就是咱们常说单元测试.既然是单元测试,在.NET里势必会用到某些工具,当前最知名恐怕就是我即将简介NUnit了,
1.2.NUnit简介
NUnit是一种单元测试框架,专门针对于.NET来写.其实在前面有JUnit(Java),CPPUnit(C++),她们都是xUnit一员.最初,它是从JUnit而来.当前版本是2.2.接下来我所用都是基于这个版本.
NUnit最初是由James W. Newkirk,Alexei A. Vorontsov 和Philip A. Craig,日后开发团队逐渐庞大起来.在开发过程中,Kent Beck 和Erich Gamma2位牛人也提供了许多协助.看来对于NUnit还真是下了一番力气了.J
NUnit是xUnit家族种第4个主打产品,完全由C#语言来编写,并且编写时充分运用了许多.NET特性,例如反射,客户属性等等.
最重要一点是它适合于所有.NET语言.
1.2.1 NUnit简介
Ok,下面正式解说NUnit.在解说之前,看看几张图片:
图1 NUnit运营效果
图2 NUnit运营此外一种效果
从中咱们可以非常容易发现,右边是个状态条,图1是红色,图2是绿色.为什么会这样呢?由于如果所有测试案例运营成功,就为绿色,反之如果有一种不成功,则为红色,但也有黄色.左面工作域内则是咱们写每一种单元测试.
通过上面图片,我想你对NUnit有个总理解了.
接下来还是分为2个某些,一是NUnit布局,此外一某些就是它核心概念.
一方面熟悉一下NUnit GUI布局.
让咱们更进一步看一下测试运营器窗口布局。在右边面板中间,可以看到测试进度条。进度条颜色反映了测试执行状态:
· 绿色 描述当前所执行测试都通过
· 黄色 意味某些测试忽视,但是这里没有失败
· 红色 表达有失败
底部状态条表达下面状态:
· 状态.阐明了当前运营测试状态。当所有测试完毕时,状态变为Completed.运营测试中,状态是Running:<test-name> (<test-name>是正在运营测试名称)。
· Test Cases阐明加载程序集中测试案例总个数。这也是测试树里叶子节点个数。
· Tests Run 已经完毕测试个数。
· Failures 到当前为止,所有测试中失败个数.
· Time 显示运营测试时间(以秒计)
File主菜单有如下内容:
· New Project容许你创立一种新工程。工程是一种测试程序集集合。这种机制让你组织各种测试程序集,并把她们作为一种组对待。
· Open 加载一种新测试程序集,或一种此前保存NUnit工程文献。
· Close关闭当前加载测试程序集或当前加载NUnit工程。
· Save 保存当前Nunit工程到一种文献。如果正工作单个程序集,本菜单项容许你创立一种新NUnit工程,并把它保存在文献里。
· Save As容许你将既有NUnit工程作为一种文献保存。
· Reload 强制重载既有测试程序集或NUnit工程。NUnit-Gui自动监测现加载测试程序集变化。
当程序集变化时,测试运营器重新加载测试程序集。(当测试正运营时,当前加载测试程序集不会重新加载。在测试运营之间测试程序集仅可以重新加载。一种忠告:如果测试程序集依赖此外一种程序集,测试运营器不会观测任何依赖程序集。对测试运营器来说,强制一种重载使所有依赖程序集变化可见。
· Recent Files 阐明5个近来在NUnit中加载测试程序集或NUnit工程(这个列表在Windows注册表,由每个顾客维护,因而如果你共享你PC,你仅看到你测试)。近来程序集数量可以使用Options菜单项修改,可以访问Tool主菜单。
· Exit退出。
· View菜单有如下内容:
· Expand一层层扩呈当前树中所选节点
· Collapse 折叠当前树中选取节点
· Expand All递归扩展树中所选节点后所有节点
· Collapse All递归折叠树中所选节点后所有节点
· Expand Fixtures扩展树中所有代表测试fixture节点。
· Collapse Fixtures 折叠树中所有代表测试fixture节点。
· Properties 显示树中现所选节点属性。
· Tools 菜单由这些项:
· Save Results as XML作为一XML文献保存运营测试成果。
· Options让你定制NUnit行为。
当前看看右边,你已经熟悉Run按钮和进度条。这里尚有一种紧跟Run按钮Stop按钮:点击这个按钮会终结执行正运营测试。进度条下面是一种文本窗口,在它上方,由如下4个标签:
· Errors and Failures 窗口显示失败测试。在咱们例子里,这个窗口是空。
· Tests Not Run 窗口显示没有得到执行测试。
· Console.Error 窗口显示运营测试产生错误消息。这些此消息是应用程序代码使用Console.Error输出流可以输出。
· Console.Out窗口显示运营测试打印到Console.Error输出流文本消息。
1.2.2 某些惯用属性
接下来,我将讲述这个框架如何使用.同步也涉及到某些非常重要概念,我想其客户属性是非常重要.在NUnit里,有如下几种属性:
· Test Fixture
· Test
下面我将对每种属性一一解说.
TestFixtureAttribute
本属性标记一种类包括测试,固然setup和teardown办法可有可无.(关于setup 和teardown办法在背面简介)
做为一种测试类,这个类尚有某些限制
· 必要是Public,否则NUnit看不到它存在.
· 它必要有一种缺省构造函数,否则是NUnit不会构造它.
· 构造函数应当没有任何副作用,由于NUnit在运营时经常会构造这个类多次,如果要是构造函数要什么副作用话,那不是乱了.
举个例子
C#代码
1. using System;
2. using NUnit.Framework;
3. namespace MyTest.Tests
4. {
5. [TestFixture]
6. public class PriceFixture
7. {
8. //
9. }
10. }
TestAttribute
Test属性用来标记一种类(已经标记为TestFixture)某个办法是可以测试.为了和先前版本向后兼容,头4个字符(“test”)忽视大小写.(参看)
这个测试办法可以定义为:
C#代码
1. public void MethodName()
public void MethodName()
从上面可以看出,这个办法没有任何参数,其实测试办法必要没有参数.如果咱们定义办法不对话,这个办法不会出当前测试办法列表中.也就是说在NUnit界面左边工作域内,看不到这个办法.尚有一点就是这个办法不返回任何参数,并且必要为Public.
例如:
C#代码
1. using System;
2. using NUnit.Framework;
3. namespace MyTest.Tests
4. {
5. [TestFixture]
6. public class SuccessTests
7. {
8. [Test] public void Test1()
9. { /**//* */ }
10. }
11. }
普通来说,有了上面两个属性,你可以做基本领情了.
此外,咱们再对如何进行比较做一种描述。
在NUnit中,用Assert(断言)进行比较,Assert是一种类,它涉及如下办法:AreEqual,AreSame,Equals, Fail,Ignore,IsFalse,IsNotNull,详细请参看NUnit文档。
1.3如何在.NET中应用NUnit
我将举个例子,一步一步演示如何去使用NUnit.
第1步.为测试代码创立一种Visual Studio工程。
在Microsoft Visual Studio .NET中,让咱们开始创立一种新工程。选取Visual C#工程作为工程类型,Class Library作为模板。将工程命名为NUnitQuickStart.图4-1是一种描述本环节Visual Studio .NET。
图 4-1:创立第一种NUnit工程
第2步.增长一种NUnit框架引用
在Microsoft Visual Studio .NET里创立这个例子时,你需要增长一种NUnit.framework.dll引用,如下:
在Solution Explorer右击引用,然后选取增长引用
NUnit.framework组件,在Add Reference对话框中按Select和OK按钮。
图4-2 描述了这步:
图 4-2:增长一种 NUnit.framework.dll 引用到工程
第3步.为工程加一种类.
为工程加一种NumbersFixture类。这里是这个例子代码。
C#代码
1. using System;
2. using NUnit.Framework;
3. namespace NUnitQuickStart
4. {
5. [TestFixture]
6. public class NumersFixture
7. {
8. [Test]
9. public void AddTwoNumbers()
10. {
11. int a=1;
12. int b=2;
13. int sum=a+b;
14. Assert.AreEqual(sum,3);
15. }
16. }
17. }
using System;
using NUnit.Framework;
namespace NUnitQuickStart
{
[TestFixture]
public class NumersFixture
{
[Test]
public void AddTwoNumbers()
{
int a=1;
int b=2;
int sum=a+b;
Assert.AreEqual(sum,3);
}
}
}
第4步.建立你Visual Studio 工程,使用NUnit-Gui测试
从程序->NUnit2.2打开NUnit-gui,加载本本工程编译程序集.
为了在Visual Studio .NET中自动运营NUnit-Gui,你需要建立NUnit-Gui作为你启动程序:
在 Solution Explorer里右击你NunitQuickStart工程。
在弹出菜单中选取属性。
在显示对话框左面,点击Configuration Properties夹
选取出当前Configuration Properties夹下Debugging。
在属性框右边Start Action某些,选取下拉框Program作为Debug Mode值。
按Apply按钮
设立NUnit-gui.exe 作为Start Application。,你既可以键入nunit-gui.exe全途径,也可使用浏览按钮来指向它。
图4-3 协助描述本环节:
图 4-3:将NUnit-Gui 作为工程测试运营器
第5步.编译运营测试.
当前编译solution。成功编译后,开始应用程序。NUnit-Gui测试运营器浮现。当你第一次开始NUnit-Gui,它打开时没有测试加载。从File菜单选取Oprn,浏览NUnitQuickStart.dll途径。当你加载了测试程序集,测试运营器为加载程序集测试产生一种可见体现。在例子中,测试程序集仅有一种测试,测试程序集构造如图4-4所示:
图 4-4:测试程序集测试在 NUnit-Gui中视图
按Run按钮。树节点变为绿色,并且测试运营器窗口上进度条变绿,绿色代表成功通过。
1.4其她某些核心概念
上面例子简介了基本NUnit特性和功能. TestFixture,Test,和 Assert是3个最基本特性,咱们可以用这些特性进行程序员测试了.但是有时候,你觉得这3个远远不够,例如有时候打开一种数据库连接多次,有无只让它打开一次办法呢?如果我想把测试分类,应当如何实现呢?如果我想忽视某些测试,又应当如何去完毕呢?不用紧张,NUnit已有这样功能了.
下面咱们一一作出回答.
SetUp/TearDown 属性
在初期给test fixture定义里,咱们说test fixture测试是一组常规运营时资源.在测试完毕之后,或是在测试执行种,或是释放或清除之前,这些常规运营时资源在一拟定方式上也许需要获取和初始化.NUnit使用2个额外属性:SetUp 和TearDown,就支持这种常规初始化/清除.咱们上面例子来描述这个功能.让咱们增长乘法.
C#代码
1. using System;
2. using NUnit.Framework;
3.
4. namespace NUnitQuickStart
5. {
6. [TestFixture]
7. public class NumersFixture
8. {
9. [Test]
10. public void AddTwoNumbers()
11. {
12. int a=1;
13. int b=2;
14. int sum=a+b;
15. Assert.AreEqual(sum,3);
16. }
17. [Test]
18. public void MultiplyTwoNumbers()
19. {
20. int a = 1;
21. int b = 2;
22. int product = a * b;
23. Assert.AreEqual(2, product);
24. }
25.
26. }
27. }
using System;
using NUnit.Framework;
namespace NUnitQuickStart
{
[TestFixture]
public class NumersFixture
{
[Test]
public void AddTwoNumbers()
{
int a=1;
int b=2;
int sum=a+b;
Assert.AreEqual(sum,3);
}
[Test]
public void MultiplyTwoNumbers()
{
in
展开阅读全文