Skip to main content
Log in

Software merge: Combining changes to decompositions

  • Computer-Aided Prototyping
  • Published:
Journal of Systems Integration

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.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Institutional subscriptions

Similar content being viewed by others

References

  1. 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.

  2. V. Berzins, “On merging software extensions,”Acta Informatica, Springer-Verlag, pp. 607–619, 1986.

  3. V. Berzins, “Software merge: Models and methods for combining changes to programs.”Journal of Systems Integration 1(2), pp. 121–141, August 1991.

    Google Scholar 

  4. V. Berzins, and Luqi,Software Engineering With Abstractions Addison-Wesley, 1991.

  5. V. Berzins, Luqi, and A. Yehudai, “Using transformations in specification-based prototyping”.IEEE Transactions on Software Engineering 19(5), pp. 436–452, May 1993.

    Article  Google Scholar 

  6. 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.

  7. V. Berzins, “Software merge: Semantics of combining changes to programs”.ACM Transactions on Programming Languages and Systems 16(6), pp. 1875–1903, November 1994.

    Article  Google Scholar 

  8. V. Berzins,IEEE Computer Society Press Tutorial: Software Merging and Slicing. IEEE Computer Society Press, 1995.

  9. D. Dampier, “A model for merging different versions of a PSDL program” Master's Thesis, Naval Postgraduate School, Monterey, California, June 1990.

    Google Scholar 

  10. D. Dampier, and Luqi, “A model for merging software prototypes,” Naval Postgraduate School Technical Report CS-92-014, 1992.

  11. D. Dampier, Luqi, and V. Berzins, “Automated merging of software prototypes.”Journal of Systems Integration 4(1), Kluwer, January 1994.

  12. D. Dampier, “A formal method for semantics-based change-merging of software prototypes”, Ph.D. Dissertation. Naval Postgraduate School, Monterey, California, June 1994.

    Google Scholar 

  13. 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.

  14. 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.

  15. J. Goguen, and J. Meseguer, “Rapid prototyping in the OBJ executable specification language”,Software Engineering Notes, 7(5), pp. 75–84, December 1982.

    Article  Google Scholar 

  16. J. Goguen, et al.,Introducing OBJ, SRI Technical Report SRI-CSL-88-8, August 1988.

  17. 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.

  18. 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.

    Article  Google Scholar 

  19. Luqi, V. Berzins, and R. Yeh, “A prototyping language for real time software.”IEEE Transactions on Software Engineering, pp. 1409–1423, October 1988.

  20. Luqi, “Software evolution through rapid prototyping”.IEEE Computer, May 1989.

  21. Luqi, “A graph model for software evolution.”IEEE Transaction on Software Engineering 16(8), August 1990.

  22. Luqi, “Real-time constraints in a rapid prototyping language”,Journal of Computer Languages 18(2), pp. 77–103, Spring 1993.

    Article  Google Scholar 

  23. J. McKinsey, and A. Tarski, “On closed elements in closure algebras”.Annals of Mathematics 47(1), pp. 122–162, January 1946.

    Google Scholar 

  24. T. Reps, “On the algebraic properties of program integration”.Science of Computer Programming 17(1–3), pp. 139–215, December 1991.

    Article  Google Scholar 

  25. M. Weiser, “Program slicing”,IEEE Transactions on Software Engineering, pp. 352–357, July 1984.

  26. 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.

Download references

Author information

Authors and Affiliations

Authors

Rights and permissions

Reprints 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

Download citation

  • Received:

  • Issue Date:

  • DOI: https://doi.org/10.1007/BF02262754

Keywords

Navigation