Non Functional Requirements

Resources

Non-Functional Requirements (NFR)

Non-Functional Requirements (NFR) are requirements not directly tied to the specific functions the system must perform; instead, they define the standards the system needs to meet.

They usually cover performance, scalability, security, availability, maintainability, usability, reliability, and compatibility. A system can do its job and still fail these standards in real use. Capability can mean the services the software provides, or the skills, processes, and technology an organization needs. Logging and benchmarking are required practices in this note.

NFRs typically include:

  1. Performance: response speed, processing time, and load tolerance.
  2. Scalability: the system's ability to expand as workload grows.
  3. Security: protecting data and preventing unauthorized access.
  4. Availability: the amount of time the system is up and running.
  5. Maintainability: how easily the system can be maintained and updated.
  6. Usability: how easy the system is for end users to use.
  7. Reliability: the system's ability to operate stably over a long period.
  8. Compatibility: compatibility with other systems or environments.

NFRs are essential to ensure that a system not only works functionally but also performs well in the real world and meets performance and quality requirements.

Performance covers response speed, processing time, and load tolerance. Scalability is the ability to expand as the workload grows. Security protects data and prevents unauthorized access. Availability is the time the system stays up and running. Maintainability is how easily it can be maintained and updated. Usability is how easy the system is for end users. Reliability is stable operation over a long period. Compatibility is how well it works with other systems or environments. System capability is the service itself, for example storing customer information, tracking transactions, and sending marketing emails. Organizational capability covers skills, processes, and technology, such as developing software, managing projects, and securing information. Business analysis should list the functional requirements, the non-functional requirements, and those capabilities together.

Capability

Capability in the context of software and systems development can be understood in two main ways:

  1. System capability: the specific functions or services the system provides. This is what the system can do, and it is usually described through Functional Requirements. For example, a customer management system is capable of storing customer information, tracking transactions, and sending marketing emails.
  2. Organizational capability: in the context of strategy and management, capability can also refer to the abilities an organization needs in order to achieve its business goals. This includes skills, processes, technology, and other factors that help the organization do its work effectively. For example, an organization needs the capability to develop software, manage projects, and secure information.

Business Analysis

  • List the functional/non-functional requirements and capabilities for the system.

Required Practices

  • Logging
  • Benchmarking

See also: Fundamentals · Overview