Concepts of variation control systems
Artikel i vetenskaplig tidskrift, 2021

Version control systems are an integral part of today's software engineering. They facilitate the collaborative management of revisions (sequential versions) and variants (concurrent versions) of software systems under development. Typical version control systems maintain revisions of files and variants of whole software systems. Variants are supported via branching or forking mechanisms that conceptually clone whole systems in a coarse-grained way. Unfortunately, such cloning leads to high maintenance efforts. To avoid these disadvantages and support fine-grained variation, developers need to employ custom configuration mechanisms, which leads to a misappropriation of tools and undesired context switches. Addressing this trade-off, a number of variation control systems has been conceived, providing a richer set of capabilities for handling variants. Variation control systems decompose a software system into finer-grained variable entities and offer high-level metaphors to automatically manage this variability. In this paper, we classify and compare variation control systems and illustrate their core concepts and characteristics. All investigated variation control systems offer an iterative (checkout–modify–commit) workflow, but there are essential differences affecting developers. We highlight challenges and discuss research perspectives for developing the next generation of version and variation control systems.

Software product lines

Configuration management

Variability management

Version control

Software repositories

Författare

Lukas Linsbauer

Technische Universität Braunschweig

Felix Schwägerl

Universität Bayreuth

Thorsten Berger

Chalmers, Data- och informationsteknik, Software Engineering, Software Engineering for Cyber Physical Systems

Paul Grünbacher

Johannes Kepler Universität Linz (JKU)

Journal of Systems and Software

0164-1212 (ISSN)

Vol. 171 January 2021 110796

Ämneskategorier

Programvaruteknik

Inbäddad systemteknik

Datorsystem

DOI

10.1016/j.jss.2020.110796

Mer information

Senast uppdaterat

2020-11-17