Software Evolution Lecture

In the winter semester of 2008, I gave a 14-week lecture (my very first) on the topic of software evolution at the University of Berne.

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 presented 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 provided hands-on experience with analyzing software systems using reverse engineering tools.

Bio

Tudor Gîrba (http://tudorgirba.com) obtained his PhD in 2005 from the University of Bern, and he acts as software environmentalist at feenk gmbh, a consulting and coaching company that he founded (http://feenk.com).

He advocates that software assessment must be recognized as a critical software engineering activity, and he authored the humane assessment method (http://humane-assessment.com) to help teams to rethink the way they manage large software systems and data sets.