Software architecture diagrams - which tool should we use?

Posted 04/07/2020 | Views 235
Software architecture diagrams - which tool should we use?

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.

Post Comments

Bài viết xem nhiều
4 more random CSS3 progress bars Make some CSS3 progress bars (3 Part Series) 1)...
Views 280 | Posted 04/07/2020
Build an amazing Job Search App using React In this article, we will build a beautiful Job...
Views 269 | Posted 04/07/2020
Common command line
Common command line Mac - Linux Find and kill a process   kill $(ps...
Views 258 | Posted 04/07/2020
Do you have a "uses" page? We all are particular about the software and...
Views 252 | Posted 04/07/2020
15 Python PROJECT IDEAS: BEGINNER TO EXPERT [WITH FREE TUTORIAL] Python is an amazing programming language to...
Views 247 | Posted 04/07/2020