A method for capturing the interaction between objects
UML (unified modelling language) sequence diagrams model the flow of logic within a system in a visual manner. They can provide an easily-understood representation of a complex process, and are the most popular representation of dynamic information modelling.
UML sequence diagrams can be used to both document an existing process, or validate logic flows in a new process.
Sequence diagrams can model any process (technical or otherwise)
Why use a sequence diagram?
(1) Analysis and design
Sequence diagrams are useful tools to find architectural, interface and logic problems early in the design process. You can validate your interfaces, components and logic by testing how the system would handle both basic scenarios and special cases.
Sequence diagrams are valuable collaboration tools during design meetings because they allow you to discuss the design in concrete terms. You can see the interactions between entities, various proposed state transitions and alternate courses/special cases on paper as you discuss the design.
Sequence diagrams can be used to document the dynamic view of the system design at various levels of abstraction, which is often difficult to extract from other diagrams.
Local developer Peng Xiao (based in Melbourne) has created ZenUML... a tool that creates UML sequence diagrams from markup text.
This "diagram as code" solution supports the following structures:
Async and Sync Message
Fragments: Alt (If/Else), Loop. Parallel, Option
and finished diagrams can be saved as HTML files or images.
The generated diagram is not just a static image. Users can interact with the diagram. For example, highlighting messages on the diagram will automatically select corresponding code in the editor in editing mode. This enables quick navigation in long and complex diagrams.
ZenUML is available in an online editor; or can be added as plugin to your Confluence instance.
ZenUML is used at Amazon, PWC, Alibaba, ThoughtWorks, and 500 other organisations.
About the author
Peng is a senior consultant with extensive experience in enterprise software development and architecture.
Peng currently works for National Australia Bank (NAB) as a solution designer, but has multi-disciplinary experience in telecom, retail, insurance, and accounting industries.
Peng is the translator of POSA (Pattern-Oriented Software Architect V4 and V5, English to Chinese)
He is also an active open-source contributor.