Software architecture is a complex topic. Because of its complexity, our profession has produced a variety of definitions, each more or less useful depending on your point of view. Here is a definition from my first book, Journey of the Software Professional:
This definition is pretty consistent with many others for example, [Bass], [Larman], and [POSA]. However, it lacks some important elements, such as specific technology choices and the required capabilities of the desired system. A colleague of mine, Myron Ahn, created the following definition of software architecture. It is a bit more expansive and covers a bit more ground than my original (2002, personal communication).
We could extend these definitions from the technical point of view, but this wouldn't provide a lot of value. More than any other aspect of the system, architecture deals with the "big picture." The real key to understanding it is to adopt this big picture point of view. |