如何在UML中决定(菱形)之后设计决策?

时间:2016-09-18 12:26:08

标签: uml

我现在正在设计ArgoUML中的UML活动图。 我知道如果我想设计条件如下:

if(condition) {
    doTrueAction();
} else {
    doFalseAction();
}

可以在UML活动图中完成,如下所示:

enter image description here

但是如果我们在上一个决定的输出中有另一个条件呢?像这样:

if(condition) {
    if(condition2) {
        condition2TrueAction();
    } else {
        condition2FalseAction();
    }
}else{
    conditionFalseAction();
}

enter image description here

正如您在此处看到conditionTrueOutput正在输出并同时处于条件状态。在我看来,设计被打破了。

编辑:或者我应该使用fork元素而不是decision(diamond)元素?

enter image description here

我想知道如何正确设计。有没有规则?

1 个答案:

答案 0 :(得分:0)

您的设计似乎是连贯的,但它不是UML图。我想您正在将活动图序列图混合。

您的图表看起来像序列图,但它会尝试表示与活动图表相关的信息。

我建议您web site调查这两个图表之间的差异,我希望它能为您提供帮助。

相反,通过尝试使用您的设计,我建议您在两个condotion2之前插入另一个条件(例如SecondConditionAction)。