Software systems need to evolve, and systems built using model-driven approaches are no exception. What complicates model-driven engineering is that it requires multiple dimensions of evolution. In regular evolution, the modeling language is used to make the changes. In meta-model evolution, changes are required to the modeling notation. In platform evolution, the code generators and application framework change to reflect new requirements on the target platform. Finally, in abstraction evolution, new modeling languages are added to the set of (modeling) languages to reflect increased understanding of a technical or business domain. While MDE has been optimized for regular evolution, presently little or no support exists for metamodel, platform and abstraction evolution. In this paper, we analyze the problems raised by the evolution of model-based software systems and identify challenges to be addressed by research in this area.
As reads the abstract of the paper that Arie van Deursen, Jos Warmer, and I just submitted as final version to the MoDSE’07 workshop to be held 20 March in Amsterdam (affiliated with CSMR’07). The paper is a slight rewrite of the research proposal that gave us the funding for the MoDSE project that we are starting up at Delft University of Technology. We believe the proposal provides a good analysis of the challenges that are raised by the introduction of model-based engineering in software development.