A Non-Functional Requirement (NFR) defines the quality attribute of a software system. They represent a set of standards used to judge the specific operation of a system. Example, how fast does the website load?
A non-functional requirement is essential to ensure the usability and effectiveness of the entire software system. Failing to meet non-functional requirements can result in systems that fail to satisfy user needs.
Non-functional Requirements allows you to impose constraints or restrictions on the design of the system across the various agile backlogs. Example, the site should load in 3 seconds when the number of simultaneous users are > 10000. Description of non-functional requirements is just as critical as a functional requirement.
In this tutorial, you will learn,
- What is Non-Functional Requirement?
- Types of Non-functional Requirement
- Examples of Non-functional requirements
- Functional vs. Non-Functional Requirements
- Advantages of Non-Functional Requirement
- Disadvantages of Non-functional requirement
- Usability requirement
- Serviceability requirement
- Manageability requirement
- Recoverability requirement
- Security requirement
- Data Integrity requirement
- Capacity requirement
- Availability requirement
- Scalability requirement
- Interoperability requirement
- Reliability requirement
- Maintainability requirement
- Regulatory requirement
- Environmental requirement
Here, are some examples of non-functional requirement:
- 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.
|Parameters||Functional Requirement||Non-Functional Requirement|
|What is it?||Verb||Attributes|
|Requirement||It is mandatory||It is non-mandatory|
|Capturing type||It is captured in use case.||It is captured as a quality attribute.|
|End-result||Product feature||Product properties|
|Capturing||Easy to capture||Hard to capture|
|Objective||Helps you verify the functionality of the software.||Helps you to verify the performance of the software.|
|Area of focus||Focus on user requirement||Concentrates on the user's expectation.|
|Documentation||Describe what the product does||Describes how the product works|
|Type of Testing||Functional Testing like System, Integration, End to End, API testing, etc.||Non-Functional Testing like Performance, Stress, Usability, Security testing, etc.|
|Test Execution||Test Execution is done before non-functional testing.||After the functional testing|
|Product Info||Product Features||Product Properties|
Benefits/pros of Non-functional testing are:
- The nonfunctional requirements ensure the software system follow legal and compliance rules.
- They ensure the reliability, availability, and performance of the software system
- They ensure good user experience and ease of operating the software.
- They help in formulating security policy of the software system.
Cons/drawbacks of Non-function requirement are:
- None functional requirement may affect the various high-level software subsystem
- They require special consideration during the software architecture/high-level design phase which increases costs.
- Their implementation does not usually map to the specific software sub-system,
- It is tough to modify non-functional once you pass the architecture phase.
- A non-functional requirement defines the performance attribute of a software system.
- Types of Non-functional requirement are Scalability Capacity, Availability, Reliability, Recoverability, Data Integrity, etc.
- Example of Non Functional Requirement is Employees never allowed to update their salary information. Such attempt should be reported to the security administrator.
- Functional Requirement is a verb while Non-Functional Requirement is an attribute
- The advantage of Non-functional requirement is that it helps you to ensure good user experience and ease of operating the software
- The biggest disadvantage of Non-functional requirement is that it may affect the various high-level software subsystems.