软件工程图书管理系统资料.docx
《软件工程图书管理系统资料.docx》由会员分享,可在线阅读,更多相关《软件工程图书管理系统资料.docx(18页珍藏版)》请在冰豆网上搜索。
软件工程图书管理系统资料
软件工程实验报告
软件工程实验报告
题
目:
图书管理系统
班级:
班级:
班级:
姓名:
姓名:
姓名:
学号:
学号:
学号:
2014250
2014250
2014250
完成日期:
2016
年
12
月
15
日
1
软件工程实验报告
摘要
随着知识化和信息化新经济时代的到来,作为信息技术龙头的计算机及软件技术突飞猛进,UML成为一种不可或缺的工具。
UML是一种定义良好、易于表达、功能强大且普遍适用的建模语言。
它溶入了软件工程领域的新思想、新方法和新技术。
它的作用域不限于支持面向对象的分析与设计,还支持从需求分析开始的软件开发的全过程。
用现有的知识,按照软件工程思想和系统的开发步骤,以图书管理的应用需求为背景,分析设计了图书管理系统,并利用RationalRose对系统进行建模,完成用例图和类图的构建,为后期的程序设计提供标准。
根据建模需求分析,总结出本系统的参与者有借阅者和图书管理员两类。
根据其职能不同,借阅者只能使用该系统借书、预订书刊以及还书。
图书管理员则可使用系统进行图书馆业务的管理工作,如借阅者,书刊等的信息维护。
系统可实现书籍信息的添加、修改、删除等功能,这就保证了数据库信息的一致性和统一性、安全性。
该系统以面向对象理论和数据库管理信息系统开发相关知识为依据,介绍了设计开发中的模块设计和数据与程序的连接,使SQLserver2008与VisualStudio2010得到了有效的结合。
关键词:
图书管理系统;UML;RationalRose;面向对象
2
软件工程实验报告
目
录
1
需求分析...............................................................................................................................2
1.1
1.2
开发背景及意义.........................................................................................................2
功能需求.....................................................................................................................2
2
系统建模...............................................................................................................................4
2.1创建系统用例模型.......................................................................................................4
2.1.1确定参与者.........................................................................................................4
2.1.2参与者的用例图.................................................................................................4
2.2系统的时序图...............................................................................................................5
2.2.1确定系统参与者的属性.....................................................................................5
2.2.2确定系统主要业务实体类.................................................................................5
2.2.3确定系统类之间的关系.....................................................................................6
2.3
2.4
系统的协作图.............................................................................................................6
2.3.1创建序列图和协作图.........................................................................................7
2.3.2创建状态图.........................................................................................................8
2.3.2创建活动图.........................................................................................................9
创建系统的部署摸型...............................................................................................10
3
1
软件工程实验报告
需求分析
1.1
开发背景及意义
图书馆是一个专门收集、整理、保存、传播文献并提供利用的科学、文化、教育
和科研机构。
现代社会,图书馆成为继续教育、终身教育的基地,担负了更多的教育职能。
传递科学情报,是现代图书馆的一个重要职能。
图书馆收藏的图书资料,是人类长期积累的一种智力资源,图书馆对这些资源的加工、处理,是对这种智力资源的开发。
图书馆主要是用来学习的,如果有人遇到问题,他可以通过图书管的书籍来解决问题。
但是为了图书馆的正常运行和保护图书,图书馆管理系统将用户划分为三类人:
借阅者,图书管理员,系统管理员。
一个基本的图书馆管理,可以大致分为以下流程:
用户登录进入系统,在系统允许的情况下,进行可以进行的操作,如借书、还书和预定书籍等;管理员可以整理书籍和管理预订的书籍等;系统管理员管理书目,管理借阅者信息等。
1.2
图书管理系统的需求分析
1.2.1系统功能需求
(1)借阅者可以通过网络查询书籍信息、预约书籍和续借书籍。
(2)图书管理员作为借阅者的代理完成借阅图书、归还图书和查询借阅信息工作。
(3)系统管理员可以对系统的数据进行维护,如增加、删除和更新书目,增加、删除
和更新借阅者帐户,增加和删除书籍。
满足上述需求的系统主要包括下面几个模块:
(1)基本数据维护模块:
提供使用者录入、修改并维护基本数据的途径。
例如对借阅者的书籍的各项信息的更新与修改。
(2)基本业务模块:
主要用于实现用户借书与还书的管理,例如借阅者可以登录系统预订书籍,图书管理员可以取消书籍的预订,当然还可以进行借书、还书等操作。
(3)数据库管理模块:
在系统中,所有书籍的信息以及借阅者的帐户信息都要统一管理,书籍的借阅情况、预订情况也要进行详细的记录,所以要用统一的数据库平
4
软件工程实验报告
台进行管理。
(4)信息查询模块:
主要用于查询书籍的信息和借阅者的信息。
图1.1系统功能需求
1.2.2基本数据维护模块
图1.2数据库管理模块
(1)添加借阅者信息:
系统管理员可以添加借阅者帐户。
(2)修改更新借阅者信息:
系统管理员可以修改更新借阅者信息。
(3)添加书目信息:
系统管理员可以添加书目。
(4)修改更新书目信息:
系统管理员可以修改和更新书目信息。
(5)添加书籍信息:
系统管理员可以添加书籍。
(6)删除书籍信息:
系统管理员可以删除书籍。
5
软件工程实验报告
1.2.3基本业务模块
图1.3基本业务模块
(1)还书:
处理还书业务。
(2)借书:
处理借书业务。
(3)书籍预订:
借阅者可以通过网络进行书籍预订。
(4)取消书籍预订:
图书馆管理员可以根据情况取消书籍预订,如果借阅者已经借了此书或者借阅者要求取消预订都涉及此项业务。
(5)续借书籍:
借阅者可以通过网络续借已经的书籍。
1.2.4数据库模块
图1.4信息查询模块功能
(1)借阅者信息管理:
书籍借阅信息包括所借书的书名、ISBN以及借书的时间,续借次数等。
(2)书籍信息管理:
书籍信息包括书籍的名字、ISBN、作者、入库时间以及书籍在相应书目下的编号等。
(3)帐户信息管理:
帐户信息包括借阅者的帐户ID、姓名、学号、院系、班级和所借书籍的总数等。
(4)书籍预订信息管理:
负责管理书籍预订信息。
6
软件工程实验报告
1.2.5信息查询模块
图1.5信息查询模块功能
(1)查询书籍信息:
负责书籍信息的查询。
(2)查询借阅者信息:
负责借阅者信息的查询。
7
2
软件工程实验报告
系统建模
2.1创建系统用例模型
2.1.1确定参与者
1作为一个图书馆管理系统,首先需要读者的参与,读者可以登录系统查询所需要的书籍,查到所需书籍后可以考虑预订,也可以续借已借的图书。
2对于系统来说,读者借书、还书等操作是由图书馆管理员来处理的,他们还可以负责图书的预订和预订取消。
3对于图书馆管理系统来说,系统的维护也是相当重要的。
维护操作主要包括增加书目,删除或更新书目,增加书籍和减少书籍等操作。
由以上分析可以看出,系统的参与者主要有3类:
读者(借阅者)、图书馆管理员、系统管理员
(1)借阅者参与的用例图
借阅者请求服务的用例图包含如下用例。
图2.1借阅者的用例图
Searchforbook:
书籍查询用例,借阅者通过网络查询自己想找的书籍的信息。
Reservethebook:
书籍预订用例,借阅者预约已经被借出的书籍。
QueryInfo:
查询借阅信息,借阅者查询自己所借书籍信息。
8
软件工程实验报告
Renewbook:
续借书籍用例,借阅者在无人预约该书的情况下,可续借该书。
CheckIsReserve:
检查书籍是否已被预订。
Logonthesystem:
登录系统。
(2)图书馆管理员处理借书、还书等的用例图
图书馆管理员处理借书、还书等的用例图如下图所示。
图2.2图书馆管理员处理借书、还书等的用例图
〖用例图说明〗
1Login:
图书馆管理员登录系统。
2ReturnBook:
书籍归还处理。
3GetWithFine:
还书时收取罚金。
4ProcessOverTime:
该用例检查每个借阅者是否有超期的借阅信息。
⑤DisplayLoanInfo:
用于显示某借阅者的所有借阅信息。
6ReturnBook:
完成还书处理。
7RemoveReservation:
删除书籍预订信息。
(3)系统管理员进行系统维护的用例图
系统管理员进行系统维护的用例图如下所示。
9
软件工程实验报告
图2.3系统管理员进行系统维护的用例图
①查询借阅者信息:
系统管理员可以查询借阅者的基本信息和借阅信息。
②查询书籍信息:
系统管理员可以查询书库里的书籍信息。
3增加书目:
系统管理员可以向书库中增加书目。
4删除或更新书目:
系统管理员可以从书库中删除和更新书目。
5增加书籍:
系统管理员可以向书库中增加书籍。
6删除书籍:
系统管理员可以从书库中删除书籍。
7添加借阅者帐户:
系统管理员可以向系统中添加借阅者帐户。
8删除或更新借阅者帐户:
系统管理员可以删除或更新借阅者帐户。
〖用例图说明〗
1QueryBorrowerInfo:
查询读者信息。
2QueryBookInfo:
查询书籍信息。
3AddTitle:
增加书目。
4RemoveOrUpdateTitle:
删除或更新书目。
5AddBook:
增加书籍。
6RemoveBook:
删除书籍。
7AddBorrower:
添加借阅者帐户。
8RemoveOrUpdateBorrower:
删除或更新借阅者帐户信息。
2.2系统的时序图
图书管理系统中的用例很多,所能画出的时序图也很多,在此不一一介绍。
(1)系统管理员添加书籍的时序图
10
软件工程实验报告
图3.1系统管理员添加书籍的时序图
〖时序图说明〗
1
2
addBook():
添加书籍函数。
findTitle():
根据书籍ISBN查找相应书目的函数。
添加书籍时,系统管理员首先与系统的维护窗口交互,弹出AddBookDialog对话框,图书管理
员输入图书ISBN号并提交,系统查询数据库是否存在与该图书对应的书目,若不存在,则提示管理员需要先添加书目,然后才可以添加图书:
若存在,则添加一个图书,并更新图书对应的书目信息。
(2)系统管理员添加借阅者帐户的时序图
图3.2系统管理员添加借阅者帐户的时序图
〖时序图说明〗
1
2
3
findBorrower():
查看输入的学号是否已经存在系统的函数。
newBorrower():
添加新帐户的函数。
write():
存储学生的信息。
系统管理员要添加新的借阅者帐户,首先要与维护窗口交互,维护窗口弹出
AddBorrowerDialog对话框。
系统管理员可以在该对话框中输入学生信息并保存,随后系统将对提交的学生信息进行验证,查看输入的学号是否已经存在系统中,若不在,则为学生创建一个帐户,并存储该学生的信息。
(3)系统管理员删除书目的时序图
11
软件工程实验报告
图3.3系统管理员删除书目的时序图
〖时序图说明〗
1find(String):
书目类的查找函数。
2find_on_title(Title):
查找此书目下书籍信息的函数。
3destroy:
删除书籍信息的函数。
4destroy:
删除书目信息的函数。
系统管理员与系统的维护窗口交互,查找到相应的书目,如果该书目下还有书籍的话,要先将书籍删掉,才能删除书目。
(4)图书管理员处理书籍借阅的时序图
图3.4图书管理员处理书籍借阅的时序图
〖时序图说明〗
1
2
3
4
getBorrowerID():
获取输入借阅者借书证号的函数。
findBorrower():
验证借阅者合法性的函数。
inputBookID():
获取输入的图书信息的函数。
findBook():
验证图书合法性的函数。
12
5
6
7
软件工程实验报告
newLoan():
添加借阅图书记录的函数。
addLoan():
添加借阅记录的函数。
setLoan():
设置图书借阅状态的函数。
图书管理员选择菜单项“借阅图书”,弹出BorrowDialog对话框,图书管理员在该对话框中输
入借阅者信息,然后由系统查询数据库,以验证该借阅者的合法性,若借阅者合法,则再由图书管理员输入所要借阅的图书信息,系统记录并保存该借阅信息。
(5)图书管理员处理书籍归还的时序图
图3.5图书管理员处理书籍归还的时序图
〖时序图说明〗
1
2
3
4
5
getLoan():
查找图书的借阅状态。
getBorrower():
查找借阅者借书记录的函数。
delete():
删除借阅信息的函数。
setLoan():
设置图书借阅状态的函数。
delLoan():
删除借阅者借阅信息的函数。
图书管理员选择菜单项“归还图书”,弹出ReturnDialog对话框,图书管理员在该对话框中输
入归还图书编号,然后由系统查询数据库,以验证该图书是否为本馆藏书,若图书不合法,则提示图书管理员;若合法,则由系统查找该图书的借阅者信息,然后删除相对应的借阅记录,并更新借阅者信息。
(6)借阅者预订书籍的时序图
13
软件工程实验报告
图3.6借阅者预订书籍的时序图
〖时序图说明〗
1Login():
登录系统的函数。
2findBook():
查找相应书目的函数。
3reserved():
预订书籍的函数。
借阅者首先与系统的网络模块交互,如果找到要预订的书籍,就将预订信息添加进去。
2.3系统的协作图:
2.4.1系统管理员添加书籍的协作图
图4.1系统管理员添加书籍的协作图
〖协作图说明〗
1
2
addBook():
添加书籍函数。
findTitle():
根据书籍ISBN查找相应书目的函数。
2.4.2系统管理员删除书籍的协作图
14
软件工程实验报告
图4.2系统管理员删除书籍的协作图
〖协作图说明〗
1remove_item():
删除书籍的函数。
2find(String):
根据书籍名查找相应书目的函数。
3update():
修改某类书目下书籍数量的函数。
2.4.3图书管理员处理借书的协作图
图4.3图书管理员处理借书的协作图
〖协作图说明〗
1
2
3
4
5
6
7
8
getBorrowerID():
获取输入借阅者借书证号的函数。
findBorrower():
验证借阅者合法性的函数。
inputBookID():
获取输入的图书信息的函数。
findBook():
验证图书合法性的函数。
newLoan():
添加借阅图书记录的函数。
addLoan():
添加借阅记录的函数。
setLoan():
设置图书借阅状态的函数。
check_if_max():
检查借阅者所借书籍数目是否已经超过最大限额的函数。
2.4.4图书管理员处理还书的协作图
15
软件工程实验报告
图4.4图书管理员处理还书的协作图
〖协作图说明〗
1
2
3
4
5
getLoan():
查找图书的借阅记录。
getBorrower():
查找借阅者借书记录的函数。
delete():
删除借阅信息的函数。
setLoan():
设置图书借阅状态的函数。
delLoan():
删除借阅者借阅信息的函数。
2.5系统的状态图:
书的状态图:
图5.1书的状态图
〖状态图说明〗
1
2
3
NewBook:
还未入库的新书。
Delete:
已经从书库里删除的书。
Available:
书籍处于可用状态,即可以外借的状态。
16
4
5
软件工程实验报告
Reserved:
预订状态。
Borrowed:
借出状态。
书籍处于可用(Available)状态时可以外借,外借后变为借阅(Borrowed)状态。
处于借阅状态
时可以预订或还书,超出预订时间期限则从预订状态直接转为可用状态。
借阅者在规定的预订时间内也可以考虑取消预订,取消预订后书籍的状态转为可用。
外借书籍归还后变为可用状态。
2.6系统的活动图:
2.6.1借阅者的活动图
图6.1借阅者的活动图
〖活动图说明〗
①Self-HelpService:
打开图书馆的网站。
②Searchforbooks:
查询需要的书籍。
3Login:
登录图书管理系统。
4Viewbookinformation:
查看借阅信息。
⑤Reservethebook:
预订书籍。
6EixtSystem:
退出系统。
7LeaveComputer:
离开自助服务的计算机。
17
软件工程实验报告
借阅者进行自助服务时,可以首先登录系统,然后进行书目查询、书籍信息查询、书籍预订等活动,也可以先查询书目和书籍信息后登录系统预订书籍或查询自己借阅信息。
2.6.2图书管理员的活动图
图6.2图书管理员的活动图
〖活动图说明〗
1Loginthesystem:
图书管理员登录系统。
2Getbook:
处理还书操作。
3Lendbook:
处理借书操作。
4Updateborrower’sinformation:
更新借阅者借阅凭证上的信息。
5Acceptmoney:
收取罚金。
图书管理员可以处理两种情况,借书操作和还书操作。
当用户借书时,图书管理员要查看借阅者借书凭证上显示的可借书数目是否满足要求;当用户还书时,图书管理员要检查所借书籍是否已经超过期限,如果超期,要收取一定的罚金。
2.6.3系统管理员的活动图
1)
系统管理员维护借阅者帐户的活动图
18
软件工程实验报告
2)
图6.3系统管理员维护借阅者帐户的活动图
系统管理员维护书目信息的活动图
3)
图6.4系统管理员维护书目信息的活动图
系统管理员维护书籍信息的活动图
19
软件工程实验报告
4)系统管理员维护书籍信息的活动图
〖活动图说明〗
1Loginthesystem:
登录系统。
2Operationonborrower:
对借阅者帐户操作。
3Operationontitle:
对书目进行操作。
4Operationonbook:
对书籍进行操作。
5Queryborrowerinfo:
查询借阅者信息。
6NewBorrower:
添加新的借阅者帐户。
7Removeorupdateborrower:
删除或更新借阅者帐户。
⑧Querytitle:
查询书目信息。
9Newtitle:
增加新的书目。
10Removeorupdatetitle:
删除或更新书目。
⑪Addbook:
增加书籍信息。
⑪Removebook:
删除书籍信息。
⑪Exitthesystem:
退出系统。
2.7系统中的类
2.7.1参与者相关的类
20
软件工程实验报告
系统中和参与者相关的类的类图如下:
图7.1参与者相关的类
〖类图说明〗
1persistent类是所有类的父类,方法有read(从数据库中读取对象的属性)、write(将对象的属性保存到数据库中)以及update(更新数据库中保存的对象的属性),delete(删除数据库保存的对象属性)。
2Borrowerclass类是借阅者类,除了继承父类的属性和方法,还包括stuID(学号)、name(姓名)、dept(部门)、borrowerID(借阅证号)、borrow_number(可借书籍总数)、和loans(借阅记录)等属性。
3Librarian类是图书管理员类,除了继承父类的属性和方法,还包括workID(工作账号),name(姓名)以及address(地址)。
4Adminstrator是管理类。
2.7.2各类之间的关系
类不是单独一个模块,各个类之间是存在联系。
图书管理系统各个类之间的联系如下图:
21
软件工程实验报告
图7.2