资源描述
,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,1,Rational Rose,的使用,定义:,Rose,是一种分析和设计面向对象的建模工具。,作用:利用,ROSE,这个工具,我们可以建立用,UML,的软件系统的模型,面目可以自动生成和维护,C+,、,JAVA,、,VB,、,PB,、,ORACLE,等语言和系统的代码。,2,核心:七大框图,1.Use-Case Diagrams,(用例框图),2.sequence diagram,(顺序框图),3.Collaboration diagram,(协作框图),4.Class diagram,(类框图),5.State Transition diagram,(状态框图),6.Component diagram,(组件框图),7.Deployment diagram,(扩展框图),3,1.,启动,Rational Rose,4,视图,文档窗口,2.Rational Rose,主界面,工具栏:显示,UML,基本元素,5,打开顶层视图:,6,3.,增加工具栏中的基本元素:,在工具栏中点击鼠标右键,在右键菜单中选中,“,Customize,”,子菜单。,7,系统弹出自定义工具栏窗口,在左面窗口中选中当前工具栏中没有的按钮,点击,“,添加(,A,),”,按钮即可。,8,4.,增加角色、用例、用例图:,在工具栏中,选中,“,Use Case View,”,点击鼠标右键,在右键菜单中选择,“,New,”,子菜单,。,9,选课系统,:给教师分配课程和学生注册课程。,当教师决定要教授哪门课程后,课程登记办公室便把相关信息输入学校的计算机。要给教师打印一份教师将要教授的课程报告。,学生会得到一个课程目录。现在,学生填写一份选择的课程的完整表格给登记办公室。登记办公室的职员把学生的表格输入到学校的主计算机中。一旦学生一学期的课程注册信息输入完毕,系统就会成批处理学生的申请并分配课程。,大多数情况下学生会获得他们的第一选择,然而由于可能会引起冲突(同一个教师的学生太多),登记办公室会告诉学生做其他的选择。一旦所有学生的课程分配完毕,系统会给学生一份课程表以便他们检查。一旦登记前期工作结束,教师会得到一份他教授的课程的详细学生名单。,10,详细描述,:,在每个学期的开始,学生们会得到一份包含本学期将要开设的课程的列表。每门课程包含的信息,如教师、系别和学生选择课程的先决条件可以帮助学生有目的的选择课程。,新系统允许学生在将要来临的新学期中选择四门课程。另外,每个学生有在万一一门课名额满员或被取消的课程中有重选的机会。,假设每门课程最多,10,人,每门最少有,3,名学生选择才能开课,少于,3,个人报名的课程将被取消。当一个学生的注册信息完成之后,系统给收费系统发送一个消息,以便学生为其选中的课程付费。,教师可以访问在线系统以知道他们将要教授哪些课程和每门课程有哪些学生报名。每个学期有一段时间让学生可以改变计划。学生可以在这段时间内访问联机系统以增加或删除课程。,11,需求分析阶段,任务:建立用户需求和功能模块,确定系统中的角色和使用案例。利用,ROSE,,生成角色,使用案例和生成用例图,.,所用到的框图:,1.Use-Case Diagrams,:显示使用案例(表示系统功能)与角色(人或系统)间的交互。,12,在课程注册系统中我们可以归纳出来的主要问题是:,学生要注册课程;,教授要选择课程来教;,注册管理人员要创建课程和生成学期(课程)目录;,注册管理人员要维护关于课程、教授和学生的所有信息;,收费系统要从注册系统获得学生的费用情况;,基于对以上问题的回答,创建以下,actors,:,学生,-Student,教师,-Teacher,注册管理人员,-,Registrator,收费系统,-Billing System,13,在,Rationa,rose,中创建,actors,在,Browser,中的,Use Case,视图中单击鼠标右键,显示出弹出菜单;,选择,New:Actor,菜单选项,一个叫做,New Class,的新的,actor,出现在浏览器中;,选中这个叫做,New Class,的,actor,,更名为设计的名字;,创建好的,Actors,在浏览器中的显示,:,14,Actors,文档,:,在,Rose,中我们对模型元素都可以(在多数情况下是必须)添加文档以描述更多的信息。,应该给模型中的每个,actor,添加摘要描述,摘要描述表示,actor,和系统交互的规则。,课程注册系统中,actor,的摘要描述如下:,学生,在学校注册上课的人;,教师,在学校被认可上课的人;,注册管理员,系统认同的维护人员;,收费系统,学生付费的外部系统;,15,在,Rational Rose,中给,actors,写文档描述:,如果文档窗口没有打开,则在,View,菜单中选择文档窗口将其打开;,在浏览器中选中,actor,;,把光标点在文档窗口中,输入文档信息;,学生,actor,的文档描述如图:,16,在,Rationa,rose,中创建,Use Case,Use Cases,模型是系统和,actor,之间的对话,它表现系统提供的功能,即,系统给操作者提供什么样的使用操作。,Use Case,之间的连接构成了系统可能使用的定义的方式。通常的定义是:,Use Cases,是系统为特定的,actors,操作的事务处理产生的结果值的时序。,以下的问题可以帮助我们更好地标识系统的,Use Cases,:,每个,actor,的特定任务是什么?,是否每个,actor,都要从系统中创建、存储、改变、移动或读取信息?,是否任何,actor,需要通知系统有关突发性的、外部的改变?,那些,Use Cases,支持或维护系统?,是否所有功能需求都被,Use Cases,使用了?,17,课程注册系统中的,Use Cases:,以下是系统必须标志的:,学生,actor,需要使用系统来注册课程;,当选择课程的过程完成后,收费系统必须获得收费信息;,教授,actor,需要使用系统来选择课程,且必须得到课程花名册;,登记员要生成课程目录,而且必须维护课程、学生、教授等信息;,18,基于这些需要,可以生成以下,Use Cases,:,注册课程;,-Register for a course,选择课程任教;,-Select a course to teach,得到课程花名册;,-Get a course catalogue,维护课程信息;,-Maintain course information,维护教师信息;,-Maintain teacher information,维护学生信息;,-Maintain students information,创建课程目录;,-Create course catalogue,19,在,Rational Rose,中创建,Use Cases,:,在浏览器的,Use Case,视图中单击鼠标右键使弹出菜单显示;,选择,New:Use Case,选项,则在浏览器中生成一个没有命名的,Use Case,;,选中创建的新,Use Case,,,键入,Use Case,的名字;,课程注册系统的,Use Cases,如图,:,20,在,Rational Rose,中为一个,Use Case,创建摘要描述,在浏览器中选中要描述的,Use Case,;,把光标在,document,窗口中点击以下,输入文字描述。如果,document,窗口没有出现,选择,View,菜单中的,Document,菜单使,document,窗口可见。,课程注册,Use Case,的摘要描述窗口如图,:,21,Use Case,的事件流程,每个,Use Case,同时也被一个事件流文档化,事件流是,Use Case,完成需求的行为的事件的描述。事件流是指示系统要完成什么,而不是如何完成。因此,这是由领域语言,(,即客户的专业语言,),而不是实现语言,(,如通常的,PDL,描述语言,),写的。,事件流包含:,什么时候,Use Case,如何开始和结束?,Use Cases,和,actors,之间如何交互?,Use Case,需要什么数据?,Use Case,的通常顺序?,交互或额外的事件流描述;,事件流是用文档表示的(如我们现在通常使用的,Word,文档),可以作为附加文档添加在,Rose,中。,22,例,:,选择课程任教,Use Case,的事件流程。请把以下斜体字文档输入到一个,Word,文档中。,1.0,选择课程任教的事件流程;,1.1,前提条件;,维护课程,Use Case,的创建课程事件流必须在该,Use Cases,开始前执行;,1.2,主要事件流;,当教师登录系统并输入口令后这个,Use Case,开始。系统校验口令正确后,提示教师选择当前或以后的学期。教师输入预定的学期。系统提示教师选择动作:,ADD,DELETE,REVIEW,PRINT,或,QUIT,。如果选择了,ADD,则,S-1,:执行增加可选的课程子流;如果选择了,DELETE,则,S-2,:执行删除课程子流;如果选择了,REVIEW,则,S-3,:执行预览计划子流;如果选择了,PRINT,则,S-4,:执行打印计划子流;如果选择了,QUIT,则:,Use Case,终止;,23,关联事件流文档到,Rational Rose,中的,Use Case,在浏览器中的,Use Case,上单击鼠标右键弹出菜单;,选择,Sppecification,菜单;,选择,Files,夹;,单击右键弹出快捷菜单;,选择,Insert File,菜单;,浏览目录列表选择要关联的文件;,单击,Open,按钮;,单击,Close,按钮关闭,Specification,窗口;,24,25,26,我们应该给每个,use case,都写上象这样的事件流文档,在写完后最重要的事就是通读这些文档,看是否把系统的大部分功能(特别是重要的)都包含了。完成这个工作后,我们就可以创建,Use Case,关系图了。,27,Use Case,的两种关系,:使用或延伸,使用关系:,多个,use case,可能使用同一个功能,这种,use case,最好分开单独建立,比在几个,use case,中实现相同的功能更好些。,使用,关系是建立在两个,use case,之,间。,这种使用关系用指向被使用的,use case,的空三角箭头表示,。,延伸关系用于表示,:,可选择的行为;,在特定条件下才发生的行为,如警告信息;,基于操作者的选择的几种不同的流程;,延伸关系可以用一个结束于基础,use case,的大空心三角箭头表示,。,28,UML,有一个重要概念:,stereotype(,版类,模板,),,提供了在基本模型元素的基础上增加新的模型元素的方法。,stereotype,允许,UML,可以延伸到开发过程中表示系统通信的最小符号设置。,Stereotype,用符号,表示,放在表示关系的线上。,使用和延伸必须使用,stereotype,,因为他们都是使用同一箭头来表示的。,29,使用及延伸关系,30,我们创建,Actors,、,Use Case,和,Use Case,关系,目的都是为创建,Use Case,图。只有,Use Case,图能够可视化地表示用户需求和我们对用户需求的理解。,Use case,图是几个或全部,actors,、,use cases,和它们在系统中的关系的图形表示。,每个系统通常都有一个,Main Use Case,图,表示系统的边界(,actor,)和提供的大部分功能。也可以创建一些其它的,Use case,图。,Use Case,图,31,在,Rational Rose,中创建,main use case,图,在浏览器中的,use case,视图中双击,Main Diagram,;,单击一个,actor,选中并把其拖动到图中;,重复第二步骤,把每个需要加入图中的,actor,加上;,在浏览器中选择一个,use case,并把它拖到图中;,重复步骤,4,把所有,use case,都拖到图中;,注:,actors,和,use case,也可以直接用工具条的工具在图中生成。,32,33,(1),在,Rational Rose,中创建通信关联关系,在图的工具条上单击,Association,或,Unidirectional Association,图标,如果,Association,图标没有在工具条上,可以在工具条上单击鼠标右键弹出快捷菜单,选择,customize menu,选单手动把图标加上;,在起始,actor,上单击并拖动到设计的,use case,上;,34,增加,Communicates stereotype(,可选的,),双击,Association,线,弹出,Specification,窗口;或使用右键菜单的,“,Open Specification,”,项。,如果,stererotype,是第一次使用,则在,stereotype,输入框中输入,Communicate,。如果已经使用过,Communicates stereotype,,则在下拉框中即可;,单击,OK,,关闭,specification,窗口;,重复以上步骤,添加完需要的,association,关系;,35,36,(2),在,Rational Rose,中创建,use,关系,在工具条上选择,generalization,图标;,在使用,use case,上单击,拖动到被使用的,use case,上;,双击,generalization,线,弹出,specification,窗口;,如果这个,stereotype,是第一次使用,在,stereotype,输入框中输入,uses,;如果这个,stereotype,已经创建了,则在下拉列表中选择;,单击,OK,关闭,specification,窗口;,37,38,(3),在,Rational Rose,中创建,extends,关系,在工具条上选择,Generalization,图标;,单击包含,extends,功能的,use case,,拖动到使用的,use case,上;,双击,Generalization,线,弹出,Specification,窗口;,如果这个,stereotype,是第一次使用,在,stereotype,输入框中输入,Extends,;如果这个,stereotype,已经创建了,则在下拉列表中选择;,单击,OK,,关闭,Specification,窗口;,39,5.,类,在,Rose,浏览器中创建类,1.,在浏览器中选中,Logical,视图,单击鼠标右键。,2.,选择,New:Class,菜单,一个叫做,New Class,的类出现在浏览器中。,3.,选择新类,键入类的名字。,在前面关于,use case,图中的关系中涉及到过模板,(stereotypes),,类也有,stereotypes,。,每个类最少有一种,stereotypes,。,40,一些常用的,stereotypes,是:,实体类、边界类、控制类、例外类,等。,实体类:模型信息和相关行为广泛的永久的独立于它的环境。,边界类:系统环境和内部工作间的模型关联。,控制类:一个或多个模型控制行为规格。,41,例:课程登记的,Use Case,边界类,登记表格、计划表、计费界面、,AddDrop,课程表,实体类,课程、提供课程、学生计划、学生信息,控制类,登记管理,42,选择或,键入,stereotype,的名字,43,在,Rational Rose,中为类创建,stereotypes:,1.,在浏览器中选择类并单击鼠标右键,弹出快捷菜单;,2.,选择,Sepecification,菜单;,3.,选择,General,页;,4.,选择或,键入,stereotype,的名字;,5.,单击,OK,按钮关闭,Specification,窗口;,在,Rational Rose,中给类编写文档,在浏览器中选择类;,2.,在文档窗口中写上类的文档;,44,6.,包,如果一个系统仅仅包含少数的几个类,我们便可以很容易地管理。通常的系统都包含很多类,你需要一种机制来管理以便更方便使用、维护和重用。这就是包有用的原因。,在逻辑视图里,包和与它有关的包或类联系。把类组织到包中,我们可以从总体看到模型的结构,也可以看到每个包内的详细情况。,在,UML,中,包被描述成文件夹。包的图示如图,:,45,在,Rational Rose,中创建包,:,1.,在浏览器中的,Logic View,视图上单击鼠标右键;,2.,选择,New:Package,菜单;,3.,当包还处于选择状态时,键入包的名称;,46,可以把登记系统中的类放在三个包中,:,界面,、,人,和,学校事件,47,当创建好包后,就要重新安排类的位置,:,在,Rational Rose,中重新安排类的位置,1.,单击选择浏览器中的类;,2.,把类拖动到设计的包中;,3.,重复上述步骤直到所有的类都重新定位;,48,当增加了更多的类后,类的文本描述就不足以说明问题了。类图提供了一个或所有类的图示说明。,在逻辑视图中的主视图,(,main,),是系统的包图。每个包也有其自己的主要类图,通常显示包的公共类。也可能需要创建其它的类图。,7.,类图,49,Rational Rose,中的主视图,(main):,Rose,在逻辑视图中自动添加主视图。,主视图是逻辑视图中典型的高级包视图,增加一个包图的过程是:,在浏览器中双击主视图;,在浏览器中选择包;,把包拖到视图中;,重复上述步骤直到把所有的包都处理完;,50,主视图,51,在,Rose,中创建包的主类图,:,在主视图中双击包;,Rose,会打开包并创建(或显示)这个包的视图;,在浏览器中选择类并拖到视图中;,重复步骤,3,直到所有类都处理完;,People,包的主类图,52,类的分视图,需要时可以加入类的分视图,它们展现了模型中包和类的另一种“视图”,例子:,方案中多个类的视图,包中“私人”类的视图,一个或多个类的视图及它们的属性和操作,inheritance hierarchy,视图,53,在,Rational Rose,中添加类的分视图,:,1.,在浏览器中单击鼠标右键,弹出快捷菜单;,2.,选择,New:Class Diagram,菜单;,3.,当图表还处于选中状态时,给图写上名字;,4.,在浏览器中双击图,打开图;,5.,在逻辑视图中选择一个类,并把该类拖到创建的新图中;,6.,重复步骤,5,直到选择的每个类都放在该图中;,54,分类图,55,类之间的关系通常有,关联,(普通关联)、,聚集,、,泛化,(继承)等。,关联是类之间的双向连接关系,聚集是部分与整体之间的特殊的关联形式。,除了上面的关系,还可以:,用名称、角色和多种指示增加关系,建立反身关系,加入强制关系,8.,关系,56,(1),关联关系,关联在类之间具有双向语义。类之间的关联关系意味着在对象和关联的对象之间存在连接。,例如,,Course,类和,StudentInformation,类之间存在关联关系就表示,Course,类对象和,StudentInformation,类对象之间有连接关系。,对象连接的数量决定于关联的多样性。,在,UML,中,关联用连接关联的类的直线表示。,57,在,Rational Rose,中创建关联关系,:,1.,在工具条上选择关联图标;,2.,在类图中单击关联的一个类;,3.,拖动关联关系线到另一个类上;,58,关系名称,:可以给关系加上名称,通常是动词或动词短语。,59,角色名称,:在类间的关联中角色表示目的或能力。,通常是名词或名词短语。,60,在,Rational Rose,中创建多重性标识,:,1.,双击关系线,弹出,Specification,窗口;,2.,选择,Detail,页,修改角色,(Role A Detail,或,Role B Detail),;,3.,键入设计的多重性数值;,关联的多重性(数量):,61,(2),聚集关系,聚集是关联关系的特殊形式,整体和部分的关系。聚集是部分或包含的关系。,在,UML,中,聚集是由一个空心三角箭头表示的。,例如:在一个学期中,一个课程,(Math101),可能被分配不同的次数。每一门课程描述为一个,Course Offering,(如,Math 101,section 1,和,Math 101,section 2,)。,Course,和,CourseOffering,可以认为是聚集关系,一个,course,已经具有,CourseOfferings,。,62,在,Rational Rose,中创建聚集关系。,(1),从工具条上选择聚集关系,(aggregation),图标;,(2),单击属于,“,整体,”,的类,拖动鼠标到属于,“,部分,”,的类;,63,(3),泛化关系(继承关系),在,Rational Rose,中创建继承关系。,(1),从工具条上选择继承关系,(Generalization),图标;,(2),单击属于,“,子类,”,的类,拖动鼠标到属于,“,父类,”,的类;,64,9.,序列图,事件流程是由文本表示的,,scenarios,是由交互图表示的。有两种交互图,时序图和协作图。每一种图都是,scenarios,的视图。,时序图显示的随时间关系的对象交互关系。它描述,scenarios,中的对象和类以及要完成,scenarios,中定义的功能的对象间的要交换的信息。在开发环境下,时序图通常和,use case,是关联的。,65,在,UML,中,时序图中的对象是表示成一个带有下画线名字的矩形框。对象可以以三种方式命名:对象名字、对象名字和类或者仅仅是类名(任意对象)。,时序图中的对象命名,66,在每个对象下也有由点画线表示的对象的时间线,对象间的消息用从客户端(消息发送者)指向服务器端(消息接收者)的箭头表示。,UML,中时序图的对象和消息的符号表示如图,:,67,在,Rational Rose,中创建时序图,1.,在浏览器中选择,use case,,单击鼠标右键,弹出快捷菜单;,2.,选择,New:Sequence Diagram,菜单。视图中增加了一个没有名字的时序图;,3.,选择新的时序图,键入名字;,时序图在浏览器中显示如图,:,68,在,Rational Rose,中创建时序图的对象和消息,1.,在浏览器中双击时序图,打开时序图;,2.,在浏览器中选择,actor,;,3.,把,actor,拖到时序图中;,4.,在工具条上选择,对象,图标;,5.,在时序图上单击鼠标,把对象放在图上;,6.,在对象还处于选中状态下,输入对象的名字;,7.,重复以上步骤直到所有的对象都放在时序图中;,8.,在工具条上选择,消息,图标;,9.,在发出消息的对象上单击鼠标,把消息线拖到接收消息的对象上;,69,10.,用鼠标双击消息线,弹出下面的窗口,在文本框,name,中键入消息名称;,11.,重复步骤,7,到,9,直到所有消息都添加到,scenario,中;,70,序列图,71,Thanks!,
展开阅读全文