Principles for Evaluating the Quality Attributes of a Software Architecture

Abstract : Software quality is the degree to which software possesses a desired combination of attributes (e.g., reliability, interoperability). In this paper we describe a few principles for analyzing a software architecture to determine if it exhibits certain quality attributes. We show how analysis techniques indigenous to the various quality attribute communities can provide a foundation for performing software architecture evaluation. We also show how the principles provide a context for existing evaluation approaches such as scenarios, questionnaires, checklists, and measurements. Our immediate goal in identifying these principles for attribute-based architecture evaluation is to better integrate existing techniques and metrics into software architecture practice, not necessarily to invent new attribute-specific techniques and metrics. A longer-term goal is to codify these principles into systematic procedures or methods for architecture evaluation. This paper is an initial step towards identifying the ingredients of such methods.

[1]  Pankaj Jalote,et al.  Fault tolerance in distributed systems , 1994 .

[2]  Walter G. Vincenti,et al.  What Engineers Know and How They Know It: Analytical Studies from Aeronautical History , 1990 .

[3]  Mark Klein,et al.  A practitioner's handbook for real-time analysis - guide to rate monotonic analysis for real-time systems , 1993, The Kluwer international series in engineering and computer science.

[4]  Stephen J. Mellor,et al.  Recursive Design of an Application-Independent Architecture , 1997, IEEE Softw..

[5]  Leonard J. Bass,et al.  Scenario-Based Analysis of Software Architecture , 1996, IEEE Softw..

[6]  Jean-Claude Laprie,et al.  The transformation approach to the modeling and evaluation of the reliability and availability growth , 1990, [1990] Digest of Papers. Fault-Tolerant Computing: 20th International Symposium.

[7]  Norman E. Fenton,et al.  How effective are software engineering methods? , 1993, J. Syst. Softw..

[8]  Charles B. Weinstock,et al.  A Conceptual Framework for System Fault Tolerance , 1992 .

[9]  Ray Jain,et al.  The art of computer systems performance analysis - techniques for experimental design, measurement, simulation, and modeling , 1991, Wiley professional computing.

[10]  C. Julius Wang,et al.  What Every Engineer Should Know about Reliability and Risk Analysis , 1993 .

[11]  Kishor S. Trivedi Probability and Statistics with Reliability, Queuing, and Computer Science Applications , 1984 .

[12]  Aloysius K. Mok,et al.  Safety analysis of timing properties in real-time systems , 1986, IEEE Transactions on Software Engineering.

[13]  Barry Boehm,et al.  Characteristics of software quality , 1978 .

[14]  Paul Clements,et al.  Recommended Best Industrial Practice for Software Architecture Evaluation. , 1997 .

[15]  Robert E. Park Software Risk Management , 1991 .

[16]  Jean-Claude Laprie,et al.  The transformation approach to the modeling and evaluation of the reliability and availability growth , 1990 .

[17]  M. Modarres What every engineer should know about reliability and risk analysis , 1992 .

[18]  Felix Redmill,et al.  A Guideline for HAZOP Studies on Systems which include a Programmable Electronic System , 1995, SAFECOMP.

[19]  Jean-Marc Jézéquel,et al.  Design by Contract: The Lessons of Ariane , 1997, Computer.

[20]  Hermann Kopetz,et al.  Dependability: Basic Concepts and Terminology , 1992 .

[21]  Heinrich Krebs Assessment on the Basis of Standards-Gaps and how to Bridge Them , 1995, SAFECOMP.