资源描述
一、 课程设计的目的与要求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; 软件环境:操作系统:Microsoft Windows 7;数据库管理系统:SQLServer2008;Microsoft Visual Studio 2013;软件需求管理工具RRP ;软件设计工具RSA;软件测试工具RFT (4)局限性:开发人员全部为本科生,缺乏项目经验,技术操作方面还不太熟练。原有的系统存在很大的局限性,比如技术的过于陈旧,人员工作负荷大,系统维护及费用支出巨大,人员与设备技术含量低等等。1.3 技术可行性分析基于winform窗体程序,使用C#语言和Microsoft SQL Server 2008数据库实现,使系统的部署、应用、维护更加方便。因此技术方案是成熟的和可行的。1.4 经济可行性分析 从用户角度来看,无需单独购买计算机,只需利用目前已有的计算机,并且可以接入互联网即可;从开发者角度来看,此类软件开发周期一般为23个月,开发所需硬件和软件要求是目前大多数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) 运行环境 Windows 7,Windows Vista/ Windows XP或更高的版本,安装有SQLServer2008和Microsoft Visual Studio 2013及以上版本;至少有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) 软件接口 Windows 7,Windows Vista/ Windows XP或更高的版本,安装有SQLServer2008和Microsoft Visual Studio 2013及以上版本。4) 故障处理 对于应用程序,要求能够判断用户输入的错误信息,能够给出相应的错误提示,不会因为输入的错误信息而导致系统的运行终止; 对于硬件故障,系统能够自动备份数据,防止由于计算机故障导致数据丢失; 对于数据库,要求在发生故障时,能够实现数据的恢复;2.3.3 其它需求 可使用性:本系统容易使用和理解,界面友好; 安全保密:除了本人可以修改自己的登录密码外,只有管理人员能对读者及书籍信息做修改。可维护性:本系统在管理方面相对简单,容易维护,数据库的管理需要专门管理员。系统最小寿命:系统应能在无重大改动的条件下正常运行3年以上。 可移植性:对Windows 7,Windows Vista/ Windows XP或更高的版本系统均可使用。3.软件设计说明书3.1软件模块结构图具体如下图所示:3.2文件结构和全局数据3.2.1 数据库文件表(1)职工表(employee)用于存放所有职工即管理员的信息,职工表是判断用户的登录权限必不可少的部分,表中各个字段的数据类型、大小以及简短描述如下表1所示。 表1 职工表(Employee)字段名数据类型大小字段描述Enonchar10职工编号,主键Ekeynchar10密码Enamenchar10姓名 表1(2)物资信息表(Goods)用于存放仓库中所有货物的信息,物资信息表是用于查询物资信息和入库出库是否可行的判断基础。表中各个字段的数据类型、大小以及简短描述如下表2所示。 表2 物资信息表(Goods)字段名数据类型大小字段描述Gnonchar10物资编号,主键Gnamenchar10物资名称sortnchar10类型numint数量(3)管理关系表(Relation)用于存放职工对货物的所有操作。表中各个字段的数据类型、大小以及简短描述如下表3所示。表3 管理关系表(Relation)字段名数据类型大小字段描述Rnonchar10管理编号,主键Enonchar10职工编号Gnonchar10物资编号Rnumint操作物资数量stylenchar 操作类型Rtimedatatime操作时间3.2.2数据表关系图3.2.3创建存储过程用于向管理关系表中添加新的信息,代码如下:create table relation(Rno int identity(1,1) primary key,Eno nchar(10) not null,Gno nchar(10) not null,Rnum int not null,style nchar(10) not null,Rtime datatime not null)其他表均为直接新建表填入列名和约束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)该项测试发现的问题:无课程设计总结或结论经过这两个周的软件工程课程设计,我了解了软件开发的大致过程,可行性分析、软件需求、软件设计、软件测试,每一步都必不可少。要对所要开发的项目进行正确的可行性分析,正确的需求分析(包括功能需求、性能需求、运行需求等),对文件的结构和全局数据有正确的描述,设计足够多的测试用例进行单元测试、集成测试和系统测试。在开发软件的过程中,我体会到用户需求对软件的重要性。成功的软件是建立在成功的需求基础之上的,而高质量的需求来源于用户与开发人员之间有效的沟通与合作。在需求获取过程中,能否准确地描述需求也是对开发人员的一项考验。软件测试应该贯穿于整个软件开发的过程中,而不是等软件开发完成才开始进行,应该尽早地设计测试用例并进行测试。软件测试的方法有白盒测试、黑盒测试和灰盒测试。也可以借助自动化测试工具进行测试,比如的测试工具。在软件设计的过程中,我对结构化程序设计有了更深的理解,对用例图、时序图等建模的方法都有了一定的掌握,也了解了UML工具在软件开发过程中发挥着重要的作用。4 参考文献1 宋雨,软件工程,北京,中国电力出版社 出版时间:2007/2 2 李铭,c#高级编程(第7版),北京,清华大学出版社,2010 年11月3 刘婕. 张琳等著 C#.NET2.0+SQL Server动态网站开发从基础到实践. 电子工业出版社, 2007.14 Pressman R S, 郑人杰, 马素霞. 软件工程: 实践者的硏究方法M. 机械工业出版社, 2011.5 曲朝阳,刘志颖 软件测试技术 北京:中国水利水电出版社 2006
展开阅读全文