Book a Demo

Please note : This help page is not for the latest version of Enterprise Architect. The latest help can be found here.

Prev Next

Fork/Join

A Fork/Join used in UML Activity diagrams as modeled using Sparx Systems Enterprise Architect.     A Fork/Join used in UML Activity diagrams as modeled using Sparx Systems Enterprise Architect.

The Fork/Join elements can be used to:

  • Fork or split the flow into a number of concurrent flows
  • Join the flow of a number of concurrent flows
  • Both join and fork a number of incoming flows to a number of outgoing flows

These elements are used in both Activity and StateMachine diagrams, in either vertical or horizontal orientation. With respect to StateMachine diagrams, Forks and Joins are used as pseudostates. Other pseudostates include History states, Entry Points and Exit Points. Forks are used to split an incoming transition into concurrent multiple transitions leading to different target states. Joins are used to merge concurrent multiple transitions into a single transition leading to a single target. They are semantic inverses. To learn more about these individual elements see their specific topics.

Example Diagrams

Description

Diagram

Fork or split the flow into a number of concurrent flows

Use of an Activity Fork/Join as a Fork in Sparx Systems Enterprise Architect's UML Activity model.

Join the flow of a number of concurrent flows

Use of an Activity Fork/Join as a Join in Sparx Systems Enterprise Architect's  UML Activity model.

Join and Fork a number of incoming flows to a number of outgoing flows

Using a Join and Fork on a number of incoming flows to a number of outgoing flows modeled in Sparx Systems Enterprise Architect.

Toolbox icon

Horizontal Fork/Join element

or

Vertical Fork/Join element

Learn more

OMG UML Specification:

Fork

The OMG UML specification (UML Superstructure Specification, v2.1.1, p. 376) states:

A fork node is a control node that splits a flow into multiple concurrent flows ... A fork node has one incoming edge and multiple outgoing edges.

Join

The OMG UML specification (UML Superstructure Specification, v2.1.1, p. 381-382) states:

A join node is a control node that synchronizes multiple flows ... A join node has multiple incoming edges and one outgoing edge.