如何在活动图中模拟无条件决策?

时间:2017-03-13 10:19:38

标签: uml activity-diagram

例如,用户可以在工具中执行操作A,操作B或操作C.无论他们选择A,B还是C,这些行为的顺序和重复次数取决于用户以及他们选择A,B或C的原因以及为什么选择特定顺序的原因尚不清楚。在用户完成另一个操作后,也可以再次重复任何操作。

编辑:更具体的例子是创建图像。用户可以绘制形状,选择新形状,选择新颜色并保存图像。虽然绘制这4个动作可以以任何随机顺序和任何随机数量交织,但只能由用户的突发事件引导。 还可以选择从头开始创建新图像或编辑现有图像以创建新图像。

4 个答案:

答案 0 :(得分:2)

使用任何符号对任何内容进行建模时,重要的是要记住创建模型的目的是什么,以及谁将使用它。

如果您只是省略弧上的防护,那么模型没有描述系统行为方式的信息。它不能指导其他开发人员创建软件,它不记录设计者的意图。

用户位于系统边界之外,因此决定要执行的操作在其他地方。系统行为应该被建模为其状态,输入或事件的条件 - 这些是系统可以操作的,以及开发人员期望在UML模型中找到指导它们的内容。

使用的确切UML构造将取决于如何在系统边界上传达该选择 - 活动图可能不是沟通的最佳方式,或者您可能为每次交互使用多个图

正在建模的软件没有做出无条件选择,模型中的信息应该反映出足够详细的信息,以便对下一个查看它的人有用。

答案 1 :(得分:1)

您的问题非常简单,问题如下。

enter image description here

如果您不想对活动进行不确定的行为,请不要在决策节点后省略警卫。决策节点向具有真正防护的第一流提供令牌,而未定义防护的评估顺序。

答案 2 :(得分:-1)

嗯,你只是放弃警卫:

enter image description here

现在路径可以采取任何方式。但是,由于有选择,用户可以采取行动并选择他喜欢的路径。

编辑思考一下" natural"控制流似乎是显而易见的,在ConditionalNode之前你会发现像Offer choice这样的动作(例如在OP的具体例子中:" draw","选择形状",& #34;选择颜色"等)。因此,ConditionalNode的结果是用户选择之一,而后者应该具有适当的防护。所以上面只是一个草图,可以认为是不完整的。然而,将这个草图呈现给读者可能会让他" aha"或者思考一段时间之后提出我想到的问题。无论如何,在ConditionalNode之后只会有一条路径。

答案 3 :(得分:-1)

通常,循环节点应该可以帮助您解决问题。如果标志isTestedFirst,则循环节点是while-do循环。

但是,这不是活动图中最简单的节点。

它有三个部分:设置部分,每次迭代测试的测试部分和身体部分。

也许这个从sparx文档中提取的图片可以帮助你:loop node

希望这有帮助,也许其他人可能会提供更多细节。