written 6.3 years ago by | • modified 6.1 years ago |
Subject: Software Engineering
Topic: Software Configuration Management
Difficulty: Medium
written 6.3 years ago by | • modified 6.1 years ago |
Subject: Software Engineering
Topic: Software Configuration Management
Difficulty: Medium
written 6.3 years ago by |
Requirements generally fall into two types: functional and non-functional.
The difference between them is fairly straightforward, nevertheless, in the this article we’ll define the two types of requirements and provide examples of each to point out more concretely the fundamental difference between them. Functional requirements
The definition of a functional requirement is:
Any requirement which specifies what the system should do.
In other words, a functional requirement will describe a particular behaviour 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”.
A functional requirement for an everyday object like a cup would be: “ability to contain tea or coffee without leaking”.
Typical functional requirements include:
Business Rules
Transaction corrections, adjustments and cancellations
Administrative functions
Authentication
Authorization levels
Audit Tracking
External Interfaces
Certification Requirements
Reporting Requirements
Historical Data
Legal or Regulatory Requirements
Non-functional requirements:-
The definition of a non-functional requirement is:
Any requirement which specifies how the system performs a certain function.
In other words, a non-functional requirement will describe how a system should behave and what limits there are on its functionality.
Non-functional requirements generally specify the system’s quality attributes or characteristics, for example: “Modified data in a database should be updated for all users accessing it within 2 seconds.”
A non-functional requirement for the cup mentioned previously would be: “contain hot liquid without heating up to more than 45 °C”.
Typical non-functional requirements include:
Performance – for example: response time, throughput, utilization, static volumetric.
Scalability
Capacity
Availability
Reliability
Recoverability
Maintainability
Serviceability
Security
Regulatory
Manageability
Environmental
Data Integrity
Usability
Interoperability
It is important to correctly state non-functional requirements since they’ll affect your users’ experience when interacting with the system.
One way to prevent missing out on important non-functional requirements is to use non-functional requirement groups as a guide for listing them down. This blog post provides an explanation of each of the four main non-functional requirements groups and how they are used.