Skip to main content

4+1 View Model

 This week, we looked at many different resources: two very short videos ("The 4+1 Model" by the Virtual Training Company and "Six Blind Men" by Phat Phish) and an article by Grady Booch titled The Elephant and the Blind Programmers. What they all had in common is that they all touched on either the 4+1 view model, or a concept known as wisdom gap, which is very closely related to the model. 

In order to explain the need for the 4+1 model, Booch relates it to the old Indian story, which talks about how different blind men examine an elephant and come to different conclusions as to what it is, since they are all looking at different parts of it. The moral of the story is that they are all right in their own way, yet none of them have the full picture. The same applies to the model. Depending on who you are and what part of a system you're working on, you'll be interested in looking at it from a certain way, which will definitely differ from the other team members. Even one person might (and should) be interested in all perspectives, even if not working with them directly, as it provides a better idea of the system as a whole. 

The model is divided into 4 and 1 because of who interacts with each model: the first four (development, logical, physical, process) refer to views that the people working on a project might interact with, while the fifth (use case) refers to what the end client will see. In this model, it's a bit more obvious why it's so important to look at the whole picture, since a developer who has no idea how a client might use their application will have a very hard time knowing how to work, what to improve, what to prioritize, etc., and having an idea of the whole system will allow him/her to take better decisions and turn in a better project. 

Comments

Popular posts from this blog

Software Architecture

 This week, we read a chapter of Pete Goodliffe's Code Craft: The Practice of Writing Excellent Code. The chapter, just like this course, focused only on the importance and different types of architecture. After this reading and after having completed the first Ruby activity, I think I finally have a good idea of what to expect throughout the semester.  Throughout our degree, we have always been told how important it is to design before we start coding, so that we have a "guide" and to get an idea of the workload or work distribution from the beginning. However, so far, it hasn't been taught to us in this way; we would think about the code, abstract it into a higher level, and define our design based on what we thought would be easier to do.  However, I now see that the correct way to do it is the other way around. Think of what you want your software to accomplish, figure out its scale and any other relevant details, pick a style that fits your project's needs, a...

Why is an architect?

  This week's (very short) article, Who Needs an Architect?, Martin Fowler explains to us the different definitions of architects that exist in the software world. The first and most common definition, which Fowler disagrees with, says that an architect is (s)he who helps identify what the most important parts of a project are, in order to give it structure. However, it is also mentioned that these parts are usually the most important because they are the hardest to change, so an architect's job should also include reducing the amount of these parts. Following the logic, by this definition, an architect's job is to reduce the amount of architecture.  The second proposed definition, which I also think I agree with, is that an architect's role is more like a guide's. His purpose is to help the team become better by using his expertise, and communicating with as much of the team as possible in order to remove their blocks. I think the word architect  still fulfills thi...

Hidden Figures

 This week, we watched a movie called Hidden Figures , telling the story of black women working at NASA at the time of segregation. I originally watched this movie when it came out, and saying I liked it would be an understatement. It's not a perfect movie by any means; I think the message was a little bit too on the nose and most characters besides the three leads were one-dimensional.  However, I think the movie does a great job at highlighting how oppression works. If you really think about it, there is no "bad guy". Everyone is just living their lives, trying their best, and following the rules that were set by society; no one is actively trying to make the main characters fail. Still, at almost every interaction, we can see they have to try harder than everyone else, and there's always the feeling that something could go wrong for them. And it's not obvious if you don't think about it, but that's the feeling they are faced with every day of their live...