What are functional and non-functional requirements?

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.

Functional

  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.

Non-Functional

  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.

svg viewer
svg viewer
New on Educative
Learn to Code
Learn any Language as a beginner
Develop a human edge in an AI powered world and learn to code with AI from our beginner friendly catalog
🏆 Leaderboard
Daily Coding Challenge
Solve a new coding challenge every day and climb the leaderboard

Free Resources

Copyright ©2025 Educative, Inc. All rights reserved