基于j2ee的图书馆管理系统的设计与实现

更新时间:2024-07-07 15:05:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

目 录

内容摘要……………………………………………………………………………(2) 一、系统概述………………………………………………………………………(2) 二、系统需求分析…………………………………………………………………(2) 三、系统总体设计…………………………………………………………………(6) 四、详细设计………………………………………………………………………(7) 五、编码实现………………………………………………………………………(12) 六、测试分析报告…………………………………………………………………(12) 总结…………………………………………………………………………………(17) 参考文献……………………………………………………………………………(17)

1

基于j2ee的图书馆管理系统的设计与实现

史克龙 指导教师:王山军

内容摘要:随着信息管理技术日趋成熟,以及信息管理技术在个个领域的广泛应运,对与日趋庞大的图书馆管理,势必需要合理高效的管理技术。如今许多高校的图书馆管理系统还停留在以CS阶段,随着internet的广泛应用,以及以CS为结构的系统应用性、维护性上的繁杂性,导致以BS为结构的图书馆管理系统必定取代以CS为结构的图书馆管理系统。 关键词:管理系统 BS结构

一、 系统概述 1.1

系统开发背景和意义

图书管理是每个高校必须切实面对的工作,但如今许多高校的图书馆管理系统还停留在以

CS为结构的系统上。随着internet的应用日趋广泛,以及高校内、高校与高校间信息的交流日趋密切,以CS为结构的信息管理系统以不能满足需求,所以,高校图书馆管理系统必须通过更新换代,将BS为结构的系统改为以CS为结构的系统,这样会大大提高系统的维护性以及系统应用的广泛性。

由于图书这用特殊的物品,其表现在数据量非常庞大,所以对数据库的要求比较严格,由于oracle数据库其检索迅速、查找方便、可靠性高、保密性好,所以,选择oracle数据库为其存取数据。

随着java技术在internet上的广泛应用以及java安全性高、执行效率高的优点,同时,java可以在任意平台上应用,所以可以任意组合硬件和操作系统,既可以在windows下开发,部署在linux下,极大了节省了操作系统的费用以及硬件的费用。

1.2 开发环境

数据库:oracle 10g

开发语言:strutus2+hibernate+Spring+JQuery

开发工具:myeclipse 6.5 服务器: tomcat 5.5

二、 系统需求分析

2

2.1 任务概述

经过对兰州市各个高校图书馆的调查,了解到还有许多高校的图书馆管理系统还停留在以CS为结构的系统上。于此同时,将整个图书馆管理系统的业务流程抽象描述如下: 1.新书购进后,进行分类、同一编码和入库。 2.学生借阅图书后,记录相关信息。

3. 学生归还时,对比查看该书是否超期,超期后,按规定罚款。 根据以上调查分析,给出业务流程图,如图:

2.2 数据描述(数据流图+数据字典)

经过调查,我们了解了基本的业务程序,接下来给出系统的逻辑模型。构造系统的逻

辑模型的工具主要是数据流图和数据字典,下面给出图书馆管理系统的基本模型,如图:

根据基本模型,对其逐步细化,得到数据流图,如图:

3

根据系统流程图,通过数据字典对数据进一步描述: 图书:图书表结构 描述:记录图书的相关信息 定义:图书信息表 图书编号、图书名称、ISBN号、作者、出版社、类型、价格、库存量、副本存量、总量 位置:LibWeb表空间 借书登记:借书登记表结构 描述:记录图书的借阅信息 定义:借阅登记表 借阅编号、学生编号、图书编号、借阅时间、归还时间、是否归还 位置:LibWeb表空间 学生信息:学生信息表结构 描述:记录学生信息 定义:学生信息表 学生学号、学生姓名、性别、入校时间、毕业时间 位置:LibWeb表空间 归还登记:归还登记表结构 描述:记录所有已归还图书的借阅情况 定义:归还信息表 编号、图书名称、归还时间、归还学生编号、归还学生姓名 位置:LibWeb数据空间 4 用户信息:用户表结构 描述:记录所有用户 定义:用户信息表 账号、真实姓名、密码、描述 位置:LibWeb数据空间 角色信息:角色表结构 描述:记录所有角色 定义:角色信息表 角色名称、角色描述 位置:LibWeb数据空间 2.3 功能需求

经过以上详细的调查和分析,在数据流程和数据分析的基础上,确定达到的功能为一下几点:

新书入库登记:对与需求入库的书籍,进行数据登记,确认后书籍入库。

图书信息的查询和修改功能:当图书资料发生变化、当图书丢失,应立即修改信息。 图书借阅和归还登记:学生借阅图书时需要登记,学生归还图书时也需要登记。 学生的增加、修改、删除等:新生入学时的信息和直接导入。 用户的增加、修改、删除等:用户可根据权限来操作。

2.4 性能需求

为了保证系统能够长期、高效、安全、稳定、可靠的运行,图书馆管理系统应满足一下性能需求:

1.系统处理数据的准确性和及时性:

系统处理的准确性和及时性是系统的必要性能。在系统设计阶段,就应该充分考虑到,包括数据存储量、访问量等,是系统能够满足图书管管理系统对数据的处理量。

2.系统的开放性和系统的可扩充性:

可扩充性是系统健壮性的重要体现,系统开发中应充分考虑到系统的可扩充性。可扩充性包括系统设计和测试阶段的扩充以及系统使用后的扩充。任何系统在开发阶段对需求都是完全明确的,即使系统交付使用后,用户也会提出增加功能,所以,在系统设计阶段就应该考虑到系统的可扩充性。

3. 系统的易用性和易维护性:

图书馆管理系统由图书馆管理员和学生使用,而使用者对系统结构并不了解,这就要求系统

5

提供良好的用户接口和友好的界面设计。要实现这一点,要求操作简洁明了,数据校验通俗易懂。

4. 系统的响应速度:

图书管管理系统的响应速度要求比较高,这就需要从一下几个方面入手解决:校园网的带宽、数据库的快速稳定、SQL语句执行的高效率、浏览器的选择。无论是哪方面,都会影响系统的响应速度,所以,图书馆管理系统能够拥有快速的响应速度,必须做好其中的没一点。

三、 系统总体设计

1.1

业务流程

根据需求分析,以及反复的研究和探讨,确认其流程图如下:

根据流程图,现具体功能描述如下:

1.用户登录:系统对用户的合法性进行校验,登录后,系统会根据用户所拥有的权限来分配权限。

2.书籍入库:填写书籍信息,可通过excel批量导入到数据库中。 3.图书借阅:对已经入库的数据,学生可借阅。 4.图书归还:对已经归还的书籍进行登记。

5.管理措施:对定义系统规定的超期时间、超期处罚办法、丢失赔偿办法。

3.2 系统功能模块图

依据需求分析阶段得到的数据流图,在保证系统基本功能的前提下,结合系统设计流程,给出系统功能模块图,如图:

6

3.3 系统的流程图

四、详细设计

4.1 程序流程图

7

该设计阶段的任务是根据需求具体实现所需要的程序。经过这个阶段的设计,应该得出目标系统的精确描述,从而在系统实现阶段可以把这个描述直接翻译某种程序设计语言书写的程序。总体来说就是把各个模块的细节加以描述。

由于本系统采用的是j2ee来设计程序,java是面向对象的变成语言,所以给出系统的主程序流程图,如图:

4.2 程序输入输出描述

4.2.1 用户角色模块

1.输入项目:用户相关信息、角色相关信息

2.输出项目:相应的页面 4.2.2 学生管理模块

1.输入项目:用户相关信息、角色相关信息

2.输出项目:相应的页面 4.2.3 图书管理模块

1.输入项目:图书相关信息

2.输出项目:图书信息

8

4.2.4 借阅管理模块

1.输入项目:学生学号、图书编号

2.输出项目:借阅信息页面 4.2.5 归还管理模块

1.输入项目:学生学号、图书编号

2.输出项目:归还信息页面

4.3 程序接口描述

4.3.1 外部接口

由于该系统可以部署在任何操作系统,且系统界面采用浏览器方式实现,所以该系统是跨平台、

跨操作系统的。

4.3.2 内部接口

通过面向对象程序设计模式实现低耦合高内聚的程序设计思想,通过与数据库之间的数据交换,实现对数据的处理和保存。

4.4 数据库的设计

4.4.1 数据库的逻辑设计

在需求阶段已经完成该系统所有的数据分析。根据该阶段建立的概念模型,已经得出满

足系统设计要求的几个关系描述,该阶段的主要工作就是把前一阶段的成果转化为具体的数据库。下面给出概念结构设计的E-R图,如图所示:

图(一)

图(二)

9

图(三)

实体:

图书(图书编号,书名,作者,出版社,定价,图书类别,图书ISBN号,图书存量) 学生(学生学号,学生姓名,性别,入校时间,毕业时间) 用户(用户名,真实姓名,密码,描述) 角色(角色名,角色描述)

序号 1 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

字段名称 id bookId name ISBN author publisher type price storeQuan leftQuan totleQuan createTime 字段说明 id 编号 名称 ISBN 作者 出版商 类型 价格 存量 副本存量 总量 创建时间 类型 number varchar Varchar varchar varchar varchar number number number number number date date number number varchar number 10

位数 属性 19 50 非空 非空 备注 和数据字典相关 N or Y 100 非空 50 可为空 100 可为空 100 可为空 2 10 10 10 10 19 19 1 可为空 可为空 可为空 可为空 可为空 非空 可为空 非空 可为空 非空 非空 operateTime 修改时间 creator operate status version 创建者 操作人 状态 版本

图书信息表

序号 1 2 3 4 5 6 7 8 9 10 11 12 字段名称 id userId bookId broTime retime ifReturn createTime 字段说明 编号 用户编号 图书编号 结束时间 还书时间 是否归还 创建时间 类型 number number varcher date date number date date number number varchar 位数 10 10 50 1 19 19 1 属性 非空 非空 非空 可为空 可为空 非空 非空 可为空 非空 可为空 非空 备注 N or Y operateTime 修改时间 creator operate status version 创建者 操作人 状态 图书归还登记表

序号 1 2 3 4 5 6 7 8 9 11 12 字段名称 id createTime operateTime creator operate status version name relName password description 字段说明 id 创建时间 修改时间 创建者 操作人 状态 版本 用户名 真实姓名 密码 描述 类型 number date date number number varchar number varchar varchar varchar varchar 位数 19 19 19 1 60 60 64 1024 属性 非空 非空 可为空 非空 可为空 非空 非空 非空 可为空 非空 可为空 备注 N or Y 用户表

序号 1

字段名称 id 字段说明 id 类型 number 11

位数 19 属性 非空 备注 2 3 4 5 6 7 8 12 createTime operateTime creator operate status version name description 创建时间 修改时间 创建者 操作人 状态 版本 角色名 date date number number varchar number varchar varchar 19 19 1 32 1024 非空 可为空 非空 可为空 非空 非空 非空 非空 N or Y 角色表

序号 1 2 3 4 5 6 7 8 12 8 12 12 字段名称 id createTime operateTime creator operate status version stuId name sex addTime endTime 字段说明 id 创建时间 修改时间 创建者 操作人 状态 版本 学生编号 学生姓名 性别 入学时间 毕业时间 类型 number date date number number varchar number varchar varchar number date date 位数 19 19 19 1 50 100 1 属性 非空 非空 可为空 非空 可为空 非空 非空 非空 非空 非空 非空 非空 备注 N or Y 学生表

五、编码实现

编码见程序详细代码

六、测试分析报告

测试方法有两种,一种是功能测试,即所谓的黑盒测试,另一种是结构测试,即所谓的白盒测

试。本次测试主要采用功能测试。

功能测试的基本观点是,任何程序都可以看作是将输入定义域取值映射到输出值域的函数。

6.1 测试计划和要点

12

软件测试的本质是针对要测试的内容确定一组测试用例。在讨论之前,我先把要测试的各个模块的计划和要点列出:

6.1.1

用户角色测试要点

模块正常运行流程

用户查询等操作异常

输入数据校验(用户唯一性、数据输入范围、数据类型等) 数据是否添加到数据库中 数据库连接异常的相应情况

6.1.2

图书管理模块测试要点

模块正常运行流程

数据查询等操作异常

输入数据校验(图书编号唯一、数据输入范围、数据类型等) 数据是否保存在数据库中 数据库连接异常的相应情况

6.1.3 学生管理模块测试要点

模块正常运行流程

数据查询等操作异常

输入数据校验(学号唯一、数据输入范围、数据类型等) 数据是否保存在数据库中 数据库连接异常的相应情况

6.1.4 借阅模块测试要点

模块正常运行流程

数据查询等操作异常 输入数据校验

数据是否保存在数据库中 数据库连接异常的相应情况

6.1.5 图书归还模块测试要点

模块正常运行流程 数据查询等操作异常 输入数据校验

数据是否保存在数据库中

13

数据库连接异常的相应情况

6.2 测试用例

测试用例是为了特定目的而设计的测试数据及与之相关的测试规程的一个特定的

集合,或称为有效地发现软甲缺陷的最小测试单元。

通过测试要点,且测试时不可能穷举的,所以采用等价划分来进行对图书馆管理系统的测试。它将不能穷举的测试过程进行合理分类,从而保证实际出来的测试用例具有代表性和完整性。 6.2.1 用户角色模块测试用例

字段名称 描述 标识符 测试项 输入标准 C1 用户角色功能测试 1.登录时填写非法字符以及错误用户名和密码。 2.进入添加用户界面,不填写任何数据,点击保存。 3.进入添加用户界面,填写非法字符和无逻辑字符,点击保存。 4.进入添加用户界面,填写正确的信息,点击保存。 5.进入用户列表界面,输入非法字符和有空格的字符,查询用户。 6.进入用户列表界面,数据正确的字符,查询用户。 输出标准 1.所有校验应符合数据定义类型和长度。 2.能正确保存和查询所有数据项。 6.2.2 图书管理模块测试用例

字段名称 标识符 测试项 输入标准 描述 C2 图书管理功能测试 1.进入添加图书界面,不填写任何数据,点击保存。 2.进入添加图书界面,填写非法字符和无逻辑字符,点击保存。 3.进入添加图书界面,填写正确的信息,点击保存。 4.进入图书列表界面,输入非法字符和有空格的字符,查询用户。 5.进入图书列表界面,数据正确的字符,查询用户。 6.进入图书列表界面,单条删除和多条删除图书。 输出标准

1.所有校验应符合数据定义类型和长度。 14

2.能正确保存和查询所有数据项。 3.能删除未被借出的图书。 6.2.3 学生管理模块测试用例

字段名称 标识符 测试项 输入标准 描述 C3 学生管理模块功能测试 1.进入添加学生界面,不填写任何数据,点击保存。 2.进入添加学生界面,填写非法字符和无逻辑字符,点击保存。 3.进入添加学生界面,填写正确的信息,点击保存。 4.进入学生列表界面,输入非法字符和有空格的字符,查询用户。 5.进入学生列表界面,数据正确的字符,查询用户。 6.进入学生列表界面,单条删除和多条删除学生信息。 输出标准 1.所有校验应符合数据定义类型和长度。 2.能正确保存和查询所有数据项。 3.能正确删除未借书的学生。 6.2.4 借阅模块功能测试用例

字段名称 标识符 测试项 输入标准 描述 C4 借阅模块功能测试 1.进入添加信息界面,不填写任何数据,点击保存。 2.进入添加信息界面,填写非法字符和无逻辑字符,点击保存。 3.进入添加信息界面,填写正确的信息,点击保存。 4.进入借阅信息列表界面,输入非法字符和有空格的字符,查询用户。 5.进入借阅信息列表界面,数据正确的字符,查询用户。 输出标准 1.所有校验应符合数据定义类型和长度。 2.能正确保存和查询所有数据项。 .6.2.5 图书归还模块功能测试用例

字段名称 标识符 测试项

描述 C5 图书归还模块功能测试 15

输入标准 1.进入图书归还信息界面,不填写任何数据,点击保存。 2.进入图书归还信息界面,填写非法字符和无逻辑字符,点击保存。 3.进入图书归还信息界面,填写正确的信息,点击保存。 4.进入图书归还信息列表界面,输入非法字符和有空格的字符,查询用户。 5.进入图书归还信息列表界面,数据正确的字符,查询用户。 输出标准 1.所有校验应符合数据定义类型和长度。 2.能正确保存和查询所有数据项。 6.3 测试结果及结论

6.3.1 按照6.2节中给出的测试用例,来给出相应的结果 用户角色模块测试结果

标识符 测试结果 与预期的偏差 说明的问题 C1 正常操作无任何异常出现 无 用户角色模块通过了功能测试 图书管理模块测试结果 标识符 测试结果 与预期的偏差 说明的问题 C2 正常操作无任何异常出现,校验达到了预期要求 无 图书管理模块通过了功能测试 学生管理模块测试结果 标识符 测试结果 与预期的偏差 说明的问题 C3 正常操作无任何异常出现,学号唯一性校验出现错误且学号不唯一 学号不唯一 学生管理模块通过了功能测试 图书借阅模块测试结果

标识符 测试结果 与预期的偏差 说明的问题 C4 正常操作无任何异常出现,校验达到了预期要求 无 图书借阅模块通过了功能测试 图书归还模块测试结果

16

标识符 测试结果 与预期的偏差 说明的问题 C5 正常操作无任何异常出现,校验达到了预期要求 无 图书归还模块通过了功能测试 6.3.2 缺陷分析及改进

本部分对上述缺陷和其它收集数据进行综合分析 1.缺陷综合分析

缺陷发生率=缺陷数/测试用时=1/(1天)=1个/天

用例质量=缺陷总数/测试用例总数×100%=1/5×100%=20% 2.对缺陷的改进

在测试用例C3中,发现缺陷,需及时改正。

6.3.3 测试结论

1.测试目标完成 2.测试已经通过

3.可以进入下一阶段项目任务 结束语

这次毕业设计,我主要运用了java作为开发语言,运用j2ee综合框架进行综合开发,数据库采用oracle10g,综合软甲开发过程,开发了此系统。

通过此次毕业设计,让我对软件工程有了全新的认识,对软件开发的各个环节有了深刻的认识,对如今比较流行的oracle数据库能进行基本操作,对面向对象语言java有了更进一步的认识。但是在软件开发过程中,发现自己缺少钻研的精神,这方面以后需要改进。总之,只要努力学习,勤奋运用,多思考,多实践,一定能在软件开发领域创造自已的一片天地。

再次感谢我的指导老师,王老师。

参考文献:

[1]飞思科技产品研发中心.Java TCP/IP应用开发详解.北京:电子工业出版社2002 [2]朱喜福.Java程序设计(第二版).北京:人名邮电出版社 2007 [3]李兴华.Java开发实战经典.北京:清华大学出版社 2009

17

[4]Michael Main.数据结构 Java语言描述.北京:中国电力出版社 2005 [5]李钟尉,马文强,陈丹丹.Java从入门到精通.北京:清华大学出版社 2007 [6]李刚.轻量级Java EE企业应用实战-Struts2+Spring+Hibernate整合开发.北京:电子工业出版社 2008

[7](美)凯特,苏金国(译) Oracle Datebase 10g编程艺术:深入数据库体系结构(第二版) 北京:人民邮电出版社 2010

[8](普里斯) Oracle Datebase 10g SQL开发指南 北京:清华大学出版社 2010 [9]许家治,曾翎,彭德中 软件工程—理论与实践 北京:高等教育出版社 2004 [10]佛里特 软件工程—原理与实践(第三版) 北京:电子工业出版社 2010

18

本文来源:https://www.bwwdw.com/article/1zi.html

Top