Let's Agree to Disagree
Almost every kind of software development periodically needs to merge
models. Perhaps they come from different stakeholders during the
requirements analysis phase, or perhaps they are modifications of the
same model done independently by several groups of people. Sometimes
these models are consistent and can be merged. Sometimes they are
not, and negotiation between the stakeholders is needed in order to
resolve inconsistencies. While various methods support merging, we
need formal approaches that help stakeholders negotiate.
In this paper, we present a formal framework for merging and conflict
resolution. It facilitates automatic merging of consistent models,
enables users to visualize and explore potential disagreements and
identify their priorities, and suggests ways to resolve the priority
items. We describe our implementation of the framework and illustrate
it on several examples.