软件工程图书馆管理系统.docx
《软件工程图书馆管理系统.docx》由会员分享,可在线阅读,更多相关《软件工程图书馆管理系统.docx(31页珍藏版)》请在冰豆网上搜索。
软件工程图书馆管理系统
小规模的软件开发
本章通过一个实例——图书馆管理信息系统的设计,介绍按软件工程的原理、方法开发软件的全过程。
由于图书馆管理信息系统的需求学生比较熟悉,所以理解起来比较容易。
编程语言采用较易掌握的VisualBasic,提供的设计、实现、测试是系统的,核心源代码以文字方式说明。
在实际系统的开发过程中,系统的设计与开发往往需要一个团队集体完成,所以分工合作、协调工作能力、团队精神是非常重要的。
对于同一个管理信息系统的开发,开发方法不是唯一的,可以采用传统的软件工程方法,也可采用面向对象的方法,开发过程没有标准答案。
为了突出重点,对系统进行了简化。
8.1“图书馆管理信息系统”的立项背景
图书馆是高校的文献信息中心,是为学校教学和科学研究服务的学术性机构,是学校信息化的重要基地。
图书馆的工作是学校教学和科研工作的重要组成部分,是学校师生学习和研究的重要场所。
为了适应数字化信息环境,一种成功的跟踪最新技术,充分利用软硬件资源的“图书馆管理信息系统”孕育而生。
某综合性大学的图书馆,其服务对象主要是该校的教师和学生。
随着学校规模的不断扩大,现有教职工约3000人、学生20000人左右,馆藏各类图书近200多万册,期刊近4000多种,图书馆工作人员约90人,每天的借阅量近千册。
在图书馆的图书数量不断增加、读者数目不断增长,对图书馆信息管理自动化和准确化要求日益强烈的背景下,为了实现图书馆信息管理工作网络化,以及实现网络查询和统计一体化而开发的管理信息系统。
该系统不仅为图书馆管理员提供一个个性化的界面,将读者需要的各种服务集中起来,图书管理员只需一次登录就可以使用所有服务;也为读者提供信息查询服务,读者可以很方便地进行图书和借阅情况查询。
从图书信息的输入到读者借阅图书信息的管理,都可以通过这个系统完成。
虽然图书馆在某些局部工作中使用了计算机,但尚未建立起真正的集成自动化系统,大部分业务工作仍靠手工完成。
由于图书馆陈旧的管理手段给读者和图书馆管理员带来的很多操作上的不方便,同时为了提高工作效率、服务质量和管理水平,并使图书馆管理人员从繁琐的工作中解脱出来,所以下决心开发图书馆管理系统。
本图书馆管理信息系统在原有手工系统的基础上,增强数据库管理技术,增加图书信息的管理、读者信息的管理、读者借书和还书信息的管理等功能。
通过进一步收集、整理、存储关于图书、读者的主要数据,以及原有系统的作业流程信息,为日后建立数据仓库做好准备。
本系统采用最新的计算机技术,界面友好、操作方便,管理员可以针对不同需求分类、排序、查询、统计,方便读者和其他部门根据自己的需求准确、快速地查询图书信息,实现以计算机辅助形式代替传统的手工查找形式,减轻图书信息管理人员的劳动强度,提高图书馆的工作效率和水平,更好地为读者服务,从而使图书和读者管理更加合理化和科学化。
8.2可行性研究
在项目可性行研究阶段,分析人员对图书馆工作环境进行了实地调查。
同主要领导、管理人员和工作人员进行了交流,对手工工作情况、工作流程、所完成的任务及目前存在的问题、新系统要解决的主要问题等进行初步调查。
初步调查研究的结果成为可行性研究的前提。
8.2.1现有系统存在的问题
目前,学校图书馆的部门有采编部、图书借阅部、电子阅览室、期刊阅览室、技术服务部和办公室等部门,负责各自相关的工作。
图书馆存在的主要问题有:
1.图书馆的业务工作涉及各类数据量大,读者人数多。
手工模式下的工作劳动强度高,效率低,错误多,处理速度慢。
2.在各类业务工作中,编目工作具有智力程度高、工作量大的特点,是图书馆工作流程中的瓶颈。
手工编目工作存在成本高、劳动重复和编目结果总体不一致等问题,编目规范难以彻底贯彻。
3.在手工工作中,很多理论上可行的工作方法,如读者预约借书等工作,实际难以实现。
4.业务工作中存在着大量查找工作,如图书查询、读者查询等,手工查询方式速度慢,查准率和查全率低,影响了图书馆的服务质量。
针对以上问题,需进行图书馆管理信息系统的开发工作。
在本次开发中,开发工作涉及采编部、借阅部、期刊部等四个部门。
技术服务部、阅览室、办公室等部门不在系统开发范围之内。
为了节省篇幅,这里主要介绍借阅子系统的开发。
8.2.2新系统的功能
本系统开发的目的,就是通过系统开发,实现图书馆有关部门工作的计算机化,提高关键业务环节的处理速度和规范化程度,并对有关的工作进行集成和重组,通过网络系统加强本图书馆同其他图书馆之间的业务联系,提高业务工作水平,进而全面提高工作效率和质量,更好地为读者服务。
图书馆管理信息系统的应用可大幅度提高图书馆工作的效率和质量,这主要表现在以下几个方面:
1.联机编目
编目是组织图书馆文献资源的手段。
编目工作所形成的图书馆书目体系是管理、揭示和利用馆藏的唯一工具,也是图书馆重要的数据资源。
编目工作具有多种工作形式,其中联合编目是多馆协同合作编目的一种方式。
联合编目克服了各馆分散编目所造成的编目成本高、重复劳动和编目结果总体不一致问题,提高了编目效率和质量。
联合编目的实施需要一个基本的编目环境,即联合编目的管理中心和成员馆之间便捷的数据存取途径,而在当前技术条件下满足这种环境要求的配置是广域网环境下连接各成员馆内的自动化系统。
在编目过程中,各成员馆应同编目的管理中心联机,以完成编目数据的共享、数据上载和一致性的验证。
2.查询服务
在图书馆管理信息系统中,计算机对大量的书目数据进行了有效的管理。
作为图书馆自动化系统的重要功能,公共查询充分发挥了计算机大容量、高速度的特点,多检索途径索引的建立和组合逻辑检索使读者摆脱了卡片目录查找的不便,极大地提高了查全率和查准率,降低了查找时间。
3.有效的业务管理
图书馆管理信息系统的应用降低了图书馆业务工作的强度、提高了工作质量和效率。
很多手工工作方式中无法实现的功能,如流通系统中的多双轨制管理模式,公务目录和读者目录中多套目录体系的维护等,都变得简单、易行,使图书馆业务工作更为有效。
4.便捷的读者服务
图书馆管理信息系统使直接面向读者的服务发生了巨大的变化。
读卡器等输入输出设备的应用使读者的查询、借阅等方面更为便捷、准确有效。
读者可以通过校园网,在学校的每个办公地点和家庭进行图书的查询、预约、续借乃至馆际互借,图书馆的读者服务工作质量和效率得到明显的提高。
8.2.3软件开发环境
1.开发方法:
面向过程开发方法+面向对象开发方法
随着面向对象开发语言的普及,面向对象开发方法自然成为大多数项目开发团队首选的方法。
选用哪种开发方法取决于项目本身的特点和项目组成员的专长。
这里以面向过程开发方法为主(模块利用数据流图进行分析),辅之以面向对象(利用UML建模的用例图对系统的角色进行用例分析)的综合开发方法,来完成该项目的设计与实现。
2.开发模型:
瀑布模型
瀑布模型是阶梯式的生命周期法。
软件的生存周期由立项、需求、计划、设计、编程、测试、维护等阶段组成,前一阶段的输出为后一阶段的输入,后一阶段以前一阶段的结果为依据,每一阶段的结果都要经过严格的评审,直到产生最终的阶段成果。
“图书馆管理信息系统”采用瀑布模型主要根据以下几点:
(1)开发人员在需求分析期间能够对用户的需求进行比较深入和全面的了解,开发期间需求没有或者很少发生变化。
(2)分析人员对需求环境的业务流程、信息传递和需求目标比较熟悉,需求风险比较低。
(3)用户使用环境比较稳定,主要在图书馆内使用。
(4)用户除了提出需求以外,很少参与开发工作。
3.开发工具:
VisualBasic6.0+Visio2003+PowerDesigner11+MicrosoftAccess鉴于“图书馆信息系统”属于中小型信息系统,因此用VisualBasic+Access的设计方案能够满足用户的需要,缩短开发周期。
Visio主要用于制作DFD、界面设计及UML建模,PowerDesigner11用于数据库概念模型设计和物理模型设计。
8.2.4可行性分析
1.经济可行性
学校图书馆用于系统开发的预算基本可满足设备投入和人力投入。
就收益而言,由于图书馆自动化系统主要的效益是社会效益。
系统一旦投入使用,将会极大提高图书馆的工作效率和工作质量,为读者创造一个更好的环境和服务。
2.技术可行性
现行的计算机技术、数据库技术和网络技术完全能实现本系统的功能要求,并且系统开发人员都是学校从事计算机教学和科研的教师,既有理论知识,又有实践经验,完全可以开发出满足要求的图书馆管理信息系统。
3.社会可行性
系统开发和开发后的运行等活动不违反现行法律,没有对他人的专利、版权造成侵犯,与现行的管理制度没有冲突。
从系统的使用人员来看,可大致分为以下几类:
学生、教职工、图书馆管理人员和行政人员。
用户的素质较高,大部分受过高等教育,而且新开发的软件系统友好的界面及简便的操作方法,保证能满足绝大多数用户使用该系统的要求。
现有图书管理人员通过培训完全能掌握系统和方便地使用系统。
鉴于以上分析可知,该图书馆管理信息系统开发项目不仅技术上可行,而且还会带来巨大的社会效益。
因此,可行性研究最后认为:
该图书馆管理信息系统具备系统开发的条件,项目可行,建议开始开发。
8.3需求分析
8.3.1需求分析概述
需求分析是开发软件系统的重要环节,是系统开发的第一步和基础环节。
通过需求分析充分认识系统的目标、系统的各个组成部分、各部分的任务职责、业务范畴、工作流程、工作中使用的各种数据及数据结构、各部门的业务关系和数据流程等,为系统设计打下基础。
需求分析的好坏往往决定了系统开发的成败。
需求分析从系统的调查研究入手,需求分析要对系统的各个方面有全面的了解,既包括系统内部的各个方面,也包括与系统有联系的各种外部因素。
通过调查研究和分析,对系统产生比较深刻的认识。
需求分析阶段的最终结果是“需求分析说明书”,它涵盖了对用户环境、事务处理和信息流程分析的一切成果,供项目开发组和用户共同遵守。
如果采用瀑布模型,就要对“需求分析说明书”进行冻结,使它成为凝固可靠的基线。
万一要求变更基线,开发者和用户双方,都必须执行基线变更程序,此变更程序在合同中已做了明确规定。
现针对“图书馆信息系统”对图书馆的组织结构、业务流程、用户角色职能、系统数据流进行分析。
利用结构化分析和UML中的用例从大到小、从粗到细进行系统建模。
8.3.2组织结构调查
系统的组织结构,反映了单位内部各个部门的职责划分和它们之间的关系。
为了对系统有一个全貌性的了解,首先要对系统内部部门结构、人员组织及用户情况有所了解。
对系统组织结构的调查,是从总的方面对系统进行宏观了解和分析。
信息的流动关系是以组织结构为背景的,而且总是伴随着组织部门之间的资金流和物流的传递而产生。
图书馆系统的组织结构如图8-1所示。
图8-1图书馆内部的组织结构图
图书馆由馆长负责全面工作,下设办公室、采编部、图书借阅部、电子阅览室、期刊阅览室和技术支持部。
各部门的业务职责如下:
办公室:
协助馆长负责日常工作,了解客户需求,制定采购计划。
采编部:
负责图书的采购、入库和图书编目,编目后的图书粘贴标签,并送图书借阅部上架借阅。
图书借阅部:
提供对读者的书目查询服务和图书借阅服务。
电子阅览室:
收集整理电子读物,提供电子读物的借阅服务。
期刊阅览室:
负责期刊的收集整理和借阅。
技术服务部:
完成拍照、复印工作及计算机等设备的维护工作。
8.3.3系统用户分析
“图书馆管理信息系统”主要是针对图书借阅工作而开发的应用软件。
通常有系统管理员、图书管理员和读者三种用户,他们的使用权限如下:
系统管理员:
计算机人员,对系统、数据库进行维护,主要对不同人员赋予不同的权限。
图书管理员:
对图书信息进行录入和统计。
读者:
一般操作水平,能够在本系统查询个人信息和图书信息。
8.3.4UML用例图建模
图8-2是根据用户的职能建立的用例图。
图8-2中<>表示包含关系,表示被包含用例是被多个包含用例使用的一个可复用模块,而<>表示对用例的扩展。
图8-2图书管理系统业务用例图
8.3.5数据流图
数据流图是全面描述系统逻辑模型的工具,它抽象概括地把系统中各种业务处理过程联系起来。
为突出重点,本章只对借阅部分的工作进行数据流分析。
在画“图书馆信息系统”的数据流图时,首先要画出整个顶层图,以保证对整个系统的概况有个整体了解,然后把顶层图中的细节用下一层次的数据流程图来表示,按照由粗到细、逐层细化的原则对系统的各个模块进行深入的分析。
图8-3是“图书馆信息系统”的顶层数据流图。
图8-3“图书馆管理信息系统”的顶层数据流图
项层图只是粗略地给出了整个系统的数据流情况,为了更好地把“图书馆管理信息系统”中各个模块的具体数据流处理细节表示出来,可以在顶层图的基础上自顶向下地继续分解,得到1层数据流程图,如图8-4所示。
图8-4图书馆管理信息系统l层数据流图
在1层数据流图中对“图书馆信息系统”的顶层图进行了细化,分解成系统管理、图书管理、借阅管理和读者管理4个功能模块。
由于1层数据图仍然不够详细,因此需要对1层数据流图中各个加工进一步细化,单独画出一张数据流图,如图8-5至图8-7所示。
图8-5中图书管理主要由图书信息管理、图书资料管理、出版社管理和注销管理组成。
图书管理员将图书信息输入系统,并根据图书信息确定图书的类别和出版社;如果有图书丢失等情况,图书管理员还要进行图书注销处理。
图8-5加工2“图书管理”的数据流图
图8-6中读者管理主要由读者类别管理和读者信息管理组成。
系统管理员把办理借阅图书业务的读者信息输入系统,并根据读者办理的借阅情况设定不同的借阅等级,根据等级不同,对读者的借阅时间和数量进行相应的设置。
图8-6加工3“读者管理”数据流图
图8-7中借阅管理主要由借书管理、续借管理和还书管理组成。
主要管理读者的图书借阅(包括续借)和图书归还操作,根据读者的类别和读者信息限定读者借阅图书的数量和归还日期,并检查读者是否有过期借阅、丢失或损坏图书的情况,如果有则按照相关规定对读者进行罚款。
图8-7加工4“借阅管理”数据流图
8.3.6数据字典
为了对数据流图中各元素进行详细的说明,采用了数据字典的说明方法。
由于篇幅限制,仅对图书馆管理信息系统数据流图的部分数据字典举例说明如下:
1.数据流条目
数据流名称:
图书录入信息
简述:
图书采编信息
数据流来源:
图书购买后,由图书馆管理人员编码整理后,输入计算机
数据流去向:
加工2.1图书信息管理,该加工将录入的数据存入数据库(图书信息表)
数据项组成:
图书ID+图书类别+书名+作者+译者+出版社+单价+出版日期+购买数量
数据流量:
80本/天
高峰流量:
500本/天
数据流名称:
图书查询信息
简述:
图书查询信息
数据流来源:
读者
数据流去向:
加工2.1,图书信息管理
数据项组成:
图书编码|书名|作者|出版社
数据流量:
2000次/天
高峰流量:
4000次/天
数据流名称:
查询情况
简述:
返回给读者的查询结果
数据流来源:
加工2.1图书信息管理
数据流去向:
读者
数据项组成:
查无此书|符合条件的图书数量+{图书馆藏号+图书类别+书名+作者+出版社+出版日期+在库册数}
数据流量:
2000次/天
高峰流量:
4000次/天
数据流名称:
读者录入信息
简述:
读者信息
数据流来源:
图书管理员
数据流去向:
加工3.2读者信息管理,该加工将录入的数据存入数据库(读者信息表)
数据项组成:
读者ID+读者编号+读者姓名+读者性别+出生日期+办证日期+读者状态+已借书数+证件名称+证件号码+读者单位+读者部门+联系电话+联系地址+电子邮件+备注
数据流量:
80人次/天
高峰流量:
500人次/天
2.加工条目
加工名:
读者信息管理
处理逻辑编号:
3.2
处理逻辑:
接收读者信息的录入,并检查有无错误,如果没有错误,将数据存入读者信息表
激发条件:
接收到读者信息时
输入:
读者录入信息
输出:
读者信息
加工名:
还书管理
编号:
4.2
处理逻辑:
在借阅信息表查找应还日期
IF当日期日期超过应还日期或图书丢失THEN发“罚款信息”
ELSE将还书信息存入还书信息表
激发条件:
接收到读者借书证时
输入:
还书信息
输出:
罚款信息
3.数据存储条目
数据存储编号:
D1
数据存储名称:
读者信息表
简述:
存储读者详细信息
组成:
读者ID+读者编号+读者姓名+读者性别+出生日期+办证日期+读者状态+已借书数+证件名称+证件号码+读者单位+读者部门+联系电话+联系地址+电子邮件+备注
关键字:
读者ID
组织方式:
索引文件,以读者ID为关键字
相关连的处理:
加工3.2、加工4.1、加工4.2
数据存储编号:
D2
数据存储名称:
图书信息表
简述:
存储图书详细信息
组成:
图书编号+图书名称+标准ISBN+类别编号+类别名称+书架位置+作者+译者+出版社名+出版地点+图书页数+图书价格+现存量+库存总量+借阅次数+是否注销+入库日期+出版日期+内容简介+备注
关键字:
图书编号
组织方式:
索引文件,以图书编号为关键字
相关连的处理:
加工2.1、加工4.1
数据存储编号:
D3
数据存储名称:
借阅信息表
简述:
存储借书情况的详细信息
组成:
图书编号+图书名称+读者编号+读者姓名+借阅数量+借阅日期+应还日期+续借次数
关键字:
无
组织方式:
普通文件
相关连的处理:
加工4.1、加工4.2
4.数据项条目
数据项名称:
读者编号
别名:
证号
简述:
给每个读者的一个唯一的、做标识用的号码
组成:
单位代码+流水号码
类型:
字符串
长度:
6位
取值范围:
000000..999999
数据项名称:
办证日期
简述:
给读者签发借书证的日期
组成:
年+月
类型:
字符串
长度:
6位
取值范围:
有意义的年、月值
数据项名称:
读者类别
简述:
读者在图书流通管理中的身份和借出权限的类型
组成:
[教师|行政人员|学生]
类型:
1个字符
长度:
1位
取值范围:
[0|1|2]
8.3.7IPO图
借阅工作应完成借还管理、图书管理、读者管理、查询统计和系统管理等功能,如图8-8的IPO图所示。
图8-8图书馆管理信息系统的IPO图
8.3.8用户其他需求
1.性能要求
查询服务部分:
读者通过本地计算机,从提交查询命令到返回结果不超过8秒钟。
数据管理部分:
图书管理员从提交一次录入到结果返回不超过8秒钟。
2.灵活性要求
如果要为数据项设计编码,尽可能采用行业标准,自行编码也应合乎规范,并留有扩充余地,还要征得相关业务部门认可。
数据库设计也应考虑可扩充性,以适应今后图书馆发展和系统升级的需要。
3.故障处理要求
正常使用时不应出错,一般性错误时应给出错误提示。
应提供定期自动备份数据库的功能,当遇到不可恢复的系统错误,可以保证数据库完好无损。
在系统出错后,应能恢复最近一次备份数据库的状态。
4.其他要求
①安全性。
不同的用户具有不同的使用权限,只有具有最高权限的系统管理员才能修改、注销数据库中的信息,具有一般权限的人员只能读取与自己相关的内容。
②一致性。
系统的数据要保证一致性、准确性,当某一数据库中记录改变时,与之相关联的数据库也会随之变化。
③易操作性。
界面设计要符合大多数用户的操作习惯,系统还要提供操作指南,便于用户操作使用。
8.4概要设计
软件开发的第二个阶段是概要设计,在需求分析阶段确定了系统“做什么”的基础上,设计系统“怎么做”。
概要设计注重于宏观上和框架上的设计,它的设计内容包括软件系统的总体结构设计、数据库(包括数据结构)设计、外部接口设计、功能部件分配设计、部件之间的接口设计等。
8.4.1系统结构设计
1.系统功能模块的划分
概要设计的核心问题是确定系统总体结构和模块划分。
系统功能要层层划分,直到每一个模块可以作为一个可以执行的程序单元为止。
功能模块划分的最终结果,是系统结构图。
根据需求分析,该图书馆管理信息系统可由图书管理、读者管理、借阅管理、系统管理、系统帮助等子系统组成,如图8-9所示。
图8-9图书馆管理信息系统的系统结构图
2.各子系统的主要功能
(1)图书管理子系统
即管理和维护图书的各项数据信息,包括书名、作者、出版社、版本号、出版日期、图书类别号及是否在库等信息,以及注销图书、维护出版社资料。
其中图书类别号必须是图书类别表中的一种。
允许图书管理员和系统管理员添加图书信息和查询图书信息。
图书类别管理:
即管理和维护图书类别数据,主要有类别编号和类别名称两项。
允许图书管理员和系统管理员添加图书类别信息和查询图书类别信息。
该子系统功能由bookinfor模块完成。
(2)读者管理子系统:
即管理和维护读者的各项数据信息,包括读者ID、姓名、读者类别、已借图书数、是否有超期欠款及每天罚款金额等。
其中读者类别分为3类:
学生(借书5本,借期1月),类型代码2;行政人员(借书8本,借期2月),类型代码1;教师(借书8本,借期3月),类型代码0。
当超期欠款大于3.00元时,读者将不能继续借阅图书。
当读者离校被删除时,读者被设为无效,也将不能再借阅图书。
允许图书管理员和系统管理员添加读者信息、删除读者信息和查询读者信息。
该子系统功能由reader模块完成。
(3)借阅管理子系统
即管理和维护图书的借阅、归还及读者的缴纳超期欠款等信息。
包括读者所借阅的图书号、借阅日期、应该归还的日期、实际归还的日期及超期欠款数等数据。
主要功能有图书借阅、图书归还、缴纳罚款和续借图书4项功能。
该子系统功能由borrow模块完成。
(4)系统管理子系统
即管理和维护用户的各项数据信息,包括用户ID、姓名、密码和用户类型。
主要有添加删除用户信息、修改用户密码、系统初始化和系统备份等4项功能。
用户类型决定了用户的权限管理,系统定义了3种用户权限:
第1种是图书管理员,代码2,只能登记图书借阅和归还信息,查看图书类别和图书信息;第2种是高级管理员,代码l,除了普通管理员的权限,还能添加新的图书资料和图书类别资料,管理读者信息(添加、删除和查询);第3种是系统管理员,代码0,能够执行任何命令,除了高级管理员的权限,还能够执行用户管理操作(如添加新用户、删除和查询用户信息等)。
该子系统功能由arrangment模块完成。
(5)系统帮助子系统
即为用户提供操作帮助,解决用户使用过程中遇到的一般性问题。
该子系统功能由help模块完成。
8.4.2数据库设计
数据库是应用系统的核心,应当精心设计,以保证系统的正确、可靠、高效运行。
数据库设计包括数据库需求分析、数据库概念设计、数据库逻辑结构设计和数据库物理设计。
数据库设计的目的,是为信息系统在数据库服务器上建立一个理想的数据模型。
1.数据库需求分析
图书馆管理信息系统的数据库主要用于图书信息、读者信息、图书管理员信息和图书借阅信息的管理,因此数据库设计必须充分满足这些功能要求。
根据系统结构设计中各子系统的功能要求,可确定数据库的具体需求如下:
(1)读者信息管理部分
A、图书管理员可对读者信息进行维护,如添加、删除读者信息等。
B、图书管理员可通过读者ID查询读者信息,因此读者ID必须惟一,且为必填字段。
C、每个读者必须对应一种读者类型(教师、行政人员、学生),数据库根据读者类型判断读者可借阅的图书数量和借阅期限。
D、在读者已经借阅图书信息中必须包含读