第8讲-时序图ppt课件.ppt
《第8讲-时序图ppt课件.ppt》由会员分享,可在线阅读,更多相关《第8讲-时序图ppt课件.ppt(96页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第7章章 时序图时序图n n系统或对象的动态模型主要包括系统或对象的动态模型主要包括状态模型状态模型和和交互模型交互模型。n n状态模型状态模型用来描述系统或对象的动态行为,用来描述系统或对象的动态行为,用状态图和活动图进行描述,因此用状态图和活动图进行描述,因此状态图状态图和和活动图活动图又统称为又统称为行为图行为图;n n交互模型交互模型主要用来帮助人们观察和分析系统主要用来帮助人们观察和分析系统的交互行为,用时序图和协作图进行描述,的交互行为,用时序图和协作图进行描述,因此因此时序图时序图和和协作图协作图又统称为又统称为交互图(交互图(Interaction diagram)。7.1
2、交互图交互图n n时序图和协作图时序图和协作图时序图和协作图时序图和协作图从不同的角度描述了为完成某种系统功能,从不同的角度描述了为完成某种系统功能,从不同的角度描述了为完成某种系统功能,从不同的角度描述了为完成某种系统功能,系统中各对象间的交互与协作,可以有效地帮助人们观察系统中各对象间的交互与协作,可以有效地帮助人们观察系统中各对象间的交互与协作,可以有效地帮助人们观察系统中各对象间的交互与协作,可以有效地帮助人们观察和理解系统的动态行为。和理解系统的动态行为。和理解系统的动态行为。和理解系统的动态行为。n通常用来描述一个用例的行为,实现一个用例,完成对系通常用来描述一个用例的行为,实现一
3、个用例,完成对系统的动态行为建模;统的动态行为建模;n n时序图时序图时序图时序图主要用来描述对象之间信息交换时的时间顺序。主要用来描述对象之间信息交换时的时间顺序。主要用来描述对象之间信息交换时的时间顺序。主要用来描述对象之间信息交换时的时间顺序。n n而而而而协作图协作图协作图协作图则用来描述系统对象之间如何协作共同完成系统则用来描述系统对象之间如何协作共同完成系统则用来描述系统对象之间如何协作共同完成系统则用来描述系统对象之间如何协作共同完成系统功能要求,它们相互补充,并可以相互转化。功能要求,它们相互补充,并可以相互转化。功能要求,它们相互补充,并可以相互转化。功能要求,它们相互补充,
4、并可以相互转化。n顺序图顺序图面向时间描述对象交互的图面向时间描述对象交互的图n协作图协作图对象间消息的结构化视图对象间消息的结构化视图7.2 时序图时序图n按照时间顺序显式对象之间交互的图按照时间顺序显式对象之间交互的图n n时序图(时序图(时序图(时序图(Sequence DiagramSequence Diagram)在一些参考书中也被在一些参考书中也被称为称为顺序图顺序图,是一种详细地表示对象之间行为交互关,是一种详细地表示对象之间行为交互关系的图系的图n按时间顺序把各个对象所执行的操作以及它们之间所按时间顺序把各个对象所执行的操作以及它们之间所传送的消息展现出来传送的消息展现出来n可
5、以清晰而直观的表示对象之间的行为交互关系以及可以清晰而直观的表示对象之间的行为交互关系以及操作和消息的时序关系。操作和消息的时序关系。n时序图时序图的主要用途之一是用来为某个用例的的主要用途之一是用来为某个用例的泛化功能提供其所缺乏的解释,即把用例表泛化功能提供其所缺乏的解释,即把用例表达的要求转化为更进一步的精细表达。达的要求转化为更进一步的精细表达。n用例用例常常被细化为一个或多个时序图。常常被细化为一个或多个时序图。n时序图除了在设计新系统方面的用途之外,时序图除了在设计新系统方面的用途之外,它还能用来记录一个存在系统的对象现在它还能用来记录一个存在系统的对象现在如如何交互何交互。n登录
6、登录u (1 1)用户将用户名和密码提交给用户将用户名和密码提交给LoginActionLoginActionu (2 2)由由LoginActionLoginAction调用调用UserManagerUserManageru (3 3)UserManagerUserManager到用户数据库到用户数据库User ServerUser Server中查找用户中查找用户对象并返回对象并返回u (4 4)由由UserManagerUserManager判断用户名是否为空、密码是否正确判断用户名是否为空、密码是否正确u (5 5)然后将然后将UserUser对象返回对象返回u (6 6)返回后台登录
7、主界面。返回后台登录主界面。例子例子例子例子n时序图的最大特点是:时序图的最大特点是:它以二维的平面上的一维来它以二维的平面上的一维来表示时间进度,在时间维上展开了一组相互协作的表示时间进度,在时间维上展开了一组相互协作的对象在完成某项功能时所发生的行为与事件对象在完成某项功能时所发生的行为与事件n各个对象所执行的操作以及它们之间所传送的消息,各个对象所执行的操作以及它们之间所传送的消息,从而能够在逻辑上清晰的刻画这些操作和消息的从而能够在逻辑上清晰的刻画这些操作和消息的时时序关系乃至因果关系序关系乃至因果关系。n时序图提供了对象所执行的操作以及对象之间传送时序图提供了对象所执行的操作以及对象
8、之间传送的消息的消息随时间推移随时间推移的、清晰的和可视化的轨迹。的、清晰的和可视化的轨迹。简单时序图简单时序图 7.2.1 时序图的组成时序图的组成UML顺序图与用例图和类图的关系顺序图与用例图和类图的关系7.2.1 顺序图的组成顺序图的组成n活动者(活动者(actor)或者)或者 对象(对象(object)n生命线(生命线(lifeline)n激活激活(activation)/控制焦点(控制焦点(focus of control)n消息(消息(message)n当执行一个用例行为时,顺序图中的每条消息对当执行一个用例行为时,顺序图中的每条消息对应了一个应了一个类操作类操作或状态机中引起转换
9、的事件。或状态机中引起转换的事件。UML-14-消息消息:向哪个对象发消息实际上就是调用它的类中的操作,就是向哪个对象发消息实际上就是调用它的类中的操作,就是调用箭头指向的对象所在类的调用箭头指向的对象所在类的 一个一个operation。订单类发消息给客户类调用客户类中的订单类发消息给客户类调用客户类中的“验证客户验证客户”操操作作从参与者到对象和从参与者到对象和从对象到参与者之从对象到参与者之间发送的消息间发送的消息从对象传递给另一从对象传递给另一个对象的消息个对象的消息在类图中的在类图中的类的对象类的对象使用系统的参使用系统的参与者,这个系与者,这个系统是为某个用统是为某个用例的某个场景
10、例的某个场景设计的设计的对象生命线表对象生命线表示从上到下的示从上到下的时间顺序,消时间顺序,消息息1在消息在消息2之前之前发生,消息发生,消息2在在消息消息3之前发生之前发生窄长方框用以窄长方框用以强调这个部分强调这个部分处于活动状态处于活动状态顺序图顺序图生命线消息控制焦点对象n在在UML中,时序图用一个二维图描述系统中各个中,时序图用一个二维图描述系统中各个对象之间的交互关系。其中,对象之间的交互关系。其中,纵轴纵轴纵轴纵轴是时间轴,时是时间轴,时间沿竖线向下延伸,由上至下表示时间的先后顺间沿竖线向下延伸,由上至下表示时间的先后顺序。序。横轴横轴横轴横轴代表了参与相互作用的对象。代表了参
11、与相互作用的对象。n当对象存在时,当对象存在时,生命线生命线生命线生命线由一条虚线表示;当对象由一条虚线表示;当对象的过程处于激活状态时,生命线上用一个的过程处于激活状态时,生命线上用一个激活条激活条激活条激活条表示。表示。消息消息消息消息用从一个对象到另一个对象生命线的用从一个对象到另一个对象生命线的箭头表示,箭头一时间顺序从上到下排列。箭头表示,箭头一时间顺序从上到下排列。7.2.2 活动者或对象活动者或对象n活动者和对象按照从左到右的顺序排列活动者和对象按照从左到右的顺序排列n一般最多两个活动者,他们分列两端。启动一般最多两个活动者,他们分列两端。启动这个用例的活动者往往排在最左边;接收
12、消这个用例的活动者往往排在最左边;接收消息的活动者则排在最右端;息的活动者则排在最右端;n对象从左到右按照重要性排列或按照消息先对象从左到右按照重要性排列或按照消息先后顺序排列。后顺序排列。7.2.2 活动者或对象活动者或对象n对象的命名方式有三种:对象的命名方式有三种:包括对象名和类名包括对象名和类名类名(匿名对象)类名(匿名对象)对象名(不关心类)对象名(不关心类)7.2.3 生命线生命线n生命线(生命线(Lifeline):):每个对象都有自己的生命线,用来表示在该用例中一个对每个对象都有自己的生命线,用来表示在该用例中一个对象在一段时间内的存在象在一段时间内的存在垂直的虚线垂直的虚线如
13、果对象生命期结束,则用注销符号表示如果对象生命期结束,则用注销符号表示对象默认的位置在图顶部,表示对象在交互之前已经存在对象默认的位置在图顶部,表示对象在交互之前已经存在如果是在交互过程中由另外的对象所创建,则位于图的中如果是在交互过程中由另外的对象所创建,则位于图的中间某处。间某处。7.2.4 激活期激活期n当一条消息被传递给对象的时候,它会触发该对当一条消息被传递给对象的时候,它会触发该对象的某个行为,这时就说该对象被激活了。象的某个行为,这时就说该对象被激活了。n在在UML中,激活用一个在生命线上的细长矩形框中,激活用一个在生命线上的细长矩形框表示。表示。n矩形本身被称为对象的矩形本身被
14、称为对象的激活期激活期或或控制期控制期,对象就,对象就是在激活期顶端被激活的。是在激活期顶端被激活的。n激活期说明对象正在执行某个动作。当动作完成激活期说明对象正在执行某个动作。当动作完成后,伴随着一个消息箭头离开对象的生命线,此后,伴随着一个消息箭头离开对象的生命线,此时对象的一个激活期也宣告结束。时对象的一个激活期也宣告结束。7.2.5 消息消息n面向对象方法中,消息是对象间交互信息的主面向对象方法中,消息是对象间交互信息的主要方式。要方式。n结构化程序设计中,模块间传递信息的方式主结构化程序设计中,模块间传递信息的方式主要是过程(或函数)调用。要是过程(或函数)调用。n对象对象A向对象向
15、对象B发送消息,可以简单地理解为发送消息,可以简单地理解为对象对象A调用对象调用对象B的一个操作(的一个操作(operation)。)。7.2.5 消息消息n顺序图中,尽力保持消息的顺序是从左到顺序图中,尽力保持消息的顺序是从左到右排列的。右排列的。n一个顺序图的消息流开始于左上方,消息一个顺序图的消息流开始于左上方,消息2的位置比消息的位置比消息1低,这意味着消息低,这意味着消息2的顺序的顺序比消息比消息1要迟。因为西方的阅读习惯是从左要迟。因为西方的阅读习惯是从左到右。到右。n顺序图中消息编号可显示,也可不显示。顺序图中消息编号可显示,也可不显示。协作图中必须显示。协作图中必须显示。7.2
16、.5 消息消息n在任何一个软件系统中,对象都不是孤立存在的,在任何一个软件系统中,对象都不是孤立存在的,它们之间通过它们之间通过消息消息进行通信。进行通信。n消息是用来说明时序图中不同活动对象之间的通消息是用来说明时序图中不同活动对象之间的通信。因此,消息可以激发某个操作、创建或撤销信。因此,消息可以激发某个操作、创建或撤销某个对象。某个对象。n在时序图中,在时序图中,消息消息是由从一个对象的生命线指向是由从一个对象的生命线指向另一个对象的生命线的直线箭头来表示的,箭头另一个对象的生命线的直线箭头来表示的,箭头上面还可以表明要发送的消息名及序号。上面还可以表明要发送的消息名及序号。n在个对象之
17、间,消息的次序由它们在垂直轴上的在个对象之间,消息的次序由它们在垂直轴上的相对位置决定。相对位置决定。n当进行时序图建模时,所用到的消息主要当进行时序图建模时,所用到的消息主要包括以下几种类型:包括以下几种类型:简单消息(简单消息(Simple Message)同步消息(同步消息(Synchronous Message)异步消息(异步消息(Asynchronous Message)反身消息(反身消息(Message to Self)返回消息(返回消息(Return Message)简单消息(简单消息(Simple Message)n简单消息是在简单消息是在同步同步和和异步异步之间没有区别的之间
18、没有区别的消息。消息。n使用简单消息是因为有时消息是同步还是使用简单消息是因为有时消息是同步还是异步无关紧要,或者在不知道消息的类型异步无关紧要,或者在不知道消息的类型的情况下就需要用到简单消息。的情况下就需要用到简单消息。n在对系统进行时序图建模时,可以对所有在对系统进行时序图建模时,可以对所有的消息都使用的消息都使用简单消息简单消息进行表示,然后再进行表示,然后再根据情况确定消息的类型。根据情况确定消息的类型。同步消息同步消息(Synchronous Message)n同步消息同步消息最常见的情况是调用,即消息发送最常见的情况是调用,即消息发送者对象在它的一个操作执行时调用接收者者对象在它
19、的一个操作执行时调用接收者对象的一个操作,对象的一个操作,此时消息名称通常就是此时消息名称通常就是被调用的操作名称。被调用的操作名称。n当消息被处理完后,可以回送一个简单消息,当消息被处理完后,可以回送一个简单消息,或者是或者是隐含隐含的返回。的返回。异步消息异步消息(Asynchronous Message)n异步消息表示发送消息的对象不用等待回应异步消息表示发送消息的对象不用等待回应的返回消息,即可开始另一个活动。的返回消息,即可开始另一个活动。n异步消息在某种程度上异步消息在某种程度上规定了发送方和接收规定了发送方和接收方的责任方的责任,即,即发送方发送方只负责将消息发送到只负责将消息发
20、送到接收方,至于接收方如何响应,发送方则接收方,至于接收方如何响应,发送方则不需要知道。对不需要知道。对接收方接收方来说,在接收到消来说,在接收到消息后它既可以对消息进行处理,也可以什息后它既可以对消息进行处理,也可以什么都不做。么都不做。反身消息(反身消息(Message to Self)n时序图建模过程中,一个对象也可以将一个时序图建模过程中,一个对象也可以将一个消息发送给它自己,这就是反身消息。消息发送给它自己,这就是反身消息。n如果一条消息只能作为反身消息,那么说明如果一条消息只能作为反身消息,那么说明该操作只能由对象自身的行为触发。该操作只能由对象自身的行为触发。n这表明该操作可以被
21、设置为这表明该操作可以被设置为private属性,属性,只有属于同一个类的对象才能够调用它。只有属于同一个类的对象才能够调用它。n在这种情况下,应该对时序图进行彻底的检在这种情况下,应该对时序图进行彻底的检查,以确定该操作不需要被其他对象直接查,以确定该操作不需要被其他对象直接调用。调用。返回消息(返回消息(Return Message)n返回消息是时序图的一个可选择部分,它返回消息是时序图的一个可选择部分,它表示控制流从过程调用的返回。表示控制流从过程调用的返回。n返回消息一般可以缺省,隐含表示每一个返回消息一般可以缺省,隐含表示每一个调用都有一个配对的调用返回。调用都有一个配对的调用返回。
22、n是否使用返回消息依赖于建模的具体是否使用返回消息依赖于建模的具体/抽抽象程度。如果需要较好的具体化,返回消象程度。如果需要较好的具体化,返回消息是有用的;否则,主动消息就足够了。息是有用的;否则,主动消息就足够了。7.2.5 消息消息nRose新增消息新增消息阻止(阻止(Balking)n接收者如果无法立即接收消息,则发送者放弃该消息接收者如果无法立即接收消息,则发送者放弃该消息超时(超时(Time-out)n如果接收者无法在指定的时间内接收消息,则发送者放如果接收者无法在指定的时间内接收消息,则发送者放弃该消息弃该消息nQ:这两种消息可以看做是同步:这两种消息可以看做是同步or异步消息?异
23、步消息?5.消息中的参数和序号 n时序图中的消息除了具有消息名称之外还可以包时序图中的消息除了具有消息名称之外还可以包含许多附加的信息。含许多附加的信息。n消息可以与类中的操作等效,即消息可以带有可消息可以与类中的操作等效,即消息可以带有可传递到被调用对象的参数列表,并且最多包含一传递到被调用对象的参数列表,并且最多包含一个返回给调用对象的返回值。个返回给调用对象的返回值。n当时序图中的消息比较多时,还可以通过对消息当时序图中的消息比较多时,还可以通过对消息前置序号表达式的方式指定消息的顺序。前置序号表达式的方式指定消息的顺序。7.2.5 消息消息n消息内容标识的格式为:消息内容标识的格式为:
24、序号序号序号序号 监护条件监护条件监护条件监护条件*重复次数重复次数重复次数重复次数 返回值表返回值表返回值表返回值表:=:=操作名操作名操作名操作名(参数表参数表参数表参数表)例:例:2:display()简单消息简单消息1.3.1:p:=find()带返回值的嵌套消息带返回值的嵌套消息x0 4:invert(x,color)条件消息条件消息3.1*x=1.10:update()循环消息循环消息a3,b4/c2:copy(a,b)线程同步线程同步1.1a,1.1b/1.2:continue()带前缀消息带前缀消息在发送线程c的第2个消息之前,必须先发送线程a的第3个消息和线程b的第4个消息在
25、发送消息1.2之前必须已经同时发送并发消息给线程a和bn前缀前缀(predecessor)语法:消息序列号语法:消息序列号,消息序列号消息序列号,./前缀是一个用来同步线程或路径前缀是一个用来同步线程或路径(path)的表达式的表达式意思是在发送当前消息之前指定序列号的消息被处理意思是在发送当前消息之前指定序列号的消息被处理(必须连续执行必须连续执行)消息序列号之间用逗号隔开,用斜杠结束消息序列号之间用逗号隔开,用斜杠结束例如例如 1.1a,1.1b/1.2:continue(),在发送消息,在发送消息1.2之前之前必须已经同时发送并发消息给线程必须已经同时发送并发消息给线程a和和bn守卫条件
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 时序 ppt 课件
限制150内