Simon Brown’s C4 model - Intro
This learning hour introduces the basic ideas in The C4 model for visualising software architecture
Learning Goals
- list the names of the four models in the C4 model
- describe the problem which the C4 model solves
- sketch a Context diagram
- distinguish between important elements to show in a Context diagram and details to exclude
Session Outline
- 5 min connect: What architecture diagrams do you already know?
- 20 min concrete: analyse and draw diagrams for Instavoiced
- 10 min concept: C4 model
- 10 min concrete: draw Context diagram
- 10 min conclusions: compare original diagrams with Context diagram
Connect: What software architecture diagrams do you already know about?
Do an internet image search to find examples of the kinds of diagrams you are familiar with. Search by the name of diagram and find pictures that look similar to diagrams you’ve seen before. Paste a small example of each kind of diagram onto a shared online whiteboard. Add the name of the kind of diagram next to each one.
Note - this is a Web Hunt
Concrete: analyze Instavoiced
Working in pairs, read the description of the Instavoiced system.
- Sketch a high-level architecture for this system
- Document your architectural decisions in one or more diagrams
Use paper or a whiteboard.
Concept: C4 model
The front page of the The C4 model for visualising software architecture website explains these concepts. Present them in your own way.
- why we need architectural diagrams
- the analogy with zooming in on a map
- the four core diagrams
- the main abstractions used on the diagrams
Concrete
Continuing with the same Instavoiced system, start over on your diagrams. Draw a Context diagram. Use paper or a whiteboard.
Conclusions
Each pair posts their original and new diagrams in a place where everyone can see them. Walk around and look at everyone’s diagrams. Each person should note for themselves what is important to include or not include in a Context diagram.