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.
Last updated
ℹ️ Functional requirements specify what system should do and they are mandatory. Non-functional describe how system should behave and establish constraints of system functionality.
Last updated
Software or System requirements are often classified as functional and 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
Authentication
Authorization
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.
Non-Functional Requirements are also quality attributes, so they may include:
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.