9th design: Sum of all parts
Programming, being such an abstract and general concept, is
not tied to a single practice, technique or hardware system. It can be
implemented in a multitude of ways and new ones are being invented every day,
some with more success than others. The truth is, there can be a multitude of
implementations because everyone has a different approach or set of factors
that matter to them the most. Some are very picky with types, others with portability,
while some others still might for concurrency, readability and constant code
optimization. As the story of the elephant goes, not everyone can see the whole
picture at a time and while it may be beneficial to take everything into
account, I don’t think it is necessary or worth it from an individual’s perspective.
Which is why I found the 4+1 view of software architecture
so intriguing. You don’t need everything inside, as long as everything can pass
from thought to paper at some point. You can first think of all the hardware
constraints or how the system should behave for different inputs. Then, you can
think about how it all connects to the business model or how it needs to be
developed. I haven’t had the privilege of making and managing such complex
systems using all those different perspectives and considerations. However, I
think that it can divide complexity and, in general, give views of only what
people need to see at a certain point in time. If, for example, a regional
supervisor had to check a certain program, he or she could just look at the
process view for a general idea into how everything adds up.
In the end, every single problem is a world apart from each
other. You need to consider all the possible viewpoints if we want to use and
take advantage of programming and computers in general.
Comentarios
Publicar un comentario