Functional and Non Functional Requirements (original) (raw)

Last Updated : 11 Apr, 2026

Requirements analysis is a crucial phase in software development where the needs and expectations of users and stakeholders are identified and documented. It ensures the system is built correctly and meets its intended goals.

**Example: In an online shopping system, functional requirements include features like user login and order placement, while non-functional requirements include system performance, security, and scalability.

requirements

Functional Requirements

Functional requirements define the specific features and operations a system must perform to meet business and user needs. They describe what the system should do and how it interacts with users or other systems.

**Sample Questions

Non-Functional Requirements

Non-functional requirements (NFRs) define how a system should operate, focusing on performance, reliability, and user experience rather than specific features. They ensure the system is efficient, secure, and maintainable over time.

**Sample Questions

Extended Requirements

Extended requirements define additional capabilities or considerations that enhance the system but are not part of the core functional features. These requirements help improve monitoring, reliability, and future expansion of the system.

**Sample Questions

Examples of Functional and Non-functional Requirements

A couple of examples to illustrate both types of requirements:

1. Online Banking System

**Functional Requirements:

**Non-functional Requirements:

**Extended Requirements:

2. Food Delivery App

**Functional Requirements:

**Non-functional Requirements:

**Extended Requirements:

Differences between Functional Requirements and Non-Functional Requirements

**Functional Requirements **Non-Functional Requirements
Define what the system should do (features & functionality) Define how the system should perform (quality attributes)
Focus on system behavior and operations Focus on performance, usability, security, reliability
Describe specific actions like login, data processing, transactions Describe constraints like response time, scalability, availability
Directly visible to users and business needs Indirectly visible, improve overall user experience
Easier to measure (output-based validation) Harder to measure, uses metrics like SLAs, benchmarks
Drive the core functionality of the system Influence architecture and system design decisions
Documented using use cases, user stories Documented using technical specs, performance criteria
**Examples: login authentication, data input/output, transaction processing. **Examples: scalability, security, response time, reliability, maintainability.

Common Challenges in Defining these Requirements

Defining system requirements can be challenging because they must balance functionality, performance, and long-term system goals. Poorly defined requirements can lead to design issues, delays, or systems that fail to meet user expectations.

Gathering Functional, Non-functional and Extended Requirements

Gathering requirements involves multiple approaches and collaboration between the development team, stakeholders, and end-users.

1. Functional Requirements

2. Non-functional Requirements

3. Extended Requirements

Extended requirements are gathered to improve system monitoring, reliability, and future enhancements beyond the core functionality.