Abstract: Model-driven engineering (MDE) is a widely accepted
methodology in software engineering. At the same time, the ability
to retrace the engineering process is an important success factor
for software projects. In MDE, however, such traceability is often
impeded by the inadequate management of model evolution. Although
models have a very fine-grained structure, their different
revisions and variants are prevalently managed as monoliths in a
file-based software configuration management (SCM). This causes
the identification problem: if the fine-grained elements are not
assigned with globally unique identifiers, we cannot identify them
over time. If such identifiers would be given, they can be
misleading. As a consequence, we cannot comprehend the evolution
of elements and traceability relationships among the elements
cannot be managed sufficiently.
This thesis presents a novel solution to the identification
problem. It establishes a representation to describe the history
of a model and its fine-grained elements inside. The key feature
of the representation is a new kind of traceability relationship,
called identification links. They allow us to identify elements of
a given revision in other revisions or variants of the model. The
identification is even applicable to anonymous elements and model
fragments. It provides us with a broad spectrum of opportunities:
e.g. management of fine-grained traceability links, evolution
analysis, merging of development branches. Due to the expression
of model evolution in the history representation, we are further
able to capture the changes that have been applied to the traced
elements.
This thesis further presents an algorithm to infer the
identification links automatically. The approach does not rely on
persistent identifiers, but it utilizes a similarity-based model
comparison technique to locate the model elements in other
revisions.
The algorithm and the history representation have been implemented
in a prototype. It is metamodel and tool independent and can work
with an arbitrary SCM. Existing modeling environments do not have
to be modified. Traceability information and evolution information
is accessible through a service interface and can thus be
integrated in arbitrary tools. The evaluation of our approach by
means of controlled experiments with data from real models
attested excellent precision and recall values for the
identification of model elements over time. Furthermore, different
evolution analysis tools have already been built on our approach,
which documents the practical applicability of our
solution.