Quality-driven architecture design

Quality-driven architecture design is an approach to software architecture design which emphasizes the importance of addressing quality attributes, i.e. non-functional characteristics of software products. The approach relies on treating quality attributes as at least equally important requirements as functional requirements and constraints, and utilizing the gained knowledge in architectural design.
Overview
The approach is complemented by quality analysis of software architecture, which is a way of analyzing how well software architecture fulfills the non-functional requirements. QADA (Quality-driven Architecture Design and Quality Analysis) is a methodology developed at VTT Technical Research Centre of Finland.
QADA includes quality architectural design and analysis that are closely associated and appear in architecture development. Architecture design is divided into conceptual and concrete levels of abstraction and architecture analysis measures quality of software. Aim of analyzing the architecture is to predict the quality of software before it is built and not to establish precise estimates about principal effects of it.
It is a combination of Requirement engineering, Conceptual architecture design and analysis, Concrete architecture design and analysis.
* Requirement Engineering — Under this comes requirement specifications(technical and functional requirements and system constraints), requirement analysis, defining context and scope of product line.
Method
It consist of two main phases as Requirement Engineering and architecture design and analysis. Requirement engineering analyses and specifies different aspects of system. Conceptual Architecture Design is concerned with making model making, design, deployment and creating documentation about system in abstract form.
Various steps involved are:
* Capturing quality requirements and mapping them to architecture design i.e quality driven architecture modeling.
* Evaluating execution and evolution qualities in order to develop a high quality product.
Role
QADA provides a systematic way to transform quality requirements into software architecture. Architectural styles and patterns are used as a guide to carry out quality requirements in architectural description with a documented design rationale. QADA contributes methods and techniques to the following areas of architecture-centric software development: (1) software family engineering, (2) model-and quality driven architecture development, (3) architectural knowledge sharing, and (4) architecture evaluation. The main contributions are the following:
* QADA contributes to software family engineering by providing: (a) method to select an appropriate family architecture approach, (b) a method to capture and map requirements to the family architecture (c) a method to evaluate the maturity and quality of the family architecture and (d) a technique to represent variation points in the family architecture.
* QADA contributes the model- and quality-driven architecture development by providing: (a) a stakeholder-based definition of architectural viewpoints, (b) a set of predefined views that use a set of diagrams for representing a view of architecture, and (c) a technique to map quality requirements to architectural views and represent the quality properties in the architectural diagrams.
* QADA facilitates sharing and reusing architectural design knowledge by providing: (a) an architectural knowledgebase, aka. stylebase, which includes a set of styles and patterns to be used by architects, (b) a technique for transforming an architecture from one style to another according to the changed quality requirements and (c) patterns for documenting architectural descriptions and software components.
* In addition, QADA methodology contains several quality evaluation methods, e.g. Integrability and Extensibility Evaluation (IEE) and Reliability and Availability Prediction (RAP). Evaluation is based on scenario-based analysis methods. The methods consist of three phases: quality goals and criteria definition, scenario modelling and actual evaluation based on defined change scenarios.
The development of QADA methodology started in 2000. The development has been done in a sequence of various types of research projects involving several researches, each project and researcher focusing on certain part(s) of the methodology. The research approach of the whole concept is to create, validate and improve parts of the methodology as methods, techniques and realizations, to evaluate the parts and therefore to iteratively elaborate the methodology.
VTT has also developed open source tools to support QADA methodology, e.g. Stylebase for Eclipse and CombonentBee.
 
< Prev   Next >