【问题标题】:Modelling a Non-Returning Call in UML在 UML 中建模非返回调用
【发布时间】:2015-11-13 10:59:15
【问题描述】:

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

【问题讨论】:

  • 如果您包含您正在处理的图表的图像,这会容易得多。
  • @Geert Bellekens 我按照你的建议添加了一张图片
  • 现在我明白你的问题了:)。我不知道分割成两个图表的更好方法,但也许其他人会这样做。

标签: uml


【解决方案1】:

您可以在调用和返回之间设置持续时间限制。

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

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

但是我必须承认我不确定我的表述是否违反OMG's UML 2.5 standard。我在标准中没有发现任何明确禁止使用“无穷大”作为时间单位的内容;标准确实提到时间应该是相对的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多