UML中的非返回调用建模

UML中的非返回调用建模,uml,Uml,我想创建一个UML序列图(见下文),其中我有一个alt框架和两个条件(状态等于foo或bar)。在foo示例中,我从a向B发送一条同步消息,获取返回消息,然后继续序列图的其余部分(调用spam()。在bar的情况下,我将另一个同步消息从A发送到C,但不会返回。我试图在SW中建模一个不会返回的函数调用(它会在信号量上永远阻塞),因此在这种情况下,我将永远不会继续spam()。这可以用序列图表示吗?我可以排除返回值,但这只能告诉我没有返回值,而不是根本没有返回值。这只能通过将图一分为二并分别处理条件

我想创建一个UML序列图(见下文),其中我有一个alt框架和两个条件(状态等于foo或bar)。在foo示例中,我从a向B发送一条同步消息,获取返回消息,然后继续序列图的其余部分(调用spam()。在bar的情况下,我将另一个同步消息从A发送到C,但不会返回。我试图在SW中建模一个不会返回的函数调用(它会在信号量上永远阻塞),因此在这种情况下,我将永远不会继续spam()。这可以用序列图表示吗?我可以排除返回值,但这只能告诉我没有返回值,而不是根本没有返回值。这只能通过将图一分为二并分别处理条件来表示,还是有更好的图来表示


您可以在通话和返回之间设置持续时间限制

在正常情况下,此类约束将由一个整数后跟一个时间单位(如“10秒”)或一个范围(如“[1;10)秒”)表示

你的问题很有趣,因为你想模拟无限。 我会这样做:


然而,我必须承认,我不确定我的公式是否违反。我在标准中没有发现任何明确禁止使用“无限”作为时间单位的内容;标准中确实提到时间应该是相对的。

如果您将正在处理的图的图像包括在内,这将容易得多。@Geert Bellekens我已经添加了现在我明白你的问题了:)。我不知道有什么更好的方法可以拆分成两个图表,但也许其他人会这样做。