Lecture 4
Good Practices For Requirement
Engineering
Introduction
• What is Requirements Engineering?
• The process of gathering, analyzing, documenting, and managing the
requirements for a system or project.
• Why Good Practices Matter?
• Ensures stakeholder needs are met.
• Reduces costly project failures and rework.
• Facilitates communication between developers and clients.
Elicitation Techniques
• Define Vision and Scope: Establish project goals, boundaries, and key
features.
• Identify User Classes: Identify different user types and their unique
needs.
• Focus Groups & Elicitation Interviews: Gather insights directly from
stakeholders through structured discussions and interviews.
Requirements Analysis
• Model the Application Environment: Use diagrams to represent
system boundaries, user interactions, and workflows.
• Analyze Feasibility: Check if requirements are realistic in terms of
cost, time, and technical constraints.
• Prioritize Requirements: Use methods like MoSCoW (Must have,
Should have, Could have, Won't have) to rank requirements by
importance.
Specification
• Adopt Requirement Document Templates: Ensure consistency by
using standardized formats.
• Uniquely Label Each Requirement: Every requirement should have a
distinct identifier for traceability.
• Record Business Rules: Capture rules that influence the system, such
as compliance or organizational policies.
Validation
• Review Requirements: Peer review to check for completeness,
accuracy, and alignment with business needs.
• Define Acceptance Criteria: Clearly specify conditions that must be
met for requirements to be accepted by stakeholders.
• Simulate Requirements: Use tools to create system prototypes or
mockups for early feedback and validation.
Requirement Management
• Establish Change Control Processes: Implement a formal process for
evaluating and approving requirement changes.
• Maintain a Traceability Matrix: Map requirements to design, code,
and testing elements to ensure full coverage.
• Track Requirements Status: Monitor each requirement through its
lifecycle (proposed, approved, implemented, etc.).
Training and Education
• Train Business Analysts (BA): Provide BAs with comprehensive
training on requirements elicitation, analysis, and management.
• Educate Stakeholders: Involve stakeholders in understanding the
importance of clear and well-managed requirements.
• Developers in Domain Knowledge: Organize sessions where
developers learn about the business domain for better context and
understanding.
Project Management Alignment
• Base Plans on Requirements: Create project timelines and resource
estimates based on clear, defined requirements.
• Renegotiate Commitments When Requirements Change: Be flexible
with project scope when. new requirements emerge
• Manage Risks: Identify risks related to changing requirements early
and develop mitigation strategies.
Slide 10: Different Life Cycle
Models
• Waterfall Model: Focuses on completing all requirements upfront.
• Iterative Model: Requirements evolve over time, with multiple
iterations of development.
• Agile Approach: Frequent releases, gathering requirements in short
iterations (sprints).
Slide 11: Change Control
Process
• Impact Analysis: Assess the effect of a proposed change on time,
cost, and project scope.
• Change Control Board (CCB): A team responsible for approving or
rejecting changes based on business value.
• Manage Requirements Volatility: Accept that requirements will
evolve and plan for it.
QUIZ