您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > UML with Rational Rose
©Copyright,SuzsoftCo.,Ltd.ConfidentialandProprietaryInformation.AllRightsReserved.RationalRose©Copyright,ConfidentialandProprietaryInformation.AllRightsReserved.RationalRose的安装网上下载RationalRose2003按照安装步骤安装,然后破解安装完后如果每次关闭时都报错,则需要将Rose目录下的SHW32.DLL替换一下,具体网上可以搜到©Copyright,ConfidentialandProprietaryInformation.AllRightsReserved.案例背景“我明白了”,Bob放下电话说。Mary从计算机上移开目光问,“什么事?”“这是客户第四次抱怨没有收到订单了,再这么下去,我们要关门了”。“冷静些”,Mary答道,“我们的业务增长太快了,处理书面订单只能适应五个人的小公司”,根本适应不了目前的情况。还是和Susan谈谈,看看能否建立一个系统,帮助我们跟踪订单信息。”Robertson’sCabinets,Inc是个假想的小公司,专门制造标准和定制厨房用具。去年刚开业时,业务量不大,用书面订单跟踪就够了。但随着名气越来越大,订单越来越多,他们开始增加员工,如今已经是个有50多名员工的制造厂。©Copyright,ConfidentialandProprietaryInformation.AllRightsReserved.尽管公司仍然不算太大,但手工处理订单已经很吃力了。Bob和MaryRobertson是公司的老板,决定与Susan商量办法。Susan是个计算机专家,在公司的信息组。©Copyright,ConfidentialandProprietaryInformation.AllRightsReserved.对话Bob对Susan说:”我们显然需要某种系统来跟踪订单,否则有失去顾客的危险“”没错“”能否用一个Java程序来跟踪订单?“”先别考虑怎么实现,还是考虑系统的要求吧“。”用来跟踪订单“”能否更具体些?先看看目前的过程吧“。”好,收到电话时,我们填一份订单,把订单交给仓库的Clint,他会填好单据,安排向客户发货。然后我们把另一份订单交给会计部的Don,他把其输入会计系统,产生发票“”你是否新系统支持这整个过程?“”是的“©Copyright,ConfidentialandProprietaryInformation.AllRightsReserved.从谈话中,我们知道了通过这个谈话,Susan可以确定系统要支持增加新订单、修改现有订单、填单、检查当前库存和补货。增加新订单时,系统要通知会计部门,以便生成发票。如果项目缺货,则系统要等待该项目的订单。Susan由此建立了这个系统的UseCase图。©Copyright,ConfidentialandProprietaryInformation.AllRightsReserved.UseCase©Copyright,ConfidentialandProprietaryInformation.AllRightsReserved.Rose中实现打开RationalRose程序,产生一个新的空白文件,叫做order.mdl转到UseCaseView在main图中增加一个package,然后可以看到多出一个目录,我们下面的工作都在那个目录里面做。将UseCase加入到图中EnterNewOrder,ModifyExistingOrder,PrintInventoryReport,RestockInventory,FillOrder,BackorderItem将Actor(角色)加入到图中SalesPerson,WarehouseManager,WarehouseClerk,AccountingSystem©Copyright,ConfidentialandProprietaryInformation.AllRightsReserved.将FillOrder设为Abstract增加之间的关联©Copyright,ConfidentialandProprietaryInformation.AllRightsReserved.©Copyright,ConfidentialandProprietaryInformation.AllRightsReserved.Interaction图两种Interaction图,Sequence图和Collabration图。两种图所要描述的都是对象交互的过程,侧重的角度不同。Sequence图侧重于时间顺序。Collabration图侧重于对象之间的关系和数据流。在RationalRose中,用F5进行两种视图的切换。(只要画出一个视图就好了,另一个视图会自动生成)©Copyright,ConfidentialandProprietaryInformation.AllRightsReserved.对象交互是针对一个个usecase而言的,所以一般来说,把Interaction图放在某个usecase下面。右键单击EnterNewOrder,New-CollaberationDiagram,取名叫EnterNewOrder。将SalesPerson拉到图中。新建一个Class,叫做Order,将Orderclass拉到图中,图中会产生一个Order的实例。©Copyright,ConfidentialandProprietaryInformation.AllRightsReserved.在Orderclass中增加三个方法,分别被public作用域的create和modify,还有一个protected作用域的checkCanCreate(检查能否增加)增加关系(增加Objectlink和linkmessage)第一步,调用checkCanCreate,检查是否可以增加第二步,调用create增加©Copyright,ConfidentialandProprietaryInformation.AllRightsReserved.Collaberation图User:SalesPersonanOrder:Order1:checkCanCreate()2:create()©Copyright,ConfidentialandProprietaryInformation.AllRightsReserved.F5后,sequence图,:)User:SalesPersonanOrder:Order1:checkCanCreate()2:create()©Copyright,ConfidentialandProprietaryInformation.AllRightsReserved.把剩下的各个UseCase的对象交互都画好。©Copyright,ConfidentialandProprietaryInformation.AllRightsReserved.Compoment视图在component视图新建一个component叫做Order,一个component是一个发布的模块双击生成的component,在General页面选择生成代码要用的语言&生成的类型,这里选择Java/Application。转到Realizes页面,右键单击里面的classes,将他们都assign到component,这样在生成这个component代码的时候,assign的class的代码都会相应生成。注意每个compoent里只能有一个public的class类,否则会报错,并且此class类的名字必须和component的名字一样。©Copyright,ConfidentialandProprietaryInformation.AllRightsReserved.OrderApplication©Copyright,ConfidentialandProprietaryInformation.AllRightsReserved.自动生成代码首先选择菜单tools-checkModel,看看Model有没有什么错误然后右键点击要生成代码的component,选择Java/J2EE-syntaxCheck,如果有问题要先改正。选择下面的GenerateCode生成代码,在生成代码的时候需要首先指定一下代码存放的路径。©Copyright,ConfidentialandProprietaryInformation.AllRightsReserved.生成的文件Order.java©Copyright,ConfidentialandProprietaryInformation.AllRightsReserved.RationalRose实例文件
本文标题:UML with Rational Rose
链接地址:https://www.777doc.com/doc-3613488 .html