Leer en español · Lire en français · Auf Deutsch lesen
Chapter 4 of 12 · Intermediate
Documenting and Communicating Architecture
This chapter shows how to describe and communicate a software architecture so that the right people understand it and the description stays true. It covers who documentation is for and how much to write, views and viewpoints from ISO/IEC/IEEE 42010, 4+1 and Rozanski and Woods, the C4 model, the UML diagrams architects still use, Architecture Decision Records, arc42, diagrams as code, and presenting architecture to different audiences. It is practical throughout, using one food-delivery platform as a running example, and is written for developers, architects and technical leads.
Video introduction to Chapter 4
6 min · narrated, with captionsListen only (audio)
Read the transcript
Welcome to Chapter 4: Documenting and Communicating Architecture. This chapter shows how to describe a software architecture so that the right people understand it, and so that the description stays true. It is practical throughout, and it uses one food-delivery platform as a running example, so you can compare each technique on the same system.
An architecture that exists only in a few people's heads is fragile. Nobody outside the room can review it, the next engineer to join cannot learn it, an auditor cannot check it, and it leaves with the people who hold it. Documentation is easy to get wrong in either direction. Teams that write too little lose the reasons behind their structure, and keep having the same arguments. Teams that write too much produce wikis that nobody trusts. So the guiding principle of the chapter is simple: write for the reader. Decide who will use each piece of documentation and what they need from it, write that briefly and accurately, and write nothing else.
The chapter is written for developers, architects and technical leads. It builds on Chapters 1 to 3: the decisions and structures that now need describing. Sections one point five, on stakeholders and concerns, and one point six, on decisions and trade-offs, are especially useful background. And it leads into Chapter 5, which begins the catalogue of architectural styles, described with the tools you learn here.
The chapter has eight sections. Section four point one asks who documentation is for, and how to decide what deserves writing down. The short answer: write by hand what the code cannot tell you, and generate what the code already states. Section four point two introduces the central idea that one diagram is never enough. An architecture is described through several views, each answering the concerns of particular stakeholders. Section four point three turns that into the most widely used practical approach, Simon Brown's C4 model, with four zoom levels and a short set of notation rules that make diagrams explain themselves. Section four point four covers the parts of the Unified Modeling Language, or UML, that architects still use, such as sequence and state machine diagrams, and when their precision is worth the effort.
This diagram from Section four point one helps you decide how to document any piece of information. The upward axis asks whether it can be recovered from the code. The axis along the bottom asks how often it changes. Top left: things the code cannot tell you, which change rarely. Context and scope, quality goals, and decisions with their reasons. Write these by hand, and keep them. Top right: things that change more often, such as container and deployment views. Keep them next to the code, and review them with every change. Bottom right: what the code already states, and changes often, such as class diagrams and API references. Generate these in the pipeline. Never write them by hand. And bottom left: things you can read in the code that rarely change, like the technology stack or the build commands. A brief pointer in a read me file is enough.
Here is the first level of the C4 model from Section four point three: a system context diagram for the food-delivery platform. At the top are the three kinds of people who use it: customers, restaurant staff and couriers. Every arrow is labelled with what they do. In the middle is the platform itself, shown as a single box. It takes orders, takes payment, dispatches couriers and keeps everyone informed. Below are the external systems it depends on: a payment provider, a maps service and push services. At this level there are no technologies or protocols. Those come at the next zoom level, the containers. And notice the key. Every C4 diagram has a title and a key, so that it explains itself.
Diagrams show structure, but they rarely show why. Section four point five covers Architecture Decision Records, or ADRs: short, dated records of one decision each, with a complete worked record for the delivery platform. Section four point six shows how a template such as arc forty-two gives the whole description a standard organisation, so writers know what to cover and readers know where to look. Section four point seven tackles the problem that defeats most documentation: going stale. It covers writing diagrams as text, publishing documentation from the build pipeline, and the ownership habits that keep it true. Section four point eight turns from documents to people: tailoring the message to executives, developers, operations, security staff and auditors, explaining trade-offs, and building consensus when people disagree.
Every technique in this chapter serves one goal: a shared, accurate understanding of the system among the people who build, run, pay for and depend on it. Small, current, owned documentation that lives next to the code beats a comprehensive document that nobody trusts. So if you remember one question from this chapter, make it this: who will read this, and what will they do with it?
You can read the sections in order, or dip into the technique you need today. The whole chapter takes about three hours to read. As you go, compare how each technique describes the same food-delivery platform: as a context diagram, a container diagram, sequence and state diagrams, a decision record and a one-page summary. Each section ends with a few self-check questions. Answer them in your head before you look. When you are ready, take the optional chapter test: twenty multiple-choice questions and two written answers, in about forty five minutes. The pass mark is eighty per cent.
That is the map of Chapter 4. Start with Section four point one, where we look at who documentation is for, and how much of it is worth writing. See you there.
At a glance
You will learn to
- Explain who reads architecture documentation, what each reader needs and how to decide what is worth writing down.
- Distinguish stakeholders, concerns, viewpoints, views and model kinds as defined by ISO/IEC/IEEE 42010:2022.
- Compare the 4+1 view model, Rozanski and Woods's viewpoints and perspectives, and the SEI's three view categories.
- Draw system context, container and component diagrams that follow the C4 notation rules.
- Read and draw the UML sequence, state machine, component, deployment, activity and class diagrams architects use.
- Write Architecture Decision Records and manage their lifecycle in a decision log.
- Apply arc42 and diagrams-as-code practices to keep documentation useful and current.
- Tailor an architecture explanation to executives, developers, operations, security staff and auditors.
Before you start
Chapters 1 to 3, especially stakeholders and concerns (Section 1.5) and decisions and trade-offs (Section 1.6).
Time
About 3 hours to read; 45 minutes for the test.
Key terms
Architecture description · View · Viewpoint · Concern · 4+1 view model · C4 model · Container (C4) · UML · Sequence diagram · State machine diagram · Architecture Decision Record · arc42 · Diagrams as code · Docs as code
Why documenting architecture is part of the job
An architecture that exists only in a few people's heads is fragile. Nobody outside the room can review it, the next engineer to join cannot learn it, an auditor cannot check it, and it leaves with the people who hold it. Chapter 1 separated an architecture (what the system actually is) from an architecture description (the documents, diagrams and records through which people share it). This chapter is about the second: how to produce descriptions that people actually read, that stay true as the system changes, and that help decisions get made.
This is a practical skill more than a theoretical one, and it is easy to get wrong in either direction. Teams that write too little lose the reasons behind their structure and keep having the same arguments. Teams that write too much produce wikis nobody trusts. The guiding principle of the chapter comes from the SEI's Documenting Software Architectures: Views and Beyond: write for the reader. Decide who will use each piece of documentation and what they need from it, write that briefly and accurately, and write nothing else.
One running example appears throughout: a food-delivery platform with a customer app, a restaurant app and a courier app, services for ordering, dispatch and notifications, and card payments through an external provider. You will see it as a context diagram, a container diagram, a component diagram, UML sequence and state diagrams, a decision record and a one-page arc42 summary, so you can compare each technique on the same system.
Describing and drawing: Sections 4.1 to 4.4
The first four sections cover what to describe and how to draw it. Section 4.1 asks who documentation is for, what the Agile Manifesto does and does not say about it, how to decide what deserves writing down and which anti-patterns to avoid. The short answer is to write by hand what the code cannot tell you (context, quality goals, decisions and their reasons) and to generate what the code already states.
Section 4.2 introduces the central idea that one diagram is never enough. An architecture is described through several views, each answering the concerns of particular stakeholders and each built according to a viewpoint. The section covers the ISO/IEC/IEEE 42010:2022 conceptual model, Kruchten's 4+1 view model, Rozanski and Woods's viewpoints and perspectives, and the SEI's module, component-and-connector and allocation categories, and shows how to choose the minimum set of views a system needs.
Section 4.3 turns that theory into the most widely used practical approach, Simon Brown's C4 model: four zoom levels (system context, container, component, code), a few supplementary diagrams and a short set of notation rules that make diagrams explain themselves. Section 4.4 covers the parts of UML that architects still use, chiefly sequence, state machine, component, deployment, activity and small class diagrams, and when UML's precision is worth the effort.
Decisions, templates, tooling and people: Sections 4.5 to 4.8
Diagrams show structure; they rarely show why. Section 4.5 covers Architecture Decision Records: Michael Nygard's 2011 format, alternatives such as MADR and Y-statements, the lifecycle of a record from proposed to superseded, and a complete worked record for the delivery platform. Section 4.6 shows how a template such as arc42 gives the whole description a standard organisation, so writers know what to cover and readers know where to look, and how to use it lightly for a small system.
Section 4.7 deals with the problem that defeats most documentation: staleness. It covers writing diagrams as text with PlantUML, Mermaid, Structurizr DSL and D2, the difference between drawing and modelling tools, publishing documentation from the build pipeline and the ownership and review habits that keep documentation true. Section 4.8 widens the lens from documents to people: tailoring the message to executives, developers, operations staff, security teams and auditors, explaining trade-offs, following one request through a system, design documents and RFC processes, presenting at a review and building consensus when people disagree.
The one idea to take away
Every technique in this chapter serves one goal: a shared, accurate understanding of the system among the people who build, run, pay for and depend on it. A diagram, a decision record or a template is worth producing only if a real reader needs it, and only for as long as someone keeps it true. Small, current, owned documentation that lives next to the code beats a comprehensive document that nobody trusts. If you remember one question from this chapter, make it this: who will read this, and what will they do with it?
The 8 sections
Chapter test
Test your understanding of Chapter 4
Optional: 20 multiple-choice questions and 2 short written answers, drawn afresh from a bank of 72 questions. Pass mark 80%. Passing every chapter test, then the final assessment, earns the Be Wise Certificate of Completion.
Take the Chapter 4 test in the appFurther reading
- Documenting Software Architectures: Views and Beyond, 2nd edition, Paul Clements, Felix Bachmann, Len Bass, David Garlan, James Ivers, Reed Little, Paulo Merson, Robert Nord and Judith Stafford (2010), Addison-Wesley. The most thorough treatment of architecture documentation: views, styles, the seven rules for sound documentation and a documentation template.
- Software Systems Architecture: Working with Stakeholders Using Viewpoints and Perspectives, 2nd edition, Nick Rozanski and Eóin Woods (2012), Addison-Wesley. A practical catalogue of seven viewpoints and of perspectives such as security and performance, aimed at large information systems.
- Architectural Blueprints: The "4+1" View Model of Software Architecture, Philippe Kruchten (1995), IEEE Software 12(6). The short paper that popularised multi-view architecture description and scenario-based validation.
- ISO/IEC/IEEE 42010:2022 Software, systems and enterprise: Architecture description, ISO/IEC JTC 1/SC 7 and IEEE (2022), ISO. The international standard defining stakeholders, concerns, viewpoints, views and model kinds.
- The C4 Model: Visualizing Software Architecture, Simon Brown (2026), O'Reilly Media. The creator's own account of the C4 abstractions, diagrams and notation; the website covers the essentials free of charge.
- UML Distilled: A Brief Guide to the Standard Object Modeling Language, 3rd edition, Martin Fowler (2003), Addison-Wesley. A short, practical guide to the parts of UML worth knowing, and the source of the sketch, blueprint and programming-language distinction.
- Living Documentation: Continuous Knowledge Sharing by Design, Cyrille Martraire (2019), Addison-Wesley. How to derive documentation from the system itself and keep hand-written material to what only people can supply.