软件工程案例学习-图书管理系统
www.diybl.com 时间 : 2008-12-25 作者:佚名 编辑:辉辉 点击: [ 评论 ]
软件工程案例学习-图书管理系统
文档编号:LMS_1
版 本 号:V1.0
文档名称:需求分析规格说明书
项目名称:图书管理系统
项目负责人:
编写: 年 月 日
校对:
审核:
批准:
开发单位:
引言:
1.1 编写目的:
确定图书管理系统的功能及有效性需求,以供软件开发人员参考。
1.2 项目背景:
本项目的名称:图书管理系统
本项目的应用范围:中型图书室
开发者:
用户:图书管理员,开发人员
1.3 定义:
LMS : Library Management System
Title:记录图书馆内所有类图书的信息并可进行查询。
Item:记录馆内每一本图书的状态,并提供查询、统计、打印功能。
Borrower Information:记录读者信息并可进行查询。
Loan:对图书的出借、归还、续借进行管理并可进行查询。
Reservation: 提供预约与取消预约功能。
1.4 参考资料:
《实用软件工程》(第二版) 郑人杰 殷人昆 陶永雷 清华大学出版社
《软件工程——Java语言实现》 Stephen R. Schach 机械工业出版社
《实践者的研究方法》 Roger S. Pressman 机械工业出版社
任务概述:
2.1目标:
该《图书管理系统》针对的用户是中型图书室,藏书的种类包括中、英、俄、德、日文书籍和期刊,读者的数量和来源仅限于本单位职工及通过馆际互借认可的读者。相应的需求有:
1>能够存储一定数量的图书信息,并方便有效的进行相应的书籍数据操作和管理,这主要包括:
图书信息的录入、删除及修改。
图书信息的多关键字检索查询。
图书的出借、返还和资料统计。
图书的远程预约和续借。
馆际互借(通过电子邮件或现场录入)
2>能够对一定数量的读者进行相应的信息存储与管理,这其中包括:
读者信息的登记、删除及修改。
读者资料的统计与查询。
3>能够对需要的统计结果提供打印输出。
4>能够提供一定的安全机制,提供数据信息授权访问,防止随意删改,同时提供信息备份的服务。
2.2运行环境:
本系统采用C/S体系结构,由一台服务器与多个客户机组成,
配置如下:
服务器:
硬件:80x86系列微机
CPU:733以上
内存:256M以上
硬盘空间:40G以上
软件:Windows Server、Access等
工作站:
硬件:80x86系列微机
CPU: 166以上
内存:16M以上
硬盘空间:2G以上
软件:Windows 9x或Windows 2000 professional 、Access等 。
输入输出设备:扫描仪、打印机等。
网络设备:Hub、网卡、网线等。
2.3需求概述:
通过计算机实现对图书馆图书入库、借阅、归还、检索、读者管理、查询的管理功能。
2.4条件与限制:
要求图书管理员会个般的计算机操作,会中文输入。要求用户界面有好,提供帮助。
3.功能模型:
3.1用例:
借出书目(Lend Item)
返回书目 (Return Item)
预约 (Make Reservation)
删除预约 (Remove Reservation)
续借(Continue Lend)
查询 (Query)
统计 (Statistic)
打印 (Print)
读者检索 (Borrower Query)
远程预约 (Remote Reservation)
远程续借 (Remote Continue Lend)
增加标题 (Add Title)
更新或删除标题 (Update or Remove Title)
增加书目 (Add Item)
更新或删除书目 (Remove Item)
增加读者 (Add Borrower)
更新或删除读者 (Update or Remove Borrower)
3.2类模型:
3.3:动态建模:
【借出书目】
(1)借书者没有预约:
输入标题
显示该标题下的书目
输入借书者
增加一条新的借书记录
(2)借书者已预约
输入标题
显示该标题下的书目
输入借书者
增加一条新的借书记录
删除预约记录
【返还书目】
(1)没有超期:
输入标题
显示该标题下的书目
输入书目
输入借书者
增加一条新的还书记录
更新该书目的记录
(2)已超期或丢失
输入标题
显示该标题下的书目
输入书目
输入借书者
计算罚款金额
增加一条新的罚款记录
增加一条新的还书记录
更新该书目的记录
【预约】
输入标题
输入借书者
增加一条新的预约记录
【取消预约】
输入标题
输入借书者
删除该预约记录
【续借】(再借一次)
输入标题
显示该标题下的书目
输入书目
输入读者
增加一条新的还书记录
增加一条新的借书记录
【查询】
(1)书目查询:
输入与书目相关的关键值
显示符合条件的书目
(2)读者信息查询
输入与读者相关的关键值
显示符合条件的读者信息
(3)书目借出情况查询
输入标题
显示符合条件的借阅信息
(4)读者借阅情况查询
输入读者
显示符合条件的借阅信息
【统计】(图书状态统计)
输入统计条件
显示统计结果
【读者检索】
输入与标题相关的关键值
提交
显示该标题下符合条件的书目
【远程预约】
输入标题
输入借书者
提交
增加一条新的预约记录
【远程续借】
输入标题
显示该标题下的书目
输入书目
输入读者
提交
增加一条新的还书记录
增加一条新的借书记录
【增加标题】
输入标题
增加一条新的标题记录
【更新或删除标题】
输入标题
显示该标题记录
更新或删除标题该记录
【增加书目】
输入标题
输入书目
增加一条新的书目记录
【更新或删除标题】
输入标题
显示该标题下的书目
输入书目
显示该书目记录
更新或删除该书目记录
【增加读者】
输入读者
增加一条新的读者记录
【更新或删除读者】
输入读者
显示该读者记录
更新或删除该读者记录
3.4功能建模:
5.数据对象模型:
5.1对象关联图(ERD):
5.2对象规范说明:
5.2.1图书管理员信息:
目标:建立管理员登录信息,提供安全机制。
关联其他数据对象:无
属性说明:
PrimaryKey 用户名
ForeignKey 无
UniqueKey
IndexKey 用户名
属性名 类型.长度 值域 说明
用户名 2{字节}30
密码 2{字节}30
级别 2字节
描述 0{字节}50
5.2.2 图书编目信息:
目标:便于管理、查找、查询。
关联其他数据对象:图书编目
属性说明:
PrimaryKey 类别
ForeignKey 无
UniqueKey 类别
IndexKey 类别
属性名 类型.长度 值域 说明
类别编码 2{字节}10
类别 2{字节}10
备注 0{字节}50
5.2.3 标题:
目标:建立图书标题库,便于图书的管理。
关联其他数据对象:
图书分类、出版社、图书库存信息。
属性说明:
PrimaryKey 书号
ForeignKey
UniqueKey
IndexKey 书号
属性名 类型.长度 值域 说明
ISBN 2{字节}30
书名 2{字节}30
查询名称 2{字节}30
类别 2{字节}10
出版日期 年+月+日
定价 “0000.01”.. “9999.99”
作者 2{字节}12
出版社 2{字节}10
内容简介 2{字节}50
数
数据量预测说明:
年数椐量 数据增长率 极限数据量 备注
2M 1% 10M 每年约增加图书2万本
5.2.4 出版社:
目标:
记录出版社信息。
关联其他数据对象:图书编目
属性说明:
PrimaryKey 用户名
ForeignKey
UniqueKey
IndexKey 用户名
属性名 类型.长度 值域 说明
出版社编号 2{字节}4
出版社名称 2{字节}30
电话 2{字节}10
地址 2{字节}30
5.2.5 图书借阅等级:
目标:
将图书划分为不同级别,提供不同的借阅权限。
关联其他数据对象:图书库存信息
属性说明:
PrimaryKey 用户名
ForeignKey
UniqueKey
IndexKey 用户名
属性名 类型.长度 值域 说明
借阅等级 2{字节}4
借阅等级说明 2{字节}30
借阅天数 2{字节}2
超期罚款 “0000.01”.. “9999.99”
遗失赔率 “1.00”..”20”
备注 2{字节}30
5.2.6 图书库存信息(书目):
目标:建立图书库存信息,便于图书的借阅、管理。
关联其他数据对象:
图书编目、图书借出信息、图书归还信息
属性说明:
PrimaryKey 书号
ForeignKey
UniqueKey
IndexKey 书号
属性名 类型.长度 值域 说明
ISBN 2{字节}30
id 2{字节}10
借阅等级 2{字节}10
状态 2{字节}2
数据量预测说明:
年数椐量 数据增长率 极限数据量 备注
20M 1% 100M 每年约增加图书2万本
5.2.7 读者借阅等级:
目标:
将读者划分为不同级别,给予不同读者不同的借阅权限。
关联其他数据对象:读者信息、图书借出信息、图书归还信息、图书预约信息
属性说明:
PrimaryKey 用户名
ForeignKey
UniqueKey
IndexKey 用户名
属性名 类型.长度 值域 说明
借阅等级 2{字节}2
借阅等级说明 2{字节}10
最大借书数 2{字节}2
最长借书时间 2{字节}2
最大续借次数 2{字节}2
押金 “0.00”.. “400.00”
租金 “0.00”.. “400.00”
5.2.8 读者信息:
目标:
记录读者信息。
关联其他数据对象:读者借阅等级、图书借出信息、图书归还信息、图书预约信息
属性说明:
PrimaryKey 证号
ForeignKey
UniqueKey
IndexKey 证号
属性名 类型.长度 值域 说明
证号 2{字节}15
姓名 2{字节}20
性别 2{字节}2
借阅等级 2{字节}2
证件名称 2{字节}15
证件编号 2{字节}20
电话 2{字节}20
家庭住址 2{字节}30
年数据量预测说明:
年数椐量 数据增长率 极限数据量 备注
1M 10% 4M
5.2.9 图书流通信息:
目标:
记录图书流通信息。
关联其他数据对象:图书信息、读者信息
属性说明:
PrimaryKey 证号、书号
ForeignKey
UniqueKey 证号、书号
IndexKey 证号、书号
属性名 类型.长度 值域 说明
证号 2{字节}20
书号 2{字节}15
借出时间 年+月+日
应还时间 年+月+日
年数据量预测说明:
年数椐量 数据增长率 极限数据量 备注
40M 10% 100M
5.2.10 图书续借信息:
目标:
记录读者续借信息
关联其他数据对象:图书库存信息、读者信息、图书借出信息
属性说明:
PrimaryKey 证号、书号
ForeignKey 无
UniqueKey 证号、书号、续借日期、应还日期、续借次数
IndexKey 证号、书号
属性名 类型.长度 值域 说明
证号 2{字节}15
书号 2{字节}15
续借日期 年+月+日
应还日期 年+月+日
续借次数 2{字节}2
5.2.11 图书罚款信息:
目标:
记录读者罚款信息
关联其他数据对象:图书库存信息、读者信息、读者借阅等级、图书借出信息、图书续借信息、图书超期罚款、图书遗失赔率。
属性说明:
PrimaryKey 证号、书号
ForeignKey
UniqueKey 证号、书号、归还日期、操作类别、罚款金额
IndexKey 证号、书号
属性名 类型.长度 值域 说明
证号 2{字节}20
书号 2{字节}20
归还日期 年+月+日
操作类别 2{字节}2
罚款金额 “0.00”.. “400.00”
5.2.12 图书预约信息:
目标:
建立管理员登录信息,提供安全机制。
关联其他数据对象:图书信息、借书证、借书证分类
属性说明:
PrimaryKey 证号、书号
ForeignKey
UniqueKey 证号、书号、预约日期
IndexKey 证号、书号
属性名 类型.长度 值域 说明
证号 2{字节}20
书号 2{字节}20
预约日期 年+月+日
6.业务规则模型
6.1借出:
关联对象:
图书信息、读者信息、读者借阅等级、图书借阅等级、图书借出信息
规则说明
读者已借书数未超过最大借书数、该书有库存,而且该读者拥有借阅该书的权限,则执行该操作。
6.2 罚款:
关联对象:图书编目、读者借阅等级、图书借阅等级、流通信息、罚款信息
规则说明:
1.超期罚款:超期天数*超期罚款率。
2.丢失罚款:图书价格*丢失赔率
7.环境
7.1 网络环境
以太局域网
7.2 硬件环境
开发硬件环境:
计算机数量:3台。
每台机器的配置:
处理器:733
内存:256
硬盘:20G
输入输出设备:打印机等。
网络设备:Hub、网卡、网线等。
运行硬件环境:
计算机数量:30台
本系统采用C/S体系结构,由一台服务器与多个客户机组成,
配置如下:
服务器:
硬件:80x86系列微机
CPU:733以上
内存:256M以上
硬盘空间:40G以上
软件:Windows Server、Access等
工作站:
硬件:80x86系列微机
CPU: 166以上
内存:16M以上
硬盘空间:2G以上
软件:Windows 9x或Windows 2000 professional 、Access等 。
输入输出设备:扫描仪、打印机等。
网络设备:Hub、网卡、网线等。
7.3 软件环境
应用软件开发环境:
操作系统:Windows 2000 professional
数据库软件:Access
编程工具、编程语言:Java
应用软件使用运行环境:
操作系统:Windows 9X/2000
数据库软件:Access
7.4 外部接口
和其他软件系统的数据接口:ODBC
8. 安全保密
提供用户登录机制,不同级别的用户拥有不同的权限。
文档编号:LMS_1
版 本 号:V1.0
文档名称:概要设计说明书
项目名称:图书管理系统
项目负责人:
编 写: 年 月 日
校 对:
审 核:
批 准:
开发单位:电信科学技术研究院研究生部2001级
引言:
1.1 编写目的:
确定图书馆管理系统的总体设计、总体结构、模块设计、接口设计为详细设计奠定基础。
1.2 项目背景:
说明:
本项目的名称:图书管理系统
本项目的应用范围:中型图书室
开发者:电信科学技术研究院研究生部
用户:开发人员
1.3 定义:
LMS : Library Management System
Title:记录图书馆内所有类图书的信息并可进行查询。
Item:记录馆内每一本图书的状态,并提供查询、统计、打印功能。
Borrower Information:记录读者信息并可进行查询。
Loan:对图书的出借、归还、续借进行管理并可进行查询。
Reservation: 提供预约与取消预约功能。
1.4 参考资料:
《实用软件工程》(第二版) 郑人杰 殷人昆 陶永雷 清华大学出版社
《软件工程——Java语言实现》 Stephen R. Schach 机械工业出版社
《实践者的研究方法》 Roger S. Pressman 机械工业出版社
《需求分析规格说明书》
任务概述:
2.1目标:
该《图书管理系统》针对的用户是中型图书室,藏书的种类包括中、英、俄、德、日文书籍和期刊,读者的数量和来源仅限于本单位职工及通过馆际互借认可的读者。相应的需求有:
1>能够存储一定数量的图书信息,并方便有效的进行相应的书籍数据操作和管理,这主要包括:
图书信息的录入、删除及修改。
图书信息的多关键字检索查询。
图书的出借、返还和资料统计。
图书的远程预约和续借。
馆际互借(通过电子邮件或现场录入)
2>能够对一定数量的读者进行相应的信息存储与管理,这其中包括:
读者信息的登记、删除及修改。
读者资料的统计与查询。
3>能够对需要的统计结果提供打印输出。
4>能够提供一定的安全机制,提供数据信息授权访问,防止随意删改,同时提供信息备份的服务。
2.2运行环境:
本系统采用C/S体系结构,由一台服务器与多个客户机组成,
配置如下:
服务器:
硬件:80x86系列微机
CPU:733以上
内存:256M以上
硬盘空间:40G以上
软件:Windows Server、Access等
工作站:
硬件:80x86系列微机
CPU: 166以上
内存:16M以上
硬盘空间:2G以上
软件:Windows 9x或Windows 2000 professional 、Access等 。
网络设备:网卡、HUB、网线等。
2.3需求概述:
通过计算机实现对图书馆图书入库、借阅、归还、检索、读者管理、查询的管理功能。
2.4条件与限制:
要求图书管理员会个般的计算机操作,会中文输入。要求用户界面有好,提供帮助。
3.总体设计:
3.1处理流程:
3.1.1主程序:
3.1.2图书编目:
3.1.3 图书入库:
3.1.4读者信息管理:
3.1.5图书操作:
3.1.6系统管理:
3.1.7读者远程图书操作
3.2总体结构:
总体结构:
2.业务对象:
3.用户接口:
3.2功能分配:
1.图书管理员:
功
能
模
块
浏览 添加 修改 授权
添加记录 ★
删除记录 ★
更改记录 ★
显示记录 ★ ★ ★ ★
查询 ★ ★ ★ ★ ★
2.出版社:
功
能
模
块
浏览 添加 修改 删除 查询
添加记录 ★
删除记录 ★
更改记录 ★
显示记录 ★ ★ ★ ★
查询 ★ ★ ★ ★
3.图书分类:
功
能
模
块
浏览 添加 修改 删除 查询
添加记录 ★
删除记录 ★
更改记录 ★
显示记录 ★ ★ ★ ★
查询 ★ ★ ★ ★
4.图书编目:
功
能
模
块
浏览 添加 修改 删除 查询
添加记录 ★
删除记录 ★
更改记录 ★
显示记录 ★ ★ ★ ★
查询 ★ ★ ★ ★
5.图书借阅等级:
功
能
模
块
浏览 添加 修改 删除 查询
添加记录 ★
删除记录 ★
更改记录 ★
显示记录 ★ ★ ★ ★
查询 ★ ★ ★ ★
6.图书库存信息:
功
能
模
块
浏览 添加 修改 删除 查询
添加记录 ★
删除记录 ★
更改记录 ★
显示记录 ★ ★ ★ ★
查询 ★ ★ ★ ★
7.读者借阅等级:
功
能
模
块
浏览 添加 修改 删除 查询
添加记录 ★
删除记录 ★
更改记录 ★
显示记录 ★ ★ ★ ★
查询 ★ ★ ★ ★
8.读者信息:
功
能
模
块
浏览 添加 修改 删除 查询
添加记录 ★
删除记录 ★
更改记录 ★
显示记录 ★ ★ ★ ★
查询 ★ ★ ★ ★
9.图书操作:
功
能
模
块
借出 续借 归还 丢失 预约 查询 统计
借出 ★
续借 ★
归还 ★
丢失 ★ ★
添加记录 ★ ★ ★ ★ ★
删除记录 ★
更改记录 ★ ★ ★ ★
显示记录 ★ ★ ★ ★ ★ ★ ★ ★
查询 ★ ★ ★ ★ ★ ★ ★ ★
4.接口设计:
4.1外部接口:
用户界面:
登录界面:
主界面:
图书编目界面:
图书库存管理界面:
读者管理界面:
系统管理界面:
图书管理员管理:
出版社:
图书借阅等级:
读者借阅等级:
图书状态:
类别:
图书操作界面:
借阅:
预约:
查询界面:
软件接口:使用ODBC连接数据库
硬件接口:鼠标、打印机
4.2内部接口:(模块之间的接口)
模块间采取数据耦合方式,通过参数表传递数据,交换信息。
5.数据结构设计:
5.1逻辑结构设计:
采用线性表结构
5.2物理结构设计:
采用链表结构
5.3数据结构与程序的关系:
数据的录入、修改、删除、统计都要涉及记录结构定义。数据的查询在涉及多个数据文件之间的关系;错误信息结构为显示错误信息带来方便。
6.运行设计:
6.1运行模块的组合:通过主应用程序组合,模块均可独立操作存储文件。
6.2运行控制:通过键盘或鼠标选择控制相应功能,通过键盘输入记录信息,查询要求等。
6.3运行时间:
更新处理时间≤1ms
检索业务响应时间≤1s
数据传输时间≤1s
7.出错处理设计:
7.1出错输出信息:根据不同的错误提供不同的借误提示信息
7.2出错处理对策:
一般错误:显示错误信息,提示用户重新操作
严重错误:重新启动,必要时启用备份恢复数据
8. 安全保密设计:
提供用户登录机制,不同级别的用户拥有不同的权限。
9.维护设计
可以在软件交付后根据用户反馈意见修必类模块功能。
文档编号:LMS_3
版 本 号: V1.0
文档名称:详细设计说明书
项目名称:图书管理系统
项目负责人:
编 写: 年 月 日
校 对:
审 核:
批 准:
开发单位:
引言:
1.1 编写目的:
给出详细设计,供软件编程人员参考。
1.2 项目背景:
说明:
本项目的名称:图书管理系统
本项目的应用范围:中型图书室
开发者:
用户:开发人员
1.3 定义:
LMS : Library Management System
Title:记录图书馆内所有类图书的信息并可进行查询。
Item:记录馆内每一本图书的状态,并提供查询、统计、打印功能。
Borrower Information:记录读者信息并可进行查询。
Loan:对图书的出借、归还、续借进行管理并可进行查询。
Reservation: 提供预约与取消预约功能。
1.4 参考资料:
《实用软件工程》(第二版) 郑人杰 殷人昆 陶永雷 清华大学出版社
《软件工程——Java语言实现》 Stephen R. Schach 机械工业出版社
《实践者的研究方法》 Roger S. Pressman 机械工业出版社
《需求分析规格说明书》
《概要设计说明书》
总体设计:
2.1需求概述:
该《图书管理系统》针对的用户是中型图书室,藏书的种类包括中、英、俄、德、日文书籍和期刊,读者的数量和来源仅限于本单位职工及通过馆际互借认可的读者。相应的需求有:
1>能够存储一定数量的图书信息,并方便有效的进行相应的书籍数据操作和管理,这主要包括:
图书信息的录入、删除及修改。
图书信息的多关键字检索查询。
图书的出借、返还和资料统计。
图书的远程预约和续借。
馆际互借(通过电子邮件或现场录入)
2>能够对一定数量的读者进行相应的信息存储与管理,这其中包括:
读者信息的登记、删除及修改。
读者资料的统计与查询。
3>能够对需要的统计结果提供打印输出。
4>能够提供一定的安全机制,提供数据信息授权访问,防止随意删改,同时提供信息备份的服务。
2.2软件结构:(给出软件系统的结构图)
总体结构:
2.业务对象:
3.用户接口:
4.程序描述:
4.1:Title类
4.1.1添加编目信息:
类名: Title
方法名: addTitle
类型修饰符: Public void
参数: ISDN
出错消息: ISDN已存在或记录不符合要求
访问的文件: Title
改变的文件: Title
调用的方法: 查找记录 将新记录写入图书编目文件
程序逻辑:
接口: 调用形式: Void addTitle(){}
传入参数: 记录字段值
传出参数: 错误信息
存储分配: 每条记录180字节
限制条件: 无
测试要点: 对不合条件的记录是否有错误判断能力
4.1.2更新编目信息:
类名: Title
方法名: updateTitle
类型修饰符: Public void
参数: 记录
出错消息: 记录不符合要求
访问的文件: Title
改变的文件: Title
调用的方法: 更新图书编目文件
程序逻辑:
接口: 调用形式: Void updateTitle(){}
传入参数: 记录字段值
传出参数: 错误信息
存储分配: 无
限制条件: 无
测试要点: 对不合条件的记录是否有错误判断能力
4.1.3删除编目信息:
类名: Title
方法名: deleteTitle
类型修饰符: Public void
参数: 无
出错消息: 其它表中包含了相关记录,无法删除
访问的文件: Title
改变的文件: Title
调用的方法: 删除图书编目文件
程序逻辑:
接口: 调用形式: Void deleteTitle(){}
传入参数: 无
传出参数: 错误信息
存储分配: 无
限制条件: 无
测试要点: 能否正常删除记录,对错误删除的判断能力
4.1.4查询编目信息:
类名: Title
方法名: queryTitle
类型修饰符: Public void
参数: SQL查询语句
出错消息: 无
访问的文件: Title
改变的文件: 无
调用的方法: 查询图书编目文件
程序逻辑:
接口: 调用形式: Void queryTitle(){}
传入参数: 记录字段值
传出参数: 相关记录
存储分配: 动态分配
限制条件: 无
测试要点: 能否实现多关键字查询
4.2:Item类
4.2.1添加图书库存信息:
类名: Item
方法名: addItem
类型修饰符: Public void
参数: ISBN、ID
出错消息: ISBN不存在,ISBN、ID已存在或记录不符合要求
访问的文件: Item、Title
改变的文件: Item
调用的方法: 查找记录, 将新记录写入图书库存信息文件
程序逻辑:
接口: 调用形式: Void addItem(){}
传入参数: 记录字段值
传出参数: 错误信息
存储分配: 每条记录100字节
限制条件: 无
测试要点: 对不合条件的记录是否有错误判断能力