Adaptable software architecture generation using the nfr approach
Narayanan Subramanian, Lawrence Chung · 2003
Adaptability is emerging as an important non-functional requirement (NFR) for software systems. Briefly stated, adaptability is the ability of software systems to withstand changes in their environment. In general, a software system will be adaptable provided its software architecture is itself adaptable in the first place. However, there are very few systematic methods to develop adaptable architectures and almost all of them fail to provide traceability to adaptability requirements and lack ability to represent NFRs, their decompositions, and design artifacts. This thesis uses the NFR Approach to generate adaptable architectures that not only provides a mechanism to trace architectures to requirements but also provides a rich ontology to represent various software artifacts. The thesis first explores the nature of adaptability itself, defines adaptability in a manner consistent with most of the current definitions of adaptability, and explores the constituents of a software architecture such as components, connections, patterns, constraints, styles and rationales. Next, the thesis identifies adaptable constituents of architecture and, to aid in this effort, the Adaptable Software Architecture Framework (ASAF) is proposed that helps in identifying and cataloging adaptable architectural constituents and subsequently searching the catalogs for the most appropriate constituents for a given problem. One of the premises used in this thesis is that using adaptable constituents helps generate adaptable architectures. The ASAF is based on the well-known NFR Framework that helps deal with NFRs at different software development phases including the architecture development phase. Using ASAF, the adaptable architectural constituents are identified and then stored in a knowledge base for later reuse; when required, a search through the knowledge base is made for the most appropriate constituents satisfying the particular requirements and an architecture is developed using these constituents. All these steps together comprise the NFR Approach as applied to adaptable architecture generation. The ASAF also helps in developing a framework for architecture adaptability metrics, called the Process-Oriented Metrics for Software Architecture Adaptability (POMSAA), which generates architectural adaptability metrics in an intuitive manner. POMSAA has been applied to two commercial systems developed at Anritsu Company. In order to validate ASAF, a prototype implementation called the Adaptable Software Architecture Assistant (ASAA) is developed that helps in the semi-automatic generation of adaptable architectures. ASAF and ASAA are used in three different software systems. The results of the application of ASAF and ASAA and the feedback from the industry experts are encouraging and give hope to systematic and semi-automatic generation of adaptable architectures.