A Slicing Method For Semantics-Based Change-Merging of Software Prototypes.
Abstract:
This report outlines a formal method for merging changes in independently developed versions of software prototypes. A useful semantics-based method, which is guaranteed to detect all conflicts, is outlined. Prototype slicing is used to determine the affected parts of each variation and the preserved part of the base in both variations. The affected parts are then combined with the preserved part to complete the merge. Our slicing theorem guarantees that this method produces a prototype that correctly exhibits the significant behavior of each of the input versions, provided the changes do not conflict. Correctness is achieved by comparing the slices of the variation and the merged program with respect to the affected parts of each variation. If the slices are the same, then the result is correct, otherwise a diagnostic message results. Preliminary testing shows that this tool will enhance the ability of the prototype developer to deliver a prototype more quickly by allowing more concurrency in the development effort.