Sie sind auf Seite 1von 5

See discussions, stats, and author profiles for this publication at: https://www.researchgate.

net/publication/261073604

On non-functional requirements: A survey

Conference Paper · March 2012


DOI: 10.1109/SCEECS.2012.6184810

CITATIONS READS

7 638

2 authors, including:

Vikas Bajpai
The LNM Institute of Information Technology
6 PUBLICATIONS   9 CITATIONS   

SEE PROFILE

All content following this page was uploaded by Vikas Bajpai on 08 April 2015.

The user has requested enhancement of the downloaded file.


On Non-Functional Requirements: A Survey
Vikas Bajpai1, Ravi Prakash Gorthi2
Computer Science and Engineering
The LNMIIT
Jaipur, India
lnmiit.vikas@gmail.com1, ravipgorthi@gmail.com
2

Abstract— In this paper we give the details on Non- Functional current competitive market demands software product which
Requirements and its importance in various fields. We also is not functionally fit but also implements the non-functional
investigate the effect of working out for the Non- functional aspects such as: cost, readability, security, maintainability,
Requirements which leads to the discovery of new Functional portability accuracy etc. Dealing with the functional
Requirements. After the coding phase in the Software
requirements is not enough to fulfill the customer’s demand
Development Life Cycle (SDLC), during the process of
articulating the Non- Functional Requirements the software for Quality Software product. There is a need of formally
analysts come up with the new unexpected Functional incorporating NFRs into the software development life cycle
Requirements and which further creates a vicious circle. An and guaranteeing their satisfaction Developers do understand
effort is made to present the recent research in the field of the importance of the NFRs in the complex and large systems
finding, specifying and rectifying the Non – Functional but they also neglect due to lack of time and lack of proper
attributes. This paper gives the details of past and current documents on NFRs as well and also much time is consumed
research, thus giving the ideas to researchers for future work. in dealing with Functional requirements often termed as FRs
only. Some commonly neglected NFRs are security [11] [18]
Keywords — requirements, functional requirements, non-functional [19], fault – tolerance [12], reliability [13], maintainability
requirements, software development life cycle (SDLC) [14], usability [15], accuracy and correctness [16]. This list of
NFRs is not limited to but the items such as compatibility,
integrity, capacity, redundancy, backups, interoperability,
I. INTRODUCTION robustness, extensibility etc. are the topics for another
The term ‘non-functional requirement’ emerged way back discussion. A framework known as Non-Functional
in nineteen sixties and lot of research has been done but still, Decomposition (NFD) was developed by Poort that provides a
till date we have no standards of specifying, measuring and model to transform conflicting requirements in a system [32].
validating the non-functional requirements, often termed as
NFRs are these days considered to play a pivotal role in a Meeting the functional requirements in building the software
successful development of a software product. Although a application is not only sufficient. The Functionality answers to
debate is there to consider few Non-functional Requirements the question “what the system does” while the Non-
as Functional Requirements [31] (termed as FRs). Apart from Functionality answers to “how the same system performs”.
all these problems persisting in NFRs filed the developers Although the software development process is initiated with
have started making efforts in finding and addressing the the specification of application requirements, which consists
NFRs and have found that while dealing with one NFR they of FRs and NFRs. The FRs are addressed in various testing
give rise to another NFR or FR. This paper makes an attempt phases but the NFRs are very rarely taken into consideration.
to discuss this inter conflict among NFRs and the intra The interdependency between FRs and NFRs requires
conflicts of the NFRs and FRs. In context to the requirements consideration of both FRs and NFRs throughout the software
engineering [21] and the Software Requirements [27] as well, development process but in practice the NFRs are considered
one can find a lot more literature on the FRs [21], [22], [25] rarely in the late phase of the development In the past also we
but rare matter on the NFRs [23], [24]. Even the IEEE found that many systems were subject to "non-functional"
Standard Glossary of Software Engineering Terminology [25] requirements. Also, neglecting the NFRs resulted into some
says that the term non-functional requirement is not defined serious incidents [5] previously, such as the London
and the standard distinguishes design requirements, Ambulance tragedy [3] and Therac 25 [4] where the software
implementation requirements, interface requirements, calculated radiation dosage based on the order in which data
performance requirements, and physical requirements. was entered, sometimes delivering a double dose of radiation
Jacobson, Booch and Rumbaugh [26] defined the NFR as a and it took life of ten patients. The AT & T lines went dead
requirement that specifies system properties, such as due to the single line of buggy code in a complex software
environmental and implementation constraints, performance, upgrade implemented to speed up calling caused a ripple
platform dependencies, maintainability, extensibility and effect that shut down the network. Another incident [28] in
reliability. which Intel’s highly-promoted Pentium chip occasionally
For important software applications, the non – functional made mistakes when dividing floating-point numbers within a
requirements are as critical as functional requirements. The
specific range. In one of the incident the system failed because Internationalization/localization requirements such as,
of performance - scalability problems in the New Jersey languages, spellings etc.
Department of Motor Vehicles Licensing System [33]. The [5]
gives a detailed elaboration of how the very complex and Maintainability of a system is the level of ease with which a
expensive system failed because of either neglecting the FRs system can be modified or some changes may be brought into.
and NFRs or improper management in bridging the gap and This change or modification can be due to the addition of
finding the balance between these FRs and NFRs. It is found some new functionality to the system or for the sake of bug
that the software products developed without considering the fixing.
NFRs come up with a failure range of 60% or higher.
Interoperability refers to the ability of a diverse system to
This paper is organized as follows; Section II gives a brief work together with other product or systems without any
introduction of various possible and important non-functional restricted access or implementation.
requirements which a system is frequently subject to. Section
III gives the details on various works done to specify these Recovery is the ability of the software system to recover after
non – functional requirements. Concluding remarks and some damage. The time taken by the system to recover back
avenues for future work are made in section IV. to its original shape is the recovery time.

Robustness is the ability of a computer system to cope with


II. NON-FUNCTIONAL REQUIREMENTS errors during execution or the ability of an algorithm to
continue to operate despite abnormalities in input, calculations,
etc.
It is a fact that non – functional requirements [31] are those
requirements which are not expressed procedurally till date.
Resilience is the ability to provide and maintain an acceptable
The IEEE glossary on Software Engineering does contain the
level of service when some faults occurs and performs
term functional requirement but not the non- functional
normally.
requirement. If worked upon the below mentioned NFRs
properly and in time; would result into a quality software
Further investigation also shows that neglecting NFRs in
product. Some of the most common NFRs which the software
developing a software system is strongly influenced by NFR’s
developers encounter are:
characteristics. It is because of the fact that the NFRs are
subjective, relative, interacting, abstract and not uniform in
Performance deals with response time, which means the time
nature.
taken by the system to load, reload, screen open and refresh
times etc. The processing time which is due to functions,
calculations, imports, exports. Query and reporting time is
III. HOW TO SPECIFY NON-FUNCTIONAL REQUIREMENTS
also accountable for system’s performance. The performance
of a system is most common and breathe taking NFR for
software developers. The current IT industry with the increase and sophisticated
demands of clients need a mechanism to capture and specify
Reliability of a system refers to the mean time between non-functional requirements in such a way that they can drive
failures, means what can be the maximum down time? For
architectural decisions and be used to validate the software
example, two hours in six months etc. It also deals with the
time taken by the system to recover if failure occurs; this is architecture. The requirements engineering should be as
also termed as mean time to recovery. complex and well thought out as the design and programming,
yet its insufficiencies have led to many projects with poor
Availability tells the operating hours of the system and when requirements and blamed as the major reason for many
it is available. software failures. Therefore, requirements engineering is now
moving to the forefront gaining increased significance in
Compatibility of a system deals with what ease the system is
software engineering for services oriented web applications.
able to operate with shared applications. These shared
applications can be the 3rd part applications as well. This also Recent years have seen an increased level of research in the
covers the system’s compatibility on different-different field of Non- functional Requirements (NFRs) but still there is
platforms. The platforms can be either hardware, software or lack of proper standards to specify and measure these kinds of
both. requirements. The Non-functional requirements (NFRs) are
rarely taken into consideration in the industry in most of the
Usability of a system refers to the standards of “look and software development. The reasons for neglecting NFRs are:
feel”. Usability gives the measure of how much user friendly
no support from any language or tools, very rarely the NFRs
the system is. This also includes the
are stated and that too informally. An effort made by [1]
shows the way of defining the NFRs during the software and validation methods insufficient to provide adequate
development. This language was able to avoid the inter NFRs support for web applications.
conflict but was not able to solve the issue of addressing the
NFRs giving birth to new FRs. The [2] uses a Process Now today when the NFRs are widely recognized as a
very important aspect in effective software development, it is
Oriented Approach to resolve the conflicts among the NFRs
found that there is hardly any literature on NFRs and hence
only by using the quality characteristics of the execution these NFRs are often neglected, poorly understood and not
domain and there approach was limited to theories only and considered adequately in software development. Many of the
not numerically. In [6] the classpects are used for integrating studies investigating on the various practices for dealing with
the NFRs and FRs. For integrating these, the NFR Framework NFRs also tells that the software developers do not pay much
is used for eliciting and analyzing the NFRs. In this approach attention to NFRs [29], [30]. In the software development
the synthesis of classpects is done. After this synthesis the process, functional requirements are usually incorporated into
the software artifacts step by step. At the end of the process all
classes are discovered which are later integrated for the sake
functional requirements must have been implemented in such
of integrating the NFRs and FRs. Integrating the NFRs in to a way that the software satisfies the requirements defined in
data modeling was also done in [7]. Usually it is found that the early stages. The NFRs if addressed are not implemented
the NFRs play no role and are not even found in the complete in the same way as functional ones. To be more realistic NFRs
software development life cycle, but in past there were some are hardly considered when software is built. Neglecting the
special efforts made where architectural tactics were used to NFRs in a static software can be considered but the developers
embody the NFRs into the Software Architecture [8]. This neglect NFRs in a dynamic software architecture at their own
risk. An early detection of NFRs is useful and commendable
approach could not meet the need of solving the Quality
because it enables system level constraints to be considered
requirement Conflicts explained in [9] which ultimately shows and incorporated into early architectural designs as opposed to
the non meeting of the FRs generation because of addressing being refactored due to the non-meeting of customer’s
the NFRs. Not only in the software systems but also in the requirements and the system’s performance in at a later time.
Embedded Systems it is found that the NFRs give rise to the
new FRs. The component model for embedded system used in An interesting analysis is done [34] by Mairiza D., where
the three dimensions of NFRs: (1) definition and terminology;
[10] shows that it is only possible to verify the NFRs. The
(2) types; and (3) relevant NFRs in various types of system
commendable work done in [17] is only helpful in using and and application domains. They have also explored the relevant
representing NFRs by the process oriented approach while NFRs to the various Application Domains in the current
how to deal with NFRs is still missing. Software applications market scenario. Table I gives a brief outline of various NFRs
requirements have new characteristics causing them to change important in various application domains.
more rapidly. This makes traditional requirements modeling

TABLE I – VARIOUS APPLICATION DOMAINS AND THE RELEVANT NFRS

Application Domain Relevant NFRs


Banking and Finance Accuracy, confidentiality, performance. Security, usability
Interoperability, performance, reliability, scalability, security,
Education
usability
Energy Resources Availability, performance, reliability, safety, usability
Accuracy, confidentiality, performance, privacy, provability,
Government and Military reusability, security, standardizability, usability, verifiability,
viability
Accuracy, confidentiality, integrity, interoperability, security,
Insuarance
usability
Communicativeness, confidentiality, integrity, performance,
Medical/ Health Care
privacy, reliability, safety, security, traceability, usability
Compatibility, conformance, dependability, installability,
Telecommunication Services
maintainability, performance, portability, reliability, usability
Accuracy, availability, compatibility, completeness,
Transportation confidentiality, dependability, integrity, performance, safety,
security, verifiability
[13]. John D. Musa, Anthony Iannino, and Kazuhira Okumoto. 1987.
IV. CONCLUSION AND AVENUES FOR FUTURE WORK Software Reliability: Measurement, Prediction, Application. McGraw-
Hill, Inc., New York, NY, USA.
[14]. Clements, P., Kazman, R., and Klein,M. (2002). Evaluating Software
In this paper, we have extensively reviewed the various Architectures:Methods and Case Studies. Addison-Wesley.
[15]. Larry L. Constantine and Lucy A. D. Lockwood. 1999. Software for
non-functional requirements and their importance in the Use: A Practical Guide to the Models and Methods of Usage-Centered
current competitive software market. Design. ACM Press/Addison-Wesley Publ. Co., New York, NY, USA.
[16]. REX PAGE (2007). Engineering Software Correctness. Journal of
Functional Programming, 17, pp 675-686.
Summarizing, we believe that, from this survey, still a lot [17]. J. Mylopoulos, L. Chung, B. Nixon, "Representing and Using
more work is needed to be done in this field of software Nonfunctional Requirements: A Process-Oriented Approach," IEEE
engineering and researchers can come up with a formal way of Transactions on Software Engineering, vol. 18, no. 6, pp. 483-497, June
defining, specifying and measuring the non-functional 1992.
[18]. McGraw, G.; , "Software Security: Building Security In," Software
requirements. There is a need to come up with the prediction Reliability Engineering, 2006. ISSRE '06. 17th International
and estimation of the above mentioned non – functional Symposium on , vol., no., pp.6, 7-10 Nov. 2006.
requirements very early in the software development life cycle [19]. McGraw, G.; , "Software security," Security & Privacy, IEEE , vol.2,
ultimately resulting into the profit maximization and customer no.2, pp. 80- 83, Mar-Apr 2004.
[20]. Lyu, M.R.; , "Software Reliability Engineering: A Roadmap," Future of
satisfaction. This work would contribute to the software Software Engineering, 2007. FOSE '07 , vol., no., pp.153-170, 23-25
engineering community and to the researcher in improving the May 2007.
understanding the notion of non – functional requirements and [21]. Bashar Nuseibeh and Steve Easterbrook. 2000. Requirements
also to motivate them to come up with some pre-specified engineering: a roadmap. In Proceedings of the Conference on The
Future of Software Engineering (ICSE '00). ACM, New York, NY, USA,
standards on NFRs. 35-46.
[22]. Pericles Loucopoulos and Vassilios Karakostas. 1995. System
Requirements Engineering. McGraw-Hill, Inc., New York, NY, USA.
REFERENCES [23]. Glinz, M.; , "On Non-Functional Requirements," Requirements
Engineering Conference, 2007. RE '07. 15th IEEE International , vol.,
no., pp.21-26, 15-19 Oct. 2007.
[1]. Rosa, N.S.; Cunha, P.R.F.; Justo, G.R.R.; , "ProcessNFL: a language for [24]. Cysneiros, L.M.; do Prado Leite, J.C.S.; , "Nonfunctional requirements:
describing non-functional properties," System Sciences, 2002. HICSS. from elicitation to conceptual models," Software Engineering, IEEE
Proceedings of the 35th Annual Hawaii International Conference on, Transactions on , vol.30, no.5, pp. 328- 350, May 2004.
vol., no., pp. 3676- 3685, 7-10 Jan. 2002. [25]. IEEE (1990), Standard Glossary of Software Engineering Terminology,
[2]. Hill, R.; Jun Wang; Nahrstedt, K.; , "Quantifying non-functional IEEE Standard 610.12-1990.
requirements: a process oriented approach," Requirements Engineering [26]. I. Jacobson, G. Booch, and J. Rumbaugh (1999), The Unified Software
Conference, 2004. Proceedings. 12th IEEE International , vol., no., pp. Development Process. Reading, Mass,:Addison Wesley.
352- 353, 6-11 Sept. 2004. [27]. Davis, A. "Software Requirements: Objects Functions and States"
[3]. Finkelstein, A.; Dowell, J.; , "A comedy of errors: the London Prentice Hall, 1993.
Ambulance Service case study," Software Specification and Design, [28]. http://www.willamette.edu/~mjaneba/pentprob.html
1996., Proceedings of the 8th International Workshop on , vol., no., [29]. D. J. Grimshaw and G. W. Draper, "Non-functional requirements
pp.2-4, 22-23 Mar 1996. analysis: deficiencies in structured methods," Information and Software
[4]. Leveson, N.G.; Turner, C.S.;, "An investigation of the Therac-25 Technology, vol.43, pp. 629-634, 2001.
accidents," Computer , vol.26, no.7, pp.18-41, Jul 1993. [30]. N. Heumesser, A. Trendowicz, D. Kerkow, H. Gross, and L. Loomans,
[5]. Lindstrom, D.R.;, "Five ways to destroy a development project "Essential and requisites for the management of evolution -
[software development] ," Software, IEEE , vol.10, no.5, pp.55-58, Sep requirements and incremental validation," Information Technology for
1993. European Advancement, ITEA-EMPRESS consortium 2003.
[6]. Marew, T : Bae, D.H.; , "Using classpects for int-egrating non [31]. Garmus, D. and D. Herron (2000), “Function Point Analysis:
functional and functional requirements," Proceedings of the 24th Measurement Practices for Successful Software Projects”, Addison
IASTED International Multi-Conference SOFTWARE ENGINEERING, Wesley.
pp. 142-147. [32]. E.Poort, Peter H.N. de With, “Resolving Requirement Conflicts through
[7]. Cysneiros, L.M.; Sampaio do Prado Leite, J.C.; , "Integrating non- Non-Functional Decomposition”, IEEE Conference on Software
functional requirements into data modeling," Requirements Engineering, Architecture, 2004.
1999. Proceedings. IEEE International Symposium on , vol., no., [33]. B. Boehm and H. In, "Identifying quality-requirements conflict," IEEE
pp.162-171, 1999. Software, vol. 13, pp. 25-35, 1996.
[8]. Zhang Lin-lin; Ying Shi; Ni You-cong; Wen Jing; Zhao Kai; Ye Peng; , [34]. Marizia D. et. Al., “An Investigation into the Notion of Non-Functional
"Towards Multi-Dimensional Separating of NFRs in Software Requirements”, SAC’10, Sierre, Switzerland.
Architecture," Computer Science and Software Engineering, 2008
International Conference on , vol.2, no., pp.104-107, 12-14 Dec. 2008.
[9]. Boehm, B.; In, H.; , "Identifying quality-requirement conflicts,"
Requirements Engineering, 1996., Proceedings of the Second
International Conference on , vol., no., pp.218, 15-18 Apr 1996.
[10]. Wuyts, R.; Ducasse, S.; , "Non functional Requirements in a Component
Model for Embedded Systems", Position Paper,
scg.unibe.ch/archive/papers/Wuyt01e.pdf
[11]. Moriconi, M., Qian, X., Riemenschneider, R. A., Gong, L.: Secure
Software Architectures. IEEE Symposium on Security and Privacy.
Oakland CA (1997)
[12]. Saridakis, T., Issarny, V.: Fault Tolerant Software Architectures. INRIA
3350 (1998).

View publication stats

Das könnte Ihnen auch gefallen