Merging Changes to Software Specifications

  • Valdis Berzins
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 1526)


We propose a model of software changes and a method for combining changes to a software specification. This work was motivated by the desire to provide automated decision support for the evolution of software prototypes. We define a behavioral refinement ordering on software specifications and indicate how this structure can be used to automatically combine several changes to a specification. A set of examples illustrates the ideas.


Software Engineer Software Prototype Speci Cation Software Change Design History 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Badr, S.: Luqi, Automation Support for Concurrent Software Engineering. In: Proc. of the 6th International Conference Software Engineering and Knowledge Engineering, Jurmala, Latvia, June 20-23, pp. 46–53 (1994)Google Scholar
  2. 2.
    Bauer, F., et al.: The Munich Project CIP. LNCS, vol. 292. Springer, Heidelberg (1988)Google Scholar
  3. 3.
    Berzins, V.: On Merging Software Enhancements. Acta Informatica 23(6), 607–619 (1986)zbMATHCrossRefMathSciNetGoogle Scholar
  4. 4.
    Berzins, V.: Luqi: An Introduction to the Specification Language Spec. IEEE Software 7(2), 74–84 (1990)CrossRefGoogle Scholar
  5. 5.
    Berzins, V.: Luqi: Software Engineering with Abstractions: An Integrated Approach to Software Development using Ada. Addison-Wesley Publishing Company, Reading (1991) ISBN 0-201-08004-4Google Scholar
  6. 6.
    Berzins, V.: Software Merge: Models and Methods. Journal of Systems Integration 1(2), 121–141 (1991)CrossRefGoogle Scholar
  7. 7.
    Dampier, D., Berzins, V.: Liqu: Automated Merging of Software Prototypes. Journal of Systems Integration 4(1), 33–49 (1994)CrossRefGoogle Scholar
  8. 8.
    Berzins, V.: Software Merge: Semantics of Combining Changes to Programs. ACM TOPLAS 16(6), 1875–1903 (1994)CrossRefGoogle Scholar
  9. 9.
    Berzins, V.: Software Merging and Slicing. IEEE Computer Society Press Tutorial, Los Alamitos (1995) ISBN 0-8186-6792-3Google Scholar
  10. 10.
    Berzins, V., Dampier, D.: Software Merge: Combining Changes to Decompositions. Journal of Systems Integration, special issue on CAPS 6(1-2), 135–150 (1996)Google Scholar
  11. 11.
    Berzins, V.: Recombining Changes to Software Specifications. Journal of Systems and Software (August 1998) (to appear)Google Scholar
  12. 12.
    Feather, M.: A System for Assisting Program Change. ACM Transactions on Programming Languages and Systems 4(1), 1–20 (1982)zbMATHCrossRefGoogle Scholar
  13. 13.
    Feather, M.: A Survey and Classification of some Program Change Approaches and Techniques. In: Meertens, L.G.L.T. (ed.) Program Specification and Change (Proceedings of the IFIP TC2/WG 2.1 Working Conference), pp. 165–195. North-Holland, Amsterdam (1987)Google Scholar
  14. 14.
    Feather, M.: Constructing Specifications by Combining Parallel Elaborations. IEEE Transactions on Software Engineering 15(2), 198–208 (1989)CrossRefGoogle Scholar
  15. 15.
    Fickas, S.: Automating the Transformational Development of Software. IEEE Transactions on Software Engineering 11(11), 1268–1277 (1985)CrossRefGoogle Scholar
  16. 16.
    Johnson, W., Feather, M.: Building an Evolution Change Library. In: 12th International Conference on Software Engineering, pp. 238–248 (1990)Google Scholar
  17. 17.
    Kant, E.: On the Efficient Synthesis of Efficient Programs. Artificial Intelligence 20(3), 253–263 (1983); Also appears in [26], 157-183Google Scholar
  18. 18.
    Ketabchi, M.: Luqi: A Computer Aided Prototyping System. IEEE Software 5(2), 66–72 (1988)CrossRefGoogle Scholar
  19. 19.
    Berzins, V., Yeh, R.: Luqi: A Prototyping Language for Real-Time Software. IEEE Transactions on Software Engineering 14(10), 1409–1423 (1988)CrossRefGoogle Scholar
  20. 20.
    Luqi: Software Evolution via Rapid Prototyping. IEEE Computer 22(5), 13–25 (1989)Google Scholar
  21. 21.
    Luqi: A Graph Model for Software Evolution. IEEE Transactions on Software Engineering 16(8), 917–927 (1990)CrossRefGoogle Scholar
  22. 22.
    Luqi: Specifications in Software Prototyping. In: Proc. SEKE 1996, Lake Tahoe, NV, June 10-12, pp. 189–197 (1996)Google Scholar
  23. 23.
    Lutz, R.: Analyzing Software Requirements: Errors in Safety-Critical Embedded Systems, TR 92-27, Iowa State University (August 1992)Google Scholar
  24. 24.
    Parnas, D., Clemens, P.: A Rational Design Process: How and Why to Fake It. IEEE Transactions on Software Engineering 12(2), 251–257 (1986)Google Scholar
  25. 25.
    Horowitz, S., Prins, J., Reps, T.: Integrating Non-Interfering Versions of Programs. ACM Transactions on Programming Languages and Systems 11(3), 345–387 (1989)CrossRefGoogle Scholar
  26. 26.
    Rich, C., Waters, R. (eds.): Readings in Artificial Intelligence and Software Engineering. Morgan Kaufmann, San Francisco (1986)Google Scholar
  27. 27.
    Smith, D., Kotik, G., Westfold, S.: Research on Knowledge-Based Software Environments at Kestrel Institute. IEEE Transactions on Software Engineering 11(11), 1278–1295 (1985)CrossRefGoogle Scholar
  28. 28.
    Swartout, W., Balzer, R.: On the Inevitable intertwining of Speciication and implementation. Communication of the ACM 25(7), 438–440 (1982); Also appears in Gehani, N., McGettrick, A.D. (eds.): Software Specification Techniques, pp. 41–45 (1986)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1998

Authors and Affiliations

  • Valdis Berzins
    • 1
  1. 1.Computer Science DepartmentNaval Postgraduate SchoolMontereyUSA

Personalised recommendations