Configuration management for models: Generic
methods for model comparison and model
Dissertation, Technische Universiteit
Abstract: It is an undeniable fact that software plays an important role in our lives. We
use the software to play our music, to check our e-mail, or even to help us to
drive our car. Thus, the quality of software directly influences the quality of
our lives. However, the traditional Software Engineering paradigm is not able to
cope with the increasing demands in quantity and quality of produced software.
Thus, a new paradigm of Model Driven Software Engineering (MDSE) is quickly
MDSE promises to solve some of the problems of traditional Software
Engineering (SE) by raising the level of abstraction. Thus, MDSE proposes the use
of models and model transformations, instead of textual program files used in
traditional SE, as means of producing software. The models are usually
graphbased, and are built by using graphical notations - i.e. the models are represented
diagrammatically. The advantages of using graphical models over text files are
numerous, for example it is usually easier to deduce the relations between
different model elements in their diagrammatic form, thus reducing the possibility
of defects during the production of the software. Furthermore, formal model
transformations can be used to produce different kinds of artifacts from models
in all stages of software production. For example, artifacts that can be used as
input for model checkers or simulation tools can be produced. This enables the
checking or simulation of software products in the early phases of development,
which further reduces the probability of defects in the final software product.
However, methods and techniques to support MDSE are still not mature enough.
In particular methods and techniques for model configuration management
(MCM) are still in development, and no generic MCM system exists. In this
dissertation, I describe my research which was focused on developing methods
and techniques to support generic model configuration management. In
particular, during my research, I focused on developing methods and techniques for
supporting model evolution and model co-evolution. Described methods and
techniques are generic and are suitable for a state-based approach to model
In order to support the model evolution, I developed methods for the
representation, calculation, and visualization of state-based model differences. Unlike
in previously published research, where these three aspects of model differences
are dealt with in separation, in my research all these three aspects are integrated.
Thus, the result of model differences calculation algorithm is in the format which
is described by my research on model differences representation. The same
representation format of model differences is used as a basis of my approach to
differences visualization. It is important to notice that the developed
representation format for model differences is metamodel independent, and thus is generic,
i.e., it can be used to represent differences between all graph-based models.
Model co-evolution is a term that describes the problem of adapting models
when their metamodels evolve. My solution to this problem has three steps.
In the first step a special metamodel is introduced (a metamodel for
metamodels - MMfMM). Unlike in traditional approaches, where metamodels are
represented as instances of a metametamodel, in my approach the metamodels are
represented by models which are instances of the MMfMM. In the second step,
since metamodels are represented by models, previously defined methods and
techniques for model evolution are reused to represent and calculate the
metamodel differences. In the final step I define an algorithm that uses the calculated
metamodel differences to adapt models conforming to the evolved metamodel.
In order to validate my approaches to model evolution and model co-evolution,
I have developed a tool for model evolution, and a tool for model co-evolution.
These tools, together with small case-studies, are also described.