图书管理系统软件开发设计说明书.docx
《图书管理系统软件开发设计说明书.docx》由会员分享,可在线阅读,更多相关《图书管理系统软件开发设计说明书.docx(19页珍藏版)》请在冰豆网上搜索。
图书管理系统软件开发设计说明书
概要设计说明书
1引言
1.1编写目的
在本图书借阅管理系统项目的前一阶段,也就是需求分析阶段中,已经将系统用户对本系统的需求做了详细的阐述,这些用户需求已经在上一阶段中对图书馆及相关人员的实地调研中获得,并在需求规格说明书中得到详尽得叙述及阐明。
本阶段已在系统的需求分析的基础上,对图书借阅管理系统做概要设计。
主要解决了实现该系统需求的程序模块设计问题。
包括如何把该系统划分成若干个模块、决定各个模块之间的接口、模块之间传递的信息,以及数据结构、模块结构的设计等。
在以下的概要设计报告中将对在本阶段中对系统所做的所有概要设计进行详细的说明。
在下一阶段的详细设计中,程序设计员可参考此概要设计报告,在概要设计对图书借阅管理系统所做的模块结构设计的基础上,对系统进行详细设计。
在以后的软件测试以及软件维护阶段也可参考此说明书,以便于了解在概要设计过程中所完成的各模块设计结构,或在修改时找出在本阶段设计的不足或错误。
该文档预期读者为开发组设计人员。
1.2背景
本项目名称:
图书借阅管理系统
本项目是由徐卓然老师提出来的
项目开发人员:
杜红艳,周倩,黎华兵,叶一炳,陆益
续期读者:
所有在校的学生(包括专科,本科,研究生),老师(包括在职老师和离退休老师),以及其他行政人员
1.3定义
1.3.1专门术语
SQLSERVER:
系统服务器所使用的数据库管理系统(DBMS)。
SQL:
一种用于访问查询数据库的语言
事务流:
数据进入模块后可能有多种路径进行处理。
主键:
数据库表中的关键域。
值互不相同。
外部主键:
数据库表中与其他表主键关联的域。
ROLLBACK:
数据库的错误恢复机制。
1.3.2缩写
系统:
若未特别指出,统指本图书借阅系统。
SQL:
StructuredQueryLanguage(结构化查询语言)。
ATM:
AsynchronousTransferMode(异步传输模式)。
1.4参考资料
图书借阅管理系统需求说明书
《现代软件工程》---------陈松乔等编著----------清华大学出版社
2总体设计
2.1需求规定
本项目是为了方便读者,图书管理员而设计的,读者可以直接输入相关书名、作者、出版社或者关键字到客户端系统,系统将在屏幕上显示所要查询图书信息(数量及所在位置),同时,读者输入图书证号和密码登录后,可查看自己的个人信息以及借阅图书情况(借阅图书信息,借阅日期等),读者可以在登录后输入自己想要借阅的图书信息来进行预定或解除预定;图书管理员输入登录名和密码登录系统,当读者需要借书时,图书管理员输入读者图书证号查看读者是否可以借书,如果可以再输入图书ID,如果该图书没有被其他读者预定即可给予借阅,该读者借阅信息上将新增加一条借阅该书相关信息。
如果读者要还书,图书管理员输入图书ID后系统自动检测该图书是否过期,如果过期则计算相应的罚款,否则读者可以续借,此时图书管理员只需修改借阅日期,否则更新读者借阅信息和图书库信息。
2.2运行环境
操作系统为windows系列
数据库SQLserver2008
软件平台为vs2008
2.3基本设计概念和处理流程
2.3.1体系结构设计
C/S体系结构的数据库应用,由两部分组成:
客户应用程序和数据库服务器程序。
二者可分别称为前台程序与后台程序。
运行数据库服务器程序的机器,称为应用服务器,一旦服务器程序被启动,就随时等待响应客户程序发来的请求;客户程序运行在用户自己的电脑上,对应于服务器电脑,可称为客户电脑。
当需要对数据库中的数据进行任何操作时,客户程序就自动地寻找服务器程序,并向其发出请求,服务器程序根据预定的规则做出应答,送回结果。
从原理和经验上看,对本案例或类似的应用,C/S结构是目前技术条件下,能较好适应不确定和变化的需求环境的比较现实的方案。
它可以以较低的投入,实现将易变与稳定的要素分离,快速地增添和替换“瘦小”而互相独立的前台应用,保持数据的连续性和继承性。
3.3未来的需求
在这个案例中,用户确认了这样的应用发展策略:
由点到面,由简到繁逐步引进电脑化作业方法,稳步改进日常的业务模式,并期望于时机成熟的时候开展基于信息技术的业务流程重规划。
具体应用的规划是:
先建立简单有效的数据库应用,进一步开发更多的,更具专业性、更深入的应用项目,进而在更大的范围上应用,最终期望将客户也纳入到电脑系统的用户中来,实现客户与销售人员的远程在线查询、下单。
在指导性的发展规划中,具体提出了企业内部的互连网(Intranet)和面向国际互连网(Internet)的应用远景。
在这样的应用策略下,对电脑应用的开发,将是一个逐步完善的过程,对这样的开发环境,上一节中已经做了分析。
以目前的技术看,先建立C/S结构的局域网络应用,再向Internet/Intranet模式下数据库应用过渡,是比较现实,相对易于把握、成本较低的。
即使是一次到位的开发,对于类似的环境和小型的应用而言,要想实现不同的人员,从不同的地点,以不同的接入方式(比如LAN,WAN,Internet/Intranet等)访问和操作共同的数据库,并有效地保证和管理数据的安全性、访问权限、完整性,采用C/S架构和支持C/S架构的数据平台,是必然选择。
3.4成本和资源的考虑
由于用户已经建立并运行着LAN、文件服务器,并运行着(并且以后也要继续运行)一些基于PC或PCLAN的应用,现行的硬件设备基本上不用大的扩充,就可以运行基于文件服务器的多用户数据库或基于应用服务器的C/S应用。
采用C/S体系结构,客户所支出的费用项目,将增加数据库平台和对其维护的成本,和可能需要增加适合数据库平台运行的应用服务器操作系统。
这样,从现有资源出发,不考虑开发的成本,最直接而经济的实现方案,是建立基于文件服务器的多用户系统,其次才是C/S体系结构。
相比之下,主机模式无论从软硬件投资、开发成本上都是巨大的,没有什么理由替代前两种模式。
3.5发布、运行与维护的考虑
由于数据库用户的地理位置和数量增加的可能,需要考虑安装上的因素。
C/S结构的应用至少需要设置客户和服务器两个项目,而基于文件服务器的应用,通常只需要一次性的安装和设置。
现在的客户服务器开发技术,可以将客户端作成简单复制一个瘦小的执行文件就可以运行,客户端通常没有维护的要求,对服务器的安装设置则是一次性的。
对于非C/S架构的数据库系统来说,维护方面的性能也是在应用程序的开发中决定的。
这样的系统,通常都需要原设计开发者才能比较好地维护。
C/S架构的数据库系统,由于数据库是建立在通用的平台之上,并且支持SQL这样的通用技术,对数据库的维护工作更加专业,但更为开放,这意味着维护和进一步开发对原设计开发者的依赖性可以降低。
用户可以更好地适应人员的流动或服务/供应商的变更。
对体系规划的合理性,和一些特殊技术的采用,例如后台服务器上的存储过程、触发器等,会影响到这个特点。
出于这个理由,在C/S应用设计时,应尽可能采用规范的模式,标准化的技术。
同样的努力,在其他架构中就相对难以实现或较少实际意义。
3.6性能、开发与品质保证的考虑
非C/S结构应用的性能,更大程度取决于应用程序的设计与实现。
基于文件服务器运行的多用户系统,当数据量、用户数扩大时,性能就会严重下降,这包括巨大的网络传输量,以及难以有效地平衡工作站与服务器的负荷。
因此,大的数据容量和多用户环境,通常是采纳C/S结构的一个重要理由。
主机-终端模式虽然可能更具能量,但高成本和封闭性,限制了它的应用领域。
从运行上来看,同样设计良好的系统,C/S结构引入了更多的“衔接”环节,这意味着故障的机会和资源的耗费,然而,一旦系统处于开放的网络与应用环境中,这些开销就变成是必须的。
对于具备良好的规划能力的开发者而言,C/S结构给予规划者更大的空间和更强的支持,易于实现不同应用间的合理分离,分别调试和投入应用。
前台应用和后台数据库的开发,被“强制”地分开;数据库部分的逻辑与规则,一经调试完成,就可以在将来的应用中一直保证下去;在一个动态改进或逐步扩充的开发环境,或复杂的应用环境中,这些都是提高系统可靠性有利因素。
对基于文件服务器的系统而言,每次增加或修改功能,通常都意味着整个系统的升级,前后台的一体化,也就意味着每次变更都有更大的可能性造成对原有规则的破坏,并引起连锁效应。
以目前的技术环境而言,在C/S结构下,有更多成熟的,适合不同规模应用的开发平台与数据库平台可供选择,并普遍遵循或采用SQL等标准或技术,相对较具开放性,有更多的技术支持、开发与维护人员的来源,并且——基于技术与行业发展的趋势,将来也会有更多的发展和保障。
4小结
总结以上的种种分析,可以发现,对于这个特定的案例,仅就当前已确定的和希望马上实现的需求而言,可以用传统的,基于LAN的文件服务器的多用户系统实现,但考虑到用户真实需求的不确定性和不断扩充的可能等等因素,有更多的理由支持采用C/S体系结构。
作为一种权宜的方案,也可以考虑先采用基于文件服务器的多用户系统,在规划和实现上,尽量为将适当时候来转换成为C/S结构打下基础。
此外,如果采用C/S体系结构,还应当尽可能采用开放的,标准的技术。
在上面的分析中,支持采用C/S的理由主要有:
应用的不确定性,逐步开发和增加新应用的需要
适应将来开放的异种网络环境中应用的需要
用户数、数据量增长的可能性
适应电脑开发、维护、供应商与相关技术人员变更的需要
有利于动态规划与动态开发过程,对系统可靠性的保证
此外,从用户的现有资源的延续利用与新增投入,及开发的成本和难度看,采用C/S结构,也是比较适中、现实的选择。
读者应当留意,这里仅仅是针对一个特定环境下小型应用案例开发策略的分析,而不是对数据库体系结构的一个完整的分析比较,更不是对技术本身的评价。
图2.3.1C/S体系结构
2.3.2基本处理流程
2.3.2.1借书程序流程图
(1)借书程序流程图:
向系统输入借阅证,系统检查该借阅证是否可以借书,如果该借阅证达到最大借书书目,或者已经欠费,则系统不允许借书给出提示;否则允许借书,继续输入要借阅的图书ID,系统检验该书是否被预定。
被预定则给出不能借该书的提示,否则系统自动更新图书库、借阅记录,完成借书。
2.3.2.1还书续借程序流程图
(2)还书、续借程序流程图:
首先向系统输入图书ID,系统查询出该图书的借阅信息判断该图书是否逾期,如果没有逾期,则可以选择是否要进行续借,如果在续借允许的时间内,则可以续借,否则提示不在续借时间内,不能续借;如果已经逾期,则计算显示出罚款并执行还书操作。
图
(1)借书程序流程图图
(2)还书、续借程序流程图
2.3.3整体结构
本系统共分为两大模块:
系统登录模块和系统设置模块;系统设置主要是系统对借阅信息时间的限定,读者可借阅的图书数,有效预定的时间限定;
登录共分为三个用户的登录:
读者,图书管理员和系统管理员;用户可以在不登录的情况下查询图书,登录成功后,读者可以完成预定、解除预定和查询;图书管理员可以实现查询、借阅信息管理和图书管理;系统管理员可以实现对系统维护和用户维护两大模块。
具体的,读者可以实现预定,解除预定,查看借阅信息、查看预订信息;图书管理员可以查询图书,对图书进行添加、修该和删除,实现借书、还书、续借处理;系统管理员可以对后台数据维护,日志维护,同时可以实现对用户信息的添加、修改和删除。
图2.3.3整体模块
2.4功能需求与程序的关系
登录界面
图书管理
用户管理
查询
借阅管理
预定图书
√
√
解除预定
√
√
查看预定信息
√
√
查找图书
√
查看借阅信息
√
√
借书管理
√
√
√
还书管理
√
√
√
增加图书
√
√
删除图书
√
√
修改图书信息
√
√
日志维护
√
√
√
√
√
数据维护
√
√
√
添加用户
√
√
删除用户
√
√
用户信息修改
√
√
2.5尚未问决的问题
(1)只对系统的功能进行了描述,没有阐述各个模块之间是如何协调合作;
(2)没有描述模块的实现方法,以及在这个过程具体的流程。
3接口设计
3.1外部接口
3.1.1用户界面
在用户界面部分,根据需求分析的结果,用户需要一个用户友善界面。
在界面设计上,应做到简单明了,易于操作,并且要注意到界面的布局,应突出的显示重要以及出错信息。
外观上也要做到合理化,考虑到用户多对WINDOW风格较熟悉,应尽量向这一方向靠拢。
在设计语言上,已决定使用VisualStudio2008进行编程,在界面上可使用VisualStudio2008所提供的可视化组件,向WINDOWS风格靠近。
其中服务器程序界面要做到操作简单,易于管理。
在设计上采用下拉式菜单方式,在出错显示上可调用VisualStudio2008库中的错误提示函数。
总的来说,系统的用户界面应作到可靠性、简单性、易学习和实用
3.2软件接口
服务器程序可使用VisualStudio2008提供的对SQLSERVER的接口,进行对数据库的所有访问。
服务器程序上可使用SQLSERVER的对数据库的备份命令,以做到对数据的保存。
在网络软件接口方面,使用一种无差错的传输协议,采用滑动窗口方式对数据进行网络传输及接收。
3.3硬件接口
在输入方面,对于键盘、鼠标的输入,可用VisualStudio2008的标准输入/输出,对输入进行处理。
在输出方面,打印机的连接及使用,也可用VisualStudio2008的标准输入/输出对其进行处理。
在网络传输部分,在网络硬件部分,为了实现高速传输,将使用高速ATM。
3.4内部接口
内部接口方面,各模块之间采用函数调用、参数传递、返回值的方式进行信息传递。
具体参数的结构将在下面数据结构设计的内容中说明。
接口传递的信息将是以数据结构封装了的数据,以参数传递或返回值的形式在各模块间传输。
4运行设计
4.1运行模块组合
客户机程序在有输入时启动接收数据模块,通过各模块之间的调用,读入并对输入进行格式化。
在接收数据模块得到充分的数据时,将调用网络传输模块,将数据通过网络送到服务器,并等待接收服务器返回的信息。
接收到返回信息后随即调用数据输出模块,对信息进行处理,产生相应的输出。
服务器程序的接收网络数据模块必须始终处于活动状态。
接收到数据后,调用数据处理/查询模块对数据库进行访问,完成后调用网络发送模块,将信息返回客户机。
4.2运行控制
运行控制将严格按照各模块间函数调用关系来实现。
在各事务中心模块中,需对运行控制进行正确的判断,选择正确的运行控制路径。
在网络传输方面,客户机在发送数据后,将等待服务器的确认收到信号,收到后,再次等待服务器发送回答数据,然后对数据进行确认。
服务器在接到数据后发送确认信号,在对数据处理、访问数据库后,将返回信息送回客户机,并等待确认。
4.3运行时间
在软体的需求分析中,对运行时间的要求为必须对做出的操作有较快的反应。
网络硬件对运行时间有最大的影响,当网络负载量大时,对操作反应将受到很大的影响。
所以将采用高速ATM网络,实现客户机与服务器之间的连接,以减少网络传输上的开销。
其次是服务器的性能,这将影响对数据库访问时间即操作时间的长短,影响加大客户机操作的等待时间,所以必须使用高性能的服务器,建议使用PentiumIII处理器。
硬件对本系统的速度影响将会大于软件的影响。
5系统数据结构设计
5.1逻辑结构设计要点
图书类表(图书编号,图书名,图书作者,图书出版社,图书单价,图书摘要);
图书信息表(图书ID,图书编号,是否借出标记)
借阅记录表(图书ID,图书名,借阅证号,借阅日期)
预订图书记录表(图书ID,图书名,借阅证号,预定期限开始日期)
管理员信息表(编号,姓名,联系电话,登录名,地址,密码,权限)
读者信息表(借阅证号,读者姓名,学院,专业,联系电话,密码,读者类型)
5.2物理结构设计要点
5.2.1图书类表
列名
数据类型
可否为空
说明
BookClassID
Guid
否
图书编号
BookName
Nchar(20)
否
图书名
BookAuthor
NChar(20)
是
图书作者
BookPress
NChar(50)
是
图书出版者
BookPrice
Double
是
图书单价
BookSummary
text
是
图书摘要
5.2.2图书信息表
列名
数据类型
可否为空
说明
BookID
Guid
否
图书ID
BookClassID
Guid
否
图书编号
SendFlag
int
否
是否借出标记
5.2.3借阅记录表
列名
数据类型
可否为空
说明
BookID
Guid
否
图书ID
BookName
NChar(20)
否
图书名
CardNum
Nchar(20)
否
借阅证号
BorrowDate
DateTime
否
借阅日期
5.2.4预订图书记录表
列名
数据类型
可否为空
说明
BookID
Guid
否
图书ID
BookName
NChar(20)
否
图书名
CardNum
Nchar(20)
否
借阅证号
BookDate
DateTime
否
预定期限开始日期
5.2.5管理员信息表
列名
数据类型
可否为空
说明
AdministerID
guid
否
管理员编号
AdmName
Nchar(20)
否
管理员姓名
TelNumber
Nchar(11)
是
联系电话
LoginName
Nchar(20)
否
登录名
Address
Nchar(50)
是
地址
LodinKey
Nchar(6)
否
密码
Power
Nchar(10)
否
权限
5.2.6读者信息表
列名
数据类型
可否为空
说明
CardNum
Nchar(20)
否
借阅证号
ReaderName
Nchar(10)
否
读者姓名
College
Nchar(20)
是
学院
Profession
Nchar(20)
是
专业
TelNumber
Nchar(11)
是
联系电话
LodinKey
Nchar(6)
否
登录密码
ReaderType
Nchar(10)
否
读者类型
5.3数据库概念结构设计
5.3.1部分E-R图
5.3.1.1图书
图书为实体,有8个属性,分别为图书ID(主键)、图书编号、图书作者、图书单价、图书出版社、图书名、是否借出标记
5.3.1.2管理员
管理员作为一个实体,有7个属性,分别为:
编号(主键)、姓名、联系电话、登录名、权限、密码、地址等。
5.3.1.3读者
读者作为一个实体,有7个属性,分别为:
借阅证号(主键)、读者姓名、学院、专业、联系电话、读者类型、密码等。
5.3.2整体E-R图
6系统出错处理设计
6.1出错信息
(1)验证用户的身份若读者的密码、借阅证号有误则发出“验证错误”信息;
(2)如果借书证未登记入库,则发出“借书错误”;如果图书未登记入库则发出“借书错误”;如果读者借书已满限制数N,则发出“借书错误”;如果读者所借书中有超期,则发出“借书错误”;
(3)如果所还图书超期则,统计超期天数,生成含警告的返回信息;
(4)输入预定图书信息,如果预定图书信息不存在,则提示不存在;若用户取消了解除预定操作否则系统取消解除预定;
(5)如果不在有效续借的天数则返回不能续借提示信息;
(6)输入要录入的图书信息,若信息输入有误,则返回添加失败,若添加信息时系统发生异常,则返回添加失败;
(7)输入编号、要修改的图书信息,若信息输入有误,则返回修改失败,若修改信息时系统发生异常,则返回修改失败;
(8)输入要删除的图书信息,若删除时系统发生异常,则返回删除失败;
6.2补救措施
(1)后备技术说明准备采用的后备技术,当原始系统数据万一丢失时启用的副本的建立和启动的技术,例如周期性地把磁盘信息记录到磁带上去就是对于磁盘媒体的一种后备技术;
(2)降效技术说明准备采用的后备技术,使用另一个效率稍低的系统或方法来求得所需结果的某些部分,例如一个自动系统的降效技术可以是手工操作和数据的人工记录;
(3)恢复及再启动技术说明将使用的恢复再启动技术,使软件从故障点恢复执行或使软件从头开始重新运行的方法。
6.3系统维护设计
及时清理数据库,提高数据库运行能力;同时对更新的数据及时保存,以防止数据丢失。
6.4安全保密设计
(1)对用户输入的所有内容都应进行安全性和合法性检查,避免恶意输入;
(2)为了确保数据库的安全,数据库采用冗余备份、定时备份和即时备份相结合,详细记录日志文件,以备灾难恢复。
(3)系统对用户注册密码要进行安全性提示,确保密码不易丢失或失窃,同时为用户提供密码找回功能,确保安全。
(4)系统对用户的所有操作和相关信息都记录在案。