What if you built a system nobody wanted because you skipped this crucial step?
Why Requirements and use cases in LLD? - Purpose & Use Cases
Start learning this pattern below
Jump into concepts and practice - no test required
Imagine building a complex system like an online store without writing down what it should do or who will use it. You just start coding based on guesses.
This guesswork leads to confusion, missed features, and lots of rework. Developers waste time fixing things that don't meet real needs, and users get frustrated.
By clearly defining requirements and use cases upfront, everyone understands what the system must do and how users will interact with it. This guides design and development smoothly.
Start coding without clear goals; fix bugs as they appear.Write requirements and use cases first; build features that fit real needs.Clear requirements and use cases enable building systems that truly solve problems and delight users.
Before launching a ride-sharing app, defining use cases like booking rides, driver matching, and payment ensures the app works well for both riders and drivers.
Requirements clarify what the system must do.
Use cases describe how users interact with the system.
Together, they prevent costly mistakes and guide effective design.
Practice
requirements in system design?Solution
Step 1: Understand the definition of requirements
Requirements define the functions and features the system must provide.Step 2: Differentiate from use cases
Use cases describe user interactions, not the system's core functions.Final Answer:
To specify what the system must do -> Option DQuick Check:
Requirements = system functions [OK]
- Confusing requirements with use cases
- Thinking requirements include UI design
- Assuming requirements are code instructions
use case in system design?Solution
Step 1: Define use case
A use case is a story or scenario describing how a user uses the system.Step 2: Eliminate unrelated options
System features list, architecture diagrams, and code modules are not use cases.Final Answer:
A scenario showing user interaction with the system -> Option AQuick Check:
Use case = user scenario [OK]
- Mixing use cases with system features
- Confusing use cases with technical diagrams
- Thinking use cases are code components
Solution
Step 1: Identify user actions in options
User uploads a photo and receives confirmation message describes a user action and system response, fitting a use case.Step 2: Recognize system internals vs user interaction
Options A, C, and D describe internal system details, not user interactions.Final Answer:
User uploads a photo and receives confirmation message -> Option BQuick Check:
User action + system response = use case [OK]
- Choosing system internal processes as use cases
- Ignoring the user perspective
- Confusing data storage details with use cases
Solution
Step 1: Analyze the use case description
The statement is a high-level feature but lacks detailed user steps.Step 2: Understand use case completeness
Use cases should describe user actions step-by-step, not just state features.Final Answer:
It incorrectly describes a system requirement instead of a use case -> Option CQuick Check:
Use case needs detailed user steps [OK]
- Confusing requirements with use cases
- Expecting technical details in use cases
- Ignoring the need for step-by-step user actions
Solution
Step 1: Identify relevant requirement for ride request
Matching riders with drivers quickly is a key system requirement for this feature.Step 2: Identify matching use case
The use case describes the rider's interaction to request a ride step-by-step.Step 3: Verify other options
Other options mix unrelated requirements or use cases not tied to "Request a ride" feature.Final Answer:
Requirement: The system must match riders with drivers within 2 minutes. Use case: Rider opens app, enters destination, and confirms ride request. -> Option AQuick Check:
Requirement + user steps = correct combination [OK]
- Mixing unrelated requirements and use cases
- Ignoring user interaction details
- Choosing cosmetic or admin features instead of core ones
