Software Architecture Toolkit

software architecture toolkit

Summary

This post contains the curated list of tools, patterns, processes and architecture frameworks used in many software architecture practice.

The audience for the below list is wide, ranging from software engineers and tech leads to enterprise architects.

Software Architecture Diagrams

Software architecture diagrams are a key visualization technique used by system architects.

There are 2 types of tools in this category - diagramming and modelling.

Diagramming tools provide canvas where software architects draw diagrams, save and export them in different formats.

Modeling tools on the other hand allow to build non-visual model of system architecture - all elements, their relationships etc. And then they can provide visualizations at different levels of the system.

Below is a list of commonly used software architecture diagramming and modeling tools.

  • C4 Model is a model for visualising software architecture. It proposes 4 different levels of diagrams in order to maintain system architecture. It's tool independent method. Structurizr is a system modeling tool based on C4 framework.

  • LikeC4 is another system modeling tool, mainly based on C4 diagramming model from the above. It has its own DSL for creating system models. Provides web interface to view visualizations.

  • Eraser is cloud based diagramming tool built for team collaboration. It has expermental GenAI integration which allows diagram autogeneration.

  • Mingrammer Diagrams. Draw and version control your cloud system architecture in Python. Part of Diagrams as Code practice. Open source project.

  • Mermaid. Markdown-inspired framework for generating diagrams and charts. Based on Javascript programming language. Open source project.

  • PlantUML. A software tool which allows to generate of various diagram types from specific text-based definitions. Widely supported in industry with multiple plugins. Based on the Java programming language. Open source project.

  • BPMN viewer and editor allows you to create, embed and edit BPMN diagrams in Internet browser. Its an open source project.

  • ReadTheDocs is documentation as code platform. It supports multiple formats for maintaining software system documentation. Markdown, Sphinx, Mkdocks, Jupyter books all supported.

  • Fundamental Modeling Concepts (FMC) provide a framework for the describing of software systems. Main goal of this framework to control complexity by efficiently communicating system designs.

  • Archi is open source modeling toolkit for creating ArchiMate Enterprise Architecture models and sketches.

Architecture Decision Records

Why is usually more important than how.

An Architecture Decision Record or short ADRs is a technique of maintaining simple and concise documents that explain why technical decisions are going to be made this way.

Below are related articles explaining ARD concepts:

Architecture Assessments

The approaches and frameworks below will help you assess existing software architectures and plan what good looks like for future systems.

Well-Architected

Well-architected has become the universal framework for building reliable, secure, and performant cloud applications.

Once AWS released a well-architected framework related to their cloud platform, Microsoft Azure and Google Cloud followed with equivalents.

Relevant articles:

Domain Driven Design

It's a collection of principles to design elegant technical systems.

Based on the business domain models it reduces the gap between the functional purpose which technical system has to serve and its code implementation.

Relevant articles:

Notes

Collection of Technology Architecture related content resources.

Similar posts