Variability-Aware Patching of Software Product-Line Variants: Master’s Thesis

To develop different variants of a software it is common to clone and adapt a software product and develop the original and its clones further independently. Then, propagat- ing changes from one cloned variant to another cloned variant becomes increasingly chal- lenging as the variants diverge over time. Even if patches between clones are shared such that all clones are up to date, merely applying a patch is often impossible with conven- tional patching tools. The reason is that there are intended differences between variants so that not all changes must be propagated, but conventional patchers always try to apply all changes. Software product-line engineering seeks to solve the problems of clone-and-own by advocating software mass customization by generating variants from a single unified code base in which a feature-to-code mapping documents to which feature and hence variant each code element belongs to. Yet, software-product line engineering provides no method to keep existing clones up to date. In this thesis, we introduce a formal specification and implementation of variability- aware patching to propagate changes made to a source variant to a target variant, whereby the source and target variant are up to date and both contain variability information in form of feature-to-code mappings. Our results from the formal specification show how we can decide if all relevant changes are applied to the target variant, and that target vari- ant specific code did not change. As a correct patching result might not be unique, we contribute a definition when two versions of one variant are alignment-equivalent. Our variability-aware patching algorithm transforms an input patch so that we receive a patch that propagates all desired changes to the target variant. To evaluate if our patching algo- rithm is correct, we generate 35, 632 patching scenarios from the real-world open-source software product line BusyBox, to simulate change propagation scenarios. We compare our patching algorithm to the conventional patch tool Unix patch, and to the matching-based patch tool mpatch in terms of accuracy. Since our patching algorithm has an accuracy of 87.8%, whereas Unix patch and mpatch achieve an accuracy of at most 72.9% and 68.1%, re- spectively, we confirm the hypothesis that variability-aware patching can propagate more changes made to a source variant successfully to a target variant

Authors

Institutions

Publication Details

Journal
Digitale Bibliothek Braunschweig (Verbundzentrale Göttingen (VZG))
Published
2026-01-26
DOI
https://doi.org/10.24355/dbbs.084-202601261145-0
Primary Topic
Advanced Software Engineering Methodologies
Type
article
Field-Weighted Citation Impact
0.00
Controls
|||
ALL TIME
JAN
FEB
MAR
APR
MAY
JUN
JUL
AUG
SEP
OCT
article

Variability-Aware Patching of Software Product-Line Variants: Master’s Thesis

Pia Meier
Digitale Bibliothek Braunschweig (Verbundzentrale Göttingen (VZG))
Advanced Software Engineering Methodologies
article

Variability-Aware Patching of Software Product-Line Variants: Master’s Thesis

Pia Meier
article en

Abstract

To develop different variants of a software it is common to clone and adapt a software product and develop the original and its clones further independently. Then, propagat- ing changes from one cloned variant to another cloned variant becomes increasingly chal- lenging as the variants diverge over time. Even if patches between clones are shared such that all clones are up to date, merely applying a patch is often impossible with conven- tional patching tools. The reason is that there are intended differences between variants so that not all changes must be propagated, but conventional patchers always try to apply all changes. Software product-line engineering seeks to solve the problems of clone-and-own by advocating software mass customization by generating variants from a single unified code base in which a feature-to-code mapping documents to which feature and hence variant each code element belongs to. Yet, software-product line engineering provides no method to keep existing clones up to date. In this thesis, we introduce a formal specification and implementation of variability- aware patching to propagate changes made to a source variant to a target variant, whereby the source and target variant are up to date and both contain variability information in form of feature-to-code mappings. Our results from the formal specification show how we can decide if all relevant changes are applied to the target variant, and that target vari- ant specific code did not change. As a correct patching result might not be unique, we contribute a definition when two versions of one variant are alignment-equivalent. Our variability-aware patching algorithm transforms an input patch so that we receive a patch that propagates all desired changes to the target variant. To evaluate if our patching algo- rithm is correct, we generate 35, 632 patching scenarios from the real-world open-source software product line BusyBox, to simulate change propagation scenarios. We compare our patching algorithm to the conventional patch tool Unix patch, and to the matching-based patch tool mpatch in terms of accuracy. Since our patching algorithm has an accuracy of 87.8%, whereas Unix patch and mpatch achieve an accuracy of at most 72.9% and 68.1%, re- spectively, we confirm the hypothesis that variability-aware patching can propagate more changes made to a source variant successfully to a target variant

Digitale Bibliothek Braunschweig (Verbundzentrale Göttingen (VZG))
Institut für Umformtechnik (Germany) (DE)
Openalex Percentile: Top 78%
Advanced Software Engineering Methodologies
AI Navigator

Ask Laika to Summarize, Analyze, and Connect papers live on the map.

Summarize Papers & Methodologies

Extract key findings, datasets, and comparative methods across publications.

Benchmark Rankings & Visual Analytics

Rank top research institutions, authors, funders, topics, and journals by Field-Weighted Citation Impact (FWCI) and paper volume with instant charts.

Connect Distant Disciplines

Bridge topological clusters on the map to find hidden collaborative intersections.