DOCUMENTING SOFTWARE ARCHITECTURES
● Chapter 09 — Software Design & Architecture

An architecture nobody can read is an architecture that fails.

Think of this chapter as a library card catalog: the architecture is the whole collection, and documentation is the cataloging system that lets every stakeholder find exactly the view they need.

Catalog Drawer — CH.09
Subject
Documenting Architecture
Core Model
Kruchten's 4+1 Views
3 Purposes
Teach · Talk · Test
Golden Rule
Minimal but adequate
005.1 WHY
The stakes

Why document the architecture at all?

A system's architecture may be the single biggest determinant of success or failure. But an architecture that only lives in one person's head might as well not exist — communicating it is as important a job as designing it.

🗂️
Memory Hook

"Unknown. Unclear. Misused."

Even the best architecture becomes useless the same three ways: people don't know it exists, can't understand it well enough to use it, or misunderstand it and apply it wrong. Documentation is the fix for all three.

01
🙈

Don't know it

No documentation reaches them at all — the architecture is effectively invisible.

02
😵

Can't understand it

Documentation exists but isn't clear enough to build, use, or modify the system with.

03
🚧

Misunderstand it

They read it, get the wrong idea, and apply the architecture incorrectly — often the costliest failure.

📇

What "documenting" actually means

Choose a set of relevant views → document each view → document information that spans more than one view (or the whole set). That's the entire job, in one sentence.


005.2 USES
Three jobs, one document

The three uses of documentation

🎓
Memory Hook

"Teach it. Talk it. Test it."

Every piece of architecture documentation ultimately serves one of three purposes — Education, Communication, or Analysis.

TEACH
🎓

Education

Introduces new people to the project — the on-ramp for anyone joining.

TALK
💬

Communication

Keeps every stakeholder — up, down, and across the org chart — on the same page.

TEST
🔍

Analysis

Lets you (or a reviewer) verify the quality attributes are actually going to be met.


005.3 PLAN
Before you write a word

The goal of documentation planning

Four questions to answer before producing any documentation — remember them as Views → Who → Worries → Write-up.

Select common views of the software architecture

Decide which architectural views (see the 4+1 model below) are actually worth documenting for this system.

Define stakeholders

Who is this documentation for? Managers, developers, testers, and customers all need different things.

Identify stakeholders' concerns

What does each stakeholder actually need to know? Build a table mapping stakeholder → concern → view.

Define what and how to document

Pick a template (e.g. RUP or SEI) that structures the content consistently.


005.4 WHO
The readers of your catalog

Define your stakeholders

Every card in the catalog has a different patron. Sample stakeholders you'll typically document for:

🧭

Project Manager

Tracks progress & risk

👩‍💻

Dev Team Member

Builds within the design

🧪

Testers / Integrators

Verify behavior & fit

🔧

Maintainers

Modify it long-term

🏗️

Product Line Builder

Reuses across products

🤝

Customer

Confirms it meets needs

🙋

End User

Cares about the outcome

📊

Analyst

Assesses quality attributes

🖧

Infrastructure Support

Runs & hosts the system

🏛️

Current / Future Architect

Owns & evolves the design

Then map their concerns to a view

Build a table like this — it lets you prioritize views by whose concerns carry the most weight.

No. Stakeholder Concern to address Suitable view
1 Project Manager e.g. Is the schedule realistic? Development view
2 Maintainer How do I change module X safely? Development / Logical
3 Infrastructure Support Where does each service run? Physical view
4 Analyst Will it handle peak load? Process view
5 End User Does it support my workflow? +1 Use-case view

005.5 VIEWS
Kruchten's model — the one this course uses

The 4+1 architectural views

Several view-set approaches exist (Siemens Four Views, Herzum & Sims, the SCR method) — but Kruchten's 4+1 is the most widely used, and the one we focus on.

🏛️
Memory Hook

Think of a building's drawing set.

A floor plan, a traffic-flow diagram, a set of construction packages, a site map — and a guided tour that walks you through all four at once using a real use case.

L
🧠

Logical View

Behavioral requirements. Key abstractions — objects and object classes. (the floor plan)

P
⚙️

Process View

Concurrency & distribution — maps threads to objects. (the traffic flow)

D
📁

Development View

Organization of modules, libraries, subsystems, units of development. (construction packages)

P
🖥️

Physical View

Maps elements onto processing & communication nodes. (the site map)

+1
🎬

Use-Case View

Maps the other four views onto key use cases to show how they work together. (the guided tour)

Say it as: "L-P-D-P, plus one" — four independent lenses on the same system, tied together by one narrated walkthrough.

Other view-set approaches (for context)

Approach Views it defines
Siemens Four Views Conceptual · Module interconnection · Execution · Code
Herzum & Sims Technical · Application · Project management · Functional architecture
Software Cost Reduction (SCR) Module view (modifiability) · Process view (performance) · Uses view (incremental development)
💡

Planning tip

Choosing a view set means understanding stakeholder needs, how they'll actually use the documentation, and the resources you have available — not just picking every view that exists.


005.6 HOW
Picking a format

Define how to document

Once you know your views, stakeholders, and concerns, pick a template to structure the write-up. Two common ones:

RUP

Rational Unified Process template

Introduction → Architectural Representation → Goals & Constraints → Use-Case View → Logical View → Process View → Deployment View → Implementation View → Data View → Size & Performance → Quality.

SEI

Software Engineering Institute template

Documentation Roadmap → Stakeholder Representation → Viewpoint Definitions → Architecture Background (problem + solution) → Views → Directory (index, glossary, acronyms).

What every architecture document needs — no more, no less

Software
Architecture
Document
Problem description
🌍Context
💡Rationale
📐Principles & guidelines
🏗️Structure
🗺️Views
📈Quality attributes

The golden rule

A software architecture document should contain the minimum information necessary to understand the system — but no more than that.


005.7 CARD
Filling out one catalog card

Documenting a single view

Every view — Logical, Process, whichever — gets documented the same way, with up to five parts.

📇
Memory Hook

"Penguins Explain Context Very Beautifully."

Primary presentation, Element catalog, Context diagram, Variability guide, architecture Background — in that order, front to back of the card.

Primary presentation

Usually graphical ("the cartoon"), sometimes a table. Includes a key/legend and shows the elements + relationships you most want to convey. Often all a reader gets — but rarely enough on its own.

Element catalog

Explains every element in the picture: their properties, their relations, any exceptions, and their interfaces.

Context diagram

Shows how this view — or the part of the system it covers — relates to its surrounding environment.

Variability guide

Explains how to exercise any variation points left unbound until a later development stage.

Architecture background

The rationale for this view's decisions — including rejected alternatives, analysis results, and assumptions about the environment and the need being met.


005.8 XREF
The cross-references in the catalog

Documenting beyond the view

Some information doesn't belong to just one view — it applies across the whole set, like the drawers of the catalog cabinet itself.

🗄️
Memory Hook

"Read View, Study Maps, Reason Directly."

Roadmap, View documentation, System overview, Mapping between views, Rationale, Directory.

01
🗺️

Documentation roadmap

How the docs are organized per stakeholder — a list of views plus scenarios for which parts to consult.

02
📐

View documentation

Explains how each view is documented, and the standard organization used for all of them.

03
📝

System overview

A short prose description of the system's function, users, background, and constraints — a shared mental model.

04
🔗

Mapping between views

Useful correspondences between views, often captured as tables.

05
💭

Rationale

Architectural decisions that span multiple views — background constraints, major requirements, and which fundamental patterns were chosen.

06
📚

Directory

Reference material for quick lookup: index of terms, glossary, acronym list.


005.9 QA
The fine print every stakeholder checks

Documenting quality attributes

Quality attribute requirements need their own paper trail — every one of them has a constituency of stakeholders who need proof it will be satisfied.

💬

Rationale & tradeoffs

The document should explain why a design approach was chosen, and discuss the tradeoffs among competing quality attributes.

📏

Bounds on elements

Architectural elements providing a service often get explicit quality-attribute bounds assigned to them.

🔗

Requirements mapping

Documentation often maps requirements — including quality-attribute requirements — to how the architecture satisfies them.

👥

Named, not implied

Quality attributes should be clearly and explicitly identified — never left for the reader to infer.


005.10 TL;DR
The whole chapter, one card

Summary cheat sheet

Question Answer
Why document? An architecture no one can find, understand, or apply correctly might as well not exist.
What are the 3 uses? Education, Communication, Analysis — "Teach it, Talk it, Test it."
What's the planning order? Views → Who (stakeholders) → Worries (concerns) → Write-up (template).
Which view model do we use? Kruchten's 4+1: Logical, Process, Development, Physical, +1 Use-Case.
How do you document one view? Primary Presentation, Element Catalog, Context Diagram, Variability Guide, Architecture Background.
What spans multiple views? Roadmap, View Documentation, System Overview, Mapping, Rationale, Directory.
How much documentation is enough? The minimum necessary to understand the system — no more.

005.11 QUIZ
Active recall

Flip-card review

tap a card to flip it

Q1Name the three ways an undocumented architecture fails people.
They don't know it exists, can't understand it well enough to use it, or misunderstand it and apply it incorrectly.
Q2What are the three uses of architecture documentation?
Education (teach), Communication (talk), Analysis (test quality attributes).
Q3What are the 4 views in Kruchten's model, plus the "+1"?
Logical, Process, Development, Physical — plus a Use-Case view that maps the others onto real scenarios.
Q4Which view addresses concurrency and distribution?
The Process view — it maps threads to objects.
Q5What 5 parts make up the documentation of one view?
Primary Presentation, Element Catalog, Context Diagram, Variability Guide, Architecture Background.
Q6What 6 things get documented beyond individual views?
Documentation Roadmap, View Documentation, System Overview, Mapping between views, Rationale, Directory.
Q7What's the golden rule for how much to document?
Include the minimum information necessary to understand the system — and no more.
Q8What three things live in a documentation "Directory"?
An index of terms, a glossary, and an acronym list.
Q9Name two other view-set approaches besides 4+1.
Siemens Four Views (Conceptual, Module interconnection, Execution, Code) and Herzum & Sims (Technical, Application, Project management, Functional).