Model and Code Co-Evolution

If you are interested in this topic, please contact Philip Langer.

Applying model-driven software engineering technologies (e.g., EMF, Xtext, Xtend, or Acceleo) enables the efficient creation of models, as well as the generation of code, such as Java code, from these models. However, models cannot be considered as static throughout the software development process; they evolve constantly. Once a model has been changed, the derived code has to be regenerated.

Although some code generation technologies provide basic support for incremental code generation (i.e., only those parts in the derived code will be re-generated that have to be changed according to the change in the model), the re-generation of the derived code often breaks manually added code that builds upon the generated code.

In this thesis topic, we investigate and develop approaches and techniques to enable the (semi-)automatic adaptation also of the manually added code based on the discovered changes that have been applied to the model.