Smooth operations with square operators — The version set model in ICE

  • Andreas Zeller
Versioning Models and Experiences
Part of the Lecture Notes in Computer Science book series (LNCS, volume 1167)


Implementing software configuration management (SCM) in an organization raises various integration problems. We present the Incremental Configuration Environment (ICE), a novel SCM system providing smooth integration with both the software process and the development environment. ICE is based on the version set model, where versions, components, and configurations are grouped into sets according to their features, using feature logic as a formal base to denote sets and operations and to deduce consistency. Version sets generalize well-known SCM concepts such as components, repositories, workspaces, or configurations and allow for flexibility in combining these concepts. For integration in software development environments, ICE provides a featured file system (FFS), where version sets are represented as files and directories. In the FFS, arbitrary programs can incrementally access and explore version sets. Using the well-known C preprocessor (CPP) representation, users can view and edit multiple versions simultaneously, while still only the differences between version sets are stored. Facilities for multi-version merging or deductive program construction care for effective work coordination and automatic reuse of derived objects.

Key words

Software configuration management Version control File systems management Deduction and theorem proving Knowledge representation formalisms and methods Feature logic 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Paul Adams and Marvin Solomon. An overview of the CAPITL software development environment. In Jacky Estublier, editor, Software Configuration Management: selected papers /ICSE SCM-4 and SCM-5 workshops, number 1005 in Lecture Notes in Computer Science, pages 1–34, Seattle, Washington, October 1995. Springer-Verlag.Google Scholar
  2. 2.
    Brian Berliner. CVS II: Parallelizing software development. In Proc. of the 1990 Winter USENIX Conference, Washington, D.C., 1990.Google Scholar
  3. 3.
    David Binkley, Susan Horwitz, and Thoas Reps. Program integration for languages with procedure calls. ACM Transactions on Software Engineering and Methodology, 4(1):3–35, January 1995.Google Scholar
  4. 4.
    Ronald. J. Brachman and H. J. Levesque. The tractability of subsumption in frame-based description languages. In Proc. of the 4th National Conference of the American Association for Artificial Intelligence, pages 34–37, Austin, Texas, August 1984.Google Scholar
  5. 5.
    A. Brown, S. Dart, P. Feiler, and K. Wallnau. The state of automated configuration management. Technical Report CMU/SEI-ATR-91, Software Engineering Institure, Carnegie Mellon University, Pittsburgh, PA, September 1991.Google Scholar
  6. 6.
    Geoffrey M. Clemm. The Odin specification language. In Jürgen F. H. Winkler, editor, Proc. of the International Workshop on Software Version and Configuration Control pages 145–158, Grassau, January 1988. Teubner Verlag, Stuttgart.Google Scholar
  7. 7.
    William Courington. The Network Software Environment. Technical Report FE 197-0, Sun Microsystems, Inc., February 1989.Google Scholar
  8. 8.
    Jacky Estublier and Rubby Casallas. The Adele configuration manager. In Tichy [41], pages 99–133.Google Scholar
  9. 9.
    Peter H. Feiler. Configuration management models in commercial environments. Technical Report CMU/SEI-91-TR-7, Software Engineering Institure, Carnegie Mellon University, Pittsburgh, PA, March 1991.Google Scholar
  10. 10.
    Peter H. Feiler, editor. Proc. 3rd International Workshop on Software Configuration Management, Trondheim, Norway, June 1991. ACM Press.Google Scholar
  11. 11.
    Stuart Feldman, editor. Proc. 4th International Workshop on Software Configuration Management (Preprint), Baltimore, Maryland, May 1993.Google Scholar
  12. 12.
    Stuart I. Feldman. Make—A program for maintaining computer programs. Software—Practice and Experience, 9:255–265, April 1979.Google Scholar
  13. 13.
    Bernd Fischer, Matthias Kievernagel, and Gregor Snelting. Deduction-based software component retrieval. In Köhler et al. [21], pages 1–5.Google Scholar
  14. 14.
    Glenn Fowler, David Korn, and Herman Rao. n-DFS: The multiple dimensional file system. In Tichy [41], pages 135–154.Google Scholar
  15. 15.
    Bjørn Gulla, Even-André Karlsson, and Dashing Yeh. Change-oriented version descriptions in EPOS. Software Engineering Journal, 6(6):378–386, November 1991.Google Scholar
  16. 16.
    Richard Harter. Version management and change control; systematic approaches to keeping track of source code and support files. Unix World, 6(6), June 1989.Google Scholar
  17. 17.
    The International Organization for Standardization and The International Electrotechnical Commission. Programming Languages—C, December 1990. ISO/IEC International Standard 9899:1990 (E).Google Scholar
  18. 18.
    R. T. Kasper and W. C. Rounds. A logical semantics for feature structures. In Proc. of the 24th Annual Meeting of the ACL, pages 257–265, Columbia University, New York, 1986.Google Scholar
  19. 19.
    M. Kay. Functional unification grammar: A formalism for machine translation. In Proc. 10th International Joint Conference on Artificial Intelligence, pages 75–78, Stanford, 1984.Google Scholar
  20. 20.
    Thilo Kielmann. Using PROLOG for software system maintenance. In Proc. of the First International Conference on the Practical Application of PROLOG, London, UK, April 1992.Google Scholar
  21. 21.
    Jana Köhler, Fausto Giunchiglia, Cordell Green, and Christoph Walther, editors. Working Notes of the IJCAI-95 Workshop: Formal Approaches to the Reuse of Plans, Proofs, and Programs, Montréal, August 1995.Google Scholar
  22. 22.
    Maren Krone and Gregor Snelting. On the inference of configuration structures from source code. In Proc. 16th International Conference on Software Engineering, pages 49–57, Sorrento, Italy, May 1994. IEEE Computer Society Press.Google Scholar
  23. 23.
    M. Lacroix and P. Lavency. Preferences: Putting more knowledge into queries. In Peter M. Stocker and William Kent, editors, Proc. of the 13th International Conference on Very Large Data Bases, pages 217–225, Brighton, 1987.Google Scholar
  24. 24.
    Andreas Lampen and Axel Mahler. An object base for attributed software objects. In Proc. of the Fall '88 EUUG Conference, pages 95–105, Cascais, October 1988.Google Scholar
  25. 25.
    David B. Leblang. The CM challenge: Configuration management that works. In Tichy [41], pages 1–37.Google Scholar
  26. 26.
    Anund Lie, Reidar Conradi, Tor M. Didriksen, Even-André Karlsson, Svein O. Hallsteinsen, and Per Holager. Change oriented versioning in a software engineering database. In Walter F. Tichy, editor, Proc. 2nd International Workshop on Software Configuration Management, pages 56–65, Princeton, New Jersey, October 1989. ACM Press.Google Scholar
  27. 27.
    Christian Lindig. Concept-based component retrieval. In Köhler et al. [21], pages 21–25.Google Scholar
  28. 28.
    Axel Mahler. Variants: Keeping things together and telling them apart. In Tichy [41], pages 39–69.Google Scholar
  29. 29.
    W. Miller and Eugene Myers. A file comparison program. Software—Practice and Experience, 15(11): 1025, 1985.Google Scholar
  30. 30.
    Bjørn P. Munch, Jens-Otto Larsen, Bjørn Gulla, Reidar Conradi, and Even Andre Karlsson. Uniform versioning: The change-oriented model. In Feldman [11], pages 188–196.Google Scholar
  31. 31.
    B. Nebel and G. Smolka. Representation and reasoning with attributive descriptions. In K. H. Bläsius, U. Hedstück, and C.-R. Rollinger, editors, Sorts and Types in Artificial Intelligence, volume 256 of Lecture Notes in Artificial Intelligence, pages 112–139, Eringerfeld, April 1989. Springer-Verlag.Google Scholar
  32. 32.
    Peter Nicklin. Managing multi-variant software configurations. In Feiler [10], pages 53–57.Google Scholar
  33. 33.
    Rubén Prieto-Diaz. Classifying software for reusability. IEEE Software, 4(1), January 1987.Google Scholar
  34. 34.
    Anthony Rich and Marvin Solomon. A logic-based approach to system modelling. In Feiler [10], pages 84–93.Google Scholar
  35. 35.
    Marc J. Rochkind. The source code control system. IEEE Transactions on Software Engineering, SE-1(4):364–370, December 1975.Google Scholar
  36. 36.
    R. Sandberg, D. Goldberg, S. Kleiman, D. Walsh, and B. Lyon. Design and implementation of the Sun Network filesystem. In Proc. of the Summer 1985 USENIX conference, pages 119–130, Portland, Oregon, June 1985.Google Scholar
  37. 37.
    S. Shieber, H. Uszkorzeit, F. Pereira, J. Robinson, and M. Tyson. The formalism and implementation of PATR-II. In J. Bresnan, editor, Research on Interactive Acquisition and Use of Knowledge. SRI International, 1983.Google Scholar
  38. 38.
    Gerd Smolka and Hassan Aït-Kaci. Inheritance hierarchies: Semantics and unification. In Claude Kirchner, editor, Unification, pages 489–516. Academic Press, London, 1990.Google Scholar
  39. 39.
    Gert Smolka. Feature-constrained logics for unification grammars. Journal of Logic Programming, 12:51–87, 1992.Google Scholar
  40. 40.
    Walter F. Tichy. RCS—A system for version control. Software—Practice and Experience, 15(7):637–654, July 1985.Google Scholar
  41. 41.
    Walter F. Tichy, editor. Configuration Management, volume 2 of Trends in Software. John Wiley & Sons, Chichester, England, 1994.Google Scholar
  42. 42.
    Bernhard Westfechtel. Structure-oriented merging of revisions of software documents. In Feiler [10], pages 86–79.Google Scholar
  43. 43.
    Douglas Wiebe. Object-oriented software configuration management. In Feldman [11], pages 241–252.Google Scholar
  44. 44.
    Wuu Yang, Susan Horwitz, and Thomas Reps. A program integration algorithm that accommodates semantics-preserving transformations. ACM Transactions on Software Engineering and Methodology, 1(3):310–354, July 1992.Google Scholar
  45. 45.
    Andreas Zeller. A unified version model for configuration management. In Gail Kaiser, editor, Proc. 3rd ACM SIGSOFT Symposium on the Foundations of Software Engineering, volume 20 (4) of ACM Software Engineering Notes, pages 151–160, Washington, DC, October 1995. ACM Press.Google Scholar
  46. 46.
    Andreas Zeller and Gregor Snelting. Handling version sets through feature logic. In Wilhelm Schäfer and Pere Botella, editors, Proc. 5th European Software Engineering Conference, volume 989 of Lecture Notes in Computer Science, pages 191–204, Sitges, Spain, September 1995. Springer-Verlag.Google Scholar
  47. 47.
    Andreas Zeller and Gregor Snelting. Unified versioning through feature logic. Computer Science Report 96-01, Technical University of Braunschweig, Germany, February 1996. Submitted for publication.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1996

Authors and Affiliations

  • Andreas Zeller
    • 1
  1. 1.Abteilung SoftwaretechnologieTechnische Universität BraunschweigBraunschweig

Personalised recommendations