Requirement: Functional vs Non-functional

Functional requirements

Functional requirements define the expected behavior of the system, and further point out how the system responds to a particular input. A function includes the inputs, its behavior, and outputs. Essentially, after reading the functional requirement, we capture the intended behavior of the system and understand what the system must do or must not do. For example, when we click the Send Email button, the system sends an email to the recipient (it does not send to the recipient we do not want). 

Functional requirements purely describe functionality or system services. It is ok to start defining functional requirements with high-level statements of what the system should do, then, we can break it down further into detail such as the type of software, expected users, and the type of system where the software operates, and to the lowest levels describing calculation, data manipulation, business process, user interaction, or any other specific mathematical operation.

For a system, functional system requirements should describe the system services in detail.

Non-functional requirements

Non-functional requirements define the properties and constraints of the system. Examples include the response time and storage requirements. Constraints are I/O device capability, system representations. At the overview level, we can define non-functional requirements as critical criteria for the system to operate its functional requirements normally such as Availability, Scalability, Reliability, Recoverability, and Data Integrity. A non-functional requirement is essential to ensure the usability and effectiveness of the entire software system. Failing to meet non-functional requirements can result in systems becoming useless, for it does not have the environment to acquire the input, perform its behavior and produce the outputs. 

For example, to make the Send Email work, there should be storage for the sent email, the storage should be able to store a definite amount of emails and the processing power determine how long does it take to load the sent email (constraint point).  


To view or add a comment, sign in

More articles by Luan Dang

  • Exploring the Power of AWS (Amazon Web Services)

    1. Understanding the Technology Amazon Web Services (AWS) is categorized as Infrastructure as a Service (IaaS)…

  • Understanding Front End and Back End in Software Engineering

    For software engineering, the concepts of front end and back end serve as abstractions that represent two distinct…

  • Technical Writer

    I would enjoy telling people what I do for I living – Technical Writing. It is a combination of a technical profession…

    3 Comments

Others also viewed

Explore content categories