Abstract
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.
Similar content being viewed by others
References
S. Badr, and Luqi, “Automation support for concurrent software engineering,”Proceedings of the 6th International Conference on Software Engineering and Knowledge Engineering, Jurmala, Latvia, June 20–23, 1994, pp. 46–53.
V. Berzins, “On merging software extensions,”Acta Informatica, Springer-Verlag, pp. 607–619, 1986.
V. Berzins, “Software merge: Models and methods for combining changes to programs.”Journal of Systems Integration 1(2), pp. 121–141, August 1991.
V. Berzins, and Luqi,Software Engineering With Abstractions Addison-Wesley, 1991.
V. Berzins, Luqi, and A. Yehudai, “Using transformations in specification-based prototyping”.IEEE Transactions on Software Engineering 19(5), pp. 436–452, May 1993.
V. Berzins,Proceedings of the ARO/AFOSR/ONR Workshop on Increasing the Practical Impact of Formal Methods for Computer-Aided Software Development: Software Slicing, Merging and Integration. Monterey, California, October 1993.
V. Berzins, “Software merge: Semantics of combining changes to programs”.ACM Transactions on Programming Languages and Systems 16(6), pp. 1875–1903, November 1994.
V. Berzins,IEEE Computer Society Press Tutorial: Software Merging and Slicing. IEEE Computer Society Press, 1995.
D. Dampier, “A model for merging different versions of a PSDL program” Master's Thesis, Naval Postgraduate School, Monterey, California, June 1990.
D. Dampier, and Luqi, “A model for merging software prototypes,” Naval Postgraduate School Technical Report CS-92-014, 1992.
D. Dampier, Luqi, and V. Berzins, “Automated merging of software prototypes.”Journal of Systems Integration 4(1), Kluwer, January 1994.
D. Dampier, “A formal method for semantics-based change-merging of software prototypes”, Ph.D. Dissertation. Naval Postgraduate School, Monterey, California, June 1994.
D. Dampier, R. Byrnes, and M. Kindl, “Computer-aided maintenance for embedded real-time software,”Proceedings of the 19th Army Science Conference, Orlando, Florida, June 1994.
K. Futatsugi, J. Goguen, J. Jouannaud, and J. Meseguer, “Principles of OBJ2”,Conference Record of the Twelfth Annual ACM Symposium on Principles of Programming Languages, ACM, New Orleans, 1985, pp. 52–66.
J. Goguen, and J. Meseguer, “Rapid prototyping in the OBJ executable specification language”,Software Engineering Notes, 7(5), pp. 75–84, December 1982.
J. Goguen, et al.,Introducing OBJ, SRI Technical Report SRI-CSL-88-8, August 1988.
S. Horwitz, J. Prins, and T. Reps, “Integrating non-interfering versions of programs,”Conference Record of the Fifteenth ACM Symposium on Principles of Programming Languages, Association for Computing Machinery, New York, New York, January 13–15, 1988.
B. Kramer, Luqi, and V. Berzins, “Compositional semantics of a real-time prototyping language”.IEEE Transactions on Software Engineering 19(5), pp. 453–477, May 1993.
Luqi, V. Berzins, and R. Yeh, “A prototyping language for real time software.”IEEE Transactions on Software Engineering, pp. 1409–1423, October 1988.
Luqi, “Software evolution through rapid prototyping”.IEEE Computer, May 1989.
Luqi, “A graph model for software evolution.”IEEE Transaction on Software Engineering 16(8), August 1990.
Luqi, “Real-time constraints in a rapid prototyping language”,Journal of Computer Languages 18(2), pp. 77–103, Spring 1993.
J. McKinsey, and A. Tarski, “On closed elements in closure algebras”.Annals of Mathematics 47(1), pp. 122–162, January 1946.
T. Reps, “On the algebraic properties of program integration”.Science of Computer Programming 17(1–3), pp. 139–215, December 1991.
M. Weiser, “Program slicing”,IEEE Transactions on Software Engineering, pp. 352–357, July 1984.
W. Yang, S. Horwitz, and T. Reps, “A program integration algorithm that accommodates semantics-preserving transformations,”Proceedings of the 4th ACM SIGSOFT Symposium on Software Development Environments, Irvine, California, December, 1990, pp. 133–143.
Author information
Authors and Affiliations
Rights and permissions
About this article
Cite this article
Berzins, V., Dampier, D.A. Software merge: Combining changes to decompositions. Journal of Systems Integration 6, 135–150 (1996). https://doi.org/10.1007/BF02262754
Received:
Issue Date:
DOI: https://doi.org/10.1007/BF02262754