skip to main content
article

A classification of variation control systems

Published:23 October 2017Publication History
Skip Abstract Section

Abstract

Version control systems are an integral part of today's software and systems development processes. They facilitate the management of revisions (sequential versions) and variants (concurrent versions) of a system under development and enable collaboration between developers. Revisions are commonly maintained either per file or for the whole system. Variants are supported via branching or forking mechanisms that conceptually clone the whole system under development. It is known that such cloning practices come with disadvantages. In fact, while short-lived branches for isolated development of new functionality (a.k.a. feature branches) are well supported, dealing with long-term and fine-grained system variants currently requires employing additional mechanisms, such as preprocessors, build systems or custom configuration tools. Interestingly, the literature describes a number of variation control systems, which provide a richer set of capabilities for handling fine-grained system variants compared to the version control systems widely used today. In this paper we present a classification and comparison of selected variation control systems to get an understanding of their capabilities and the advantages they can offer. We discuss problems of variation control systems, which may explain their comparably low popularity. We also propose research activities we regard as important to change this situation.

References

  1. Florian Angerer, Andreas Grimmer, Herbert Prähofer, and Paul Grünbacher. 2015. Configuration-Aware Change Impact Analysis. In Proceedings of the 30th IEEE/ACM International Conference on Automated Software Engineering (ASE ’15) . 385–395.Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Florian Angerer, Herbert Prähofer, Daniela Lettner, Andreas Grimmer, and Paul Grünbacher. 2014. Identifying Inactive Code in Product Lines with Configuration-Aware System Dependence Graphs. In Proceedings 18th International Software Product Line Conference (SPLC 2014) . ACM, New York, NY, USA, Florence, Italy, 52–61. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Sven Apel, Don Batory, Christian Kästner, and Gunter Saake. 2013. Feature-Oriented Software Product Lines . Springer, Berlin Heidelberg. Google ScholarGoogle ScholarCross RefCross Ref
  4. Sven Apel and Christian Kästner. 2009. An Overview of FeatureOriented Software Development. J. Object Techn. 8, 5 (2009), 49–84. Google ScholarGoogle ScholarCross RefCross Ref
  5. David L. Atkins. 1998. Version Sensitive Editing: Change History As a Programming Tool. In Proceedings of the SCM-8 Symposium on System Configuration Management (ECOOP ’98) . Springer Verlag, London, UK, 146–157.Google ScholarGoogle ScholarCross RefCross Ref
  6. David L. Atkins, Thomas Ball, Todd L. Graves, and Audris Mockus. 2002. Using Version Control Data to Evaluate the Impact of Software Tools: A Case Study of the Version Editor. IEEE Transactions on Software Engineering 28, 7 (2002), 625–637. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Benjamin Behringer, Jochen Palz, and Thorsten Berger. 2017. PEoPL: projectional editing of product lines. In Proceedings of the 39th International Conference on Software Engineering, ICSE 2017, Buenos Aires, Argentina, May 20-28 . 563–574. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Thorsten Berger, Daniela Lettner, Julia Rubin, Paul Grünbacher, Adeline Silva, Martin Becker, Marsha Chechik, and Krzysztof Czarnecki. 2015. What is a Feature? A Qualitative Study of Features in Industrial Software Product Lines. In Proceedings 19th International Software Product Line Conference (SPLC’15) . ACM, 16–25. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Thorsten Berger, Divya Nair, Ralf Rublack, Joanne M. Atlee, Krzysztof Czarnecki, and Andrzej Wasowski. 2014. Three Cases of Feature-Based Variability Modeling in Industry. In Proceedings 17th International Conference Model-Driven Engineering Languages and Systems (MODELS’14), Valencia, Spain, September 28 – October 3 . Springer International Publishing, 302–319. Google ScholarGoogle ScholarCross RefCross Ref
  10. Thorsten Berger, Markus Völter, Hans Peter Jensen, Taweesap Dangprasert, and Janet Siegmund. 2016. Efficiency of Projectional Editing: A Controlled Experiment. In Proceedings of the 24th ACM SIGSOFT International Symposium on Foundations of Software Engineering, FSE 2016, Seattle, WA, USA, November 13-18, 2016 . 763–774. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. David Budgen, Mark Turner, Pearl Brereton, and Barbara Kitchenham. 2008. Using mapping studies in software engineering. In Proc. of PPIG, Vol. 8. Lancaster University, 195–204.Google ScholarGoogle Scholar
  12. Paul Clements and Linda Northrop. 2001. Software Product Lines: Practices and Patterns . Addison-Wesley, Boston, MA.Google ScholarGoogle Scholar
  13. Reidar Conradi and Bernhard Westfechtel. 1998. Version Models for Software Configuration Management. ACM Comput. Surv. 30, 2 (1998), 232–282. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. J. O. Coplien, D. L. DeBruler, and M. B. Thompson. 1987. The Delta System: A Nontraditional Approach to Software Version Management. In AT&T Technical Papers, International Switching Symposium.Google ScholarGoogle Scholar
  15. Randall D. Cronk. 1992. Tributaries and Deltas. BYTE 17, 1 (1992), 177–186.Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Krzysztof Czarnecki and Ulrich W. Eisenecker. 2000. Generative Programming: Methods, Tools, and Applications . Addison-Wesley, Boston, MA.Google ScholarGoogle Scholar
  17. Krzysztof Czarnecki, Paul Grünbacher, Rick Rabiser, Klaus Schmid, and Andrzej Wąsowski. 2012. Cool Features and Tough Decisions: A Comparison of Variability Modeling Approaches. In Proceedings of the Sixth International Workshop on Variability Modeling of SoftwareIntensive Systems (VaMoS ’12) . ACM, New York, NY, USA, 173–182. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Y. Dubinsky, J. Rubin, T. Berger, S. Duszynski, M. Becker, and K. Czarnecki. 2013. An Exploratory Study of Cloning in Industrial Software Product Lines. In Proceedings 17th European Conference on Software Maintenance and Reengineering . 25–34. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. J. M. Favre. 1996. Preprocessors from an abstract point of view. In Proceedings of the Third Working Conference on Reverse Engineering . 287–296.Google ScholarGoogle Scholar
  20. Stefan Fischer, Lukas Linsbauer, Roberto Erick Lopez-Herrejon, and Alexander Egyed. 2014. Enhancing Clone-and-Own with Systematic Reuse for Developing Software Variants. In Proceedings 30th IEEE International Conference on Software Maintenance and Evolution, Victoria, BC, Canada, September 29 - October 3 . 391–400. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. Christopher W. Fraser and Eugene W. Myers. 1987. An Editor for Revision Control. ACM Trans. Program. Lang. Syst. 9, 2 (March 1987), 277–295. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. W. M. Gentleman, A. MacKay, and D. A. Stewart. 1989. Commercial Realtime Software Needs Different Configuation Management. In Proceedings of the 2nd International Workshop on Software Configuration Management (SCM ’89) . ACM, New York, NY, USA, 152–161. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. Ira P Goldstein and Daniel G Bobrow. 1980. A layered approach to software design . Technical Report CSL-80-5. Xerox. Palo Alto Research Center.Google ScholarGoogle Scholar
  24. Bjørn Gulla, Even-André Karlsson, and Dashing Yeh. 1991. Changeoriented Version Descriptions in EPOS. Softw. Eng. J. 6, 6 (Nov. 1991), 378–386. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. Wanja Hofer, Christoph Elsner, Frank Blendinger, Wolfgang SchröderPreikschat, and Daniel Lohmann. 2010. Toolchain-independent Variant Management with the Leviathan Filesystem. In Proceedings of the 2nd International Workshop on Feature-Oriented Software Development (FOSD ’10) . ACM, New York, NY, USA, 18–24. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. Per Holager. 1988. Elements of the design of a change oriented configuration management tool . Technical Report STF44-A88023. ELAB, SINTEF, Trondheim, Norway.Google ScholarGoogle Scholar
  27. Kyo Kang, Sholom Cohen, James Hess, William Nowak, and Spencer Peterson. 1990. Feature-Oriented Domain Analysis (FODA) Feasibility Study . Technical Report SEI-90-TR-21. CMU.Google ScholarGoogle Scholar
  28. Christian Kästner, Sven Apel, and Martin Kuhlemann. 2008. Granularity in Software Product Lines. In Proceedings of the 30th International Conference on Software Engineering (ICSE ’08) . ACM, New York, NY, USA, 311–320. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. Vincent Kruskal. 2000. A blast from the past: Using P-EDIT for multidimensional editing. In Workshop on Multi-Dimensional Separation of Concerns in Software Engineering .Google ScholarGoogle Scholar
  30. Vincent J. Kruskal. 1984. Managing Multi-Version Programs with an Editor. IBM Journal of Research and Development 28, 1 (1984), 74–81. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. B. Kullbach and V. Riediger. 2001. Folding: an approach to enable program understanding of preprocessed languages. In Proceedings of 8th Working Conference on Reverse Engineering (WCRE) . Google ScholarGoogle ScholarCross RefCross Ref
  32. Anund Lie. 1990. Versioning in Software Engineering Databases. Ph.D. Dissertation. The Norwegian Institute of Technology.Google ScholarGoogle Scholar
  33. Anund Lie, Reidar Conradi, Tor Didriksen, and Even-André Karlsson. 1989. Change Oriented Versioning in a Software Engineering Database. In Proceedings of the 2nd International Workshop on Software Configuration Management (SCM), Princeton, NJ, USA, October 24 . 56–65. Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. Lukas Linsbauer. 2016. Managing and Engineering Variability Intensive Systems . Ph.D. Dissertation. Johannes Kepler University Linz.Google ScholarGoogle Scholar
  35. Lukas Linsbauer, Florian Angerer, Paul Grünbacher, Daniela Lettner, Herbert Prähofer, Roberto Lopez-Herrejon, and Alexander Egyed. 2014. Recovering Feature-to-Code Mappings in Mixed-Variability Software Systems. In Proceedings of the 30th International Conference on Software Maintenance and Evolution (ICSME’14) . 426–430. Google ScholarGoogle ScholarDigital LibraryDigital Library
  36. Lukas Linsbauer, Alexander Egyed, and Roberto Erick Lopez-Herrejon. 2016. A variability aware configuration management and revision control platform. In Proceedings of the 38th International Conference on Software Engineering, Austin, TX, USA, May 14-22, 2016 – Companion Volume (ICSE 2016) . 803–806. Google ScholarGoogle ScholarDigital LibraryDigital Library
  37. Lukas Linsbauer, Stefan Fischer, Roberto E. Lopez-Herrejon, and Alexander Egyed. 2015. Using Traceability for Incremental Construction and Evolution of Software Product Portfolios. In Proceedings IEEE/ACM 8th International Symposium on Software and Systems Traceability (SST) . IEEE Computer Society, 57–60. Google ScholarGoogle ScholarDigital LibraryDigital Library
  38. Lukas Linsbauer, E. Roberto Lopez-Herrejon, and Alexander Egyed. 2013. Recovering Traceability Between Features and Code in Product Variants. In Proceedings of the 17th International Software Product Line Conference (SPLC’13) . ACM, New York, NY, USA, 131–140. Google ScholarGoogle ScholarDigital LibraryDigital Library
  39. Lukas Linsbauer, Roberto Erick Lopez-Herrejon, and Alexander Egyed. 2016. Variability extraction and modeling for product variants. Software & Systems Modeling (29 Jan 2016).Google ScholarGoogle Scholar
  40. Stephen A. MacKay. 1995. The State of the Art in Concurrent, Distributed Configuration Management. In Selected Papers from the ICSE SCM-4 and SCM-5 Workshops on Software Configuration Management .Google ScholarGoogle Scholar
  41. Axel Mahler. 1995. Configuration Management. John Wiley & Sons, Inc., New York, NY, USA, Chapter Variants: Keeping Things Together and Telling Them Apart, 73–97.Google ScholarGoogle Scholar
  42. Jean Melo, Claus Brabrand, and Andrzej Wąsowski. 2016. How Does the Degree of Variability Affect Bug Finding?. In Proceedings of the 38th International Conference on Software Engineering (ICSE ’16) . ACM, New York, NY, USA, 679–690. Google ScholarGoogle ScholarDigital LibraryDigital Library
  43. Bjørn P. Munch. 1993. Versioning in a Software Engineering Database – The Change Oriented Way . Ph.D. Dissertation. The Norwegian Institute of Technology.Google ScholarGoogle Scholar
  44. Bjørn P. Munch, Reidar Conradi, Jens-Otto Larsen, Minh N. Nguyen, and Per H. Westby. 1996. Integrated Product and Process Management in EPOS. Integr. Comput.-Aided Eng. 3, 1 (1996), 5–19.Google ScholarGoogle ScholarDigital LibraryDigital Library
  45. Bjørn P. Munch, Jens-Otto Larsen, Bjørn Gulla, Reidar Conradi, and Even-André Karlsson. 1993. Uniform Versioning: The ChangeOriented Model. In Proceedings of the Fourth International Workshop on Software Configuration Management (SCM-4), May 21–22 . 188–196.Google ScholarGoogle Scholar
  46. Robert C. Nickerson, Upkar Varshney, and Jan Muntermann. 2013. A method for taxonomy development and its application in information systems. EJIS 22, 3 (2013), 336–359. Google ScholarGoogle ScholarCross RefCross Ref
  47. A. A. Pal and M. B. Thompson. 1989. An advanced interface to a switching software version management system. In Proceedings of the 7th International Conference on Software Engineering for Telecommunication Switching Systems (SETSS) .Google ScholarGoogle Scholar
  48. David Parnas. 1976. On the design and development of program families. IEEE Transactions on Software Engineering SE-2, 1 (July 1976), 1–9. Google ScholarGoogle ScholarDigital LibraryDigital Library
  49. Marc J. Rochkind. 1975. The Source Code Control System. IEEE Trans. Softw. Eng. 1, 1 (March 1975), 364–370. Google ScholarGoogle ScholarDigital LibraryDigital Library
  50. N. Sarnak, R. Bernstein, and V Kruskal. 1988. Creation and maintenance of multiple versions. In Workshop on Software Version and Configuration Control .Google ScholarGoogle Scholar
  51. Klaus Schmid, Rick Rabiser, and Paul Grünbacher. 2011. A Comparison of Decision Modeling Approaches in Product Lines. In Proceedings of the 5th Workshop on Variability Modeling of Software-Intensive Systems (VaMoS ’11) . ACM, New York, NY, USA, 119–126. Google ScholarGoogle ScholarDigital LibraryDigital Library
  52. Felix Schwägerl and Bernhard Westfechtel. 2016. Collaborative and Distributed Management of Versioned Model-driven Software Product Lines. In Proceedings of the 11th International Joint Conference on Software Technologies (ICSOFT 2016) – Volume 2: ICSOFT-PT, Lisbon, Portugal, July 24-26 . 83–94. Google ScholarGoogle ScholarCross RefCross Ref
  53. Felix Schwägerl and Bernhard Westfechtel. 2016. SuperMod: tool support for collaborative filtered model-driven software product line engineering. In Proceedings of the 31st IEEE/ACM International Conference on Automated Software Engineering, Singapore, September 3-7 (ASE 2016) . 822–827. Google ScholarGoogle ScholarDigital LibraryDigital Library
  54. Nieraj Singh, Celina Gibbs, and Yvonne Coady. 2007. C-CLR: A Tool for Navigating Highly Configurable System Software. In Proceedings of the 6th Workshop on Aspects, Components, and Patterns for Infrastructure Software (ACP4IS) . Google ScholarGoogle ScholarDigital LibraryDigital Library
  55. Software Maintenance & Development Systems, Inc. 1990. Aide de Camp Product Overview. Concord, Massachusetts. (Sept. 1990).Google ScholarGoogle Scholar
  56. Henry Spencer and Collyer Geoff. 1992. #ifdef Considered Harmful, or Portability Experience With C News. In USENIX Summer Technical Conference . 185–198.Google ScholarGoogle Scholar
  57. Stefan Stanciulescu, Thorsten Berger, Eric Walkingshaw, and Andrzej Wasowski. 2016. Concepts, Operations, and Feasibility of a ProjectionBased Variation Control System. In Proceedings IEEE International Conference on Software Maintenance and Evolution, Raleigh, NC, USA, October 2-7 (ICSME 2016,) . 323–333.Google ScholarGoogle Scholar
  58. Walter Tichy. 1988. Software Configuration Management Overview. Technical Report.Google ScholarGoogle Scholar
  59. Alexander von Rhein, Thomas Thüm, Ina Schaefer, Jörg Liebig, and Sven Apel. 2016. Variability encoding: From compile-time to load-time variability. Journal of Logical and Algebraic Methods in Programming 85, 1 (2016), 125–145. Formal Methods for Software Product Line Engineering. Google ScholarGoogle ScholarCross RefCross Ref
  60. Eric Walkingshaw and Klaus Ostermann. 2014. Projectional editing of variational software. In Generative Programming: Concepts and Experiences, GPCE’14, Västerås, Sweden, September 15-16 . 29–38. Google ScholarGoogle ScholarDigital LibraryDigital Library
  61. Alf Inge Wang, Jens-Otto Larsen, Reidar Conradi, and Bjørn P. Munch. 1998. Improving Cooperation Support in the EPOS CM System. In Proceedings 6th European Workshop on Software Process Technology, Weybridge, UK, September 16–18 (EWSPT’98) . Springer Berlin Heidelberg, 75–91. Google ScholarGoogle ScholarCross RefCross Ref
  62. Bernhard Westfechtel, Bjørn P. Munch, and Reidar Conradi. 2001. A Layered Architecture for Uniform Version Management. IEEE Trans. Software Eng. 27, 12 (2001), 1111–1133. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. A classification of variation control systems

    Recommendations

    Comments

    Login options

    Check if you have access through your login credentials or your institution to get full access on this article.

    Sign in

    Full Access

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader
    About Cookies On This Site

    We use cookies to ensure that we give you the best experience on our website.

    Learn more

    Got it!