Non- Functional Requirements
A Non-Functional Requirement (NFR) defines the quality attribute of a software system. They represent a set of standards used to judge the specific operation of a system. Example, how fast does the website load?
A non-functional requirement is essential to ensure the usability and effectiveness of the entire software system. Failing to meet non-functional requirements can result in systems that fail to satisfy user needs.
Non-functional Requirements allows you to impose constraints or restrictions on the design of the system across the various agile backlogs. Example, the site should load in 3 seconds when the number of simultaneous users are> 10000. Description of non-functional requirements is just as critical as a functional requirement.
Types of Non-functional Requirement
-
Usability requirement
-
Serviceability requirement
-
Manageability requirement
-
Recoverability requirement
-
Security requirement
-
Data Integrity requirement
-
Capacity requirement
-
Availability requirement
-
Scalability requirement
-
Interoperability requirement
-
Reliability requirement
-
Maintainability requirement
-
Regulatory requirement
-
Environmental requirement
Examples of Non-functional requirements
Here, are some examples of non-functional requirement:
-
Users must change the initially assigned login password immediately after the first successful login. Moreover, the initial should never be reused.
-
Employees never allowed to update their salary information. Such attempt should be reported to the security administrator.
-
Every unsuccessful attempt by a user to access an item of data shall be recorded in an audit trail.
-
A website should be capable enough to handle 20 million users with affecting its performance
-
The software should be portable. So moving from one OS to other OS does not create any problem.
-
Privacy of information, the export of restricted technologies, intellectual property rights, etc. should be audited.
Advantages of Non-Functional Requirement
Benefits/pros of Non-functional testing are:
-
The nonfunctional requirements ensure the software system follow legal and compliance rules.
-
They ensure the reliability, availability, and performance of the software system
-
They ensure good user experience and ease of operating the software.
-
They help in formulating security policy of the software system.
Disadvantages of Non-functional Requirement
Cons/drawbacks of Non-function requirement are:
-
None functional requirement may affect the various high-level software subsystem
-
They require special consideration during the software architecture/high-level design phase which increases costs.
-
Their implementation does not usually map to the specific software sub-system,
-
It is tough to modify non-functional once you pass the architecture phase.
Summary
-
A non-functional requirement defines the performance attribute of a software system.
-
Types of Non-functional requirement are Scalability Capacity, Availability, Reliability, Recoverability, Data Integrity, etc.
-
Example of Non Functional Requirement is Employees never allowed to update their salary information. Such attempt should be reported to the security administrator.
-
Functional Requirement is a verb while Non-Functional Requirement is an attribute
-
The advantage of Non-functional requirement is that it helps you to ensure good user experience and ease of operating the software
-
The biggest disadvantage of Non-functional requirement is that it may affect the various high-level software subsystems.