Skip to main content

Short note: Synchronization bar

Short answer

A synchronization bar (fork/join) in activity diagrams models concurrency. A fork splits one flow into parallel actions; a join waits for all parallel flows to complete before continuing. Example: 'Receive Order' forks to 'Pack Items' and 'Process Payment'; they join before 'Ship Order'.

Write a short note on Synchronization bar.

A synchronization bar is a thick horizontal (or vertical) line used in UML activity diagrams to show concurrency. It has two uses:

  • Fork: one incoming flow is split into two or more outgoing flows that execute in parallel (concurrent flows).
  • Join: two or more incoming flows are combined into one outgoing flow. The join waits until all incoming flows have arrived before the flow continues.
        ( Receive Order )
               |
        ======================  fork
          |             |
   [Pack Items]   [Process Payment]
          |             |
        ======================  join
               |
          [ Ship Order ]

Rules

  • In a well-structured diagram, the flows that leave a fork meet again at a matching join.
  • Guard conditions are normally not placed on fork branches, since all of them run.
  • A join is different from a merge: a merge (diamond) continues as soon as any one incoming flow arrives, while a join waits for all of them.

In UML 2 these are called the fork node and join node. They bring the model close to real parallel processing, e.g. multi-threaded implementations.

✓ Answer checked by Claude Opus 5.5 (high effort)

All Object Oriented Analysis and Design chapter 2 questions →