Unified versioning through feature logic

Software configuration management (SCM) suffers from tight coupling between SCM version-ing models and the imposed SCM processes. In order to adapt SCM tools to SCM processes, rather than vice versa, we propose a unified versioning model, the version set model. Version sets denote versions, components, and configurations by feature terms, that is, Boolean terms over (feature : value)-attributions. Through feature logic, we deduce consistency of abstract configurations as well as features of derived components and describe how features propagate in the SCM process; using feature implications, we integrate change-oriented and version-oriented SCM models. We have implemented the version set model in an SCM system called ICE, for Incremental Configuration Environment. ICE is based on a featured file system (FFS), where version sets are accessed as virtual files and directories. Using the well-known C preprocessor (CPP) representation, users can view and edit multiple versions simultaneously, while only the differences between versions are stored. It turns out that all major SCM models can be realized and integrated efficiently on top of the FFS, demonstrating the flexible and unifying nature of the version set model.

[1]  S. Sachweh,et al.  Version management for tightly integrated software engineering environments , 1995, Proceedings Software Engineering Environments.

[2]  Axel Mahler,et al.  Variants: keeping things together and telling them apart , 1995 .

[3]  Jacky Estublier Process Session , 1995, SCM.

[4]  Andreas Podelski,et al.  Towards a Meaning of LIFE , 1991, J. Log. Program..

[5]  Andreas Zeller,et al.  Handling Version Sets Through Feature Logic , 1995, ESEC.

[6]  Andreas Zeller,et al.  A unified version model for configuration management , 1995, SIGSOFT FSE.

[7]  Neil Sarnak,et al.  Creation and Maintenance of Multiple Versions , 1988, SCM.

[8]  Andreas Zeller,et al.  Smooth Operatons with Square Operators - The Version Set Model in ICE , 1996, SCM.

[9]  Peter J. Nicklin Managing multi-variant software configuration , 1991, SCM '91.

[10]  Peter H. Feiler,et al.  The State of Automated Configuration Management , 1991 .

[11]  Bjarne Stroustrup,et al.  C++ Programming Language , 1986, IEEE Softw..

[12]  Jürgen F. H. Winkler,et al.  Version control in families of large programs , 1987, ICSE '87.

[13]  Peter H. Feiler,et al.  Configuration Management Models in Commercial Environments , 1994 .

[14]  Marvin H. Solomon,et al.  An Overview of the CAPITL Software Development Environment , 1995, SCM.

[15]  Andreas Zeller Configuration Management with Version Sets , 1997 .

[16]  Tobias Nipkow,et al.  Boolean Unification - The Story So Far , 1989, J. Symb. Comput..

[17]  Bernhard Nebel,et al.  Reasoning and Revision in Hybrid Representation Systems , 1990, Lecture Notes in Computer Science.

[18]  Dennis Heimbigner,et al.  A generic, peer-to-peer repository for distributed configuration management , 1996, Proceedings of IEEE 18th International Conference on Software Engineering.

[19]  Gregor Snelting,et al.  On the inference of configuration structures from source code , 1994, Proceedings of 16th International Conference on Software Engineering.

[20]  Peter Sestoft,et al.  Partial evaluation and automatic program generation , 1993, Prentice Hall international series in computer science.

[21]  Reidar Conradi,et al.  Change oriented versioning in a software engineering database , 1989, SCM.

[22]  Dan Walsh,et al.  Design and implementation of the Sun network filesystem , 1985, USENIX Conference Proceedings.

[23]  Bradley R. Schmerl,et al.  Designing Configuration Management Facilities for Dynamically Bound Systems , 1995, SCM.

[24]  Jacky Estublier Software Configuration Management: ICSE SCM-4 and SCM-5 Workshops. Selected Papers , 1995 .

[25]  Jacky Estublier,et al.  The Adele configuration manager , 1995 .

[26]  Gregor Snelting,et al.  Reengineering of configurations based on mathematical concept analysis , 1996, TSEM.

[27]  Erhard Plödereder,et al.  The data model of the configuration management assistant (CMA) , 1989, SCM.

[28]  Bernhard Nebel,et al.  Representation and Reasoning with Attributive Descriptions , 1990, Sorts and Types in Artificial Intelligence.

[29]  Gert Smolka,et al.  Feature-Constraint Logics for Unification Grammars , 1989, J. Log. Program..

[30]  Hector J. Levesque,et al.  The Tractability of Subsumption in Frame-Based Description Languages , 1984, AAAI.

[31]  David W. Binkley,et al.  Program integration for languages with procedure calls , 1995, TSEM.

[32]  C. Reichenberger Orthogonal version management , 1989 .

[33]  Eugene W. Myers,et al.  A file comparison program , 1985, Softw. Pract. Exp..

[34]  Bernhard Westfechtel,et al.  Structure-oriented merging of revisions of software documents , 1991, SCM '91.

[35]  Martin Kay,et al.  Functional Unification Grammar: A Formalism for Machine Translation , 1984, ACL.

[36]  Manfred Nagl,et al.  Building integrated software development environments. Part I: tool specification , 1992, TSEM.

[37]  Axel Mahler,et al.  An Object Base for Attributed Software Objects , 1988 .

[38]  David G. Korn,et al.  n -DFS: the Multiple Dimensional File System , 1995 .

[39]  Reidar Conradi Versioning Models , 1995, SCM.

[40]  Hassan Aït-Kaci,et al.  LOGIN: A Logic Programming Language with Built-In Inheritance , 1986, J. Log. Program..

[41]  Randy H. Katz,et al.  Toward a unified framework for version modeling in engineering databases , 1990, CSUR.

[42]  Fernando Pereira,et al.  The Formalism and Implementation of PATR-II , 1983 .

[43]  Even-André Karlsson,et al.  Change-oriented version descriptions in EPOS , 1991, Softw. Eng. J..

[44]  Hassan Aït-Kaci,et al.  An Algebraic Semantics Approach to the Effective Resolution of Type Equations , 1986, Theor. Comput. Sci..

[45]  M. Lacroix,et al.  Preferences; Putting More Knowledge into Queries , 1987, VLDB.

[46]  David B. Leblang The CM challenge: configuration management that works , 1995 .

[47]  Gert Smolka,et al.  Inheritance Hierarchies: Semantics and Unification , 1989, J. Symb. Comput..

[48]  Susan A. Dart,et al.  Concepts in configuration management systems , 1991, SCM '91.

[49]  Stuart I. Feldman,et al.  Make — a program for maintaining computer programs , 1979, Softw. Pract. Exp..

[50]  Walter F. Tichy,et al.  Rcs — a system for version control , 1985, Softw. Pract. Exp..

[51]  Brian Berliner,et al.  CVS II: Parallelizing Software Dev elopment , 1998 .

[52]  Marc J. Rochkind,et al.  The source code control system , 1975, IEEE Transactions on Software Engineering.

[53]  加藤 真紀子 Network Software Environmentとその利用事例 , 1991 .

[54]  Gregor Snelting,et al.  Inference-Based Support for Programming in the Large , 1991, ESEC.

[55]  Andy Schürr,et al.  Graph Grammar Engineering with PROGRES , 1995, ESEC.

[56]  H KatzRandy Toward a unified framework for version modeling in engineering databases , 1990 .

[57]  Reidar Conradi,et al.  Version models for software configuration management , 1998, CSUR.