Trusted answers to developer questions
Trusted Answers to Developer Questions

Related Tags

design interviews
system design

What are functional and non-functional requirements?

Educative Answers Team

Requirements analysis is critical process that enables the success of a system or software project to be assessed.

Requirements are generally split into two types: Functional and Non-functional requirements.


  1. A functional requirement specifies “What should the software system do?”

  2. Describes the functionality & services provided by a system.

  3. Define a system’s reaction to particular inputs.

  4. Usually easy to define.


  1. A non-functional requirement places constraints on “How should the software system fulfill the functional requirements?”

  2. Defines the system’s properties & constraints.

  3. Applied to a system as a whole.

  4. Define the constraints on the action of the system e.g. timing constraints, development process constraints, etc.

  5. Usually more difficult to define.