π Requirements Engineering: Use Cases & Prototyping (OOAD)
πΉ 1. Definition of Requirements Engineering
Requirements Engineering (RE) is the process of collecting, analyzing, documenting, and validating what a software system should do.
π Simple idea:
It answers: βWhat does the user want?β
πΉ 2. Key Activities in Requirements Engineering
- Elicitation β Gathering requirements
- Analysis β Understanding and refining
- Specification β Documenting clearly
- Validation β Checking correctness
β PART A: USE CASES
πΉ 3. What is a Use Case?
A Use Case describes how a user (actor) interacts with a system to achieve a specific goal.
π It shows functional requirements in a simple way.
πΉ 4. Components of a Use Case
| Component |
Description |
| Actor |
User or external system |
| Use Case |
Function (e.g., Login, Withdraw Cash) |
| System |
The software being developed |
| Scenario |
Step-by-step interaction |
πΉ 5. Use Case Diagram (UML)
Definition:
A graphical representation of actors and their interactions with the system.
Diagram Description:
- Stick figures β Actors
- Ovals β Use cases
- Lines β Interaction
πΉ 6. Types of Actors
- Primary Actor: Initiates interaction
- Secondary Actor: Supports the system
πΉ 7. Relationships in Use Cases
πΈ 7.1 Include Relationship
- One use case always includes another
Example:
Withdraw Money β includes β Authenticate User
πΈ 7.2 Extend Relationship
Example:
Login β extends β Two-Factor Authentication
πΈ 7.3 Generalization
- Inheritance among actors/use cases
πΉ 8. Use Case Scenario (Step-by-Step)
π Example: ATM Withdraw Money
- User inserts card
- System asks for PIN
- User enters PIN
- System verifies
- User selects withdraw
- Cash is dispensed
πΉ 9. Advantages of Use Cases
- Easy to understand
- Focus on user perspective
- Helps in communication
- Identifies system functionality
β PART B: PROTOTYPING
πΉ 10. What is Prototyping?
Prototyping is the process of creating a working model (sample system) to understand and refine requirements.
π Simple idea:
Build a small version first, improve later.
πΉ 11. Types of Prototypes
πΈ 11.1 Throwaway (Rapid) Prototype
- Built quickly and discarded
- Used to understand requirements
πΈ 11.2 Evolutionary Prototype
- Continuously refined into final system
πΈ 11.3 Incremental Prototype
πΉ 12. Prototyping Process
Identify Requirements β Build Prototype β User Evaluation β Refine β Final System
πΉ 13. Advantages of Prototyping
- Early user feedback
- Reduces misunderstanding
- Improves system usability
- Detects errors early
πΉ 14. Disadvantages of Prototyping
- Can increase cost/time if misused
- Users may expect final system too early
- Poor design if rushed
πΉ 15. Use Cases vs Prototyping
| Feature |
Use Cases |
Prototyping |
| Focus |
Functional behavior |
System appearance & interaction |
| Form |
Text/Diagram |
Working model |
| Purpose |
Understanding requirements |
Validating requirements |
πΉ 16. Example (Library System)
πΉ Use Case:
- Actor: Member
- Use Case: Borrow Book
πΉ Prototype:
-
Simple UI showing:
- Book search
- Borrow button
πΉ 17. Important Rules / Tips
- Use cases should be clear and simple
- Focus on user goals
- Prototype should be quick and flexible
- Always get user feedback
πΉ 18. Likely Exam Questions
- Define Requirements Engineering.
- What is a Use Case? Explain with example.
- Draw and explain a Use Case Diagram.
- Explain include and extend relationships.
- What is prototyping?
- Types of prototypes in software development.
- Advantages and disadvantages of prototyping.
- Difference between use cases and prototyping.
- Explain ATM use case scenario.
- Describe the prototyping process.
πΉ 19. Quick Revision Summary π§
- Requirements Engineering = Understanding user needs
Use Cases:
- Actor + Interaction
- Show system functionality
- Include, Extend relationships
Prototyping:
-
Early working model
-
Types:
- Throwaway
- Evolutionary
- Incremental
π Trick to Remember:
"UP" β Use Cases + Prototyping