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