Functional and Non-Functional Requirements

There is a huge difference between a functional and a nonfunctional requirement. The functional requirement describes the tasks that a software must do, while the nonfunctional requirement describes how the software will do.

The functional requirements most of the time describe the behavior of the function, such as instructions or tasks regarding something. In software, these requirements describe the way it functions.

The following functional requirements are some of the most common:

  • 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

The nonfunctional requirements are re remaining requirements of a project, in the case of software, they describe the what the software is going to do or how. These requirements specify in general the product, rather than an specific task or method.

The following nonfunctional requirements are some of the most common:

  • Performance – for example Response Time, Throughput, Utilization, Static Volumetric
  • Scalability
  • Capacity
  • Availability
  • Reliability
  • Recoverability
  • Maintainability
  • Serviceability
  • Security
  • Regulatory
  • Manageability
  • Environmental
  • Data Integrity
  • Usability
  • Interoperability

Retrieved from

Functional and nonfunctional requirements

When a software developer begins with a project, he needs to establish objectives. Some of them are client requirements. These can be classified as functional or nonfunctional. And no, nonfunctional does not mean they are useless or not that important.

A requirement is functional when it must do something. It’s not a static requirement. Example: the product must include an automatic backup tool.

On the other hand, a requirement turns out to be nonfunctional when it’s not precisely a function of the program, but rather a characteristic of it. Example: the product must have SSL.

An easier way to understand this is by taking the OOP focus: functional requirements are the same as methods, as well as nonfunctional requirements are the same as properties.

flickr photo by ollesvensson shared under a Creative Commons (BY) license
flickr photo by ollesvensson shared under a Creative Commons (BY) license