Leer en español · Lire en français · Auf Deutsch lesen
Section 4.2 of 4.8 · Intermediate · 20 min read
Views and viewpoints: ISO/IEC/IEEE 42010, 4+1 and Rozanski and Woods
Video lesson
5 min · narrated, with captionsListen only (audio)
Read the transcript
No single diagram can describe a real system. In this lesson you'll learn how architects describe a system through several views, and how to choose only the views people actually need.
Think of a house again. The buyer looks at the floor plan. The electrician looks at the wiring plan, and the plumber at the pipe layout. The planning officer looks at the drawing of the front of the house. Each drawing leaves most things out on purpose, so it can answer one person's questions clearly. Put everything on one page and you get the familiar architecture poster: dozens of boxes, and lines meaning six different things.
Two words matter here. A view represents a system from the perspective of particular concerns. A viewpoint is the reusable set of conventions for drawing one kind of view: the concerns it frames, its typical stakeholders, and the notations to use. A viewpoint is like a type of map. A road map is defined by its conventions and its users, the drivers. A view is one particular map drawn to those conventions, such as the road map of Scotland.
The international standard for architecture description, ISO/IEC/IEEE 42010, gives these words precise meanings. At the top, an entity of interest, such as the delivery platform, has an architecture, and an architecture description expresses it. Inside the description, stakeholders have concerns. Concerns are the hinge of the whole model. A viewpoint frames concerns and governs a view. The view addresses those concerns for this particular system. A view is composed of view components, such as diagrams, tables and models. Each is governed by a model kind, like a sequence diagram, which the viewpoint says to use. Decisions and their rationale are part of the description too, and pertain to concerns. And correspondences link elements across views: this container runs on that cluster in the deployment view.
The first widely adopted multi-view approach was Philippe Kruchten's four plus one view model, published in 1995. The logical view describes the functionality the system provides to end users: its key abstractions and their relationships. The development view shows how the software is organised for programmers: modules, layers and subsystems. The process view covers runtime concerns: processes, threads, concurrency and performance. The physical view maps the software onto machines and networks. And the plus one is the scenarios: a few important use cases, each traced through all four views. They are the part most often forgotten, and arguably the most valuable, because walking one real scenario exposes gaps that tidy views can hide.
Rozanski and Woods offer a catalogue of seven viewpoints for large information systems, from context through to operational: how the system is installed, monitored and supported in production. They add perspectives. Security or performance is not another view to draw. It's a set of questions and checks applied to every view, because qualities emerge from the whole system. The Software Engineering Institute, or SEI, groups views into three categories. Module views show units of code. Component-and-connector views show what runs and how it interacts. Allocation views map software onto infrastructure, files and teams. Each category answers questions the others cannot, so a complete documentation set includes at least one view from each.
How do you choose? List your stakeholders and their concerns, and map each concern to a view. Then keep the smallest set that answers them, because every view must be kept up to date. For the food-delivery platform, one context view serves everyone. One container diagram covers the runtime structure, with component diagrams only for the ordering and dispatch services, which are the most complex and change most. An information view was added only because the table showed that the data protection officer's concerns were otherwise unaddressed. Without the table, it would have been missed. A deployment diagram for production marks the card-data boundary and the network zones. The module view isn't drawn by hand at all. It's generated from the code. And four sequence diagrams act as scenarios, while security and availability are checked in every view. Seven artefacts, most of them single diagrams, answer the concerns of all seven stakeholder groups.
Watch for three common mistakes. The first is mixing categories, drawing code packages, running services and servers on one canvas, with lines that mean different things. The second is drawing views because a framework lists them, while missing the one view the operations team needs. The third is views that contradict each other: the container view shows six services, but the deployment view shows five. Recording correspondences, and reviewing, catches this.
The full section compares the approaches side by side, and gives a step-by-step procedure for choosing views. Next, in Section four point three, we turn this into the most widely used practical approach: the C4 model. See you there.
What you need to know
- A view represents a system from the perspective of particular concerns; a viewpoint is the reusable set of conventions (concerns framed, stakeholders, model kinds) for constructing one kind of view.
- In ISO/IEC/IEEE 42010:2022, stakeholders have concerns, viewpoints frame concerns and govern views, views address concerns and consist of view components governed by model kinds, and correspondences relate elements across views.
- Kruchten's 4+1 model (IEEE Software, 1995) uses logical, process, development and physical views, tied together and validated by a small set of scenarios.
- Rozanski and Woods define seven viewpoints (context, functional, information, concurrency, development, deployment, operational) and perspectives, such as security and performance, that are applied across all views rather than drawn as views.
- The SEI groups views into module, component-and-connector and allocation categories; a complete documentation set includes at least one of each.
- Choose the minimum set of views by mapping stakeholders and concerns to views, combining views where possible and documenting risky areas in more depth than routine ones.
One system, many views
No single diagram can describe a real system. A drawing that shows how the food-delivery platform's code is divided into modules says nothing about which servers they run on; a drawing of servers and networks says nothing about what happens, step by step, when a courier accepts a job. If you try to put all of this on one page you get the familiar architecture poster: dozens of boxes, lines meaning six different things, and nobody able to answer a precise question from it.
The idea that resolves this is old and simple. Describe the system through several views, each showing one set of structures for one set of concerns, just as a building is described by a floor plan, an elevation, a wiring plan and a plumbing plan. Each is a partial description; together they describe the whole. This idea underpins the international standard, Kruchten's 4+1 model, Rozanski and Woods's viewpoint catalogue, the SEI's Views and Beyond approach and, in a lightweight form, the C4 model in the next section. This section explains the vocabulary they share and how to choose the views a particular system needs.
Recall from Section 1.5 that a stakeholder is anyone with an interest in the system and a concern is any matter of importance to a stakeholder. Views exist to answer concerns. A view that answers nobody's concern is decoration.
The ISO/IEC/IEEE 42010:2022 conceptual model
ISO/IEC/IEEE 42010 is the international standard for architecture description. Its current edition was published in 2022 and replaced the 2011 edition. It does not tell you how to design, which notation to use or which views to draw; it defines the concepts an architecture description should contain and how they relate, so that descriptions produced by different methods can be compared and checked. Its conceptual model is the common skeleton of almost every documentation approach in this chapter.
The model starts with the entity of interest: the thing whose architecture is described, which can be a software system, a system of systems, a product line or an enterprise (the 2011 edition called it the system of interest). The entity has an architecture, and an architecture description expresses it. Inside the description, stakeholders have concerns. A viewpoint is a reusable specification of conventions for constructing and using one kind of view: it names the concerns it frames, the typical stakeholders, and the model kinds (notations and modelling conventions) to use. A view applies a viewpoint to a particular entity: it addresses those concerns for this system, and is made of view components, such as diagrams, tables and models, each governed by a model kind (the 2011 edition called view components architecture models).
Two further elements matter in practice. Correspondences record relations between elements of the description, most usefully between views: this container in the container view runs on that cluster in the deployment view; this requirement is addressed by that decision. And architecture decisions and their rationale are part of the description, linked to the concerns they address. The 2022 edition also defines more fully two concepts the 2011 edition already mentioned, stakeholder perspectives (ways of grouping concerns) and architecture aspects (characteristics of the entity that cut across views), renames "architecture framework" as architecture description framework, and defines what conforming architecture description frameworks, such as a company's own documentation template, must contain.
The 42010 conceptual model, simplified
Kruchten's 4+1 view model
Philippe Kruchten, then at Rational Software, published Architectural Blueprints: The "4+1" View Model of Software Architecture in IEEE Software in November 1995. The 4+1 view model was the first widely adopted multi-view approach and became part of the Rational Unified Process. Kruchten's argument was that the single diagrams of the day tried to capture too much at once, and that different stakeholders (end users, developers, system engineers, project managers) need different views.
The four views are these. The logical view describes the functionality the system provides to end users, typically as the key abstractions and their relationships (in UML, class and state diagrams). The process view addresses runtime concerns: processes and threads, concurrency, distribution, performance, scalability and fault tolerance. The development view (also called the implementation view) describes the organisation of the software in its development environment: modules, subsystems, layers and their dependencies, which matter to programmers and to managers planning the work. The physical view (or deployment view) maps the software onto hardware and networks. The "+1" is the scenarios: a small set of important use cases, each traced through all four views, which both illustrate the architecture and validate that the views fit together.
The scenarios are the part most often forgotten and arguably the most valuable. A view in isolation can look tidy while hiding a gap; walking one real scenario such as "customer places an order" through the logical, process, development and physical views exposes missing elements and inconsistent assumptions. The same idea reappears in the runtime view of arc42, in C4 dynamic diagrams and, in Section 4.8, in the advice to explain a system by following one request.
The 4+1 view model
Rozanski and Woods: viewpoints and perspectives
Nick Rozanski and Eóin Woods's Software Systems Architecture: Working with Stakeholders Using Viewpoints and Perspectives (2nd edition, Addison-Wesley, 2012) offers a catalogue of seven viewpoints aimed at large information systems, together with a second, complementary idea: perspectives.
Their seven viewpoints are: context (the system's relationships with people, systems and external entities around it), functional (the runtime functional elements, their responsibilities, interfaces and primary interactions), information (how data is stored, managed, owned and distributed), concurrency (which parts run concurrently and how they are coordinated), development (what developers, testers and builders need: module structure, common processing, standards and codeline organisation), deployment (the runtime environment and how software maps onto it) and operational (how the system is installed, migrated, administered, monitored and supported in production).
A perspective is their name for a quality concern that cuts across all views, such as security, performance and scalability, availability and resilience, or evolution (their catalogue also includes accessibility, development resource, internationalisation, location, regulation and usability). A perspective is not another view to draw. It is a set of questions, tactics and checks applied to every view: for security, you examine the context view for external actors and trust boundaries, the information view for sensitive data, the deployment view for network zones, and so on. This captures something single views cannot: qualities emerge from the whole system, so they have to be checked everywhere (compare Chapter 2's quality models).
The operational viewpoint deserves particular attention because many approaches underplay it. Who installs the system, how data is migrated from the old one, how configuration is managed, what operators monitor and how they are alerted: these are architectural questions whose answers shape the system, and leaving them until just before go-live is a classic cause of failed launches.
The SEI's three categories: module, component-and-connector, allocation
Chapter 1 introduced the SEI's grouping of structures into three kinds (see Section 1.1). Documenting Software Architectures: Views and Beyond uses the same grouping to organise views, and it is the most useful way to check that a set of views is complete.
Module views show units of implementation (packages, libraries, namespaces) and relations such as is part of, depends on and is a. Typical styles are decomposition, uses, generalisation, layered and data model views. Component-and-connector (C&C) views show the elements present at runtime (services, clients, databases, queues) and the connectors through which they interact (HTTP calls, messages, shared data); typical styles include client-server, publish-subscribe, pipe-and-filter, shared-data and multi-tier. Allocation views map software elements onto non-software things: onto hardware and cloud infrastructure (deployment), onto the file system and build artefacts (implementation and install) and onto teams (work assignment).
The three categories map naturally onto the other approaches. Kruchten's development view is a module view, his process view a C&C view and his physical view an allocation view. Rozanski and Woods's functional and concurrency viewpoints are mostly C&C, their development viewpoint is module, and their deployment and operational viewpoints are allocation. The C4 container and component diagrams of the next section are C&C views with some module flavour, and C4 deployment diagrams are allocation views. When you assemble a documentation set, check that it contains at least one view from each category, because each answers questions the others cannot.
Approaches compared
| Concern area | 4+1 (Kruchten) | Rozanski and Woods | SEI category | C4 diagram |
|---|---|---|---|---|
| System boundary, users, external systems | (implicit in scenarios) | Context | C&C (context) | System context |
| Runtime elements and interactions | Process (and logical) | Functional, concurrency | Component-and-connector | Container, component, dynamic |
| Data ownership and flow | (not separate) | Information | Module (data model) and C&C | (not separate) |
| Code organisation | Development | Development | Module | Component, code |
| Mapping to infrastructure | Physical | Deployment | Allocation | Deployment |
| Running the system in production | (not covered) | Operational | Allocation (partly) | (not covered) |
| Validation through use cases | Scenarios (+1) | (applied to every view) | Behaviour documentation | Dynamic |
Mapping stakeholders and concerns to views
The most practical tool from the standard is a simple table: list the stakeholders and their main concerns, then name the view or views that address each concern. Gaps (a concern no view addresses) show where the description is incomplete; views no one needs are candidates for deletion. The table below is a first pass for the food-delivery platform.
Stakeholders, concerns and views for the food-delivery platform
| Stakeholder | Main concerns | Views that address them |
|---|---|---|
| Product managers and sponsors | Scope, external partners, what is bought versus built, cost | Context view; one-page overview with quality goals and top risks |
| Developers in each team | Where code belongs, interfaces between services, conventions | Container view; component view for complex services; cross-cutting concepts; decisions |
| Operations and SRE | Where things run, failover, capacity, dependencies, recovery | Deployment view per environment; operational view (monitoring, runbooks, backup and restore) |
| Security team | Trust boundaries, authentication, card data, secrets | Context and deployment views annotated with trust zones; security concept (a perspective applied to every view) |
| Data protection officer | Personal data of customers and couriers: where it flows, how long it is kept | Information view with a data-flow diagram and retention table |
| Payment provider's integration team | Which calls you make, webhooks, idempotency, versions | Interface specification and a sequence diagram of the payment flow |
| Card-payment assessor (auditor) | Scope of the card-data environment, controls, change history | Deployment view showing the card-data boundary; decision log; version history |
Choosing the minimum set of views
The temptation, once you know that many viewpoints exist, is to produce all of them. Resist it. Every view has to be kept consistent with the system and with the other views, so each one adds a maintenance cost. The aim is the smallest set of views that answers the important concerns of the important stakeholders, following the rule from Section 4.1 to write for the reader. Views and Beyond describes a similar procedure: build a stakeholder-and-view table, combine views where one diagram can serve several needs, then prioritise.
A procedure for choosing views
- 1. List stakeholders and concernsUse the stakeholder analysis from Chapter 1. For each concern, note how important it is and how much is at stake if it is misunderstood.
- 2. Map concerns to candidate viewsUse a catalogue (4+1, Rozanski and Woods, or the SEI categories) as a checklist so that whole areas, typically information and operations, are not forgotten.
- 3. Combine where you canA container diagram annotated with technologies and protocols often serves developers and operations at once; a deployment diagram with trust zones serves operations and security. Combining reduces the number of artefacts to maintain.
- 4. Check coverage of the three categoriesMake sure the set includes at least one module, one component-and-connector and one allocation view, plus a few scenarios that walk through them.
- 5. Decide the depth of each viewNot every view needs the same detail. Document the risky or complex parts deeply and the routine parts briefly.
- 6. Record correspondencesState how elements in one view relate to elements in another (container to deployment node, module to container) so readers can move between views. Mismatches between views are where many design errors hide.
Worked example
Worked example: the minimum view set for the food-delivery platform
Applying the procedure to the platform described in Section 4.1 (five teams, card payments through an external provider, an upcoming payment-security assessment) gives the following set.
| Context view | One C4 system context diagram: customers, restaurant staff, couriers, support agents, the payment provider, the mapping service, the push-notification services. Serves everyone; the first thing a newcomer reads. |
|---|---|
| C&C view | One C4 container diagram for the whole platform, plus component diagrams only for the ordering and dispatch services, which are the most complex and change most. |
| Information view | A table of the main data entities, which service owns each, where personal data flows, and retention periods; one data-flow diagram for customer data. Added because the data protection officer's concerns were otherwise unaddressed. |
| Allocation view | A C4 deployment diagram for production, with the card-data boundary and network zones marked, and a short table of differences in the staging environment. |
| Module view | Not drawn by hand. Each service's internal module structure is generated from the code and checked by architecture tests. |
| Scenarios | Four sequence diagrams: place order, restaurant rejects order, courier assignment, refund. Each is checked against the container and deployment views. |
| Perspectives | Security and availability are applied as checklists to every view during review rather than drawn as separate views. |
Seven artefacts, most of them single diagrams, answer the concerns of all seven stakeholder groups in the table above.
The information view was added only because the stakeholder-to-view table exposed a gap. Without the table it would have been missed, which is common.
The module view is generated, not drawn, because it is recoverable from code and changes often (Section 4.1).
Check your understanding
What is the difference between a viewpoint and a view?
A viewpoint is a reusable specification of conventions for one kind of view (concerns framed, stakeholders, model kinds). A view applies a viewpoint to a specific system and addresses those concerns for it.
What role do scenarios play in the 4+1 model?
They are a small set of important use cases traced through all four views, which illustrate the architecture and validate that the views are consistent and complete.
How does a Rozanski and Woods perspective differ from a viewpoint?
A viewpoint produces a view. A perspective is a cross-cutting quality concern, such as security, applied as questions and tactics to every view rather than drawn as a view of its own.
Which SEI category does a deployment diagram belong to, and why?
Allocation, because it maps software elements onto non-software things, in this case hardware and cloud infrastructure.
Sources and further reading
- ISO/IEC/IEEE 42010:2022 Software, systems and enterprise: Architecture description (ISO)
- ISO/IEC/IEEE 42010 summary (arc42 quality model)
- Philippe Kruchten, Architectural Blueprints: The 4+1 View Model of Software Architecture (arXiv copy of the 1995 IEEE Software paper)
- Viewpoints catalogue, Rozanski and Woods
- Documenting Software Architectures: Views and Beyond, 2nd edition (SEI)
Have a question about this section? ArchitectBot, the course’s AI study assistant, answers from the course first.
Ask: “How do I decide which architecture views my team actually needs, and how do I keep them consistent with each other?”