Non-functional Requirements in Software Engineering

Non-Functional Requirements are the constraints or the requirements imposed on the system. They specify the quality attribute of the software. Non-Functional Requirements deal with issues like scalability, maintainability, performance, portability, security, reliability, and many more. Non-Functional Requirements address vital issues of quality for software systems. If NFRs not addressed properly, the results can include:

  • Users, clients, and developers are unsatisfied.
  • Inconsistent software.
  • Time and cost overrun to fix the software which was prepared without keeping NFRs in mind.
Types of Non-functional Requirement :

  1. Scalability
  2. Reliability
  3. Regulatory
  4. Maintainability
  5. Serviceability
  6. Utility
  7. Security
  8. Manageability
  9. Data integrity
  10. Capacity
  11. Regulatory
  12. Availability
  13. Usability
  14. Interoperability
  15. Environmental

These can can be classified as :

  1. Performance constraints –
    Reliability, security, response time, etc.

  2. Operating constraints –
    These include physical constraints (size, weight), personnel availability, skill level considerations, system accessibility for maintenance, etc.



  3. Interface constraints –
    These describe how the system is to interface with its environment, users, and other systems. For example, user interfaces and their qualities (e.g., user-friendliness).

  4. Economic constraints –
    Immediate and/or long-term costs.

  5. Lifecycle requirements – Quality of the design:
    These measured in terms such as maintainability, enhance ability, portability.

Advantages of Non-Functional Requirement :

  • They ensure the software system follows legal and adherence rules.
  • They specify the quality attribute of the software.
  • They ensure the reliability, availability, performance, and scalability of the software system
  • They help in constructing the security policy of the software system.
  • They ensure good user experience, ease of operating the software, and minimize the cost factor.

Disadvantages of Non-functional requirement :

  • The nonfunctional requirement may affect the various high-level software subsystem.
  • They generally increase the cost as they require special consideration during the software architecture/high-level design phase.
  • It is difficult to change or alter non-functional requirements once you pass them to the architecture phase.

Don’t stop now and take your learning to the next level. Learn all the important concepts of Data Structures and Algorithms with the help of the most trusted course: DSA Self Paced. Become industry ready at a student-friendly price.

My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.


Article Tags :

1


Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.