Requirements engineering (RE) is one of the crucial phases in software development. It can be defined as the process of discovering the purpose of a software system by “identifying stakeholders and their needs, and documenting these in a form that is amenable to analysis, communication, and subsequent implementation” (Nuseibeh and Easterbrook, 2000).
Mistakes in the requirements gathering and analysis may determine the failure of the entire development process and of the system itself. AI based techniques are more and more exploited in RE, and notably in the decision making and analysis activities. Moreover, RE is becoming relevant when building AI-based system, particularly if Machine learning component are included.
This Requirements Engineering course intends to offer an overview on the most relevant problems and advanced methods and techniques for the whole requirements engineering process, from requirements elicitation, to their analysis, verification and evolution. The course includes theory lectures and hands-on lectures.