This repository serves as my notepad for architecture-related topics.
Here are some loose notes after having read various books and papers:
- π 97 Things Every Software Architect Should Know
- π Dapper, a Large-Scale Distributed Systems Tracing Infrastructure
What is Software Architecture?
The common understanding how the thing works is effectively the architecture. It is that fuzzy, embedded understanding what really matters. (...) There may be diagrams here and there, there may be documents (...) but they are just the representation, and usually an imperfect representation of that shared understanding. What you are trying to do with a software project, particularily as software projects grow, you want to make sure you have a good shared understanding between the people who are leading the project. That is really what matters.
Making Architecture Matter - Martin Fowler Keynote on OSCON 2015
https://youtu.be/DngAZyWMGR0?t=243
Fundamental concepts or properties of a system in its environment embodied in its elements, relationships, and in the principles of its design and evolution.
ISO 42010
How to visualise Software Architecture?
There are two widely-used notations:
- Archimate
Archimate addresses better higher-level aspects such as business-to-application mapping or application collaboration for complex heterogeneous systems. Archimate views are primarily static and it is difficult to present the dynamic nature of the systems. Sometimes the runtime behavious at this level can be separately visualised with BPMN. - UML
UML is used to present the composition of system components and their implementation in various degree of detail. UML offers a good selection of static and dynamic diagram types.
A good take on their differences:
Archimate describes the structure of cities, while UML describes the structure of houses and office buildings
Will there be a battle between Archimate and the UML? - Nick Malik
https://docs.microsoft.com/en-us/archive/blogs/nickmalik/will-there-be-a-battle-between-archimate-and-the-uml