什么是时序图?

时序图是​​UML​​交互图,用于在图的主要目的是推理时间时显示交互。

UML - 时序图_UML

时序图侧重于沿线性时间轴在生命线内和之间变化的条件。时序图描述了单个分类器和分类器交互的行为,将注意力集中在导致生命线建模条件发生变化的事件发生时间上。

 

时间图一览

从一个状态到另一个状态的变化由生命线水平的变化来表示。对于给定状态的时间段,时间线与该状态平行。状态的变化表现为从一个级别到另一个级别的垂直变化。与状态或序列图中的情况一样,更改的原因是接收消息,导致更改的事件,系统内的条件,甚至只是时间的流逝。

UML - 时序图_序列图_02

价值生命线表示

下图显示了UML时序图的替代符号。它显示了每次状态改变时两条水平线之间相互交叉的物体状态。

UML - 时序图_UML_03

时序图的基本概念

时序UML图的主要元素 - 生命线,时间轴,状态或条件,消息,持续时间约束,时间标尺。

生命线

时序图中的生命线在帧的内容区域内形成矩形空间。生命线是一个命名元素,代表交互中的个体参与者。它通常水平对齐以从左到右阅读。

UML - 时序图_序列图_04

多个生命线可以堆叠在同一帧内以模拟它们之间的相互作用。

UML - 时序图_序列图_05

时序图中的状态时间线

状态或条件时间线表示有效状态和时间的集合。状态从上到下堆叠在救生索的左边缘。

UML - 时序图_序列图_06

与状态或序列图中的情况一样,更改的原因是接收消息,导致更改的事件,系统内的条件,甚至只是时间的流逝。

多个隔间

可以在同一时序图中堆叠不同对象的多个生命线。一条生命线高于另一条。可以使用简单的箭头描绘从一个对象发送到另一个对象的消息。每个箭头的起点和终点表示每条消息的发送时间和接收时间。

UML - 时序图_序列图_07

状态生命线

状态生命线显示项目状态随时间的变化。X轴显示所选单位的经过时间,而Y轴用给定的状态列表标记。状态生命线如下所示:

UML - 时序图_时序图_08

价值生命线

值生命线显示项目的价值随时间的变化。X轴显示所选单位的经过时间,与州生命线相同。该值显示在水平线对之间,每次水平线在值的每次变化时交叉。

UML - 时序图_UML_09

时间表和约束

我们可以使用时间轴的长度来指示对象从左到右读取多长时间保持特定状态。要关联时间测量,您可以在框架的底部在线显示刻度线。

下面的示例显示在序列开始后三次接收Login事件。要显示相对时间,可以使用变量名称及时标记特定实例。该图标记了sendMail事件作为时间收到的时间

UML - 时序图_时序图_10

您可以在约束中使用相对时间标记来指示必须在指定的时间内收到消息。

状态和价值生命线并排

状态和价值生命线可以任意组合一个接一个地放置。消息可以从一条生命线传递到另一条生命线。每个状态或值转换可以具有定义的事件,指示何时必须发生事件的时间约束,以及指示状态或值必须有效多长的持续时间约束。

UML - 时序图_序列图_11

交互图中的模型一致性

时序图应始终与相关的顺序图和状态机一致。为此,我们可以在序列图中的每个对象的生命线中附加状态。然后,通过检查对象之间传递的消息与生命线中附加的状态,我们可以更容易地得出相应的时序图。下面的Carpark示例显示了两个交互图之间的模型一致性。

UML - 时序图_时序图_12

上图显示了停车场示例的序列图,而下图显示了停车场示例的相应时序图。时序图的各个部分参考序列图的内容。

UML - 时序图_UML_13

 

以下示例显示了包含两个生命线,状态不变量,消息,持续时间观察和约束以及时间观察和约束的时序图。


现在尝试绘制UML时序图

您已经了解了时序图是什么以及如何绘制时序图。是时候绘制自己的时序图了。获取Visual Paradigm Community Edition,一个免费的UML软件,并使用免费的Timing Diagram工具创建自己的Timing Diagram。它易于使用且直观。