Quality Attributes

Computer systems are used in many critical applications where a failure can have serious consequences (loss of lives or property). Developing systematic ways to relate the software quality attributes of a system to the system’s architecture provides a sound basis for making objective decisions about design trade-offs and enables engineers to make reasonably accurate predictions about a system’s attributes that are free from bias and hidden assumptions. The ultimate goal is the ability to quantitatively evaluate and trade off multiple software quality attributes to arrive at a better overall system. The purpose of this report is to take a small step in the direction of developing a unifying approach for reasoning about multiple software quality attributes. In this report, we define software quality, introduce a generic taxonomy of attributes, discuss the connections between the attributes, and discuss future work leading to an attribute-based methodology for evaluating software architectures.

[1]  William L. Maxwell,et al.  Theory of scheduling , 1967 .

[2]  Allen Newell,et al.  Computer Structures: Readings and Examples, , 1971 .

[3]  D. Elliott Bell,et al.  Secure Computer System: Unified Exposition and Multics Interpretation , 1976 .

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

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

[6]  P. David Stotts,et al.  A comparative survey of concurrent programming languages , 1982, SIGP.

[7]  P. David Stotts,et al.  A comparative survey of concurrent programming languages , 1982, SIGP.

[8]  Edward D. Lazowska,et al.  Quantitative system performance - computer system analysis using queueing network models , 1983, Int. CMG Conference.

[9]  Richard D. Schlichting,et al.  Fail-stop processors: an approach to designing fault-tolerant computing systems , 1983, TOCS.

[10]  A. J. Grimes Normal Accidents: Living with High Risk Technologies , 1985 .

[11]  Nancy G Leveson,et al.  Software safety: why, what, and how , 1986, CSUR.

[12]  Peter G. Neumann,et al.  On hierarchical design of computer systems for critical applications , 1986, IEEE Transactions on Software Engineering.

[13]  A. Avizienis,et al.  Dependable computing: From concepts to design diversity , 1986, Proceedings of the IEEE.

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

[15]  J.A. Stankovic,et al.  Misconceptions about real-time computing: a serious problem for next-generation systems , 1988, Computer.

[16]  Barry W. Boehm,et al.  A spiral model of software development and enhancement , 1986, Computer.

[17]  Connie U. Smith,et al.  Performance Engineering of Software Systems , 1990, SIGMETRICS Perform. Evaluation Rev..

[18]  Lui Sha,et al.  Real-time scheduling theory and Ada , 1990, Computer.

[19]  Standard Glossary of Software Engineering Terminology , 1990 .

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

[21]  M. A. Hennell,et al.  Testing for the achievement of software reliability , 1991 .

[22]  R. Bishop,et al.  A view of software quality , 1991 .

[23]  Flaviu Cristian,et al.  Understanding fault-tolerant distributed systems , 1991, CACM.

[24]  Gregory R. Andrews,et al.  Paradigms for process interaction in distributed programs , 1991, CSUR.

[25]  Jeremy Epstein,et al.  A comparison of trusted X security policies, architectures, and interoperability , 1992, [1992] Proceedings Eighth Annual Computer Security Application Conference.

[26]  Judith A. Clapp,et al.  A Guide to Total Software Quality Control. , 1992 .

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

[28]  Kyo Chul Kang,et al.  Safety-Critical Software: Status Report and Annotated Bibliography , 1993 .

[29]  G. B. Finelli,et al.  The Infeasibility of Quantifying the Reliability of Life-Critical Real-Time Software , 1993, IEEE Trans. Software Eng..

[30]  Mario Barbacci,et al.  Durra: a structure description language for developing distributed applications , 1993, Softw. Eng. J..

[31]  Connie U. Smith,et al.  Software Performance Engineering: A Case Study Including Performance Comparison with Design Alternatives , 1993, IEEE Trans. Software Eng..

[32]  John Rushby,et al.  Critical system properties: survey and taxonomy , 1994 .

[33]  Marco Spuri,et al.  Implications of Classical Scheduling Results for Real-Time Systems , 1995, Computer.

[34]  Peter Neumann,et al.  Safeware: System Safety and Computers , 1995, SOEN.

[35]  Paul Clements,et al.  Predicting software quality by architecture-level evaluation , 1995 .

[36]  Paul Clements,et al.  An Architectural Analysis Case Study: Internet Information Systems 1 , 1995 .