Model-Driven Software Evolution
An NWO/JACQUARD project.
Summary
The promise of model-driven engineering (MDE) is that the development
and maintenance effort can be reduced by working at the model instead
of the code level. Models define what is variable in a system, and
code generators produce the functionality that is common in the
application domain.
The problem with model-driven engineering is that it can lead to a
lock-in in the abstractions and generator technology adopted at
project initiation. 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. It is this gap
that this project proposes to address.
The first fundamental premise of this proposal is that evolution
should be a continuous process. Software development is a continuous
search for recurring patterns, which can be captured using
domain-specific modeling languages. After developing a number of
systems using a particular meta-model, new patterns may be recognized
that can be captured in a higher-level or richer meta-model. The
second premise is that reengineering of legacy systems to the
model-driven paradigm should be a special case of this continuous
evolution, and should be performed incrementally.
The goal of this project is to develop a systematic approach to
model-driven software evolution. This approach includes methods,
techniques, and underlying tool support. We will develop a prototype
programming environment that assists software engineers with the
introduction, development, and maintenance of models and
domain-specific languages.
Publications
This page lists publications resulting from the MoDSE project and
some of our previous publications related to the project.
See also the MoDSE publications in the
department server.
Moved Permanently
The document has moved here.