Software evolution is the process of changing a software system from creation through closure. A fundamental stage in the life cycle of software is the software maintenance. Maintenance enters with the delivery and extends to the closure.Historically, maintenance has been underestimated in its complexity and the need for appropriate methods and tools for proper operation. The maintenance phase claims of about two-thirds of the total budget for the creation and operation of a software system.The aim of this course is to provide basic principles and methods of software maintenance and evolution.
The course discusses the software maintenance life cycle and the laws of software evolution in detail and with particular emphasis in the areas of legacy systems, reverse and re-engineering, refactoring, design patterns and design for change.In addition the basic principles and methods of software maintenance and evolution are shown by practical examples and exercises.During the course there are three exercises to solve:
The responsible research group provides engineering perspectives, necessary technical basis, instructions for situational research needs, presentation of real, often large case studies, testing and experience in conceptualizations, practices, sub-projects and applications.
The overall results are compound by the exercises and the presentation and discussion of the chosen topic.
ECTS-Breakdown (Effort for the student):
Lectures:
Practical work:
Total: 75 hours (3 ECTS)