Are "Non-functional" Requirements really Non-functional? An Investigation of Non-functional Requirements in Practice

Non-functional requirements (NFRs) are commonly distinguished from functional requirements by differentiating how the system shall do something in contrast to what the system shall do. This distinction is not only prevalent in research, but also influences how requirements are handled in practice. NFRs are usually documented separately from functional requirements, without quantitative measures, and with relatively vague descriptions.As a result, they remain difficult to analyze and test.Several authors argue, however, that many so-called NFRs actually describe behavioral properties and may be treated the same way as functional requirements. In this paper, we empirically investigate this point of view and aim to increase our understanding on the nature of NFRs addressing system properties. We report on the classification of 530 NFRs extracted from 11 industrial requirements specifications and analyze to which extent these NFRs describe system behavior.Our results suggest that most "non-functional" requirements are not non-functional as they describe behavior of a system. Consequently, we argue that many so-called NFRs can be handled similarly to functional requirements.

[1]  Liming Zhu,et al.  Model Driven Development with non-functional aspects , 2009, 2009 ICSE Workshop on Aspect-Oriented Requirements Engineering and Architecture Design.

[2]  Andreas Vogelsang,et al.  How to Specify Non-Functional Requirements to Support Seamless Modeling? A Study Design and Preliminary Results , 2015, 2015 ACM/IEEE International Symposium on Empirical Software Engineering and Measurement (ESEM).

[3]  Manfred Broy,et al.  Multifunctional software systems: Structured modeling and specification of functional requirements , 2010, Sci. Comput. Program..

[4]  Andreas Bollin,et al.  Requirements Engineering Fundamentals , 2015 .

[5]  Maximilian Junker,et al.  A rigorous approach to availability modeling , 2012, 2012 4th International Workshop on Modeling in Software Engineering (MISE).

[6]  Andreas Borg,et al.  The Bad Conscience of Requirements Engineering : An Investigation in Real-World Treatment of Non-Functional Requirements , 2003 .

[7]  Andrew M. Kuhn,et al.  Code Complete , 2005, Technometrics.

[8]  Xavier Franch,et al.  How do software architects consider non-functional requirements: An exploratory study , 2012, 2012 20th IEEE International Requirements Engineering Conference (RE).

[9]  José Ambrosio Toval Álvarez,et al.  Integrating usability requirements that can be evaluated in design time into Model Driven Engineering of Web Information Systems , 2009, Adv. Eng. Softw..

[10]  Reinhold Plösch,et al.  The Quamoco product quality modelling and assessment approach , 2012, 2012 34th International Conference on Software Engineering (ICSE).

[11]  Dániel Varró,et al.  Model Transformations for Performability Analysis of Service Configurations , 2008, MoDELS Workshops.

[12]  Tony Gorschek,et al.  Quality Requirements in Practice: An Interview Study in Requirements Engineering for Embedded Systems , 2009, REFSQ.

[13]  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.

[14]  W. Damm,et al.  Boosting Re-use of Embedded Automotive Applications Through Rich Components , 2005 .

[15]  Xavier Franch,et al.  Dealing with Non-Functional Requirements in Model-Driven Development , 2010, 2010 18th IEEE International Requirements Engineering Conference.

[16]  Marion Kee,et al.  Analysis , 2004, Machine Translation.

[17]  Liming Zhu,et al.  UML Profiles for Design Decisions and Non-Functional Requirements , 2007, Second Workshop on Sharing and Reusing Architectural Knowledge - Architecture, Rationale, and Design Intent (SHARK/ADI'07: ICSE Workshops 2007).

[18]  Ursula Faber,et al.  Requirements Engineering A Good Practice Guide , 2016 .

[19]  Stefan Kugele,et al.  Optimizing Automatic Deployment Using Non-functional Requirement Annotations , 2008, ISoLA.

[20]  Didar Zowghi,et al.  An investigation into the notion of non-functional requirements , 2010, SAC '10.

[21]  Junichi Suzuki,et al.  A Model-Driven Development Framework for Non-Functional Aspects in Service Oriented Architecture , 2008, Int. J. Web Serv. Res..

[22]  Julio Cesar Sampaio do Prado Leite,et al.  On Non-Functional Requirements in Software Engineering , 2009, Conceptual Modeling: Foundations and Applications.

[23]  References , 1971 .

[24]  Andreas Vogelsang,et al.  Systematic elicitation of mode models for multifunctional systems , 2015, 2015 IEEE 23rd International Requirements Engineering Conference (RE).

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

[26]  Motoei Azuma SquaRE The next generation of the ISO/IEC 9126 and 14598 international standards series on software product quality , 2001 .

[27]  James Robertson,et al.  Mastering the Requirements Process: Getting Requirements Right , 2012 .

[28]  Manfred Broy,et al.  Rethinking Nonfunctional Software Requirements , 2015, Computer.

[29]  Martin Glinz,et al.  On Non-Functional Requirements , 2007, 15th IEEE International Requirements Engineering Conference (RE 2007).

[30]  Bashar Nuseibeh,et al.  Characterizing Architecturally Significant Requirements , 2013, IEEE Software.

[31]  Agung Fatwanto,et al.  Analysis, Specification and Modeling of Non-Functional Requirements for Translative Model-Driven Development , 2008, 2008 International Conference on Computational Intelligence and Security.

[32]  Klaus Pohl,et al.  Requirements Engineering - Fundamentals, Principles, and Techniques , 2010 .