1

我正在尝试为以下代码片段表示的功能(高度简化)绘制 UML 活动图。我的意图是为检查模式参数(if-else)的行设置一个子活动。

ErrorType DoSomething(int mode) {

    if(mode==MODE1) {
        ...
    }
    else {
        return MODE_NOT_AVAILABLE;
    }

    SomethingElse...

    return NO_ERROR;
 }

您可以看到,else-Block 中的 return-Statement 导致函数DoSomething终止。因此,如果它被执行,SomethingElse...就无法被执行。

正如我所提到的,这个 else 块应该在一个子活动中。如何可视化子活动中的操作(返回 MODE_NOT_AVAILABLE)具有其父活动图必须处于最终状态的结果?

在下图中,您可以看到我尝试解决的问题。这是一个正确的解决方案吗?

UML 活动图

4

1 回答 1

1

由于您正在处理某种异常,因此我将使用异常处理程序对其进行建模,就像您在此处看到的http://www.sparxsystems.com.au/images/screenshots/uml2_tutorial/ad11.GIF一样。即使您的具体实现使用 if/else,这也应该是一种易于理解您想要实现的目标的方式(防止子例程以错误的模式执行)。

您可以在此处查看有关符号的更多详细信息:http: //edn.embarcadero.com/article/30169

这取决于您想规定实际实施的程度。UML 本身是语言无意识的,大多数涉众也是如此。

于 2014-08-05T16:23:02.660 回答