GS Sequence Diagram Standard

Design icon.png This page contains the design document for an enhancement or feature. The design should be considered a work in progress and may not represent the final design. As this is a collaborative design, contributions and participation from other developers and users is encouraged. Use the discussion page for providing comments and suggestions.

Notes on Sequence Diagrams

  • Sequence show how Actors and Classes/Objects interact with eachother over time.
  • Extremely useful for identifying potential areas to impliment concurrency.
  • Extremely useful for identifying programing concept flaws.

Sequence Diagram Legend


  • Actors and Classes/objects are listed across the top
  • Time progresses downward.
  • A thin line under an object shows that the object exists, but is not active.
  • A thick line under an object shows that the object exists and is active.
  • A solid line indicates a call to a function of another class/object.
  • A dashed line indicates the return value (Not usually shown on initial sequence diagrams, but can be)
  • A solid arrowhead indicates a blocking call.
  • A winged arrowhead indicates a non-blocking call.
  • Text ontop of an arrow shows the name of the function being called. This is not manditory on initial Sequence Diagrams, but is required once the design matures.
  • An 'alt' block is the equivilent of an If/If-Else/If-ElseIf-Else statement.
  • A 'Loop' block is the equivlient of a while loop.
  • A 'par' block is a parallel block.
  • Any test in a [] set is called a guard, or a condition that is to be tested. In the event of an 'alt' block, its the if([condition]). Etc.