SAIP (Chapter 2): What is Software Architecture
Summary of Chapter 2 of SAIP by Bass et al.
Chapter 2 focusses on explaining the definition of software architecture introduced in chapter 1. It clarifies what is meant by structures, their relations and which properties (private or public) that play key roles in developing the architecture. What is a structure or architectural element? These terms are very open in the definition and can be filled in with various components such as objects, libraries, third-party products, databases etc, thus making the definition extremely powerful in the way architecture can be represented.
Further discussed is the difference between architectural patterns (or styles) and architectures. Emphasizing that, while selecting an architectural pattern is often an architect's first design step, the two are very different, with architectural patterns serving as constraints for a system architecture. The author uses the classic architectural pattern, client-server, as an example; indicating that several architectures can enforce the client-server pattern and yet be considerably different architectures.
Also mentioned is the role of reference models and reference architectures in defining a systems architecture. A reference model is established here as being the division of a system into functional components and the dataflows between them that can be separately developed. The reference architecture then becomes the mapping of the reference model onto the software elements (a software element could map to several functional components, or be simply one-to-one).
The author does a good job of distinguishing system architecture from software architecture and then goes on to specify the importance of specifying which architectural view is being discussed--during architectural discussions. He distinguishes the structure of an architecture from its view--the view is the structure as seen by a particular stakeholder, while the structure represents the actual set of elements and their relationships.
Chapter 2 focusses on explaining the definition of software architecture introduced in chapter 1. It clarifies what is meant by structures, their relations and which properties (private or public) that play key roles in developing the architecture. What is a structure or architectural element? These terms are very open in the definition and can be filled in with various components such as objects, libraries, third-party products, databases etc, thus making the definition extremely powerful in the way architecture can be represented.
Further discussed is the difference between architectural patterns (or styles) and architectures. Emphasizing that, while selecting an architectural pattern is often an architect's first design step, the two are very different, with architectural patterns serving as constraints for a system architecture. The author uses the classic architectural pattern, client-server, as an example; indicating that several architectures can enforce the client-server pattern and yet be considerably different architectures.
Also mentioned is the role of reference models and reference architectures in defining a systems architecture. A reference model is established here as being the division of a system into functional components and the dataflows between them that can be separately developed. The reference architecture then becomes the mapping of the reference model onto the software elements (a software element could map to several functional components, or be simply one-to-one).
The author does a good job of distinguishing system architecture from software architecture and then goes on to specify the importance of specifying which architectural view is being discussed--during architectural discussions. He distinguishes the structure of an architecture from its view--the view is the structure as seen by a particular stakeholder, while the structure represents the actual set of elements and their relationships.

0 Comments:
Post a Comment
<< Home