An approach to building quality into software architecture

Quality issues such as modifiability, performance, reusability, comprehensibility and security, are often crucial to a software system. As such, quality requirements (or nonfunctional requirements, NFRs) should be addressed as early as possible in a software lifecycle and properly reflected in a software architecture before committing to a detailed design. This paper discusses how the treatment of NFRs as goals (which may be synergistic or conflicting) serves to systematically guide selection among architectural design alternatives. During the architectural design process, goals are decomposed, design alternatives are analysed with respect to their tradeoffs, design decisions are made and rationalised, and goal achievement is evaluated. This process can be supported by a body of knowledge. This paper1 outlines an approach by which such knowledge can be organised. The approach draws on our framework for dealing with NFRs, which has been applied to several NFRs (accuracy, performance, security), used to study several information systems, and is now applied to architecture. This approach is illustrated by a preliminary study of architectural design for a KWIC (Key Word in Context) system.

[1]  Lawrence Chung,et al.  Dealing with Non-Functional Requirements: Three Experimental Studies of a Process-Oriented Approach , 1995, 1995 17th International Conference on Software Engineering.

[2]  Eric S. K. Yu,et al.  Using non-functional requirements to systematically support change , 1995, Proceedings of 1995 IEEE International Symposium on Requirements Engineering (RE'95).

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

[4]  Brian A. Nixon,et al.  Dealing with performance requirements during the development of information systems , 1993, [1993] Proceedings of the IEEE International Symposium on Requirements Engineering.

[5]  Mary Shaw,et al.  An Introduction to Software Architecture , 1993, Advances in Software Engineering and Knowledge Engineering.

[6]  Nils J. Nilsson,et al.  Problem-solving methods in artificial intelligence , 1971, McGraw-Hill computer science series.

[7]  Lawrence Chung,et al.  Dealing with Security Requirements During the Development of Information Systems , 1993, CAiSE.

[8]  David Garlan,et al.  Software architecture: practice, potential, and pitfalls , 1994, Proceedings of 16th International Conference on Software Engineering.

[9]  Alexander L. Wolf,et al.  Acm Sigsoft Software Engineering Notes Vol 17 No 4 Foundations for the Study of Software Architecture , 2022 .

[10]  Barry W. Boehm,et al.  Software architectures: critical success factors and cost drivers , 1994, Proceedings of 16th International Conference on Software Engineering.

[11]  W. W. Bledsoe,et al.  Review of "Problem-Solving Methods in Artificial Intelligence by Nils J. Nilsson", McGraw-Hill Pub. , 1971, SGAR.

[12]  John A. Zachman,et al.  A Framework for Information Systems Architecture , 1987, IBM Syst. J..

[13]  John Mylopoulos,et al.  Understanding "why" in software process modelling, analysis, and design , 1994, Proceedings of 16th International Conference on Software Engineering.

[14]  John Mylopoulos,et al.  On formal requirements modeling languages: RML revisited , 1994, Proceedings of 16th International Conference on Software Engineering.

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

[16]  Jintae Lee,et al.  Extending the Potts and Bruns model for recording design rationale , 1991, [1991 Proceedings] 13th International Conference on Software Engineering.

[17]  Kanth Miriyala,et al.  An architecture-driven, business-specific, and component-based approach to software engineering , 1994, Proceedings of 1994 3rd International Conference on Software Reuse.

[18]  David Garlan,et al.  Using tool abstraction to compose systems , 1992, Computer.

[19]  D. L. Parnas,et al.  On the criteria to be used in decomposing systems into modules , 1972, Software Pioneers.

[20]  John R. Callahan Software packaging , 1993 .

[21]  J. Hauser,et al.  The House of Quality , 1988 .

[22]  Gregory D. Abowd,et al.  Using style to understand descriptions of software architecture , 1993, SIGSOFT '93.

[23]  Leonard J. Bass,et al.  SAAM: a method for analyzing the properties of software architectures , 1994, Proceedings of 16th International Conference on Software Engineering.

[24]  Brian A. Nixon,et al.  Representing and Using Performance Requirements During the Development of Information Systems , 1994, EDBT.

[25]  John Mylopoulos,et al.  Representing and Using Nonfunctional Requirements: A Process-Oriented Approach , 1992, IEEE Trans. Software Eng..

[26]  Herbert A. Simon,et al.  The Sciences of the Artificial , 1970 .

[27]  Matthias Jarke,et al.  Telos: representing knowledge about information systems , 1990, TOIS.