Functional and Non-Functional Requirements
Functions or Constraints



Probably the most frequently used means of requirements classification is Functional and Non-Functional.

This classification helps identify whether a requirement will affect the functionality of the system (Functional) or whether it will constrain the system (Non-Functional). This classification is probably the most beneficial in that it helps define what system functions are being considered.

Requirementing, by Clearly Put, uses a Functional and Non-Functional means of classification.


Functional Requirement (Function)

A Functional Requirement is a requirement that, when satisfied, will allow the user to perform some kind of function. For example:

“The customer must place an order within two minutes of registering”

For the most part, when people are talking about Business Requirements, they are referring to Functional Requirements which are generally referred to as “requirements”. Functional Requirements have the following characteristics:

  • uses simple language
  • not ambiguous
  • contains only one point
  • specific to one type of user
  • is qualified
  • describes what and not how


Non-Functional Requirement

A Non-Functional Requirement is usually some form of constraint or restriction that must be considered when designing the solution. For example:

“The customer must be able to access their account 24 hours a day, seven days a week.”

For the most part when people are talking about Constraints, they are referring to Non-Functional Requirements. Non-Functional Requirements have the same following characteristics:

  • uses simple language
  • not ambiguous
  • contains only one point
  • specific to one type of user
  • is qualified
  • describes what and not how

Non-Functional requirements tend to identify “user” constraints and “system” constraints. Business requirements should be kept pure and not reflect any solution thinking.

A system constraint is a constraint imposed by the system and not dictated by a Business Need. Since system constraints are part of a “solution”, they should be documented in the System Specifications document. For example:

“The system must be unavailable from midnight until 1:00am for backups.”

This is a restriction imposed by the system and not a user request.

Some people like to further classify the Non-Functional Requirments into such categories as “Performance Constraints, Design Constraints, Quality Constraints, etc.. This classification can be used if there is deemed to be a benefit.



Summary

There are two main types of Business Requirements. Functional and Non-Functional Requirements. Functional Requirements are functions and Non-Functional Requirements are considered constraints. Both have the same general characteristics.


Requirementing Steps