Society is becoming increasingly dependant on software at all levels of human activity. At the same time, software needs to be kept up-to-date, that is, evolved, if it is to satisfy its purpose in a changing world. However, evolution of software has long been recognized as one of the most problemati...