1、 产品设计者:2.3 可行性研究的前提本图书管理系统在功能上要求完成以下基本功能:a).读者、管理员登陆;b).借书;c).还书;d).续借;e).图书挂失;f).历史记录查询;g).新书入库;h).读者登记及修改个人信息; 本系统在性能上力争达到响应时间短,具有一定的容错能力,力争减少由用户直接输入数据,绝大多数据的输入都用可以选择的形式让用户进行选择。本系统预计有如下输出:a).登陆成功显示:成功则进入主界面;失败则重新输入;都要给出相应的提示;b).借书成功显示:显示借书是否成功,如成功,记录插入数据库,失败说明错误原因,返回借书界面;c).还书成功显示:显示还书是否成功,如成功,修改数
2、据库多项记录,失败说明错误原因,返回主界面;d).续借成功显示:显示续借是否成功,如成功,修改数据库记录,失败则说明错误原因,返回主界面;e).图书挂失成功显示:成功则提示用户需要赔偿的价钱,并禁止该用户再借书,直到交了罚款为止;f).历史记录查询:管理员可以查询所有记录,用户只能查询自己的借还书记录;显示这些记录;g).新书入库成功显示:显示新书入库是否成功,成功则向数库插入数据,失败给出错误提示,返回主界面;h).读者登记成功显示:显示读者是否成功注册,成功则向数据库插入数据,失败给出提示,返回主界面;i).修改个人信息成功显示:显示个人信息是否成功修改,成功则修改数据库中的数据,失败则给
3、出错误提示,返回主界面;本系统预计有如下数据输入:a).登陆系统时需要输入用户名和密码,选择用户类型;用户名、密码、和用户类型均为字符型;b).借书时需要选择用户编号和书的编号,均为字符型;c).还书时需要选择用户名和书的名字,均为字符型;d).续借时,需要选择书的编号,为字符型;e).挂失时,需要选择书的编号,为字符型;f).新书入库时,需要输入书的编号、名字、类别、价格、当前剩余藏书量、入库日期;其中入库时期为系统当前时间,价格为双精度浮点型,当前剩余藏书量为整型,其余均为字符型;g).读者登记时,需要输入读者的编号、名字、密码、当前最大可借书量,当前状态(0或1),0为未激活,1为激活;
4、其中当前最大可借书量为整型,其余为字符型;h).修改个人密码时,需要提供一次原密码和两次新密码;均为字符型;本系统基本系统模型如图2-1所示:图1-1图书管理系统基本系统模型通过图1-1.,我们可以发现该系统的数据源是读者和图书馆管理员;读者处理的事务只有修改个人密码、续借、图书挂失,其余事务均由图书馆管理员来处理;数据终点是读者,意味着所有处理最后都要由读者确认,这种确认可以是某种操作,也可以是管理员的一句提示。本系统的完成期限为16天(即2008年12月22日到2009年1月7日)。2.4 目标本图书管理系统的主要开发目标为:a).实现图书管理的便捷程度;b).在完成数据库连接的基础上,适
5、当提高查询速度和访问效率;c).在完成基本功能的基础上,减少代码量,提高工作效率;2.5 进行可行性研究的方法本系统可行性研究是通过走访大学图书馆的方式进行的,通过走访西安科技大学图书馆和陕西航天职工大学图书馆,对两校现有图书管理系统进行调查、了解,分析得出本系统应实现的基本功能,本系统根据两校图书馆管理系统进行相应的模仿的基础上,添加了一些自己的功能。2.6 评价尺度本系统在评价时应从以下几个方面进行分析:开发时间要尽量短;各个功能实现代码要尽量少;访问数据库的效率要尽量高;用户使用过程中容错能力要很强;2.7 对现有系统的分析通过对西安科技大学图书馆管理系统的分析,由于该系统是专业软件公司
6、所为,基本上没有什么太大的问题,就是有时候会出现响应时间过长的问题,原因可能是访问数据库效率过低,所以本系统着重提高访问数据库效率的问题,在功能上尽量模仿上述系统。因此有必要对现有系统进行修改。现有系统的主要工作为处理借还书,新书入库,读者登记,读者信息修改,读者挂失等业务。现有系统最大局限性就是响应时间过慢,数据存储能力不足,由于使用时间很长,源代码无法找到,所以需要对该系统进行重新设计,以适应社会的需要。2.8 所建议使用的系统本图书管理系统采用面向对象的分析方法进行分析,然后用面向对象的设计方法进行设计,最后用面向对象语言Java进行实现,后台数据库使用Oracle,连接方式为JDBC-
7、ODBC。Java中GUI程序设计本身就是界面程序设计,用它设计出来的界面不但美观,而且使用方便,使用者只需点几次鼠标,就能根据提示进行正确的操作,实现了图书管理的便捷程度;由于Java代码重用性非常好,加上本系统部分代码我可以用别的程序代码稍微做一些修改就可以实现功能,因此可以实现降低代码量的目的;Oracle数据库是目前市场上通用数据库之一,查询速度本身就非常多,再加上我会在代码中尽量避免多表连接查询和处理语句的使用,所以可以真正起到提高查询效率的目的。本系统局限性可能来自以下几个方面:a).界面不美观;b).部分功能无法实现;c).访问效率很低;d).容错性不够;对于a),我觉得我们应该
8、注意力放在功能及代码的效率上,而不是去追求一个优秀的界面,对于界面,只要能看得过去就行;对于b),我尽量避免这个的发生,因为它是一个程序员水平的标尺,尽可能的用自己最大努力做出尽可能多的功能是我的目标;对于c),尽量减少多表连接操作的次数,应该就可以尽可能的提高访问效率了。对于d),这个是需要大量测试才能发现的,由于时间关系,不可能把所有的情况考虑完全,只能尽可能多地去考虑周全点,尽可能的把所有问题都考虑到。2.9 技术条件方面的可行性按照目前的技术水平,本系统的功能目标是可以达到的,该系统的功能是可以实现的,在规定的期限内,本系统可以开发完成。2.10 法律方面的可行性由于这个系统只供学习研
9、究使用,不涉及任何商业行为,因此,该系统从法律方面是可行的。2.11 使用方面的可行性本图书管理系统是为学校图书馆开发的,从学校图书馆日常流程的角度来看,是可以使用该软件系统的;经过我们的调查,我们发现学校图书馆管理人员是有一定的计算机操作水平的,经过短期的培训,是可以熟练掌握本系统的使用细则的。2.12 结论由上面的内容我们可以得到如下研究结论:本图书馆管理系统可以立即开始进行。3.需求规格说明书对软件需求完全理解对于软件开发工作的成功是至关重要的,需求说明的任务是发现、规范的过程,有益于提高软件开发过程中的能见度,便于对软件开发过程中的控制与管理,便于采用工程方法开发软件,提高软件的质量,
10、便于开发人员、维护人员、管理人员之间的交流、协作,并作为工作成果的原始依据,并且在向潜在用户传递软件功能、性能需求,使其能够判断该软件是否与自己的需求相关。3.1 编写目的为开发人员,维护人员,客户之间提供共同的协议而创立基础,对图书馆管理系统软件功能的实现做一全面的描述;本说明书预期读者为客户、业务或需求分析人员、测试人员、文档编写者、项目管理人员;3.2 任务概述本图书管理系统仅供学习、研究之用,应用目标是让使用该软件的用户感觉轻松、愉快的完成本系统的各个功能模块,给以客观公正的评价。本软件的灵感来源于本人长期使用本校的图书馆管理系统,对其结构和功能有了一定的了解,所以就产生了自己模仿一个
11、的想法。由于本软件是模仿其他类似软件开发的,所以只能供学习、研究之用。|本软件终端用户应该是图书馆管理人员,各个年龄层次的读者。对于图书馆管理人员来说,应该对这个软件的流程很熟悉,所以本软件在设计时尽量追求可操作性和简洁大方的人机界面的设计,力求尽量减少用户直接输入性东西,大量使用可选框。对于读者,本软件将为其设计更加方便的界面,尽量不使用直接输入性信息,追求操作的最简单化。由于本软件只供学习和研究之用,所以不存在预期使用周期。3.3 需求规定通过对学校图书馆管理系统的使用和跟有关人员的访谈,我初步认为该系统应该有以下功能约定:1).每个读者最多在借数目为5;2).每种书只剩一本时,禁止外借;
12、3).读者编号是10位数字,初始密码和编号相同,提示读者修改密码;4).管理员编号是5位数字,初始密码和编号相同,提示管理员修改密码;5).当读者挂失图书且未缴纳罚款时,禁止该读者借阅续借和挂失其他图书,直到罚款交齐为止;6).尽可能多的用可选项代替文本框,减少人为输入错误发生的概率;7).当可选项为编号时,为了方便查阅详细信息,设置按钮显示其详细信息;8).读者界面应该显示读者当前在借图书的详细信息;9).为了方便读者查询,应该提供多种查询图书的方式;10).图书挂失后,读者应该缴纳三倍书价的罚款作为赔偿;11).修改密码时,应提供原密码作为验证,两次输入新密码;12).用户登陆时,需根据用
13、户身份,进入各自的主界面;通过对以上功能约定的分析,我将这个系统分为以下11个模块,它们分别是登陆模块、添加管理员、读者、书籍信息模块、借书模块、还书模块、续借模块、图书挂失模块、挂失处理模块、修改个人密码模块、删除操作记录、读者信息模块,查询图书模块等等。下面用IPO表分别写出对上述模块的功能要求进行定性和定量的叙述:1、登陆模块:模块名称登陆模块输入数据用户编号,密码,级别处理过程调用数据库数据进行验证输出数据无 表3-1 登陆模块IPO表2、添加管理员与读者模块添加管理员和读者模块新管理员编号和姓名编号唯一性验证,向数据库添加数据 表3-2 添加管理员和读者模块IPO表3、添加书籍信息模
14、块添加书籍信息模块书条形码号,书名,作者,分类,价格,数目 表3-3 添加书籍信息模块IPO表4、借书模块借书模块读者编号、书条形码号验证编号,向数据库添加数据 表3-4 借书模块IPO表5、还书模块验证编号,修改数据库数据 表3-5 还书模块IPO表6、续借模块续借模块 表3-6 续借模块IPO表7、图书挂失模块图书挂失模块书名、应缴纳的罚款数额 表3-7 图书挂失模块IPO表8、图书挂失处理模块图书挂失处理模块读者编号查询挂失信息书名,罚款数额 表3-8 图书挂失处理模块IPO表9、修改个人密码模块修改个人密码模块读者编号,旧密码,新密码验证旧密码正确性,修改数据库数据 表3-9 修改个人
15、密码模块IPO表10、删除操作记录模块删除操作记录模块删除数据库中操作记录表的信息 表3-10 删除操作记录模块IPO表11、删除读者信息模块删除读者信息模块验证能否删除,删除数据库数据 表3-11 删除读者信息模块IPO表12、查询图书信息模块查询图书信息模块图书编号或分类信息或书名关键字查询图书表相关图书信息 表3-12 删除读者信息模块IPO表3.4 性能需求该软件对输入数据、输出数据精度的要求如下表所示:数据类型方向格式字符型输入输出avcAaaa浮点型123.65日期型输出YYYY-MM-DD时间型HH24:MM:SS表3-13 数据精度要求表本图书管理系统要求响应时间低于1秒,更新
16、处理时间、数据的转换和传送时间短,用户等待时间尽可能为0.本系统主要任务是访问后台数据库的数据,并做出相应的处理,所以对数据库的容量要求很高,因此建议设置变长的表空间,这样就可以避免出现分配的空间不够而给用户管理带来麻烦的情况。初始化表空间容量为5M,每次增长的空间为5M。本系统运行过程中可能出现的问题是数据库故障,处理方法是建议用户每天对数据库中的做一次备份,这样如果数据库出现问题,可以立即还原数据,而不造成大的损失3.5 事件跟踪图由于这个系统模块很多,如果画出每个模块的事件跟踪图,会占用很大的篇幅,何况很多模块的事件跟踪图大同小异,所以我决定画出正常情况下读者挂失图书模块、管理员新增图书
17、信息模块、超级管理员查看操作记录模块的事件跟踪图。读者挂失图书模块的事件跟踪图如图3-1所示:图3-1 读者挂失模块的事件跟踪图管理员新增图书信息模块的事件跟踪图如图3-2所示:图3-2管理员新增图书信息模块事件跟踪图超级管理员查看操作记录模块的事件跟踪图如图3-3所示:图3-3超级管理管理员新增图书信息模块事件跟踪图4.总体设计说明书4.1 编写目的总体设计的目的就是回答“概括地说,系统应该如何实现?”这个问题。也就是说这个说明书的编写目的也就是告诉程序员和软件设计人员本图书馆管理系统系统的系统结构和软件结构。编写该软件的程序员、其他软件设计人员、系统分析员。4.2 图书管理系统的系统层次结
18、构图图4-1 是该图书管理系统的系统层次结构图。4.3 图书管理系统的软件结构图图4-2 是图书管理系统的软件结构图5.数据库设计说明书5.1 概念结构设计本课程设计连接数据库是Oracle9i,用的方式是JDBC桥,因此数据库设计尤为重要;本系统E-R图如图3-4 图书管理系统的系统层次结构图图3-5 图书管理系统的软件结构图下:图5-1读者表和书表的E-R图图5-2 管理员表和操作记录表的E-R图5.2逻辑结构设计根据上述E-R模型,我们可以得到该系统的数据库应该包括五个表,分别是:读者信息表、书籍信息表、借阅信息表、管理员表、操作记录表;下面是这五个表的详细属性信息(下划线的是该表的主键
19、):读者信息表:读者编号、姓名、密码、当前可借书册数、当前状态书籍信息表:书编号、书名、出版社、类别、单价、现有藏书量 借阅信息表:借阅编号、读者编号、书编号、借书时间、预计还书时间、标识位、还书时间管理员表:管理员编号、姓名、密码、级别操作记录表:操作时间、发生事件5.3 物理结构设计一般数据库的物理结构设计包括两个方面:为关系模式选择存取方法和设计关系、索引等数据库文件的物理存储结构。本系统没有建立任何索引。6.详细设计说明书6.1 编写目的详细设计阶段的根本目标是确定应该怎样具体地实现所要求的系统,也就是说,经过这个阶段的设计工作,应该得出对目标系统的精确描述,从而在编码阶段可以把这个描
20、述直接翻译成用某种设计语言书写的程序。本说明书是为了给程序员提供出一个程序的“蓝图”,指导他们更好地完成编码任务。本说明书目标读者是:软件设计师、所有参与这个项目的编码人员和测试人员。6.2 界面设计从需求规格说明书中,我们已经知道本系统将使用者分为三类:超级管理员、一般管理员和读者。而且他们的权限各不相同,故需要为他们各自设计主界面,本节将用三个参考模型详细说明三个主界面应如何设计。图6-1是超级管理员主界面设计参考模型。图6-2是一般管理员主界面设计参考模型。图6-3是读者主界面设计参考模型。图6-1 超级管理员主界面设计模型图6-2 一般管理员主界面设计模型图6-3 读者主界面设计模型6
21、.3 一点说明由于本系统模块过多,如果把所有模块的详细设计过程全部写出,实验报告的篇幅将会很长,所以我只写出“添加书的信息”模块详细设计过程,其余模块类似。6.4 “添加书的信息”模块界面设计从需求规格说明书和数据库设计中,我们可以看出,书表的属性有:编号、书名、类别、当前在馆册数、价格和出版社;而为了节省字段,我把书名定义为书名和作者;当前在馆册数初始状态下就是藏书量,一般的图书馆一种书籍的藏书量不会超过5本,所以该项可设计为可选项;由于管理员的工作是很忙的,不可能不出现错误,尤其长时间做同一工作,所以出版社那一栏中我建议初始化为“出版社”,按钮设置方面,“提交”和“取消”是不可缺少的,但考
22、虑到管理员的工作需要,我又设置了一个“重置”的按钮,单击这个按钮后,所有输入栏都将会回到刚打开窗口时的状态;因此,其界面设计参考模型如图6-4所示。图6-4 “添加书的信息”模块界面设计参考模型6.5 “添加书的信息”模块参考方法设计表6-1和表6-2是“添加图书信息”模块参考方法设计方法名称checkID方法返回类型boolean方法形参名称String id前置条件单击“提交”SQL语句select * from book where b_no=id处理结果如果没有这个号码,返回false,反之返回true表6-1 “添加图书信息”模块参考方法1insertBookBook b所有验证都已
23、完毕,且没有异常insert into book values(id ,name,puname,leibie,price,lsnum )如果插入成功,返回true,失败,返回false表6-2 “添加图书信息”模块参考方法27.系统实现7.1 开发环境中央处理器:Core(TM)2 CPU T5600;内存:512MB;主频:1.83GHz;开发平台:JBuider2006;数据库:Oracle 9i;运行平台:Windows XP7.2 关键技术本图书管理系统所使用的关键技术有:JDBC-ODBC桥,JavaGUI程序设计基本技术,数据库增删改查技术,面向对象程序设计技术(类的继承和派生技术
24、)。7.3 运行结果7.3.1访问数据库模块该系统访问数据库使用的是JDBC-ODBC桥的方式,为了节省工作量,需要编写一个类专门用户访问Oracle数据库,这个类的代码如下:package librarysystem.tools;import java.sql.ResultSet;import java.sql.*;public class DBClass implements DBinterface public DBClass() Connection conn=null; Statement stmt=null; ResultSet rs=null; protected static
25、final String DRIVER=oracle.jdbc.driver.OracleDriver; protected static final String URL=jdbc:oracle:thin:localhost:1521:ora9i public boolean createConnect() try Class.forName(DRIVER); conn=DriverManager.getConnection(URL,lmsm,1234); return true; catch(Exception e) e.printStackTrace(); return false; public int getExecuteUpdate(String sql) stmt=co
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1