Title: A Framework for Relating Syntactic and Semantic Model Differences
Abstract
Model
differencing is an important activity in model-based development processes.
Differences need to be detected, analyzed, and understood to evolve systems and
explore alternatives.
Two distinct
approaches have been studied in the literature: syntactic differencing, which
compares the concrete or abstract syntax of models, and semantic differencing,
which compares models in terms of their meaning. Syntactic differencing
identifies change operations that transform the syntactical representation of
one model to the syntactical representation of the other. However, it does not
explain their impact on the meaning of the model. Semantic model differencing
is independent of syntactic changes and presents differences as elements in the
semantics of one model but not the other. However, it does not reveal the
syntactic changes causing these semantic differences.
We define
a language independent, abstract framework, which relates syntactic change operations
and semantic difference witnesses. We formalize fundamental relations of necessary
and sufficient sets of change operations and analyze their properties.
We further demonstrate concrete instances of the framework for three different
popular modeling languages, namely, class diagrams, activity diagrams, and
feature models. The framework provides a novel foundation for combining
syntactic and semantic differencing.
Joint
work with Shahar Maoz. The work received a Best Foundation Paper Award at the ACM/IEEE
18th International Conference on Model Driven Engineering Languages and Systems
2015.