Prof. Peter Sestoft
Department of Natural Sciences
Royal Veterinary and Agricultural University
DK
sestoft@dina.kvl.dk
http://www.dina.kvl.dk/~sestoft/
 

Evolvable Software Products
A software product is software that is built for nobody in particular but is sold multiple times, and hence typically must be adaptable or customizable. A successful software product will be used for many years, and hence must be able to evolve with changing user demands and environments. The subject of these lectures is the conflict between the adaptations made for each customer and the evolution of the kernel of the software product over time.
As a case study we consider highly customizable enterprise resource planning (ERP) software from Microsoft Dynamics, for which kernel upgrades have traditionally been costly.
We consider some other well-known software engineering challenges related to the adaptation/evolution conflict. We then present some programming language constructs and software tools that attempt to address these problems, and discuss whether they could be brought to bear on the conflict between adaptation and evolution.