赞
踩
题目类型: 设计
(设计、论文、报告)
南宁理工学院
课程结课作业
(2021-2022学年 第一学期)
二级学院: 信息工程学院
课 程: 软件工程
班 级: 网络1902班
姓 名: 班正玲
学 号: 19300225
摘 要
随着计算机和网络技术的飞速发展,计算机的应用领域不断扩大。在现代
大学图书馆管理系统中,如何为读者提供方便快捷的服务,提高图书的利用率
等问题变得越来越突出。
图书馆管理系统正是趋于这个目标而设计的。本文首先介绍了课题的研究目的及现状,给出课题的研究目标和意义;以MicroSoft Visio、Project、Rose、VSS、Power Designer为例学习计算机辅助软件工程工具的基本使用方法,在理论的基础上完成了系统的设计。本文主要包
括以下几个方面:
(1)进行系统需求分析,采用MicroSoft Visio建模语言并借助ROSE工具对图书馆管理系统建立需求模型,给出用例图。
(2)基于需求分析和用例模型给出系统的静态模型和动态模型。其中系统
静态模型给出类图和包图,动态模型给出顺序图、协作图、状态图和活动
图。
(3)在J2EE环境下,实现图书馆管理系统。
通过本系统,实现了对图书资料的计算机网络管理和web查询,建立了图
书馆网站,读者可以在Intemet上查询馆藏情况和自己借书情况,方便开展网上
业务,扩大了图书馆的服务范围。
关键词:图书管理系统,建模,MicroSoft Visio,ROSE,面向对象
目录
2.7.3技术可行性分析................................................................................ 5
2.7.4经济可行性分析................................................................................ 5
2.7.5社会因素可行性分析........................................................................ 6
2.7.6用户使用可行性................................................................................ 6
2.7.7可供选择的方案................................................................................ 6
3.1.1需求摘要与描述................................................................................ 6
3.2运行环境 ......................................................................................... 7
3.3.1功能需求描述..................................................................................... 7
3.5.1数据精确度....................................................................................... 14
3.5.2系统响应时间.................................................................................. 14
4.1软件模块结构图....................................................................................... 15
4.2 文件结构和全局数据............................................................................. 15
5.1登陆注册模块描述.................................................................................. 17
5.2书籍管理模块描述.................................................................................. 18
6.5.1登录模块测试.................................................................................. 21
6.6.1 登录模块分析................................................................................. 23
6.6.2注册模块分析.................................................................................. 23
图书馆管理系统
软件工程课程设计是学习软件工程课程后所进行的实践环节,目的是培养学生用工程化的思想和标准文档化的思想进行软件开发。本次课程设计通过开发一个小型实用的软件系统,亲身体验软件生命周期中的各个环节,以加深对软件工程课程的深入理解、锻炼独立分析、解决问题的能力。
为了开发出真正,满足用户需要的软件产品,明确地了解用户需求是关键。虽然在可行性研究中,已经对用户需求有了初步了解,但是很多细节还没有考虑到。可行性研究的目的是评估系统是否值得去开发,问题是否能够解决,而不是对需求进行定义,如果说可行性分析是要决定去做还是不做,那么需求分析就是回答系统必须做什么这个问题。需求分析是一个非常重要的过程,它完成的好坏直接影响了后续软件开发的质量。
1)对所设计和实现的系统进行可行性分析,提交可行性分析报告;
2)对系统进行需求分析,可以选择传统的分析方法或者面向对象的分析方法,提交软件需求规格说明书;
3)在SRS的基础上进行软件的概要设计和详细设计,提交软件设计文档;
4)遵循上述文档的要求,实现软件;
5)对所实现系统进行软件测试,完成软件测试报告。
1)复习软件工程课程的主要内容,熟练掌握软件生命周期的理论以及各阶段的基本概念。
2)明确可行性分析、需求分析、设计、测试等阶段的基本任务和基本方法。
3)熟练运用规范化的描述方法和文档,描述软件开发的各个阶段。
4)熟悉开发环境和开发工具。
项目名称:图书管理系统
开发环境:Windows 10,MicroSoft Visio、Rose
用户:图书馆管理员和读者
项目与其他软件,系统的关系:由于数据处理手工操作,工作量大,出错率高,出错后不易更改,设计并实现一个将各种图书管理的服务功能结合起来的图书信息系统十分重要,可以有效的节约资源并且有效的存储,更新和查询信息,提高工作和服务的效率。
图书室管理系统对现代图书馆而言,是能够发挥其科研的作用的至关重要的技术平台,对于读者和图书管理员来说,是否方便快速获取信息的关键,所以,图书管理系统应该能够为用户提供充足的信息和快捷方便的操作手段。
该实验设计开发一个简单的图书管理数据库系统,包括图书馆内书籍的信息、学校在校师生的信息以及师生的借阅信息。此系统用户面向图书管理员和借阅读者,图书馆管理员可以完成图书、读者、图书类型、学科类型、读者类型等基本信息的增加、删除和修改,可以制定借阅规则;读者可以进行图书的借阅、续借、归还、预约的确认等操作。
随着图书馆规模的不断扩大,图书数量也相应的增加,有关图书的各种信息量也成倍增加,面对着庞大的信息量,传统的人工方式管理会导致图书馆管理上的混乱,人力与物力过多浪费,图书馆管理费用的增加,从而使图书馆的负担过重,影响整个图书馆的运作和控制管理,因此,必须制定一套合理、有效,规范和实用的图书管理系统,对图书资料进行集中统一的管理。图书管理系统对于现代图书馆而言,是能否发挥其教学研究的作用的自关重要的技术平台,对于在校学生和管理员来说,是能否方便快速获取信息的关键。所以,图书管理系统应该能够为用户提供充足的信息和快捷方便的操作手段。
本系统的宗旨是提高图书管理工作的效率,减少相关人员的工作量,使图书管理工作真正做到科学、合理的规划,系统、高效的实施。
目标如下:
(1)减少人力成本和管理费用
(2)提高信息的准确性和信息的安全
(3)改进管理和服务
(4)良好的人机交互界面,操作简单
图书管理系统这个系统其实早就设计了,可当时没往心里去,再加上那时候能力不足的问题,经过一个学期的学习时间,然后又上了软件工程的课,所以前期拖了比较长时间,上完软件工程之后,才正式开始做这个系统。
项目开发首先要办的事是市场调查、可行性研究。由于我是从课题中选择的这个任务,已经做好了需求:一个E-R用例图。当时做的时候受到以前开发程序的影响,拿到E-R图我直接就开始设计整体,没有设计界面。因为以前开发程序都是有前人做好的系统,可以参考一下界面,所以就逐渐忽略了界面设计的重要性,直到设计系统的时候,才发现少了界面,这层实在是没法写。没有界面,通过用例图硬生生的设计数据库,可想而知我设计的系统得也不怎么样。
那么系统开发前期究竟要做些什么呢?经过思考和总结,归纳如下:
刚刚已经提到了界面,根据个人的理解,界面是需求的具体体现,是对需求的具体化,虽然用例图可以体现需求,但是过于抽象,不便于分析和改进。
1.和用户共同设计界面:在系统需求分析阶段,需要一个原型设计工具(即纯画界面工具,用来快速设计程序的粗略界面),开发人员和用户一起讨论交流,共同用原型设计工具设计出一个原始的粗略界面,让用户直接看到界面,有效的减少产品与需求不符的情况,就算用户什么不懂,但是看的懂界面也不错!起码用户知道这就是他想要的,即使有改动,一般也是改进性维护和功能添加性维护,不太可能出现核心改动。
2.根据界面设计数据库:有了界面,接下来就可以设计数据库,根据界面设计数据库,总比看用例图舒服。更重要的是,在设计数据库过程中,可以及时发现界面的不足来完善界面,这样即可以减少开发后期具体界面设计的工作量,又可以促进数据库设计的更加合理。当然,即使是比较合理的数据库,也只能算是原始数据库,不可能一次到位。数据库是程序的根基,重中之重。。
3.写文档并完善数据库和界面:接下来要做的事应该就是写文档了:需求分析说明书、概要设计说明书、详细设计说明书。在写文档的过程中,借助于UML图等方法,继续发现数据库设计的不足,完善数据库,改进界面。
(1)工作负荷:以前的图书管理完全是手工操作,从新书的购买、编码、入库、上架到借阅、续借、查询等,耗费了很大的人力,并且很难避免错误的发生,该图书管理系统针对这些问题,不仅降低了工作量,还改善了图书管理上的准确性,功能清晰易懂,便于操作。
(2)费用开支:软件开发中的费用支出主要有开发人员、材料、设备、开发空间以及后期的维护等方面的支出。
(3)人员:对于此系统的开发,需要至少三名有经验的软件开发人员,系统的操作人员以及后期维护人员。
(4)设备:数据库管理系统SQLServer2019;windows操作系统;Visual Studio 2019。
(5)局限性:计算机在非正常情况下停止工作是数据的备份情况,以及每个人对界面的上手程度的不同
主要分析现有技术条件能否顺利完成开发工作,硬件、软件配置能否满足开发者的需要,各类技术人员的数量,水平,来源等。图书馆管理系统的工作主要是在读者和图书馆之间架起一座桥梁,能相互沟通信息和处理信息。这一特点非常适合计算机特点,通过网络internet技术,发挥计算机的信息传输速度快、准确度高的优势。计算机硬件和软件技术的飞速发展,为系统的建设提供了技术条件。
1.投资:
(1)研究(需求的研究和设计的研究);
(2)开发计划与测量基准的研究;
(3)数据库的建立;
(4)检查费用和技术管理性费用;
(5)培训费、旅差费以及开发安装人员所需要的一次性支出;
(6)设备的租金和维护费用;
(7)软件的租金和维护费用;
(8)数据通讯方面的租金和维护费用;
2.收益:
在整个生命期内由于运行所建议系统而导致的按月的、按年的能用人民币数目表示的收益,包括开支的减少和避免。尤其是一些不定量的收益,因为并不是谋利系统,是为老师和学生服务的系统,间接提高学校的名誉和提高对外界的形象分值,间接带来不可估量的效益。
法律因素:由于所有软件都用正版,技术资料都由提出方保管,数据信息均可保证合法来源。所以,在法律方面是可行的。
主要分析现有技术条件能否顺利完成开发工作,硬件、软件配置能否满足开发者的需要,各类技术人员的数量,水平,来源等。图书馆管理系统的工作主要是在读者和图书馆之间架起一座桥梁,能相互沟通信息和处理信息。这一特点非常适合计算机特点,通过网络internet技术,发挥计算机的信息传输速度快、准确度高的优势。计算机硬件和软件技术的飞速发展,为系统的建设提供了技术条件。
(1)网页版图书管理系统:基于Java和MySQL的网页版图书管理系统,具有界面美观、兼容度高的优点,但编程难度较高,成本增加。
(2)客户端图书馆:基于C#和SQL server的客户端图书馆管理系统,具有编程简单,开发周期短,稳定等优点。
(3)根据以上分析可知,开发图书管理系统不仅有较大的经济效益而且有更大的社会效益,从而开发使该系统具有开发价值,也节省了大量资源,但是时间有限,该管理系统考虑不太健全,我们会在这方面加强学习和改进,所以我们认为开发此系统的条件已经具备,可以进行开发。
(1)图书馆管理系统就是能满足读者和图书的图书馆实现日常操作信息化和后台统计电算化的系统。它能够帮助图书馆管理人员处理基本的管理项目,图书馆满足信息化的需要,并且有操作简单,易上手,错误较少等优点。
(2)同时,世界的信息化的趋势也让我们的生活不得不进入信息化与模范化,软件产业更是如此,大力推进信息化发展,已成为我国经济社会发展新阶段重要而紧迫的战略任务。所以,图书管理系统的制作是急迫的和必须的。
(3)本系统通过强大的计算机技术给图书的信息更新带来便利。本系统实现了图书管理信息更新等功能。
(4)在图书管理系统中,管理员为每个读者建立一个账户,账户内存储读者个人的详细信息,并依据读者类别的不同给每个读者发放借书卡。读者可凭借借书卡在图书馆进行借,还,查询图书等操作。由管理员录入借书卡号,显示姓名,学号,院系,出生年月,借书限额,已借书量等信息,完成借书操作同时修改相应图书信息的状态,读者信息中的已借数量并在借阅信息中添加相应记录。归还图书室,由管理员输入借书卡号,显示借书卡号,学号,姓名,读者编号等,并计算是否超期还书,若进行续借则取消超期和罚款信息。系统自动计算赔偿金额,完成归还操作的同时,修改相应的图书信息的状态,修改读者信息中的已借数量,在借书信息中对相应的借书做记录,在还书信息中添加相应记录。图书管理员不定期对图书信息进行添加,修改和删除等操作,也可以对读者的信息进行添加,删除,修改等操作。
SQLServer2019;windows操作系统;Visual Studio 2019
1.借阅功能:
图书出借时考虑三个问题:
读者是否因为超期、罚款等情况被关闭了借阅权限;
读者是否已经借满限额。
该书是否不在库中;
如果不存在以上情况,则可以出借。
2.预约功能:
读者想借的书如果不在库中(已经被出借),读者可以预约该图书,当该图书被归还时系统给读者发送邮件,提醒他来借阅,此时其他读者也可以借阅该书。
3.续借功能:
读者还书的时候可以续借该图书,续借的过程包括先执行还书操作,再执行借阅操作。
4.发送催还邮件:
管理员可以发送邮件提醒读者到期还书。
5.读者管理功能:
对读者信息进行查看、添加、修改、删除。将读者分为不同类别,赋以不同权限。
6.系统管理功能:
对管理员的登录账号、密码进行添加、修改、删除。7.借阅规则管理功能:
对图书借阅规则进行查看、添加、修改、删除。
(1)顶层数据流图
(2)管理员层数据流图
(3)用户层数据流图
(4)书籍管理子系统
(5)用户管理子系统
(6)登录子系统
(7)借阅子系统
(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”。
(1)数据精确度:
根据关键字精度的不同,查找可分为精确查找和泛型查找,精确查找可精确匹配读者已知道的书目,泛型查找,只要满足与输入的关键字相匹配的书目即输出,可供读者查找。还有不同数据的数据类型。
(2)时间特性:
查询速度:不超过10秒;
其它所有交互功能反应速度:不超过3秒。
(3)可靠性:平均故障间隔时间不低于200小时。
(4)适应性:
当用户需求,如操作方式,运行环境,结果精度,数据结构与其他软件接口等发生变化时,设计的软件要做适当调整,灵活性非常大。
(1)用户界面:鼠标,键盘,显示器;
(2)操作系统:Windows操作系统;
(3)硬件接口:无
(4)软件接口:后台管理;
(5)操作系统:windows;数据库:SQL Server 2019,
(6)故障处理
保证查询的查全率和查准率为100%,所在相应域中包含查询关键字的记录都能查到,所有在相应域中不包含查询关键字的记录都不能查到。
系统对绝大多数的相应时间在1——2秒内。
满足运行环境在允许操作系统之间的安全转换和与其他应用软件的独立运行要求。
(1)Table_Admin 管理员信息表
(2)Table_Reader 借阅者信息表
(3)Table_Book 图书信息表
(4)Table_Borrow 借书/还书信息表
(1)功能:登陆功能界面,验证密码身份。
(2)接口: 登陆界面,注册界面
(3)数据: 用户信息表,管理员信息表
(4)处理:登录:如果用户已有账户可以直接登录,读者、管理员都由此登录。注册:如果用户没有账户可以注册,提交一些个人信息后注册,只可以注册为读者,管理员不能通过页面注册,只能由后台数据库添加。
(5)具体算法实现:
begin
if 输入帐号和密码、身份 不为空 then
begin
查询人员表;
end
else 提示人员编号和人员密码、身份不能为空,返回;
if 查询结果为空 then
begin
提示出错信息,返回重新登陆;
end
else 根据不同的身份进入相应的主界面;
end。
(6)流程图:
(1)功能:管理书籍,还书,新增书籍,书籍总数。
(2)接口: 管理界面,新增书籍,删除书籍,查询书籍。
(3)数据: 图书信息表,借阅记录表。
(4)处理:
还书管理:查询账号已借书籍,删除借阅信息,在书籍信息表中加回书籍,回到可借书列表。
书籍列表:显示图书信息表中的数据。
本次测试针对开发的图书馆管理系统进行,包括功能测试,界面测试,负载测试,文档测试。按照规格需求说明书中的功能进行测试,在测试过程中发现软件的漏洞不足并予以改正。检验软件本身的功能是否达到了预期的想法,在众多的测试当中,性能和功能都在不断的进行完善,设计的合理,达到了人们的一些生活需求,在以后的测试极其维护该改进中都有非常良好空间。
(1)表1 开始/中断/完成测试说明
(2)表2 测试技术说明
(3)表3测试类型说明
序号 | 测试阶段 | 任务描述 |
1 | 需求分析 |
|
2 | 测试计划 |
|
3 | 用例设计 |
|
4 | 用例评审 |
|
5 | 用例封板 |
|
6 | 测试准备 |
|
7 | 集成测试 |
|
8 | 系统测试 |
|
9 | UAT阶段 | 1. 测试组采用自由测试的方法扩大覆盖率。 2. 客户的业务人员参与测试,验收软件产品。 3. 对之前发现的问题做回归测试。 4. 提交最终用户测试。 |
10 | 测试总结 |
|
11 | 项目维护 | 1. 随时关注产品上线后的运行情况。 2. 跟踪上线后发现的问题。 3. 总结经验教训,进一步完善测试用例。 |
(1)测试目的:
测试模块的正确性、测试界面的正确性、测试数据和文件的访问、测试设计的约束规定。
(2)调试方法
该系统在本地服务器上进行运行和调试,鉴于对系统的内部结构和处理算法的完全了解以及对系统功能的全面掌握对系统进行白盒测试和黑盒测试。
在开发软件系统的过程中,需要面对错综复杂的问题,因此,在软件生存周期的每个阶段都不可避免地会产生错误。测试目的在于:发现错误而执行一个程序的过程,测试的最重要目的是发现其中尚未发现的错误。
为了设计出有效的测试方案按照下面准则进行测试:所有测试都应追溯到用户需求;在完成了需求模型就要着手制定测试计划,在编码之前对所有测试工作进行计划和设计,御用Pareto原理着重对占出错误89%的容易出错的20%的模块进行测试,从小规模开始逐步进行大规模测试,通常先重点测试单个程序模块再转向集成的模块;精心设计测试方案,尽可能充分覆盖程序逻辑使之达到要求的可能性。
(3)测试用例:
进入系统,输入用户名和密码,根据用户身份的不同,显示的操作菜单有所不同,一般读者只能查看图书信息和个人信息,并可以查询自己的借阅图书的历史记录;图书管理员可以对图书信息,读者信息以及借阅信息进行查看和管理。当输入错误的用户名称密码时显示登录错误并自动返回登录窗口。
(1) 测试目的:
测试模块的正确性、测试界面的正确性、测试数据和文件的访问、测试设计的约束规定。
(2)测试方法和测试软件:黑盒方法测试
(3)测试用例:
1.登陆模块测试分析
输入合法用户,正确密码:登陆成功。
2.实测结果数据
(1)与预期结果数据的偏差:与预期输出没有特别大的偏差。
(2)该项测试表明的事实:测试结果与预期输出没有特别大的偏差,说明系统登录模块设计正确并且可以正常使用。
(3)该项测试发现的问题。
(1)输入非法密码
(2)输入合法密码
2.实测结果数据
(1)与预期结果数据的偏差:与预期输出没有特别大的偏差。
(2)该项测试表明的事实:测试结果与预期输出没有特别大的偏差,说明系统登录模块设计正确并且可以正常使用。
(3)该项测试发现的问题。
经过此次实验,我深深感到软件工程的重要性。虽然我不能说我将《软件工程》学习的有多么的好,但是通过学习,我还是受益良多。
软件其实不仅仅是程序,软件开发其实也不仅仅是编写程序,软件是思想在硬件上的载体和体现,处理的是逻辑和信息。唯有对软件和软件的开发过程,有充分的认识,才能更好的开发出,过程受控、质量受控的软件产品。
我还了解到用户需求对软件的重要性。成功的软件产品是建立在成功的需求基础之上的,而高质量的需求来源于用户与开发人员之间有效的沟通与合作。
软件工程这门课程是做软件开发的人必学的课程,通过学这门课程程序员就会注重软件开发的理论知识以及做项目开发的思路。此次综合性实验后,至少以后写程序就不会去盲目的去套用代码而是理清此程序的架构以及思路,程序该从什么时候开始什么时候结束,在中间需要添加什么样的功能以完善功能。其实学软件工程并不难,软件工程就是要理解了先做什么后做什么,以后写程序再复杂的程序也可以分成几大块,理清程序的思路后就可以一步步的解决其中的难题最终实现软件的功能。如果没学软件工程不知道理清程序的思路的话做一个大的项目开发那么多的代码没有一个很好的结构最终只会导致程序混乱错误百出知道代码再多也会素手无策的。
图书管理系统对于当代图书馆的使用起至关重要性的作用,为了使用户和图书管理员容易上手,其功能设置不需要十分繁琐,需要有良好的图形界面,让图书管理员和读者可以方便使用。对于现代图书馆而言,拥有大量的书籍,期刊,杂志等,可以快速检索到所需书籍是非常关键的问题,所以图书管理系统设计是否合理,直接影响到系统的性能。
本项目具有方便快捷等优势,使得图书管理实现电子化,符合社会信息化发展的需要,技术、经济、操作、法律方面都是可行的,因此,开发该系统是完全可以的。但是这次实验最大的问题是测试工作应避免由原来开发软件的个人来承担,本系统的测试工作是由我一个人来承担,设计测试方案时,不仅要包括确定的输入数据,而且应包括从系统功能出发预期的测试结果。测试用例不仅要包括合理,有效的输入数据,还要包括无效的或不合理的输入数据,不仅要检验程序是否做了该做的事,还要检查程序是否同时做了不该做的事,软件中仍存在错误的概率和已经发现错误的个数是成正比的。保留测试用例,作为软件文档的组成部分。
在本次的设计过程中,首先必须要清楚我们所需要的设计的图书信息管理系统的结构。一个完善的图书馆系统所需要的基本模块都必须要先设计好才能让我们的设计过程不会被各种突然遇到的问题打断。
而在本次的锻炼实践中,我们也得到了从理论到实践的机会。在课程中学到的很多东西都可以有所得,有所悟,而不只是单纯的纸上谈兵。
同时,借此机会,我们也学到了很多课堂上学不到的东西,掌握了许多实用的工具,例如学会了MicroSoft Visio基本使用,Rose的基本使用,它们都是非常有用的工具,不仅仅是在课堂作业中,更会在我们日后的职业生涯中有着不可估摸的作用。其次本次系统的设计也对我学习用户界面设计有所启发,一个系统不仅仅需要具有合理的功能模块设计,而且也需要有更加人性化的界面设计,便于用户学习使用和掌握,这样才能使系统能够让更多的人接受!
由于实验时间比较紧张,掌握知识有限,所以系统还未能做到完美,还有许多瑕疵,我会在以后的学习中努力学习更多的东西,在将来可以开发出更加优秀的系统。最后感谢老师的悉心指导!
[1]张海潘、牟用敏,《软件工程导论》,清华大学出版社。
[2]王删,《数据库系统原理教程》,清华大学出版社。
[3]王珊,《数据库系统概论》,高等教育出版社。
[4]宋雨,《软件工程》,清华大学出版社。
[5]本杰明·帕金斯,《C#入门经典》,清华大学出版社。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。