Advanced Requirements Engineering
About
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
- Elicitation
- Analysis
- Documentation
- Negotiation
- Verification and validation
- Requirements management
- Change management
- Traceability
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.
Prerequisites and selection
Entry requirements
To be eligible for this course the student should have:
- a bachelor degree in Software Engineering, Computer Science, Information Technology, Information Systems, or equivalent;
- a successfully completed course in programming (e.g., DIT042 Object-oriented Programming, DIT012 Imperative Programming with Basic Object-orientation, DIT143 Functional Programming, or equivalent);
- a successfully completed project course (or bachelor thesis) in applied software development or software engineering (e.g., DIT212 Object-oriented programming project, or DIT543 Software Engineering Project).
Applicants must prove knowledge of English: English 6/English B or the equivalent level of an internationally recognized test, for example TOEFL, IELTS.
Selection
Selection is based upon the number of credits from previous university studies, maximum 165 credits.