C4 Model (c4model.com)
- is a type of diagram for representing software systems
Sections
- core/static structure
- supplemental diagrams
- notation
- software/tooling
1 - C4 Model (Core/Static Structure)
The C4 model considers the static structures in terms of:
Level 1 - Context
- contains a set of software-systems in which the target software-system communicates with
Level 2 - Containers
- contains a set of Containers
Level 3 - Components
- contains a set of Components
Level 4 - Code (UML or ERD)
- a code diagram of a single Component
- utilizes either:
2 - C4 Model (Supplemental Diagrams) *Optional
System Landscape Diagram (Larger Context)
- a bigger picture of “Context Diagram”
Dynamic Diagram
- dynamic diagram can be useful when you want to show how elements in a static model collaborate at runtime to implement a user story, use case, feature, etc
- is based upon a UML communication diagram (previously known as a “UML collaboration diagram”). It is similar to a UML sequence diagram although it allows a free-form arrangement of diagram elements with numbered interactions to indicate ordering
Deployment Diagram
- deployment diagram allows you to illustrate how software systems and/or containers in the static model are mapped to infrastructure. This deployment diagram
- is based upon a UML deployment diagram, although simplified slightly to show the mapping between containers and deployment nodes. A deployment node is something like physical infrastructure (e.g. a physical server or device), virtualized infrastructure (e.g. IaaS, PaaS, a virtual machine), containerized infrastructure (e.g. a Docker container), an execution environment (e.g. a database server, Java EE web/application server, Microsoft IIS), etc. Deployment nodes can be nested
3 - C4 Model (Notation/Syntax) *Optional
Icons Legend
Icon Description Format
4 - C4 Model (Software/Tooling) *Optional
- Structurizr
- Archi
- IcePanel
- Sparx Enterprise Architect
- Gaphor
- MooD
- Astah
- PlantUML
- diagrams.net
- OmniGraffle
- Microsoft Visio
- yED
/system-context.png)
/container.png)
/components.png)
/code.png)
/system-landscape-diagram.png)
/dynamic-diagram.png)
/deployment-diagram.png)
/diagram-legend.png)
/screen-shot-2021-05-28-at-11.20.22-am.png)