【问题标题】:Can Initial node have two processes at the same time?Initial node 可以同时有两个进程吗? 【发布时间】:2017-10-29 20:48:04 【问题描述】: 您好,我正在使用 UML 图,我想知道一个类是否可以在初始节点同时具有两个进程? 【问题讨论】: 标签: uml activity-diagram 【解决方案1】: 当然可以。并发进程是否可能取决于操作系统和您使用的语言。但从纯对象的角度来看,没有什么能阻碍您为单个类建模并发进程。 请注意,即使是像 Modula-2(来自 80 年代)这样相当古老的语言也支持并发进程作为本地语言结构。 【讨论】: 【解决方案2】: 您还可以在以下架构中建模。开始时有一个隐式分叉,在 CallOperation5 处有一个隐式连接。 它更容易“绘制”,相反的部分是你的读者必须熟悉 UML。 【讨论】: 这不正确。没有“隐式分叉”!只有一个令牌正在进行中,它会以何种方式进行尚不确定。查找 UML“规范”(笑)。 :) 我看了看:“在所有传入的 ControlFlow(如果有)都提供令牌之前,ExecutableNode 不应执行。也就是说,传入的控制流上有一个隐式连接。特定类型的 ExecutableNode 可能在节点可以执行之前必须满足其他先决条件。” 这不是连接,而是初始拆分。这只能由分叉节点完成。只有这样才能从一个令牌创建多个令牌。 阅读第 1 页。 385 初始节点。里面只有一个令牌。一个代币只能乘以一个分叉(阅读下一页)。 事实上,有一个隐式分叉:当一个 ExecutableNode 完成执行时,表示该执行的控制令牌从 ExecutableNode 中删除,并且控制令牌在 ExecutableNode 的所有传出 ControlFlow 上提供。也就是说,存在从 ExecutableNode 到其传出 ControlFlows 的控制流的隐式分支。但是对于 Excutable 节点,初始节点不是可执行文件。所以我需要在这一点上更正答案。