UML 序列图 Call-to-self-loop

UML Sequence Diagram Call-to-self-loop

这是一道uml的快速基础题。我有一个 call-to-self,它启动一个循环,创建一些对象。我想知道这个 call-to-self 箭头应该指向循环内部还是外部。我在这里说明了差异:

因为它不在循环中,所以最好将它放在图上的循环之外。从逻辑和视觉角度来看,这看起来更好。最好在垂直线上使用块来显示,例如,两个操作将在同一事务中或使用 2 个视图,例如一个序列图和一个 activity 图。

我不知道你的工具,但自调用应该是这样的:

你可以看到循环在自调用中。

触发循环的自调用应该在循环块外结束。

每次执行循环时,都必须执行其整个块。例如,如果您的自我调用在循环块内结束,则在每次循环迭代中,第一个事件应该是接收到自我调用。这绝对不是你想要做的,因为这个自我调用应该只被接收一次(然后开始一个循环)。因此它肯定必须在循环块之外结束。