Functional and non functional requirements

First we need to define each one:

An example of a functional requirement would be:

  • A system must send an email whenever a certain condition is met (e.g. an order is placed, a customer signs up, etc).

A related non-functional requirement for the system may be:

  • Emails should be sent with a latency of no greater than 12 hours from such an activity.

 

now we talk about the diferences between them:

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

 

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 systems 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