软件工程图书管理系统.docx
《软件工程图书管理系统.docx》由会员分享,可在线阅读,更多相关《软件工程图书管理系统.docx(53页珍藏版)》请在冰点文库上搜索。
![软件工程图书管理系统.docx](https://file1.bingdoc.com/fileroot1/2023-6/3/20a1ea83-91c2-421a-8583-8435d9de6cea/20a1ea83-91c2-421a-8583-8435d9de6cea1.gif)
软件工程图书管理系统
软件工程项目实践报告
课题名称
图书管理系统
专业
计算机科学与技术
开发组长
名字1072485
开发组员
名字1072485名字3072509
名字2072417名字4072351
名字5072513
指导老师
朱XX
小组编号
第一组
完成时间
2009年12月20日
具体分工
序号
学号
姓名
角色
承担的工作(简介)
页码
备注
1
072485
名字1
组长
需求分析
总体设计
详细设计
编码
4-6
14-16
17-22
34-39
2.1-2.3
3.2
4.1-4.22
5.1-5.2
2
072351
名字4
副组长
测试
40-47
6.1-6.3
3
072509
名字3
副组长
需求分析
详细设计
6-8
11-12
22-27
2.4-2.5
2.7-2.9
4.23-4.25
4
072513
名字5
组员
可行性研究
需求分析
1-3
9-11
1.1-1.6
2.6
5
062417
名字2
组员
总体设计
详细设计
12-14
28-33
3.1
4.26-4.28
1可行性研究与项目开发计划
1.1引言
1.1.1问题定义
图书管理系统是指应用电子计算机为读者提供方便的图书借阅环境,并能满足所有授权用户对信息的各种功能需求的计算机应用软件系统。
1.1.2背景
所建议开发的软件系统的名称:
图书管理系统
本项目的任务提出者:
名字1、名字3、名字5、名字2、名字4
开发者:
名字1、名字3、名字5、名字2、名字4
产品用户:
图书管理员、借阅者
1.1.3编写目的
可行性研究报告是为“图书管理系统”开发的可能性、可行性、必要性提供论据,并导出系统的逻辑模型,探索出若干种可供选择的主要解法,为开发人员进行系统总体规划设计及具体实施开发工程提供必要的参考资料,在系统开发完成后期为系统的测试、验收提供帮助。
其编写过程由名字1、名字3、名字5、名字2、名字4合作完成,预期读者是从事“图书管理系统”开发的五个人。
1.2可行性研究的前景
1.2.1要求
a.功能:
这是一个图书管理系统,主要负责查询、添加、删除、修改书库的信息;查询持卡人的借书情况;处理借书,还书,续借等事务;统计图书流动情况。
b.数据的来源:
由学校图书馆提供 。
c.输入要求:
数据完整,详实。
输出要求:
简捷,快速,实时。
d.处理流程和数据流程用图表的方式:
表示出最基本的数据流程和处理流程,并辅之以叙述。
e.在安全与保密方面:
登陆系统时,需验证身份和密码,只有图书管理员才能对书籍信息进行修改以及处理借书还书等操作。
1.2.2目标
a.图书管理系统可以方便图书借阅管理,只需一台电脑和一个管理员就能轻松完成。
b.提高对新书入库、借阅图书、借阅信息统计以及学生信息管理的速度。
c.减少人力的投入的同时提高了信息处理的精度和准确度,在输入无误的基础上可保证数据的正确性。
d.改进了管理服务的质量,可由系统对入库图书进行自动分类、归类,借阅图书的分类和次数,学生信息整理、借阅情况登记入档。
e.改进人员的利用率,减少了前台操作人员,更多的人员可用于为借阅者服务、更新采购图书等其他事物,节省人力资源。
1.2.3条件、假定和限制
a.信息来源单一,客户需求分析主要来源于对图书管理员的采访和咨询。
b.技术方面本组人员对SQL还不熟悉,还处于学习阶段。
c.进行系统方案选择比较的时间较短,只有一至两个星期。
d.系统完成截止时间最晚为本学期期末。
1.2.4进行可行性研究的方法
复查系统规模和目标;对已有图书管理系统进行分析和研究;导出新系统的高层逻辑模型,并导出和评价供选择的解法。
1.2.5评价尺度
本软件开发项目为一个学生项目,由各组员通力协作、自主研发,充分调动主观能动性,故为零成本项目,并由于时间有限,所以开发时间也不会太长,操作界面方便即可。
1.3所建议的系统
1.3.1对所建议系统的说明
该软件是一个图书管理系统。
1)功能概括:
a.信息来源单一,客户需求分析主要来源于对图书管理员的采访和咨询。
b技术方面本组人员对SQL不熟悉,还处于学习阶段。
c.进行系统方案选择比较的时间较短,只有一至两个星期。
d.系统完成截止时间最晚为本学期期末。
2)系统环境以及工具:
a.运行环境:
WindowsXP
b.编程语言:
C#
c.数据库:
SQL2005
1.3.2影响
a.对设备的影响:
没有什么特殊的要求,该系统的信息量不是太大,一般的PC机都能使用。
b.对软件的影响:
WindowsXP、C#和MSSQL2005
c.对用户单位机构的影响:
使用该系统,客户原有体系几乎不需要太大的变化。
该操作简单,使用人员会计算机基本操作即可。
肯定会很快提高工作效率,减轻劳动负担。
1.3.3局限性
由于我们都是在校学生,缺乏实践经验,我们的图书管理系统做的比较不健全,只是适用性的东西。
该系统工作量小,一般情况下不会由于信息量大而造成麻烦。
有关数据库的存储量,就目前而言,客户的藏书量不是很大。
如果日后有所扩大,可以在原有基础上作相应的扩充,这在SQL中是很容易办到的。
1.3.4技术条件方面的可行性
技术方面,虽然我们对SQL不熟悉,但是本组同学有较强的钻研精神和学习能力,相信通过小组组员间的协作,我们能够顺利完成图书管理系统的开发。
1.4社会因素方面的可行性
1.4.1法律方面的可行性
法律方面我们已经调查研究过,我们用的软件都是正版的,此软件不存在侵犯专利权、侵犯版权等问题,所以在法律方面是可行的。
1.4.2使用方面的可行性
我们的软件操作简单,运行方便,用我们的软件来管理图书是没有什么困难的,所以在使用方面是可行的。
1.5结论
综上,此系统逻辑模型架构清晰,功能明确,有较强的实用性,在技术上可实现,故为一个可行的项目。
1.6工作进度表
可行性研究
1周
需求分析
2周
总体设计
1周
详细设计
1周
编码与测试
3周
总结
1周
2需求分析
2.1需求定义
2.1.1图书信息查询/借书信息查询
图书馆主要向读者提供图书借阅的服务。
读者为了借阅图书,一般情况下,需要在借书之前查询所要借阅的图书情况,所以图书馆需要为读者提供图书查询功能。
例如,读者可能想借阅某方面的书,但不知道图书馆在该方面有哪些图书可供借阅,所以需要对图书馆的图书进行查询;或者,读者知道想借阅的图书信息,但不知道该图书馆是否有该书或不知道图书在图书馆的位置、是否被借出、是否可以借阅等信息,这也需要使用图书查询功能。
一般的图书查询中,读者是通过图书登记卡、浏览图书登记卡中的信息得到图书信息的。
读者在查询图书时,可以依据以下条件查询:
1)图书的ID
2)图书的名称
3)图书的作者
4)图书的出版社
5)图书是否在库中
经过图书查询,读者获得图书馆是否有自己想要的图书,该图书的简单信息以及图书在图书馆的借阅位置等信息。
2.1.2新书入库/修改图书信息
为了能正常运行,图书馆要及时更新馆藏图书。
对于新书,要购进,供读者借阅;所以要设计到图书的批量入库。
对于批量入库,图书管理员要批量登记图书的信息,包括图书ID、图书名称、作者、出版社等信息。
在录入书时难免出现错误,因此增加修改图书信息功能
图书馆的基本功能之一就是为读者提供借阅服务,读者通过借阅这一过程,可以把图书带出图书馆,从而使读者能够更方便的浏览图书。
借书过程中,图书管理员要对读者的借书资格进行审查,对符合借书条件的读者,允许其借书,对其借书记录进行登记;对没有借书资格的读者,禁止其借书。
具体的步骤如下:
1)读者向图书管理员提交请求和图书借阅卡
2)图书管理员检查读者提供的借阅卡,如果该借阅证真实准确,读者已经借阅的图书并没有超过允许借书量,而且读者没有逾期未还的图书,则允许读者借书,否则,读者不能从图书馆借书。
3)读者拿到要借阅的图书,同时拿到自己的借阅卡,借书过程完毕。
4)当借阅图书的数量超过5本或者出现未按期归还图书的情况,则不好进行借阅处理。
图书馆的另一基本功能就是为读者提供还书服务,读者在一本图书借阅期满之前把该图书还给图书馆,一般的还书步骤如下:
1)读者把所借的图书和自己的借阅卡交给图书管理员。
2)图书管理员对图书进行检查,看有无损坏,如果出现图书的损坏情况,读者应进行相应的赔偿。
3)图书管理员查看是否超过规定借阅期限,如果已经过期,则读者要按规定交纳罚金。
4)图书管理员进行登记,同时把还书信息记入借阅卡。
5)读者拿回自己的借阅卡,还书过程借书。
6)读者逾期未归还图书超过三天,将按照每本每天进行一定的罚款。
2.2目标系统的数据分析与建模
数据的概念模型用E-R图表示如下:
2.3目标系统的功能需求与建模
2.4目标系统的行为需求与建模
用状态图来描述系统的行为模型
2.5数据字典
2.6IPO图
系统:
图书管理系统
模块:
查阅借书记录
编号:
NO.009
注释:
局部数据元素:
处理:
返回借阅人所借书的借书项
输出:
借书ID
输入:
借阅人ID
调用:
(借阅记录)
被调用:
借阅人
IPO表
2.7目标系统的性能需求
2.7.1数据精确度
用户的各种查询操作,管理员的各种更新操作均要求准确无误地进行数据库操作,给出正确的操作结果。
2.7.2响应时间
对于用户的各种操作请求应尽快给出响应,响应时间应控制在2s左右。
2.8运行需求
2.8.1用户界面
用户界面友好,与用户完成互动,满足用户需求,方便用户操作。
2.8.2故障处理
目标系统应对于能预测到的故障均进行预处理,从而可以有效的防止故障的发生,方便进行故障处理。
2.9其他需求
2.9.1可使用性
目标系统应该能够随时处于正常工作状态,以方便用户随时进行查询和管理。
2.9.2安全性
目标系统应该能够保证用户的个人信息安全,由管理员统一进行管理,而每个用户只可查看和修改个人信息。
2.9.3可维护性
目标系统应该具有良好的可维护性,以便在不花费很大代价的前提下被长时间使用。
2.9.4可移植性
目标系统应该具有良好的可移植性,以方便在不同平台上使用。
3总体设计
3.1系统设计
3.1.1系统功能分析
图书管理系统应具备的功能如下:
1)进入系统前需要身份验证、用户名、密码,输入正确后方可进入。
2)用户可以查询书库中书的信息和已借的书籍信息。
3)图书管理员可以根据需要进行书库管理,包括添加书籍,删除书籍,查询书籍信息,修改书籍信息等。
3.1.2运行环境
WindowsXP、VisualStudio2008和SQL2005
3.1.3层次图和结构图
3.2数据库设计
3.2.1数据库需求分析
在需求分析的基础上,结合数据流程图,通过对图书管理系统的工作内容和数据流程的分析,设置以下的数据结构和相关数据项:
(1)用户种类信息:
包括的数据项有:
用户ID,用户密码,用户权限。
(2)书籍信息:
包括的数据项有:
书的ID,书名,作者,出版社,是否在库中。
(3)借阅信息:
包括借阅人ID,书籍ID,借出时间。
根据以上分析得出的数据结构和数据项,进一步进行数据库概念结构设计和逻辑结构设计。
3.2.2数据库结构设计
3.2.3数据库逻辑结构设计
将概念结构设计阶段得到的各个数据结构及E-R图转换为SQL数据库系统支持的数据模型,也就是数据库的逻辑结构设计。
图书馆管理信息系统数据库中各个表格的设计结果如下所示,每个表格对应数据库中的一张表格,详细描述了各表格的存储信息规范。
表TableUser
列名
数据类型
备注
ID
varchar(50)
主键
书名
varchar(50)
无
作者
varchar(50)
无
出版社
varchar(50)
无
是否在库中
Bit
无
表TableRecord
列名
数据类型
备注
书的ID
varchar(50)
无
借书人ID
varchar(50)
无
借书时间
Datetime
无
表TableBook
列名
数据类型
备注
用户名
varchar(50)
无
权限
varchar(50)
无
密码
int
无
4详细设计
4.1人机界面设计
4.1.1设计概述
人机界面设计是接口设计的一个重要的组成部分。
对于交互式系统来说,人机界面设计和数据设计,体系结构设计及过程设计一样重要。
图书管理系统是基于对话框设计的,用到了三个对话框,分别为登录对话框,书库管理员对话框和借阅人对话框。
在用户登入时验证用户身份,如果是合法用户,则根据数据库中记录的用户权限转到管理员界面或者借阅人界面。
登录界面
书库管理员界面
借阅人界面
4.1.2系统响应时间
对于用户的各种操作请求应尽快给出响应,响应时间应控制在1s左右。
4.1.3出错信息处理
对于用户不符合要求的输入,系统会给出错误提示,并告知其错误原因。
4.2功能模块设计
4.2.1用户登录模块
此模块用于用户从登录界面进入主界面,通过判断用户名,用户密码的正确性来验证用户的合法性。
根据用户的权限不同跳至管理员界面和借阅人界面。
输入:
用户名,密码
输出:
管理员或借阅人界面
流程逻辑
4.2.2图书馆书籍查询模块
此模块用于实现用户对图书馆中的书籍查询的功能。
根据用户输入的相应的图书信息在数据库中搜索,给出用户相应的图书信息。
输入:
书的ID,书名,作者,出版社,是否在库中
输出:
符合要求的相关图书信息
流程逻辑
4.2.3已借书籍查询模块
此模块用于查询某用户已借的书籍。
如果是在管理员界面下则输入要查询用户的ID,
如果在借阅人界面下则无需输入。
输入:
用户名/无
输出:
该用户已借的书籍
流程逻辑
4.2.4新增图书模块
此模块实现新书的登记功能。
用户需输入新书的详细信息,如果书的ID不与库中已有书籍ID相冲突,则系统将信息保存在数据库中后,新书登记成功。
否则输出失败原因。
输入:
书的ID,书名,作者,出版社,是否在库中
输出:
添加成功消息/失败原因
流程逻辑
4.2.5删除图书模块
此模块实现书的删除功能。
用户需输入要删除书的ID,如果书库中有ID为该ID的书,则系统将删除数据库中该书的相关信息,并显示删除书籍成功,否则提示失败原因。
输入:
书的ID
输出:
删除成功消息/失败原因
流程逻辑
4.2.6修改图书信息
此模块实现书的信息修改功能。
用户需输入书的ID和要修改的信息,如果书库中有ID为该ID的书,则系统将更新数据库中与该书相关的信息,并显示信息修改成功,否则输出失败原因。
输入:
书的ID,书名,作者,出版社,是否在库中
输出:
修改成功消息/失败原因
流程逻辑
4.2.7借阅图书模块
此模块用于图书的借阅,系统根据借阅人ID是否合法,借阅人是否满足借阅条件(已借书籍小于5本且没有书超期不还(30天)),书的ID是否合法,书是否在库中来决定是否允许借阅。
如果允许,则修改数据库中的相应数据并输出借阅成功的消息。
否则输出借阅失败的原因。
输入:
借阅人ID,书的ID
输出:
借阅成功消息/借阅失败的原因
流程逻辑
4.2.8归还图书模块
此模块用于图书的归还,系统根据书的ID是否合法,书是否在库中来决定是否允许归还。
如果允许,则修改数据库中的相应数据并输出归还成功的消息。
否则输出归还失败的原因。
输入:
书籍ID
输出:
归还成功消息或归还失败原因
流程逻辑
5编码
5.1开发环境
WindowsXP、VisualStudio2008C#、SqlServer2005
5.2运行结果
5.2.1登录模块
5.2.2书籍查询模块
5.2.3已借书籍查询模块
5.2.4借书模块
5.2.5还书模块
5.2.6新书入库
5.2.7删除书籍
5.2.8书籍信息修改
6测试
6.1测试计划
6.1.1测试计划名称
图书管理系统测试计划
6.1.2引言
问题定义
图书管理系统是指应用电子计算机为读者提供方便的图书借阅环境,并能满足所有授权用户对信息的各种功能需求的计算机应用软件系统。
背景
所建议开发的软件系统的名称:
图书管理系统
本项目的任务提出者:
名字1、名字3、名字5、名字2、名字4
开发者:
名字1、名字3、名字5、名字2、名字4
产品用户:
图书管理员、借阅者
编写目的
可行性研究报告是为“图书管理系统”开发的可能性、可行性、必要性提供论据,并导出系统的逻辑模型,探索出若干种可供选择的主要解法,为开发人员进行系统总体规划设计及具体实施开发工程提供必要的参考资料,在系统开发完成后期为系统的测试、验收提供帮助。
其编写过程由名字1、名字3、名字5、名字2、名字4合作完成,预期读者是从事“图书管理系统”开发的五个人。
6.1.3测试项
测试项名称
版本
修订级别
开始测试前逻辑或物理变换要求
用户登录模块
1.0
1.0
其余模块均已测试完毕
图书馆书籍查询模块
1.0
1.0
无
已借书籍查询模块
1.0
1.0
无
新增图书模块
1.0
1.0
无
删除图书模块
1.0
1.0
无
修改图书信息模块
1.0
1.0
无
借阅图书模块
1.0
1.0
无
归还图书模块
1.0
1.0
无
6.1.4被测试的特性
测试项名称
被测试的特性
用户登录模块
判断用户名,用户密码的正确性来验证用户的合法性。
根据用户的权限不同跳至管理员界面和借阅人界面。
图书馆书籍查询模块
根据用户输入的相应的图书信息在数据库中搜索,给出用户相应的图书信息。
已借书籍查询模块
此模块用于查询某用户已借的书籍。
如果是在管理员界面下则输入要查询用户的ID,如果在借阅人界面下则无需输入。
新增图书模块
用户需输入新书的详细信息,如果书的ID不与库中已有书籍ID相冲突,则系统将信息保存在数据库中后,新书登记成功。
否则输出失败原因。
删除图书模块
用户需输入要删除书的ID,如果书库中有ID为该ID的书,则系统将删除数据库中该书的相关信息,并显示删除书籍成功,否则提示失败原因。
修改图书信息模块
用户需输入书的ID和要修改的信息,如果书库中有ID为该ID的书,则系统将更新数据库中与该书相关的信息,并显示信息修改成功,否则输出失败原因。
借阅图书模块
根据借阅人ID是否合法,借阅人是否满足借阅条件(已借书籍小于5本且没有书超期不还(30天)),书的ID是否合法,书是否在库中来决定是否允许借阅。
如果允许,则修改数据库中的相应数据并输出借阅成功的消息。
否则输出借阅失败的原因。
归还图书模块
根据书的ID是否合法,书是否在库中来决定是否允许归还。
如果允许,则修改数据库中的相应数据并输出归还成功的消息。
否则输出归还失败的原因。
6.1.5不被测试的特性
工程中各模块使用的所有由微软提供的模块,如编辑框控件、按钮控件,所表现出来的特性。
不测试的原因是这些模块在微软提供给用户前已经过测试,其可靠性已有保证,无需再度测试。
6.1.6方法
本测试使用自底向上的测试方法。
测试流程如下图所示。
6.1.7项通过准则
如下表所示,每个模块在规定的输入下能得到正确的输出。
测试项名称
输入
输出
用户登录模块
用户名、密码
管理员或借阅人界面
图书馆书籍查询模块
书的ID,书名,作者,出版社,是否在库中
符合要求的相关图书信息
已借书籍查询模块
用户名/无
该用户已借的书籍
新增图书模块
书的ID,书名,作者,出版社,是否在库中
添加成功消息/失败原因
删除图书模块
书的ID
删除成功消息/失败原因
修改图书信息模块
书的ID,书名,作者,出版社,是否在库中
修改成功消息/失败原因
借阅图书模块
借阅人ID,书的ID
借阅成功消息/借阅失败的原因
归还图书模块
书籍ID
归还成功消息或归还失败原因
6.1.8暂停标准和再启动要求
暂停标准:
某模块在规定输入下未得到正确的输出。
再启动要求:
导致错误输出的错误被找到并改正。
6.1.9应提供的测试文件
项目总体设计与详细设计,全部工程文件(含源代码文件,应用程序文件等)。
测试任务
尽可能的排除系统错误并提供系统可靠性预测。
环境要求
MicrosoftWindowsvista系统或MicrosoftWindowsXP系统,VisualStudio2008编译、连接、调试。
6.2测试日志
6.2.1图书馆书籍查询模块测试日志
测试内容
测试方法
事件
时间
记录人
GetData()单元
代码审查
通过
2009/12/5
名字4
SearchConditon()单元,且stock==0
白盒测试
通过
2009/12/5
名字4
SearchConditon()单元,且stock==1
白盒测试
通过
2009/12/5
名字4
SearchConditon()单元,且stock==2
白盒测试
通过
2009/12/5
名字4
SearchNow()单元
代码审查
通过
2009/12/5
名字4
模块测试,
输入:
无
正确输出:
书库中所有书籍
黑盒测试
输出书库中所有书籍通过
2009/12/6
名字4
模块测试
输入:
ID=1
正确输出:
ID为1的书的信息
黑盒测试
输出ID为1的书的信息,通过
2009/12/6
名字4
模块测试,
输入:
ID=100
正确输出:
没有符合要求的图书
黑盒测试
输出:
没有符合要求的图书,通过
2009/12/6
名字4
模块测试,
输入:
作者名=金庸
正确输出:
书库中的所有作者为金庸的书籍
黑盒测试
输出书库中的所有作者为金庸的书籍,通过
2009/12/6
名字4
模块测试,
输入:
作者名=梁羽生
正确输出:
没有符合要求的图书
黑盒测试
输出:
没有符合要求的图书,通过
2009/12/6
名字4
模块测试,
输入:
是否在库中=是
正确输出:
书库中的所有在库的书
黑盒测试
输出书库中的所有在库的书,通过
2009/12/6
名字4
模块测试,
输入:
是否在库中=否
正确输出:
书库中的所有不在库的书
黑盒测试
输出书库中的所有不在库的书,通过
2009/12/6
名字4
模块测试,
输入:
出版社=人民文学出版社
正确输出:
书库中的所有出版社为人民文学出版社的书
黑盒测试
输出书库中的所有出版社为人民文学出版社的书,通过
2009/12/6
名字4
模块测试,
输入:
出版社=人民出版社
正确输出:
无输出
黑盒测试
无输出,通过
2009/12/6
名字4
6.2.2已借书籍查询模块测试日志
测试内容