Skip to content
Related Articles

Related Articles

Non-functional Requirements in Software Engineering

Improve Article
Save Article
  • Difficulty Level : Medium
  • Last Updated : 02 Dec, 2022
Improve Article
Save Article

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. Availability
  12. Usability
  13. Interoperability
  14. Environmental

These 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.
My Personal Notes arrow_drop_up
Related Articles

Start Your Coding Journey Now!