Functional and non-functional requirements

Rezana Dowra
2 min readJan 18, 2023

--

Solution requirements are pinnacle in understanding the customer needs as well as building the right software product. They direct and dictate our delivery planning and technical solution.

This article will give you the right amount of information to understand two types of solution requirements namely; functional and non-functional as well as the tools to create them when working on a (software) product.

A functional requirement describes what a software system should do, while non-functional requirements place constraints on how the system will do so.

Functional Requirements

Definition

“Functional requirements: specify the functions a system is supposed to accomplish defined in terms of inputs, behavior, and outputs. Functional requirements specify particular results of a system, such as calculations, technical details, data manipulation, and processing.”

Types Functional Requirements

Functional Requirements of a system should include the some following things:

  • User actions requirements
  • Data handling logic, descriptions of data outputs, any create/modify/delete requirements
  • Workflows performed by the system
  • Regulatory and compliance requirements

Examples

  • The system must retain the data for 3 years from the time of creation.
  • The system must display the total number of users online on the home screen.
  • The system must send an email notification when the user clicks send.

Non-functional requirements

Definition

“Extra- (or Non-) functional requirements: (also called performance or quality requirements) specify constraints on the design or implementation, such as performance requirements, timing constraints, security, cost, energy consumption, lifetime, or reliability.”

Types of Non-Functional Requirements

The IEEE-Std 830–1993 lists 13 non-functional requirements to be included in a Software Requirements Document.

  • Performance requirements
  • Interface requirements
  • Operational requirements
  • Resource requirements
  • Verification requirements
  • Acceptance requirements
  • Documentation requirements
  • Security requirements
  • Portability requirements
  • Quality requirements
  • Reliability requirements
  • Maintainability requirements
  • Safety requirements

Examples

  • The system must have a 99% availability.
  • Emails should be send within 5 minutes of the user clicking send.

Tips for writing requirements

  • The requirements are statements.
  • Remove ambiguity.
  • They must contain quantitive measures.
  • Use consistent terminology.
  • Use a consistent tool/formats for documenting such as user-stories, use-cases, scenarios etc.
  • Try and get someone who has not been involved in the requirements gathering process to review the requirements to gain feedback

Hope you learned something.

-R

--

--

No responses yet