Functional and Non Functional Requirements - GeeksforGeeks

Functional and Non Functional Requirements

Last Updated : 26 Oct, 2026

Requirements analysis identifies and documents what a system must do and the conditions under which it must operate. It provides the foundation for making appropriate system design decisions.

  • Functional Requirements: Define the features and operations a system must perform, such as user registration, search, and payments.
  • Non-Functional Requirements: Define system quality attributes and constraints, such as performance, scalability, security, and availability.

Example: In an online shopping system, user login, product search, and order placement are functional requirements, while response time, security, availability, and scalability are non-functional requirements.

requirements

Functional Requirements

Functional requirements describe the specific features, behaviors, and operations that a system must perform. They define how the system responds to user actions, inputs, and events.

For example, in an e-commerce application, users should be able to search for products, add items to their cart, and place orders.

Examples of Functional Requirements:

  • User Authentication: Allow users to register, log in, and log out of their accounts.
  • Product Search: Enable users to search for products using keywords, categories, or filters.
  • Payment Processing: Allow users to make payments using supported payment methods.
  • Order Management: Enable users to place, view, track, and cancel orders.
  • Notifications: Send notifications about order confirmations, payments, and delivery updates.

Non-Functional Requirements

Non-functional requirements define how well a system should perform its operations. They specify quality attributes, operational expectations, and technical constraints that influence system architecture.

For example, an e-commerce website should load product pages quickly, protect customer information, and remain available during high-traffic sales.

Types of Non-Functional Requirements:

  • Performance: Defines acceptable response times, latency, and throughput under specified workloads.
  • Scalability: Specifies how the system should handle increasing users, requests, or data volumes.
  • Availability: Defines the expected percentage of time the system should remain operational.
  • Reliability: Ensures the system operates correctly and recovers appropriately from failures.
  • Security: Establishes requirements for authentication, authorization, encryption, and data protection.
  • Maintainability: Defines how easily the system can be updated, tested, debugged, and modified.
  • Usability: Specifies expectations for ease of use, accessibility, and user experience.
  • Portability: Defines the platforms, environments, and deployment targets the system must support.

Example of Functional and Non-Functional Requirements

Consider an Online Banking System where customers can access their accounts, transfer money, and view transaction details.

1. Functional Requirements

The banking application should support the following operations:

  • Users can log in to their accounts.
  • Users can view account balances.
  • Users can transfer money between supported accounts.
  • Users receive notifications for selected transactions.

2. Non-Functional Requirements

The banking system should meet the following quality expectations:

  • 95% of balance requests should complete within 2 seconds under the expected workload.
  • Sensitive data should be encrypted according to defined security requirements.
  • The system should meet its defined availability target.
  • The system should support the anticipated peak transaction workload.

Functional Vs Non-Functional Requirements

AspectFunctional RequirementsNon-Functional Requirements
Main QuestionWhat should the system do?How well should the system operate?
FocusFeatures and behaviorQuality attributes and constraints
ExamplesLogin, search, payment, order placementPerformance, security, availability, scalability
ValidationVerify expected behavior and outputsMeasure against defined targets or criteria
Design ImpactDefines required functionalityStrongly influences architecture and technology decisions
DocumentationUse cases, user stories, workflows, specificationsSLOs, quality targets, constraints, technical requirements

Common Challenges in Requirements Analysis

Defining clear functional and non-functional requirements can be challenging because business priorities, technical constraints, and user expectations may differ.

  • Ambiguous Requirements: Vague statements can lead to misunderstandings and incorrect implementations.
  • Changing Requirements: Business needs and user expectations may evolve throughout development.
  • Conflicting Requirements: Improving security, performance, or consistency may involve trade-offs.
  • Unclear Performance Targets: Terms such as "fast" or "highly scalable" lack measurable acceptance criteria.
  • Missing Requirements: Overlooking critical functionality or quality expectations can create problems during development.
  • Unrealistic Expectations: Requirements may exceed available budgets, infrastructure capabilities, or development timelines.
Comment