Understanding Functional Requirements
Functional requirements define the core features and behaviors that a system must support to meet user needs. In system design, these are the "what" of the system—what it does—contrasting with non-functional requirements like performance or scalability (covered in prerequisites such as performance-metrics).
Identifying functional requirements starts with gathering stakeholder input, such as user stories or use cases. They should be clear, testable, and focused on essential functionalities.
For example, in designing a ride-sharing app like Uber: - Users must be able to request a ride. - Drivers must receive and accept ride requests. - The system must match users with nearby drivers.
These ensure the system delivers value without unnecessary complexity.
Key characteristics:
- Specific: Describes exact actions, e.g., "Users can search for products by keyword."
- Action-oriented: Uses verbs like "create," "update," or "delete."
- User-centric: Focuses on end-user interactions.