Uml 在每个备选方案开始时重置生命线激活

Uml 在每个备选方案开始时重置生命线激活,uml,sequence-diagram,Uml,Sequence Diagram,假设序列图的备选方案在某种程度上是可互换的,那么如何处理备选方案,使生命线的激活次数(可能是嵌套的)不同于开始时遇到的激活次数?例如,以下是“就绪”案例、“未就绪”案例的序列图,以及使用“alt”将这些案例合并到单个序列图中的失败尝试。(对于这些图表,我很抱歉--我不知道如何将它们顶部对齐。) 查看最后一张“组合案例”图,请注意,第一个“准备案例”备选方案显示A和B各有一个激活,而C没有激活。然而,由于此备选方案为B和C创建了新激活,第二个“未准备案例”备选方案显示了一组不同的激活。我可以在“

假设序列图的备选方案在某种程度上是可互换的,那么如何处理备选方案,使生命线的激活次数(可能是嵌套的)不同于开始时遇到的激活次数?例如,以下是“就绪”案例、“未就绪”案例的序列图,以及使用“alt”将这些案例合并到单个序列图中的失败尝试。(对于这些图表,我很抱歉--我不知道如何将它们顶部对齐。)

查看最后一张“组合案例”图,请注意,第一个“准备案例”备选方案显示A和B各有一个激活,而C没有激活。然而,由于此备选方案为B和C创建了新激活,第二个“未准备案例”备选方案显示了一组不同的激活。我可以在“ready case”的末尾添加不同的消息,任意保留它最初遇到的相同激活,但肯定有更好的方法,或者我遗漏了什么,例如,我错误地使用了alt


顺便说一句,我用生成了这些图。

您可以用这种方式使用序列图,但要小心:当一条生命线在进入alt片段时处于活动状态,它应该在将片段保留到另一个片段时处于活动状态。当它不活动时,禁止进入,则不应离开


在您的
组合案例中
图表与
C
的生命线有关。我建议您在片段之后计划的与
C
相关的所有其他操作都应该是
[ready case]
的一部分。否则,从我的角度来看,图表会变得不一致。

我只会使用两个单独的SDs,分别命名为
ready case
not ready case
。您不应该尝试使用SDs实现图形编程。如果你能用你的图表以一种简单的方式传递信息,那么就走这条路。正如Occam经常应用的那样。

我仔细考虑了一下,得出了这个结论。除非别人有机会回答,否则我不会认为这是最好的答案。
替代片段的两个公理是1。所有备选方案在输入时均具有相同的激活集α和2。所有备选方案都以相同的激活集β结束。UML序列图表示法IMO的问题在于,它有一个单独的、非公理化的要求,即每个备选方案都以其呈现的相同激活集结束,或者α=β。

是什么导致就绪/未就绪之间的差异?未知的环境影响。:-)但这对我的问题无关紧要。这些是我真实图表的简化版本。pre-alt活动更复杂,我不希望在多个图中重复它。我只是想知道如何将它们表示为一个单一的图表——一个学术练习。没有重复。当您将两者放在一个图中时,会有一个额外的片段。否则你有两张图表。即使然而,如果你想把这两个元素都放在一个图表中,
alt
片段是正确的选择。你基本上只是重申了这个问题。B也有一个激活问题,不仅仅是C。我希望专注于一个孤立的交互,但UML序列图显然无法表示这一点。对我来说,在片段后面包括活动是无关紧要的,会分散我的注意力。我将不得不把它们作为两个单独的图表。对不起,我很乐意帮助您,但我仍然不能完全理解您的问题。你能概括一下你的问题吗?我想我回答了下面我自己的问题。你怎么认为?基本上,使用UML序列图,备选方案必须以开始时的相同激活集结束。这是符号的任意限制,一般来说不是替代品的固有属性。好的,对不起,我没有看到它。我会检查它。昨天我想,通过时间限制消息从穿过片段末端的片段对角线发送kill消息是否是一个好主意。你怎么认为?