Hello friends! in this post we will be learning about – Non Functional Requirements or NFRs, their meaning and the different attributes of quality that comprise an NFR document.
What are Non-Functional Requirements?
Non-functional requirements or NFRs are the set of requirements that defines how well a system will operate as opposed to functional requirements that focus on the specific business functionalities that an application performs. The way an application will operate is nothing but some defined quality parameters like accessibility, efficiency, reliability, usability, interoperability, etc. on the basis of which application’s quality is measured.
Attributes of NFRs
Following are some of the attributes of examples of NFRs-
- Usability – Usability is defined as a measure of the degree to which an application can be easily used and operated.
- Scalability – Scalability is defined as the ability of the system to cater to the growing usage of the application. It is of two types horizontal scaling – scaling provided by adding more machines and vertical scaling – scaling provided by adding more CPU and RAM to the available machines.
- Security – Security is one of the most important attributes of NFRs. It is the measure of the resilience of the application under any type of malicious attack.
- Accessibility – Accessibility is the ability of an application to cater to the needs of the user with special needs or disabilities using some Assistive technology like screen readers.
- Data integrity – Data integrity deals with the integrity, consistency, and correctness of the data in the application.
- Durability – Durability is the measure of the ability of the application to cater to the requirements for a long period of time.
- Interoperability – Interoperability is the ability of an application to work in conjunction with other applications smoothly at present as well as in the future.
- Maintainability – Maintainability is defined as the ease with which an application can be restored to working condition after a failure.
- Performance – Performance is a non-functional requirement that deals with the measure of the response time of the application under different load conditions.
- Reliability – Reliability of a software system makes use of Mean Time Between Failure (MTBF) parameter that is the time elapsed between 2 failures. The longer the MTBF the more reliable is the application.
- Robustness – Robustness of a software application is the measure of the ability of a software application to deal with invalid or erroneous input effectively.