The following pointers state the definition of NFRs:
- To define requirements and constraints on the IT system
- As a basis for cost estimates and early system sizing
- To assess the viability of the proposed IT system
- As an important determining factor of the architecture and design of the operational models
- As a guideline to design phase to meet NFRs such as performance, scalability, and availability
The NFRs for each of the domains, for example, scalability, availability, and so on, must be understood to facilitate the design and development of the target operating model. These include the servers, networks, and platforms including the application runtime environments. These are critical for the execution of benchmark tests. They also affect the design of technical and application components.
End users have expectations about the effectiveness of the application. These characteristics include ease of software use, speed, reliability, and recoverability when unexpected conditions arise. The NFRs define these aspects of the IT system.
The NFRs should be defined precisely and this involves quantifying them. NFRs should provide measurements which the application must meet. For example, the maximum number of time allowed to execute a process, the number of hours in a day an application must be available, the maximum size of a database on disk, and the number of concurrent users supported are typical NFRs the software must implement.
There are many kinds of non-functional requirements.