Abstract: Metamodel evolution requires model migration.
To correctly migrate models, evolution needs to be made
explicit. Manually describing evolution is error-prone and
redundant. Metamodel matching offers a solution by
automatically detecting evolution, but is only capable of
detecting primitive evolution steps. In practice,
primitive evolution steps are jointly applied to form a
complex evolution step, which has the same effect on a
metamodel as the sum of its parts, yet generally has a
different effect in migration. Detection of complex
evolution is therefore needed. In this paper, we present
an approach to reconstruct complex evolution between two
metamodel versions, using a matching result as input. It
supports operator dependencies and mixed, overlapping, and
incorrectly ordered complex operator components. It also
supports interference between operators, where the effect
of one operator is partially or completely hidden from the
target metamodel by other operators.