1图书系统示例.docx
- 文档编号:24581076
- 上传时间:2023-05-29
- 格式:DOCX
- 页数:20
- 大小:738.82KB
1图书系统示例.docx
《1图书系统示例.docx》由会员分享,可在线阅读,更多相关《1图书系统示例.docx(20页珍藏版)》请在冰豆网上搜索。
1图书系统示例
图书管理系统
1、需求分析
1.1系统任务概述
这里我们将图书管理系统的应用对象定位在中小型图书馆。
图书馆的主要功能是为注册用户提供图书借阅,主要涉及对图书的管理,借阅者管理,以及图书借阅信息的管理。
其中对图书的管理主要是指:
对馆藏图书的增删改查;对借阅者信息的增删改查,还有挂失;对借阅者借阅信息的管理。
除此之外,只有合法用户才能使用该系统,要实行用户密码登陆。
1.2功能需求
图书管理系统完整功能需求如下:
1)借阅者管理
每个通过审查的人可以办理一张借阅卡,拥有用户名、密码,成为注册用户。
此卡包含所有个人信息,以后所有图书借阅活动凭此卡进行,直至该卡被注销或删除。
因此,对借阅者的管理包括相关信息的添加、修改、删除、检索。
2)图书信息管理
●新书入库:
每本新到图书需将详细信息添加入库,方可对外借阅。
●图书检索:
馆藏图书丰富,须提供图书快速查询检索功能。
●图书信息修改:
图书基本信息入库时已基本确定,但是一些辅助信息,如存放位置,是否接触等会有变化,须提供修改功能。
●图书信息删除:
对于太过破旧被淘汰或者丢失的书籍,要从系统信息中删除。
3)图书借阅信息管理
系统核心功能之一。
图书管理系统最主要的功能是对图书的借出和归还。
主要涉及被借阅的图书和借阅者,即图书基本信息,借阅者部分信息,借出归还日期等。
具体来说,对于借书,首先获得借阅者的信息,看其是否有权利借书,其次检查相关书籍,看其是否被可以被外借;对于还书,同样也需要借阅者信息和图书信息才能还书,同时还要计算本次借阅是否超期,超期要计算出罚款金额,借阅者交了足额罚款才能还书成功。
此外,对于历史借还记录要提供查询功能;同时因为存储空间限制,不能永久保存历史记录,还需提供删除记录功能。
4)用户登录
该系统用户主要有系统管理员和普通注册用户<即持有借阅卡的借阅者)两种。
系统管理员拥有所有功能权限,普通注册用户只能管理个人信息和检索需要图书。
系统要对不同的用户给予不用权限,每个合法用户凭登录名和密码登陆此系统。
5)系统基本信息管理
●对借阅者类别的设置:
对于借阅者设置不同类别,不同类别的借阅者设置不同的借阅图书数量上限。
●对图书类别的设置:
不同类别图书的借阅期限不同,超期后的罚款金额也不同。
●对系统用户的管理:
本系统暂定两类用户,系统管理员和普通注册用户,不同用户拥有不同的使用权限。
1.3数据流图
借还书的过程要和时间挂钩,所以还要有一个数据源点为“系统时钟”,因此得到图书管理系统的基本数据流图1-1。
图1-1基本数据流图
通过对需求的深入分析,对“图书管理系统”加工进一步细化,得到功能级数据流图1-2。
图1-2功能级数据流图
通过对图1-2的分析,发现上述的三个加工在工作过程中要涉及一些数据存储。
因此得到改进后的功能级数据流图,如图1-3所示。
图1-3改进后的功能级数据流图
再仔细分析图1-3的每个加工是否还能细化,或者还有没有可以补充的加工。
我们发现系统中还需要一个加工来专门负责“基本信息的维护”,这样得到进一步的数据流图,如图1-4所示。
那么,对于图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]单位:
天
图书超期每天罚款金额=[0.1|0.2]单位:
元
系统用户=用户名+密码+是否管理员
用户名=1{字母|数字}16
密码=1{字母|数字}8
是否管理员=[是管理员|不是管理员]
是管理员=1
不是管理员=0
1.5ER图
根据上一小节的数据字典,得到系统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>
是
否
能借书的数量
int
否
否
表1-5图书类别表
字段名称
数据类型
是否关键字
是否可以为空
图书类别
Varchar(30>
是
否
可借天数
int
否
否
图书超期每天罚款金额
money
否
是
表1-6系统用户表
字段名称
数据类型
是否关键字
是否可以为空
用户名
Varchar(20>
是
否
密码
Varchar(20>
是
否
是否是管理员
boolean
否
是
1.6性能要求
总体来说,系统在性能上没有太多的特殊要求,只要进行图书查询时没有明显的延时就行了,希望查询的响应时间不超过3秒,其他一些要求如下:
●系统最小寿命:
在无重大改动的情况下,正常运行5年以上。
●设备要求:
计算机稳定性良好,整套系统经济实惠。
●在使用上:
要求系统易理解,易学习,易操作。
●在安全性上:
要求系统安全可靠,容错,易恢复。
●在数据集中上:
要求用统一的数据库实现数据的完整性和实时性。
●在可维护性上:
要求系统可修改,可考试,可扩充,可移植。
2、系统设计
2.1总体设计
通过对需求分析阶段文档做更深入的分析,我们进一步复查和细化数据流图,得到改进后的数据流图,如图2-1所示。
图2-1细化的系统数据流图
可以看出图2-1的数据流图并没有一个很明显的事务中心,因此可以把它看成一个变换流,通过使用一个面向数据流的设计方法得到系统的软件结构图,如图2-2所示。
图2-2图书管理系统的软件结构图
该图是未经精化的软件结构图,通过对用户需求的进一步分析,结合软件设计的高内聚和低耦合标准,得到精化后的软件结构图,如图2-3所示。
图2-3精化后的系统结构图
2.2详细设计
根据前面总体设计的软件结构图,下面我们依次具体设计每个模块实现的方法和相关的交互界面。
2.2.1用户登陆模块
因为本系统有系统管理员和注册用户,不同的用户登陆后拥有不同的权限,所以在系统开始时,需要有登陆模块来实现此功能。
该模块可以给任何人使用。
模块的输入:
用户名、密码。
模块的处理:
系统根据用户输入的用户名和密码到后台数据库相应的记录中查找,如果没有则给出相应的提示不予进入,如果有则根据其不同身份进入不同处理界面。
模块的输出:
对于非法用户给出相应提示,对于合法用户,进入相应处理界面。
用户登陆模块的PAD图如图2-4所示。
图图2-4登陆模块的PAD图
该模块的交互界面设计,如图2-5所示。
图2-5用户登陆模块的交互界面
3、系统编码
4、软件考试
4.1概述
4.1.1图书管理系统概述
本系统的主要功能包括入库图书的管理、图书借阅卡的管理、图书借还的管理以及系统使用者的管理。
4.1.2系统的考试计划
<1)需求分析阶段列出的系统的每个功能都要求是“可考试”的。
<2)设计阶段每个具体功能的实现都要考虑到其考试用例的设计。
<3)编码实现阶段对每个模块做单元考试,然后做集成考试。
<4)最后和用户一起做验收考试。
4.1.3考试人员安排
系统的需求工程师扮演考试负责人的角色,负责对考试的总体把握;每个模块的编码者负责自己模块的单元考试;另外一名专门的软件考试工程师负责系统的集成考试并配合考试负责人的工作。
4.2考试方法和步骤
4.2.1系统的考试方法
本系统各个模块的功能集中在对数据库的处理以及对用户交互界面的设计,系统内部并没有设计复杂的算法和数据结构,因此考试方法采用侧重考试功能的黑盒考试为主,对个别重要模块可以额辅以白盒考试。
4.2.2系统考试步骤
先进行单元考试,再进行集成考试,遵循自底向上的策略。
对于每个考试用例都要考虑合法和非法的考试情况。
4.3考试过程
4.3.1系统的考试内容
考试1:
系统登录考试
考试2:
借阅者管理考试
考试2.1:
添加借阅者考试
考试2.2:
修改借阅者考试
考试2.3:
删除借阅者考试
考试2.4:
查询借阅者考试
考试3:
图书管理考试
考试3.1:
添加图书考试
考试3.2:
修改图书考试
考试3.3:
删除图书考试
考试3.4:
查询图书考试
考试4:
借阅管理考试
对4个子模块分别进行单元考试,然后再进行集成考试
考试4.1:
借书考试
首先需要考试输入正确的借阅卡号,能否正确显示该借阅卡的信息,以及当输入错误的借阅卡号时,能否给出相应提示;接着需要考试输入正确的图书号,能否正确显示该图书的信息,,以及当输入错误的图书号时,能否给出相应提示;最后需要考试当给出正确的借阅卡号和图书号时,能否进行正确的借书处理。
考试4.2:
还书考试
考试4.3:
删除借还信息考试
考试4.4:
查询借还信息考试
考试5:
基本信息管理考试
4.3.2系统的单元考试
本系统的考试模块较多,很多模块的考试内容比较相似,对于单元考试,仅以系统借书管理为例,详细的说明如何设计考试用例。
对于每个单元考试,采用的方法是黑盒考试。
具体说是采取以等价类划分为主,辅以边界值分析法,力图发现系统的每个错误。
考试4.1:
借书考试用例的设计
(1)等价类的划分
有效的输入等价类有:
A.有效的借阅卡号且未被挂失的借阅卡号,而且借书数目没有超过该卡所能借的最大数目
B.有效的图书号且该图书未被借出
有效的输出等价类有:
ZZ.成功的借阅
无效的输入等价类有:
b无效的借阅卡号
c有效的借阅卡号但被挂失的借阅卡号
d效的借阅卡号且未被挂失的借阅卡号,但借书数目超过该卡所能借的最大数目
e无效的图书号
f有效的图书号但该图书已被借出
无效的输出等价类有:
z提示借阅卡无效
y提示借阅卡被挂失
x提示借书卡借书数额已满
w提示图书号无效
v提示该图书已被借出
(2)设计覆盖等价类的考试用例
表4-2设计的考试用例
有效性
输入
输出
覆盖的等价类
有效
A,B
Z
A,B,Z
无效
b
z
b,z
无效
c
y
c,y
无效
d
x
d,x
无效
e
w
e,w
无效
f
v
f,v
4.3.3系统的集成考试
通过单元考试后,进行集成考试,一般采用自底向上集成的方法,下面以借阅管理模块为例阐述集成考试。
考试4:
借阅管理模块的集成考试
在考试4.1,4.2,4.3,4.4四个子模块的单元考试完成之后,可以进行“借阅管理”模块的集成考试。
这里主要考试的是各个模块之间的接口,以及涉及的一些全局变量。
具体设计步骤如下:
<1)利用模块4.1完成某个借阅卡的一次借书,然后调用模块4.4看看这次借书行为能否查询到,如果没有查询到则发现错误,否则进入下一步。
<2)接着调用模块4.2进行还书,如果可以进入下一步,否则发现错误。
<3)调用4.4查询上述还书行为,如果查询到进去下一步,否则发现错误。
<4)调用4.3删除上述借还记录,看能否给出正确提示,如果给出则进入下一步,否则发现错误。
<5)修改借阅卡的相关字段,以满足被删除的条件,再次调用4.3对借还记录进行删除,如果可以删除,则此次考试成功,否则发现错误。
4.3.4系统考试与回归考试
完成各个模块的考试后要进行系统考试。
即把系统的所有模块集成在一起进行全面考试,还要考虑软件兼容和硬件的配置问题。
在系统考试的任何一个阶段,只要发现了错误,就要尽可能及时改正。
更正后还要检验已经发现的缺陷有没有被正确的修改和修改过程中有没有引发新的缺陷,即回归考试。
另外,每当一个新模块被当做集成考试的一部分加进来的时候,软件环境都会发生改变,这些改变有可能会使原本正常的功能产生错误,因此在集成考试策略的环境中要进行回归考试,就是对部分已通过考试的功能进行再次考试,以保证系统的新环境夏能正常工作。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 图书 系统 示例