The 4 + 1 View Model

In this post, I will discuss several things: first a video about the 4+1 View Model, second a very cute video named the six blind men that makes us understand in better way the model that we are talking about, and finally we will discuss the article: The Elephant and the Blind Programmers written by Grady Booch, which deals with the same topic.

In the first video, we saw that like in architecture, in software engineering are several views that we need to take into account while developing software, there are 4 + 1 views that are important for this task, these views are:

Logical view: this view tells us what kind of objects we are going to build, how they communicate and what kind of data they are.
Development view: it is useful for developers to always know which part is related to what else and how things are organized during development.
Process view: describes the concurrency and synchronized aspects in the software and the process of using the software or doing things.
Physical view: it tells us how the software and the hardware are related.
And what about the + 1? we have the use cases or scenarios: they are the explanation on how the system is expected to behave, what should happen and how users are supposed to use the system. 
Why the views are important? In a software engineering project, we have a lot of information, so it is important to view this information from different perspectives to understand clearly what the system should do.

The second video tells us, in a very nice way, a fable from India that illustrates the inability of man to know the absolute truth.
Grady Booch takes as his basis the same fable to tell us the story of five blind programmers who meet a beast and when examining it, each one has a different point of view that claims to be the correct one without even considering the points of view of the other programmers. Finally, the wisest programmer told the rest, that they were all right and that the reason their views differed was that each one had examined the beast with a different set of concerns, but that the creature had all the characteristics that they observed.

In conclusion, it is important to have different points of view while working on a software development project and with all the information in it, each point of view focuses on different aspects that arise from the observation of a person with certain knowledge, skills, and field of action. Remember: we are correct, but so are others!

Comentarios

Entradas populares de este blog

Software Craftsmanship

Microservices

Who Needs an Architect?