“lifeline1”表示在一段时间内执行的对象。
垂直虚线表示对象的生命周期。当对象处于活动状态/正在执行/具有控制权时,会在该线上绘制一个“执行规范”框。
在 lifelin1 执行期间,恰好在红色圆圈“lifeline1”需要来自“lifeline2”的东西才能完成其执行
如果它需要某些东西来开始执行,它不会显示以开始执行规范,而是在收到消息后显示为激活状态。
相反,该块显示 lifeline1 显示为活动,并发送同步消息。
1)“生命线1”暂停其执行,然后
这个序列图没有暗示暂停(或其他时间)。
2)调用同步消息。(请在你的回答中澄清一下)
它类似于在对象上调用方法——同步消息中的控制流立即从发送者传递到接收者,并且在接收到同步消息时,接收者显示为活动对象。
粉色线表示“lifeline1”需要到达“lifeline2”才能执行的持续时间
这个序列图没有暗示任何时间——它只显示了操作的序列。使用 OMG† UML2 上层结构的表 14.1 中所示的 Duration Constraint 和 Duration Observation 符号显示持续时间计时。
3)蓝色矩形代表消息执行的持续时间
在蓝色矩形表示的过程阶段,“lifeline2”对象正在执行以响应消息。说“消息执行”有点含糊 - 对象正在执行,而不是消息。
4)虚线表示“lifeline2”需要到达“lifeline2”才能恢复执行的持续时间。
虚线是返回消息。因为“lifeline1”发送的消息是同步的,所以在收到返回消息之前不会继续执行。
5)黑色矩形代表生命线1空闲的时间段
UML 序列图上的执行规范块表示对象何时主动执行。空闲等待同步消息返回的对象应该在其生命线上没有执行规范块的情况下表示。(颜色在 UML 中没有意义 - 它们在此图中用于让您谈论特定块,它们不显示对象是否处于活动状态)
我会采取一种稍微正式的方法,并说执行不应该显示在哪里,而是应该在收到返回消息后开始,以表示 lifeline1 继续 - 就像调用另一个对象中的方法的方法不在调用返回之前接收控制流。
但是,显示一个正在等待带有执行规范的返回消息的对象是很常见的,因为它仍然在控制操作的顺序。
(不幸的是,UML 又大又蓬松,几乎任何人提出的任何示例都可以以不同的方式阅读。由于我使用 UML 生成可执行模型来使用 pi-calculus 检查进程是否存在死锁,因此我倾向于使用更多比那些在白板上写一个来向共同开发人员解释某事的人更严格的解释)
† 维护UML 标准的对象管理组,而不是像'OMG 它是巨大的',尽管这也适用。