loading...
Cover image for Software architecture diagrams - which tool should we use?

Software architecture diagrams - which tool should we use?

simonbrown profile image Simon Brown Updated on ・2 min read

Software architecture diagrams as text (5 Part Series)

1) Modelling software architecture with PlantUML 2) Software architecture diagrams - which tool should we use? 3) Visio, draw.io, LucidChart, Gliffy, etc - not recommended for software architecture diagrams 4) Getting started with the Structurizr DSL 5) Getting started with the Structurizr CLI

In Modelling software architecture with PlantUML, I showed you a way to generate multiple software architecture diagrams in PlantUML format, all from a single definition of a model and views. That definition was written using the open source Structurizr DSL, which itself is independent of any diagramming tool.

Static structure diagrams

"Which diagramming tool should we use?" - I hear this question on a regular basis, with teams debating the pros and cons of tools such as PlantUML vs Mermaid, for example. Rather than argue over which diagramming tool you're going to use, why not use them all? Although we only saw PlantUML support in the previous blog post, the open source Structurizr CLI actually allows you to use a number of tools to render your software architecture diagrams. For example, here are four versions of the same view (a C4 model Container diagram), each created from the same DSL file, and rendered in different diagramming tools.

PlantUML

PlantUML

 Mermaid

Mermaid

Structurizr (traditional diagram)

Structurizr - traditional diagram

Structurizr (graph view)

Structurizr - graph view

Dynamic/behavioural diagrams

The Structurizr DSL and CLI also support Dynamic diagrams for showing collaboration/behaviour, and interactions at runtime. For example, here are four versions of a Dynamic view, again created from the same DSL file, and rendered in different diagramming tools.

PlantUML

Alt Text

Mermaid

Alt Text

WebSequenceDiagrams

Alt Text

Structurizr

Alt Text

Summary

Each diagramming tool has its own pros and cons, so using a tool agnostic format to define your model and views provides an easy way to try them all out, and reduce lock-in.

Software architecture diagrams as text (5 Part Series)

1) Modelling software architecture with PlantUML 2) Software architecture diagrams - which tool should we use? 3) Visio, draw.io, LucidChart, Gliffy, etc - not recommended for software architecture diagrams 4) Getting started with the Structurizr DSL 5) Getting started with the Structurizr CLI

Posted on by:

simonbrown profile

Simon Brown

@simonbrown

Author "Software Architecture for Developers" | Creator of the "C4 model for visualising software architecture" | Founder at Structurizr | Software architecture training at architectis.je

Discussion

markdown guide
 

Thanks for very useful overview. I'm using PlantUML, but will take a look into other tools.
By the way, perhaps you may suggest how to visualize Data Dependency Graphs with these tools?

 

Thanks, you're welcome! The Structurizr DSL is specifically designed to support the C4 model for visualising software architecture, so that itself isn't a good fit. But tools like PlantUML, Mermaid, Graphviz, and d3.js will help you create graphs.

 

I use draw.io a lot. Very easy to use. What do you think about it?

 

I've just written a blog post about this: Visio, draw.io, LucidChart, Gliffy, etc - not recommended for software architecture diagrams

The tl;dr is that I don't recommend general purpose diagramming tools for software architecture diagrams, for the following reasons:

  • No guidance
  • Content and presentation is mixed
  • No model, no consistency
  • Hard to diff
  • Limited automation
  • Time consuming

draw.io is an excellent tool, but there are better approaches for software architecture diagrams.

 

I see. So far I found it very handy. But the software you mentioned might be more fun. I must try them. Thanks

 

Great post simon, just saw it on LinkedIn and thought I follow you here.