Important announcement

Dear visitor,

Please note that this OpenCourseWare platform will be replaced at the end of 2026 by a new platform (under the same url ocw.tudelft.nl).

Courses and their contents that are currently available the platform will partly be migrated. URL’s for this content will change and content might be unavailable for some time. In addition, some courses will not be available anymore.

If you are linking to specific courses on this platform (for instance for your students), please take timely measures to avoid problems with access. Possible actions are:

  • Download the materials to your local platform (laptop, server)
  • For educators only (including TU Delft lecturers): Contact us at ocw@tudelft.nl and inform us what course you are using in what context (institute, program, period of use, number of students). We will research (in collaboration with the authors of the course) and decide if we will migrate the course, and if yes, can supply you with a new url.

Thank you.

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.

A 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
[sg_popup id=6]