Software Maintenance and Evolution
Master, 1st year
This class introduces you to the main principles and techniques behind software maintenance and evolution. We start from the theory of software evolution and next introduce the different types of software maintenance. Next, we describe the tools and techniques involved in software maintenance, including the measurement of software quality, detecting trends in the evolution of large software projects, and the analysis of various types of artifacts involved in large software repositories. The class is accompanied by a practical project in which students analyze a real-world large-scale software repository and answer several questions concerning the evolution trends of the maintenance activities involved in this repository.
Below you can find links to the course assignment, grading, slides, and additional material.