2.2.1 Functional vs. Non-Functional Requirements

Course subject(s) 2: Functional Requirements

Computer systems are designed to meet one or multiple objectives. Without consideration of such requirements, it is impossible to compare alternative designs.

When designing distributed systems, it can be helpful to distinguish between functional requirements (FRs) and non-functional requirements (NFRs). In this module, we will introduce both, but focus on FRs; NFRs are the focus of the next module, Module 3.

functional requirement specifies something the system must be able to do. It specifies a feature, expressed as a specific function or as a broadly defined behavior. The system either has the feature, and thus provides the function or behaves as specified, or not.


Examples of functional requirements of a multiplayer online game include:

  1. The player can connect to the game servers and see who is connected to each server (bar privacy or in-game regulations).
  2. The player can join their friends, and together they can meet in the game and exchange messages.
  3. Players engaged in parkour against the clock can do so wherever they are in the world, even if the clocks on their computers are not synchronized.
  4. Specific actions where multiple players compete to retrieve the same object are correctly resolved by the game, and, subsequently, each player sees the same outcome.
  5. Modifications made to an in-game object by the players are seen in the correct order by all nearby players.


In contrast, a non-functional requirement focuses on how well the feature works, defining quality attributes for the distributed system. Examples related to the same online game include:

  1. Players experience that their actions (clicks) receive a reaction from the game within 150 milliseconds. This lag is not only limited but also stable.
  2. Players can access the game services every time they try.
  3. Each machine used by the gaming platform is utilized more than 50%, each day.
  4. The gaming platform consumes at most 1 MWh of electricity per day.
Creative Commons License
Modern Distributed Systems by TU Delft OpenCourseWare is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.
Based on a work at https://online-learning.tudelft.nl/courses/modern-distributed-systems/
Back to top