软件工程课程设计是学习软件工程课程后所进行的实践环节,目的是培养学生用工程化的思想和标准文档化的思想进行软件开发。本次课程设计通过开发一个小型实用的软件系统,亲身体验软件生命周期中的各个环节,以加深对软件工程课程的深入理解、锻炼独立分析、解决问题的能力。
1)复习软件工程课程的主要内容,熟练掌握软件生命周期的理论以及各阶段的基本概念。
2)明确可行性分析、需求分析、设计、测试等阶段的基本任务和基本方法。
3)熟练运用规范化的描述方法和文档,描述软件开发的各个阶段。
4)熟悉开发环境和开发工具。
1)对所设计和实现的系统进行可行性分析,提交可行性分析报告;
2)对系统进行需求分析,可以选择传统的分析方法或者面向对象的分析方法,提交软件需求规格说明书(SRS);
3)在SRS的基础上进行软件的概要设计和详细设计,提交软件设计文档;
4)遵循上述文档的要求,实现软件;
5)对所实现系统进行软件测试,完成软件测试报告。
随着图书馆规模的不断扩大,图书数量也相应的增加,有关图书的各种信息量也成倍增加,面对着庞大的信息量,传统的人工方式管理会导致图书馆管理上的混乱,人力与物力过多浪费,图书馆管理费用的增加,从而使图书馆的负担过重,影响整个图书馆的运作和控制管理,因此,必须制定一套合理、有效,规范和实用的图书管理系统,对图书资料进行集中统一的管理。图书管理系统对于现代图书馆而言,是能否发挥其教学研究的作用的自关重要的技术平台,对于在校学生和管理员来说,是能否方便快速获取信息的关键。所以,图书管理系统应该能够为用户提供充足的信息和快捷方便的操作手段。
工作负荷:以前的图书管理完全是手工操作,从新书的购买、编码、入库、上架到借阅、续借、查询等,耗费了很大的人力,并且很难避免错误的发生,该图书管理系统针对这些问题,不仅降低了工作量,还改善了图书管理上的准确性,功能清晰易懂,便于操作。
费用开支:软件开发中的费用支出主要有开发人员、材料、设备、开发空间以及后期的维护等方面的支出。
人员:对于此系统的开发,需要至少三名有经验的软件开发人员,系统的操作人员以及后期维护人员。
设备:数据库管理系统SQLServer2019;windows操作系统;Visual Studio 2019。
局限性:计算机在非正常情况下停止工作是数据的备份情况,以及每个人对界面的上手程度的不同
主要分析现有技术条件能否顺利完成开发工作,硬件、软件配置能否满足开发者的需要,各类技术人员的数量,水平,来源等。图书馆管理系统的工作主要是在读者和图书馆之间架起一座桥梁,能相互沟通信息和处理信息。这一特点非常适合计算机特点,通过网络internet技术,发挥计算机的信息传输速度快、准确度高的优势。计算机硬件和软件技术的飞速发展,为系统的建设提供了技术条件。
投资:
(1) 研究(需求的研究和设计的研究);
(2) 开发计划与测量基准的研究;
(3) 数据库的建立;
(4) 检查费用和技术管理性费用;
(5) 培训费、旅差费以及开发安装人员所需要的一次性支出;
(6)设备的租金和维护费用;
(7)软件的租金和维护费用;
(8)数据通讯方面的租金和维护费用;
收益:
在整个生命期内由于运行所建议系统而导致的按月的、按年的能用人民币数目表示的收益,包括开支的减少和避免。尤其是一些不定量的收益,因为并不是谋利系统,是为老师和学生服务的系统,间接提高学校的名誉和提高对外界的形象分值,间接带来不可估量的效益。
由于所有软件都用正版,技术资料都由提出方保管,数据信息均可保证合法来源。所以,在法律方面是可行的。
主要分析现有技术条件能否顺利完成开发工作,硬件、软件配置能否满足开发者的需要,各类技术人员的数量,水平,来源等。图书馆管理系统的工作主要是在读者和图书馆之间架起一座桥梁,能相互沟通信息和处理信息。这一特点非常适合计算机特点,通过网络internet技术,发挥计算机的信息传输速度快、准确度高的优势。计算机硬件和软件技术的飞速发展,为系统的建设提供了技术条件。
网页版图书管理系统:基于Java和MySQL的网页版图书管理系统,具有界面美观、兼容度高的优点,但编程难度较高,成本增加。
客户端图书馆:基于C#和SQL server的客户端图书馆管理系统,具有编程简单,开发周期短,稳定等优点。
根据以上分析可知,开发图书管理系统不仅有较大的经济效益而且有更大的社会效益,从而开发使该系统具有开发价值,也节省了大量资源,但是时间有限,该管理系统考虑不太健全,我们会在这方面加强学习和改进,所以我们认为开发此系统的条件已经具备,可以进行开发。
图书馆管理系统就是能满足读者和图书的图书馆实现日常操作信息化和后台统计电算化的系统。它能够帮助图书馆管理人员处理基本的管理项目,图书馆满足信息化的需要,并且有操作简单,易上手,错误较少等优点。
同时,世界的信息化的趋势也让我们的生活不得不进入信息化与模范化,软件产业更是如此,大力推进信息化发展,已成为我国经济社会发展新阶段重要而紧迫的战略任务。所以,图书管理系统的制作是急迫的和必须的。
本系统通过强大的计算机技术给图书的信息更新带来便利。本系统实现了图书管理信息更新等功能。
SQLServer2019;windows操作系统;Visual Studio 2019
2.2.1数据流图
顶层数据流图
0层数据流图
书籍管理子系统DFD
用户管理子系统DFD
登陆子系统DFD
借阅子系统DFD
2.2.2数据描述
(1)E-R图
数据词典
图书信息表
图书信息=书号+书名+作者+评分+出版社+价格+数目
书号=”0000000000001”..”9999999999999”
书名=1{字符}20
作者=1{字符}20
评分=”0”..”10”
出版社=1[字符]20
价格=”0”..”200”
数量=”0”..”999”
用户信息表
用户信息=账号+姓名+密码+性别+生日
账号=”0”..”9999999999”
姓名=4{字符}10
密码=5{字符}10
性别=【男|女】
生日=”年”+年+”月”+月+”日”+日
年=”1870”.."2200"
月=”1”..”12”
日=”1”..”31”
管理员信息表
管理员信息=账号+姓名+密码
账号=”0”..”9999999999”
姓名=4{字符}10
密码=5{字符}10
借阅记录表
借阅记录=书号+用户账号+借阅时长+借阅号+是否逾期+借书时间
书号=”0000000000001”..”9999999999999”
账号=”0”..”9999999999”
借阅时长=[15天|30天|60天]
借阅号=”000001”..”999999”
是否逾期=[0|1]
借书时间=”年”+年+”月”+月+”日”+日
年=”1870”.."2200"
月=”1”..”12”
日=”1”..”31”
根据关键字精度的不同,查找可分为精确查找和泛型查找,精确查找可精确匹配读者已知道的书目,泛型查找,只要满足与输入的关键字相匹配的书目即输出,可供读者查找。还有不同数据的数据类型。
查询速度:不超过10秒;
其它所有交互功能反应速度:不超过3秒;
可靠性:平均故障间隔时间不低于200小时。
当用户需求,如操作方式,运行环境,结果精度,数据结构与其他软件接口等发生变化时,设计的软件要做适当调整,灵活性非常大。
鼠标,键盘,显示器;操作系统:Windows操作系统;
无
后台管理,操作系统: windows;数据库:SQL Server 2019,
Table_Admin 管理员信息表
字段值 |
数据类型 |
约束 |
描述 |
Anum |
Varchar(50) |
Primary Key, auto_increment |
管理员编号 |
Aname |
Varchar(50) |
NOT NULL |
管理员姓名 |
Apwd |
Varchar(50) |
NOT NULL |
管理员登录密码 |
Table_Reader 借阅者信息表
字段值 |
数据类型 |
约束 |
描述 |
Rnum |
Varchar(50) |
Primary Key, auto_increment |
借阅者账号 |
Rname |
Varchar(50) |
NOT NULL |
借阅者姓名 |
Rpwd |
Varchar(50) |
NOT NULL |
借阅者登录密码 |
Rsex |
Varchar(50) |
NOT NULL |
借阅者性别 |
Rbirth |
Varchar(50) |
NOT NULL |
借阅者生日 |
Table_Book 图书信息表
字段值 |
数据类型 |
约束 |
描述 |
Bnum |
Varchar(50) |
Primary Key, auto_increment |
图书编号 |
Bname |
Varchar(50) |
NOT NULL |
图书名称 |
Bauthor |
Varchar(50) |
NOT NULL |
图书作者 |
score |
Varchar(50) |
NOT NULL |
图书评分 |
Bpublish |
Varchar(50) |
NOT NULL |
图书出版社 |
Price |
Varchar(50) |
NOT NULL |
图书价格 |
Quantity |
Varchar(50) |
NOT NULL |
图书数量 |
Table_Borrow 借书/还书信息表
字段值 |
数据类型 |
约束 |
描述 |
BorrowNumber |
Varchar(50) |
Primary Key |
借书编号 |
Bnum |
Varchar(50) |
NOT NULL |
图书编号 |
Rnum |
Varchar(50) |
NOT NULL |
借阅者编号 |
Rtime |
Varchar(50) |
NOT NULL |
借书时长 |
OverDue |
Varchar(50) |
NOT NULL |
超期标记 |
time |
Varchar(50) |
NOT NULL |
借书日期 |
1)功能:登陆功能界面,验证密码身份。
2)接口: 登陆界面,注册界面
3)数据: 用户信息表,管理员信息表
4)处理:
(1)登录:如果用户已有账户可以直接登录,读者、管理员都由此登录。
(2)注册:如果用户没有账户可以注册,提交一些个人信息后注册,只可以注册为读者,管理员不能通过页面注册,只能由后台数据库添加。
注册完成的读者或管理员通过在登录页面提交用户名和密码后可以登录。如果提交错误的用户名或密码,系统会有提示。
具体算法实现为:
begin
if 输入帐号和密码、身份 不为空 then
begin
查询人员表;
end
else 提示人员编号和人员密码、身份不能为空,返回;
if 查询结果为空 then
begin
提示出错信息,返回重新登陆;
end
else 根据不同的身份进入相应的主界面;
end。
流程图为:
1)功能:管理书籍,还书,新增书籍,书籍总览。
2)接口: 管理界面,新增书籍,删除书籍,查询书籍
3)数据: 图书信息表,借阅记录表
4)处理:
还书管理:查询账号已借书籍,删除借阅信息,在书籍信息表中加回书籍,回到可借书列表
书籍列表:显示图书信息表中的数据
本次测试针对开发的图书馆管理系统进行,包括功能测试,界面测试,负载测试,文档测试。按照规格需求说明书中的功能进行测试,在测试过程中发现软件的漏洞不足并予以改正。检验软件本身的功能是否达到了预期的想法,在众多的测试当中,性能和功能都在不断的进行完善,设计的合理,达到了人们的一些生活需求,在以后的测试极其维护该改进中都有非常良好空间。
表1 开始/中断/完成测试说明
开始/中断/完成测试 |
标准说明 |
开始测试标准 中断测试标准
完成测试标准 |
硬件环境可用并且软件正确安装完成 安装无法正确完成或程序的文档有相当多的失误或系统服务异常 完成测试计划中的测试规划并达到程序和测试质量目标 |
表2 测试技术说明
测试技术 |
说明 |
编写测试用例 单元测试 系统测试 |
在产品编码阶段编写测试用例 对具体模块及函数进行测试 检测模块集成后的系统是否达到需求对业务流程及数据流的处理是否符合标准、系统对业务流程处理是否存在逻辑不严谨及错误,以及是否存在不合理的标准及要求 |
表3测试类型说明
测试类型 |
说明 |
功能测试
边界值测试
界面测试 文档测试 |
根据系统需求文档和设计文档,检查产品是否正确实现了功能 选择边界数据进行测试,确保系统功能正常,程序无异常 检查界面是否美观合理 检查文档是否足够,描述是否合理 |
测试模块的正确性、测试界面的正确性、测试数据和文件的访问、测试设计的约束规定
数据类型 |
输入 |
预期输出 |
非法用户 |
003 11111 |
账号或密码错误! |
合法用户,错误密码 |
001 22222 |
账号或密码错误! |
空白 |
|
请输入账号或密码! |
合法用户 |
001 11111 |
登陆成功 |
1) 测试目的:
测试模块的正确性、测试界面的正确性、测试数据和文件的访问、测试设计的约束规定
2) 测试方法和测试软件:黑盒方法测试
3) 测试用例
数据类型 |
输入 |
预期输出 |
非法账号 |
Acasc |
账号必须为数字 |
非法账号 |
11111111111 |
账号长度必须小于等于十位 |
非法密码 |
11 |
密码长度必须大于五位 |
注册两个相同账号 |
1111 1111 |
账号已存在! |
正确账号密码 |
101 11111 |
用户添加成功! |
输入合法用户,正确密码:登陆成功
与预期输出没有特别大的偏差
测试结果与预期输出没有特别大的偏差,说明系统登录模块设计正确并且可以正常使用
输入非法密码
输入合法密码
测试结果与预期输出没有特别大的偏差,说明系统登录模块设计正确并且可以正常使用
本项目具有方便快捷等优势,使得图书管理实现电子化,符合社会信息化发展的需要,技术、经济、操作、法律方面都是可行的,因此,开发该系统是完全可以的。但是这次实验最大的问题是测试工作应避免由原来开发软件的个人来承担,本系统的测试工作是由我一个人来承担,设计测试方案时,不仅要包括确定的输入数据,而且应包括从系统功能出发预期的测试结果。测试用例不仅要包括合理,有效的输入数据,还要包括无效的或不合理的的输入数据,不仅要检验程序是否做了该做的事,还要检查程序是否同时做了不该做的事,软件中仍存在错误的概率和已经发现错误的个数是成正比的。保留测试用例,作为软件文档的组成部分。
由于实验时间比较紧张,掌握知识有限,所以系统还未能做到完美,还有许多瑕疵,我会在以后的学习中努力学习更多的东西,在将来可以开发出更加优秀的系统。最后感谢老师的悉心指导!
[1]宋雨,《软件工程基础》,机械工业出版社。
[2]王删,《数据库系统原理教程》,清华大学出版社。
[3]王珊,《数据库系统概论》,高等教育出版社。
[4]宋雨,《软件工程》,清华大学出版社。
[5]本杰明·帕金斯,《C#入门经典》,清华大学出版社。
附录
登陆界面
注册界面
主界面
书籍列表
还书管理
借书界面