Functional Requirements vs Non-functional requirements
ℹ️ Functional requirements specify what system should do and they are mandatory. Non-functional describe how system should behave and establish constraints of system functionality.
Software or System requirements are often classified as functional and non-functional requirements
Functional Requirements vs Non-Functional Requirements
Any Requirement Which Specifies What The System Should Do.
A Functional requirement will describe a particular behavior of function of the system when certain conditions are met, for example: “Send email when a new customer signs up” or “Open a new account”.
- Business rules
- Authorization levels
- Authentication of a user when he/she tries to log into the system.
- System shutdown in the case of a cyber-attack.
- A verification email is sent to a user whenever they register for the first time on some software system.
Any requirement that specifies HOW the system performs a certain function.
Simply put, the difference is that non-functional requirements describe how the system works, while functional requirements describe what the system should do.
In case non-Functional requirements are not met the basic functionality will not be impacted. However, non-functional requirements deal with system usability, and this important as well. Non-functional requirements affect the user experience.
Non-functional requirements when defined and executed well will help to make the system easy to use and enhance the performance. Non-functional requirements focus on user expectations, as they are product properties.
- Usability - addresses the simple question "How hard is it to use the product?".
- Securability - assures that all data inside the system or its part will be protected against attacks or unauthorized access.
- Reliability - specifies how likely a system or its part would run without failures for a defined period of time.
- Availability - describes how likely the system is accessible to a user at a point in time. For example, the system may be available 98% of the time during a month.
- Performance - defines how fast the system or its part responds to certain user actions under certain conditions/workload.
- An email should be sent to a user with a maximum latency of 12 hours. -> Performance
- Each request should be processed within 10 seconds. -> Performance
- Use should not be able to save a password that contains only characters or only numbers. -> Security
ℹ️ Software or System requirements are classified as functional and non-functional requirements. Functional requirements define/specify what the system should do and they are mandatory. Non-functional requirements are system quality attributes, they describe how the system should behave and establish constraints of its functionality.