In this project, we present a novel process, called Epsilon-based Three-way Merging Process (E3MP), for merging models utilizing the three-way technique. The process, which is implemented based on the Epsilon6 framework, enables the modelers to detect and resolve different types of conflicts for Unified Modeling Language (UML) and Eclipse Modeling Framework (EMF) models. The main objective of E3MP is to provide a user-customizable mechanism to covers all four consecutive phases of the merge process, Comparison, Reconciliation, Merging, and Conformance. E3MP can support conflict detection and resolution to produce a single consistent merged model. In this process, to perform operations of each phase, several user-defined Epsilon scripts are applied. This post summarizes the current version of E3MP. It is a condensed version of a recently published paper at the SPE journal.
The proposed process takes two versions of the model to be merged (as indicated by Version1 and Version2 in figure) and their common ancestor (i.e., Original Model). These models are used to compute a matching trace for each version. The process also needs a number of user-defined sets of rules that are used for comparison, conflict detection and resolution, merging, and conformance phases. The first phase employs the comparison and matching activities to identify a list of matched elements, which are named MatchList, for each new version. The similar elements can be inferred from these MatchLists to reform versions for preserving semantic equivalent conflicts and preparing them for conflict detection and resolution activities in the second phase. By going into the second phase, that is, the Reconciliation phase, several user-defined patterns are used to check for conflict conditions on the inputs and to solve the detected conflicts by (semi)automatic resolution strategies. The outputs of the conformance phase are two compatible versions of models which then can be integrated together in the Merging phase to produce a single target version which reflects modelers’ changes. After the merging phase, the target version may require a few modifications or restructuring, which is provided by a customizable set of consistency constraints in the Conformance phase. The output model of the Conformance phase is a consistent merged model that is delivered to the modeler as final target model.