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. 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 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) rchitectural 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.