Lecture 14: Non-Functional Requirements
Unit 3: Requirement Analysis and Design (4353202)
Lecture Agenda
- Recap of Functional Requirements
- What are Non-Functional Requirements (NFRs)?
- Categories of NFRs
- Examples of NFRs
- Importance of NFRs
- Key Takeaways
Recap of Functional Requirements
Functional requirements define what a system should do. They describe the specific behaviors, functions, and features of the system.
What are Non-Functional Requirements (NFRs)?
Non-functional requirements define how a system should perform a certain function. They are the quality attributes of a system, such as performance, security, and reliability.
They do not affect the basic functionality of the system, but they have a critical impact on the user experience.
Categories of NFRs
- Performance: How fast the system responds.
- Scalability: How well the system can handle a growing amount of work.
- Reliability: The ability of the system to perform its required functions under stated conditions for a specified period of time.
- Security: The ability of the system to protect information from unauthorized access, use, disclosure, alteration, or destruction.
- Usability: The ease with which a user can learn to operate, prepare inputs for, and interpret outputs of a system or component.
- Maintainability: The ease with which a software system or component can be modified to correct faults, improve performance, or adapt to a changed environment.
Examples of NFRs
- Performance: The system shall load the user dashboard in under 3 seconds.
- Scalability: The system shall support up to 10,000 concurrent users.
- Reliability: The system shall have 99.9% uptime.
- Security: All user passwords must be stored in an encrypted format.
- Usability: A new user should be able to complete the registration process in under 2 minutes.
- Maintainability: The code shall follow the specified coding standards.
Importance of NFRs
- User Satisfaction: A system that is slow, unreliable, or difficult to use will not be successful, even if it has all the right features.
- System Success: NFRs are often the difference between a successful and an unsuccessful project.
- Cost of Failure: Ignoring NFRs can lead to costly failures, such as security breaches or system crashes.
- Legal and Compliance: Many NFRs are driven by legal and regulatory requirements.
Key Takeaways
- **Non-functional requirements** define the **quality attributes** of a system.
- They are the **"how"** of the system, as opposed to the "what" of functional requirements.
- They are critical for **user satisfaction** and the overall **success of the project**.
- They should be **specific, measurable, achievable, relevant, and time-bound (SMART)**.
Next Lecture
Topic: Characteristics of Good Software Design
Q & A
Questions & Discussion

