且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

分叉/联接节点对令牌的行为与活动图的其他节点之间的区别

更新时间:2022-10-28 19:31:22

Merge- and DecisionNodes look the same, but are different elements: .

In a diagram you can only distinguish both by looking at the incoming and outgoing InformationFlows. The first has multiple incoming and one outgoing while the second has the opposite relation. A MergeNode accepts any incoming token and forwards it directly to its single outgoing InformationFlow. So unlike Actions it will not wait for all tokens. The DecisionNode in contrast accepts only a single token and lets it pass to only one of its outgoing InformationFlows. It is the modeler's responsibility to set guards in a way that only one evaluates to true. If there are more (or even unguarded) InformationFlows the token will take any arbitrary free route.

Fork and Join are also two different elements which look the same: (or vertically).

You can also distinguish them by the number of in-/outgoing InformationFlows. Fork has one in and multiple out and Join vice versa. A Fork will send as many tokens as it has outgoing InformationFlows once a token arrives at its single incoming InformationFlow. The Join will (like Actions) wait for tokens arrive at all of its incoming InformationFlows. Only then it will emerge a single token at its single outgoing InformationFlow.

So while Merge- and DecisionNodes control the flow of a single token (execution path) Fork and Join are used to start and synchronize parallel execution paths.