《使用UML对图书馆系统进行建模.docx》由会员分享,可在线阅读,更多相关《使用UML对图书馆系统进行建模.docx(16页珍藏版)》请在优知文库上搜索。
1、运用UM1.对系统进行建模面对对象的软件工程,同传统的面对过程的软件工程相比,在需求的获得、系统分析、设计和实现方面都仃着很大的区分“UM1.OOA和OOD的常用工具.运用UM1.来构建软件的面对对象的软件工程的过程,就是一个对系统进行不断精化的建模的过程.这些模型包括用例模型、分析模型、设计模型,然后,我们须要运用具体的计算机语言来建立系统的实现模型。当然,在整个软件工程中,我们还须要建立系统的测试模型,以保证软件产品的质fib运用面对对您的工具来构建系统,就应当运用面对对象的软件工程方法,然我,我们常常会发觉,在实际的开发过程中,许多开发人后虽然能够理解UM1.的全部图形,却仍旧不能得心应
2、手的运用UM1.来构建整个项目,其很大的缘由,足仍IH在运用潦有的软件工程方法.而不清晰如何运用UM1.来建立系统的这些模型.不清晰分析和设计的区分,以及他夕之间的转化.应用软件系统,就其本质来说,是运用计徵机对现实世界进行的数字化模拟,应用软件的制造过程,依据UM1.的方法,就是建立这一此列模型的过程。本文将就一个图H馆系统,说明如何运用UM1.来对系统进行这一系列的建模.关于这个图书馆系统,基本的需求比较简洁,就是允许学生可以在图书仲借阅和归还图书,另外,也可以通过网络或者图廿馆的终端来看阅和预订书。当然,图书第管理员也可以对图书进行管理.为了简化系统,我们没有把图珏馆中的人员作细分。之所
3、以采纳这个相对简洁案例.是因为许多人都对图书馆系统行很强的礴性相识,这样.读者不须要花许多的时间来理解系统包含的业务学问.同时,也因为本文只超对运用UMI.的过程做个探讨,着眼于运用UM1.进行建模的过程,说明各个层次的模型之间的区分和联系,展示系统演进的过程,而不会深化UM1.的细微环节方面.,对于更加困难的系统,其分析和设计的方法是相通的,可以举一反三.用例模型一系统需求的获得用例模型定义系统怕什么,是用来获得系统需求的有效手段。用例模型由“角色”和”用例”组成,我们在构建一个用例的时候.通常要做的第一件事情是识别角色.或者说,参加者.然后我们我们须要识别系统为参加齐供应的眼分.或若说,参
4、加者的行为,也就是用例.最终,我们确定角色和用例之间的关系,在这个图书馆系统中,我们可以识别用的角色有学生和图书管理员,整个用例模型包含的用例有:借书、还书、查阅图书、预订图书,以及图书维护.用例模型可以用用例图表示如下:确定有效用例的关键是.检查用例是否包含了一个完整的功能.用例不能定的过细,不能把一个完整的功能的一个部分作为一个用例,也不能在一个用例中包含过多的功能.例如,用户的登录。学生在预定图贴的时候,可能会须要首先臀录系统,这是系统的一个功能,但是,这个功能只是预定图书这个完整的功能中的一个步屣,或者说一个子功能,就不适于做成一个用例.另一方面.借书和还书,都是相对完整的功能,假加把
5、这两个用例合并成一个类似于“处埋图书”的用例,明显是不能明确的衣达用例须要衣达的含义的.描述用例次要了解的是,运用UM1.进行系统建模.并非只是意味着画UM1.图形,对UM1.图的文档说明是同样充要的.学习UMI.不仅仅要学习UM1.图形,相应的文档描述方法也同样要学习,也同样Hi要,在描述用例时,我们Ur以用文字来描述,也可以用其他图形来描述,例如,依次图或者活动图等等.下面给出了一个RUP中举荐的描述用例的完倍的结构: 名彝.名称无疑庖当表明用户的意图或用例的用途,如“探讨班招生, 标板符I可选唯一标识符.如UC170r,在项目的其他元素(如类模型)中可用它来引用这个用例。 说明概述用例的
6、几句话。 叁加者I可选I.与此用例相关的参加者列表。尽管这则值息包含在用例本身中,但在没有用例图时,它有助于增加对该用例的理好. 状态可逸,指示用例的状态,通常为以下几种之;进行中、等待申杏、通过审杳或未通过审查。 算率参加者防网此用例的顿率.这是一个自由式间遨.如用户每次录访问一次或每月一次. 苜量条件个条件列表,假如其中包含条件,则这共条件必茅在访问同例之前汨到满意 后条件一个条件列表,H?如其中包含条件.则这些条件将在用例胜利完成以后得到满意. 被犷展的用例I可选,此用例所扩展的用例(锻如存在兀扩展关联是种广义美系、其中扩展用例接续基用例的行为。这是通过扩展用例向珞用例的操作序列中插入附
7、加的操作序列来实现的,这总是运用带有的用例关联来建模的. 被包含的用例可选I此用例所包含用例的列在.包含关联是一种广义关系,它衣明对处于另一个用例之中的用例所描述的行为的包含关系.这总是运用带有vvindude的用例关联来建模的”也称为运用或其存关系。 mEr逸对编叮此用例时所创建的域的任何重要假设.您应当在肯定的时候检验这些假设,或者判它们变为决戢的一部分,或拧将它们添加到操作的基本流程或可选流程中。 金材MMJ1.参加者在用例中所遵循的主逻耨路径。因为它描述了当各项工作都正常进行时用例的工作方式,所以通常称其为超当粉楂(happypath)或主路径(mainah). 可选掾作流程用例中很少
8、运用的逻辑路径,那些在变更工作方式、出现异样或发生错误的状况下所遵循的路径. 修改历史记录I可选I关于用例的修改时间、修改缘由和修改人的具体信息. 问题【可选1,假如存在,则为与此用例的开发相关的问震或操作项目的列衣. 决策.犬键决策的列表,这些决策通常由您的SME作出,并属于用例的内容。将这也决策记录下来对于维护用般E/库值沏伊,”。加ZyJ是相当重要的。卜面,我们对借书这个用例来做描述:名称:借书”.说明:学生在图书馆选择好须要的图书后,通过图书管理员把书借回去。加者:学生,图H管理员每天可能会有许多次.最繁忙的状况是,借书的人特别多依据现在的速度大约每分钟完成一个人的结束工作.前条件:无
9、后置条件:脩改所得出的图H的剩余数.假设,借书拧总是从图书馆找到书.然后才能京书办理借书手续.因此,总是有足鲂的书可以出借.基本獴作流程:借竹胜利,D学生将所借图H和借书证交给图书管理员2)图书管理员将学生借书证号码和所借图书输入系统3)系统校对借书信息,比对该学生以往借书状况和当前借书状况,假如不存在不允许借书的状况,则记录借书交易的信息,并且修改相应的馆疲图书的数肤信息.4)假如该学生已经预订了这本图书,则撤销该预定.5)报告交易胜利,可选獴作流程:所借图竹超出最大借行数;匕I)学生将所借图竹和借书证交给图书管理员2)图书管理员将学生借书证号码和所借图书输入系统3)系统校对借书信息,比对该
10、学生以往借书状况和当前借书状况,发觉已超出及大借行效收,则停止当前交易,并且提示用户错误缘由。4)图书管理员可以应学生的看法,I切减借书数诉,并重新提交系统,漉程活动图,见图.图一:借书活动图M哲无.决策:略。上面,我们就这个用例做了一个比较具体的描述.按部就班,我们就可以逐步把整个系统的用例模型完成,再次强调一点,运用UM1.隹模,文档说明和图形同样里要,井且,要运用UM1.的方法来编写文档.分析模型一开发者的视野在系统分析的过理中,我们所关注的依旧是何的,但.是,同用例模型不同的是,用例模型是从最终用户的角度来存待问题而分析模型是从开发者的角度来描述问题.用例模型的主要工作是描述现实世界的
11、业务流程,而很少会涉及系统的概念,分析,则是从系统的珀度来来看特软件应当为用户供应的服务。同样,同设计不同的是,分析仍旧件留在“做什么”的层次,,而设计,则须饕都决“怎么做的问鹿,开发语吉等技术选择通常不会在分析模型中考虑.分析模型是独立干实现的,这样,可以供应最大的复用,并且,可以防助开发人员方知过早的陷入技术的细做环节中去,从而能够从一个更加-搬的角度去理清思路“静态模型的建立进行分析建模的第步,通常是识别对,然后提取出类.考虑闻名的MVC模式,我们须要识别实体、限制和边界三种灼象,依据MVC模式来为识别而象做指导,是特别好的做法。对象识别的结果,就是我们所须要的峥态模型,通常衣现为类图。
12、我们首先识别出实体对望,这些对望通常来说是比较明显的,例如系统中的角色,系统须要处埋的资料,如本系统中须要处理的图书资料等:有些实体对象须要略微分析一下才能得到,例加,在本系统中,为了记录图书借还的信息,我们可能须要一个对象来特地记录这一信息.这些对象就是所谓的MOdid(实体类).然后我的须要识别为了完成系统业务逻辑而须要的业务逻辑对疚.以及同用户进行交互的界面类,在MVC模式中,他们分别对应于Contro1.(限制类)和View(边界类).在分析阶段,这约对象通常都依据比较自然的方式来组织,例如,为了完成一个业务功能,我们通常须要一个限制类和一个边界类,限制类执行业务逻辑,边界类同客户进行
13、交耳。当然,这不是肯定的,在进行进一步深化的分析后,这些类可旎会被分解和合并.一口不能把全部的饭郎吃掉,系统分析也是这样.我们须要一个一个用例的来进行分析.现在,我们首先来分析借书这个用例,在这个用例中,我们首先可以识别出一些干脆的对象,包括图H管理员(BOUkAdmin)、学生(StUdenmRHRBook).然后稍作分析,我们会发觉我们须要一个实体对象来记录图书的借还伯恩(BorTCv1.nfo),她终,我们发觉,在借书的过程中,我们会运用到预定图书的信息(SUbSCribrInib.到这一步,我们本完成了实体对象的识别,然后,我们发觉我们须要一个借书的限制类(BonUW)来执行借竹的动作
14、,以及一个用户界面(BoEwIn1.crface)来接受用户的检入.这样,初步的校型我们就可以建立了.Book图二:借书类图在分析模型中,我做也须要识别出类的一些属性和方法.同样的,为了避开过f的陷入细微环节中,以及适应将来在设计时类的改变,在分析模型中,我们,般只把一些主要的侬性和方法标识出来.例如,对于S1.Udem类,我们只须要Name和CiUdN。借书证号属性,对于BoOk,我们只须要BOOK1.D、A1.1.COUnt(书的总数)、CUrrcntCOUnt(当前数%等属性.现在,我们为我们的类图添加上述同性,就可以料到下面的结果:BookDOAICoutCcnCowt图三:借书类图不
15、过,把这些属性都标上后,图形就比较难布置.因为文章版面的何超,在以后的文字中.除非必要,一般会把属性都隐藏起来.这样.行起来会整齐一些.依样画的芦,我们把还书、查阅图书、预定图书、管理图书这些用例一并分析后,我们就能助得到整个系统的伸态分析模型。Manage1.nterface-图书管理员(tomUseCast.)o-RetumhterfaceManageReturnorrowWoBonow1.nterfaceSearchinterfaceBookBorrowSearch学生(fromUseCas)SubscribeiiterfaceSubscribeSubscribr1.nfo当然,我们随后须要对这个初步的模型作进一步的整理和分析,类图会发生改变,各个类之间会产生一线联系,我们也可能会运用一些分析模式,来进一步优化我们的分析结果,关于分析模型的学问,可以参见MartinFOW1.er所著的Ana1.ysisPatternsReusab1.eObjectMode1.s一书.在这里,我们就不进一步做探讨了.动态模型的建立在面对对象的系统中,业务流程表现为对象之间的交互.我们有了上面分析的得到的对Si后,就可以来