时序图和协作图
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
时序图的最大特点是:它以二维的平面上 的一维来表示时间进度,在时间维上定义 各个对象所执行的操作以及它们之间所传 送的消息。从而能够在逻辑上清晰的刻画 这些操作和消息的时序关系乃至因果关系。
简单时序图
7.2 时序图元素及表示法
在UML中,时序图用一个二维图描述系统 中各个对象之间的交互关系。其中,纵轴 是时间轴,时间沿竖线向下延伸,由上至 下表示时间的先后顺序。横轴代表了参与 相互作用的对象。 当对象存在时,生命线由一条虚线表示; 当对象的过程处于激活状态时,生命线上 用一个激活条表示。消息用从一个对象到 另一个对象生命线的箭头表示,箭头以时 间顺序从上到下排列。
时序图(Sequence Diagram)也被称为 顺序图,是一种详细地表示对象之间行为 交互关系的图,主要用来描述对象之间信 息交换时的时间顺序。因此可以清晰而直 观的表示对象之间的行为交互关系以及操 作和消息的时序关系。
时序图的主要用途把用例表达的要求转化 为更进一步的精细表达。它还能用来记录 一个存在系统的对象现在如何交互。 用例常常可被细化为一个或多个时序图。
7.2 时序图元素及表示法
时序图有4种基本图形元素,包括:
对象(object) 生命线(lifeline) 激活(activation) 消息(message)
1. 对象
时序图中的对象在概念上和它在对象图中 的定义是一致的,其图形表示也相同。 每个对象显示在单独的列里,用一个矩形 框代表一个对象,框内填写对象名和它所 属的类名,中间用一个冒号隔开。
2.链接
链接是两个对象间的连接。 它的图形符号也是用一条连接在两个对象间 的实线表示。在连接线上可以标明对象名。
3.消息
消息代表协作图中对象间通过链接发送的消 息。 消息由一个对象发出,由消息所指的对象接 收。形成消息流。 消息流上标有消息的序号和对象间发送的消 息,消息的序号表明了消息发送的先后顺序。 一条消息会触发接收对象中的一项操作。
:ManagerWindow : Administrator 1: AddBorrower()
:AddBorrowerDialog
:Borrower
2: CreateDialog()
3: AddBorrower() 4: FindBorrower() 5: NewBorrower() 6: Write()
到被调用对象的参数列表,并且最多包含一个返回给 调用对象的返回值。
当时序图中的消息比较多时,还可以通过对消息前置
序号表达式的方式指定消息的顺序。
消息内容标识的格式为:
[序号][监护条件]*[重复次数][返回值表:=]操作名(参数表)
6.对象的创建和撤销
对象的创建有几种情况: 时序图中的对象的默认位置是在图的顶部, 如果对象在这个位置上,那么说明在发送 消息时,该对象就已经存在了; 如果对象是在执行的过程中创建的,那么 它的位置应该处在图的中间部分。
2.修改借阅者
: Administrator :ManageWindow :UpdateBorrowerDialog :Borrower
1: UpdateBorrower() 2: CreateDialog() 3: FindBorrower() 4: FindBorrower() 5: UpdateBorrowerInfo() 6: UpdateBorrowerInfo() 7: Write()
简单消息(Simple Message) 同步消息(Synchronous Message) 异步消息(Asynchronous Message) 反身消息(Message to Self)
返回消息(Return Message)
(1)简单消息(Simple Message)
简单消息是在同步和异步之间没有区别的 消息。 在不知道消息的类型的情况下就可以使用 简单消息。 在对系统进行时序图建模时,可以对所有 的消息都使用简单消息进行表示,然后再 根据情况确定消息的类型。
ObjectA 1: Destroy() 2: Return void ObjectB
7.3 时序图建模
对系统动态行为建模的过程中,当强调按 时间展开信息的传送时,一般使用时序图 建模技术。 一个单独的时序图只能显示一个控制流。
使用时序图建模时,可以参考以下策略: ① 设置交互的语境,这些语境可以是系统、子系统、 类、用例和协作的一个脚本。 ② 识别对象在交互语境中所扮演的角色,根据对象 的重要性及相互关系,将其从左至右放置在时序 图的顶部。 ③ 设置每个对象的生命线。通常情况下,对象存在 于整个交互过程中,但它们也可以在交互过程中 创建和撤销。
(2)同步消息(Synchronous Message)
同步消息最常见的情况是调用,即消息发 送者(对象)在它的一个操作执行时调用 接收者(对象)的一个操作,此时消息名 称通常就是被调用的操作名称。 当消息被处理完后,可以送回一个简单消 息,或者是隐含nous Message)
④ 标明消息。从引发某个消息开始,在生命线之 间画出从顶到底依次展开的消息,显示每个消 息的内容标识。 ⑤ 设置对象的激活期,可视化消息的嵌套或可视 化实际计算发生时的时间点。 ⑥ 如果需要设置时间或空间的约束,可以为每个 消息附上合适的时间和空间约束。 ⑦ 如果需要形式化的说明某控制流,可以为每个 消息附上前置和后置条件。
3.删除借阅者 4.添加书目 5.修改书目 6.删除书目 7.添加图书 8.删除图书 9.添加管理员 ……
第8章 协作图
时序图和协作图都可以用来描述系统对象之间的
交互。
时序图强调一组对象之间交互的时间顺序。 协作图则是描述组成系统的各个成分之间如何协
作来实现系统的交互行为。
8.1 概述
Object1 : ClassA
2.生命线
生命线是对象标识符在垂直方向上拖出的一 条长虚线,表示时序图中的对象在一段时间 内的存在。 每个对象的底部中心的位置都带有生命线。 生命线是一条时间线,从时序图的顶部一直 延伸到底部,所用的时间取决于交互的持续 时间。
3.激活
当一条消息被传递给对象的时候,它会触发该对 象的某个行为,激活了该对象。 在UML中,激活用一个在生命线上的细长矩形框 表示。 矩形本身被称为对象的激活期或控制期,对象就 是在激活期顶端被激活的。 激活期说明对象正在执行某个动作。当动作完成 后,此时对象的一个激活期也宣告结束。
第7章 时序图
系统或对象的动态模型主要包括状态模型
和交互模型。 状态模型用来描述系统或对象的动态行为, 用状态图和活动图进行描述,因此状态图和 活动图又统称为行为图; 交互模型主要用来帮助人们观察和分析系 统的交互行为,用时序图和协作图进行描述, 因此时序图和协作图又统称为交互图。
7.1 概述
异步消息表示发送消息的对象不用等待回 应的返回消息,即可开始另一个活动。 异步消息就是发送方只负责将消息发送到 接收方,至于接收方如何响应,发送方则 不需要知道。对接收方来说,在接收到消 息后它既可以对消息进行处理,也可以什 么都不做。
(4)反身消息(Message to Self)
反身消息是一个对象将一个消息发送给它 自己的消息。 如果一条消息只能作为反身消息,那么说 明该操作只能由对象自身的行为触发。 这表明该操作可以被设置为private属性, 只有属于同一个类的对象才能够调用它。
2: Message
对象
:ObjectA
消息
1: Message :ObjectB 3: Message
链接
协作图与时序图的互换(F5)
协作图和时序图都是表示对相间的交互作 用,只是它们的侧重点有所不同。
协作图和时序图在语义上是等价的,它们 可以从一种形式的图转换成另一种形式的 图,而不丢失任何消息。
时序图强调的是交互的时间顺序;而协作图强
调的是交互的情况和参与交互的对象的整体组织。
从另一个角度来看,时序图按照时间顺序布局;
而协作图按照空间组织布局。
2: Message
1: Message :ObjectA : Actor 5: Message
3: Message 4: Message :ObjectB
简单协作图
8.2 协作图元素及表示法
构成协作图的图形元素主要有3种: 对象(object) 链接(link) 消息(message)
1.对象
协作图中的对象与时序图中的对象类似,用 一个矩形框代表一个对象,框内填写对象名 和它所属的类名,中间用一个冒号隔开。 协作图中无法表示对象的创建和撤销,所以 对象在协作图中的位置没有限制。
: Librarian
:MainWindow
4.消息
消息是用来说明时序图中不同活动对象之间的通 信。 在时序图中,消息是由从一个对象的生命线指向 另一个对象的生命线的直线箭头来表示的,箭头 上面还可以表明要发送的消息名及序号。 在各个对象之间消息的次序由它们在垂直轴上的 时间顺序决定。
激活示例 激活的应用
当进行时序图建模时,所用到的消息主要 包括以下几种类型:
7.4 时序图建模实例
例:图书管理系统时序图建模 1.添加借阅者 添加借阅者的过程为:系统管理员选择菜单项 “添加借阅者”,弹出AddBorrowerDialog对话框。 系统管理员可以在该对话框中输入借阅者的信息并 提交,随后系统对管理员所提交的借阅者信息进行 验证,查看输入的借阅证号是否已经存在于系统中, 若不存在,则为借阅者创建一个账户,并存储借阅 者信息。
对象的创建有两种方法:
ObjectA 1: Create() ObjectB
ObjectA ObjectB 1: Create() 2: Return Message
2: ReturnMessage
在新创建的对象时,都可以发送“destroy”消息 来撤销新创建对象。 要想说明某个对象被撤销,需要在被撤销对象的 生命线末端放一个“×”符号进行标识。
协作图(Collaboration Diagram)是UML 1.x版本
中的名称。在当时的认识中,认为它就是描述一个 协作的,所以称之为协作图。
UML 2.0重新定义了协作的概念,并认为所谓协作
图与协作概念实际上没有什么必然联系,为了避免 误会,所以将它改名为通信图(Communication Diagram)。因此,在很多参考书中使用通信图而 不是协作图进行说明。
(5)返回消息(Return Message)
返回消息是表示控制流从过程调用后,处 理结果返回信息。 返回消息一般可以缺省,隐含表示每一个 调用都有一个配对的调用返回。
接收该消息的对象类角色中的操作名。 表示消息在对象间交互的时间顺序号。一般 可选项,以布尔表达式形式表示。满足监护 以“,”区分的名称列表,分别表示完成指 参数表是以“,”区分的实参表,实参的个 可选项,表示消息重复发送的次数。只有 5.消息中的参数和序号 数、次序、类型必须与该操作的形参一致。 用正整数 条件时才能发送消息。监护条件默认时,表示消 “ 定操作后返回的系列值。可默认。 *”号,无 1、[ 2重复次数 、3……表示。嵌套消息用十进制 ]时,表示消息多次发送, 时序图中的消息除了具有消息名称之外还可以包含许 数1.1、1.2、2.1、2.2……表示。序号在时序图中 息无条件发送。 次数未定。此项默认时,表示只发送一次。 多附加的信息。 是可以默认的,但在协作图中是必不可少的。 消息可以与类中的操作等效,即消息可以带有可传递
例:以图书管理系统中借阅图书为例: 时序图与协作图之间转换。 F5 或在Rational Rose中,在 Browse菜单下 选择: Create Collaboration Diagram或 Create Sequence Diagram (1)根据时序图信息创建协作图 (2)根据协作图信息创建时序图