资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第,5,章 交互图及其应用,Rational Rose 2003,基础教程,配套电子教案,内 容,基本概念,顺序图,协作图,顺序图和协作图共有的元素,对象规范与应用,消息规范与应用,消息编号,协作图特有的要素,链,顺序图所特有的元素,控制焦点,顺序图与协作图之间的转换,引 言,交互图可以用于对一个用例的事件流程进行建模,也可以单独使用,用于可视化、详述、构造和文档化一个特定对象群体的动态方面。交互图显示一个交互,由一组对象和它们之间的关系构成,其中包括:需要什么对象、对象相互发送什么消息、什么角色启动消息以及消息按什么顺序发送。,1.1,交互图,分类,交互图分为两种:顺序图和协作图,顺序图强调消息发送的时间顺序,协作图则强调接收和发送消息的对象的组织结构,顺序图和协作图语义等价,顺序图和协作图在语义上是等价的,共享相同的基本模型,两个图都可以表示另一个图所不能表示的某些东西,顺序图和协作图可以实现两者之间的等价转换,而不丢失任何信息,1,基本概念,1,基本概念,1.2,对象,对象是类的实例,具有特定的属性和操作。在交互图中,属性展示了对象的信息和状态,操作展示了对象的行为和功能。,1,基本概念,1.3,消息,消息是从一个对象到另一个或者几个其他对象的信息传递,简单地说,消息就是对象与对象、参与者与参与者,或者对象与参与者之间的某种通信方式。,消息可以是一个信号或一次操作调用,收到消息即为事件。可以有两种消息,一种是从发送者向接收者发送信号,另一种是由调用者调用接收者的操作,对象之间的协作通过相互发送消息实现。,2,顺序图,顺序图是描述消息时间顺序的交互图。在图形上,顺序图是一张表,其中显示的对象沿横轴排列,从左到右分布在图的顶部;而消息则沿纵轴按时间顺序排序。创建顺序图时,以能够使图尽量简洁为依据布局。,2,顺序图,2.1,顺序图中的要素,顺序图包含的内容,1,)对象,2,)对象生命线,3,)消息,4,)控制焦点,对象、对象生命线和控制焦点,表示方法,对象向下方垂直伸展的虚线称为该对象的生命线,表示该对象存在的时间长度,大“,X”,标记表明生命的结束,在生命线上的窄矩形条称为控制焦点,控制焦点表示该对象正在执行某个操作。窄矩形的长度表示操作的持续时间。,2,顺序图,2.1,顺序图中的要素,消息的表示方法,用消息线(消息图标)表示。一个对象到另一个对象的消息用跨越对象生命线的一条消息线表示出来,包括反身消息。,三种表示消息的方法,消息线本身,消息线加消息编号,消息线加消息编号加消息名,2,顺序图,2.1,顺序图中的要素,消息的分类,UML,的消息分为:,简单(,simple,),同步(,synchronous,),异步(,asynchronous,),Rose,的消息分类,7,种类型,见消息规范,2,顺序图,2.2,创建顺序图,创建方法,单击,Browse Interaction Diagram,,弹出,Select Interaction Diagram,对话框;,在对话框左边选择预建立顺序图的包,单击,OK,。弹出,New Interaction Diagram,对话框;,在,Title,字段输入新框图的名字,单击,diagram type,中的,Sequence,,单击,OK,;,2,顺序图,2.3,在顺序图中添加脚本,目的,对消息增加说明,移动顺序图中的消息时,相应的脚本也将随之移动到新的位置,要避免在框图中放入太多的逻辑条件,以保持框图的简洁性,添加方法,选择工具箱中的文本图标;,单击框图中要放入脚本的位置,通常将脚本放在框图的左边;,在文本框中键入脚本文本;,选中脚本文本框,按下,shift,键后选中脚本所描述的消息;,选择,Edit Attach Script,。,撤销方法,选择脚本和消息中的任意一项;,选择,Edit Detach Script,。,2,顺序图,2.4,顺序图的删除,方法步骤,右键单击浏览器中的顺序框图名;,在快捷菜单中选择“,Delete”,。,2,顺序图,2.5,顺序图工具箱,12,种常见工具按钮,可以定制,3,协作图,协作图强调发送和接受消息的对象之间的结构组织的交互图,显示对象、对象之间的链接以及对象之间的消息,还可以显示当前模型中的简单类实例和类实体实例。,3,协作图,3.1,协作图包含的元素,对象,链,消息,3,协作图,3.2,协作图的创建和删除,创建一个新协作图的步骤如下:,1,)单击,Browse Interaction Diagram,。弹出,Select Interaction Diagram,对话框;,2,)在对话框左边选择预建立协作图的包,单击,OK,。弹出,New Interaction Diagram,对话框;,3,)在,Title,字段输入新框图的名字,单击,diagram type,中的,Collaboration,,单击,OK,按钮。,删除一个协作图的步骤如下:,1,)右键单击浏览器中的协作框图名;,2,)在快捷菜单中选择“,Delete”,。,3,协作图,3.4,协作图工具箱,13,种常见工具,可以定制,4,顺序图和协作图共有的元素,4.1,对象,表示方法,Object,指明对象,,Class,定义,Object,的类型,如果对象已经映射到类,用户便可以在,Rose,中选择性的显示对象名、类名,可以用一个多实例图标表示类的多个实例,4,顺序图和协作图共有的元素,4.2,消息,1,)将消息加进顺序图,单击工具箱中的 按钮;,将鼠标从发送消息的对象或参与者的生命线拖动到接受消息的对象或参与者的生命线;,输入消息文本。,4,顺序图和协作图共有的元素,4.2,消息,2,)将反身消息加进顺序图,单击工具箱中的 按钮;,单击收发消息的对象生命线;,输入消息名。,4,顺序图和协作图共有的元素,4.2,消息,3,)将消息加进协作图,单击工具箱中的 按钮;,单击框图中对象间的链接;,输入消息名。,4,)删除消息,选择要删除的消息;,选择,Eddit,Delete from Model,或按,Ctrl+D,。,注意:在协作图中消息删除后,链接仍然存在于模型中,4,顺序图和协作图共有的元素,4.3,消息编号,Rose,中默认顺序图中不显示消息编号,协作图显示消息编号。顺序图中,消息根据对象生命线从上往下从,1,开始进行编号;协作图中,消息根据建立的顺序从,1,开始进行编号。删除消息时,,Rose,自动将其余消息重新编号。,4,顺序图和协作图共有的元素,4.3,消息编号,打开或关闭消息编号:,选择,Tools Options,;,选择,Diagram,标签;,复选或取消,Collaboration Numbering,或者,Sequence Numbering,。,4,顺序图和协作图共有的元素,4.4,为消息分配操作,要给消息分配操作:,双击框图中的消息图标;,从弹出的列表中选择一个操作。或者单击,定义一个新操作。,改变消息指定的操作:,双击框图中的消息;,在消息规范窗口“,Name”,字段列表框中选择新的操作名。,5,对象规范与应用,5.1,对象规范,1,)映射类(,Class,),在,Class,下拉列表框中选择类名;或者,,将浏览器中的类拖动到框图中的对象上。,2,)对象持续性(,Persistence,),Persistent,:对象保存到数据库或者其他形式的永久存储体中,Static,:对象保存在内存中直到程序中止,Transient,:对象只在短时间内保存在内存中,3,)多实例(,Multiple instances,),选中该复选框之后,协作图中的对象图标将显示为多实例图标。但在顺序图中,对象图标仍然是单个对象的图标。,消息规范与应用,6.1,消息规范,1,),General,标签,Name,:消息名,Documentation,:对消息的附加说明,消息规范与应用,6.1,消息规范,2,),Detail,标签,消息同步类型(,Synchronization,),选项,Rose,图标,含义,Simply,默认值。,Synchronous,同步。客户,(发送消息的对象),发出消息后,等待供应者,(即消息接收者,或操作提供者),响应消息。客户,等供应者执行完操作之后才能继续其本身的进程,在执行操作的这段时间内,客户一直处于等待状态,直到它收到从操作提供者那里返回的消息。,Balking,阻止。客户只能在操作提供者能立即接收消息的情况下发送消息。如果操作提供者没有准备好接收消息,则客户将放弃该消息。,Timeout,超时。客户发出消息并指定等待时间,如果供应者不能在指定时间内处理消息,则客户将放弃该消息。,Asynchronous,异步。客户发出消息后,不等待消息是否接收,,无需等待供应者的应答,可以直接继续自身的操作。,Procedure Call,过程调用。客户发出消息,等待处理消息的整个嵌套顺序完成之后才能继续。,Return,返回。从过程调用返回。返回箭头可以省略,因为这种消息隐式地表示一个活动的结束。,消息规范与应用,6.1,消息规范,1,),General,标签,Name,:消息名,Documentation,:对消息的附加说明,消息规范与应用,6.1,消息规范,1,),General,标签,Name,:消息名,Documentation,:对消息的附加说明,消息规范与应用,6.1,消息规范,1,),Detail,标签,消息频率(,Frequency,),消息频率可以让消息按规定的时间间隔发送,不定期(,Aperiodic,),:,将消息设定为不定期发送的消息、只发送一次,或者不规则时间间隔发送,定期(,Periodic,),:,将消息设定为定期发送的消息,7,消息编号,消息编号用来表示一个消息的时间顺序,通过消息的顺序编号可以更清楚地看出各消息之间的时间顺序以及相互之间的关系。,在交互图中可以选择显示消息编号。在顺序图中,消息可以按两种方式编号:,Top-Level,(顶级编号)方式,如,1,、,2,、,3,;或者,Hierarchical,(等级编号)方式,如,1.1,、,1.1.2,、,1.1.3,。在协作图中,消息只能采用,Top-Level,编号,但如果协作图是由顺序图转换而来,图中也可以使用,Hierarchical,编号。,7,消息编号,7.1 Top-Level,编号,定义,顶级编号。编号由,1,开始,后续消息的编号单调递增,消息编号只有一个单一的数字,没有数字子集。,举例,如用户设定了编号为,1.,,,1.1.,,,1.2.,和,1.2.1.,的消息,在顶级编号时将被编号为,1,,,2,,,3,和,4,一般用于对象和消息很少的顺序图中,要对消息进行顶级编号:,单击,Tools Options,;,单击,Diagram,标签;,选中,Sequence Numbering,复选框。,7,消息编号,7.2 Hierarchical,编号,定义,即等级编号,,Hierarchical,编号使用带小数点的号码,方便显示消息嵌套。,举例,如,1,表示第一个消息,,1.1,表示嵌套在消息中的第一个消息,,1.2,表示嵌套在消息中的第二个消息。注意:如果删除消息,1,,则嵌套在消息,1,中的其他消息也将同时被删除。,要对消息进行等级编号:,选择,Tools Options,;,单击,Diagram,标签;,同时选中,Sequence Numbering,和,Hierarchical Messages,复选框。,7,消息编号,7.2 Hierarchical,编号,8,协作图特有的要素,链,8.1,链的定义,链是关联的实例,当一个类与另一个类之间有关联时,这两个类的实例之间就有链,一个对象就能向另一个对象发送消息。所以链是对象间的发送消息的路径。,要在协作图中增加消息,必须先建立对象之间的链接。,链接一般建立在两个对象或者两个类实例之间,也可以建立反身链接。,8,
展开阅读全文