Categories
Uncategorized

Maintainable Software Architecture Diagrams

Architecture Design

Do you find yourself spending more time than you can afford to manually put your thoughts to picture? Would you rather focus on the design than moving graphics and shapes around?

Software Architecture documentation needs to be updated as the software evolves. Designing the software architecture documentation to be maintainable in the first place greatly helps to this direction as it makes all future operations easier. One of the most common elements in software architecture are diagrams. Manually drawing complex architectural diagrams can consume both time and effort. Using a diagram-as-code tool helps speed-up the process and reduce the effort for creating and maintaining architectural diagrams.

A Diagram-as-code tools helps you:

  • Quickly create diagrams using simple language syntax.
    Focus on describing what is important while the diagram-as-code tool takes care of drawing it.
  • Easily version and maintain the architecture.
    Maintain the architecture diagrams’ code in git (or any other source version control tool).
    Source version control tools provide detailed history and changes tracking to your architecture code out of the box.
    The more people work on the architecture, the more important this point gets.
  • Outdated documentation and diagrams are a technical debt.
    A diagram-as-code tool makes it faster to update diagrams.
    In this sense, diagrams-as-code tools make reducing or preventing technical debt faster and cheaper.

Plantuml is a diagram-as-code tool written in java that supports different UML diagrams such as:

  • Usecase diagram
  • Component diagram
  • Sequence diagram
  • Class diagram
  • Activity diagram
  • Object diagram
  • Deployment diagram
  • State diagram
  • Timing diagram

While manually generated diagrams may still be needed for presentations, a Diagram-as-code tool can reduce the editing effort needed for the architecture creation and maintenance.

Photo by Scott Graham on Unsplash