📘 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