Bird
0
0
LLDsystem_design~25 mins

Requirements analysis in LLD - System Design Exercise

Choose your learning style9 modes available
Design: Requirements Analysis Process
Focus on the process of gathering, analyzing, and documenting requirements for software systems. Out of scope are implementation details and coding.
Functional Requirements
FR1: Identify and document functional requirements clearly
FR2: Capture non-functional requirements such as performance and security
FR3: Prioritize requirements based on stakeholder needs
FR4: Ensure requirements are testable and measurable
FR5: Manage changes to requirements throughout the project lifecycle
Non-Functional Requirements
NFR1: Requirements must be understandable by both technical and non-technical stakeholders
NFR2: Analysis should be completed within project timelines to avoid delays
NFR3: Requirements must be feasible within given technology and budget constraints
Think Before You Design
Questions to Ask
❓ Question 1
❓ Question 2
❓ Question 3
❓ Question 4
❓ Question 5
Key Components
Stakeholder interviews and workshops
Use case and user story documentation
Requirement prioritization matrix
Traceability matrix linking requirements to tests
Change management process
Design Patterns
MoSCoW prioritization (Must have, Should have, Could have, Won't have)
User story mapping
Requirements traceability
Iterative refinement and validation
Reference Architecture
  +-------------------+       +---------------------+       +-------------------+
  | Stakeholder Input | ----> | Requirements Analyst | ----> | Requirements Doc  |
  +-------------------+       +---------------------+       +-------------------+
           |                            |                             |
           |                            |                             |
           v                            v                             v
  +-------------------+       +---------------------+       +-------------------+
  | Use Cases & Stories|       | Prioritization Tool |       | Traceability Matrix|
  +-------------------+       +---------------------+       +-------------------+
Components
Stakeholder Input
Interviews, Surveys, Workshops
Gather initial requirements and expectations from users and stakeholders
Requirements Analyst
Manual analysis, Documentation tools
Analyze, clarify, and document requirements
Requirements Document
Word processors, Requirement management tools
Centralized, clear, and accessible record of requirements
Use Cases & User Stories
Templates, Agile tools
Describe system interactions and user needs
Prioritization Tool
Spreadsheets, Specialized software
Rank requirements to focus on critical features
Traceability Matrix
Requirement management software
Link requirements to design and test cases for validation
Request Flow
1. Stakeholders provide input through interviews and workshops.
2. Requirements analyst collects and organizes this input.
3. Use cases and user stories are created to represent functional needs.
4. Requirements are prioritized using a prioritization tool.
5. A requirements document is created and shared with stakeholders.
6. Traceability matrix is maintained to ensure coverage in design and testing.
7. Change requests are managed and updated in the documentation.
Database Schema
Entities: Stakeholder (id, name, role), Requirement (id, description, type, priority, status), UseCase (id, title, description), TraceabilityLink (requirement_id, design_id, test_id). Relationships: Stakeholder to Requirement (1:N), Requirement to UseCase (N:1), Requirement to TraceabilityLink (1:N).
Scaling Discussion
Bottlenecks
Difficulty managing large numbers of requirements and stakeholders
Keeping documentation up to date with frequent changes
Ensuring all requirements are testable and traceable
Communication gaps between technical and non-technical teams
Solutions
Use specialized requirement management tools with collaboration features
Implement automated traceability and change tracking
Adopt iterative and incremental requirement refinement
Facilitate regular cross-team meetings and reviews
Interview Tips
Time: Spend 10 minutes understanding the problem and clarifying requirements, 20 minutes outlining the process and components, 10 minutes discussing challenges and scaling, 5 minutes for questions.
Importance of clear and testable requirements
Balancing stakeholder needs and technical feasibility
Use of prioritization and traceability to manage complexity
Handling changes and communication effectively