Themen der Lehrveranstaltung
Intelligent Tools for Software Evolution explores the modern approaches and technologies that support the maintenance and continuous improvement of software systems. The course begins with an introduction to software maintenance and evolution, emphasizing the challenges of legacy systems, technical debt, and the need for sustainable change. Students will learn key refactoring techniques to enhance code quality and maintainability, and explore how software repositories can be mined to extract insights into development patterns, defects, and team behavior. The course integrates machine learning concepts tailored to software engineering tasks, such as bug prediction, code recommendation, and automated documentation. Emphasis is placed on assessing and adapting intelligent tools to fit specific maintenance scenarios, ensuring that solutions are context-aware and effective. Finally, the course addresses the limitations and risks associated with intelligent tools, including issues of trust, explainability, and data bias, and introduces strategies to mitigate these challenges. By the end of the course, students will be equipped to critically evaluate, apply, and adapt intelligent tools to support software evolution in real-world contexts.
Unterrichtsform
Frontal lectures, paper presentations, in-class and lab exercises.