The architecture of a software-intensive system can be best described by five interlocking views: the use case (or scenario) view, design (or logical) view, interaction (or process) view, implementation (or development) view and deployment (or physical) view. Each view is a projection into the organisation and structure of the system from a particular vantage point.

Architectural Views
Capturing a system’s architecture

The UML architectural view model is based on the “4+1 Architectural View Model” designed by Philippe Krutchen. The 4+1 model uses different terms than UML / UP for identifying the same view.

UML Architectural Views 4+1 Architectural Views
Use Case View Scenarios
Design View Logical View
Interaction View Process View
Implementation View Development View
Deployment View Physical View

Use Case (Scenarios) View

The use case view of a system encompasses behaviour of the system as seen by its end users, analysts and testers. This view doesn’t specify the organisation of a software-intensive system. Rather, it exists to specify the forces that shape the system’s architecture and design. With the UML, static aspects are expressed as use cases in use case diagrams while the dynamic aspects are expressed in interaction, state and activity diagrams.

The following diagram illustrates a ficticious Click & Collect system:

Use Case (Scenarios) View
Capturing a system’s use-case scenarios

Design (Logical) View

The design view of a system encompasses the classes, interfaces and collaborations that form the vocabulary of the problem and its solution. This view primarily supports the functional requirements of the system; the services the system would provide to its end users. With the UML, static aspects are captured in class and object diagrams while dynamic aspects are expressed in interaction, state and activity diagrams. The internal structure diagram of a class is particularly useful.

The following example shows systems involved in Click & Collect and a composite structure for the Store Systems.

Logical (Design) View
Capturing a system’s logical design
Logical (Design) View
Capturing a system’s compsoite structure

Interaction (Process) View

The interaction view of a system shows the flow of control among its various parts, including possible concurrency and synchronisation mechanisms. It primarily addresses the performance, scalability and throughput of the system. With the UML, the static and dynamic aspects of the system are expressed using the same diagram types as for the design view, except with focus on the active classes that control the system and the messages that flow between them.

Interactions may also use sequence diagrams, for example:

Sequence Diagrams
An example PlantUML sequence diagram

Deployment (Physical) View

The deployment view of a system encompasses the nodes which form the hardware topology on which the system executes. This view primarily addresses the distribution, delivery and installation of the parts that make up the physical system. With the UML, the static aspects of this view are captured in deployment diagrams while the dynamic aspects are captured in interaction, state and activity diagrams.

Comments