Week 03 · Chapter 02, L03 — five lenses, one ATM system. Kruchten's model for describing an architecture so every stakeholder gets the picture they actually need.
No single diagram can capture every aspect of a complex system. So architects split the description into a collection of views, each giving a partial, purpose-built picture to a specific stakeholder (users, analysts, developers...).
Breaks an overwhelming system into understandable, digestible perspectives.
Developers, users, and managers each get the concern that actually matters to them.
Makes the system easier to build, analyze, and maintain.
Functional, structural, and behavioral concerns each get their own lens.
The most popular model for organizing these views is Philippe Kruchten's 4+1 View Model (1995).
Four views describe the system from four independent angles. The +1 (User/Scenario) view isn't a fifth equal view — it's a set of use cases that keeps the other four consistent with each other and validates the whole design against real usage.
Specifies the system's decomposition into conceptual entities (objects/classes) and how they connect — essentially an abstraction of the system's functional requirements.
Class diagram, Object diagram
Sequence, Communication/Collaboration, State, Activity, Interaction Overview
Shows the classes, their inter-relationships, and each class's operations & attributes. A few notation rules worth memorizing:
1..* = one-to-many,
1 = exactly one.Focuses on who talks to whom: Bank Client ↔ ATM Machine ↔ Account/Checking Account. The numbered messages trace one full transaction — insert card → request/enter PIN → request/enter amount → process against the account → dispense cash → print receipt.
Models interactions over time: same actors, but now ordered top-to-bottom by exact message sequence.
Shows the objects and their relationships.
Shows the order of interactions, step-by-step, clarifying who does what in a use case.
Focuses on the system's execution-time behavior — an abstraction of processes/threads, showing synchronization and concurrency, and how all execution units are organized at runtime.
How tasks running at the same time interact and coordinate.
How processes share resources/data without interfering with each other.
Feeds directly into non-functional requirements like scalability and performance. Modeled with UML activity diagrams and interaction overview diagrams.
ATM example: the activity diagram traces card validation → PIN entry → balance check → cash dispensing / account debit, running in parallel swim-lanes for Customer, ATM Machine, and Bank.
Describes the software's static organization into modules — class libraries, sub-systems, packages — from an implementation point of view: how source code is organized into modules, packages, and libraries.
Modeled with UML package diagrams and component diagrams. Useful for mapping logical components down to physical files and directories.
ATM example (Component Diagram): shows components like Customer Console, ATM Machine, Card Reader, Bank Database, Web Page, Employee Console, and Client Desktop, along with their required interfaces and ports — together forming the full banking system.
Represents deployment aspects — configuration and installation — modeled with UML deployment diagrams.
This is the view to reach for when evaluating:
e.g. redundant nodes to boost uptime
e.g. required processor speed, bandwidth
e.g. required firewalls
ATM example: physical nodes — Customer Console, Card Reader, ATM Machine, Bank Database, Web Page, Client Desktop, Employee Console — connected as deployed hardware, mirroring the development view's components but now showing where they physically run.
Describes the system's functionality — how the user uses it, and how the system serves the user. It's the foundation that lets the other four views work together seamlessly and logically.
Modeled with use-case diagrams and textual scenarios.
ATM example: a Bank Client actor triggers "Bank ATM Transaction," which extends into Checking Transaction, Saving Transaction History, Deposit Amount, and Withdrawal Amount — each of which uses an Approval Process, which itself extends to handle an Invalid PIN case.
| Logical | Process | Development | Physical | Scenario | |
|---|---|---|---|---|---|
| Description | Components (objects) of the system + their interaction | Processes/workflow rules + how they communicate; dynamic view | Building-block view; static organization of system modules | Installation, configuration & deployment of the application | Shows the design is complete via validation & illustration |
| Stakeholder | End-user, Analysts, Designer | Integrators & developers | Programmer, software project managers | System engineer, operators, admins, installers | Stakeholders of other views + evaluators |
| Considers | Functional requirements | Non-functional requirements | Software module organization (reuse, tool constraints) | Non-functional requirements re: underlying hardware | System consistency & validity |
| UML Diagram | Class, State, Object, Sequence, Communication | Activity Diagram | Component, Package diagram | Deployment diagram | Use-case diagram |
⚠ Same exam trap as before: a diagram of physical machines/consoles connected together is the Physical view (hardware/deployment), even if it looks similar to a Component diagram (Development view, which is about software module organization, not hardware).