我正在创建活动图
我使用过fork / join,是正确的还是应该使用Decision / merge 第二,是否正确定义了注销或执行仪表板中可用的其他选项的过程?
答案 0 :(得分:1)
您的活动有几个问题。
首先也是最严重的是,它不会做任何事情,因为动作(以及大多数动作-不是活动中的所有模型元素)具有传入控制流的“隐式和语义”。这意味着仅当在所有传入控制流操作中提供令牌时才执行操作,否则它将等待。因此,由于来自validate的控制流无法在登录已执行并完成之前提供令牌,因此您拥有了锁。什么也不会执行。仪表盘也是如此。为了解决这个问题,您需要对合并节点建模。
第二点是,您只想执行(根据您的描述)管理操作之一。 (顺便说一下,带有通用动词(例如“ manage”,“ maintain”,“ do”,“ perform”等)的名称对于操作而言是非常糟糕的名称,请改用更具体的名称。)无论仪表板操作中的选择如何,您的模型都将执行,所有这些操作均同时管理。同时表示任意顺序,并且不需要并行执行。因此,您应该将叉子替换为决策节点,其中流出流的条件基于仪表板中的选择。决策节点可以具有任意数量(但数量有限)的传出控制流。使用合并节点而不是联接节点合并来自管理操作的所有传出控制流。因为加入节点将等待每个传入控制流的传入令牌。
使用UML / SysML工具时要解决的一个小问题是,分叉和连接节点是条形而不是矩形框架。
答案 1 :(得分:-1)
您的广告有2个缺陷。首先,叉子/连接点是实线,而不是空心矩形。第二,使用错误。这样,您可以并行运行所有Manage
个动作,并在所有动作完成后继续。根据您的描述,使用菱形决定其中一项操作。此后再使用菱形合并流程并继续进行Logout
。