从子活动中终止活动图

时间:2014-08-05 15:47:13

标签: c uml diagram termination activity-diagram

我正在尝试绘制一个由以下代码片段表示的(高度简化)功能的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 ...

正如我所提到的,这个其他块应该处于子活动状态。 如何可视化子活动中的操作(返回MODE_NOT_AVAILABLE )会导致其父母活动图必须处于最终状态?

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

UML activity diagram

1 个答案:

答案 0 :(得分:1)

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

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

这取决于您想要指示实际实施的程度。 UML本身并不知情,大多数利益相关者也是如此。