软件工程仓库管理系统实验报告华北电力大学.docx
《软件工程仓库管理系统实验报告华北电力大学.docx》由会员分享,可在线阅读,更多相关《软件工程仓库管理系统实验报告华北电力大学.docx(26页珍藏版)》请在冰豆网上搜索。
![软件工程仓库管理系统实验报告华北电力大学.docx](https://file1.bdocx.com/fileroot1/2023-2/2/e5a8bf86-3878-4754-b241-2dce7cedd8a2/e5a8bf86-3878-4754-b241-2dce7cedd8a21.gif)
软件工程仓库管理系统实验报告华北电力大学
一、课程设计的目的与要求
1.课程设计目的
软件工程课程设计是学习软件工程课程后所进行的实践环节,目的是培养学生用工程化的思想和标准文档化的思想进行软件开发。
本次课程设计通过开发一个小型实用的软件系统,亲身体验软件生命周期中的各个环节,以加深对软件工程课程的深入理解、锻炼独立分析、解决问题的能力。
2.课程设计要求
2.1课程设计准备
1)复习软件工程课程的主要内容,熟练掌握软件生命周期的理论以及各阶段的基本概念。
2)明确可行性分析、需求分析、设计、测试等阶段的基本任务和基本方法。
3)熟练运用规范化的描述方法和文档,描述软件开发的各个阶段。
4)熟悉开发环境和开发工具。
2.2内容要求
1)对所设计和实现的系统进行可行性分析,提交可行性分析报告;
2)对系统进行需求分析,可以选择传统的分析方法或者面向对象的分析方法,提交软件需求规格说明书(SRS);
3)在SRS的基础上进行软件的概要设计和详细设计,提交软件设计文档;
4)遵循上述文档的要求,实现软件;
5)对所实现系统进行软件测试,完成软件测试报告。
二、设计正文
1.可行性分析报告
1.1项目简介
1.1.1项目目标
随着计算机和网络技术的飞速发展,计算机的应用领域不断扩大。
利用计算机进行信息控制,不仅提高了工作效率,更提高了其安全性。
尤其对于复杂的信息管理,利用计算机能够充分发挥它的优越性。
随着科学技术的不断提高,计算机科学技术日渐成熟,它在人类社会的各个领域发挥着越来越重要的作用。
物资管理系统是根据企业的管理员对仓库物品的入库、出库等操作的管理及记录的需要来设计开发的,目标是给仓库管理员提供更加快速、便利的平台,具有对仓库货物信息进行管理和维护的功能。
1.1.2系统的简要描述,主要功能
从总体上来看,本系统主要实现以下功能:
查看货物信息:
可以查询所有货物的相关信息。
查看管理员信息:
可以查看所有仓库管理员的相关信息。
查看记录信息:
可以查看所有入库、出库的记录信息。
删除货物信息:
可以删除选定的货物信息,且同时删除与该货物相关的所有记录。
物资入库:
可以添加仓库已有或没有的货物,同时修改或添加相关信息。
(所有的入库人都包含在管理员之内)
物资出库:
可以使已有货物出库,同时修改相关信息。
(所有的出库人都包含在管理员之内)
安全退出:
退出当前页面至上一界面。
1.2对现有系统的分析
1.2.1处理流程和数据流程(系统流程图)
1.2.2对现有系统的其他说明
(1)维护:
在系统交付之后的有效期限之内,系统的维护只由开发单位提供;
(2)人员:
开发人数较少,管理员数目一定,允许管理的人员必须是熟悉数据库管理知识及相关业务的人员;
(3)设备:
硬件环境:
处理器(CPU):
双核酷睿I3及以上;内存容量(RAM):
至少2G;
软件环境:
操作系统:
MicrosoftWindows7;数据库管理系统:
SQLServer2008;MicrosoftVisualStudio2013;软件需求管理工具RRP;软件设计工具RSA;软件测试工具RFT
(4)局限性:
开发人员全部为本科生,缺乏项目经验,技术操作方面还不太熟练。
原有的系统存在很大的局限性,比如技术的过于陈旧,人员工作负荷大,系统维护及费用支出巨大,人员与设备技术含量低等等。
1.3技术可行性分析
基于winform窗体程序,使用C#语言和MicrosoftSQLServer2008数据库实现,使系统的部署、应用、维护更加方便。
因此技术方案是成熟的和可行的。
1.4经济可行性分析
从用户角度来看,无需单独购买计算机,只需利用目前已有的计算机,并且可以接入互联网即可;从开发者角度来看,此类软件开发周期一般为2-3个月,开发所需硬件和软件要求是目前大多数PC机系统能够承担的,开发费用不高。
1.5社会因素可行性分析
1.5.1法律因素
我国用著作权体系来保护计算机软件,保护的范围也很广泛,从系统软件、应用软件到源程序、目标程序,都可以受到保护。
该系统为独立开发,在法律方面不会存在侵犯专利权、侵犯版权等问题。
1.5.2用户使用可行性
该系统提供友好的界面,对用户来说,操作简单,容易掌握。
1.6可供选择的方案
方案1:
基于winform窗体的仓库物资管理系统,系统主要针对管理员部分,管理员可以对职工信息、物资信息进行管理和维护。
该方案的优点和选择该方案的原因:
(1)winform窗体操作比较简单,用户容易掌握;
(2)C#语言简单易懂,兼容性好,对开发者来说容易使用;(3)开发难度较低,降低了开发成本;(4)C#语言能实现系统与数据库的无缝连接,降低了系统的维护开销;
方案2:
使用Java编写的仓库物资管理系统
不选择该方案的原因:
(1)使用Java编写界面相对困难,不容易使界面实现更好的人机交互;
(2)Java语言相对于C#语言来说较难理解,对开发者来说使用不便;(3)熟悉并精通Java的开发者数量不多,维护起来比较困难;
方案3:
在以前的仓库物资管理系统上进行修改,完善功能。
不选择该方案的原因:
(1)以前的开发者大多离校,不便于交流;
(2)修改需先理清以前的开发思路,了解以前系统的开发过程及结构,工作量太大;
方案4:
购买“仓库物资管理系统”。
不选择该方案的原因:
(1)目前市场上的仓库物资管理系统主要是大型系统,购买系统费用昂贵;
(2)对于学校内部的小型系统来说显得“大材小用”;(3),维护比较困难,维护价格也比较高昂。
2.软件需求规格说明书(SRS)
2.1需求概述
1)给出软件需求的摘要和简单描述
仓库物资管理系统的主要功能是实现职工信息和物资信息管理的信息化。
仓库物资管理系统需要满足来自管理员的需求。
Ⅰ.对于仓库管理员来说,他们的需求是:
对职工信息、物资信息进行管理和维护。
管理员可以查询、添加、删除、修改、物资和职工的基本信息。
系统管理员可以维护系统的状态和正常的运行。
根据仓库物资的实际需求情况,仓库物资管理系统应该包括以下几个功能模块:
1.基本业务模块:
主要实仓库日常业务的信息化处理,包括入库、出库。
2.基本数据维护模块:
主要是对管理员信息、物资入库、出库记录信息、物资基本信息进行操作,包括添加、修改和删除。
2)运行环境
Windows7,WindowsVista/WindowsXP或更高的版本,安装有SQLServer2008和MicrosoftVisualStudio2013及以上版本;至少有100M左右的硬盘空间
2.2功能需求
2.2.1功能图:
2.2.2用例图:
2.2.3时序图
①查询或删除物资信息时序图:
②查询物资记录信息时序图:
③物资入库时序图:
2.3数据描述
类之间的关系图:
管理员类描述:
管理员类包含的属性主要是管理员编号、管理员登录密码、管理员权限、管理员姓名。
管理员类的方法主要是查询信息基本操作。
物资类描述:
物资类包含的属性主要是物资编号、物资名称、物资型号、物资数量。
书籍类的方法有删除、更新物资信息,还有查询物资信息,可以按物资编号查询。
出入库类描述:
出入库类包含的属性主要是编号、状态、数量类型、更改时间。
当状态为1时为入库操作,当状态为2时为出库操作。
出入库类的方法有输入、输出、更新物资信息。
2.3.1性能需求
1)数据精确度
查询时应保证查全率,所有包含查询关键字的记录应该都能查到。
在添加任何记录时,要保证数据库中数据的一致性,避免发生错误,要求不能有误差。
2)时间特性
检索响应时间应在人的感觉和视觉能接受的时间范围内;更新数据库处理时间应小于等于1s;网络传输时间应小于等于2s。
3)适应性
技术约束:
该系统的设计是在使用C#语言编写、基于winform窗体的,技术设计采用软硬一体化的设计方法。
标准约束:
该系统的开发完全按照企业标准开发,包括硬件、软件和文档规格。
2.3.2运行需求
1)用户界面
用户界面的设计应遵循用户界面设计的原则,做到以人为本、尽可能减少用户记忆、保持界面的一致性。
力求设计结果美观大方、直观、明了、条理清晰,使系统易学、易用、易管理。
本系统是以Winform窗体的形式工作的,打开系统后,呈现在眼前的是一个登录界面,输入管理员编号和密码进入系统,进行相应的操作,各种操作都与数据库相连,一旦确定某些操作,相应的数据就会保存到数据库中,实时性好。
登录界面:
操作选择页面:
库存查询操作界面:
密码修改界面:
权限修改界面:
入库管理界面:
出库管理界面:
2)硬件接口
需要浏览器进行显示,键盘进行输入。
3)软件接口
Windows7,WindowsVista/WindowsXP或更高的版本,安装有SQLServer2008和MicrosoftVisualStudio2013及以上版本。
4)故障处理
对于应用程序,要求能够判断用户输入的错误信息,能够给出相应的错误提示,不会因为输入的错误信息而导致系统的运行终止;
对于硬件故障,系统能够自动备份数据,防止由于计算机故障导致数据丢失;
对于数据库,要求在发生故障时,能够实现数据的恢复;
2.3.3其它需求
可使用性:
本系统容易使用和理解,界面友好;
安全保密:
除了本人可以修改自己的登录密码外,只有管理人员能对读者及书籍信息做修改。
可维护性:
本系统在管理方面相对简单,容易维护,数据库的管理需要专门管理员。
系统最小寿命:
系统应能在无重大改动的条件下正常运行3年以上。
可移植性:
对Windows7,WindowsVista/WindowsXP或更高的版本系统均可使用。
3.软件设计说明书
3.1软件模块结构图
具体如下图所示:
3.2文件结构和全局数据
3.2.1数据库文件表
(1)职工表(employee)用于存放所有职工即管理员的信息,职工表是判断用户的登录权限必不可少的部分,表中各个字段的数据类型、大小以及简短描述如下表1所示。
表1职工表(Employee)
字段名
数据类型
大小
字段描述
Eno
nchar
10
职工编号,主键
Ekey
nchar
10
密码
Ename
nchar
10
姓名
表1
(2)物资信息表(Goods)用于存放仓库中所有货物的信息,物资信息表是用于查询物资信息和入库出库是否可行的判断基础。
表中各个字段的数据类型、大小以及简短描述如下表2所示。
表2物资信息表(Goods)
字段名
数据类型
大小
字段描述
Gno
nchar
10
物资编号,主键
Gname
nchar
10
物资名称
sort
nchar
10
类型
num
int
数量
(3)管理关系表(Relation)用于存放职工对货物的所有操作。
表中各个字段的数据类型、大小以及简短描述如下表3所示。
表3管理关系表(Relation)
字段名
数据类型
大小
字段描述
Rno
nchar
10
管理编号,主键
Eno
nchar
10
职工编号
Gno
nchar
10
物资编号
Rnum
int
操作物资数量
style
nchar
操作类型
Rtime
datatime
操作时间
3.2.2数据表关系图
3.2.3创建存储过程
用于向管理关系表中添加新的信息,代码如下:
createtablerelation
(
Rnointidentity(1,1)primarykey,
Enonchar(10)notnull,
Gnonchar(10)notnull,
Rnumintnotnull,
stylenchar(10)notnull,
Rtimedatatimenotnull
)
其他表均为直接新建表填入列名和约束
3.2.4软件各个模块所共享的全局数据的结构:
物资管理系统中使用了公共模块DAL,每一张表均新建了一个类EmployeeDAO.cs、GoodsDAO.cs、RelationDAO.cs和SQLHelper.cs。
在EmployeeDAO.cs定义了对职工表的查询操作函数,在GoodsDAO.cs中定义了对物资信息表的查询、插入、删除和更新等函数,在RelationDAO.cs中定义了对物资记录表的查询、插入等函数。
3.3模块描述
3.3.1登录模块描述
(1)功能:
管理员通过登录界面选择权限进入仓库物资管理系统;
(2)接口:
将管理员输入的编号和密码与数据库中的数据尽心对比;
(3)数据:
管理员编号,密码,权限;
(4)处理:
单击“登录”按钮,若输入的编号和密码与数据库中的数据相符,则登录成功,进入选择支持的操作界面,否则登录失败。
3.3.2.1超级管理员管理管理员信息模块描述
(1)功能:
超级管理员可以对管理员的信息进行查询与修改基本操作;
(2)接口:
由超级管理员模块调用该模块,连接到数据库按编号进行查询管理员信息,进行查询基本操作后数据会更新到数据库中;
(3)数据:
管理员编号、密码、姓名;
(4)处理:
在操作界面单击“权限修改”按钮,进入权限修改界面,选择用户名与希望更改后的用户类型,点击“确认”修改信息;在操作界面单击“密码修改”按钮,进入密码修改界面,选择用户名,输入其原密码并输入和再次输入其新密码,点击“确认”修改信息
3.3.2.2管理员管理入库模块描述
(1)功能:
管理员可以对货物信息进行仓库选择,货物编号,货物名称,货物数量,货物价格的增加操作;
(2)接口:
由管理员模块调用该模块,连接到数据库查询货物信息,进行增、删、查等基本操作后数据会更新到数据库中;
(3)数据:
仓库位置,货物编号,货物名称,货物数量,货物价格;
(4)处理:
在管理员在管理界面单击“入库管理”按钮,进入入库管理界面,依次输入入库货物编号、名称、数量、价格的点击入库可以将修改后的信息保存到数据库中。
3.3.2.3管理员管理出库模块描述
(1)功能:
管理员可以对货物的信息进行仓库选择,货物编号,货物名称,货物数量,货物价格的修改操作;
(2)接口:
由管理员模块调用该模块,连接到数据库查询货物信息,进行删、改、查等基本操作后数据会更新到数据库中;
(3)数据:
仓库位置,货物编号,货物名称,货物数量,货物价格;
(4)处理:
在管理员管理界面单击“出库管理”按钮,进入出库管理界面,依次输入出库货物编号、名称、数量、的点击入库可以将修改后的信息保存到数据库中。
3.3.2.4管理员管理库存查询模块描述
(1)功能:
管理员可以对货物的信息进行查询操作;
(2)接口:
由管理员模块调用该模块,连接到数据库查询货物信息。
(3)数据:
仓库位置,货物编号,货物名称,货物数量,货物价格;
(4)处理:
在管理员管理界面单击“库存查询”按钮,进入库存查询管理界面,选择查询条件以及关键字显示相关货物的详细信息。
4软件测试报告
4.1测试范围
4.1.1测试目的:
测试是为了发现程序中或处理流程中的错误而执行的过程。
4.1.2预期结果:
系统运行正常,与用户交互流畅,数据处理正确并能与数据库正确相连;
4.1.3测试步骤:
单元测试、集成测试、确认测试和系统测试。
4.2测试计划
整个系统分为两个模块:
超级管理员模块和普通管理员模块,每个模块都要先独立测试,再集合到一起测试。
注意模块之间的连接。
每个模块都要设计测试用例。
先进行白盒测试,再进行黑盒测试。
4.2.1测试阶段
(1)第1阶段:
对每个模块进行单元测试,包括超级管理员管理管理员信息模块、管理员管理入库模块描述、管理员管理出库模块描述、管理员管理库存查询模块描述,对设计的测试用例进行测试,查看是否与预期的结果相同。
(2)第2阶段:
进行集成测试,测试模块之间的调用是否正确。
(3)第3阶段:
进行确认测试,测试各个子系统是否完成了需求说明书中的功能。
(4)第4阶段:
进行系统测试,测试整个系统的功能、性能是否与预期效果相同。
4.2.2测试进度:
测试的全部进度、顺序和依赖关系及各模块的测试日程如下表所示:
测试模块
测试顺序
依赖关系(先行的测试)
测试时间
用户登录模块
按权限(普通管理员或超级管理员)登录分别进行测试
无
2014.06.25上午
超级管理员管理管理员信息模块
权限修改、密码修改
用户登录测试
2014.06.25上午
管理员管理入库模块
入库仓库位置、货物编号、名称、数量、单价
用户登录测试
2014.06.25上午
管理员管理出库模块
出库仓库位置、货物编号、名称、数量
用户登录测试、管理员管理入库模块
2014.06.25上午
管理员管理库存查询模块
查询仓库位置、货物编号、名称、数量、单价
用户登录测试、管理员管理出库模块
2014.06.25上午
4.3测试项目说明
4.3.1用户登录模块测试
(1)测试目的:
测试系统的登录是否正确、合法,对于合法的用户是否能够转入正确的界面,对于非法的用户能否能提示错误。
(2)测试方法和测试软件:
分别使用超级管理员信息表和普通管理员信息表中合法用户信息登录系统,再以非合法信息登录系统,用白盒测试中的逻辑覆盖法进行测试。
(3)测试用例
测试用例编号
用户权限
用户账号
密码
预期结果
1
超级管理员
1201(合法)
123(合法)
登录成功,进入管理员操作主界面
2
超级管理员
1201(合法)
1234(非法)
登录失败,提示用户名和密码不匹配
3
超级管理员
1201(合法)
空
登录失败,提示密码不能为空
4
超级管理员
空
123
登录失败,提示用户名不能为空
5
超级管理员
1202(非法)
123(合法)
登录失败,提示用户名不存在
6
普通管理员
1202(合法)
123(合法)
登录成功,进入读者操作主界面
7
普通管理员
1202(合法)
1234(非法)
登录失败,提示用户名和密码不匹配
8
普通管理员
1202(合法)
空
登录失败,提示密码不能为空
9
普通管理员
空
123
登录失败,提示用户名不能为空
10
普通管理员
1201(非法)
123
登录失败,提示用户名不存在
4.3.2管理员管理管理员信息模块测试
(1)测试目的:
测试超级管理员的对管理员信息的基本操作是否正确、合法。
(2)测试方法和测试软件:
分别对管理员管理界面的各部分进行测试,观察结果是否与预期结果相符。
(3)测试用例:
测试用例编号
超级管理员操作
输入
预期结果
1
修改权限
超级管理员
更改并显示管理员级别
2
修改密码
新密码确认、新密码
成功修改密码
4.3.3管理员管理入库模块测试
(1)测试目的:
测试管理员的对货物的入库基本操作是否正确、合法。
(2)测试方法和测试软件:
分别对管理员管理界面的各部分进行测试,观察结果是否与预期结果相符。
(3)测试用例:
测试用例编号
管理员操作
输入
预期结果
1
入库
仓库位置,货物编号、名称、数量、价格
显示入库信息
2
删除
货物编号、名称
删除选定货物信息
4.3.4管理员管理出库模块测试
(1)测试目的:
测试管理员的对货物信息的基本操作是否正确、合法。
(2)测试方法和测试软件:
分别对管理员管理界面的各部分进行测试,观察结果是否与预期结果相符。
(3)测试用例:
测试用例编号
管理员操作
输入
预期结果
1
出库
货物编号、名称、数量
显示出库信息
3
删除
货物编号、名称
删除选定货物信息
4.3.5管理员管理库存查询模块测试
(1)测试目的:
测试管理员的对货物类别信息的基本操作是否正确、合法。
(2)测试方法和测试软件:
分别对管理员管理界面的各部分进行测试,观察结果是否与预期结果相符。
(3)测试用例:
测试用例编号
管理员操作
输入
预期结果
1
查询
货物编号、名称
显示查询信息
4.4测试分析
3.3.1.1用户登录模块测试
(1)实测结果:
在用户名和密码均正确的情况下,登录成功;否则失败,提示错误信息;
(2)与预期结果数据的偏差:
无偏差
(3)该项测试表明的事实:
连接数据库登录可行
(4)该项测试发现的问题:
无
3.3.1.2管理员管理管理员信息模块测试
(1)实测结果:
在用户名和密码均正确的情况下,增、删、改、查等操作可以正确进行;
(2)与预期结果数据的偏差:
无偏差
(3)该项测试表明的事实:
管理员可以对管理员信息正确管理;
(4)该项测试发现的问题:
无
3.3.1.3管理员管理入库模块测试
(1)实测结果:
在用户名和密码均正确的情况下,增、删、改等操作可以正确进行;
(2)与预期结果数据的偏差:
无偏差
(3)该项测试表明的事实:
管理员可以对入库信息正确管理;
(4)该项测试发现的问题:
无
3.3.1.4管理员管理出库模块测试
(1)实测结果:
在用户名和密码均正确的情况下,删、改等操作可以正确进行;
(2)与预期结果数据的偏差:
无偏差
(3)该项测试表明的事实:
管理员可以对出库信息正确管理;
(4)该项测试发现的问题:
无
3.3.1.5管理员管理库存查询模块测试
(1)实测结果:
在用户名和密码均正确的情况下,库存查询操作可以正确进行;
(2)与预期结果数据的偏差:
无偏差
(3)该项测试表明的事实:
管理员可以对库存查询正确管理;
(4)该项测试发现的问题:
无
课程设计总结或结论
经过这两个周的软件工程课程设计,我了解了软件开发的大致过程,可行性分析、软件需求、软件设计、软件测试,每一步都必不可少。
要对所要开发的项目进行正确的可行性分析,正确的需求分析(包括功能需求、性能需求、运行需求等),对文件的结构和全局数据有正确的描述,设计足够多的测试用例进行单元测试、集成测试和系统测试。
在开发软件的过程中,我体会到用户需求对软件的重要性。
成功的软件是建立在成功的需求基础之上的,而高质量的需求来源于用户与开发人员之间有效的沟通与合作。
在需求获取过程中,能否准确地描述需求也是对开发人员的一项考验。
软件测试应该贯穿于整个软件开发的过程中,而不是等软件开发完成才开始进行,应该尽早地设计测试用例并进行测试。
软件测试的方法有白盒测试、黑盒测试和灰盒测试。
也可以借助自动化测试工具进行测试,比如IBM的RFT测试工具。
在软件设计的过程中,我对结构化程序设计有了更深的理解,对用例图、时序图等建模的方法都有了一定的掌握,也了解了UML工具在软件开发过程中发挥着重要的作用。
4参考文献
[1]宋雨 ,软件工程,北京,中国电力出版社出版时