Skip to content
Jadson Santos edited this page Sep 21, 2015 · 8 revisions

Welcome to the MergeClear wiki!

In this wiki we will keep information about the approach proposed to merge clone systems.

CLONING PROBLEM

Despite the existence of well-structured and systematic reuse approaches such as software product line engineering , many institutions apply a “clone-and-own” reuse approach to develop, evolve and customize software systems. This results mostly because cloning is a simple, fast, practical and easy to understand technique that allows reusing existing software system implementations, and to independently adapt and evolve them for new contexts and scenarios. The below figure illustrates a common evolution scenario where code conflicts can arise when merging two cloned web-based systems.

Clone Squema

APPROACH

In this context, was proposed the HEMIRECS - History Evolution Mining for Reconciliation of Cloned Systems approach that aims to identify merge problems that can arise in the integration of cloned systems. The HEMIRECS approach proposal to identify these problems organizing the evolution information in a structural model and realizing a call graph dependence analysis. For this approach was developed a tool called MergeClear.

Merge Clear

STRUCTURAL EVOLUTION MODEL

The module executes an algorithm that compares the source and target systems searching for changes applied to the features and code assets of the systems. It produces as output a delta model containing differences between the source and target.

Detal Model

KIND OF CONFLICTS PROPOSED

Direct conflicts are conflict when the same method of variable change in both side of the reconciliation.

Direct Conflict

Indirect conflicts are conflicts detected when the method or variable that will be reconciled do not change, but some method or variable related with the first one in the call graph, change.

Indirect Conflict

Pseudo conflicts are changes in method or variable of the same class, but these artifacts have no relationship in the call graph.

Pseudo Conflict

Clone this wiki locally