Requirements Engineering - A module from the field of computer science

Software development is successful if the resulting products meet their purpose and can be used in a meaningful way. Typically, at the beginning of a project, there are only vague (and often conflicting) ideas of the intended purpose of the system under development (SuD). Relevant stakeholders must be identified and actively involved into the project to get a deeper understanding of the application context and the stakeholders’ needs.

RE is a multi-disciplinary, human-centered process of discovering, communicating and negotiating the requirements of the SuD. Empirical studies have shown that failures of software development projects are often caused by mistakes in requirements. It is important to document those requirements in different ways. For example, formal requirements specifications are provided to the software architects and developers. Here, mathematical notations and graphical specification languages are used to describe requirements in an unambiguous way. This helps to ensure that the developers can implement the requirements correctly. Potential users of the SuD and other stakeholders are typically less trained in reading and understanding formal specifications. They need to be provided with less abstract descriptions of the requirements but also with contextual descriptions, which help them to discuss more deeply how the envisaged software system should be used in the future.

Consequently, requirements engineers must acquire a broad spectrum of knowledge and skills ranging from knowledge about technological solutions and about the application domain to skills in facilitating discussions and shared decision making. There are excellent opportunities open to requirements engineers in the job market.

The module "Requirements Engineering" includes a lecture part and a tutorial part. It is taught in English if needed. In the lectures, RE methods, techniques and tools are introduced; their benefits and limitations are discussed in detail. Typically, a project-like theme is considered throughout the tutorials to help students to acquire basic skills in applying those methods. An important focus in on group work situations in the class. The module can be attended by all students of the Faculty of Computer Science and Electrical Engineering and other interested students. Although the focus of the module is on RE in the context of software development, many of the presented methods and techniques are also applicable in other domains.

A student about the RE course in summer semester 2016: "I prefer active learning in the class. The lectures combined with the application-oriented exercises in the tutorials are really great.”