Activity Diagram - confusion regarding fork/join and decision/merge in this scenario
我正在创建一个活动图
我使用了 fork/join,是正确的还是我应该使用决策/合并来代替
第二,是否正确定义了注销或执行仪表板中可用的其他选项的过程?
您的活动存在多个问题。
首先,也是最严重的,它不会做任何事情,因为动作(主要是那些 - 不是活动中的所有模型元素)对于传入的控制流具有"隐式和语义"。这意味着只有在对所有传入的控制流操作提供令牌时才执行操作,否则它会等待。因此,由于在执行并完成登录之前,来自验证的控制流无法提供令牌,因此您有一个锁定。并且没有执行任何操作。这同样适用于仪表板。要解决此问题,您需要对合并节点进行建模。
第二点是您只想执行(根据您的描述)其中一个管理操作。 (顺便说一句,带有通用动词的名称,如"管理"、"维护"、"执行"、"执行"等,对于动作来说是非常糟糕的名称,请改用更具体的名称)。无论仪表板操作中的选择如何,您的模型都会同时执行所有操作。并发意味着以任意顺序并且不需要并行执行。因此,您应该将分叉替换为决策节点,其中输出流的条件基于仪表板中的选择。决策节点可以具有任意(但有限)数量的传出控制流。来自管理操作的所有传出控制流都使用合并节点而不是连接节点进行合并。因为加入节点将等待每个传入控制流的传入令牌。
使用 UML/SysML 工具可以解决的一个小问题是,fork 和 join 节点是条形而不是矩形框架。
您的广告有 2 个缺陷。首先,分叉/连接是实心粗线,但不是空心矩形。二是使用不当。这样,您可以并行运行所有