RE Lecture 21
Introduction to Requirement Engineering
Overview of Requirement Gathering
- The session begins with an introduction to a new topic, focusing on how to extract and explore requirements through various resources.
- An example is presented regarding hotel management systems, discussing functional and non-functional requirements related to reservations and bookings.
Understanding Requirements in Development
- Different methods for the reservation process are highlighted, indicating that each method represents a distinct requirement under a broader umbrella.
- Specific user login requirements are discussed, such as entering usernames and passwords or logging in via Google or Facebook accounts.
Traditional vs. Agile Development Approaches
Traditional Development Approach
- The traditional development approach follows a waterfall model where requirement engineering occurs first, followed by design, implementation, testing, and deployment.
- Emphasis is placed on the importance of documenting software requirements specifications (SRS) before moving forward in the development process.
Agile Methodology Insights
- It is noted that not all software projects follow the same methodology; agile approaches like Scrum differ significantly from traditional models.
- The impact of methodology on requirement formulation is discussed; agile allows for more flexibility compared to traditional methods.
Requirement Evolution in Agile
Characteristics of Agile Requirements
- In agile methodologies, requirements may not be fully defined at the outset and can evolve over time due to changing needs.
- Agile focuses on core functionalities during initial iterations while allowing for adjustments based on feedback received throughout development.
Prioritization of Requirements
- In agile environments, only prioritized requirements are included in the development cycle rather than all identified ones as seen in traditional approaches.
User Involvement and Feedback Mechanisms
Importance of User Engagement
- Continuous user involvement is crucial; it helps refine core functionalities based on real-time feedback during project progression.
Adapting to New Requirements
- When new requirements emerge—such as features introduced by competitors—agile teams can quickly adapt by re-prioritizing tasks within their workflow.
Conclusion: Refinement Over Time
Ongoing Requirement Refinement
- As projects progress within an agile framework, there’s an emphasis on refining existing requirements based on user feedback and evolving project needs.
Final Thoughts
- The session concludes with a reminder that understanding how to represent requirements effectively varies between methodologies like waterfall and agile.