The 4+1 view model for software architecture documentation

How to describe software architecture in a way that can be easily understood by all stakeholders, be they technical or non-technical?

How to describe the same thing from diferent perspectives without repeating yourself?

The answer: 𝘁𝗵𝗲 𝟰+𝟭 𝘃𝗶𝗲𝘄 𝗺𝗼𝗱𝗲𝗹.

Image source: wikipedia

The 4+1 view model describes a system from five diferent perspectives:

𝗟𝗼𝗴𝗶𝗰𝗮𝗹 𝘃𝗶𝗲𝘄 – describes the functionality that the system provides to end-users.

𝗣𝗿𝗼𝗰𝗲𝘀𝘀 𝘃𝗶𝗲𝘄 – describes processes and how they communicate.

𝗗𝗲𝘃𝗲𝗹𝗼𝗽𝗺𝗲𝗻𝘁 𝘃𝗶𝗲𝘄 – describes the system from software development perspective.

𝗗𝗲𝗽𝗹𝗼𝘆𝗺𝗲𝗻𝘁 𝘃𝗶𝗲𝘄 – describes how the system looks like when deployed.

𝗨𝘀𝗲 𝗰𝗮𝘀𝗲 𝘃𝗶𝗲𝘄 – describe sequences of interactions between objects and between processes.

Some consider it rigid, but for me this is a simple and sufficient structure to describe most of the systems I’m working on.