Everybody talks about "Software architecture" these days (your humble servant included...) - but what the hell is it?I mentioned in my first SPAMMED Architecture Framework post. that Software Architecture "deals with the major components or structures, their relationships and interactions. It encompasses the major (read hard to change) decisions and their rationale and every system has an architecture (even if it is a default one)" - OK sounds nice, but is it enough?
Probably not (If I thought it was enough - I wouldn't have wrote this post...). There are literally dozens! of definitions for what (solutions) Software architecture is ( you can see many of them here). I am not going to quote all of them, instead, Lets spend some time looking at some of the more prevalent characteristics found in most definitions
which brings us to the next point:
There's a very interesting standard called IEEE 1471-2000 "Recommended Practice for Architectural Description of Software Intensive Systems" which defines the relations between the system stakeholders and the different viewpoints of the architecture. It serves as a good reference for understanding how to document an architecture - it also means that identifying the needs of the different stakeholders will tell us a lot what views (details of the architecture from a specific viewpoint) we need to have.
Stakeholders are also the main source for these "quality" requirements and It is the architect's responsibility to balance the quality attributes of the system. This and the previous point are the main reason that the SPAMMED process first step has to do with identifying stakeholders (And I'll elaborate more on this on the next SPAMMED related post - "Stakeholders Everywhere")
Apart for the quality attributes side of the last point - it also basically state that:
Which raises another interesting question - what's the difference between architecture and design. But this will have to wait for another post as well
Subscribe to RSS headline updates from: