1. C4 Lightweight Software Architecture Description Method¶
1.1. Introduction¶
The C4 Model is a lightweight software architecture description method. It consists of a set of 4 diagrams that describe the static structure of a software system.
Overall, C4 strives for clarity and communication of the story, and follows Shneiderman’s mantra:
Overview first, zoom and filter, then details-on-demand
It is not formal UML e.g. the UML actor stickman is deliberately not used as it causes confusion between a person or a system.
Tip
Multiple independent views of a system are better than just one view.
PlantUML sequence diagrams can give a good dynamic view of a system. Similar to C4, they can start at the top level, and zoom into the details in different diagrams.
The 4C’s |
|
---|---|
Context |
A high-level diagram that sets the scene; including key system dependencies and people (actors/roles/personas/etc). Context diagrams are standard in software engineering (even if not used often). |
Container |
A container diagram shows the high-level technology choices, how responsibilities are distributed across them and how the containers communicate. |
Component |
For each container, a component diagram lets you see the key logical components and their relationships. 4. |
Classes (or Code) |
This is optional and is the lowest level of detail. |
1.2. CheatSheet¶
The CheatSheet gives a good summary of the C4 model and diagrams.
1.3. Video Presentation¶
See youtube video from NDC2017 conference by Simon Brown on C4 for visualisation.