Lecture 13: Functional Requirements
Unit 3: Requirement Analysis and Design (4353202)
Lecture Agenda
- Recap of SRS
- What are Functional Requirements?
- Examples of Functional Requirements
- How to Write Good Functional Requirements
- Functional vs. Non-Functional Requirements
- Key Takeaways
Recap of SRS
The Software Requirement Specification (SRS) is a document that describes the intended purpose, functionality, and behavior of a software system. It serves as a contract between the client and the developers.
What are Functional Requirements?
Functional requirements define what a system is supposed to do. They describe the behavior and functions of the system and its components.
They are the features that a user will directly interact with.
Examples of Functional Requirements
For an Online Shopping System:
- The user shall be able to search for products.
- The system shall provide a shopping cart for users to add products to.
- The user shall be able to log in to their account using their email and password.
- The system shall send an order confirmation email to the user after a successful purchase.
- The system shall allow administrators to add, edit, and delete products.
How to Write Good Functional Requirements
- Be Specific and Clear: Avoid ambiguous language.
- Be Testable: It should be possible to verify that the requirement has been met.
- Be Atomic: Each requirement should describe a single function.
- Use "Shall" Statements: Use a consistent format, such as "The system shall...".
- Include User Roles: Specify which users can perform the function.
Functional vs. Non-Functional Requirements
| Aspect | Functional Requirements | Non-Functional Requirements |
|---|---|---|
| Focus | What the system does | How the system does it |
| Example | "The user shall be able to upload a photo." | "The photo upload shall complete in under 5 seconds." |
| User Interaction | Directly visible to the user | Often experienced as a quality of the system |
Key Takeaways
- **Functional requirements** define the specific behaviors and functions of a system.
- They are the **"what"** of the system.
- They should be **specific, testable, and atomic**.
- They are distinct from non-functional requirements, which define the **qualities** of the system.
Next Lecture
Topic: Non-Functional Requirements
Q & A
Questions & Discussion

