Summary: | This dissertation addresses the need for a formal method to support the merging of changes in independently developed versions of a prototype in a computer-aided rapid prototyping system. The goal is to provide the prototype developer with the ability to combine independently developed enhancements to a prototype, check for consistency, and automatically update all derived versions of a prototype with changes made to the base version. A useful semantics-based method is provided for change-merging that is guaranteed to detect all conflicts. Prototype slicing is used to capture the affected parts of each variation and the preserved part of the base in both variations. We then combine the affected parts with the preserved part using our model, which includes the first use of Brouwerian Algebras to formalize the merging of hard real time constraints. 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 the method achieves correctness by comparing the slice of the change-merged version with respect to each affected part against the same slice of the appropriate changed version. If the slices are the same, the change-merge is correct, otherwise a diagnostic message results. A preliminary conditional method for change-merging while programs is also provided that is strictly more accurate than previous methods. This dissertation contributes to computer-aided software maintenance by providing a model, algorithm and implementation for an automated change-merging tool for PSDL prototypes. Preliminary testing shows that this tool will enhance the ability of the prototype developer to deliver a prototype in less time by enabling more concurrency in the development effort.
|