The constantly increasing demand for new and up-to-date software solutions compels software practitioners to develop and maintain customizable software systems while assuring an high level of quality and reliability. While Software Product Lines (SPLs) are a solution towards this goal, many variability-rich software systems are not organized as...
-
December 20, 2022 (v1)PublicationUploaded on: February 22, 2023
-
September 6, 2021 (v1)Conference paper
As its variability management architecture is complex, the Linux kernel is a constant subject of study for analyzing different aspects of its variability. It relies on a configuration-aware build system, preprocessor directives in the code, and a configuration tool. While many studies have focused on detecting anomalies within these parts or...
Uploaded on: December 4, 2022 -
September 6, 2021 (v1)Conference paper
Variability-rich object-oriented systems are often not organized as fully-fledged software product lines, and implement their variability in a single code base using the mechanisms provided by the supporting language (e.g., inheritance overloading, design patterns). This makes variability identification and management very difficult. In this...
Uploaded on: December 4, 2022 -
July 12, 2021 (v1)Publication
This technical report comes as a companion to "Capturing the diversity of analyses on the Linux kernel variability" published at SPLC '21. In this report, we present additional inconsistencies in terminologies found in the state-of-the-art. We also give the exhaustive list of anomalies present in the five studied papers and detail the...
Uploaded on: December 4, 2022 -
October 19, 2020 (v1)Conference paper
Variability is present in most modern object-oriented software-intensive systems, despite that they commonly do not follow a product line approach. In these systems, variability is implicit and hardly documented as it is implemented by different traditional mechanisms, namely inheritance, overloading, or design patterns. This hampers...
Uploaded on: December 4, 2022 -
September 9, 2019 (v1)Conference paper
When variability is implemented into a single variability-rich system with object-oriented techniques (e.g., inheritance, overloading , design patterns), the variation points and variants usually do not align with the domain features. It is then very hard and time consuming to manually identify these variation points to manage variability at...
Uploaded on: December 4, 2022 -
September 9, 2019 (v1)Conference paper
In many variability-intensive systems, variability is implemented in code units provided by a host language, such as classes or functions, which do not align well with the domain features. Annotating or creating an orthogonal decomposition of code in terms of features implies extra effort, as well as massive and cumbersome refactoring...
Uploaded on: December 4, 2022 -
February 5, 2020 (v1)Conference paper
In Software Product Line (SPL) engineering, mapping domain features to existing code assets is essential for variability management. When variability is already implemented through Object-Oriented (OO) techniques, it is too costly and error-prone to refactor assets in terms of features or to use feature annotations. In this work, we delve into...
Uploaded on: December 4, 2022 -
February 9, 2024 (v1)Publication
In many variability-intensive systems, variability is implemented in code units provided by a host language, such as classes or functions, which do not align well with the domain features. Annotating or creating an orthogonal decomposition of code in terms of features implies extra effort, as well as massive and cumbersome refactoring...
Uploaded on: February 16, 2024 -
September 12, 2022 (v1)Conference paper
Object-Oriented (OO) variability-rich software systems often implement their variability in a single codebase, using the mechanisms provided by the host language (i.e., inheritance, overloading, design patterns). This variability is not documented and buried deep down in the code, thus impeding its identification and making it especially prone...
Uploaded on: December 3, 2022 -
September 12, 2022 (v1)Conference paper
Many large-scale software systems intensively implement variability to reuse software and speed up development. Such mechanisms, however, bring additional complexity, which eventually leads to technical debt, threatening the software quality, and hampering maintenance and evolution. This is especially the case for variability-rich...
Uploaded on: December 3, 2022 -
2023 (v1)Journal article
While many large-scale software systems intensively implement variability to reuse software and speed up development, they often do not document it, hampering its comprehension. This is especially the case for variability-rich object-oriented (OO) systems that heavily rely on existing OO mechanisms (i.e., inheritance, overloading and some...
Uploaded on: November 25, 2023 -
June 6, 2021 (v1)Conference paper
In the last two decades, the Linked Open Data paradigm has been experiencing exponential growth. Regularly, new datasets and ontologies are made publicly available, and novel projects are initiated to stimulate their continuous development and reuse, pushing more and more actors to adhere to the Semantic Web principles. The guidelines provided...
Uploaded on: December 4, 2022 -
September 27, 2021 (v1)Conference paper
Many large software systems are variability-rich, object-oriented, and implemented in a single code base. They then rely on multiple traditional techniques (inheritance, patterns) to realize variability, making these implementations not explicit. This directly hampers the comprehension of variability implementations, especially for newcomers in...
Uploaded on: December 4, 2022 -
February 9, 2024 (v1)Publication
Many large software systems are variability-rich, object-oriented, and implemented in a single code base. They then rely on multiple traditional techniques (inheritance, patterns) to realize variability, making these implementations not explicit. This directly hampers the comprehension of variability implementations, especially for newcomers in...
Uploaded on: February 16, 2024 -
February 24, 2022 (v1)Journal article
Most modern object-oriented software systems are variability-rich, despite that they may not be developed as product lines. Their variability is implemented by several traditional techniques in combination, such as inheritance, overloading, or design patterns. As domain features or variation points with variants are not a by-product of these...
Uploaded on: December 3, 2022 -
September 6, 2021 (v1)Conference paper
Many variability-rich object-oriented systems rely on multiple traditional techniques (inheritance, patterns) to implement their variability in a single codebase. These variability implementation places are neither explicit nor documented, hampering their detection and variability comprehension. Based on the identification of symmetry property...
Uploaded on: December 4, 2022 -
2025 (v1)Journal article
In object-oriented variability-rich software systems, the implemented variability often relies on traditional mechanisms (i.e., inheritance, overloading, and design patterns). It is then not well-documented and buried in a single codebase, hampering its comprehension and maintenance. VariCity helps developers understand the implemented...
Uploaded on: October 9, 2024