Quality-driven architecture design
- This article was considered for deletion at Wikipedia on December 14 2013. This is a backup of Wikipedia:Quality-driven architecture design. All of its AfDs can be found with PrefixIndex, the first at Wikipedia:Wikipedia:Articles for deletion/Quality-driven architecture design. If the page name here has changed, please see these three pages instead.
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 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.
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.
QADA provides a systematic[no citations needed here] 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.
- Requirements analysis
- Software architecture
- Software Architectural Model
- Architecture Centric Design Method
- Matinlassi; Niemelä, Dobrica (2002). Quality-driven architecture design and quality analysis method. A revolutionary initiation approach to a product line architecture.. Espoo: VTT Publications. ISBN 951-38-5967-3, pages=12–13. http://www.vtt.fi/inf/pdf/publications/2002/P456.pdf.
- Niemelä; Matinlassi (2005). Quality evaluation by QADA. The 5th working IEEE/IFIP Conference on Software Architecture. WICSA 2005. Pittsburgh, Pennsylvania. http://www.vtt.fi/inf/julkaisut/muut/2005/Niemela_Matinlassi_EvaluationByQada_v10.pdf.
- Template:Cite document
- Matinlassi; Niemelä, Dobrica (2002). Quality-driven architecture design and quality analysis method. A revolutionary initiation approach to a product line architecture.. Espoo: VTT Publications. ISBN 951-38-5967-3, pages=36–74. http://www.vtt.fi/inf/pdf/publications/2002/P456.pdf.
- Niemelä, Eila; Kalaoja, Logo (2000). "Toward an Architectural Knowledge Base for Wireless Service Engineering". EEE Transactions on Software Engineering 31 (5): 361–379. Template:Citation error
- Matinlassi, Mari (2006). Quality-driven Software Architecture Model Transformation. Towards automation. Espoo: VTT Publications. http://www.vtt.fi/inf/pdf/publications/2006/P608.pdf.
- Henttonen, K.; Matinlassi, Niemelä, Kanstén (200 7). "Integrability and Extensibility Evaluation From Software Architectural models - A Case Study". Open Software Engineering Journal 1 (1): 1–20. Template:Citation error. http://www.bentham-open.org/pages/content.php?TOSEJ/2007/00000001/00000001/1TOSEJ.SGM.
- Immonen (2005). "A method for predicting reliability and availability at the architectural level in Software Product- Lines". Research Issues in Engineering and Management (Springer-Verlag): 373–422.
- Dobrica; Niemelä, (2000). Attribute-based product-line architecture development for embedded systems. Proceedings of the 3rd Australasian Workshop on Software and Systems Architectures. Sydney, 19 - 20 Nov 2000.