前页 | 后页 |
生命线消息和激活
参与交互的块的寿命由虚线表示,该虚线从元素的底部发出并在元素的整个生命周期中垂直延伸。元素可以在序列图表示的时间内随时创建或销毁,因此生命线表示它们的存在。图的顶部存在的元素是在交互开始时创建的。发送方和接收方之间的消息交换将始于一条生命线(发送方),结束于另一条生命线(接收方)。
发送者正在有效地调用或激活接收生命线提供的某些行为。 Enterprise Architect提供了有用的机制来利用已经以操作形式定义的行为。此屏幕快照显示了现有消息的属性,建模者可以从先前定义的操作的下拉列表中选择这些消息。或者,用户可以通过选择“操作”按钮来定义新的操作。
形式上,当一条消息以生命线为目标时,就会执行执行,这意味着将启动或增强行为。此执行通过激活在视觉上表示,该激活在图上绘制为生命线上的薄矩形叠加层,其长度表示行为的相对持续时间。当将回复消息发送回呼叫者时,矩形激活的范围结束。
块(实例)可以是消息的发送者和接收者,可以将其称为自反消息,因为它在同一条生命线上开始和结束。在这种情况下,第二个较短的激活矩形覆盖在第一个激活上,但向右偏移。
创建和销毁块的消息
任何数量的块实例都可以构成交互的一部分,并且通常在序列图表示的时间内存在一组这些实例。这些块将跨图顶部放置在一行中。但是,有可能在图的顺序期间创建和销毁模块。例如,一个特定的块可能只需要很短的时间,因此可以实例化,执行其功能然后销毁。 Enterprise Architect允许工程师将消息指定为Create消息,这意味着将在图的时间序列中的该点实例化接收块。如本屏幕快照所示,可以通过将“ 生命周期”消息属性设置为“新建”来实现。
设置此属性的作用是将目标块移动到图表中的较低位置,这表示直到在图表的总体时间序列中的这一点才创建块实例。消息行样式也更改为带有打开箭头的虚线,以反映它是“ 创建消息” 。此消息的语义和效果的其他方面均未更改。
以类似的方式,可以通过发送销毁消息来终止实例的生命周期。实际上,这意味着实例已达到其目的并且不再需要。再次设置message属性可以轻松实现这一点,但是这次我们将Life Cycle message属性设置为'Destroy' 。
设置此属性的效果是立即终止实例的生存期。这是通过一条虚线的生命线在视觉上表示的,该虚线在消息到达的时间点被生命线上的一个小叉形钩住。
当序列图表示具有有限可用内存的软件系统时,目标实例的破坏将导致分配的内存返回到内存池。在系统工程中,从管理机电对象的寿命(例如功耗,过热,可用性,甚至是安全性风险)中可以得到许多其他收益。
同步和异步消息
消息本质上表示从发送方向接收方发送某种类型的请求。消息的发送者可以通过两种基本方式与接收者进行交互。第一种类型的消息称为“ 同步消息”,因为消息发生在大约相同的时间点。使用这种类型的消息,发件人将等到收件人答复后再发送其他消息。第二种类型的消息称为“ 异步”,因为发送者在继续执行之前不等待接收者的答复,包括向该接收者或其他接收者发送其他消息。
默认情况下, Enterprise Architect创建同步消息,但是可以通过在“属性”对话框中设置“同步类型”属性来更改消息类型。当消息类型设置为“同步”(默认)时,这会将线条样式设置为实心,并带有指向接收者实例的闭合箭头。该行可以用消息的名称和参数进行注释。
异步消息表示对操作的调用或发送给接收者的信号 。无论哪种情况,发送方都不会等待答复,也不会等待它的执行。在调用某个操作的情况下,该操作本身将被定义为异步的,并且该图表示的系统或机器将知道不等待消息返回(回复)。如前所述, Enterprise Architect允许通过'Synch'属性设置此消息类型。当消息类型设置为“异步”时,这会将线条样式设置为虚线,带有指向接收者实例的打开箭头。该行可以用消息的名称和参数进行注释。
有第三种类型的消息可以选择与同步消息一起使用,这就是Reply Message 。此消息表示已在收件人上调用的操作,并返回该行为已执行且已完成的回执。在图中包含回复消息是一种样式决定。一些工程师和建模者更喜欢将它们放在图表之外,以减少视觉混乱。如果设置了返回类型和值,则将其作为回复消息的一部分返回。
块可以在其定义中同时指定“ 操作”和“ 接收” ;该范例描述了操作和接收与消息和信号之间的关系。
- 同步操作调用-同步消息
- 异步操作调用-异步消息
- 信号接收-异步消息