图书借阅系统的设计与实现.docx
《图书借阅系统的设计与实现.docx》由会员分享,可在线阅读,更多相关《图书借阅系统的设计与实现.docx(15页珍藏版)》请在冰豆网上搜索。
图书借阅系统的设计与实现
绪论
图书馆对于我们来说也是耳熟能详了,据我们所知,在各个小到小学,初中、高中,大到大学基本没所学校都有图书馆,它是一个聚集了信息资源的一个地方。
在没有当今时代飞速发展的信息网络的时代,图书馆包含了数量众多的,种类繁多的图书和学生借阅的各种信息,它的管理、运营、图书的借阅,归还记录,这些所有的工作都是要通过人工和纸质记录来完成的,可以想象的到当时的管理是需要很大的人力、物力来实现的,工作效率相对低下,准确度、清晰度都是不可确认的。
伴随着互联网的发展,基于互联网的电子商务也应运而生,并在近年来获得了巨大的发展,成为一种全新的商务模式,被许多经济专家认为是新的经济增长点,然而图书馆也是一个典型的信息管理系统。
图书管理系统对管理水平、信息传递技术都提出了更高的要求,其中安全体系的构建也是非常重要的一个优势。
在知识经济时代到来的今天,物质文化的发展已经远远满足不了人们的需求,精神文明有了飞速的发展,因此图书事业的发展就成为精神文明进步的一个动力。
一个现代化的图书馆不仅能够在面对大量的读者信息、书籍信息以及繁琐的借书信息和还书信息情况下正常运营。
传统的管理方法很容易导致各种错误的发生。
因此实现一个智能化、信息化的、系统化图书管理系统十分的必要。
本文从功能模块、数据格式、通用性三个方面进行细化,提出图书借阅管理系统设计的理论依据和实现的方法。
设计系统的数据层、逻辑层、界面层,重点体现数据格式的规范,也为通用性的实施提供保障。
最后在系统开发环节,从技术层面实现代码的可重用性及系统的通用性,从而使系统的设计更具实用性和通用性。
总之我觉得现在逐渐发展起来的信息系统可以让图书借阅管理变得非常灵活,每一种角色都有自己的权限,保证了信息的安全性以及管理的简易性。
1系统概述与技术介绍
1.1Web技术介绍
(一)本系统是Web系统,采用的Servlet架构以及WebSocket技术,Web架构这种结构统一了客户端,我们将系统部署到服务器上,用户只需要一个浏览就能访问我们的系统了,实现了真正的“一处部署到处运行”的方案。
在B/S结构系统中,用户通常是通过浏览器或者其他客户端来浏览系统,首先用户向服务器发送请求给客户,服务器会对浏览器发送来的客户请求进行搜索对比处理,最后给用户端反馈的信息响应。
(二)Javascript是一种基于对象的,解释性的优秀脚本语言,被大量的应用于网页中,用以实现和浏览用户的动态交互。
JavaScript代码是在客户端执行的,是服务器把代码发送到客户端的浏览器上,由浏览器对这些代码执行编译和处理。
在本系统中使用了大量的javascript技术,数据校验、页面动态效果、发送请求等等。
(三)JSP技术,JSP是sun公司开发的,是一种基于Java语言的跨平台的web动态网站应用开发技术。
JSP是众多页面模板中的一种,利用JSP技术创建的Web应用程序可以使用EL表达式,以及JSTL等技术。
他也可以实现动态页面和静态页面的分离,支持可重用的基于组件的设计,这样就便于Web应用程序的维护和扩展,使基于Web的应用程序的开发变得迅速和容易。
JSP在技术上有如下优点:
(1)一次代码编写,便可以运行在不同的平台上。
只要将系统部署到设备上,便不需要再做任何更改。
(2)跨平台的系统。
可以所有支持jvm虚拟机的任意的平台上进行部署和开发,以及进行个性化扩展。
(3)支持多种网页格式。
(4)JSP标签可扩充性。
可以由用户自定义定制标签,使得代码得到重用从而提交了网页制作效率。
(5)健壮性与安全性。
1.2Struts2技术介绍
Struts2是众多Web应用框架中的一个,它基于MVC设计模式的轻量级的流程框架。
这个所谓的框架,通俗一点说就像我们自家盖房子一样,盖房子的流程是需要先搭好周围的架子,接着给房子添砖加瓦建墙,最后成为一个完整的房子的形状。
在软件设计开发过程中,框架就是起到一个搭架子的作用。
在这个过程当中,我们会将可重复利用的代码进行合理的代码封装,这样不仅能够提高我们的工作效率,而且容易管理。
因为框架能给整个系统开发带来便利,当然我们选择使用框架来建设我们的系统也是很合理,很高效的一个办法。
首先我们需要学习该框架的使用API,以达到使自己写的代码和这个框架进行完美的结合。
Struts又被称为金属支架,这个名字的由来是因为它在整个系统开发的过程当中起支撑作用,Struts分为两个版本发展阶段,第一版是Struts1,Struts2是融合了WebWork优秀框架之后升级得到的新版本。
Struts2框架独特之处是它是一个轻量级的MVC的流程框架,这里轻量级的意思是指程序的代码较少,运行时速度较快,因为占用的资源少。
Struts2体系结构以及应用流程注解模型如图1-1所示。
图1-1Struts2流程图
2系统需求分析
2.1开发环境
本系统的开发环境为Win7,使用Eclipse工具编辑器,数据库使用的MySQL。
首先,可以进行开发的服务器端开发语言有很多种,比较耳熟能详的就有.net,接着就是JSP服务器端开发语言了,在之前的很长一段时间里.微软的net一度成为最火,用户量最多,使用体验也较好一种语言,但是由于微软后期实施的收费性质,导致百分之九十的人转向开源的JSP开发语言,由于JSP的开源性,得到了很好的发展和完善,具统计百分之九十五以上的系统开发都是使用JSP开发语言,这也是得益于它自身的一些优势所决定的,首先它是通过WebServer进行对用户界面的更新,速度相对较快。
由JSP服务器开发的应用都是基于服务器的,故此它可以一致保持是最新版本。
它的客户端接口简洁,应用易于部署、修改和维护。
2.2需求分析
一个项目的需求是项目的起始,项目能不能进行下去,首先要确定项目的需求。
所以一个项目的需求是很重要的。
软件需求分成:
①业务的需求②目标的需求③功能模块的需求④性能方面的需求⑤约束与限制需求等。
因此项目需求的把握的好坏直接决定一个项目成功与否。
在一个软件的建设过程中,需求分析会贯穿在开发过程始终,是一个非常非常关键重要的过程。
在整个软件开发的过程当中,必须深入的彻底的了解用户需求,知道用户想要什么,期望要什么,才能做出与客户期望高度一致的软件以及功能。
同时在了解需求的过程中还要评估软件风险和以及开发的代价。
只有在确定了这些因素后,研发人员才能够分析问题原因,并寻求出新的解决问题的方法。
在需求分析的阶段的主要任务就是确定软件系统需要开发的各项功能。
因此前期需求分析是一项非常重要的工作同时也是最困难的工作。
进行需求分析,我们能够更好了解顾客需要什么,对目标系统提出完整的、具体的、清晰准确的要求,这在整个软件开发的过程中具有重要地位。
别具一格的网站,必须在前期规划和设计好,要进行很认真的总体规划,之后才可以“破土动工”进行实际的开发工作。
对系统进行初步调查,从三个方面进行,系统的基本情况、系统资源情况和系统信息处理。
主要目标是为了从系统管理人员和分析人员的角度确认新项目开发是否必要。
2.3可行性分析
可行性分析是通过对项目的资源,建设规模,工艺等等方面的研究,主要从经济、技术和操作,法律四个方面分析给出解决方案。
(1)经济可行性
谈到经济可行性,我们的设备必要要保证价廉。
服务器的配置刚好满足我们的程序运行就好了。
太高的配置就是浪费,要保证经济可行性。
服务器系统我们选择使用免费开源的Windows系统。
数据库不必说也是大名鼎鼎的MySQL。
Java+Windows+MySQL这是天衣无缝的组合。
客户端就更省钱了,用户的电脑无需装任何软件,只需要安装一个浏览器,然后输入我们的网址。
本系统对客户端的计算机的配置和网络要求都不高,只要能上网的电脑就可以了。
因此我们的系统在经济可行性上是具备的。
(2)技术可行性
该系统是用使用流行的Java语言,Java从大二就开始学习了,掌握的还不错,而且他本身也简单易学而且灵活方便,使用起来也得心应手。
开发工具使用的是免费的Eclipse。
主要使用了JavaEE的企业开发技术,数据库的操作以及设计也是本系统开发的核心,整个系统的总体开发难度还不算是太高。
由于大学期间也做过一些JavaEE相关的课程练习系统,对J2EE开发的初步方面知识也比较的熟悉。
这主要应用了在大学期间也学习的SQL语句,对开发此项目还是比较有信心的。
在大学期间练习开发的过程当中也学习过软件测试,具备了一定的系统分析、设计能力;对软件工程,U等各项相关课程的学习,增加了系统测试各方面的实践能力。
因此,该系统的技术可行性在实现上也是可行的。
(3)操作可行性
该系统操作设计实现的很人性化,输入信息能用下来框的绝不用文本框,而且还有友情提示。
有些页面的信息无需输入会自动生成,比如一些当前日期等字段信息都是由系统自动获取系统的当前的日期生成的。
页面都是傻瓜化操作,可以说是一键操作。
对用户的要求很低,给不太会电脑的用户带来福音。
另外本系统是外观界面也相当漂亮,深受用户的喜欢,大多采用的CSS3和HTML5技术。
3系统概要设计
3.1系统设计概述
系统设计阶段,是在系统需求分析之后实现的。
在系统的产品设计人员拿到需求分析人员正好的客户的需求之后,在这个基础之后把客户的需求转化为系统的逻辑模型,并且科学的、合理的,设计出新系统的模型。
同时,我们还应该考虑到系统开发所实现的主客观条件以及开发需要的各项内外环境,然后以认真负责的态度进行工作。
这个设计阶段主要是在系统分析的基础上由抽象到具体的过程,将系统的需求分析阶段所提出的问题和建议等整理成为一个系统设计的逻辑方案,然后综合考虑各种约束,再利用技术手段等确定新系统的可以实施的方案。
系统分析阶段主要解决下面几个问题,首先是新系统是“做什么”的,其次也是系统设计阶段的重中之重就是搞清楚“如何做”,需要依据系统分析说明书中规定的功能要求,再参考我们实际技术和经济情况,确定可实施的具体设计实现逻辑模型的技术方案。
最终目的是确保系统整体目标能够顺利实现。
系统各组成部分的技术方案和系统的总体结构,也就是设计新系统的物理模型。
系统设计工作的具有以下特点:
1)系统的设计阶段,主要明确新软件系统“如何做”的问题。
2)允许用户在不改变原则性的基础上,对已提出的需求信息进行微小的修改或补充。
3)用户的运行环境以及操作流程也需要在此阶段加以明确。
4)系统设计工作的环境是技术环境和管理环境的结合,是整个系统成功的关键影响因素。
系统设计的具体原则
1)进行模块开发:
在任何一个系统的开发应该在整体架构搭好的基础下,分模块的给不同的研发人员进行开发。
2)易用性原则:
尽可能的让用户进行傻瓜化的操作,最大的降低客户端操作难度,让更多的人都可以轻松的使用该系统,并且提高用户体验。
3)功能完整性原则:
对于每一个业务逻辑功能来说都是原子的,必须保证是完整无缺的,包括各方面数据和各个功能模块,减少数据的误读。
4)安全行的基础原则:
在系统的最初设计时,首先必须要考虑的就是系统的安全性,只有在系统安全的前提下做其他事情才是有意义的。
5)可扩展性原则:
一个系统的将来发展情况,很大程序要取决于这个系统本身的扩展程度,如果一个系统的可扩展性好,那么将来在业务扩展时不用牵一发而动全一身,我们的原则是哪里扩展就添加哪里,也就是所不修改只添加。
这样既保证了旧系统和旧数据又添加的新扩展,保证了系统向下兼容。
3.2系统用例图
普通用户的操作:
1、首页
2、登录系统
3、图书借还
4、系统查询
5、更改口令
6、退出系统
以下是普通用户使用图例,如图3-1所示:
图3-1普通用户模块用例图
管理员的操作:
1、系统设置
2、图书管理
3、读者管理
4、系统查询
5、图书借还
6、更改口令
7、退出系统
管理员系统使用例图,如图3-2所示:
图3-2管理员用例图
3.3系统功能分析介绍
图3-3普通用户系统使用功能图
图3-4管理员系统使用功能图
4数据库设计与实现
4.1整体数据库结构设计
在一个系统开发过程当中数据库是扮演着基石的角色。
如果没有数据库那么系统也就不存在。
现在市面上有很多种类的数据库,除了传统的关系型数据吗,比如oracle,SQLServer,MySQL等,还要非关系型数据库,比如Mongodb,redis等等。
在众多的数据库中,我们该如何选择适合我们自己的数据库呢?
首先,我们的数据库要能实现跨平台。
第二,我们的数据库要免费。
第三,我们的系统设计是按照关系型数据库来设计的,所以基于以上几点考虑,我们毫不犹豫的选择了免费,小巧的MySQL数据库。
数据库在网站建设中发挥着重要的作用,相对于静态网页来说,要实现动态网页必须要有数据库才可以。
页面上大部分内容都是由后台数据库数据动态生成的,这个动态的数据就是来源于数据库的,也因此才能使网站更新更便捷、内容更具灵活性,程序员对网站维护也会更加方便。
本系统数据库仍然是采用的MySQL数据库,系统数据库的名称为db_librarysys,接下来我们会在下面分别给出数据表的概要说明和主要数据表的结构图片。
4.1.4系统ER模型图
5系统的实现
5.1首页设计
用户打开一个网站后第一眼看到的便是首页,一个网站是否成功,是否能一眼吸引住用户的眼球,这在很大程度上取决于做出来的首页效果是否有很强的粘性。
首页包含内容应当丰富且有序,整体要有独特风格,色彩搭配要舒服合理。
系统首页的运行结果如图5-1所示。
图5-1首页运行结果
5.2系统导航设计
一般网页都有导航栏,方便用户的浏览。
所谓的网站的导航栏指的是引导用户访问网站的栏目、菜单、在线帮助、分类等布局结构等形式的总称。
综上所述导航是系统设计中的基础元素之一,也是信息结构的基础分类,它是浏览者的网站路标,就像我们乘坐地铁的站点儿地图一样,在每一站的地图上面会标识出你当前所在的位置,将要去的方向的路线等等,清晰完整,让乘客一目了然。
清晰的导航栏是指导浏览者了解自己所处网站的位置,将要去的网页的路径。
网站导航的设计多种多样,新的样式也是层出不穷。
该网站导航栏设计效果图如图5-2所示。
图5-2系统导航页面设计效果
5.3图书管理模块
图书管理模块的主要功能是管理员用来管理图书信息,该页面的设计效果如图5-3所示。
图5-3图书管理界面设计
该模块的核心代码如下:
然后点击图书类型设置会进入图书类型设置的界面,执行页面效果如图5-4。
图5-4图书类型设置信息界面
5.4读者档案管理模块
该模块是对读者进行管理的模块程序效果图如图4.19所示:
图4.19读者档案管理模块
其关键核心代码如下:
5.6系统登录模块
由于系统后台是用于维护整个系统的信息管理,例如:
图片,文字和其它的一些日常的文件的发布,删除和更新操作等等,同时也包括了借阅用户的借阅信息,用户的个人信息等等。
所有的后台网站都有一个共同的特点,就是必须先取到通行证,通行证在这里是指要先登录进入这个后台管理系统以后,才可以进行相关的各种管理操作。
相信大家也接触过不少的应用系统,都能够了解登录网站时需要用户输入正确的用户名和个人密码,后台验证才能通过,而网站后台管理员通过后台登录入口登录便可。
后台管理员管理各个相关模块,下面是登录模块的运行效果如图5-6,登录流程图如图5-7所示:
图5-6后台登录模块的设计效果图
图5-7后台登录流程图
登录的核心代码:
5.7系统设置模块
本模块系统设置是管理员对整个系统权限等进行设置的入口地方,实现对系统的各个操作的管理设置。
运行界面如图3-3:
图5-8系统运行效果图
点击权限设置按钮,进入到权限设置的页面,进行相关操作后点击保存或者关闭按钮,如图5-9:
图5-9系统运行效果图
5.8图书借还管理模块
本模块实现对用户的图书借还管理,如图5-10:
图5-10图书借还管理模块图
其主要代码是:
returnmapping.findForward("bookborrow");
}
5.9系统查询管理模块
本模块实现对图书借阅的查询,如图3-8:
图3-8图书查询界面设计
5.10更改口令模块
本模块主要是为了保证系统的安全性,管理员登录系统后,可以修改自己的登录密码。
如图3-9:
图3-9更改口令界面设计
5.11退出系统后台模块
在后台的各项管理操作完成之后,我们一般都会退出后台管理模块,即退出后台管理系统。
之后,当我们再次单击【退出】按钮时,在单击其他功能模块时,看到页面显示的状态似乎还在后台中,会看到弹出后台登录窗口,实际我们已经不能对系统进行任何操作;需要用户再次输入正确的用户名、密码以及验证码重新登录,才可以再次进行对系统的操作。
6系统测试
系统测试是系统开发过程当中的最后一个重要环节,也是检验是否符合开发设计阶段所提出的一些用户需求。
这个过程体现了一个系统完成开发之后的品质和性能。
在系统真正投入到运行之前,需要开发人员对对系统需求分析、编码和设计规格说明进行最终复审,必须保证系统设计质量。
系统测试过程中会发现一些错误bug,需要最后进行纠正和改善。
系统测试主要分为三个阶段进行的,首先是功能性的测试,我们会对设计阶段提出的主要功能模块进行逻辑可行性的一系列测试,反复测试各个功能模块都能够正常实现功能需求之后,我会对整个系统进行运行的性能测试,通过性能测试对系统进行一些可行性的优化措施,尽量保证系统在客户端运行的时候,能给客户带来优秀的体验。
最后是对上面两项测试调整完成之后的系统进行安全性测试。
安全性的测试是非常必要的,为防止恶意软件的串改和损坏,对系统做安全测试。
最后便是回归测试了,对之前的bug修改之后,测试没有问题就可以正式上线使用了。
6.1测试方法
常用的测试方法可以分为三种:
系统测试、功能验证、传统的测试方法。
传统的测试是开发人员执行的单元测试,也就是所说的白盒测试。
这需要测试人员懂的编程,会写代码并且要了解系统的内部知识,并且这些测试一般是针对特定的部分,编写特定的代码来进行的。
这种测试适合组件或者模块的测试。
功能验证是必须的测试。
在这个测试过程中,测试人员要对产品的需求和功能非常熟悉,对照产品提出的测试要求以及测试功能元数来逐项验证,并且要把业务逻辑功能。
在测试的过程中使得数据的输入和输出要符合设计的业务逻辑,方可测试完毕,否则就是程序BUG。
出现BUG需要测试人员把BUG出现的场景以及对应的URL和登录系统的账号等相关的信息通过BUG库提交给开发人员,等待处理。
待开发人员处理完之后,源代码部署更新之后,需要测试人员在次测试验证BUG。
这个流程下来才算测试完成。
这轮测试会检验系统的各个功能是否都能正常运行。
系统测试通常也是最后一个设计阶段的工作。
在测试阶段可以验证完核心功能后进行。
一般用于宏观的整体设计的查找系统的问题,系统运行的生命周期和系统运行安全性,以及灾难备份恢复测试工作等。
6.2系统测试结果
在系统全部开发完成后,需要对系统各模块进行了全面的测试。
该系统的测试结果如下:
(1)设计前后台界面简洁,便于操作;
(2)测试系统的所有功能模块,保证都能正常的进行工作,且完成了系统设计时的所有要求;
本系统的下一步的开发方向如下:
(1)提高网站的人性化服务功能;
(2)增加网站的人机交互功能,提高用户粘度;
(3)加强整个网站的个性化设计;
截止到此各功能模块都运行正常,本系统开发也算是全部完成了。
总结
在毕业设计和开发期间,经过老师的指导和三个多月的认真学习,同时翻阅了大量的资料,终于完成了系统的开发设计。
其功能基本符合用户需求,能够完成课题的提交。
我感觉自己从理论到实践都有了长足的进步和很大的提高,使我在数据库设计方面、JSP编程技术方面有了长足的进步,对系统开发过程、步骤有了比较深刻的认识。
通过毕业设计,我还明白了一点,合作是至关重要的。
虽然我是自己一个人为一组,但是在设计过程中也经常和同学们商量,相互借鉴。
一个完整软件程序需要若干个人的通力合作。
在系统开发过程中,我加强和同学们的沟通和交流,使得对每一个问题的解决获得较优的方案,从而保证系统的合理性、完整性,为该平台的进一步完善和扩充打下了良好的基础。
撰写毕业论文期间,我深刻体会到,实践到理论的重要性。
在实践到理论的转化中,我将自己的工作过程清晰的展现在面前,而且增强了自己查阅资料的能力,获得了一些必要的知识。
总之,在整个毕业设计期间,我既有收获,也发现了自己的不足。
今后,我一定更加努力,弥补自己的不足,提高自己的水平。
在本次毕业设计中,我从指导老师XX老师的身上学到了很多东西。
XX老师认真负责的工作态度、严谨的治学精神都使我受益匪浅。
他无论在理论上还是在实践中,都给予我很大的帮助,使我得到了不少的提高,这对于我以后的工作和学习都有一种巨大的帮助,感谢他耐心的指导。