第4章 系统设计
4.1系统结构设计
系统设计主要是管理员登录后对整个系统相关操作进行处理,可进行管理员的添加和删除,图书管理,用户管理等操作。
系统的功能结构图如下图所示。
图4-1系统功能结构图
4.2功能模块设计
系统登录:系统登录是管理员访问系统的路口,设计了系统登录界面,包括管理员名、密码和验证码,然后对登录进来的管理员判断身份信息,判断是管理员管理员还是普通用户。
管理员管理:管理员可以管理系统的其他普通用户的账号,包括录入新管理员,删除现有的普通用户,修改现有的普通用户的信息,并可以通过管理员名和姓名等关键字搜索普通用户,打印管理员列表页面,导出管理员列表至excel中。
修改密码:系统所有管理员(管理员和普通用户)应该都要能修改自己的登录密码,修改后需要重新登录。
个人资料管理:由普通用户使用,普通用户登录系统后,可以修改个人原始信息,如修改电话号码、邮箱等,管理员的管理员名是无法修改的。
登录情况管理:系统每个管理员应该都能查看个人的历史登录情况,如登录IP、登录时间、登录地址等,防止管理员账号被盗,加强管理员账号安全。
操作日志管理:系统每个管理员应该都能查看个人的历史操作日志,如管理员添加了某条数据,历史操作日志需要展示操作人,操作描述,操作时间等信息。防止系统被黑客攻击,加强系统的安全性。
图书管理:管理员发布图书后,普通用户便可以查询到该图书,管理员选择某个图书,查询图书,管理员审核添加,或删除图书。
借书管理:管理员发布借书后,普通用户便可以查询到该借书,管理员选择某个借书,查询借书,管理员审核添加,或删除借书。
违章缴款管理:系统违章缴款发布违章缴款后,普通违章缴款便可以查询到该违章缴款,管理员选择某个违章缴款,查询违章缴款,管理员审核添加,或删除违章缴款。
续借管理:用户在线发布续借信息,管理员通过系统管理续借并可管理。
4.3数据库设计
4.3.1 E-R图设计
管理员实体包括管理员名称、密码和权限三个属性
管理员体ER图如下图所示。
图4-4管理员ER图
用户ER图如下图所示。
图4-5用户ER图
图书ER图如下图所示。
图4-6图书ER图
借书ER图如下图所示。
图4-7借书ER图
根据系统各个实体的关系,得出系统的总体ER图。
系统总体ER图如下图所示。
图4-7系统总体ER图
4.3.2表设计
根据E-R模型,系统建立了以下逻辑数据结构,下面是各数据表的详细在服务器上建立数据库,其中包括以下表:
管理员用户表 |
序号 |
字段名称 |
字段类型 |
大小 |
允许为空 |
最大长度 |
备注 |
1、 |
ID |
int |
4 |
否 |
4 |
主键ID |
2、 |
username |
varchar |
20 |
否 |
50 |
用户名 |
3、 |
pwd |
varchar |
20 |
否 |
50 |
密码 |
4、 |
cx |
varchar |
20 |
否 |
50 |
权限 |
5、 |
addtime |
datetime |
8 |
否 |
8 |
添加时间 |
新闻公告表 |
序号 |
字段名称 |
字段类型 |
大小 |
允许为空 |
最大长度 |
备注 |
1、 |
ID |
int |
4 |
否 |
4 |
主键ID |
2、 |
biaoti |
varchar |
50 |
否 |
300 |
标题 |
3、 |
leibie |
varchar |
20 |
否 |
50 |
类别 |
4、 |
neirong |
text |
8 |
否 |
8 |
内容 |
5、 |
tianjiaren |
varchar |
20 |
否 |
50 |
添加人 |
6、 |
shouyetupian |
varchar |
20 |
否 |
50 |
图片 |
7、 |
dianjilv |
int |
4 |
否 |
4 |
点击率 |
8、 |
addtime |
datetime |
8 |
否 |
8 |
添加时间 |
系统简介 |
序号 |
字段名称 |
字段类型 |
大小 |
允许为空 |
最大长度 |
备注 |
1、 |
ID |
int |
4 |
否 |
4 |
主键ID |
2、 |
leibie |
varchar |
50 |
否 |
300 |
类别 |
3、 |
content |
text |
8 |
是 |
8 |
内容 |
留言板 |
序号 |
字段名称 |
字段类型 |
大小 |
允许为空 |
最大长度 |
备注 |
1、 |
ID |
int |
4 |
否 |
4 |
主键ID |
2、 |
cheng |
varchar |
20 |
否 |
50 |
昵称 |
3、 |
xingbie |
varchar |
8 |
是 |
20 |
头像 |
4、 |
|
varchar |
8 |
是 |
20 |
|
5、 |
youxiang |
varchar |
8 |
是 |
20 |
邮箱 |
6、 |
dianhua |
varchar |
8 |
是 |
20 |
电话 |
7、 |
neirong |
varchar |
50 |
是 |
500 |
留言内容 |
8、 |
addtime |
datetime |
8 |
否 |
8 |
添加时间 |
9、 |
huifneirong |
varchar |
50 |
是 |
500 |
回复内容 |
评论表 |
序号 |
字段名称 |
字段类型 |
大小 |
允许为空 |
最大长度 |
备注 |
1、 |
ID |
int |
4 |
否 |
4 |
主键ID |
2、 |
pinglunneirong |
varchar |
20 |
否 |
50 |
评论内容 |
3、 |
pinglunren |
varchar |
8 |
是 |
20 |
评论人 |
4、 |
huifu |
varchar |
20 |
是 |
50 |
回复 |
5、 |
addtime |
datetime |
8 |
否 |
8 |
添加时间 |
注册用户表 |
序号 |
字段名称 |
字段类型 |
大小 |
允许为空 |
最大长度 |
备注 |
1、 |
ID |
int |
4 |
否 |
4 |
主键ID |
2、 |
yonghuming |
varchar |
20 |
否 |
50 |
用户名 |
3、 |
mima |
varchar |
8 |
是 |
20 |
密码 |
4、 |
xingming |
varchar |
20 |
是 |
50 |
姓名 |
5、 |
xingbie |
varchar |
20 |
是 |
50 |
性别 |
6、 |
chushengnianyue |
varchar |
20 |
是 |
50 |
出生年月 |
7、 |
|
varchar |
20 |
是 |
50 |
|
8、 |
youxiang |
varchar |
20 |
是 |
50 |
邮箱 |
9、 |
dianhua |
varchar |
20 |
是 |
50 |
电话 |
10、 |
shenfenzheng |
varchar |
20 |
是 |
50 |
身份证 |
11、 |
touxiang |
varchar |
20 |
是 |
50 |
头像 |
12、 |
dizhi |
varchar |
20 |
是 |
50 |
地址 |
13、 |
beizhu |
varchar |
20 |
是 |
50 |
备注 |
14、 |
addtime |
datetime |
8 |
否 |
8 |
添加时间 |
友情连接 |
序号 |
字段名称 |
字段类型 |
大小 |
允许为空 |
最大长度 |
备注 |
1、 |
ID |
int |
4 |
否 |
4 |
主键ID |
2、 |
wangzhanmingcheng |
varchar |
20 |
否 |
50 |
网站名称 |
3、 |
wangzhi |
varchar |
8 |
是 |
20 |
网址 |
4、 |
logo |
varchar |
20 |
是 |
50 |
LOGO |
5、 |
addtime |
datetime |
8 |
否 |
8 |
添加时间 |
图书信息 |
序号 |
字段名称 |
字段类型 |
大小 |
允许为空 |
最大长度 |
备注 |
1、 |
ID |
int |
4 |
否 |
8 |
主键ID |
2、 |
tushubianhao |
varchar |
50 |
是 |
50 |
图书编号 |
3、 |
tushumingcheng |
varchar |
50 |
是 |
50 |
图书名称 |
4、 |
leibie |
varchar |
50 |
是 |
50 |
类别 |
5、 |
zuozhe |
varchar |
50 |
是 |
50 |
作者 |
6、 |
chubanshe |
varchar |
50 |
是 |
50 |
出版社 |
7、 |
kucun |
float |
10 |
是 |
10 |
库存 |
8、 |
jieyuecishu |
float |
10 |
是 |
10 |
借阅次数 |
9、 |
tupian |
varchar |
50 |
是 |
50 |
图片 |
10、 |
tushujianjie |
text |
8 |
是 |
8 |
图书简介 |
11、 |
addtime |
datetime |
8 |
否 |
8 |
添加时间 |
借书记录 |
序号 |
字段名称 |
字段类型 |
大小 |
允许为空 |
最大长度 |
备注 |
1、 |
ID |
int |
4 |
否 |
8 |
主键ID |
2、 |
jieshudanhao |
varchar |
50 |
是 |
50 |
借书单号 |
3、 |
tushubianhao |
varchar |
50 |
是 |
50 |
图书编号 |
4、 |
tushumingcheng |
varchar |
50 |
是 |
50 |
图书名称 |
5、 |
leibie |
varchar |
50 |
是 |
50 |
类别 |
6、 |
zuozhe |
varchar |
50 |
是 |
50 |
作者 |
7、 |
chubanshe |
varchar |
50 |
是 |
50 |
出版社 |
8、 |
kucun |
varchar |
50 |
是 |
50 |
库存 |
9、 |
jieshuriqi |
datetime |
8 |
是 |
8 |
借书日期 |
10、 |
jieshuren |
varchar |
50 |
是 |
50 |
借书人 |
11、 |
beizhu |
text |
8 |
是 |
8 |
备注 |
12、 |
addtime |
datetime |
8 |
否 |
8 |
添加时间 |
续借记录 |
序号 |
字段名称 |
字段类型 |
大小 |
允许为空 |
最大长度 |
备注 |
1、 |
ID |
int |
4 |
否 |
8 |
主键ID |
2、 |
jieshudanhao |
varchar |
50 |
是 |
50 |
借书单号 |
3、 |
tushubianhao |
varchar |
50 |
是 |
50 |
图书编号 |
4、 |
tushumingcheng |
varchar |
50 |
是 |
50 |
图书名称 |
5、 |
leibie |
varchar |
50 |
是 |
50 |
类别 |
6、 |
zuozhe |
varchar |
50 |
是 |
50 |
作者 |
7、 |
chubanshe |
varchar |
50 |
是 |
50 |
出版社 |
8、 |
kucun |
varchar |
50 |
是 |
50 |
库存 |
9、 |
jieshuriqi |
varchar |
50 |
是 |
50 |
借书日期 |
10、 |
jieshuren |
varchar |
50 |
是 |
50 |
借书人 |
11、 |
xujietianshu |
float |
10 |
是 |
10 |
续借天数 |
12、 |
beizhu |
text |
8 |
是 |
8 |
备注 |
13、 |
addtime |
datetime |
8 |
否 |
8 |
添加时间 |
违章缴款 |
序号 |
字段名称 |
字段类型 |
大小 |
允许为空 |
最大长度 |
备注 |
1、 |
ID |
int |
4 |
否 |
8 |
主键ID |
2、 |
liushuihao |
varchar |
50 |
是 |
50 |
流水号 |
3、 |
jieshudanhao |
varchar |
50 |
是 |
50 |
借书单号 |
4、 |
tushubianhao |
varchar |
50 |
是 |
50 |
图书编号 |
5、 |
tushumingcheng |
varchar |
50 |
是 |
50 |
图书名称 |
6、 |
leibie |
varchar |
50 |
是 |
50 |
类别 |
7、 |
jieshuriqi |
varchar |
50 |
是 |
50 |
借书日期 |
8、 |
jieshuren |
varchar |
50 |
是 |
50 |
借书人 |
9、 |
fakuanleixing |
varchar |
50 |
是 |
50 |
罚款类型 |
10、 |
fakuanxiangqing |
text |
8 |
是 |
8 |
罚款详情 |
11、 |
fakuanjine |
float |
10 |
是 |
10 |
罚款金额 |
12、 |
shifoujiaokuan |
varchar |
50 |
是 |
50 |
是否缴款 |
13、 |
beizhu |
text |
8 |
是 |
8 |
备注 |
14、 |
addtime |
datetime |
8 |
否 |
8 |
添加时间 |
第5章 系统实现
5.1主页面的实现
首页是网站的入口,主要包含了:新闻信息、图书信息等导航功能。首页页面,如下图所示。
图5-1主页界面
5.2注册模块的实现
用户有独立的注册界面,用户填写好注册信息后,会有个一审核的过程,经过管理员审核注册成功,并将注册的信息加入用户表中。
图5-2用户注册界面
5.3登录模块的实现
系统登录模块可分为前台登录模块和后台登录模块,为确保系统安全性,系统操作员只有在登录界面输入正确的管理员名、密码、权限以及验证码,单击“登录”按钮后才能够进入本系统的主界面。
前台登录入口如下所示。
图5-3前台登录界面
后台登录入口如下所示。
图5-3后台登录界面
5.4图书管理模块的实现
管理员添加图书是在点击添加按钮的前提下操作的,当页面跳转至添加页面,添加成功后,管理员在菜单栏进行图书管理,通过查询数据库的图书表列出所有图书,每条图书对应一个删除按钮和修改按钮,当管理员点击删除按钮,直接在数据库删除图书,并重定向当前页面,当管理员选择点击修改,则进入修改页面,进行图书的修改。
图书添加页面设计效果如下图所示。
图5-5 图书添加界面
图书管理页面效果如下图所示。
图5-6 图书管理界面
第6章 系统测试
6.1测试目的
软件测试的目的主要是发现软件缺陷和漏洞,其次,软件测试能够识别图书风险。为开发人员和程序经理提供软件测试的反馈结果,为风险评估提供必要的信息。再者,软件测试确保在上线日前达到上线标准。包括持续追踪图书进度和严格把控各个开发阶段的产品质量。
基于JSP的图书馆管理,主要测试管理员登录模块、用户管理模块、图书管理模块、和退出模块系统等功能是否实现。
6.2测试概述
1.测试的原则
(1)系统测试应该避免测试自己的程序,以免发现不了细小的问题。
(2)系统测试用例应有两部分组成,分别为输入测试和输出测试。
(3)系统测试数据应当引用不合理的数据进行测试,选取不同情况的进行逐一测试。
(4)不仅要检查程序是否达到预期的效果,还要检查程序是否执行了规定以外的操作。
(5)对出现错误多的模块进行集中测试。
(6)已发现错误的模块修改后,应及时进行重新测试。
2.测试的方法
测试方法主要有人工测试和机器测试。
(1)人工测试
人工测试又称代码复审,包括个人复查、走查、会审三种方法[7]。
(2)机器测试
机器测试主要是由黑盒测试和白盒测试两种方法。
在最后的测试阶段,系统采用后黑盒测试和白盒测试想结合的方法。黑盒测试主要用于对系统的输入和输出特性进行测试,检测功能方面存在的错误与可能存在的缺陷。白盒测试主要用于对软件的过程及逻辑路径进行测试,发现性能方面的错误。具体采用的测试方法为系统测试和单元测试。
6.3单元测试
6.3.1登录测试
登录模块需要测试的功能有:输入登录名和密码,点击“登录”按钮是否正常进入系统首页。
登录测试用例如下表所示。
表6-1登录测试用例
测试模块 |
管理员登录模块测试 |
测试目的 |
测试当登陆信息输入不符合要求时,系统是否能进行相应处理并给出提示。 |
测试方法 |
黑盒测试 |
测试数据 |
1不输入管理员名和密码,直接点击登陆。 2输入未注册过的管理员名。例如:abcdefg 3输入正确管理员名,错误密码。例如:管理员名abcdefg、密码 000 4输入正确管理员名,正确匹配密码。例如:管理员名abcdefg、密码 111 |
预期结果 |
1 界面不跳转,弹出对话框,提示管理员输入必填项。 2界面不跳转,弹出对话框,提示管理员当前管理员名尚未注册。 3界面不跳转,弹出对话框,提示管理员密码错误。 4界面实现跳转,登陆功能正常进行。 |
实际结果 |
与预想一致。 |
结论 |
登陆模块实现了基本的异常输入应对。 |
6.3.2图书管理测试
管理员可以添加修改图书,在填写图书后,点击添加便能成功的添加图书。
图书管理测试用例如下表所示。
表6-2图书管理测试用例
测试模块 |
图书管理模块测试 |
测试目的 |
测试当图书输入不符合要求时,系统是否能进行相应处理并给出提示。 |
测试方法 |
黑盒测试 |
测试数据 |
1管理员登录后,未填写图书编号选项,点击添加图书 2管理员登录后,未填写图书名称选项,点击添加图书 3管理员登录后,输入图书必填项,点击添加图书, |
预期结果 |
1图书添加失败,系统提示请输入图书编号 2图书添加失败,系统提示请输入图书名称 3图书添加成功,系统提示添加图书成功 |
实际结果 |
与预想一致。 |
结论 |
图书管理模块实现了基本的异常输入应对。 |
6.3.3用户管理测试
管理员可以添加修改用户,在填写用户后,点击添加便能成功的添加用户。
用户管理测试用例如下表所示。
表6-3用户管理测试用例
测试模块 |
用户管理模块测试 |
测试目的 |
测试当用户输入不符合要求时,系统是否能进行相应处理并给出提示。 |
测试方法 |
黑盒测试 |
测试数据 |
1管理员登录后,未填写用户号选项,点击添加用户 2管理员登录后,输入用户必填项,点击添加用户, |
预期结果 |
1用户添加失败,系统提示请输入必填项 2用户添加成功,系统提示提交成功 |
实际结果 |
与预想一致。 |
结论 |
用户管理模块实现了基本的异常输入应对。 |
6.4测试结果
测试结果包括界面及功能测试和代码测试两部分,本系统对每个功能点做了详细的测试,测试结果正常。
测试结果表如下表所示。
表6-5系统功能测试结果表
序号 |
测试模块 |
功能点 |
质量保证标准 |
问题属性 |
测试结果 |
F1 |
系统用户管理模块 |
修改密码 |
正确性 |
故障 |
正常 |
权限设置 |
正确性 |
故障 |
正常 |
||
角色管理 |
正确性 |
缺陷 |
正常 |
||
用户信息添加 |
正确性 |
故障 |
正常 |
||
用户信息修改 |
正确性 |
故障 |
正常 |
||
用户信息查询 |
正确性 |
故障 |
正常 |
||
用户信息删除 |
正确性 |
故障 |
正常 |
||
退出系统 |
正确性 |
故障 |
正常 |
||
F2 |
功能管理模块 |
图书添加 |
正确性 |
故障 |
正常 |
图书修改 |
正确性 |
故障 |
正常 |
||
图书删除 |
正确性 |
故障 |
正常 |
||
借书添加 |
正确性 |
故障 |
正常 |
||
借书修改 |
正确性 |
故障 |
正常 |
||
借书删除 |
正确性 |
故障 |
正常 |
||
用户添加 |
正确性 |
故障 |
正常 |
||
用户修改 |
正确性 |
故障 |
正常 |
||
用户删除 |
正确性 |
故障 |
正常 |
第7章 总结
经过几个月的努力和坚持,图书馆管理系统终于完成了,那个时候专业课还没有学完,所以对开发项目来说困难重重,当时只好分模块做。先去深入到用户中了解他们的需求,做好需求分析文档。像技术篇的,一方面通过自己所学习的专业课中,去学习核心知识,并记录到自己的文档中,另一方面,再加上网络授课以及网络资料这几部分获得知识。这是前期的准备,一整套下来,写到这里,感觉把大学所有的专业房产信息又学习了一遍。
整个过程遇到了很多的挫折,但是宝剑锋从磨砺出,正是挫折让我们不断的进步。但是整个过程的收获还是非常丰富的。在精神上,让我明白了一颗永不放弃,积极上进的内心是非常重要的,越努力越幸运。在专业知识上,让我明白掌握牢固专业知识,加上发散思维,是让人快速进步的方法。在生活中,学会与人沟通,有问题尽可能的沟通解决,不要自己钻牛角尖。
以书会友平台,仅仅是一个很小的子系统,不像大型企业所开发的应用软件那样完美。但是这仅仅是我人生路上的一小步。而毕业论文必须用心去写,而不是抱着投机取巧的心态蒙混过关,这个过程是让人成长的。感谢这个过程,感谢这个过程中积极帮助我,给与我帮助的人。
此外,以后我依旧要保持一颗积极上进的心,求知若渴,虚心若愚,不断进步,不断学习。