Software merge: Combining changes to decompositions

Computer aid for software evolution is needed for more effective software development, particularly in contexts where changes to large systems must be made rapidly. This paper addresses computer aid for the evolution of requirements models and high level software designs. We present an improved method for automatically merging changes to software designs expressed via annotated dataflow diagrams and hierarchical decomposition. This improvement addresses the structure of the design as well as the system behavior the design implies. We also present an improved method for automatically reporting and repairing conflicts between structural changes. These methods can be applied to the informal dataflow diagrams commonly used in requirements modeling and software design as well as to the more specific executable design representations used in the computer-aided prototyping system CAPS.

[1]  Thomas W. Reps,et al.  Integrating noninterfering versions of programs , 1989, TOPL.

[2]  Valdis Berzins,et al.  Software merge: Models and methods for combining changes to programs , 1991, J. Syst. Integr..

[3]  Valdis Berzins,et al.  Software merge: semantics of combining changes to programs , 1994, TOPL.

[4]  Luqi,et al.  Compositional Semantics of a Real-Time Prototyping Language , 1993, IEEE Trans. Software Eng..

[5]  Luqi Real-Time Constraints in a Rapid Prototyping Language , 1993, Comput. Lang..

[6]  Luqi Software evolution through rapid prototyping , 1989, Computer.

[7]  David A. Dampier,et al.  A model for merging software prototypes , 1992 .

[8]  Luqi,et al.  Software engineering with abstractions , 1991 .

[9]  David A. Dampier A slicing method for semantics-based change-merging of software prototypes , 1994 .

[10]  Wuu Yang,et al.  A program integration algorithm that accommodates semantics-preserving transformations , 1992, SDE 4.

[11]  Luqi,et al.  Automated merging of software prototypes , 1994, J. Syst. Integr..

[12]  Luqi,et al.  Automation support for concurrent software engineering , 1994, SEKE.

[13]  Valdis Berzins,et al.  Increasing the Practical Impact of Formal Methods for Computer-Aided Software Development: Software Slicing, Merging and Integration , 1993 .

[14]  David Anthony Dampier A Model for Merging Different Versions of a PSDL Program , 1990 .

[15]  Mark Weiser,et al.  Program Slicing , 1981, IEEE Transactions on Software Engineering.

[16]  Thomas W. Reps,et al.  Integrating non-intering versions of programs , 1988, POPL '88.

[17]  Luqi A Graph Model for Software Evolution , 1990, IEEE Trans. Software Eng..

[18]  José Meseguer,et al.  Rapid prototyping: in the OBJ executable specification language , 1982, Rapid Prototyping.

[19]  Thomas W. Reps,et al.  Algebraic Properties of Program Integration , 1990, Sci. Comput. Program..

[20]  Luqi,et al.  Using Transformations in Specification-Based Prototyping , 1993, IEEE Trans. Software Eng..

[21]  David A. Dampier,et al.  Computer-Aided Maintenance for Embedded Real-time Software. , 1995 .

[22]  A. Tarski,et al.  On Closed Elements in Closure Algebras , 1946 .

[23]  Luqi,et al.  A Prototyping Language for Real-Time Software , 1988, IEEE Trans. Software Eng..

[24]  José Meseguer,et al.  Principles of OBJ2 , 1985, POPL.