This Article 
 Bibliographic References 
 Add to: 
A New Approach to Version Control
March 1993 (vol. 19 no. 3)
pp. 268-276

A method for controlling versions of software and other hierarchically structured entities is presented. Using the variant structure principle, a particular version of an entire system is formed by combining the most relevant existing versions of the various components of the system. An algebraic version language that allows histories (numbered series), subversions (or variants), and joins is described. It is shown that the join operation is simply the lattice least upper bound and together with the variant structure principle, provides a systematic framework for recombining divergent variants. The utility of this approach is demonstrated using LEMUR, a programming environment for modular C programs, which was developed using itself. The ways in which this notion of versions is related to the possible world semantics of intensional logic are discussed.

[1] N. Belkhatir and J. Estublier, "Experience with a database of programs," inAss. Comput. Mach. SIGSOFT/SIGPLAN Software Engineering Symp. Practical Software Development Environments, Palo Alto, CA, 1986; also inSIGPLAN, vol. 22, no. 1, pp. 84-91, Jan. 1987.
[2] N. Belkhatir and J. Estublier, "Protection and cooperation in a software engineering environment," inAdvanced Programming Environments, LNCS 244, Trondheim, Norway, June 1986, pp. 221-229.
[3] G. M. Clemm, "The Odin System: An object manager for extensible software environments," Ph.D. dissertation, University of Colorado, Boulder, 1986.
[4] L. W. Cooprider, "The representation of families of software systems," Ph.D. dissertation, Carnegie-Mellon University, Pittsburgh, PA, 1978.
[5] J. Estublier, "A configuration manager: The Adele data base of programs," inWorkshop on Software Engineering Environments for Programming-in-the-large, Harwichport, MA, June 1985, pp. 140-147.
[6] J. Estublier and J.-M. Favre, "Structuring large versioned software products," in30th Annual Int. Conf. Computer Software and Applications (COMPSAC'89), Orlando, FL, Sept. 1989.
[7] S. I. Feldman, "Make--A program for maintaining software,"Software--Practice and Experience, vol. 9, no. 3, pp. 255-265, 1979.
[8] C. W. Fraser and E. W. Myers, "An editor for revision control,"Ass. Comput. Mach. Trans. Programming Languages and Syst., vol. 9, no. 2, pp. 277-295, 1987.
[9] A. N. Habermann, "Automatic deletion of obsolete information,"J. Syst. and Software, vol. 5, no. 2, pp. 145-154, May 1985.
[10] S. Horowitz, J. Prins, and T. Reps, "Integrating non-interfering versions of programs,"Trans. Program. Lang. Syst., vol. 11, no. 3, pp. 345-387, July 1989.
[11] B. W. Lampson and E. E. Schmidt, "Organizing software in a distributed environment," inSIGPLAN '83 Symp. Programming Language Issues in Software Systems, San Francisco, CA, 1983; also inSIGPLAN, vol. 18, no. 6, pp. 1-13, June 1983.
[12] D. B. Leblang and R. P. Chase, Jr., "Computer-aided software engineering in a distributed workstation environment," inSIGSOFT/SIGPLAN Software Engineering Symp. Practical Software Development Environments, Pittsburgh, PA, Apr. 1984, pp. 104-112; see alsoSIGSOFT Software Engineering Notes, vol. 9, no. 3, May 1984; see alsoSIGPLAN Notices, vol. 19, no. 5, May 1984.
[13] A. Mahler and A. Lampen, "An integrated toolset for engineering software configurations," inAss. Comput. Mach. SIGSOFT/SIGPLAN Software Engineering Symp. Practical Software Development Environments, Boston, MA, 1988; also inSIGPLAN, vol. 24, no. 2, pp. 191-200, Feb. 1989.
[14] A. Mahler and A. Lampen, "Shape--A software configuration management tool," inInt. Workshop on Software Version and Configuration Control, Grassau, Germany, Jan. 1988.
[15] K. Marczullo and D. Wiebe, "Jasmine: A Software System Modeling Facility,"Proc. ACM OOPSLA Conf., ACM, New York, N.Y., 1986.
[16] E. W. Myers, "Efficient applicative data types," inProc. 11th Annual Ass. Comput. Mach. Symp. Principles of Programming Languages, Salt Lake City, UT, 1984, pp. 66-75.
[17] D. Notkin, "The GANDALF project,"J. Syst. Software, vol. 5, no. 2, pp. 91-106, May 1985.
[18] W. Obst, "Delta technique and string-to-string correction," in1st European Software Engineering Conf., LNCS289, Strasbourg, France, Sept. 1987, pp. 64-68.
[19] D. Parnas, "Designing software for ease of extension and contraction," in3rd Int. Conf. Software Engineering, Atlanta, GA, May 1978, pp. 264-277.
[20] J. A. Plaice and W. W. Wadge, "A UNIX tool for managing reusable software components,"Software Practice and Experience, 1993 (in press).
[21] J. A. Plaice and W. W. Wadge, "Reducing the complexity of software configuration," in M. Tchuente, Ed.,Proc. 1st African Colloquium on Research in Computer Science, Yaoundé, Cameroon, Oct. 1992, pp. 85-96.
[22] M. F. Rochkind, "The source code control system,"IEEE Trans. Software Eng., vol. SE-1, no. 4, pp. 364-370, Dec. 1975.
[23] E. E. Schmidt, "Controlling large software development in a distributed environment," Ph.D. dissertation, University of California, Berkeley, 1982.
[24] R. W. Schwanke and G. E. Kaiser, "Living with inconsistency in large systems," inInt. Workshop on Software Version and Configuration Control, Grassau, Germany, Jan. 1988, pp. 98-118.
[25] R. H. Thomason, Ed.,Formal Philosophy: Selected Papers by Richard Montague. New Haven, CT: Yale University Press, 1974.
[26] W. F. Tichy, "Software development based on module interconnection," in4th Int. Conf. Software Engineering, Munich, Germany, Sept. 1979, pp. 29-41.
[27] W. F. Tichy, "Software development control based on system structure description," Ph.D. dissertation, Carnegie-Mellon Univ., Jan. 1980.
[28] W. F. Tichy, "Design, implementation, and evaluation of a revision control system," inProc. 6th IEEE Int. Conf. Software Engineering, Sept. 1982, pp. 58-67.
[29] W. F. Tichy, "The string-to-string correction problem with block moves,"Ass. Comput. Mach. Trans. Computer Syst., vol. 2, no. 4, pp. 309-321, Nov. 1984.
[30] Walter F. Tichy, "RCS--A system for version control,"Software--practice and Experience, vol. 15, no. 7, pp. 637-654, July 1985.
[31] W. F. Tichy, "Smart recompilation,"Ass. Comput. Mach. Trans. Programming Languages Syst., vol. 8, no. 3, pp. 273-291, July 1986.
[32] J. F. H. Winkler, "Report on the first international workshop on software version and configuration control,"SIGSOFT, vol. 13, no. 4, pp. 61-73, Oct. 1988.

Index Terms:
version control; hierarchically structured entities; variant structure principle; algebraic version language; numbered series; subversions; join operation; lattice least upper bound; systematic framework; divergent variants; LEMUR; programming environment; modular C programs; world semantics; intensional logic; configuration management; formal languages; formal logic; programming environments
J. Plaice, W.W. Wadge, "A New Approach to Version Control," IEEE Transactions on Software Engineering, vol. 19, no. 3, pp. 268-276, March 1993, doi:10.1109/32.221137
Usage of this product signifies your acceptance of the Terms of Use.