Non-functional Requirements (NFRs) define system attributes such as security, reliability, performance, maintainability, scalability, and usability. They serve as constraints or restrictions on the design of the system across the different backlogs.
Functional requirements define what a system is supposed to do and non-functional requirements define how a system is supposed to be. Functional requirements are usually in the form of "system shall do <requirement>. In contrast, non-functional requirements are in the form of "system shall be <requirement>", an overall property of the system as a whole or of a particular aspect and not a specific function. The system's overall properties commonly mark the difference between whether the development project has succeeded or failed.
Non-functional requirements are often mistakenly called the "quality attributes" of a system, however there is a distinction between the two. Non-functional requirements are the criteria for evaluating how a software system should perform and a software system must have certain quality attributes in order to meet non-functional requirements. So when we say a system should be "secure", "highly-available", "portable", "scalable" and so on, we are talking about its quality attributes. Other terms for non-functional requirements are "qualities", "quality goals", "quality of service requirements", "constraints", "non-behavioral requirements", or "technical requirements".
Examples of Non-functional requirements
Here, are some examples of Non functional requirements:
- Users must change the initially assigned login password immediately after the first successful login. Moreover, the initial should never be reused.
- Employees never allowed to update their salary information. Such attempt should be reported to the security administrator.
- Every unsuccessful attempt by a user to access an item of data shall be recorded on an audit trail.
- A website should be capable enough to handle 20 million users with affecting its performance
- The software should be portable. So moving from one OS to other OS does not create any problem.
- Privacy of information, the export of restricted technologies, intellectual property rights, etc. should be audited.
Technical Requirement
Most computer-based systems perform some automated procedures or processes, even the simplest website enables a visitor to navigate around the site to find information. More complex websites authenticate visitors and may automate transactions through e-commerce.
Technical requirements for system procedures and processes identify the non-functional specifications of the proposed system itself. The non-functional requirements can include:
- Performance or speed of the system
- Quality
- Environmental requirements or business rules
- Size
- Ease of use
- Reliability
- Robustness
- Portability
For Example:
- If the system is a sales system: technical requirements may address the number of transactions per minute.
- If the system is a website: the technical requirements may address the page display speed, compatibility with browsers and hardware platforms.
- If the system is a database-centred system: the technical requirements may address the constructs of the database, number of records or processing time.
- If the system is an inventory control system: the technical requirements may address the ability to set the alarm levels for high and low stocks.
- If the system is a network: the technical requirements may address download or response times, application access, redundancy procedures, disk access speeds, number of users etc.
In addition technical requirements for system procedures and processes may address the application architecture, development environment or network topology and protocols.
Thank you for reading!