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.
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- Sven Apel, Don Batory, Christian Kästner, and Gunter Saake. 2013. Feature-Oriented Software Product Lines . Springer, Berlin Heidelberg. Google Scholar
Cross Ref
- Sven Apel and Christian Kästner. 2009. An Overview of FeatureOriented Software Development. J. Object Techn. 8, 5 (2009), 49–84. Google Scholar
Cross Ref
- 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 Scholar
Cross Ref
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Cross Ref
- 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 Scholar
Digital Library
- 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 Scholar
- Paul Clements and Linda Northrop. 2001. Software Product Lines: Practices and Patterns . Addison-Wesley, Boston, MA.Google Scholar
- Reidar Conradi and Bernhard Westfechtel. 1998. Version Models for Software Configuration Management. ACM Comput. Surv. 30, 2 (1998), 232–282. Google Scholar
Digital Library
- 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 Scholar
- Randall D. Cronk. 1992. Tributaries and Deltas. BYTE 17, 1 (1992), 177–186.Google Scholar
Digital Library
- Krzysztof Czarnecki and Ulrich W. Eisenecker. 2000. Generative Programming: Methods, Tools, and Applications . Addison-Wesley, Boston, MA.Google Scholar
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- J. M. Favre. 1996. Preprocessors from an abstract point of view. In Proceedings of the Third Working Conference on Reverse Engineering . 287–296.Google Scholar
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- Per Holager. 1988. Elements of the design of a change oriented configuration management tool . Technical Report STF44-A88023. ELAB, SINTEF, Trondheim, Norway.Google Scholar
- 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 Scholar
- 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 Scholar
Digital Library
- 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 Scholar
- Vincent J. Kruskal. 1984. Managing Multi-Version Programs with an Editor. IBM Journal of Research and Development 28, 1 (1984), 74–81. Google Scholar
Digital Library
- 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 Scholar
Cross Ref
- Anund Lie. 1990. Versioning in Software Engineering Databases. Ph.D. Dissertation. The Norwegian Institute of Technology.Google Scholar
- 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 Scholar
Digital Library
- Lukas Linsbauer. 2016. Managing and Engineering Variability Intensive Systems . Ph.D. Dissertation. Johannes Kepler University Linz.Google Scholar
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- Lukas Linsbauer, Roberto Erick Lopez-Herrejon, and Alexander Egyed. 2016. Variability extraction and modeling for product variants. Software & Systems Modeling (29 Jan 2016).Google Scholar
- 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 Scholar
- 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 Scholar
- 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 Scholar
Digital Library
- Bjørn P. Munch. 1993. Versioning in a Software Engineering Database – The Change Oriented Way . Ph.D. Dissertation. The Norwegian Institute of Technology.Google Scholar
- 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 Scholar
Digital Library
- 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 Scholar
- 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 Scholar
Cross Ref
- 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 Scholar
- David Parnas. 1976. On the design and development of program families. IEEE Transactions on Software Engineering SE-2, 1 (July 1976), 1–9. Google Scholar
Digital Library
- Marc J. Rochkind. 1975. The Source Code Control System. IEEE Trans. Softw. Eng. 1, 1 (March 1975), 364–370. Google Scholar
Digital Library
- N. Sarnak, R. Bernstein, and V Kruskal. 1988. Creation and maintenance of multiple versions. In Workshop on Software Version and Configuration Control .Google Scholar
- 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 Scholar
Digital Library
- 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 Scholar
Cross Ref
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- Software Maintenance & Development Systems, Inc. 1990. Aide de Camp Product Overview. Concord, Massachusetts. (Sept. 1990).Google Scholar
- Henry Spencer and Collyer Geoff. 1992. #ifdef Considered Harmful, or Portability Experience With C News. In USENIX Summer Technical Conference . 185–198.Google Scholar
- 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 Scholar
- Walter Tichy. 1988. Software Configuration Management Overview. Technical Report.Google Scholar
- 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 Scholar
Cross Ref
- 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 Scholar
Digital Library
- 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 Scholar
Cross Ref
- 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 Scholar
Digital Library
Index Terms
A classification of variation control systems
Recommendations
A classification of variation control systems
GPCE 2017: Proceedings of the 16th ACM SIGPLAN International Conference on Generative Programming: Concepts and ExperiencesVersion 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 ...
Design for the analysis of variability management in the industry
SPLC '22: Proceedings of the 26th ACM International Systems and Software Product Line Conference - Volume BSoftware Product Lines (SPL) enable systematic reuse within an organization, which reduces costs, effort, development time and the average number of defects per product. However, there is no empirical evidence on the adoption of SPLs in software ...
Towards Efficient Analysis of Variation in Time and Space
SPLC '19: Proceedings of the 23rd International Systems and Software Product Line Conference - Volume BVariation is central to today's software development. There are two fundamental dimensions to variation: Variation in time refers to the fact that software exists in numerous revisions that typically replace each other (i.e., a newer version supersedes ...







Comments