图书管理系统示例
图书管理系统
1、需求分析
系统任务概述
这里我们将图书管理系统的应用对象定位在中小型图书馆。
图书馆的主要功能是为注册用户提供图书借阅,主要涉及对图书的管理,借阅者管理,以及图书借阅信息的管理。其中对图书的管理主要是指:对馆藏图书的增删改查;对借阅者信息的增删改查,还有挂失;对借阅者借阅信息的管理。除此之外,只有合法用户才能使用该系统,要实行用户密码登陆。
功能需求
图书管理系统完整功能需求如下:
1)借阅者管理
每个通过审查的人可以办理一张借阅卡,拥有用户名、密码,成为注册用户。此卡包含所有个人信息,以后所有图书借阅活动凭此卡进行,直至该卡被注销或删除。
因此,对借阅者的管理包括相关信息的添加、修改、删除、检索。
2)图书信息管理
●新书入库:每本新到图书需将详细信息添加入库,方可对外借阅。
●图书检索:馆藏图书丰富,须提供图书快速查询检索功能。
●图书信息修改:图书基本信息入库时已基本确定,但是一些辅助信息,如存放
位置,是否接触等会有变化,须提供修改功能。
●图书信息删除:对于太过破旧被淘汰或者丢失的书籍,要从系统信息中删除。
3)图书借阅信息管理
系统核心功能之一。图书管理系统最主要的功能是对图书的借出和归还。主要涉及被借阅的图书和借阅者,即图书基本信息,借阅者部分信息,借出归还日期等。
具体来说,对于借书,首先获得借阅者的信息,看其是否有权利借书,其次检查相关书籍,看其是否被可以被外借;对于还书,同样也需要借阅者信息和图书信息才能还书,同时还要计算本次借阅是否超期,超期要计算出罚款金额,借阅者交了足额罚款才能还书成功。此外,对于历史借还记录要提供查询功能;同时由于存储空间限制,不能永久保存历史记录,还需提供删除记录功能。
4)用户登录
该系统用户主要有系统管理员和普通注册用户(即持有借阅卡的借阅者)两种。系统管理员拥有所有功能权限,普通注册用户只能管理个人信息和检索需要图书。系统要对不同的用户给予不用权限,每个合法用户凭登录名和密码登陆此系统。
5)系统基本信息管理
●对借阅者类别的设置:对于借阅者设置不同类别,不同类别的借阅者设置不同
的借阅图书数量上限。
●对图书类别的设置:不同类别图书的借阅期限不同,超期后的罚款金额也不同。
●对系统用户的管理:本系统暂定两类用户,系统管理员和普通注册用户,不同
用户拥有不同的使用权限。
数据流图
借还书的过程要和时间挂钩,所以还要有一个数据源点为“系统时钟”,因此得到图书管理系统的基本数据流图1-1。
图1-1 基本数据流图
通过对需求的深入分析,对“图书管理系统”加工进一步细化,得到功能级数据流图1-2。
图1-2 功能级数据流图
通过对图1-2的分析,发现上述的三个加工在工作过程中要涉及一些数据存储。因此得到改进后的功能级数据流图,如图1-3所示。
图1-3 改进后的功能级数据流图
再仔细分析图1-3的每个加工是否还能细化,或者还有没有可以补充的加工。我们发现系统中还需要一个加工来专门负责“基本信息的维护”,这样得到进一步的数据流图,如图1-4所示。
那么,对于图1-4是否还需要细化呢?比如“借阅者管理”还要先“添加”再“查询”等,这些都是一些比较细节的东西,不需要在需求分析里作过多关注。
图1-4 最终数据流图
数据字典
对于数据流图中的每个元素,都可以额通过数据字典加以描述,以保证数据定义的严格性,针对上述系统的数据字典如下:
借阅者管理=[添加借阅者|修改借阅者|删除借阅者|检索借阅者]
图书管理=[添加图书|修改图书|删除图书|检索图书]
借阅信息管理=[添加借阅信息|修改借阅信息|删除借阅信息|检索借阅信息]
管理个人信息=[检索个人信息|修改个人信息]
基本信息维护请求=[对借阅者类别信息的维护|对图书类别信息的维护|对登陆用户的维护]
对借阅者类别信息的维护=[对借阅者类别信息的添加|对借阅者类别信息的修改|对借阅者类别信息的删除|对借阅者类别信息的检索]
对图书类别信息的维护=[对图书类别信息的添加|对图书类别信息的修改|对图书类别信息的删除|对图书类别信息的检索]
对登录用户的维护=[对用户信息的添加|对用户信息的修改|对用户的删除|对用户信息的检索]
时间=年+月+日
借阅卡信息=借阅卡号+姓名+性别+身份证号+单位+家庭住址+联系电话+借阅者类别+办证日期+已借书数目+是否挂失
注册用户=借阅卡信息
注册用户=借阅者
借阅卡号=8{数字}8
性别=[男|女]
身份证号=18{数字}18
联系电话=(区号)+7{数字}7
区号=4{数字}4
借阅者类别=[一级读者|二级读者|三级读者]
描述:在本系统中一级读者可借10本,二级读者可借5本,三级读者可借3本办证日期=年+月+日
已借书数目=[0|1|2|3|4|5|6|7|8|9|10]
是否挂失=[挂失|没挂失]
挂失=1
没挂失=0
图书信息=图书号+书名+作者+出版社+出版日期+单价+图书类别+存放位置+入库日期+是否借出
图书=图书信息
图书号=7{数字}7+同一本书副本编号
同一本书副本编号=[0|1|2|3|4|5|6|7|8|9]
出版日期=年+月+日
图书类别=[一类图书|二类图书|三类图书|四类图书|五类图书|六类图书]
入库日期=年+月+日
是否借出=[借出|未借出]
借出=1
未借出=0
借阅信息=借阅卡号+姓名+图书号+书名+借出日期+实际归还日期+罚款金额
借出日期=年+月+日
实际归还日期=年+月+日
系统基本信息=[借阅者类别信息|图书类别信息|系统用户]
借阅者类别信息=借阅者类别+能借书的数量
借阅者类别=[一级读者|二级读者|三级读者]
能借书的数量=[1|2|3|4|5|6|7|8|9|10]单位:本
图书类别信息=图书类别+可借天数+图书超期每天罚款金额
图书类别=[一类图书|二类图书|三类图书|四类图书|五类图书|六类图书]
可借天数=[10|20|30|40|50|60|70]单位:天
图书超期每天罚款金额=[|]单位:元
系统用户=用户名+密码+是否管理员
用户名=1{字母|数字}16
密码=1{字母|数字}8
是否管理员=[是管理员|不是管理员]
是管理员=1
不是管理员=0
ER图
根据上一小节的数据字典,得到系统E-R图,如图1-5。
图1-5 图书管理系统的E-R图
对应图书管理系统有六张表,分别是:表1-1“借阅者表”,表1-2“图书表”,表1-3“借阅表”,表1-4“借阅者类别表”,表1-5“图书类别表”,表1-6“系统用户表”。
表1-1借阅者表
字段名称数据类型是否关键字是否可以为空
借阅卡号decimal 是否
姓名Varchar(20) 否否
性别Boolean 否否
身份证号Varchar(30) 否否
单位Varchar(30) 否是
家庭住址Varchar(30) 否是
联系电话Varchar(30) 否是
借阅者类别Varchar(30) 否否
办证日期datetime 否否
已借书数目int 否是
是否挂失boolean 否是
表1-2图书表
字段名称数据类型是否关键字是否可以为空图书号decimal 是否
书名Varchar(20) 否否
作者Varchar(20) 否否
出版社Varchar(20) 否否
出版日期datetime 否否
单价money 否否
图书类别否否
存放位置Varchar(30) 否是
入库日期datetime 否是
是否借出boolean 否否
表1-3借阅表
字段名称数据类型是否关键字是否可以为空借阅卡号decimal 是否
图书号decimal 是否
姓名Varchar(20) 否是
书名Varchar(20) 否是
借出日期datetime 否否
实际归还日期datetime 否否
罚款金额money 否是
表1-4借阅者类别表
字段名称数据类型是否关键字是否可以为空借阅者类型Varchar(30) 是否
图书类别Varchar(30) 是否
可借天数int 否否
图书超期每天罚款金额money 否是
用户名Varchar(20) 是否
密码Varchar(20) 是否
是否是管理员boolean 否是
性能要求
总体来说,系统在性能上没有太多的特殊要求,只要进行图书查询时没有明显的延时就行了,希望查询的响应时间不超过3秒,其他一些要求如下:
●系统最小寿命:在无重大改动的情况下,正常运行5年以上。
●设备要求:计算机稳定性良好,整套系统经济实惠。
●在使用上:要求系统易理解,易学习,易操作。
●在安全性上:要求系统安全可靠,容错,易恢复。
●在数据集中上:要求用统一的数据库实现数据的完整性和实时性。
●在可维护性上:要求系统可修改,可测试,可扩充,可移植。