UML经典案例
CHINA UNIVERSITY OF PETROLEUM
题目:UML实验-图书管理系统
院系名称:地球物理与信息工程学院 专业名称: 计算机科学与技术 学生姓名: 任康博 学 号: 2011215043
日期 2011年 10月 6 日
UML经典案例
图书馆管理系统
一、用例图
本系统确定的参与者有两类:读者和图书管理员。
1.图书管理员所包含的用例
(1) (2) (3) (4) (5) (1) (2) (3) (4) (5) (6) (7) (8)
该图书馆管理系统的用例图如下:
登录系统:管理员可以通过登录该系统进行各项功能的操作。 书籍管理:包括对书籍的增、删、改等。
书籍借阅管理:包括借书、还书、预订、书籍逾期处理和书籍丢失处理等等。 读者管理:包含对读者的增删改等操作。 自动借书机的管理。
登录系统
借书:进行借书业务。
还书:读者具有的还书业务。
查询:包含对个人信息和书籍信息的查询业务 预订:读者对书籍的预订业务。
逾期处理:就是书籍过期后的缴纳罚金等。
书籍丢失处理:对书籍丢失后的不同措施进行处理。 自动借书机的使用等。
2.读者所包含的用例
UML经典案例
图1:图书馆管理系统的用例图
二、系统的顺序图
顺序图是显示对象之间交互的图,这些对象是按时间顺序排列的。该图书馆管理系统主要含有以下几个重要的顺序图:
(1) 借书顺序图 (2) 还书顺序图
UML经典案例
(3) 罚款顺序图
1、借书顺序图
图2:图书馆管理系统借书顺序图
顺序图说明: (1) login():登录系统。
(2) checkstu_card():对读者信息进行验证,检查是否符合本图书馆借书条件。 (3) showinformation():显示该读者的基本信息函数。 (4) borrow():读者借书函数。 (5) getreaders():取得读者信息函数。看该读者是否符合借书条件,若符合,则
返回可借信息。
(6) gettitle():取得书目信息。 (7) getreservation():检验书籍是否被预订函数。 (8) getnoreservation():书籍没被预订或取消预订函数。 (9) create(borrower,item):创建书籍外借函数。
借书时,读者先将书拿予管理员,管理员对书籍和读者进行检验,若书籍和读者都符合借书条件,则借书成功。
UML经典案例
2、还书顺序图
图3:图书馆管理系统还书顺序图
顺序图说明: (1) login():登录系统。
(2) getitem():取得书籍条目信息。 (3) update():对图书馆书籍条目和借阅者信息进行更新条目。
还书时,读者先将书交给管理员,由管理员扫描书籍,若书籍没有过期等违规现象,则对书目和读者借阅信息进行更新,同时还书成功。
UML经典案例
3、罚款顺序图
图4:图书馆管理系统的罚款顺序图
顺序图说明:
管理员对书籍进行扫描,若发现书籍已经超过了图书馆规定的还书期限,则按每天一定金额进行罚款,过期天数和罚款金额由系统自动计算。用户交完罚金后,则对读者借阅信息进行更新。
三、系统的状态图
图书馆的书籍状态图如图5所示。 状态图说明:
书籍在未变成图书馆在库书籍时,为新加书籍状态。书籍处于在库状态时既可以预订也可以外借,外借后变为借出状态。处于预订状态时也可以外借,超出预订时间期限则从预订状态直接转为可用状态。借阅者在规定的预订时间内也可以考虑取消预订,取消预订后书籍的状态转为可用。外借书籍归还后变为可用状态。
UML经典案例
图5:图书馆的书籍状态图
四、系统的活动图
活动图描述的是某流程中的任务的执行,活动图描述活动是如何协同工作的,当一个操作必须完成一系列事情,而又无法确定以什么样的顺序来完成这些事情时,活动图可以更清晰地描述这些事情。下面描述了图书馆系统的借书、还书和预订的活动图。
1.借书活动图
管理员首先要扫描读者的借书证,检验证件是否符合图书馆借书条件,若该读者的借书数量还未达到最大规定数量,并且其所借书籍均未属于过期范围,则符合借书条件。则再扫描书籍条形码,检查书籍是否是不可借书籍或者已经被预订,若被预订,则取消预订,方可借书。在这些条件都符合时则更新书籍信息和读者的借阅信息,记录好借书的时间。
UML经典案例
图6:图书馆管理系统的借书活动图
2、还书活动图
图书管理员对书籍进行扫描,若书籍已经过期,则要求读者还请欠款才能还书,读者缴应交罚款后,更新书目信息和读者信息。
UML经典案例
图7:图书馆管理系统的还书活动图
3、预订图书活动图
读者先进入系统查询自己所需要的书籍,显示书籍信息,检验书籍是否属于可预订书籍,若符合条件则检查书籍是否已经被预订或已经被外借,若都未成立,则读者登录系统,并对该书籍进行预订。
UML经典案例
图8:图书馆管理系统预订书籍活动图
五、图书馆管理系统的类图
图书馆管理系统的类图如下:
(1) reader类是借阅者的类,它的属性很多,包括借阅者的账户ID(reader_id)、姓名
(reader_Name)、地址(Address)、班级(class)、所借书籍的书目(borrowed)等。其中主要操作有借书(addborrowed)和还书(deleteborrowed)和预订(reservation)等。
(2) admin类是管理员类,他有编号和姓名属性,操作主要是书籍的增删改和读者的增
删改等等。
(3) Title 类是记录书目信息的类,包括书籍的名字(name)、作者(author)、book_id
等属性。
(4) Item 类是具体某本书的类,属性包括书籍号(id)。操作包括预订(reserve)、按
书目查找(find_on_title)等。
(5) borrow类是某本书的借阅信息类,包括所借阅书籍的ISBN、借阅的时间(date)等。 (6) Reservation类是预订信息类,每个预订信息包括预订日期(date)、所预订书籍的ISBN、预订书籍的用户ID(UserID)等属性。
(7) persistent store类是书籍永久的存储类,在数据库中的存储数据,其他对与书籍有关的活动都要经过其存储类。
UML经典案例
图9:图书馆管理系统的类图及关系