0% found this document useful (0 votes)
13 views15 pages

Understanding Requirement Engineering

Requirement Engineering is the process of eliciting, analyzing, validating, and managing requirements to ensure software meets stakeholder needs and reduces errors. It includes functional and non-functional requirements, various elicitation techniques, and processes for analysis, specification, validation, and management. Key challenges include ambiguity, changing requirements, and stakeholder conflicts.

Uploaded by

adeyemidammy777
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
13 views15 pages

Understanding Requirement Engineering

Requirement Engineering is the process of eliciting, analyzing, validating, and managing requirements to ensure software meets stakeholder needs and reduces errors. It includes functional and non-functional requirements, various elicitation techniques, and processes for analysis, specification, validation, and management. Key challenges include ambiguity, changing requirements, and stakeholder conflicts.

Uploaded by

adeyemidammy777
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd

Requirement

Engineering
Requirement Engineering
• Definition: Process of eliciting, analysing, validating,
and managing requirements.
• Importance:
• Ensures the software meets stakeholder needs.
• Reduces errors and rework.
• Serves as the foundation for design and development.
• Key Goals:
• Understand the needs of stakeholders.
• Define system constraints.
• Specify clear, measurable, and testable requirements.
Types of Requirements
• Functional Requirements:
• Define specific behaviours or functions of the system.
• Example: "The system shall allow users to log in with a
username and password."
• Non-Functional Requirements:
• Define system quality attributes or constraints.
• Examples: Performance, security, scalability, usability, and
reliability.
Requirement Engineering
Processes
• Requirement Elicitation: Techniques to gather requirements from
stakeholders.
• Methods:
• Interviews
• Surveys/Questionnaires
• Brainstorming
• Focus Groups
• Observation
• Workshops
• Prototyping
• Document Analysis
• Challenges:
• Ambiguous requirements.
• Conflicting stakeholder needs.
• Communication gaps.
Requirement Engineering
Processes
• Requirement Analysis:
• Assess the requirements for clarity, feasibility, and conflicts.
• Steps:
• Prioritize requirements.
• Validate requirements.
• Address ambiguities and contradictions.
• Tools:
• Data Flow Diagrams (DFD)
• Entity-Relationship Diagrams (ERD)
• UML Use Case Diagrams.
Requirement Engineering
Processes
• Requirement Specification:
• Documenting requirements in a clear, structured format.
• Standards:
• IEEE 830: Software Requirements Specification (SRS).
• Components of SRS:
• Introduction
• Functional and Non-Functional Requirements
• Use Cases
• Data Models
Requirement Engineering
Processes
• Requirement Validation:
• Ensure the requirements are correct, complete, and aligned with
stakeholder needs.
• Techniques:
• Walkthroughs
• Prototyping
• Simulations
• Test Case Derivation
• Benefits:
• Detect errors early.
• Increase stakeholder satisfaction.
Requirement Engineering
Processes
• Requirement Management:
• Processes for managing changes to requirements
throughout the project lifecycle.
• Activities:
• Version control.
• Traceability.
• Impact analysis for changes.
Characteristics of Good
Requirements
• Correct: Reflect true stakeholder needs.
• Complete: Include all necessary details.
• Consistent: No conflicts between requirements.
• Feasible: Realistic and achievable within technical and
budgetary constraints.
• Unambiguous: Clear and easy to understand.
• Testable: Can be verified through testing.
Requirement Elicitation Techniques
• Stakeholder Identification:
• Identify all relevant stakeholders.
• Classify them (e.g., primary, secondary, tertiary stakeholders).
• Elicitation Methods:
• Active: Interviews, workshops.
• Passive: Observation, document analysis.
• Tools:
• Wireframing tools (e.g., Figma, Adobe XD).
• Requirement management software (e.g., IBM Rational, Jama).
Requirement Prioritization
• The process of determining the relative importance of requirements
to help decide which ones to implement first. It ensures that the
most critical requirements are addressed early, especially when
resources like time, budget, or manpower are limited.
• Why is Requirement Prioritization Important?
[Link] Optimization: Focus on high-value requirements to maximize
ROI.
[Link] Satisfaction: Address critical stakeholder needs first.
[Link] Management: Prioritize requirements to mitigate risks early in
development.
[Link] Delivery: Supports agile or iterative approaches by defining
what must be delivered in early releases.
[Link] Management: Prevents delays by concentrating on essential
features.
Factors Influencing Prioritization
• Business Value: How much a requirement contributes to
achieving business goals.
• Cost of Implementation: Feasibility and the resources
required to implement the requirement.
• Risk: Dependencies, uncertainties, or technical challenges.
• Stakeholder Importance: Weight of stakeholder influence or
needs.
• Urgency: Timeline and deadlines associated with certain
features.
• Compliance: Legal or regulatory requirements that must be
met.
Techniques for Requirement
Prioritization
• MoSCoW Method:
• Must Have: Essential requirements without which the system fails.
• Should Have: Important but not critical features.
• Could Have: Desirable but optional features.
• Won’t Have (for now): Deferred for future consideration.
• Weighted Scoring: Assign weights to factors like value, risk,
and cost, and calculate a score for each requirement.
• Priority Groups: Categorize requirements into high, medium,
and low priority.
• Analytical Hierarchy Process (AHP): A formal mathematical
method that compares each requirement against others in pairs
to determine priorities.
Challenges in Requirement
Prioritization
• Stakeholder Conflicts: Different stakeholders may
have conflicting priorities.
• Ambiguity in Requirements: Lack of clarity makes
prioritization difficult.
• Changing Requirements: Dynamic environments lead
to shifting priorities.
• Limited Resources: Deciding between equally
important requirements with restricted resources.
Challenges in Requirement
Engineering
• Ambiguity in requirements.
• Changing requirements during the project.
• Stakeholder conflicts.
• Lack of stakeholder involvement.
• Miscommunication between developers and
stakeholders.

You might also like