时序图和协作图_第1页
时序图和协作图_第2页
时序图和协作图_第3页
时序图和协作图_第4页
时序图和协作图_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第7章 时序图,系统或对象的动态模型主要包括状态模型和交互模型。 状态模型用来描述系统或对象的动态行为,用状态图和活动图进行描述,因此状态图和活动图又统称为行为图; 交互模型主要用来帮助人们观察和分析系统的交互行为,用时序图和协作图进行描述,因此时序图和协作图又统称为交互图。,7.1 概述,时序图(Sequence Diagram)也被称为顺序图,是一种详细地表示对象之间行为交互关系的图,主要用来描述对象之间信息交换时的时间顺序。因此可以清晰而直观的表示对象之间的行为交互关系以及操作和消息的时序关系。,时序图的主要用途把用例表达的要求转化为更进一步的精细表达。它还能用来记录一个存在系统的对象现

2、在如何交互。 用例常常可被细化为一个或多个时序图。,时序图的最大特点是:它以二维的平面上的一维来表示时间进度,在时间维上定义各个对象所执行的操作以及它们之间所传送的消息。从而能够在逻辑上清晰的刻画这些操作和消息的时序关系乃至因果关系。,简单时序图,7.2 时序图元素及表示法,在UML中,时序图用一个二维图描述系统中各个对象之间的交互关系。其中,纵轴是时间轴,时间沿竖线向下延伸,由上至下表示时间的先后顺序。横轴代表了参与相互作用的对象。 当对象存在时,生命线由一条虚线表示;当对象的过程处于激活状态时,生命线上用一个激活条表示。消息用从一个对象到另一个对象生命线的箭头表示,箭头以时间顺序从上到下排

3、列。,7.2 时序图元素及表示法,时序图有4种基本图形元素,包括: 对象(object) 生命线(lifeline) 激活(activation) 消息(message),1. 对象,时序图中的对象在概念上和它在对象图中的定义是一致的,其图形表示也相同。 每个对象显示在单独的列里,用一个矩形框代表一个对象,框内填写对象名和它所属的类名,中间用一个冒号隔开。,2.生命线,生命线是对象标识符在垂直方向上拖出的一条长虚线,表示时序图中的对象在一段时间内的存在。 每个对象的底部中心的位置都带有生命线。 生命线是一条时间线,从时序图的顶部一直延伸到底部,所用的时间取决于交互的持续时间。,3.激活,当一条

4、消息被传递给对象的时候,它会触发该对象的某个行为,激活了该对象。 在UML中,激活用一个在生命线上的细长矩形框表示。 矩形本身被称为对象的激活期或控制期,对象就是在激活期顶端被激活的。 激活期说明对象正在执行某个动作。当动作完成后,此时对象的一个激活期也宣告结束。,4.消息,消息是用来说明时序图中不同活动对象之间的通信。 在时序图中,消息是由从一个对象的生命线指向另一个对象的生命线的直线箭头来表示的,箭头上面还可以表明要发送的消息名及序号。 在各个对象之间消息的次序由它们在垂直轴上的时间顺序决定。,激活的应用,激活示例,当进行时序图建模时,所用到的消息主要包括以下几种类型: 简单消息(Simp

5、le Message) 同步消息(Synchronous Message) 异步消息(Asynchronous Message) 反身消息(Message to Self) 返回消息(Return Message),(1)简单消息(Simple Message),简单消息是在同步和异步之间没有区别的消息。 在不知道消息的类型的情况下就可以使用简单消息。 在对系统进行时序图建模时,可以对所有的消息都使用简单消息进行表示,然后再根据情况确定消息的类型。,(2)同步消息(Synchronous Message),同步消息最常见的情况是调用,即消息发送者(对象)在它的一个操作执行时调用接收者(对象)的

6、一个操作,此时消息名称通常就是被调用的操作名称。 当消息被处理完后,可以送回一个简单消息,或者是隐含的返回。,(3)异步消息(Asynchronous Message),异步消息表示发送消息的对象不用等待回应的返回消息,即可开始另一个活动。 异步消息就是发送方只负责将消息发送到接收方,至于接收方如何响应,发送方则不需要知道。对接收方来说,在接收到消息后它既可以对消息进行处理,也可以什么都不做。,(4)反身消息(Message to Self),反身消息是一个对象将一个消息发送给它自己的消息。 如果一条消息只能作为反身消息,那么说明该操作只能由对象自身的行为触发。 这表明该操作可以被设置为pri

7、vate属性,只有属于同一个类的对象才能够调用它。,(5)返回消息(Return Message),返回消息是表示控制流从过程调用后,处理结果返回信息。 返回消息一般可以缺省,隐含表示每一个调用都有一个配对的调用返回。,5.消息中的参数和序号,时序图中的消息除了具有消息名称之外还可以包含许多附加的信息。 消息可以与类中的操作等效,即消息可以带有可传递到被调用对象的参数列表,并且最多包含一个返回给调用对象的返回值。 当时序图中的消息比较多时,还可以通过对消息前置序号表达式的方式指定消息的顺序。 消息内容标识的格式为: 序号监护条件*重复次数返回值表:=操作名(参数表),表示消息在对象间交互的时间

8、顺序号。一般用正整数1、2、3表示。嵌套消息用十进制数1.1、1.2、2.1、2.2表示。序号在时序图中是可以默认的,但在协作图中是必不可少的。,可选项,以布尔表达式形式表示。满足监护条件时才能发送消息。监护条件默认时,表示消息无条件发送。,可选项,表示消息重复发送的次数。只有“*”号,无重复次数时,表示消息多次发送,次数未定。此项默认时,表示只发送一次。,以“,”区分的名称列表,分别表示完成指定操作后返回的系列值。可默认。,接收该消息的对象类角色中的操作名。,参数表是以“,”区分的实参表,实参的个数、次序、类型必须与该操作的形参一致。,6.对象的创建和撤销,对象的创建有几种情况: 时序图中的

9、对象的默认位置是在图的顶部,如果对象在这个位置上,那么说明在发送消息时,该对象就已经存在了; 如果对象是在执行的过程中创建的,那么它的位置应该处在图的中间部分。,对象的创建有两种方法:,在新创建的对象时,都可以发送“destroy”消息来撤销新创建对象。 要想说明某个对象被撤销,需要在被撤销对象的生命线末端放一个“”符号进行标识。,7.3 时序图建模,对系统动态行为建模的过程中,当强调按时间展开信息的传送时,一般使用时序图建模技术。 一个单独的时序图只能显示一个控制流。,使用时序图建模时,可以参考以下策略: 设置交互的语境,这些语境可以是系统、子系统、类、用例和协作的一个脚本。 识别对象在交互

10、语境中所扮演的角色,根据对象的重要性及相互关系,将其从左至右放置在时序图的顶部。 设置每个对象的生命线。通常情况下,对象存在于整个交互过程中,但它们也可以在交互过程中创建和撤销。,标明消息。从引发某个消息开始,在生命线之间画出从顶到底依次展开的消息,显示每个消息的内容标识。 设置对象的激活期,可视化消息的嵌套或可视化实际计算发生时的时间点。 如果需要设置时间或空间的约束,可以为每个消息附上合适的时间和空间约束。 如果需要形式化的说明某控制流,可以为每个消息附上前置和后置条件。,7.4 时序图建模实例,例:图书管理系统时序图建模 1.添加借阅者 添加借阅者的过程为:系统管理员选择菜单项“添加借阅

11、者”,弹出AddBorrowerDialog对话框。系统管理员可以在该对话框中输入借阅者的信息并提交,随后系统对管理员所提交的借阅者信息进行验证,查看输入的借阅证号是否已经存在于系统中,若不存在,则为借阅者创建一个账户,并存储借阅者信息。,2.修改借阅者,3.删除借阅者 4.添加书目 5.修改书目 6.删除书目 7.添加图书 8.删除图书 9.添加管理员 ,第8章 协作图,时序图和协作图都可以用来描述系统对象之间的交互。 时序图强调一组对象之间交互的时间顺序。 协作图则是描述组成系统的各个成分之间如何协作来实现系统的交互行为。,8.1 概述,协作图(Collaboration Diagram)

12、是UML 1.x版本中的名称。在当时的认识中,认为它就是描述一个协作的,所以称之为协作图。 UML 2.0重新定义了协作的概念,并认为所谓协作图与协作概念实际上没有什么必然联系,为了避免误会,所以将它改名为通信图(Communication Diagram)。因此,在很多参考书中使用通信图而不是协作图进行说明。,时序图强调的是交互的时间顺序;而协作图强调的是交互的情况和参与交互的对象的整体组织。 从另一个角度来看,时序图按照时间顺序布局;而协作图按照空间组织布局。,简单协作图,8.2 协作图元素及表示法,构成协作图的图形元素主要有3种: 对象(object) 链接(link) 消息(messa

13、ge),1.对象,协作图中的对象与时序图中的对象类似,用一个矩形框代表一个对象,框内填写对象名和它所属的类名,中间用一个冒号隔开。 协作图中无法表示对象的创建和撤销,所以对象在协作图中的位置没有限制。,2.链接,链接是两个对象间的连接。 它的图形符号也是用一条连接在两个对象间的实线表示。在连接线上可以标明对象名。,3.消息,消息代表协作图中对象间通过链接发送的消息。 消息由一个对象发出,由消息所指的对象接收。形成消息流。 消息流上标有消息的序号和对象间发送的消息,消息的序号表明了消息发送的先后顺序。 一条消息会触发接收对象中的一项操作。,对象,消息,链接,协作图与时序图的互换(F5),协作图和

14、时序图都是表示对相间的交互作用,只是它们的侧重点有所不同。 协作图和时序图在语义上是等价的,它们可以从一种形式的图转换成另一种形式的图,而不丢失任何消息。,例:以图书管理系统中借阅图书为例: 时序图与协作图之间转换。 F5 或在Rational Rose中,在 Browse菜单下选择: Create Collaboration Diagram或 Create Sequence Diagram (1)根据时序图信息创建协作图 (2)根据协作图信息创建时序图,在使用协作图建模时,可以参考以下步骤: 设置交互的语境,这些语境可以是系统、子系统、类、用例或其脚本。 识别对象在交互语境中所扮演的角色,将这些对象以节点的形式放置在协作图中。 根据对象间的交互关系建立对象之间的链接。 从引起交互的消息开始,按消息的顺序依次将后续的消息添加在适当的链接上。 如果需要设置时间或空间的约束,可以为每个消息附上合适的时间和空间约束。 如果需要形式化的说明某控

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论