Advanced Requirements Engineering
Understanding requirements is key to successful software engineering: Building software that is fit for its purpose relies on understanding the exact problem that must be solved.
The purpose of this course is to learn challenges, principles, and practices to identify, analyse and manage requirements from relevant sources, both at the start and during a software development project. The course regards these issues in specific development contexts, i.e. specific constellations of customers and suppliers as well as constraints related to the domain and development lifecycle that characterise developing a piece of software.
This course is on advanced level and takes a holistic view on the state of the art of
requirements engineering as part of successful software engineering, technology, and management. Students are expected to familiarize themselves with recent, relevant research in the field, to critically reflect on the implications of new findings, and to develop their abilities and expertise as software professionals.
The course teaches challenges, principles, and concrete practices related to the following subfields of requirements engineering (RE):
- Requirements analysis
- Verification and validation
- Requirements management
- Change management
Beyond a brief introduction into concrete notations of requirements, the course focuses on holistically managing requirements-related knowledge on relevant scopes, including:
- Team level: knowledge within a software development team and accross several teams working in the same area.
- Program level: knowledge within a particular product team or across a set of related product teams (e.g. agile release trains)
- Enterprise level: knowledge related to managing a portfolio of products.