UML 2 教程 - 顺序图
顺序图
顺序图是交互图的一种形式,它将对象显示为沿着页面运行的生命线,随着时间的推移,它们的交互表示为从源生命线到目标生命线的箭头绘制的消息。 顺序图擅长显示哪些对象与哪些其他对象进行通信; 以及哪些消息触发了这些通信。 顺序图不用于显示复杂的过程逻辑。
生命线
生命线代表顺序图中的单个参与者。 生命线通常有一个包含其对象名称的矩形。 如果它的名字是“self”,则表明生命线代表拥有顺序图的分类器。
有时,顺序图会有一条生命线,其头部有一个Actor元素符号。 如果顺序图由一个用例拥有,通常会出现这种情况。 鲁棒图中的边界、控制和实体元素也可以拥有生命线。
消息
消息显示为箭头。 消息可以是完整的、丢失的或找到的; 同步或异步; 打电话或发信号。 在下图中,第一条消息是一个同步消息(用实线箭头表示),带有一个隐式返回消息; 第二条消息是异步的(用线箭头表示),第三条是异步返回消息(用虚线表示)。
执行发生
沿着生命线延伸的细矩形表示执行发生或控制焦点的激活。 在上图中,有三个执行事件。 第一个是源对象发送两条消息并接收两个回复; 第二个是目标对象接收同步消息并返回回复; 第三个是目标对象接收异步消息并返回回复。
自身消息
一个自身消息可以表示一个操作的递归调用,或者一个方法调用属于同一对象的另一个方法。 它显示为在生命线的执行事件中创建嵌套的控制焦点。
丢失的消息和找回的消息
丢失的消息是那些已发送但未到达预期接收者,或发送到当前图表中未显示的接收者的消息。 找回的消息是来自未知发件人的消息,或者来自当前图表中未显示的发件人的消息。 它们表示去往或来自端点元素。
生命线开始和结束
生命线可以在序列图所表示的时间尺度中创建或销毁。在后一种情况下,生命线由一个表示为十字的停止符号终止。在前一种情况下,生命线头部的符号显示在页面下方较低的层次,而不是导致创建的对象的符号。下图显示了正在创建和销毁的对象。
持续时间和时间限制
默认情况下,消息显示为水平线。 由于生命线代表屏幕下方的时间流逝,因此在对实时系统甚至有时限的业务流程进行建模时,考虑执行操作所需的时间长度可能很重要。 通过为消息设置持续时间约束,消息将显示为斜线。
组合片段
前面已经说过,顺序图并非旨在显示复杂的过程逻辑。 虽然是这种情况,但有许多机制确实允许向图表添加一定程度的程序逻辑,并且属于组合片段的标题。 组合片段是包含在帧中并在特定命名环境下执行的一个或多个处理序列。 可用的片段是:
- 替代片段(表示为“alt”)模型 if...then...else 构造。
- 选项片段(表示为“opt”)模拟开关结构。
- 中断片段对处理的替代事件序列进行建模,而不是对图表的其余部分进行建模。
- 并行片段(表示为“par”)模拟并发处理。
- 弱排序片段(表示为“seq”)包含许多序列,对于这些序列,必须在前一个片段中处理所有消息,然后才能开始下一个片段,但它不会在片段内对不共享的消息施加任何排序一条生命线。
- 严格排序片段(表示为“严格”)包含一系列必须按给定顺序处理的消息。
- 否定片段(表示为“否定”)包含一系列无效的消息。
- 关键片段包含一个关键部分。
- 忽略片段声明一条消息或消息如果出现在当前上下文中则不感兴趣。
- 考虑片段实际上与忽略片段相反:任何未包含在考虑片段中的消息都应该被忽略。
- 断言片段(表示为“断言”)指定任何未显示为断言操作数的序列都是无效的。
- 循环片段包含一系列重复的消息。
下图显示了一个循环片段。
还有一个交互发生,类似于组合片段。交互事件是对另一个图的引用,该图在框架的左上角具有单词“ref”,并且在框架的中间显示了被引用图的名称。
图的门口
图的门口是一个连接点,用于连接片段内的消息和片段外的消息。EA 将门显示为片段框架上的一个小方块。图门充当顺序图的页外连接器,表示传入消息的源或传出消息的目标。以下两个图表显示了它们在实践中的使用方式。请注意,顶层图表上的门是消息箭头接触参考片段的点 - 无需将其呈现为盒子形状。
部分分解
一个对象可以有多个生命线来自它。这允许对象间和对象内的消息显示在同一图表上。
状态不变量/延续
状态不变量是放置在生命线上的约束,在运行时必须为真。它显示为一个带有半圆形末端的矩形。
|