The fork vertices are used to split an incoming transition into two or more transitions terminating on the orthogonal target vertices (i.e., vertices in different regions of composite state). The segments going out of a fork vertex must not have guards or triggers.
The join vertices are used to merge several transitions emanating from the source vertices in different orthogonal regions. The transitions entering a join vertex cannot have guards or triggers.
- A Fork Node can have exactly one incoming Activity Edge (or Transition), though it may have multiple outgoing Activity Edges (or Transitions).
- A Join Node can have exactly one outgoing Activity Edge (or Transition) but may have multiple incoming Activity Edges (or Transitions).
The Fork and Join are represented by the same symbol. Although, you can set the Use different Fork/Join and Decision/Merge notations project option to draw different notations for the Fork and Join.
An example shows the different Fork and Join notations