4+1 Architectural View Model

Software Architecture

Software architecture is the fundamental design of an entire software system. It defines what components are part of the system, what functions they provide, and how they interact. It is the big picture or overall structure of the entire system and how everything works together.

Particularly for big systems, software architecture is very important. Developers will have a solid foundation to work with if the whole system is designed clearly from the beginning. Each developer will then understand what has to be done and how everything fits together to efficiently accomplish the goals. A system’s software architecture makes it easier to maintain, reuse, and adapt.

History

In 1995, Philippe Kruchten noticed that software architectures frequently failed to offer clarity on the real system design, and stakeholders struggled to get the information they need (Stakeholders are those who are interested in the software at hand. They either make use of the system or gain some benefit from it).

To solve that problem and design good software architectures he proposed a solution in a paper called “Architectural Blueprints - The 4+1 View Model of Software Architecture”.

4+1 view model

4+1 is a view model used for “describing the architecture of software-intensive systems, based on the use of multiple, concurrent views”. All stakeholders have various perspectives on the system, therefore the viewpoints are used to explain it from their perspectives. The model has four logical perspectives, development, process, and physical. In addition, chosen use cases or scenarios are utilized as the ‘plus one’ perspective to explain the design. As a result, the model has 4+1 views.

Logical View

The logical view, which focuses on the functional requirements of a system, usually involves the objects of the system.

Process View

The process view focuses on achieving non-functional requirements. These requirements specify the desired qualities for the system, which include quality attributes like performance and availability.

Development View

The development view describes the hierarchical software structure. It also considers elements such as programming language, libraries, and toolsets. The development view is primarily concerned with the hierarchical software structure and project management.

Physical View

The physical view handles how elements in the logical, process and development views must be mapped to different nodes or hardware for running the system.

Scenarios

Scenarios show the use cases or user tasks of a system and show how the four other views work together.

None of the viewpoints is completely self-contained, with components of certain viewpoints connected with those of others. To understand the architecture of a software system, the 4+1 perspective model can be molded to fit many situations. The benefit of this view model is that it can see a complex problem from many different perspectives help make your software more versatile.

I think you got an idea about what is 4+1 view model is and why it’s important.

Thank you and hope to see you in the next article as well. 😄

References:

4+1 Architectural View Model - Wikipedia

Architectural Blueprints - The “4+1” View Model of Software Architecture

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store