VariantSync
Externer Inhalt
Um diesen Inhalt zu verwenden (Quelle: www.xyz.de ), klicken Sie bitte auf Akzeptieren. Wir möchten Sie darauf hinweisen, dass durch die Annahme dieser IFrames Daten an Dritte übertragen oder Cookies gespeichert werden könnten.
Weitere Informationen finden Sie in unserer Datenschutzerklärung.
Automating the Synchronisation of Software Variants
Today’s software is often released in multiple variants to meet all customer requirements. Software product lines have the potential to decrease development costs and time-to-market, and have been actively researched for more than two decades. Nevertheless, practitioners frequently rely on ad-hoc reuse based on a principle which is known as clone-and-own, where new variants of a software family are created by copying and adapting an existing variant. However, if a critical number of variants is reached, their maintenance and evolution becomes impractical, if not impossible, and the migration to a product line is often infeasible. With the research conducted in VariantSync, we aim to enable a fundamentally new development approach which bridges the gap between clone-and-own and product lines, combining the minimal overhead of clone-and-own with the systematic handling of variability of software product lines in a highly flexible methodology. The key idea is to transparently integrate the central product-line concept of a feature with variant management facilities known from version control systems in order to automatically synchronize a set of evolving variants. Lifting the underlying techniques employed by version control systems to the abstraction level of features which are shared among variants is an open problem and the main research challenge addressed in VariantSync. We believe that our research results have the potential to effectively change the way how practitioners will develop multi-variant software systems for which it is hard to foresee which variants will be added or released in the future.
Fig. 1: VariantSync aims to bridge the gap between clone-and-own and product lines.
Project Overview
The state-of-practice in engineering multi-variant software systems often follows a common pattern: The development starts with a single variant, where the overhead of product lines does not pay off. Later, further variants are added by copying and adapting an existing variant, and all of these forked variants evolve in parallel; a principle which is generally known as clone-and-own. However, if a critical number of variants is reached, maintaining such a software family becomes impractical. Moreover, migration to a product line involves so much effort to recover commonalities and differences between variants that it does not pay off when adding just a single variant. As it is typically unknown which and how much variants are added or released in the future, further variants are developed by means of clone-and-own, thus migration to a product line becomes increasingly impractical and the maintenance costs explode.
With the proposed research project VariantSync, we aim to overcome this dilemma through a fundamentally new development approach which bridges the gap between clone-and-own and product lines. The goal is to get rid of the limitations of both approaches while preserving their advantages. Specifically, we want to combine and integrate the minimal overhead of clone-and-own with the systematic handling of variability of software product lines in a highly flexible methodology. Instead of forcing developers to employ a heavyweight software product-line process, we transparently support their on-going development with concepts and techniques from software product-line engineering and version control systems. In our envisioned method, software development is performed according to a session-oriented editing model where the technical features being touched during an editing session are made explicit by developers. This way, software artifacts of all variants shall be mapped to a common set of features with minimal input by developers. The gathered domain knowledge shall be exploited to support the synchronization of variants during evolution, i.e., improvements in one variant shall be propagated to all other variants sharing the affected features in a highly automated fashion. Finally, the domain knowledge shall also serve as a basis for automatically creating variants that implement a new feature combination.
Fig. 1 illustrates how VariantSync bridges the gap between clone-and-own and product lines w.r.t. three dimensions, emphasizing the flexibility as well as the novel characteristics of our proposed methodology. First, Fig. 1(a) focuses on the degree of completeness of feature mappings. Whereas each artifact of a product line is mapped to features (blue spot in the upperright), there is no such mapping for clone-and-own (red spot in the lower-left). With VariantSync (green area in-between), any percentage of both existing and newly developed artifacts may be mapped to features. Second, Fig. 1(b) shows the extent to which artifacts implementing the same feature are synchronized among the variants, and the delay of such a synchronization. As artifacts are reused across variants in product lines, all possible variants are instantly synchronized (blue spot in the lower-right). With clone-and-own, changes to artifacts in one variant are propagated to other dedicated variants on demand, typically leading to a very few variants being synchronized at a certain point of time (red area next to the y-axis). VariantSync (green area in-between) will enable the synchronization of changes into any subset of variants at any time. Finally, Fig. 1(c) addresses the organization of the development of a family of software variants. With product lines, release cycles of variants need to be identical and developers are responsible for features. In clone-and-own, release cycles of variants are often not aligned and developers are typically responsible for variants rather than features. VariantSync (green area in-between) enables arbitrary release cycles of individual variants and supports the concurrent development of both features and variants.
Fig. 2: Illustration of the approach and research goals.
Research Vision and Approach
Research Vision — Our overall goal is to establish a new methodology for the development, maintenance, and evolution of multi-variant software systems. It combines the flexibility of clone-and-own with the systematic handling of variability of software product lines, while keeping the standard version space organization of parallel development branches to remain compatible with mainstream version control systems and to avoid organizational constraints induced by a centrally managed software platform. The key idea is to transparently integrate the central product-line concepts of features and configurations with variant management facilities known from version control systems to automatically synchronize a set of evolving variants and to generate new variants.
Approach — To gather basic domain knowledge on features and configurations, we rely on two reasonable assumptions which are justified within in the literature. First, we assume that developers agree on a common nomenclature for the domain (i.e., features) and, for a given variant, the respective developers know which subset of features is implemented by that variant, as assumed by others. The set of available features is typically specified by the product documentation, and can also be retrieved from other departments within an organization (e.g., the sales department knows about product features). Second, we assume that developers know which feature or feature interaction they are working on, as assumed by others. Kästner et al. argue that developers typically have this piece of domain knowledge, and expert interviews on industrial clone-and-own show that it is most pronounced during implementation.
Our development methodology follows a session-oriented editing model, in which features being touched during an editing session are made explicit by developers in terms of a propositional formula over features referred to as feature context of that editing session. This is illustrated in Fig. 2, using a snapshot of the development of a simple graph management software. The snapshot comprises four features and four variants implementing different configurations (top right). The historical evolution of these variants is shown by the revision graph in the upper left, annotated by the feature contexts which led to the repository revisions r6, r8, r10 and r12. Feature contexts and configurations can be used to identify the target variants which need to be synchronized in response to evolution steps. For example, no synchronization is needed in response to the evolution step leading to revision r6, as it affects the feature OptimalC which is only comprised by the modified variant v4. In contrast, the changes to the shared feature Graph in the evolution step leading to revision r10 need to be propagated to all other variants. The change resulting in revision r12 needs to be propagated to two variants, whereas the synchronization of variant v1 cannot be performed automatically due to synchronization conflicts (red arrow). The feature context is not only used to determine target variants, but also to establish a mapping from features to artifacts in the currently edited variant as well as in other variants (bottom right). This feature mapping may also be employed to derive new variants and to reconfigure existing variants. For example, we may obtain a new variant comprising the features Directed and Weighted by starting from variant v1 and transferring an implementation of feature Weighted from variant v3 or v4, or by starting from variant v4 and deleting all parts related to feature OptimalConnection.
We describe our vision for Bridging the Gap Between Clone-and-Own and Software Product Lines with VariantSync in our ICSE-NIER paper.
Find it here.
2024
Variability-Aware Differencing with DiffDetective
Companion Proc. Int'l Conference on the Foundations of Software Engineering (FSE Companion), Seite 632-636
Herausgeber: ACM, New York, NY, USA
Juli 2024
DOI: | 10.1145/3663529.3663813 |
ISBN: | 9798400706585 |
Explaining Edits to Variability Annotations in Evolving Software Product Lines
Proc. Int'l Working Conf. on Variability Modelling of Software-Intensive Systems (VaMoS), Seite 93-102
Herausgeber: ACM, New York, NY, USA
Februar 2024
DOI: | 10.1145/3634713.3634725 |
Datei: | https://github.com/SoftVarE-Group/Papers/raw/main/2024/2024-VaMoS-Guething.pdf |
2023
RaQuN: A Generic and Scalable N-Way Model Matching Algorithm
Software and Systems Modeling (SoSyM) :1495-1517
Oktober 2023
Herausgeber: Springer
DOI: | 10.1007/s10270-022-01062-5 |
Datei: | https://github.com/SoftVarE-Group/Papers/raw/main/2023/2023-SoSyM-Schultheiss.pdf |
VariantInc: Automatically Pruning and Integrating Versioned Software Variants
Proc. Int'l Systems and Software Product Line Conf. (SPLC), Seite 129-140
Herausgeber: ACM, New York, NY, USA
August 2023
DOI: | 10.1145/3579027.3608984 |
ISBN: | 9798400700910 |
Datei: | https://github.com/SoftVarE-Group/Papers/raw/main/2023/2023-SPLC-Krieter.pdf |
Views on Edits to Variational Software
Proc. Int'l Systems and Software Product Line Conf. (SPLC), Seite 141-152
Herausgeber: ACM, New York, NY, USA
August 2023
DOI: | 10.1145/3579027.3608985 |
ISBN: | 9798400700910 |
Datei: | https://github.com/SoftVarE-Group/Papers/raw/main/2023/2023-SPLC-Bittner.pdf |
Classifying Edits to Variability in Source Code - Summary
Proc. Software Engineering (SE), Seite 39-40
Herausgeber: Gesellschaft für Informatik, Bonn, Germany
Februar 2023
ISBN: | 978-3-88579-726-5 |
Datei: | https://github.com/SoftVarE-Group/Papers/raw/main/2023/2023-SE-Bittner.pdf |
It's Your Loss: Classifying Information Loss During Variability Model Roundtrip Transformations - Summary
Proc. Software Engineering (SE), Seite 51-52
Herausgeber: Gesellschaft für Informatik, Bonn, Germany
Februar 2023
Datei: | https://github.com/SoftVarE-Group/Papers/raw/main/2023/2023-SE-Feichtinger.pdf |
Quantifying the Potential to Automate the Synchronization of Variants in Clone-and-Own - Summary
Proc. Software Engineering (SE), Seite 109-110
Herausgeber: Gesellschaft für Informatik, Bonn, Germany
Februar 2023
Datei: | https://github.com/SoftVarE-Group/Papers/raw/main/2023/2023-SE-Schultheiss.pdf |
Variational Satisfiability Solving: Efficiently Solving Lots of Related SAT Problems - Summary
Proc. Software Engineering (SE), Seite 129-130
Herausgeber: Gesellschaft für Informatik, Bonn, Germany
Februar 2023
Datei: | https://github.com/SoftVarE-Group/Papers/raw/main/2023/2023-SE-Young.pdf |
Benchmark Generation With VEVOS: A Coverage Analysis of Evolution Scenarios in Variant-Rich Systems
Proc. Int'l Working Conf. on Variability Modelling of Software-Intensive Systems (VaMoS), Seite 13-22
Herausgeber: ACM, New York, NY, USA
Januar 2023
DOI: | 10.1145/3571788.3571793 |
ISBN: | 9798400700019 |
Datei: | https://github.com/SoftVarE-Group/Papers/raw/main/2023/2023-VaMoS-Schultheiss.pdf |
Evaluating State-of-the-Art #SAT Solvers on Industrial Configuration Spaces
Empirical Software Engineering (EMSE) :38
Januar 2023
Herausgeber: Springer
DOI: | 10.1007/s10664-022-10265-9 |
Datei: | https://github.com/SoftVarE-Group/Papers/raw/main/2023/2023-EMSE-Sundermann.pdf |
2022
Classifying Edits to Variability in Source Code
Proc. Europ. Software Engineering Conf./Foundations of Software Engineering (ESEC/FSE), Seite 196-208
Herausgeber: ACM, New York, NY, USA
November 2022
DOI: | 10.1145/3540250.3549108 |
ISBN: | 9781450394130 |
Datei: | https://github.com/SoftVarE-Group/Papers/raw/main/2022/2022-ESECFSE-Bittner.pdf |
Variational Satisfiability Solving: Efficiently Solving Lots of Related SAT Problems
Empirical Software Engineering (EMSE) :53
November 2022
Herausgeber: Springer
DOI: | 10.1007/s10664-022-10217-3 |
Quantifying the Potential to Automate the Synchronization of Variants in Clone-and-Own
Proc. Int'l Conf. on Software Maintenance and Evolution (ICSME), Seite 269-280
Herausgeber: IEEE, Piscataway, NJ, USA
Oktober 2022
DOI: | 10.1109/ICSME55016.2022.00032 |
Datei: | https://github.com/SoftVarE-Group/Papers/raw/main/2022/2022-ICSME-Schultheiss.pdf |
Derivation of Subset Product Lines in FeatureIDE
Proc. Int'l Systems and Software Product Line Conf. (SPLC), Seite 38-41
Herausgeber: ACM, New York, NY, USA
September 2022
DOI: | 10.1145/3503229.3547033 |
ISBN: | 9781450392068 |
Datei: | https://github.com/SoftVarE-Group/Papers/raw/main/2022/2022-SPLC-Linsbauer.pdf |
It's Your Loss: Classifying Information Loss During Variability Model Roundtrip Transformations
Proc. Int'l Systems and Software Product Line Conf. (SPLC), Seite 67-78
Herausgeber: ACM, New York, NY, USA
September 2022
DOI: | 10.1145/3546932.3546990 |
ISBN: | 9781450394437 |
Datei: | https://github.com/SoftVarE-Group/Papers/raw/main/2022/2022-SPLC-Feichtinger.pdf |
Tutorial on the Universal Variability Language
Proc. Int'l Systems and Software Product Line Conf. (SPLC), Seite 260:1
Herausgeber: ACM, New York, NY, USA
September 2022
DOI: | 10.1145/3546932.3547024 |
ISBN: | 9781450394437 |
Datei: | https://github.com/SoftVarE-Group/Papers/raw/main/2022/2022-SPLC-Sundermann.pdf |
Simulating the Evolution of Clone-and-Own Projects With VEVOS
Proc. Int'l Conf. on Evaluation Assessment in Software Engineering (EASE), Seite 231-236
Herausgeber: ACM, New York, NY, USA
Juni 2022
DOI: | 10.1145/3530019.3534084 |
ISBN: | 9781450396134 |
Datei: | https://github.com/SoftVarE-Group/Papers/raw/main/2022/2022-EASE-Schultheiss.pdf |
Feature Trace Recording - Summary
Proc. Software Engineering (SE), Seite 19-20
Herausgeber: Gesellschaft für Informatik, Bonn, Germany
Februar 2022
DOI: | 10.18420/se2022-ws-002 |
Datei: | https://github.com/SoftVarE-Group/Papers/raw/main/2022/2022-SE-Bittner.pdf |
Scalable N-Way Model Matching Using Multi-Dimensional Search Trees - Summary
Proc. Software Engineering (SE), Seite 83-84
Herausgeber: Gesellschaft für Informatik, Bonn, Germany
Februar 2022
DOI: | 10.18420/se2022-ws-028 |
Datei: | https://github.com/SoftVarE-Group/Papers/raw/main/2022/2022-SE-Schultheiss.pdf |
2021
Scalable N-Way Model Matching Using Multi-Dimensional Search Trees
Proc. Int'l Conf. on Model Driven Engineering Languages and Systems (MODELS), Seite 1-12
Herausgeber: IEEE, Washington, DC, USA
Oktober 2021
DOI: | 10.1109/MODELS50736.2021.00010 |
Datei: | https://github.com/SoftVarE-Group/Papers/raw/main/2021/2021-MODELS-Schultheiss.pdf |
Integration of UVL in FeatureIDE
Proc. Int'l Workshop on Languages for Modelling Variability (MODEVAR), Seite 73-79
Herausgeber: ACM, New York, NY, USA
September 2021
DOI: | 10.1145/3461002.3473940 |
ISBN: | 9781450384704 |
Datei: | https://github.com/SoftVarE-Group/Papers/raw/main/2021/2021-MODEVAR-Sundermann.pdf |
Yet Another Textual Variability Language? A Community Effort Towards a Unified Language
Proc. Int'l Systems and Software Product Line Conf. (SPLC), Seite 136-147
Herausgeber: ACM, New York, NY, USA
September 2021
DOI: | 10.1145/3461001.3471145 |
ISBN: | 9781450384698 |
Datei: | https://github.com/SoftVarE-Group/Papers/raw/main/2021/2021-SPLC-Sundermann.pdf |
Feature Trace Recording
Proc. Europ. Software Engineering Conf./Foundations of Software Engineering (ESEC/FSE), Seite 1007-1020
Herausgeber: ACM, New York, NY, USA
August 2021
DOI: | 10.1145/3468264.3468531 |
ISBN: | 9781450385626 |
Datei: | https://github.com/SoftVarE-Group/Papers/raw/main/2021/2021-ESECFSE-Bittner.pdf |
Bridging the Gap Between Clone-and-Own and Software Product Lines
Proc. Int'l Conf. on Software Engineering (ICSE), Seite 21-25
Herausgeber: IEEE, Piscataway, NJ, USA
Mai 2021
DOI: | 10.1109/ICSE-NIER52604.2021.00013 |
ISBN: | 978-1-6654-0140-1 |
Datei: | https://github.com/SoftVarE-Group/Papers/raw/main/2021/2021-ICSE-Kehrer.pdf |
Applications of #SAT Solvers on Feature Models
Proc. Int'l Working Conf. on Variability Modelling of Software-Intensive Systems (VaMoS)
Herausgeber: ACM, New York, NY, USA
Februar 2021
DOI: | 10.1145/3442391.3442404 |
ISBN: | 9781450388245 |
Datei: | https://github.com/SoftVarE-Group/Papers/raw/main/2021/2021-VaMoS-Sundermann.pdf |
2020
A BDD for Linux? The Knowledge Compilation Challenge for Variability
Proc. Int'l Systems and Software Product Line Conf. (SPLC)
Herausgeber: ACM, New York, NY, USA
Oktober 2020
DOI: | 10.1145/3382025.3414943 |
ISBN: | 9781450375696 |
Datei: | https://github.com/SoftVarE-Group/Papers/raw/main/2020/2020-SPLC-Thuem.pdf |
A Conceptual Model for Unifying Variability in Space and Time
Proc. Int'l Systems and Software Product Line Conf. (SPLC), Seite 1-12
Herausgeber: ACM, New York, NY, USA
Oktober 2020
DOI: | 10.1145/3382025.3414955 |
ISBN: | 9781450375696 |
On the Use of Product-Line Variants as Experimental Subjects for Clone-and-Own Research: A Case Study
Proc. Int'l Systems and Software Product Line Conf. (SPLC)
Herausgeber: ACM, New York, NY, USA
Oktober 2020
DOI: | 10.1145/3382025.3414972 |
ISBN: | 9781450375696 |
Datei: | https://github.com/SoftVarE-Group/Papers/raw/main/2020/2020-SPLC-Schultheiss.pdf |
Variational Satisfiability Solving
Proc. Int'l Systems and Software Product Line Conf. (SPLC)
Herausgeber: ACM, New York, NY, USA
Oktober 2020
DOI: | 10.1145/3382025.3414965 |
ISBN: | 9781450375696 |
Datei: | https://github.com/SoftVarE-Group/Papers/raw/main/2020/2020-SPLC-Young.pdf |
2019
Towards Efficient Analysis of Variation in Time and Space
Proc. Int'l Workshop on Variability and Evolution of Software-Intensive Systems (VariVolution), Seite 57-64
Herausgeber: ACM, New York, NY, USA
September 2019
DOI: | 10.1145/3307630.3342414 |
ISBN: | 9781450366687 |
Datei: | https://github.com/SoftVarE-Group/Papers/raw/main/2019/2019-VariVolution-Thuem.pdf |
2023
Constructing Variation Diffs Using Tree Diffing Algorithms
Bachelor's Thesis
University of Ulm, Germany
April 2023
DOI: | 10.18725/OPARU-50108 |
Datei: | https://oparu.uni-ulm.de/xmlui/bitstream/handle/123456789/50184/BA_Moosherr.pdf |
Code Clones in Scientific Software: A Case Study on Ray-UI
Bachelor's Thesis
Humboldt-Universität zu Berlin, Germany
Februar 2023
Inkrementelle Extraktion von Feature-Mappings
Bachelor's Thesis
Humboldt-Universität zu Berlin, Germany
Februar 2023
Patching With Matching in Clone-and-Own
Bachelor's Thesis
Humboldt-Universität zu Berlin, Germany
Februar 2023
Inspecting the Evolution of Feature Annotations in Configurable Software
Master's Thesis
University of Ulm, Germany
Januar 2023
2022
Simulating Variant Drift in Product-Line Variants Using AST-Based Refactoring
Bachelor's Thesis
Humboldt-Universität zu Berlin, Germany
November 2022
Reverse Engineering Feature-Aware Commits From Software Product-Line Repositories
Bachelor's Thesis
University of Ulm, Germany
Oktober 2022
DOI: | 10.18725/OPARU-47892 |
Datei: | https://oparu.uni-ulm.de/xmlui/bitstream/handle/123456789/47968/Thesis_Bormann.pdf |
Type-Checking Variability in Clone-and-Own Variants With Product-Line Tooling
Master's Thesis
University of Ulm, Germany
September 2022
Investigating Conflict Scenarios During Change-Propagation in Managed Clone-and-Own
Bachelor's Thesis
Humboldt-Universität zu Berlin, Germany
Juni 2022
Cherry-Picking in Practice
Bachelor's Thesis
Humboldt-Universität zu Berlin, Germany
Januar 2022
2021
Empirical Evaluation of Feature Trace Recording on the Edit History of Marlin
Bachelor's Thesis
University of Ulm, Germany
April 2021
DOI: | 10.18725/OPARU-38603 |
Datei: | https://oparu.uni-ulm.de/xmlui/bitstream/handle/123456789/38679/BA_Viegener.pdf |
2020
Semi-Automated Inference of Feature Traceability During Software Development
Master's Thesis
TU Braunschweig, Germany
Februar 2020
DOI: | 10.24355/dbbs.084-202002271120-0 |
Datei: | https://publikationsserver.tu-braunschweig.de/servlets/MCRFileNodeServlet/dbbs_derivate_00047261/Master_Thesis_Paul_Bittner.pdf |
2018
Recording Feature Mappings During Evolution of Cloned Variants
Master's Thesis
TU Braunschweig, Germany
September 2018
DOI: | 10.24355/dbbs.084-201812191127-0 |
Datei: | https://publikationsserver.tu-braunschweig.de/servlets/MCRFileNodeServlet/dbbs_derivate_00044881/Sontag_Master_Thesis.pdf |
2017
VariantSync: Automating the Synchronization of Software Variants
Project Thesis
TU Braunschweig, Germany
Dezember 2017
Datei: | https://www.youtube.com/watch?v=JMIDvWYvaR0&list=PLBZnGZWZgEBZ8Me6WDQGdQRg438_Z4sl_&index=2 |
2016
Synchronizing Software Variants With VariantSync
Proc. Int'l Systems and Software Product Line Conf. (SPLC), Seite 329-332
Herausgeber: ACM, New York, NY, USA
September 2016
DOI: | 10.1145/2934466.2962726 |
ISBN: | 978-1-4503-4050-2 |
Datei: | https://github.com/SoftVarE-Group/Papers/raw/main/2016/2016-SPLC-Pfofe.pdf |
Automating the Synchronization of Software Variants
Master's Thesis
University of Magdeburg, Germany
Januar 2016
Datei: | https://www.isf.cs.tu-bs.de/cms/team/thuem/downloads/thesisPfofe16.pdf |
2013
Synchronisierung von Software-Varianten mit VariantSync
Master's Thesis
University of Magdeburg, Germany
Januar 2013
Datei: | https://wwwiti.cs.uni-magdeburg.de/iti_db/publikationen/ps/auto/thesisLuo.pdf |