软件设计总文档.docx
《软件设计总文档.docx》由会员分享,可在线阅读,更多相关《软件设计总文档.docx(65页珍藏版)》请在冰豆网上搜索。
软件设计总文档
实验报告
(2013/2014学年第二学期)
课程名称:
软件工程
实验名称:
图书馆管理软件开发
学生姓名:
杨见欢
班级学号:
11003507
主要负责:
需求、概要、详细设计说明书
图书馆管理需求说明书
1 引言
1.1编写目的
编写本报告的目的是明确本系统的详细需求,提供给使用单位确认系统的功能和性能,并在此基础上进行修改和完善,同时作为设计人员进行软件设计的依据和使用单位的验收标准。
1.2背景
图书管理系统需要满足来自两个方面的需求,分别是图书借阅者和图书馆管理人员,对读者资源,图书资源,借书信息进行管理。
1.3定义
列出本文件中用到的专门术语的定义和外文首字母组词的原词组。
1.4参考资料
《软件工程》(英)IanSommerville著机械工业出版社
2 任务概述
2.1目标
本系统主要实现对图书馆的信息进行管理,图书馆的正常运营中总是面对大量的读者信息,图书信息以及两者相互作用产生的借书信息,因此要对读者资源,图书资源,借书信息进行管理。
本系统的开发就是在于提高图书管理的工作效率,加强图书馆的管理。
2.2用户的特点
本系统的最终用户是面向管理员(图书馆管理员和其他管理人员)和读者(教师和学生),他们都具有一定的计算机基础知识和操作计算机的能力,是经常性用户。
系统维护人员是计算机专业人员,熟悉操作系统和数据库,是间隔性用户。
3 需求规定
3.1对功能的规定
本系统主要能实现以下几个功能,读者能查询图书的基本信息并借阅,图书管理人员能查询并修改图书的借还情况,并对逾期未还的进行罚款处理。
基本用例图如下:
3.1.1图书借阅
当读者需要借书时,将要借的书给图书管理员登记,由图书管理员登记好图书信息后,方可带出图书馆。
若借阅时间到期后还需继续借用,读者可以采用续借功能,图书管理员延长图书归还时间,读者能够继续借阅。
3.1.2图书归还
当用户还书时,图书管理员需要检查图书是否被损坏并查看是否按规定时间还书。
如果图书没有损坏而且按规定时间还书,那么图书管理员就修改该图书的信息,删除用户借书记录,登记还书时间。
如果图书被损坏用户必须交罚金,图书管理员除了收款外还要把图书和用户的信息修改好,并记录图书损坏的程度,以致其它用户借阅时方便。
3.1.3图书查询和预定
当用户登录系统查询图书时,系统会根据图书信息表查询出图书信息并反馈给用户。
用户可以检索到图书馆的馆藏书目、读者基本信息、读者借书、超期读者、罚款记录、最新图书、借阅频率最高的图书信息、图书具体的藏书位置。
用户还可以预定图书。
已登记但尚未到图书馆的新书或者已被其他读者用户借阅的图书可以通过预定功能提前预约图书,使读者尽快借到需要的图书。
3.1.4图书登记
图书管理员对未记录的图书登记图书的基本信息,对破损严重的图书进行清理,更新图书信息数据库。
图书信息表
3.2对性能的规定
3.2.1精度
保证查询的查全率和查准率为100%,所有在相应域中包含查询关键字的记录都能查到,所有在相应域中不包含查询关键字的记录都不能查到。
图书信息:
图书编号+书名+书号+图书类别+作者+出版社+出版时间+单价+入库时间+操作员姓名+书架编号+图书状态
读者信息:
借书卡号+姓名+性别+读者类别+所属系部+部门或班级+联系电话+登记日期+操作员姓名+已借数
3.2.2时间特性要求
用户对系统性能无特殊的要求,只要查询图书的时候没有明显的延迟就可以了,一般不要超过3秒钟。
3.2.3灵活性
满足运行环境在允许操作系统之间的安全转换和与其他应用软件的独立运行要求。
3.3输人输出要求
解释各输入输出数据类型,并逐项说明其媒体、格式、数值范围、精度等。
对软件的数据输出及必须标明的控制输出量进行解释并举例,包括对硬拷贝报告(正常结果输出、状态输出及异常输出)以及图形或显示报告的描述。
3.4数据管理能力要求
说明需要管理的文卷和记录的个数、表和文卷的大小规模,要按可预见的增长对数据及其分量的存储要求作出估算。
3.5故障处理要求
正常使用时不出错,对于用户的输入错误给出适当的改正提示信息,遇不可恢复的系统错误时,保证数据库的完好无损。
3.6其他专门要求
如用户单位对安全保密的要求,对使用方便的要求,对可维护性、可补充性、易读性、可靠性、运行环境可转换性的特殊要求等。
4 运行环境规定
4.1设备
计算机
4.2支持软件
Windows操作系统,Vc++6.0运行环境
4.3接口
1.可能涉及一些文档、报表的处理应该保持与常用软件的办公软件的接口
2.可能涉及数据的备份应该保持打印机和光盘刻录机的接口
4.4控制
说明控制该软件的运行的方法和控制信号,并说明这些控制信号的来源。
概要设计说明书
1 引言
1.1编写目的
由前面的需求分析,得出了系统的基本需求,和基本的数据流图,要实现整个系统,需要对用户的需求进行设计,概要设计主要是利用比较抽象的语言对整个需求进行概括,确定对系统的物理配置,确定整个系统的处理流程和系统的数据结构,接口设计,实现对系统的初步设计。
1.2背景
图书管理系统需要满足来自两个方面的需求,分别是图书借阅者和图书馆管理人员,对读者资源,图书资源,借书信息进行管理。
1.3定义
列出本文件中用到的专门术语的定义和外文首字母组词的原词组。
1.4参考资料
软件工程(美)RogerS.Pressman著郑人杰马素霞等译
2 总体设计
2.1需求规定
主要输入输出项目:
图书信息:
(书名,定价,出版社,数量,是否可借)
用户信息:
(学号,姓名,性别,卡号,余额)
借阅信息:
(卡号,借书信息,借出日期,余额)
处理的功能性要求
按照需求分析文档中的规格要求,实现借书、还书和逾期未还的处罚等功能,使得信息传递准确、流畅。
同时,图书馆管理员能最大限度地查阅信息,更改记录等对图书信息和用户信息进行管理。
2.2运行环境
硬件环境:
最低配置:
CPU:
Pentium3800以上或其它兼容规格,内存:
256M以上,硬盘:
20GB以上空间
运行平台:
WindowsXP/Win7/Win8
2.3基本设计概念和处理流程
顶层数据流图:
第一层图:
第二层图:
(1):
登陆子系统
(1):
处理新书购入
(2)处理学生借书
(3):
处理学生还书
(4):
处理图书注销
(5)处理学生信息查询
(6)处理图书信息查询
(7)查询子系统
2.4结构
说明:
身份验证:
提供系统的访问控制功能。
书库管理:
包括新书登记、借书、还书、书籍挂失、图书信息查询、借书信息查询等功能。
借阅证管理:
提供办理借阅证、借阅证信息查询、借阅证挂失功能。
系统管理功能:
包括添加账号、修改密码和退出系统等功能。
2.5功能需求与程序的关系
创建模块
查找模块
修改模块
删除模块
管理员添加图书信息
√
管理员修改书目信息
√
√
管理员删除书目信息
√
√
管理员添加新用户
√
管理员修改用户信息
√
√
管理员注销用户
√
√
用户更新个人资料
√
用户充值
√
用户检索图书
√
用户借阅图书
√
用户归还图书
√
2.6人工处理过程
管理员对系统定期进行维护。
2.7尚未问决的问题
对图书和用户进行编号,以确定每本书和每个用户都有唯一与之对应的编号。
3 接口设计
3.1用户接口
采用窗口化,菜单式进行设计,在操作时响应热键。
3.2外部接口
一卡通,扫描仪器
3.3内部接口
通过面向对象语言设计类,在public类中实现调用;类间实现严格封装;
4 运行设计
4.1运行模块组合
本程序主要是以一个窗口为模块,一般一个窗口完成一个特定的功能,主窗口通过打开另一个子窗口来实现模块之间不同功能的连接和组合。
各个模块之间相对独立,程序的可移植性好。
各模块之间主要以传递数据项的引用来实现模块之间的合作和数据共享。
4.2运行控制
只要符合操作说明书,用户可自由控制。
4.3运行时间
程序运行以不超过3秒最好。
5 系统数据结构设计
5.1逻辑结构设计要点
数据结构
数据项
类型
长度
备注
图书信息
书名
CHAR
20
图书编号
CHAR
20
唯一标识书目
定价
FLOAT
6
出版社
CHAR
20
数量
INT
4
是否可借
BOOL
1
用户信息
身份编号
CHAR
10
唯一标识读者
姓名
CHAR
8
年龄
INT
2
性别
CHAR
4
开户时间
DATA
联系电话
CHAR
40
余额
MONEY
是否VIP
BOOL
1
累记金额
MONEY
8
借阅信息
用户编号
CHAR
10
图书编号
CHAR
20
数量
INT
2
借出日期
DATA
归还日期
DATA
押金
MONEY
6 系统出错处理设计
6.1出错信息
用一览表的方式说朗每种可能的出错或故障情况出现时,系统输出信息的形式、含意及处理方法。
6.2补救措施
我们对于本程序的几种可能的错误进行了分析,分别进行了不同的处理。
主要的错误可能有:
(1)数据库连接错误:
这类错误主要是数据库设置不正确,或sqlserver异常引起的,我们只要取消本次操作,提醒用户检查数据库问题就可。
(2)输入错误:
这主要是用户输入不规范造成的,我们在尽量减少用户出错的条件的情况下,主要也是通过对话框,提醒用户,然后再次操作。
(3)其他操作错误:
对于用户的不正当操作,有可能使程序发生错误。
我们主要是中止操作,并提醒用户中止的原因和操作的规范。
(4)其他不可预知的错误:
程序也会有一些我们无法预知或没考虑完全的错误,我们对此不可能作出万全的异常处理,这时我们主要要保证数据的安全,所以要经常的进行数据库备份,并能及时的和我们联系,以逐步的完善我们的程序。
6.3系统维护设计
对于数据库的维护,本软件已经提供了数据库的备份和恢复的功能,可以方便的实现数据库的维护管理。
对于软件功能方面的维护,由于我们采用的是模块化的设计方法,每个模块(窗口)之间相互独立性较高,这样对软件的维护带来了很大的方便,对于单独功能的修改只需修改一个窗口就行了。
而对于功能的添加,只要再添加菜单项的内容即可,软件卖出后,我们将根据客户的要求和反映,定期的对软件进行维护修改。
详细设计说明书
1引言
1.1编写目的
图书管理系统详细设计是概要设计的下一个阶段,这个阶段的主要任务是在图书管理系统概要设计书基础上,对概要设计中产生的功能模块进行过程描述,设计功能模块的内部细节,包括算法和详细数据结构,为编写源代码提供必要的说明。
概要设计解决了软件系统总体结构设计的问题,包括整个软件系统的结构、模块划分、模块功能和模块间的联系等。
详细设计则要解决如何实现各个模块的内部功能,即模块设计。
具体的说,模块设计就是要为已经产生的图书管理各子系统设计详细的算法。
但这并不等同于系统实现阶段用具体的语言编码,它只是对实现细节作精确的描述,这样编码阶段就可以将详细设计中对功能实现的描述,直接翻译、转化为用某种程序设计语言书写的程序。
1.2背景
图书管理系统需要满足来自两个方面的需求,分别是图书借阅者和图书馆管理人员,对读者资源,图书资源,借书信息进行管理。
1.3定义
列出本文件中用到专门术语的定义和外文首字母组词的原词组。
1.4参考资料
软件工程
2程序系统的组织结构
程序系统的组织结构如图1
图1程序系统的组织结构
3登录系统设计
3.1程序描述
此模块负责用户的登陆,其中可分为管理员登陆与读者登陆两部分。
用户输入用户名密码进行登陆,然后进入其他模块完成相应的动作。
3.2功能
用户名密码输入:
提供输入窗体,进行用户名密码输入;
数据查询:
根据输入的用户名密码,从数据库进行相应的查询;
错误提示:
提示用户是否存在和密码是否正确;
密码验证:
进行用户名密码的验证工作;
登陆成功:
通过用户名密码验证,进入系统;
3.3输入项
用户名、密码;
3.4输出项
用户名是否存在提示、用户名密码错误提示、登陆成功提示;
3.5算法
begin
if输入帐号和密码、身份不为空then
begin
查询人员表;
end
else提示人员编号和人员密码、身份不能为空,返回;
if查询结果为空then
begin
提示出错信息,返回重新登陆;
end
else根据不同的身份进入相应的主界面;
end。
3.6流程逻辑
如图2流程逻辑图;
图2流程逻辑图
3.7接口
管理员信息管理接口、读者信息管理接口、图书信息管理接口、图书借阅接口、图书管理接口;
3.8存储分配
表1学生信息表的结构
序号
字段名称
字段说明
类型
位数
属性
备注
1
cVipID
学生编号
文本
6
必须非空
2
cVipName
学生姓名
文本
10
必须非空
4
cVipSex
学生性别
文本
1
可为空
5
vipAddTime
学生入学时间
时间日期
必须非空
6
vipEndTime
学生毕业时间
时间日期
必须非空
表2管理员信息表的结构
序号
字段名称
字段说明
类型
位数
属性
备注
1
cOperatorID
管理员编号
文本
5
必须非空
2
cOperatorName
管理员姓名
文本
10
必须非空
3
cOperatorPassword
密码
文本
6
必须非空
4
cOperatorAddTime
管理员加入时间
时间日期
10
必须非空
3.9测试要点
数据库连接情况:
正常情况,数据库文件缺少,外部系统异常。
系统设置获取:
正常情况,外部系统异常。
对用户输入的响应:
合法输入,能够正常调用子模块;
非法输入,系统能否辨别,并作出响应(提出警告);
子模块的异常状况,系统能否及时做出响应。
4学生信息查询
4.1程序描述
输入查询信息,在数据库中查找相应的信息,如果有,则显示查询结果,如果没有,则显示没有该学生信息。
4.2功能
功能类型:
查询学生的基本信息以及借阅图书的信息
功能概述:
显示查询结果
前提业务:
该生已经登陆
4.3输入项
需要查询的内容
4.4输出项
学生学号
姓名
性别
入学时间
毕业时间
借书编号
图书编号
借书时间
还书时间
是否归还
4.5算法
begin
select学生信息
from学生信息表
where条件like关键字;
if信息匹配then
begin
返回查询到的学生信息;
end
else返回空值;
end。
4.6流程逻辑
如图学生信息查询逻辑图3
图3学生信息查询逻辑图
4.7接口
与登陆系统相连接
4.8存储分配
表3学生信息表
序号
字段名称
字段说明
类型
位数
属性
备注
1
cVipID
学生编号
文本
6
必须非空
2
cVipName
学生姓名
文本
10
必须非空
4
cVipSex
学生性别
文本
1
可为空
5
vipAddTime
学生入学时间
时间日期
必须非空
6
vipEndTime
学生毕业时间
时间日期
必须非空
4.9测试计划
模块正常工作流程
对输入值的合法性与合理性检验
数据库连接异常能否做出适当处理
数据库数据异常时能否判断并给予适当处理
5图书信息查询
5.1程序描述
实现按条件对响应书目的查询;
5.2功能
根据查询者所提供的信息检索数据库中所有满足条件的书目;
5.3输入项
图书的基本信息,如书名、作者、图书编号、出版社等;
5.4输出项
符合所查询信息的所有项;
5.5算法
begin
select图书资料
from图书信息表
where条件like关键字;
if信息匹配then
begin
返回查询到的图书信息;
end
else返回空值;
end。
5.6流程逻辑
如图图书信息查询逻辑图4:
图4图书信息查询逻辑图
5.7接口
无
5.8存储分配
图书信息表(tBook),其字段列表如表4所示。
表4图书信息表的结构
序号
字段名称
字段说明
类型
位数
属性
备注
1
cBooksID
图书编号
文本
7
必须非空
2
cBooksName
图书名称
文本
20
必须非空
3
cBooksISBN
图书ISBN号
文本
15
可为空
4
cBooksAuthor
图书作者
文本
10
可为空
5
cBooksPublisher
图书出版社
文本
20
可为空
6
cBooksType
图书类型
文本
16
可为空
7
smBooksPrice
图书价格
货币
可为空
8
iBooksStoreQuan
图书库存量
整数
可为空
9
iBooksLeftQuant
图书副本数量
整数
可为空
10
iBooksTotalQuan
图书总数
整数
可为空
5.9测试计划
数据库连接正常;
数据库数据正常获得正确的查询结果并显示;
数据库数据异常给出警告;
数据库连接异常给出警告;
6图书借阅
6.1程序描述
完成对用户借书的相关信息的记录;
6.2功能
查验输入的读者学号或工号;
运行借书对话框;
获取该用户的相关信息;
查验输入的书号;
记录该借书信息;
6.3输入项
借书者的学号或工号、所借图书的编号;
6.4输出项
借书日期、借书操作是否正确完成;
6.5算法
begin
输入读者编号;
select状态
from读者表
where读者编号=输入的读者编号;
if状态=停借then
begin
提示读者欠费不能借书,返回;
end
else
begin
输入图书编号;
end
确定?
if确定then
begin
insertinto借阅表
values(读者,图书信息);
end
else输入到读者编号;
end
6.6流程逻辑
如图图书借阅逻辑图5:
图5图书信息查询逻辑图
6.7接口
登陆模块
6.8存储分配
图书借阅登记表(tBorrow),其字段列表如表5所示。
表5图书借阅登记表的结构
序号
字段名称
字段说明
类型
位数
属性
备注
1
cBorrowID
借书编号
文本
6
必须非空
2
cVipID
学生编号
文本
6
必须非空
3
cBooksID
图书编号
文本
7
必须非空
4
cBorrwTime
借书时间
时间日期
可为空
5
cReturnTime
还书时间
时间日期
可为空
6
cReturn
是否归还
文本
1
可为空
6.9测试计划
模块正常运行流程;
用户输入数据检查(读者证号、图书书号),包括数据合理性检查,以及合法性检查;
数据库操作;
数据库连接异常时的响应情况;
7图书归还
7.1程序描述
完成对用户借书的相关记录的删除;
7.2功能
运行还书对话框;
查验输入的图书书号;
对合法输入登录还输信息;
现实相关信息(本次还书操作信息,尚未归还图书的相关信息,读者信息);
7.3输入项
还书者的学号或工号、所还图书的编号、还书日期;
7.4输出项
还书操作是否正确完成、借书是非超期;
7.5算法
Begin
输入图书编号
select状态
from借阅表
where图书编号=输入的图书编号;
计算图书借阅时间;
if超期then
begin
计算罚款金额;
if未交付金额then
begin
update读者表set读者状态=停借;
end
end
end
7.6流程逻辑
如图图书归还逻辑图6:
图6图书归还逻辑图
7.7接口
登陆模块;
7.8存储分配
图书归还登记表(tReturn),其字段列表如表6所示。
表6图书归还登记表的结构
序号
字段名称
字段说明
类型
位数
属性
备注
1
cBorrowID
借书编号
文本
6
必须非空
2
cVipID
学生编号
文本
6
必须非空
3
cBooksID
图书编号
文本
7
必须非空
4
cBorrwTime
借书时间
时间日期
可为空
5
cReturnTime
还书时间
时间日期
必须非空
6
cReturn
是否归还
文本
1
必须非空
7
cNoReturn
归还异常
文本
8
可为空
7.9测试计划
模块正常工作流程;
对输入的查验,包括输入值的合法性与合理性检验;
数据库连接异常能否做出适当处理;
数据库数据异常时能否判断并给予适当处理;
8管理员信息管理
8.1程序描述
实现对管理员信息的管理;
8.2功能
添加、修改、删除管理员信息;
8.3输入项
要管理的管理员的登录名、密码、权限等相关信息;
8.4输出项
该操作是否成功;
8.5流程逻辑:
如图管理员信息管理逻辑图7:
图7管理员信息管理逻辑图
8.6接口
登陆模块;
8.7存储分配
管理员信息表(tOperators),其字段列表如表7所示。
表7管理员信息表的结构
序号
字段名称
字段说明
类型
位数
属性
备注
1
cOperatorID
管理员编号
文本
5
必须非空
2
cOperatorName
管理员姓名
文本
10
必须非空
3
cOperatorPassword
密码
文本
6
必须非空
4
cOperatorAddTime
管理员加入时间
时间日期
10
必须非空
5