资源描述
软件工程项目实践报告
课题名称
图书管理系统
专 业
计算机科学与技术
开发组长
名字1 072485
开发组员
名字1 072485 名字3 072509
名字2 072417 名字4 072351
名字5 072513
指导老师
朱XX
小组编号
第一组
完成时间
12月 20日
具体分工
序号
学号
姓名
角色
承担的工作( 简介)
页码
备注
1
072485
名字1
组长
需求分析
总体设计
详细设计
编码
4-6
14-16
17-22
34-39
2.1-2.3
3.2
4.1-4.22
5.1-5.2
2
072351
名字4
副组长
测试
40-47
6.1-6.3
3
072509
名字3
副组长
需求分析
详细设计
6-8
11-12
22-27
2.4-2.5
2.7-2.9
4.23-4.25
4
072513
名字5
组员
可行性研究
需求分析
1-3
9-11
1.1-1.6
2.6
5
062417
名字2
组员
总体设计
详细设计
12-14
28-33
3.1
4.26-4.28
目录
1 可行性研究与项目开发计划 1
1.1 引言 1
1.1.1 问题定义 1
1.1.2 背景 1
1.1.3 编写目的 1
1.2 可行性研究的前景 1
1.2.1 要求 1
1.2.2 目标 1
1.2.3 条件、 假定和限制 2
1.2.4 进行可行性研究的方法 2
1.2.5 评价尺度 2
1.3 所建议的系统 2
1.3.1 对所建议系统的说明 2
1.3.2 影响 2
1.3.3 局限性 3
1.3.4 技术条件方面的可行性 3
1.4 社会因素方面的可行性 3
1.4.1 法律方面的可行性 3
1.4.2 使用方面的可行性 3
1.5 结论 3
1.6 工作进度表 3
2 需求分析 4
2.1 需求定义 4
2.1.1 图书信息查询/借书信息查询 4
2.1.2 新书入库/修改图书信息 4
2.1.3借阅图书/归还图书 4
2.2 目标系统的数据分析与建模 5
2.3 目标系统的功能需求与建模 6
2.4 目标系统的行为需求与建模 6
2.5 数据字典 8
2.6 IPO图 9
2.7 目标系统的性能需求 11
2.7.1 数据精确度 11
2.7.2 响应时间 11
2.8 运行需求 11
2.8.1 用户界面 11
2.8.2 故障处理 11
2.9 其它需求 11
2.9.1 可使用性 11
2.9.2 安全性 11
2.9.3 可维护性 12
2.9.4 可移植性 12
3 总体设计 13
3.1 系统设计 13
3.1.1 系统功能分析 13
3.1.2 运行环境 13
3.1.3 层次图和结构图 13
3.2 数据库设计 14
3.2.1 数据库需求分析 14
3.2.2 数据库结构设计 14
3.2.3 数据库逻辑结构设计 15
4 详细设计 17
4.1 人机界面设计 17
4.1.1 设计概述 17
4.1.2 系统响应时间 18
4.1.3 出错信息处理 18
4.2 功能模块设计 19
4.2.1 用户登录模块 19
4.2.2 图书馆书籍查询模块 21
4.2.3 已借书籍查询模块 22
4.2.4 新增图书模块 24
4.2.5 删除图书模块 26
4.2.6 修改图书信息 28
4.2.7 借阅图书模块 30
4.2.8 归还图书模块 32
5 编码 34
5.1 开发环境 34
5.2 运行结果 34
5.2.1 登录模块 34
5.2.2 书籍查询模块 35
5.2.3 已借书籍查询模块 36
5.2.4 借书模块 36
5.2.5 还书模块 37
5.2.6 新书入库 38
5.2.7 删除书籍 38
5.2.8 书籍信息修改 39
6 测试 40
6.1 测试计划 40
6.1.1 测试计划名称 40
6.1.2 引言 40
6.1.2.1 问题定义 40
6.1.2.2 背景 40
6.1.2.3 编写目的 40
6.1.3 测试项 40
6.1.4 被测试的特性 41
6.1.5 不被测试的特性 41
6.1.6 方法 41
6.1.7 项经过准则 42
6.1.8 暂停标准和再启动要求 42
6.1.9 应提供的测试文件 42
6.1.10 测试任务 42
6.1.11 环境要求 42
6.2 测试日志 42
6.2.1 图书馆书籍查询模块测试日志 42
6.2.2 已借书籍查询模块测试日志 43
6.2.3 借阅图书模块测试日志 44
6.2.4 归还图书模块测试日志 45
6.2.5 新增图书模块测试日志 45
6.2.6 删除图书模块测试日志 45
6.2.7 修改书籍信息模块测试日志 46
6.2.8 借阅人子系统测试日志 46
6.2.9 管理员子系统测试日志 46
6.2.10 登录模块测试日志 46
6.2.11 系统集成测试日志 47
6.3 测试总结 47
7 总结 48
7.1 项目总结 48
7.2 个人总结 48
7.2.1 名字1个人总结 48
7.2.2 名字5个人总结 49
7.2.3 名字2个人总结 49
7.2.4 名字3个人总结 49
7.2.5 名字4个人总结 50
8 附录 51
8.1 登录界面代码 51
8.2 管理员界面代码 52
8.3 借阅人代码 59
1 可行性研究与项目开发计划
1.1 引言
1.1.1 问题定义
图书管理系统是指应用电子计算机为读者提供方便的图书借阅环境,并能满足所有授权用户对信息的各种功能需求的计算机应用软件系统。
1.1.2 背景
所建议开发的软件系统的名称: 图书管理系统
本项目的任务提出者: 名字1、 名字3、 名字5、 名字2、 名字4
开发者: 名字1、 名字3、 名字5、 名字2、 名字4
产品用户: 图书管理员、 借阅者
1.1.3 编写目的
可行性研究报告是为”图书管理系统”开发的可能性、 可行性、 必要性提供论据, 并导出系统的逻辑模型, 探索出若干种可供选择的主要解法, 为开发人员进行系统总体规划设计及具体实施开发工程提供必要的参考资料, 在系统开发完成后期为系统的测试、 验收提供帮助。其编写过程由名字1、 名字3、 名字5、 名字2、 名字4合作完成, 预期读者是从事”图书管理系统”开发的五个人。
1.2 可行性研究的前景
1.2.1 要求
a.功能: 这是一个图书管理系统, 主要负责查询、 添加、 删除、 修改书库的信息; 查询持卡人的借书情况; 处理借书, 还书, 续借等事务; 统计图书流动情况。
b.数据的来源: 由学校图书馆提供 。
c.输入要求: 数据完整, 详实。
输出要求: 简捷, 快速, 实时。
d.处理流程和数据流程用图表的方式: 表示出最基本的数据流程和处理流程, 并辅之以叙述。
e.在安全与保密方面: 登陆系统时, 需验证身份和密码, 只有图书管理员才能对书籍信息进行修改以及处理借书还书等操作。
1.2.2 目标
a.图书管理系统能够方便图书借阅管理, 只需一台电脑和一个管理员就能轻松完成。
b.提高对新书入库、 借阅图书、 借阅信息统计以及学生信息管理的速度。
c.减少人力的投入的同时提高了信息处理的精度和准确度, 在输入无误的基础上可保证数据的正确性。
d.改进了管理服务的质量, 可由系统对入库图书进行自动分类、 归类, 借阅图书的分类和次数, 学生信息整理、 借阅情况登记入档。
e.改进人员的利用率, 减少了前台操作人员, 更多的人员可用于为借阅者服务、 更新采购图书等其它事物, 节省人力资源。
1.2.3 条件、 假定和限制
a.信息来源单一, 客户需求分析主要来源于对图书管理员的采访和咨询。
b.技术方面本组人员对SQL还不熟悉, 还处于学习阶段。
c.进行系统方案选择比较的时间较短, 只有一至两个星期。
d.系统完成截止时间最晚为本学期期末。
1.2.4 进行可行性研究的方法
复查系统规模和目标; 对已有图书管理系统进行分析和研究; 导出新系统的高层逻辑模型, 并导出和评价供选择的解法。
1.2.5 评价尺度
本软件开发项目为一个学生项目, 由各组员通力协作、 自主研发, 充分调动主观能动性, 故为零成本项目, 并由于时间有限, 因此开发时间也不会太长, 操作界面方便即可。
1.3 所建议的系统
1.3.1 对所建议系统的说明
该软件是一个图书管理系统。
1) 功能概括:
a.信息来源单一, 客户需求分析主要来源于对图书管理员的采访和咨询。
b技术方面本组人员对SQL不熟悉, 还处于学习阶段。
c.进行系统方案选择比较的时间较短, 只有一至两个星期。
d.系统完成截止时间最晚为本学期期末。
2) 系统环境以及工具:
a.运行环境: Windows XP
b.编程语言: C#
c.数据库: SQL
1.3.2 影响
a.对设备的影响:没有什么特殊的要求, 该系统的信息量不是太大, 一般的PC机都能使用。
b.对软件的影响: Windows XP、 C#和MS SQL
c.对用户单位机构的影响: 使用该系统, 客户原有体系几乎不需要太大的变化。该操作简单, 使用人员会计算机基本操作即可。肯定会很快提高工作效率, 减轻劳动负担。
1.3.3 局限性
由于我们都是在校学生, 缺乏实践经验, 我们的图书管理系统做的比较不健全, 只是适用性的东西。该系统工作量小, 一般情况下不会由于信息量大而造成麻烦。有关数据库的存储量, 就当前而言, 客户的藏书量不是很大。如果日后有所扩大, 能够在原有基础上作相应的扩充, 这在SQL中是很容易办到的。
1.3.4 技术条件方面的可行性
技术方面, 虽然我们对SQL不熟悉, 可是本组同学有较强的钻研精神和学习能力, 相信经过小组组员间的协作, 我们能够顺利完成图书管理系统的开发。
1.4 社会因素方面的可行性
1.4.1 法律方面的可行性
法律方面我们已经调查研究过, 我们用的软件都是正版的, 此软件不存在侵犯专利权、 侵犯版权等问题, 因此在法律方面是可行的。
1.4.2 使用方面的可行性
我们的软件操作简单, 运行方便, 用我们的软件来管理图书是没有什么困难的, 因此在使用方面是可行的。
1.5 结论
综上, 此系统逻辑模型架构清晰, 功能明确, 有较强的实用性, 在技术上可实现, 故为一个可行的项目。
1.6 工作进度表
可行性研究
1周
需求分析
2周
总体设计
1周
详细设计
1周
编码与测试
3周
总结
1周
2 需求分析
2.1 需求定义
2.1.1 图书信息查询/借书信息查询
图书馆主要向读者提供图书借阅的服务。读者为了借阅图书, 一般情况下, 需要在借书之前查询所要借阅的图书情况, 因此图书馆需要为读者提供图书查询功能。例如, 读者可能想借阅某方面的书, 但不知道图书馆在该方面有哪些图书可供借阅, 因此需要对图书馆的图书进行查询; 或者, 读者知道想借阅的图书信息, 但不知道该图书馆是否有该书或不知道图书在图书馆的位置、 是否被借出、 是否能够借阅等信息, 这也需要使用图书查询功能。
一般的图书查询中, 读者是经过图书登记卡、 浏览图书登记卡中的信息得到图书信息的。
读者在查询图书时, 能够依据以下条件查询:
1) 图书的ID
2) 图书的名称
3) 图书的作者
4) 图书的出版社
5) 图书是否在库中
经过图书查询, 读者获得图书馆是否有自己想要的图书, 该图书的简单信息以及图书在图书馆的借阅位置等信息。
2.1.2 新书入库/修改图书信息
为了能正常运行, 图书馆要及时更新馆藏图书。对于新书, 要购进, 供读者借阅; 因此要设计到图书的批量入库。
对于批量入库, 图书管理员要批量登记图书的信息, 包括图书ID、 图书名称、 作者、 出版社等信息。
在录入书时难免出现错误, 因此增加修改图书信息功能
2.1.3借阅图书/归还图书
图书馆的基本功能之一就是为读者提供借阅服务, 读者经过借阅这一过程, 能够把图书带出图书馆, 从而使读者能够更方便的浏览图书。借书过程中, 图书管理员要对读者的借书资格进行审查, 对符合借书条件的读者, 允许其借书, 对其借书记录进行登记; 对没有借书资格的读者, 禁止其借书。具体的步骤如下:
1) 读者向图书管理员提交请求和图书借阅卡
2) 图书管理员检查读者提供的借阅卡, 如果该借阅证真实准确, 读者已经借阅的图书并没有超过允许借书量, 而且读者没有逾期未还的图书, 则允许读者借书, 否则, 读者不能从图书馆借书。
3) 读者拿到要借阅的图书, 同时拿到自己的借阅卡, 借书过程完毕。
4) 当借阅图书的数量超过5本或者出现未按期归还图书的情况, 则不好进行借阅处理。
图书馆的另一基本功能就是为读者提供还书服务, 读者在一本图书借阅期满之前把该图书还给图书馆, 一般的还书步骤如下:
1) 读者把所借的图书和自己的借阅卡交给图书管理员。
2) 图书管理员对图书进行检查, 看有无损坏, 如果出现图书的损坏情况, 读者应进行相应的赔偿。
3) 图书管理员查看是否超过规定借阅期限, 如果已经过期, 则读者要按规定交纳罚金。
4) 图书管理员进行登记, 同时把还书信息记入借阅卡。
5) 读者拿回自己的借阅卡, 还书过程借书。
6) 读者逾期未归还图书超过三天, 将按照每本每天进行一定的罚款。
2.2 目标系统的数据分析与建模
数据的概念模型用E-R图表示如下:
2.3 目标系统的功能需求与建模
2.4 目标系统的行为需求与建模
用状态图来描述系统的行为模型
2.5 数据字典
名字: 图书记录
别名:
描述: 记录图书馆中的图书的信息
定义: 图书记录 = 书的ID + 书名 + 作者 + 出版社 + 是否在库中
位置: 数据库
名字: 借阅记录
别名:
描述: 记录图书馆中的图书的借阅
情况
定义: 借阅记录 = 书的ID + 借阅人ID + 借出时间
位置: 数据库
名字: 用户记录
别名:
描述: 记录访问图书馆的用户的信息
定义: 用户记录 = 用户名+ 密码 + 权限
位置: 数据库
2.6 IPO图
IPO表
被调用: 管理员
调用:
输入: 部分书信息/无
输出: 部分书信息/无
处理: 在书籍表中查询符合要求的记录
局部数据元素:
注释:
系统: 图书管理系统
模块: 图书查询(管理员)
编号: NO.001
IPO表
被调用: 管理员
调用:
输入: 新增书的信息
输出:
处理: 在书籍表中修改相应的记录
局部数据元素:
注释:
系统: 图书管理系统
模块: 增加新图书
编号: NO.002
IPO表
被调用: 管理员
调用:
输入: 书的ID及修改后的信息
输出: 部分书信息/无
处理: 在书籍表中修改相应记录
局部数据元素:
注释:
IPO表
被调用: 管理员
调用:
输入: 欲删除书籍的ID
输出:
处理: 删除书籍表中的相应记录
局部数据元素:
注释:
系统: 图书管理系统
模块: 删除书籍
编号: NO.004
系统: 图书管理系统
模块: 图书信息修改
编号: NO.003
IPO表
被调用: 用户
调用:
输入: 部分书信息/无
输出: 完整图书信息
处理: 在书籍表中查询符合要求的记录
局部数据元素:
注释:
系统: 图书管理系统
模块: 图书查询(用户)
编号: NO.005
IPO表
被调用: 管理员类
调用: 借阅记录
输入:
输出: 所有结束记录
处理: 输出借阅记录表中所有内容
局部数据元素:
注释:
系统: 图书管理系统
模块: 借阅记录查询
编号: NO.006
IPO表
被调用: 管理员
调用: ( 借阅记录) 修改模块
输入: 书籍ID、 借阅人ID和结束时间
输出: 书籍ID、 借书ID
处理: 创立一个新的借书项并向修改模块发送书ID
局部数据元素:
注释:
IPO表
被调用: 管理员
调用: ( 借阅记录) 修改模块
输入: 借书ID
输出: 书ID
处理: 删除借阅记录中相应借书项, 返回所还书的ID
局部数据元素:
注释:
系统: 图书管理系统
模块: 还书
编号: NO.008
系统: 图书管理系统
模块: 借书
编号: NO.007
系统: 图书管理系统
模块: 查阅借书记录
编号: NO.009
注释:
局部数据元素:
处理: 返回借阅人所借书的借书项
输出: 借书ID
输入: 借阅人ID
调用: ( 借阅记录)
被调用: 借阅人
IPO表
2.7 目标系统的性能需求
2.7.1 数据精确度
用户的各种查询操作, 管理员的各种更新操作均要求准确无误地进行数据库操作, 给出正确的操作结果。
2.7.2 响应时间
对于用户的各种操作请求应尽快给出响应, 响应时间应控制在2s左右。
2.8 运行需求
2.8.1 用户界面
用户界面友好, 与用户完成互动, 满足用户需求, 方便用户操作。
2.8.2 故障处理
目标系统应对于能预测到的故障均进行预处理, 从而能够有效的防止故障的发生, 方便进行故障处理。
2.9 其它需求
2.9.1 可使用性
目标系统应该能够随时处于正常工作状态, 以方便用户随时进行查询和管理。
2.9.2 安全性
目标系统应该能够保证用户的个人信息安全, 由管理员统一进行管理, 而每个用户只可查看和修改个人信息。
2.9.3 可维护性
目标系统应该具有良好的可维护性, 以便在不花费很大代价的前提下被长时间使用。
2.9.4 可移植性
目标系统应该具有良好的可移植性, 以方便在不同平台上使用。
3 总体设计
3.1 系统设计
3.1.1 系统功能分析
图书管理系统应具备的功能如下:
1) 进入系统前需要身份验证、 用户名、 密码, 输入正确后方可进入。
2) 用户能够查询书库中书的信息和已借的书籍信息。
3) 图书管理员能够根据需要进行书库管理, 包括添加书籍, 删除书籍, 查询书籍信息, 修改书籍信息等。
3.1.2 运行环境
Windows XP、 Visual Studio 和SQL
3.1.3 层次图和结构图
3.2 数据库设计
3.2.1 数据库需求分析
在需求分析的基础上, 结合数据流程图, 经过对图书管理系统的工作内容和数据流程的分析, 设置以下的数据结构和相关数据项:
(1)用户种类信息: 包括的数据项有: 用户ID, 用户密码, 用户权限。
(2)书籍信息: 包括的数据项有: 书的ID, 书名, 作者, 出版社, 是否在库中。
(3)借阅信息: 包括借阅人ID,书籍ID, 借出时间。
根据以上分析得出的数据结构和数据项, 进一步进行数据库概念结构设计和逻辑结构设计。
3.2.2 数据库结构设计
3.2.3 数据库逻辑结构设计
将概念结构设计阶段得到的各个数据结构及E-R图转换为SQL数据库系统支持的数据模型, 也就是数据库的逻辑结构设计。
图书馆管理信息系统数据库中各个表格的设计结果如下所示, 每个表格对应数据库中的一张表格, 详细描述了各表格的存储信息规范。
表TableUser
列名
数据类型
备注
ID
varchar(50)
主键
书名
varchar(50)
无
作者
varchar(50)
无
出版社
varchar(50)
无
是否在库中
Bit
无
表TableRecord
列名
数据类型
备注
书的ID
varchar(50)
无
借书人ID
varchar(50)
无
借书时间
Datetime
无
表TableBook
列名
数据类型
备注
用户名
varchar(50)
无
权限
varchar(50)
无
密码
int
无
4 详细设计
4.1 人机界面设计
4.1.1 设计概述
人机界面设计是接口设计的一个重要的组成部分。对于交互式系统来说, 人机界面设计和数据设计, 体系结构设计及过程设计一样重要。
图书管理系统是基于对话框设计的, 用到了三个对话框, 分别为登录对话框, 书库管理员对话框和借阅人对话框。
在用户登入时验证用户身份, 如果是合法用户, 则根据数据库中记录的用户权限转到管理员界面或者借阅人界面。
登录界面
书库管理员界面
借阅人界面
4.1.2 系统响应时间
对于用户的各种操作请求应尽快给出响应, 响应时间应控制在1s左右。
4.1.3 出错信息处理
对于用户不符合要求的输入, 系统会给出错误提示, 并告知其错误原因。
4.2 功能模块设计
4.2.1 用户登录模块
此模块用于用户从登录界面进入主界面, 经过判断用户名,用户密码的正确性来验证用户的合法性。根据用户的权限不同跳至管理员界面和借阅人界面。
输入: 用户名, 密码
输出: 管理员或借阅人界面
流程逻辑
4.2.2 图书馆书籍查询模块
此模块用于实现用户对图书馆中的书籍查询的功能。根据用户输入的相应的图书信息在数据库中搜索, 给出用户相应的图书信息。
输入: 书的ID, 书名, 作者, 出版社, 是否在库中
输出: 符合要求的相关图书信息
流程逻辑
4.2.3 已借书籍查询模块
此模块用于查询某用户已借的书籍。如果是在管理员界面下则输入要查询用户的ID,
如果在借阅人界面下则无需输入。
输入: 用户名/无
输出: 该用户已借的书籍
流程逻辑
4.2.4 新增图书模块
此模块实现新书的登记功能。用户需输入新书的详细信息, 如果书的ID不与库中已有书籍ID相冲突, 则系统将信息保存在数据库中后, 新书登记成功。否则输出失败原因。
输入: 书的ID, 书名, 作者, 出版社, 是否在库中
输出: 添加成功消息/失败原因
流程逻辑
4.2.5 删除图书模块
此模块实现书的删除功能。用户需输入要删除书的ID, 如果书库中有ID为该ID的书, 则系统将删除数据库中该书的相关信息, 并显示删除书籍成功, 否则提示失败原因。
输入: 书的ID
输出: 删除成功消息/失败原因
流程逻辑
4.2.6 修改图书信息
此模块实现书的信息修改功能。用户需输入书的ID和要修改的信息, 如果书库中有ID为该ID的书, 则系统将更新数据库中与该书相关的信息, 并显示信息修改成功, 否则输出失败原因。
输入: 书的ID, 书名, 作者, 出版社, 是否在库中
输出: 修改成功消息/失败原因
流程逻辑
4.2.7 借阅图书模块
此模块用于图书的借阅, 系统根据借阅人ID是否合法, 借阅人是否满足借阅条件( 已借书籍小于5本且没有书超期不还( 30天) ) , 书的ID是否合法, 书是否在库中来决定是否允许借阅。如果允许, 则修改数据库中的相应数据并输出借阅成功的消息。否则输出借阅失败的原因。
输入: 借阅人ID, 书的ID
输出: 借阅成功消息/借阅失败的原因
流程逻辑
4.2.8 归还图书模块
此模块用于图书的归还, 系统根据书的ID是否合法, 书是否在库中来决定是否允许归还。如果允许, 则修改数据库中的相应数据并输出归还成功的消息。否则输出归还失败的原因。
输入: 书籍ID
输出: 归还成功消息或归还失败原因
流程逻辑
5 编码
5.1 开发环境
Windows XP、 Visual Studio C#、 Sql Server
5.2 运行结果
5.2.1 登录模块
5.2.2 书籍查询模块
5.2.3 已借书籍查询模块
5.2.4 借书模块
5.2.5 还书模块
5.2.6 新书入库
5.2.7 删除书籍
5.2.8 书籍信息修改
6 测试
6.1 测试计划
6.1.1 测试计划名称
图书管理系统测试计划
6.1.2 引言
6.1.2.1 问题定义
图书管理系统是指应用电子计算机为读者提供方便的图书借阅环境,并能满足所有授权用户对信息的各种功能需求的计算机应用软件系统。
6.1.2.2 背景
所建议开发的软件系统的名称: 图书管理系统
本项目的任务提出者: 名字1、 名字3、 名字5、 名字2、 名字4
开发者: 名字1、 名字3、 名字5、 名字2、 名字4
产品用户: 图书管理员、 借阅者
6.1.2.3 编写目的
可行性研究报告是为”图书管理系统”开发的可能性、 可行性、 必要性提供论据, 并导出系统的逻辑模型, 探索出若干种可供选择的主要解法, 为开发人员进行系统总体规划设计及具体实施开发工程提供必要的参考资料, 在系统开发完成后期为系统的测试、 验收提供帮助。其编写过程由名字1、 名字3、 名字5、 名字2、 名字4合作完成, 预期读者是从事”图书管理系统”开发的五个人。
6.1.3 测试项
测试项名称
版本
修订级别
开始测试前逻辑或物理变换要求
用户登录模块
1.0
1.0
其余模块均已测试完毕
图书馆书籍查询模块
1.0
1.0
无
已借书籍查询模块
1.0
1.0
无
新增图书模块
1.0
1.0
无
删除图书模块
1.0
1.0
无
修改图书信息模块
1.0
1.0
无
借阅图书模块
1.0
1.0
无
归还图书模块
1.0
1.0
无
6.1.4 被测试的特性
测试项名称
被测试的特性
用户登录模块
判断用户名,用户密码的正确性来验证用户的合法性。根据用户的权限不同跳至管理员界面和借阅人界面。
图书馆书籍查询模块
根据用户输入的相应的图书信息在数据库中搜索, 给出用户相应的图书信息。
已借书籍查询模块
此模块用于查询某用户已借的书籍。如果是在管理员界面下则输入要查询用户的ID, 如果在借阅人界面下则无需输入。
新增图书模块
用户需输入新书的详细信息, 如果书的ID不与库中已有书籍ID相冲突, 则系统将信息保存在数据库中后, 新书登记成功。否则输出失败原因。
删除图书模块
用户需输入要删除书的ID, 如果书库中有ID为该ID的书, 则系统将删除数据库中该书的相关信息, 并显示删除书籍成功, 否则提示失败原因。
修改图书信息模块
用户需输入书的ID和要修改的信息, 如果书库中有ID为该ID的书, 则系统将更新数据库中与该书相关的信息, 并显示信息修改成功, 否则输出失败原因。
借阅图书模块
根据借阅人ID是否合法, 借阅人是否满足借阅条件( 已借书籍小于5本且没有书超期不还( 30天) ) , 书的ID是否合法, 书是否在库中来决定是否允许借阅。如果允许, 则修改数据库中的相应数据并输出借阅成功的消息。否则输出借阅失败的原因。
归还图书模块
根据书的ID是否合法, 书是否在库中来决定是否允许归还。如果允许, 则修改数据库中的相应数据并输出归还成功的消息。否则输出归还失败的原因。
6.1.5 不被测试的特性
工程中各模块使用的所有由微软提供的模块, 如编辑框控件、 按钮控件, 所表现出来的特性。不测试的原因是这些模块在微软提供给用户前已经过测试, 其可靠性已有保证, 无需再度测试。
6.1.6 方法
本测试使用自底向上的测试方法。测试流程如下图所示。
6.1.7 项经过准则
如下表所示, 每个模块在规定的输入下能得到正确的输出。
测试项名称
输入
输出
用户登录模块
用户名、 密码
管理员或借阅人界面
图书馆书籍查询模块
书的ID, 书名, 作者, 出版社, 是否在库中
符合要求的相关图书信息
已借书籍查询模块
用户名/无
该用户已借的书籍
新增图书模块
书的ID, 书名, 作者, 出版社, 是否在库中
添加成功消息/失败原因
删除图书模块
书的ID
删除成功消息/失败原因
修改图书信息模块
书的ID, 书名, 作者, 出版社, 是否在库中
修改成功消息/失败原因
借阅图书模块
借阅人ID, 书的ID
借阅成功消息/借阅失败的原因
归还图书模块
书籍ID
归还成功消息或归还失败原因
6.1.8 暂停标准和再启动要求
暂停标准: 某模块在规定输入下未得到正确的输出。
再启动要求: 导致错误输出的错误被找到并改正。
6.1.9 应提供的测试文件
项目总体设计与详细设计, 全部工程文件( 含源代码文件, 应用程序文件等) 。
6.1.10 测试任务
尽可能的排除系统错误并提供系统可靠性预测。
6.1.11 环境要求
Microsoft Windows vista系统或Microsoft Windows XP系统, Visual Studio 编译、 连接、 调试。
6.2 测试日志
6.2.1 图书馆书籍查询模块测试日志
测试内容
测试方法
事件
时间
记录人
GetData()单元
代码审查
经过
/12/5
名字4
SearchConditon()单元, 且stock==0
白盒测试
经过
/12/5
名字4
SearchConditon()单元, 且stock==1
白盒测试
经过
/12/5
名字4
SearchConditon()单元, 且stock==2
白盒测试
经过
/12/5
名字4
SearchNow( ) 单元
代码审查
经过
/12/5
名字4
模块测试,
输入: 无
正确输出: 书库中所有书籍
黑盒测试
输出书库中所有书籍经过
/12/6
名字4
模块测试
输入: ID=1
正确输出: ID为1的书的信息
黑盒测试
输出ID为1的书的信息, 经过
/12/6
名字4
模块测试,
输入: ID=100
正确输出: 没有符合要求的图书
黑盒测试
输出: 没有符合要求的图书, 经过
/12/6
名字4
模块测试,
输入: 作者名=金庸
正确输出: 书库中的所有作者为金庸的书籍
黑盒测试
输出书库中的所有作者为金庸的书籍, 经过
/12/6
名字4
模块测试,
输入: 作者名=梁羽生
正确输出: 没有符合要求的图书
黑盒测试
输出: 没有符合要求的图书, 经过
/12/6
名字4
模块测试,
输入: 是否在库中=是
正确输出: 书库中的所有在库的书
黑盒测试
输出书库中的所有在库的书, 经过
/12/6
名字4
模块测试,
输入: 是否在库中=否
正确输出: 书库中的所有不在库的书
黑盒测试
输出书库中的所有不在库的书, 经过
/12/6
名字4
模块测试,
输入: 出版社=人民文学出版社
正确输出: 书库中的所有出版社为人民文学出版社的书
黑盒测试
输出书库中的所有出版社为人民文学出版社的书, 经过
/12/6
名字4
模块测试,
输入: 出版社=人民出版社
正确输出: 无输出
黑盒测试
无输出, 经过
/12/6
名字4
6.2.2 已借书籍查询模块测试日志
测试内容
测试方法
事件
时间
记录人
search2_sentence()单元
代码审查
经过
/12/7
名字4
search2_Execute()单元
代码审查
经过
/12/7
名字4
模块测试,
输入: 无
输出: 该用户没有借书
( 借阅人界面)
黑盒测试
输出: 该用户没有借书, 经过
/12/7
名字4
模块测试,
输入: 无
输出: 该用户借的所有书
( 借阅人界面)
黑盒测试
输出该用户借的所有书, 经过
/12/7
名字4
模块测试,
输入: 借阅人ID =sunlibin
输出: 该用户不存在或没有借书
( 管理员界面)
黑盒测试
输出: 该用户不存在或没有借书, 经过
/12/7
名字4
模块测试,
输入: 借阅人ID =sun
输出: 该用户不存在或没有借书
( 管理员界面)
黑盒测试
输出: 该用户不存在或没有借书, 经过
/12/7
名字4
6.2.3 借阅图书模块测试日志
测试内容
测试方法
事件
时间
记录人
模块测试,
输入: 书的ID=1, 借阅人ID =sunlibin
正确输出: 借书成功!
黑盒测试
输出: 借书成功! , 经过
/12/7
名字4
模块测试,
输入: 书的ID=2, 借阅人ID =sunlibin
正确输出: 已借的书超过5本或超过还书期限, 还书后方可再借书
黑盒测试
输出: 已借的书超过5本或超过还书期限, 还书后方可再借书, 经过
/12/7
名字4
模块测试,
输入: 书的ID=2, 借阅人ID =sunlibin
正确输出: 已借的书超过5本或超过还书期限, 还书后方可再借书
黑盒测试
输出: 已借的书超过5本或超过还书期限, 还书后方可再借书, 经过
/12/7
名字4
模块测试,
输入: 书的ID=2, 借阅人ID =sunlibin
正确输出: 该书不在库中或用户名无效!
黑盒测试
输出: 该书不在库中或用户名无效! , 经过
/12/7
名字4
模块测试,
输入: 书的ID=3, 借阅人ID =sunlibin
正确输出: 该书不在库中或用户名无效!
黑盒测试
输出: 该书不在库中或用户名无效! , 经过
/12/7
名字4
模块测试,
输入: 书的ID=100, 借阅人ID =sunlibin
正确输出: 该书不在库中或用户名无效!
黑盒测试
输出: 该书不在库中或用户名无效! , 经过
/12/7
名字4
6.2.4 归还图书模块测试日志
测试内容
测试
展开阅读全文