《顺序图和协作图.ppt》由会员分享,可在线阅读,更多相关《顺序图和协作图.ppt(74页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、顺序图和协作图顺序图和协作图交互图概述交互图概述交互图交互图(interaction diagram)是用来描述对象之间以是用来描述对象之间以及对象与参与者之间的动态协作关系以及协作过程中及对象与参与者之间的动态协作关系以及协作过程中行为次序的图形文档行为次序的图形文档.交互图通常用于描述一个用例的行为交互图通常用于描述一个用例的行为,显示该用例中所显示该用例中所涉及的对象及对象之间消息传递情况涉及的对象及对象之间消息传递情况.交互图包括交互图包括:(1)顺序图顺序图(sequence diagram),描述对象按照时间顺描述对象按照时间顺序的消息交换序的消息交换;(2)协作图协作图(coll
2、aboration diagram),描述系统成分如描述系统成分如何协同工作何协同工作.顺序图顺序图1.顺序图顺序图 顺序图也称为顺序图也称为时序图时序图,它描述了系统中对象间通过消息进行的,它描述了系统中对象间通过消息进行的交互,它强调了消息在时间轴上的先后顺序。交互,它强调了消息在时间轴上的先后顺序。2.顺序图的作用顺序图的作用 顺序图常用来描述用例的实现,它表明了由哪些对象,通过消顺序图常用来描述用例的实现,它表明了由哪些对象,通过消息相互协作来实现用例的功能,在顺序图中,标识了消息发息相互协作来实现用例的功能,在顺序图中,标识了消息发生交互的先后顺序。生交互的先后顺序。赤壁之战的顺序图
3、赤壁之战的顺序图顺序图的组成元素顺序图的组成元素l参与者(参与者(actor)或者)或者 对象(对象(object)l生命线(生命线(lifeline)l激活期激活期(activation)/控制焦点(控制焦点(focus of control)l消息(消息(message)时间维时间维对象维对象维对象对象/参与者参与者生命线生命线控制焦点控制焦点消息消息参与者或对象参与者或对象l参与者和对象按照从左到右的顺序排列;参与者和对象按照从左到右的顺序排列;l一般最多两个参与者,他们分列两端。启动这个用一般最多两个参与者,他们分列两端。启动这个用例的参与者往往排在最左边,接收消息的参与者则例的参与者
4、往往排在最左边,接收消息的参与者则排在最右端;排在最右端;l对象从左到右按照重要性排列或按照消息先后顺序对象从左到右按照重要性排列或按照消息先后顺序排列;排列;l将对象置于顺序图的顶部意味着在交互开始的时候将对象置于顺序图的顶部意味着在交互开始的时候对象就已经存在了,如果对象的位置不在顶部,那对象就已经存在了,如果对象的位置不在顶部,那么表示对象是在交互的过程中被创建的。么表示对象是在交互的过程中被创建的。对象的命名方式有三种:对象的命名方式有三种:包括对象名和类名包括对象名和类名类名(匿名对象)类名(匿名对象)对象名(不关心类)对象名(不关心类)生命线(生命线(Lifeline)每个对象都有
5、自己的生命线,用来表示在该用例中一每个对象都有自己的生命线,用来表示在该用例中一个对象在一段时间内的存在个对象在一段时间内的存在垂直的虚线垂直的虚线如果对象生命期结束,则用注销符号表示如果对象生命期结束,则用注销符号表示消亡点消亡点激活期激活期(activation)/控制焦点(控制焦点(focus of control)对象在一段时间内获得了焦点,也称激活期对象在一段时间内获得了焦点,也称激活期对象执行某个动作的时期对象执行某个动作的时期空心矩形条空心矩形条激活期的长短意味着对象执行某个动作的时间有多长,可激活期的长短意味着对象执行某个动作的时间有多长,可以通过约束以通过约束10ms来限制执
6、行时间的长短。来限制执行时间的长短。顺序图中的消息顺序图中的消息面向对象方法中,消息是对象间交互信息的主要方式。面向对象方法中,消息是对象间交互信息的主要方式。结构化程序设计中,模块间传递信息的方式主要是过结构化程序设计中,模块间传递信息的方式主要是过程(或函数)调用。程(或函数)调用。对象对象A向对象向对象B发送消息,可以简单地理解为对象发送消息,可以简单地理解为对象A调调用对象用对象B的一个操作(的一个操作(operation)。)。l顺序图中,尽力保持消息的顺序是从左到右排列的。顺序图中,尽力保持消息的顺序是从左到右排列的。l一个顺序图的消息流开始于左上方,消息一个顺序图的消息流开始于左
7、上方,消息2的位置比的位置比消息消息1低,这意味着消息低,这意味着消息2的顺序比消息的顺序比消息1要迟。要迟。l顺序图中消息编号可显示,也可不显示。顺序图中消息编号可显示,也可不显示。UML1.4后定义的消息有:后定义的消息有:调用消息调用消息 procedure call异步消息异步消息 asynchronous返回消息返回消息 returnUML1.3前的消息还有:前的消息还有:简单消息简单消息 simpleRose扩充的消息扩充的消息阻止消息阻止消息 balking超时消息超时消息 time-out调用消息:消息的发送者把控制传递给消息的接收者调用消息:消息的发送者把控制传递给消息的接收
8、者,等待接收者返回或放弃控制,可以表示同步。等待接收者返回或放弃控制,可以表示同步。实心箭头符号实心箭头符号调用消息必有一个与之配对的返回消息调用消息必有一个与之配对的返回消息,但是可以不用但是可以不用画出画出.异步消息:消息的发送者把控制传递给消息的接收者异步消息:消息的发送者把控制传递给消息的接收者,然后继续自己的工作然后继续自己的工作,不等待接收者返回或放弃控制不等待接收者返回或放弃控制.UML1.4及以后及以后UML1.3及以前及以前返回消息(返回消息(Return):):n表示消息的返回。消息上方放置返回值表示消息的返回。消息上方放置返回值n同步消息的返回可以画出(如果想明确表达返回
9、值),同步消息的返回可以画出(如果想明确表达返回值),也可以不画出,直接隐含。也可以不画出,直接隐含。n异步消息可以有返回,也可以没有。(可以响应异步异步消息可以有返回,也可以没有。(可以响应异步消息,也可以不响应该异步消息。)消息,也可以不响应该异步消息。)n虚线箭头表示,和依赖关系不要混淆虚线箭头表示,和依赖关系不要混淆阻止消息:消息的发送者传递消息给接收者阻止消息:消息的发送者传递消息给接收者,如果接收如果接收者无法立即接收者无法立即接收,则发送者放弃该消息则发送者放弃该消息.超时消息:消息的发送者发出消息给接收者并按指定超时消息:消息的发送者发出消息给接收者并按指定时间等待时间等待,若
10、接收者无法在指定时间内接收若接收者无法在指定时间内接收,则发送者则发送者放弃该消息放弃该消息.自调用(自调用(Self Call)某对象自己调用自己的操作某对象自己调用自己的操作嵌套的矩形条嵌套的矩形条消息的语法格式消息的语法格式前置消息列表前置消息列表警戒条件警戒条件消息顺序表达式消息顺序表达式返回值返回值:=消息名称消息名称(参数列表参数列表)前置消息列表前置消息列表(predecessor)语法:消息序列号语法:消息序列号,消息序列号消息序列号,./前置消息列表是一个用来同步线程或路径前置消息列表是一个用来同步线程或路径(path)的表达式的表达式意思是在发送当前消息之前指定序列号的消息
11、被处理意思是在发送当前消息之前指定序列号的消息被处理(必须必须连续执行连续执行)消息序列号之间用逗号隔开,用斜杠结束消息序列号之间用逗号隔开,用斜杠结束例如例如 1.1a,1.1b/1.2:continue(),在发送消息,在发送消息1.2之前必之前必须已经同时发送并发消息给线程须已经同时发送并发消息给线程a和和b警戒条件警戒条件(guard-condition)语法语法:条件短语条件短语 条件短语通常用伪代码或真正的程序语言来表示,条件短语通常用伪代码或真正的程序语言来表示,UML并并不规定其语法不规定其语法例如,例如,x0 4:invert(x,color)消息顺序表达式消息顺序表达式(s
12、equence-expression)语法语法 integer|name recurrence:integer为指定消息顺序的序列号,消息为指定消息顺序的序列号,消息1是消息序列的开是消息序列的开始消息,始消息,1.1是消息是消息1的处理过程中的第一条嵌套的消息,的处理过程中的第一条嵌套的消息,消息消息1.2是消息是消息1的处理过程中的第二条嵌套的消息,一的处理过程中的第二条嵌套的消息,一个消息序列的例子如个消息序列的例子如1,1.1,1.2,1.2.1,1.2.2,1.3,等。这等。这样的序列号不仅能够表示消息的顺序而且还能表示消息样的序列号不仅能够表示消息的顺序而且还能表示消息的嵌套关系的
13、嵌套关系(当消息是异步消息时消息为嵌套的操作调用当消息是异步消息时消息为嵌套的操作调用及返回及返回)name表示并发控制线程,例如表示并发控制线程,例如1.2a和和1.2b为同时发送的为同时发送的并发消息并发消息消息编号:消息编号:按消息产生的先后顺序,给消息编号,有两种编号方按消息产生的先后顺序,给消息编号,有两种编号方案,一种是顺序编号,另一种是嵌套编号案,一种是顺序编号,另一种是嵌套编号(1)顺序编号顺序编号 整个消息的传递过程就形成了一个完整的序列,因此通过在整个消息的传递过程就形成了一个完整的序列,因此通过在每个消息的前面加上一个用冒号隔开的顺序号每个消息的前面加上一个用冒号隔开的顺
14、序号(按照消息的先按照消息的先后顺序,从后顺序,从1开始对消息编号开始对消息编号)来表示其顺序。来表示其顺序。(2)嵌套编号嵌套编号 由于顺序图本身已经充分表现出消息执行的顺序,因此在由于顺序图本身已经充分表现出消息执行的顺序,因此在UML模型中并没有要求对消息进行编号。只是要求在协作图模型中并没有要求对消息进行编号。只是要求在协作图中,对消息进行了编号。但在中,对消息进行了编号。但在Rose等建模工具中,为了能等建模工具中,为了能够自动实现顺序图与协作图的转换,在顺序图中也默认采取够自动实现顺序图与协作图的转换,在顺序图中也默认采取嵌套编号方案。嵌套编号方案。嵌套编号嵌套编号recurren
15、ce表示一个条件或循环的执行,有两种选择表示一个条件或循环的执行,有两种选择n*循环子句循环子句 循环子句循环子句(iteration-clause)用来指定一个循环用来指定一个循环(重复执行重复执行)例如:一个包括循环的消息例如:一个包括循环的消息 1.1*x=1.10:doSomething()n 条件子句条件子句 条件子句一般用来表示分支而不是用作警戒条件条件子句一般用来表示分支而不是用作警戒条件x0,是两个可以用来分支的条件子句,这两个条件只能有一是两个可以用来分支的条件子句,这两个条件只能有一个为真,因而只有一个分支被执行个为真,因而只有一个分支被执行(即发送与分支有关的即发送与分支
16、有关的消息消息)条件子句和循环子句都可以用伪代码或真正的编程语言来条件子句和循环子句都可以用伪代码或真正的编程语言来表示表示消息顺序表达式用冒号结束消息顺序表达式用冒号结束l返回值、消息名和参数表返回值、消息名和参数表l返回值表示一个操作调用返回值表示一个操作调用(即一个消息即一个消息)的结果的结果消息的语法格式消息的语法格式前置消息列表前置消息列表警戒条件警戒条件消息顺序表达式消息顺序表达式返回值返回值:=消息名称消息名称(参数列表参数列表)例:例:2:display()1.3.1:p:=find()xCreate collaboration Diagram;或者直接按下或者直接按下F5键键浏览协作图并调整图中模型元素的位置。浏览协作图并调整图中模型元素的位置。2.从协作图转换成顺序图从协作图转换成顺序图打开要转换的协作图打开要转换的协作图选择选择Browse-Create sequence Diagram;或者直接按下或者直接按下F5键键浏览顺序图并调整图中模型元素的位置。浏览顺序图并调整图中模型元素的位置。作业作业1 1、简述消息的、简述消息的5 5种类型。种类型。2 2、简述创建顺序图的步骤。、简述创建顺序图的步骤。3 3、分析顺序图与协作图的异同点。、分析顺序图与协作图的异同点。