Skip to main content

An approach for reasoning and refining non-functional requirements


Non-functional requirements (NFRs) are rarely taken in account in most software development processes. There are some reasons that can help us to understand why these requirements are not explicitly dealt with: their complexity, NFRs are usually stated only informally, their high abstraction level and the rare support of languages, methodologies and tools. In this paper, we concentrate on defining how to reason and how to refine NFRs during the software development. Our approach is based on software architecture principles that guide the definition of the proposed refinement rules. In order to illustrate our approach, we adopt it to an appointmernt system.


  1. [1]

    C. Bidan and Valeric Issarny. Security Benefits from Software Architecture. In SecondInternational Conference on Coordination Models and Languages, pages 64–80, Berlin, Germany, September 1997.

  2. [2]

    Christophe Bidan and Valeric Issarny. Dealing with Multi-Policy Security in Large Open Distributed Systems. In Jean-Jacques Quisquater et. al, editor,Fifth European Symposium on Research in Computer Security (ESORICS’98), volume 1485 ofLecture Notes in Computer Science, pages 51–66, Louvain-la-Neuve, Belgium, September 1998.

  3. [3]

    L. Chung, D. Gross, and E. Yu. Architectural Design to Meet Stakeholder Requirements. InFirst Working IFIP Conference on Software Architecture (WICSA1), pages 545–564, San Antonio, Texas, USA, February 1999.

  4. [4]

    Lawrence Chung. Representation and Utilization of Non-Functional Requirements for Information System Design. InThird International Conference on Advanced Information System Engineering (CAiSE’91), pages 5–30, Trondheim, Norway, May 1991.

  5. [5]

    Lawrence Chung. Dealing with Security Requirements During the Development of Information Systems. InFifth International Conference on Advanced Information System Engineering (CAiSE’93), pages 234–251, Paris, France, June 1993.

  6. [6]

    Lawrence Chung and Brian A. Nixon. Dealing with Non-Functional Requirements: Three Experimental Studies of a Process-Oriented Approach. InSeventeenth International Conference on Software Engineering (ICSE’95), pages 25–37, Seattle, USA, April 1995.

  7. [7]

    Lawrence Chung, Brian A. Nixon, and Eric Yu. Using Non-Functional Requirements to Systematically Support Change. InSecond IEEE International Symposium on Requirements Engineering, pages 132–139, York, England, March 1995.

  8. [8]

    Lawrence Chung, Brian A. Nixon, Eric Yu, and John Mylopoulos.Non-Functional Requirements in Software Engineering. Kluwer Academic Publishers, 2000.

  9. [9]

    Paul C. Clements. Coming Attractions in Software Architecture. InJoint Workshop on Parallel and Distributed Real-Time Systems (WPDRTS/OORTS’97), Geneva, Switzerland, April 1997.

  10. [10]

    Bruno Dutertre and Victoria Starvridou. Formal Requirements Analysis of an Avionics Control System.IEEE Transactions on Software Engineering, 23(5):267–278, May 1997.

    Article  Google Scholar 

  11. [11]

    R. E. Filman. Achieving Ilities. InWorkshop on Compositional Software Architectures, Monterey, California, USA, January 1998.

  12. [12]

    R. E. Filman. Injecting Management. InInternational Workshop on Component-Based Software Engineering, Kyoto, Japan, April 1998.

  13. [13]

    R. E. Filman, Stu Barret, Diana Lee, and Ted Linden. Inserting Illitics by Controlling Communications.Communications of the ACM, August 1999.

  14. [14]

    Pascal Fradct, Valeric Issarny, and Siegfried Rouvrais. Analyzing Non-Functional Properties of Mobile Agents. InFundamental Approaches to Software Engineering (FASE’00), volume 1783 ofLecture Notes in Computer-science, pages 319–328, Berlin, Germany, March 2000.

  15. [15]

    Aditya K. Ghose. Managing Requirements Evolution: Formal Support for Functional and Non-Functional Requirements. InInternational Workshop on Principles of Software Evolution (IWPSE’99), pages 118–124, Fukuoka, Japan, July 1999.

  16. [16]

    Michi Henning. A New Approach to Object-Oriented Middleware.IEEE Internet Computing, 8(1):66–75, February 2004.

    Article  Google Scholar 

  17. [17]

    IEEE/ANSI.830-1998 Recommended Practice for Software Requirements Specifications, 1998.

  18. [18]

    Valèrie Issarny and Christophe Bidan. Aster: A CORBA-Based Software Interconnection System Supporting Distributed System Customization. InThird International Conference on Configurable Distributed Systems (ICCDS’96), pages 194–201, Annapolis, Maryland, USA, May 1996.

  19. [19]

    Valèrie Issarny and Christophe Bidan. Aster: A Framework for Sound Customization of Distributed Runtime Systems. InSixteenth International Conference on Distributed Computing Systems, pages 586–593, Hong Kong, May 1996.

  20. [20]

    Valèric Issarny, Christophe Bidan, and Titos Saridakis. Achieving Middleware Customization in a Configuration-Based Development Environment: Experience with the Aster Prototype. InFourth International Conference on Configurable Distributed Systems (ICCDS’98), pages 207–214, Annapolis, Maryland, USA, 1998.

  21. [21]

    Valèrie Issarny, Christophe Bidan, and Titos Saridakis. Characterizing Coordination Architectures According to their Non-Functional Execution Properties. InThird-First Annual Hawaii International Conference on System Sciences (HICSS-31), pages 275–283, Hawaii, USA, January 1998.

  22. [22]

    Valèrie Issarny, Titos Saridakis, and Apostolus Zarras. Multi-View Description of Software Architectures. InThird International Workshop on Software Architecture, pages 81–84, Orlando, Flórida, USA, November 1998.

  23. [23]

    George R. R. Justo and Ahmed Salch. Non-Functional Integration and Coordination of Distributed Component Service. InSixth European Conference on Software Maintenance and Reengineeriny, Budapest, Hungary, March 2002.

  24. [24]

    Gregor Kiczales, John Lamping, Anurag Mendhekar, Chris Maeda, Cristina Videira Lopes, and Jean-Mare Loingtier. Aspect-Oriented Programming. InEuropean Conference on Object-Oriented Programming (ECOOP’97), volume 1241 of Lecture Notes in Computer Science, Finland, June 1997.

  25. [25]

    D. Landes. Addressing Xon-Functional Requirements in the Development of Knowledge-Based Systems. InFirst International Workshop on Requirements Engineering: Foundation of Software Quality, pages 64–70, Utrecht, Netherlands, June 1994.

  26. [26]

    Joseph P. Loyall, David E. Bakken, Richard E. Schants, John A. Zinky, David A. Karr, Rodrigo Vanegas, and Kenneth R. Anderson. QoS Aspect Language and their Runtime Integration. InFourth Workshop on Languages, Compilers, and Runtime Systems for Scalable Computers, volume 1511 of Lecture Notes in Computer Science, Pittsburgh,Pennsylvania, US A, May 1998. Springer-Verlag.

  27. [27]

    Mark Moriconi, Xiaolei Qian, and R. A. Riemenschneider. Correct Architecture Refinement.IEEE Transactions on Software Engineering, 21 (4):356–372, April 1995.

    Article  Google Scholar 

  28. [28]

    John Mylopoulos, Lawrence Chung, and Brian Nixon. Representing and Using Non-Functional Requirements: A Process-Oriented Approach.IEEE Transaction of Software Engineering, 18(6):483–497, June 1992.

    Article  Google Scholar 

  29. [29]

    Brian A. Nixon. Representing and Using Performance Requirements During the Development of Information Systems. InFourth International Conference on Extending Database Technology (EDBT’94), pages 187–200, Cambridge, United Kingdom, March 1994.

  30. [30]

    Natsuko Noda and Tomoji Kishi. An Architectural Approach to Performance Issues: From Experience in the Development of Network Management Systems. InFirst Working IFIP Conference on Software Architecture (WICSA1), San Antonio, Texas, USA, February 1999. Position Paper.

  31. [31]

    OMG.Common Object Request Broker Architecture: Core Specification (CORBA 3.0), December 2002.

  32. [32]

    R. A. Rimeselmeider. Correct Transformation Rules for Incremental Development of Architecture Hierarchies. Technical Report Paper DSA-98-01, Dependable System Architecture Group Working, SRI International, 1998.

  33. [33]

    Bert Robben, Matthijs, Wouter Joosen, Bart Vanhaute, and Pierre Verbaeten. Components for Non-Functional Requirements. InThird International Workshop on Component-Oriented Programming, Brussels, Belgium, July 1998. Position Paper. [34]|Nelson S. Rosa, Carina F. Alves, Paulo R. F. Cunha, Jaelson F. B. Castro, and George R. R. Justo. Using Non-Functional Requirements to Select Components: A Formal Approach. InFourth Ibero-American Workshop on Software Engineering and Software Environment, San Jose, Costa Rica, April 2001.

  34. [35]

    Nelson S. Rosa, Paulo R. F. Cunha, and George R. R. Justo. Expressing Real-Time Performance in Software Radios. InTwenty-Second IEEE Real-Time Systems Symposium, London, UK, December 2001.

  35. [36]

    Nelson S. Rosa, George R. R. Justo, and Paulo R. F. Cunha. Incorporating Non-Functional Requirements into Software Architecture. In José Rolim et. al, editor,Fifth International Workshop on Formal Methods for Parallel Progmmming: Theory and Applications, volume 1800 of Lecture Notes in Computer Science, pages 1009 1018, Cancun, Mexico, May 2000.

  36. [37]

    Nelson S. Rosa, George R. R. Justo, and Paulo R. F. Cunha. A Framework for Building Non-Functional Software Architectures. In16th ACM Symposium on Applied Computing, pages 141–147, Las Vegas, USA, March 2001.

  37. [38]

    Titos Saridakis and Valeric Issarny. Fault Tolerant Software Architectures. Technical Report RR-3350, INRIA, January 1998. 17 p.

  38. [39]

    Titos Saridakis, Valèric Issarny, and Christophe Bidan. Customized Remote Execution of Web Agents. InThirty-First Hawaii International Conference on System Sciences (HICSS-31), pages 614–620, January 1998.

  39. [40]

    Steve Vinoski. Where is Middleware?IEEE Internet Computing, 6(2):83–85, 2002.

    Google Scholar 

  40. [41]

    Apostolus Zarras and Valèrie Issarny. A Framework for Systematic Synthesis of Transactional Middleware. InMiddleware’98, pages 257–272, The Lake District, England, September 1998.

  41. [42]

    Apostolos Zarras and Valèrie Issarny. Imposing Transactional Properties on Distributed Software Architecture. InEighth ACM SIGOPS European Workshop — Suuport for Composing Distributed Applications, pages 25–32, Sintra, Portugal, September 1998.

  42. [43]

    Apostolos Zarras and Valéric Issarny. Assessing Software Reliability at the Architectural Level. InFourth International Software Architecture Workshop (ISAW-4), Limerick, Ireland, June 2000.

Download references

Author information



Rights and permissions

Reprints and Permissions

About this article

Cite this article

Rosa, N.S., Freire Cunha, P.R. & Ribeiro Justo, G.R. An approach for reasoning and refining non-functional requirements. J Braz Comp Soc 10, 62–84 (2004).

Download citation


  • Software Architecture
  • Non-Functional Requirements
  • Refinement Rules