Putting non-functional requirements into software architecture

This paper presents an approach for incorporating non-functional information of software system into software architectures. To do so, components present two distinguished slots: their non-functional specification, where non-functional requirements on components are placed, and their non-functional behaviour with respect to these requirements. Also, connector protocols may describe which non-functional aspects are relevant to component connections. We propose a notation to describe non-functionality in a systematic manner, and we use it to analyse two particular aspects of the meeting scheduler case study, user interaction and performance.

[1]  C. A. R. Hoare,et al.  Communicating sequential processes , 1978, CACM.

[2]  Mary Shaw,et al.  Abstraction Techniques in Modern Programming Languages , 1984, IEEE Software.

[3]  Gruia-Catalin Roman,et al.  A taxonomy of current issues in requirements engineering , 1985, Computer.

[4]  Gérard Berry,et al.  The chemical abstract machine , 1989, POPL '90.

[5]  J. Michael Spivey,et al.  The Z notation - a reference manual , 1992, Prentice Hall International Series in Computer Science.

[6]  Jeannette M. Wing A specifier's introduction to formal methods , 1990, Computer.

[7]  Marvin V. Zelkowitz,et al.  Evaluation criteria for functional specifications , 1990, [1990] Proceedings. 12th International Conference on Software Engineering.

[8]  Victor R. Basili,et al.  Identifying and qualifying reusable software components , 1991, Computer.

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

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

[11]  Stephen J. Garland,et al.  Larch: Languages and Tools for Formal Specification , 1993, Texts and Monographs in Computer Science.

[12]  Phillip C.-Y. Sheu,et al.  A Knowledge-based Program Transformation System , 1994, CAiSE.

[13]  John Nicholls,et al.  Z notation , 1994 .

[14]  Murali Sitaraman On tight performance specification of object-oriented software components , 1994, Proceedings of 1994 3rd International Conference on Software Reuse.

[15]  Don Cohen,et al.  Adding Performance Information to ADT Interfaces , 1994, Workshop on Interface Definition Languages.

[16]  Rudi Studer,et al.  The Treatment of Non-Functional Requirements in MIKE , 1995, ESEC.

[17]  Gregory D. Abowd,et al.  Formalizing style to understand descriptions of software architecture , 1995, TSEM.

[18]  Barry W. Boehm,et al.  Identifying Quality-Requirement Conflicts , 1996, IEEE Softw..

[19]  Norman F. Schneidewind,et al.  IEEE Standard For A Software Quality Metrics Methodology Revision And Reaffirmation , 1997, Proceedings of IEEE International Symposium on Software Engineering Standards.

[20]  R. H. Pierce,et al.  Capturing and Verifying Performance Requirements for Hard Real Time Systems , 1997, Ada-Europe.

[21]  Xavier Franch,et al.  Systematic formulation of non-functional characteristics of software , 1998, Proceedings of IEEE International Symposium on Requirements Engineering: RE '98.