Lec 01
Lec 01
Engineering
Understanding the Foundation of Software Development
Lecture 01
Agenda
• Overview of Requirements Engineering
• Software Requirements: Definition and Importance
• Classification of Requirements
• Requirements Process
• Levels/Layers of Requirements
• Requirement Characteristics
Introduction to Requirements Engineering
• Requirements Engineering is the systematic process of capturing,
analyzing, and managing software requirements throughout the
development lifecycle.
• It serves as the cornerstone of successful software development by
facilitating clear communication and understanding between
stakeholders and developers.
Software Requirements
• Software requirements encompass detailed descriptions of the
functionalities and constraints that a system must adhere to during
its development and operation.
• They act as a blueprint guiding developers and stakeholders,
ensuring the end product meets expectations and requirements.
Classification of Requirements
Functional Requirements:
• Define specific system functionalities, specifying what the system
should do.
Non-Functional Requirements:
• Specify criteria that are not related to specific behaviors, such as
performance, reliability, and security.
Domain Requirements:
• Unique to the application domain, representing specific characteristics
or features required for that domain.
Requirements Process
Elicitation:
• Involves gathering requirements from stakeholders through interviews, surveys, or
workshops.
Analysis:
• Requires evaluating and prioritizing requirements based on business needs and constraints.
Specification:
• Involves documenting requirements in a clear and concise manner, often using tools like use
cases, user stories, or requirement documents.
Validation:
• Ensures that the documented requirements meet the stakeholders' needs and are free from
errors.
Management:
• Involves handling changes and maintaining the requirements throughout the development
lifecycle.
Levels/Layers of Requirements
Business Requirements:
• High-level goals and objectives of the organization.
Stakeholder Requirements:
• Descriptions of what various stakeholders expect from the system,
often in natural language.
System Requirements:
• Detailed specifications of the functionalities and constraints of the
software system.
Requirement Characteristics
Unambiguous:
• Requirements must be clear and free of ambiguity, ensuring a common understanding
among stakeholders.
Complete:
• All aspects of the system's functionality and behavior should be addressed, leaving no
room for assumptions.
Consistent:
• Requirements should not conflict with each other, promoting a cohesive understanding.
Verifiable:
• Requirements must be testable or measurable to ensure successful implementation and
validation.
Traceable:
• Each requirement should be traceable to its source and linked to related documentation.
Importance of Requirements Engineering
Reduces Project Risks:
• Clear requirements minimize misunderstandings, reducing the risk of
project failure.
Enhances Communication:
• Effective communication between stakeholders and developers
ensures a shared vision and understanding.
Foundation for Testing and Validation:
• Requirements serve as the basis for testing activities, ensuring the
final product aligns with the specified criteria.