在 alt / opt 中的 UML 序列图中中断/停止执行

break / stop execution in UML sequence diagram mid-way inside alt / opt

在 UML 序列图中 - 如果流程在中途满足条件时应该停止,那么如何用备用/可选片段最好地表示它?

即- 如果不满足停止条件,则流程将继续执行更多步骤。 备用片段是否应该覆盖自停止条件以来的所有步骤,使所有经过它的步骤成为备用片段的一部分,或者是否有一个符号来处理小备用片段内的停止(仅限于条件)?

您可以使用 opt 片段简化整个过程:

有人可能会开始争论这在语法上是不正确的,但它传递了消息(我猜)。这才是最重要的。

根据我的个人经验:尽可能少地使用片段。而是拆分您的场景以专注于某些重要方面。 SD 是系统在某个地方的快照,您希望在其中了解正在发生的事情,而不是包含每条可能的猫和狗踪迹的详细路线图。

这种情况有三种选择。我用一张图表说明了它们中的每一个,显示了应该如何使用各自的组合片段。实际行为隐藏在交互引用中(normalFlow 用于通常应执行的流,breakFlow 用于在需要中断的情况下应发生的任何流)。

第一个解决方案是最方便的 - 它完全符合您的情况,您也可以使用 break guard 的正面版本。但是每一个都为你提供了一个有效的可能性。

  1. 打断组合片段

当满足break combined fragment且其守卫条件为真时,仅此fragment仍被执行,然后交互(流)的执行停止。如果不满足条件,则省略组合片段并继续正常流程。这正是你描述的情况。在这种情况下,您可以将在中断条件下不应执行的消息放在中断组合片段之后。

  1. 选择组合片段

当满足 opt 组合片段时,它仅在保护条件为真时执行。无论条件如何,流程的其余部分都会继续。 您可以将仅在不满足中断条件时才继续的流程部分放在 opt 组合片段中。 opt 片段应该有一个与流应该停止的条件相反的守卫。如果在中断的情况下需要执行任何其他操作,则应将它们放在 opt 组合片段之后。

  1. Alt 组合片段

当满足 alt 组合片段时,将评估其保护条件,并且仅执行保护评估为真的最终片段。也可能存在 none 守卫评估为 true 并且在这种情况下没有执行任何片段的情况。无论如何正常执行组合片段之后的任何流程。 在这种情况下,您最好放置两个片段,一个带有正确的操作守卫,第二个带有应该导致中断的条件。将正常流放在第一个片段中,在第二个片段中断的情况下应该发生什么。