Software Evolution was a course for master students held at the University of Berne in 2008.
Software systems both are eternal, and are not eternal. On the one hand, the bits that form software systems have the same mathematical meaning regardless of time, and in that sense software systems are eternal. On the other hand, software systems reside in a larger environment: they run on a piece of hardware, they fulfil a certain need at a certain moment, they make use of other software systems. But, hardware and needs change, and software systems must evolve too if they are to remain useful.
This course presents a survey of various techniques, like reverse engineering, program visualisation, or refactoring, that have been successfully used to re-engineer and evolve industrial systems. The accompanying lab provides hands-on experience with analyzing software systems using reverse engineering tools.
The course was given by Tudor Girba and Oscar Nierstrasz with the assistance of Jorge Ressia.
The course ended, on December 18, 2008. The students evaluation can be found below: