RE Lecture 21

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.