Functional Requirements
Definition
Functional requirements (FRs) describe what the system should do — the specific functions, features, tasks, or services the software must perform in response to given inputs, including how it should behave in particular situations.
Characteristics
- Describe behavior and functionality (actions, calculations, data manipulation)
- Usually expressed as: "The system shall [do X] when [condition Y]"
- Directly testable — pass/fail based on observed behavior
- Derived from user needs, business rules, and use cases
Examples
- "The system shall allow users to register with an email and password"
- "The system shall calculate the total bill including tax and discounts"
- "The system shall send an email notification when an order is shipped"
- "The system shall allow an admin to delete a user account"
How Functional Requirements Are Captured
- Use Cases — describe interactions between actors and the system
- User Stories (Agile) — "As a [user], I want [goal] so that [benefit]"
- Process/Data Flow Diagrams
- Decision Tables/Trees for complex conditional logic
Categories of Functional Requirements
- Business rules — logic/policies the system enforces
- Transaction corrections/adjustments — undo, cancel, edit operations
- Administrative functions — user management, configuration
- Authentication/authorization — login, access control
- External interface requirements — how the system interacts with other systems
- Certification requirements — compliance-related functional behavior
Functional vs. Non-Functional (quick contrast)
- Functional = "What" the system does
- Non-Functional = "How well" it does it (performance, security, usability)
Exam tip: Always give 2–3 concrete examples in "shall" statement format when asked to define FRs — examiners specifically look for correctly formatted requirement statements.