What is a Non Functional Requirement
Non Functional Requirements or NFRs describe characteristics of software that are not defined in terms of functionality. Generally these are attributes or constraints on the system that end with ‘-ility’ or ‘-ilities’. For example:
Non Functional Requirement Types
There are potentially dozens of NFR type. The importance of each NFR type will depend on the type of software, the context and the use case. Some of the most commonly considered NFR types are:
A comprehensive list of NFRs is available on Wikipedia.
Security – a special case
It is worth taking a closer look at Security as an NFR. Although security is commonly considered to be non functional, in reality most security requirements are in fact functional. For example permission checks before running a process, is likely to be a functional requirement. In our studies over 90% of all security requirements are functional.
The Benefits of Auto Detection of NFRs
Non functional requirements are an important dimension of software. Often they are overlooked, or of poor quality (unspecific, incomplete or inconsistent). NFRs can have a significant impact on the work to deliver a piece of software. Neglecting them can lead to increased risk for a project.
When you use ScopeMaster to analyse your requirements for potential NFRs, you can build up a checklist to ensure NFRs are correctly and adequately covered. This will reduce risk to your project. Also you want to avoid mixing functional with Non-functional requirements unless it is necessary so to do.