Handling version sets through feature logic

  • Andreas Zeller
  • Gregor Snelting
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 989)


Software Configuration Management suffers from a multitude of models for version identification and control. We propose a unified approach based on feature logic. Using feature logic, version sets are the basic units of reasoning, making attribution models and version repositories special cases of a more general scheme. Version sets are identified by feature terms, that is, a boolean expression over (name: value)-features. A system is configured by incrementally narrowing the set of versions until each component is contained in one single version. Feature logic ensures early detection of inconsistencies as well as automatic completion of the configuration thread. We have implemented a tool called ICE, realizing the above approach. As ICE uses the common C preprocessor (CPP) representation, one can select, add, or modify arbitrary version subsets as user-readable entities. ICE deduces features and constraints from existing CPP-managed sources, providing interactive and incremental exploration of the configuration space.

Key words

software configuration management version control deduction and theorem proving knowledge representation formalisms and methods 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. [AS93]
    Paul Adams and Marvin Solomon. An overview of the capitl software development environment. In Feldman [Fel93], pages 3–28.Google Scholar
  2. [BL84]
    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
  3. [EC94]
    Jacky Estublier and Rubby Casallas. The Adele configuration manager. In Tichy [Tic94], pages 99–133.Google Scholar
  4. [Fel93]
    Stuart Feldman, editor. Proc. 4th International Workshop on Software Configuration Management (Preprint), May 1993.Google Scholar
  5. [FKS95]
    Bernd Fischer, Matthias Kievernagel, and Gregor Snelting. Deduction-based software component retrieval. In Köhler et al. [KGGW95]. To appear.Google Scholar
  6. [GKY91]
    Bjorn Gulla, Even-André Karlsson, and Dashing Yeh. Change-oriented version descriptions in EPOS. Software Engineering Journal, 6(6):378–386, November 1991.Google Scholar
  7. [IWS88]
    Proc. of the International Workshop on Software Version and Configuration Control. Teubner Verlag, Stuttgart, January 1988.Google Scholar
  8. [Kay84]
    M. Kay. Functional unification grammar: A formalism for machine translation. In Proc. 10th International Joint Conference on Artificial Intelligence, pages 75–78, 1984.Google Scholar
  9. [KGGW95]
    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, August 1995. To appear.Google Scholar
  10. [KR86]
    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
  11. [KS94]
    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. IEEE Computer Society Press, May 1994.Google Scholar
  12. [Leb94]
    David B. Leblang. The CM challenge: Configuration management that works. In Tichy [Tic94], pages 1–37.Google Scholar
  13. [Lin95]
    Christian Lindig. Concept-based component retrieval. In Köhler et al. [KGGW95], pages 21–25. To appear.Google Scholar
  14. [LL87]
    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
  15. [LM88]
    Andreas Lampen and Axel Mahler. An object base for attributed software objects. In Proc. of the Fall '88 EUUG Conference, pages 95–105, October 1988.Google Scholar
  16. [Mah94]
    Axel Mahler. Variants: Keeping things together and telling them apart. In Tichy [Tic94], pages 39–69.Google Scholar
  17. [MLG+93]
    Bjorn P. Munch, Jens-Otto Larsen, Bjorn Gulla, Reidar Conradi, and Even Andre Karlsson. Uniform versioning: The change-oriented model. In Feldman [Fel93], pages 188–196.Google Scholar
  18. [MM85]
    W. Miller and Eugene Myers. A file comparison program. Software—Practice and Experience, 15(11):1025, 1985.Google Scholar
  19. [Nic91]
    Peter Nicklin. Managing multi-variant software configurations. In Peter H. Feiler, editor, Proc. 3rd International Workshop on Software Configuration Management, pages 53–57. ACM Press, June 1991.Google Scholar
  20. [NS89]
    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. Springer-Verlag, April 1989.Google Scholar
  21. [Roc75]
    Marc J. Rochkind. The source code control system. IEEE Transactions on Software Engineering, SE-1(4):364–370, December 1975.Google Scholar
  22. [SA90]
    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
  23. [SBK88]
    N. Sarnak, R. Bernstein, and V. Kruskal. Creation and maintenance of multiple versions. In IWSVCC [IWS88]., pages 264–275.Google Scholar
  24. [SFG+94]
    Gregor Snelting, Bernd Fischer, Franz-Josef Grosch, Matthias Kievernagel, and Andreas Zeller. Die inferenzbasierte Softwareentwicklungsumgebung Nora. Informatik—Forschung und Entwicklung, 9(3):116–131, August 1994. In German.Google Scholar
  25. [SGS91]
    Gregor Snelting, Franz-Josef Grosch, and Ulrik Schroeder. Inference-based support for programming in the large. In A. van Lamsweerde and A. Fugetta, editors, Proc. 3rd European Software Engineering Conference, volume 550 of Lecture Notes in Computer Science, pages 396–408. Springer-Verlag, October 1991.Google Scholar
  26. [Smo92]
    Gert Smolka. Feature-constrained logics for unification grammars. Journal of Logic Programming, 12:51–87, 1992.CrossRefGoogle Scholar
  27. [Sne95]
    Gregor Snelting. Reengineering of configurations based on mathematical concept analysis. Computer Science Report 95-02, Technical University of Braunschweig, Germany, January 1995. Submitted for publication.Google Scholar
  28. [SUP+83]
    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
  29. [Tic85]
    Walter F. Tichy. Rcs—A system for version control. Software—Practice and Experience, 15(7):637–654, July 1985.Google Scholar
  30. [Tic94]
    Walter F. Tichy, editor. Configuration Management, volume 2 of Trends in Software. John Wiley & Sons, Chichester, England, 1994.Google Scholar
  31. [Win87]
    Jürgen F.H. Winkler. Version control in families of large programs. In E. Riddle, editor, Proc. 9th International Conference on Software Engineering, pages 91–105. IEEE Computer Society Press, March 1987.Google Scholar
  32. [Zel95]
    Andreas Zeller. A unified version set model for configuration management. In G. Kaiser, editor, Proc. of the ACM SIGSOFT '95 Symposium on the Foundations of Software Engineering. ACM Press, October 1995. To appear.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1995

Authors and Affiliations

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

Personalised recommendations