百度文库-让每个人平等地提升自我11图书管理系统1、需求分析系统任务概述这里我们将图书管理系统的应用对象定位在中小型图书馆。图书馆的主要功能是为注册用户提供图书借阅,主要涉及对图书的管理,借阅者管理,以及图书借阅信息的管理。其中对图书的管理主要是指:对馆藏图书的增删改查;对借阅者信息的增删改查,还有挂失;对借阅者借阅信息的管理。除此之外,只有合法用户才能使用该系统,要实行用户密码登陆。功能需求图书管理系统完整功能需求如下:1)借阅者管理每个通过审查的人可以办理一张借阅卡,拥有用户名、密码,成为注册用户。此卡包含所有个人信息,以后所有图书借阅活动凭此卡进行,直至该卡被注销或删除。因此,对借阅者的管理包括相关信息的添加、修改、删除、检索。2)图书信息管理新书入库:每本新到图书需将详细信息添加入库,方可对外借阅。图书检索:馆藏图书丰富,须提供图书快速查询检索功能。图书信息修改:图书基本信息入库时已基本确定,但是一些辅助信息,如存放位置,是否接触等会有变化,须提供修改功能。图书信息删除:对于太过破旧被淘汰或者丢失的书籍,要从系统信息中删除。3)图书借阅信息管理系统核心功能之一。图书管理系统最主要的功能是对图书的借出和归还。主要涉及被借阅的图书和借阅者,即图书基本信息,借阅者部分信息,借出归还日期等。具体来说,对于借书,首先获得借阅者的信息,看其是否有权利借书,其次检查相关书籍,看其是否被可以被外借;对于还书,同样也需要借阅者信息和图书信息才能还书,同时还要计算本次借阅是否超期,超期要计算出罚款金额,借阅者交了足额罚款才能还书成功。此外,对于历史借还记录要提供查询功能;同时由于存储空间限制,不能永久保存历史记录,还需提供删除记录功能。4)用户登录该系统用户主要有系统管理员和普通注册用户(即持有借阅卡的借阅者)两种。系统管理员拥有所有功能权限,普通注册用户只能管理个人信息和检索需要图书。系统要对不同的用户给予不用权限,每个合法用户凭登录名和密码登陆此系统。5)系统基本信息管理对借阅者类别的设置:对于借阅者设置不同类别,不同类别的借阅者设置不同的借阅图书数量上限。对图书类别的设置:不同类别图书的借阅期限不同,超期后的罚款金额也不同。对系统用户的管理:本系统暂定两类用户,系统管理员和普通注册用户,不同用户拥有不同的使用权限。数据流图百度文库-让每个人平等地提升自我22借还书的过程要和时间挂钩,所以还要有一个数据源点为“系统时钟”,因此得到图书管理系统的基本数据流图1-1。图1-1基本数据流图通过对需求的深入分析,对“图书管理系统”加工进一步细化,得到功能级数据流图1-2。图1-2功能级数据流图通过对图1-2的分析,发现上述的三个加工在工作过程中要涉及一些数据存储。因此得到改进后的功能级数据流图,如图1-3所示。百度文库-让每个人平等地提升自我33图1-3改进后的功能级数据流图再仔细分析图1-3的每个加工是否还能细化,或者还有没有可以补充的加工。我们发现系统中还需要一个加工来专门负责“基本信息的维护”,这样得到进一步的数据流图,如图1-4所示。那么,对于图1-4是否还需要细化呢?比如“借阅者管理”还要先“添加”再“查询”等,这些都是一些比较细节的东西,不需要在需求分析里作过多关注。百度文库-让每个人平等地提升自我44图1-4最终数据流图数据字典对于数据流图中的每个元素,都可以额通过数据字典加以描述,以保证数据定义的严格性,针对上述系统的数据字典如下:借阅者管理=[添加借阅者|修改借阅者|删除借阅者|检索借阅者]图书管理=[添加图书|修改图书|删除图书|检索图书]借阅信息管理=[添加借阅信息|修改借阅信息|删除借阅信息|检索借阅信息]管理个人信息=[检索个人信息|修改个人信息]基本信息维护请求=[对借阅者类别信息的维护|对图书类别信息的维护|对登陆用户的维护]对借阅者类别信息的维护=[对借阅者类别信息的添加|对借阅者类别信息的修改|对借阅者类别信息的删除|对借阅者类别信息的检索]对图书类别信息的维护=[对图书类别信息的添加|对图书类别信息的修改|对图书类别信息的删除|对图书类别信息的检索]对登录用户的维护=[对用户信息的添加|对用户信息的修改|对用户的删除|对用户信息的检索]时间=年+月+日借阅卡信息=借阅卡号+姓名+性别+身份证号+单位+家庭住址+联系电话+借阅者类别+办证日期+已借书数目+是否挂失注册用户=借阅卡信息百度文库-让每个人平等地提升自我55注册用户=借阅者借阅卡号=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]单位:天图书超期每天罚款金额=[|]单位:元系统用户=用户名+密码+是否管理员用户名=1{字母|数字}16密码=1{字母|数字}8是否管理员=[是管理员|不是管理员]百度文库-让每个人平等地提升自我66是管理员=1不是管理员=0ER图根据上一小节的数据字典,得到系统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)否是百度文库-让每个人平等地提升自我77家庭住址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系统用户表字段名称数据类型是否关键字是否可以为空百度文库-让每个人平等地提升自我88用户名Varchar(20)是否密码Varchar(20)是否是否是管理员boolean否是性能要求总体来说,系统在性能上没有太多的特殊要求,只要进行图书查询时没有明显的延时就行了,希望查询的响应时间不超过3秒,其他一些要求如下:系统最小寿命:在无重大改动的情况下,正常运行5年以上。设备要求:计算机稳定性良好,整套系统经济实惠。在使用上:要求系统易理解,易学习,易操作。在安全性上:要求系统安全可靠,容错,易恢复。在数据集中上:要求用统一的数据库实现数据的完整性和实时性。在可维护性上:要求系统可修改,可测试,可扩充,可移植。百度文库-让每个人平等地提升自我992、系统设计总体设计通过对需求分析阶段文档做更深入的分析,我们进一步复查和细化数据流图,得到改进后的数据流图,如图2-1所示。图2-1细化的系统数据流图可以看出图2-1的数据流图并没有一个很明显的事务中心,因此可以把它看成一个变换流,通过使用一个面向数据流的设计方法得到系统的软件结构图,如图2-2所示。百度文库-让每个人平等地提升自我1010图2-2图书管理系统的软件结构图该图是未经精化的软件结构图,通过对用户需求的进一步分析,结合软件设计的高内聚和低耦合标准,得到精化后的软件结构图,如图2-3所示。百度文库-让每个人平等地提升自我1111图2-3精化后的系统结构图详细设计根据前面总体设计的软件结构图,下面我们依次具体设计每个模块实现的方法和相关的交互界面。2.2.1用户登陆模块由于本系统有系统管理员和注册用户,不同的用户登陆后拥有不同的权限,所以在系统开始时,需要有登陆模块来实现此功能。该模块可以给任何人使用。模块的输入:用户名、密码。模块的处理:系统根据用户输入的用户名和密码到后台数据库相应的记录中查找,如果没有则给出相应的提示不予进入,如果有则根据其不同身份进入不同处理界面。模块的输出:对于非法用户给出相应提示,对于合法用户,进入相应处理界面。用户登陆模块的PAD图如图2-4所示。百度文库-让每个人平等地提升自我1212图图2-4登陆模块的PAD图该模块的交互界面设计,如图2-5所示。图2-5用户登陆模块的交互界面百度文库-让每个人平等地提升自我13133、系统编码百度文库-让每个人平等地提升自我14144、软件测试概述4.1.1图书管理系统概述本系统的主要功能包括入库图书的管理、图书借阅卡的管理、图书借还的管理以及系统使用者的管理。4.1.2系统的测试计划(1)需求分析阶段列出的系统的每个功能都要求是“可测试”的。(2)设计阶段每个具体功能的实现都要考虑到其测试用例的设计。(3)编码实现阶段对每个模块做单元测试,然后做集成测试。(4)最后和用户一起做验收测试。4.1.3测试人员安排系统的需求工程师扮演测试负责人的角色,负责对测试的总体把握;每个模块的编码者负责自己模块的单元测试;另外一名专门的软件测试工程师负责系统的集成测试并配合测试负责人的工作。测试方法和步骤4.2.1系统的测试方法本系统各个模块的功能集中在对数据库的处理以及对用户交互界面的设计,系统内部并没有设计复杂的算法和数据结构,因此测试方法采用侧重测试功能的黑盒测试为主,对个别重要模块可以额辅以白盒测试。4.2.2系统测试步骤先进行单元测试,再进行集成测试,遵循自底向上的策略。对于每个测试用例都要考虑合法和非法的测试情况。测试过程4.3.1系统的测试内容测试1:系统登录测试测试2:借阅者管理测试测试:添加借阅者测试测试:修改借阅者测试测试:删除借阅者测试测试:查询借阅者测试测试3:图书管理测试测试:添加图书测试测试:修改图书测试测试:删除图书测试测试:查询图书测试测试4:借阅管理测试对4个子模块分别进行单元测试,然后再进行集成测试测试:借书测试首先需要测试输入正确的借阅卡号,能否正确显示该借阅卡的信息,以及当输入错误的借阅卡号时,能否给出相应提示;接着需