《图书还借系统uml建模设计实验报告》Word格式.docx
- 文档编号:17930717
- 上传时间:2022-12-12
- 格式:DOCX
- 页数:11
- 大小:142.56KB
《图书还借系统uml建模设计实验报告》Word格式.docx
《《图书还借系统uml建模设计实验报告》Word格式.docx》由会员分享,可在线阅读,更多相关《《图书还借系统uml建模设计实验报告》Word格式.docx(11页珍藏版)》请在冰豆网上搜索。
类图描述系统的类及类之间的关联、添加系统中类的属性和操作;
顺序图和协作图表达系统的对象和类之间的交互,从而建立一种通用的图书还借系统模型。
[正文]
一、实验名称:
图书还借系统UML建模设计。
二、实验环境:
[硬件环境]:
微处理器:
Pentium®
90MHz或更高
硬盘空间:
至少4G
内存:
32M或者更高
[软件环境]:
操作系统:
中文Windows98/2000/XP平台
开发软件:
RationalRose2003
三、设计内容及过程:
[问题描述]:
图书还借系统的基本业务包括:
对一本书的借阅、归还、预定以及取消预定等等。
设计一个图书还借系统,并用rationalrose工具画出各用例图、类图、顺序图以及协作图来描述各个业务活动。
[基本需求]:
关于这个图书馆系统,基本的需求比较简单,就是允许读者可以在图书馆借阅、归还、预定以及取消预定图书。
为了简化系统,我并没有把图书馆中的人员作细分。
图书馆里面的角色确认为图书馆管理人员(Librarian)和读者(Reader)。
图书馆管理人员是图书馆的员工,他们是系统的使用者,他们的工作就是和读者打交道并在软件系统的支持下工作。
而读者则是是客户,客户是指那些从图书馆借阅图书的人。
读者不直接地与系统互动,他们的行为由图书馆人员来代为工作。
另一方面,每种书的登记内容至少包括书号、现存量、总库存量等三项。
综合分析,系统应实现的操作及其功能定义如下:
a)借阅:
如果一种书的现存量大于零,则借出一本,登记借阅者的图书证号和归还期限。
b)归还:
勾销对借阅者的登记,改变该书的现存量。
c)预定:
读者可以预定当前没有的图书和杂志。
这样,当读者所预定的图书和杂志归还回来或购进时,就通知预定读者。
d)取消预定:
当预定了某书的读者者借阅了该书后预定就取消;
或者通过显式独立的取消过程强行取消预定。
[用例模型]:
用例模型描述了图书还借系统在功能方面提供了什么的功能,是系统需求的获取。
总体上由“角色”和“用例”组成。
在这个图书馆系统中,我们可以识别出的角色有读者和图书管理员。
整个用例模型包含的用例有:
借书、还书、预订、取消预定。
用例模型可以用用例图表示如下:
图书馆还借系统分析的结果做成UML用例图,如图-所示。
图一图书还借系统用例图
其中,图书还借系统的用例有:
<
!
--[if!
supportLists]-->
<
--[endif]-->
借书(Borrow)
返书(Return)
约定(Reservation)
取消预定(CancelReservation)
而每个用例的描述则更详细地描述用例和角色之间的交互。
由于用例比较多,这里仅对借书这个用例来做描述:
●名称:
借书”。
●说明:
读者在图书馆挑选好需要的图书后,通过图书管理员把书借出去。
●参与者:
读者,图书管理员
●频率:
每天可能会有很多次。
最繁忙的情况是,借书的人非常多,按照现在的速度,大约每分钟完成一个人的结束工作。
●前置条件:
无
●后置条件:
修改所借出的图书的剩余数量。
●假设:
借书者总是从图书馆找到书,然后才能拿书办理借书手续,因此,总是有足够的书可以出借。
●基本操作流程:
借书成功。
1)学生将所借图书和借书证交给图书管理员
2)图书管理员将学生借书证号码和所借图书输入系统
3)系统校对借书信息,比对该学生以往借书情况和当前借书情况,如果不存在不允许借书的情况,则记录借书交易的信息,并且修改相应的馆藏图书的数量信息。
4)如果该学生已经预订了这本图书,则撤销该预定。
5)报告交易成功。
●可选操作流程:
所借图书超出最大借书数量。
1)学生将所借图书和借书证交给图书管理员
3)系统校对借书信息,比对该学生以往借书情况和当前借书情况,发现已超出最大借书数量,则停止当前交易,并且提示用户错误原因。
4)图书管理员可以应学生的意见,减少借书数量,并重新提交系统。
[静态模型]:
首先来分析借书这个用例。
在这个用例中,我们首先可以识别出一些直接的对象,包括图书管理员(Librarian)、读者(Reader),然后,稍作分析,发现需要一个实体对象来记录图书的借还信息(BorrowInfo)。
随后,在借书的过程中,我们会使用到预定图书的信息(ReservedInfo)。
到这一步,我们基本完成了实体对象的识别。
然后,我们发现我们需要一个借书的控制类(Borrow)来执行借书的动作。
这样,初步的模型就可以建立了。
在此模型中,也需要识别出类的一些属性和方法。
例如,对于Reader类,我们需要Name、CardID、Password和BorrowNo属性,对于Book,我们只需要BooKID、CountNo、ReservedFlag等属性。
现在,我们为我们的类图添加上述属性,就可以得到下面的结果:
图二图书还借系统类图
以此类推,我们把还书、预定、撤销预定这些用例一并分析后,我们就能够得到整个系统的静态分析模型。
[动态模型]:
在面向对象的系统中,业务流程表现为对象之间的交互。
有了上面分析的得到的对象后,就可以来描述他们是怎么进行交互和协作的了。
在UML中,我们可以使用顺序图、或者协作图来建模这些动态的过程。
同样的,看借书这个用例。
在借书这个用例中,有两个事件流:
借书成功(正常事件流)和所借图书超出最大借书数量(非正常事件流)。
这里以“借书成功”这个事件流为例,下面是这个事件流的顺序图及其协作图:
●借书顺序图及其协作图:
图三借书顺序图
Operation:
1:
Login()-----登陆
2:
Borrow()-----借书
3:
CheckCanBorrow()-----检查是否可借
4:
GetBorrowedNo()-----得到读者已借书的数量
5:
ValidMax()-----读者可借书的最大数量
6:
BorrowOper()-----进行借书操作
7:
UpdateCurrentNo()-----更新库存书数量
8:
CancelReservedOper()-----取消预定操作
9,10,11:
OKMessage-----成功的消息返回
图四借书协作图
同样的,我们也可以为其他三个用例的事件流创建动态模型,顺序图及其协作图如下所示:
●还书顺序图及其协作图:
图五还书顺序图
Return()-----还书
CheckOverdue()-----检查是否过期
ReturnOper()-----进行还书操作
UpdateValidMax()-----更新读者可借书的最大数量
8,9:
图六还书协作图
●预定顺序图及其协作图:
图七预定顺序图
Reserved()-----预定
ReservedOper()----预定操作
SetFlagOn()-----预定书籍标记置1
5,6:
图八预定协作图
●取消预定顺序图及其协作图
图九撤销预定顺序图
CancelReserved()-----取消预定
CancelReservedOper()----取消预定操作
SetFlagOff()-----预定书籍标记置0
图十撤销预定协作图
四、实验总结:
初次接触RationalRose,发现是比较容易上手,非常的usefriendly。
Rose真是一个不错的辅助工具。
动态模型和静态模型的建立是一个交互的过程。
在建立动态模型的过程中,有可能会发现一些新的类,也会为已有的类找到一些新的属性和方法,这样,在这个过程中就需要去修改与设计的类图,反之亦然。
由于是第一次设计建模,我选了在功能上较易理解的“图书还接系统”的建模实例,在设计中由于经验不足,对系统的设计完成的功能也比较简单,以后随着经验的累积,想必应该可以不断的完善。
[结束语]
在本文中,我亲手设计了一个简单的图书还借系统。
使用RationalRose来为系统进行UML建模,这实际上是一个非常自然的过程,只要我们按照既定的合理步骤,采用合理的方法,一步一步的进行深入的分析,就能够很好的完成设计任务。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 图书还借系统uml建模设计实验报告 图书 系统 uml 建模 设计 实验 报告