预订演示
前页 后页

生命线、消息和激活

在序列图中,参与交互的块的生命周期由虚线表示,从元素的底部开始,并在元素的生命周期中垂直延续。元素可以在任何时候被创建或销毁。由序列图表示的周期,因此生命线表示它们的存在。出现在图表顶部的元素是在交互开始时创建的。发送者和接收者之间A消息交换将起源于一条生命线(发送者)并结束于另一条生命线(接收者)。

发送者正在有效地调用或激活接收生命线提供的某些行为。 Enterprise Architect提供了有用的机制来利用已经以操作形式定义的行为。此图显示了现有消息的属性,建模者可以从先前定义的操作的下拉列表中进行选择。或者,建模者可以通过选择操作按钮来定义新的操作。

形式上,当消息以生命线为目标时,就会发生执行,这意味着行为被启动或增强。此执行通过激活可视化表示,该激活在图表上绘制为生命线上的薄矩形覆盖,其长度表示行为的相对持续时间。当回复消息被发送回调用者时,矩形激活的范围结束。

块(Instance)既可以是消息A发送者,也可以是消息的接收者,可以称为自反消息,因为它在同一条生命线上开始和结束。在这种情况下,第二个更短的激活矩形覆盖在第一个激活上,但向右偏移。

创建和销毁块的消息

任意数量的块实例都可以构成交互的一部分,并且这些实例的集合通常会在序列图表示的时间段内出现。这些块将位于图表顶部的一行中。但是,可以在图表的序列期间创建和销毁块。例如,一个特定的块可能只需要很短的时间,因此可以被实例化,执行其函数然后被销毁。 Enterprise Architect允许工程师指定消息是创建消息,这意味着接收块将在图表的时间序列中的那个点被实例化。这是通过将生命周期消息操作设置为“新建”来实现的,如图所示。

设置此属性具有将目标块移动到图表中较低位置的效果,表示在图表的整个时间序列中直到该点才会创建块实例。消息行样式也更改为带有空心箭头的虚线,以反映它是一个创建消息。此消息的其它和效果的其他方面没有改变。

以类似的方式,可以通过发送Destroy消息来结束 Instance 的生命周期。实际上,这意味着该实例已达到其目的并且不再需要。这可以通过再次设置消息属性轻松实现,但这次我们将生命周期消息操作设置为删除”。

设置该属性具有立即终止Instance的生命周期的效果;这在视觉上由虚线生命线在消息到达的时间点被生命线上的一个小十字架阻止。

当序列图表示具有有限内存可用的软件系统时,目标实例的破坏将导致分配的内存返回到内存池。在系统工程中,管理机电对象的生命周期可能会带来各种其他收益,例如功耗、过热、可用性,甚至是安全等风险。

同步和异步消息

消息本质上表示从发送者向接收者发送某种类型的请求。消息的发送者可以通过两种基本方式与接收者进行交互。第一种类型的消息称为同步消息,因为消息发生在大致相同的时间点。对于这种类型的消息,发件人会等到收件人回复后再发送其他消息。第二种类型的消息称为异步消息,因为发送者在继续执行之前不会等待接收者的回复,包括向该接收者或其他接收者发送附加消息。

Enterprise Architect默认创建同步同步,但可以通过在“属性”属性中设置“同步类型”来更改消息类型。当消息类型设置为同步(默认)时,这会将线条样式设置为实心,并带有指向收件人实例的闭合箭头。该行可以用消息的名称和参数进行注释。

异步消息表示对操作的调用,或发送给接收者的信号;在任何一种情况下,发送者都不会期待回复,也不会暂停执行以等待回复。在调用操作的情况下,操作本身将被定义为异步的,并且图中表示的系统或机器将知道不等待消息返回(回复)。 Enterprise Architect允许通过“同步”属性设置此消息类型,如前所述。当消息类型设置为异步时,这会将线条样式设置为虚线,并带有指向接收者实例的开放箭头。该行可以用消息的名称和参数进行注释。

有第三种类型的消息可以选择与同步消息一起使用,这就是回复信息。此消息表示已在接收者上调用的操作,返回该行为已执行且已完成的收据。在图表中包含回复消息是一种风格决定。一些工程师和建模师更愿意将它们放在图表之外,以减少视觉混乱。如果设置了返回类型和值,这将作为回复消息的一部分返回。

块可以同时指定操作信号接收作为其定义的一部分;该范例描述了操作和信号接收与消息和信号的关系。

  • 同步调用操作 -同步信息
  • 操作的异步调用 - 异步信息
  • 接收信号的接收 - 异步信息