To date, unquestionable efforts have been made, both in academia and industry, to facilitate the development of functional requirements (FRs) throughout the different phases of the software development life cycle (SDLC). Functional requirements are understood to mean the users’ needs pertaining to the services to be rendered by a software system. For example, semi-formal or graphically based approaches such as UML, and mathematically based or formal approaches such as Z and related tools have all been developed with the intention of addressing FRs. In the same vein, most of the proposed software methodologies, for instance, agile software development and model-driven software development, primarily target functional requirements. Considering the importance and even the criticality of non-functional requirements describing the quality of software systems and the constraints upon them, similar progress would be expected for their development. However, it appears that making headway with NFRs has been more challenging due to the complexity of the requirements. In this regard, the main purpose of this work is to unveil (from the academic perspective) the current state of development of NFRs through the review of publications carefully selected from five online databases.
Read full abstract