This repository contains some of the solution diagrams, technical architcture & UML diagrams I've created over diagrams.net (previously, Draw.io) for different personal & commercial projects.
Some best practices for system diagrams:
- Show system interactions: Use simple shapes and lines to indicate process flows and the ways different elements interact with each other. Highlighting these relationships makes it easier to assess how changes can impact the entire system.
- Include useful annotations: Add helpful explanations to critical pieces of your diagram giving teammates and stakeholders important context and information. It should provide more nuanced details not easily conveyed in the diagram.
- Keep structural and semantical consistency across diagrams: Every diagram should be consistent with the others in terms of boxes, shapes, borders, lines, colors, etc. From the semantical point of view, all of these diagrams should be periodically synchronized to latest code changes and between them, since a change in one diagram might impact others.
- Add legends next to architectural diagrams:: If you do not follow a standard architectural description language (e.g. UML, ArchiMate), detail every piece of the diagram in the legend (e.g. boxes, shapes, borders, lines, colors, acronyms, etc).
The Unified Modeling Language™ (UML®) is a standard visual modeling language. The latest version is 2.5.1, which was published on December, 2017 [Ref]
The UML specification defines two major kinds of UML diagram:
- Structure diagrams and
- Behavior diagrams
Behavioral UML diagrams
- Activity diagram
- Communication diagram
- Interaction overview diagram
- Sequence diagram
- Timing diagram
- State diagram
- Use case diagram
Structural UML diagrams
- Composite structure diagram
- Class diagram
- Deployment diagram
- Component diagram
- Package diagram
- Object diagram
- Profile diagram