Journal articles, conference and workshop papers, books, and other works, 2008–2026.
Also on Google Scholar, DBLP, HAL, ORCID.
Download everything as BibTeX or Markdown.
Due to their black-box nature, LLMs suffer from limited explainability and a lack of determinism. Their usage cost can also rise, particularly with repetitive tasks on large codebases. To mitigate this, we conduct a novel empirical study targeting three domainspecific languages for transformation rules, namely Comby, GritQL, and Ast-Grep. We evaluate three LLMs (GPT-5.4, GPT-oss-120B, and Llama3.1-8B) on six diverse datasets covering four softwareevolution tasks: API misuse correction, program repair, API migration, and language version migration. Our results provide evidence that transformation rule synthesis moves beyond proof-of-concept with strong frontier models. GPT-5.4 achieves consistently high rule applicability rates and produces transformations closest to the ground truth across most benchmarks. Smaller and open-weight GPT-oss-120B and Llama3.1-8B models remain effective for simpler, localized changes but struggle with complex migration scenarios. We also observe non-negligible generalizability through the usage of meta-variables and through a high reuse score in the first quartile of many datasets. Finally, when compared to the anti-unification algorithm, LLMs outperform it in correctness, but underperform in rule applicability. Overall, our results show great potential for LLMs to generate sound, correct, generalizable, and reusable rules.
BibTeX
@inproceedings{allain2026code,
author = {Allain, Axel and Blot, Aymeric and Khelladi, Djamel Eddine and Acher, Mathieu},
title = {{Code Transformation Rule Synthesis Using LLMs: Potential and Limits}},
booktitle = {{41st IEEE/ACM International Conference on Automated Software Engineering (ASE 2026)}},
pages = {2639--2651},
year = {2026},
month = oct,
address = {Munich, Germany},
doi = {10.1145/3832783.3837504},
url = {https://doi.org/10.1145/3832783.3837504},
eprint = {2609.03592},
archiveprefix = {arXiv}
}
COBOL remains widely deployed, yet representative corpora reflecting real production code are rarely available, limiting rigorous benchmarking of modernization approaches. We propose a systematic agentic AI pipeline for generating realistic COBOL programs, combining specification-driven generation with iterative degradation guided by patterns and complexity targets extracted from real production code. Here, realism is understood as structural fidelity to production code as captured by our metrics. We evaluate whether degradation reaches target complexity levels while preserving business behavior, and examine the limits of the approach, across three programs from distinct business domains. Results show the pipeline reliably produces syntactically valid programs and moves them toward realistic structural complexity. However, preserving business behavior is not always achieved by construction, and targeting structural metrics independently of business logic risks producing programs whose complexity does not reflect a plausible maintenance history. We discuss these limitations and outline a more realistic alternative as a direction for future work, generating legacy programs from scratch along a simulated development history.
BibTeX
@inproceedings{espinasse2026spec2cobolrot,
author = {Espinasse, Jean-Baptiste and Khelladi, Djamel Eddine and Acher, Mathieu},
title = {{Spec2COBOLRot: An Agentic-AI Degradation Loop for Realistic COBOL Corpus Generation}},
booktitle = {{AISM 2026 - 2nd International Workshop on AI for Software Modernization co-located with Automated Software Engineering Conference}},
pages = {9--16},
year = {2026},
month = oct,
address = {Munich, Germany},
doi = {10.1145/3843775.3844543},
url = {https://doi.org/10.1145/3843775.3844543},
eprint = {2609.26835},
archiveprefix = {arXiv}
}
@inproceedings{lebartzlyan2026controlling,
author = {Le Bartz Lyan, Gauthier and Temple, Paul and Clenet, Boris and Acher, Mathieu},
title = {Controlling Variability in Neuroimaging Analysis Pipelines with Software Product Lines},
booktitle = {VARIABILITY 2026 - Software and Systems Reuse, Product Lines, and Configuration},
pages = {160--169},
series = {Lecture Notes in Computer Science},
year = {2026},
month = oct,
publisher = {Springer Nature Switzerland},
address = {Limassol, Cyprus},
doi = {10.1007/978-3-032-40763-4_9},
url = {https://doi.org/10.1007/978-3-032-40763-4_9}
}
Background: Open science practices are increasingly promoted to improve the transparency and reproducibility of biomedical research, and their large-scale monitoring has been identified as a priority by initiatives such as the UNESCO Recommendation on Open Science. Existing automated tools cover only narrow subsets of practices. We developed and validated an automated tool, based on locally run open-weights large language models (LLMs), to extract a core set of 13 open science practices from published medical research articles. Methods: We built a validation database of 303 research articles published in 2020–2021 in 10 major general medical journals, stratified across randomized controlled trials (RCTs), meta-analyses, and other designs. Duplicate manual extraction with expert adjudication served as the reference standard. The pipeline combined document conversion (GROBID), BM25-based chunk retrieval, and classification by three Llama models (3-8B, 3-70B, 3.3-70B) run entirely locally, with and without supplementary materials. Diagnostic performance (sensitivity, specificity, predictive values, F1) was computed against the reference standard. Results: Usable outputs were obtained for 301/303 articles. Performance was heterogeneous across criteria rather than across models: practices reported in standardized statements (conflicts of interest, funding, author contributions, data sharing, pre-registration, reporting guidelines) were extracted reliably (F1 ≥ 0.75 for at least one model), whereas rare or inconsistently reported practices (code sharing, statistical analysis plan, protocol sharing, ORCID, open access status, preprints) remained difficult regardless of model size. Study-type classification exceeded 0.90 on all metrics. Larger models improved several criteria at a 6.6–7.5× computational cost, and adding supplementary materials did not improve performance, mainly due to conversion failures. Conclusions: A fully local, open-weights LLM pipeline can reliably monitor a substantial subset of open science practices. Document conversion and layout heterogeneity, rather than language understanding, constitute the main barrier to scaling automated open science monitoring.
BibTeX
@article{vinatier2026core,
author = {Vinatier, Constant and Freyermuth, Guillaume and Millour, Margaux and Le Bartz Lyan, Gauthier and Buet, Sarah and Lunel, Perrine and Robillard, Nicolas and Naudet, Florian and Acher, Mathieu},
title = {{Core open science practices in major medical journals: development of an automatized tool based on a Large Language Model}},
journal = {{Open Research Europe}},
volume = {6},
pages = {326},
year = {2026},
month = sep,
publisher = {{F1000 Research Limited on behalf of the European Commission}},
doi = {10.12688/openreseurope.24615.1},
url = {https://doi.org/10.12688/openreseurope.24615.1}
}
Importance: Open science practices are essential for improving transparency, reproducibility, and trust in biomedical research. Journals play a critical role in promoting these practices through editorial policies, yet implementation and impact remain unclear. Objective: To evaluate the open science policies of leading medical journals and assess implementation and detectability of practices using automated tools. Design, setting, and participants: This cross-sectional study of journal policies and open science practices evaluated research articles published in 10 leading general medical journals from January 2020 to December 2023. Additionally, the diagnostic accuracy of automated tools was validated against manual extraction. Exposures: Journal policies regarding open science practices and article-level implementation of 13 core practices including registration, protocol sharing, and intention to share data. Main outcomes and measures: Journal policies were assessed using the Transparency and Openness Promotion guidelines (TOP2025). At the article level, 13 core open science practices were examined. Additionally, 9 validated automated tools were applied to detect these practices, and their performance was compared with manual extraction of articles. Results: Overall, 15 624 research articles published in 10 general medical journals were analyzed (validation subset, 312 articles: 103 randomized clinical trials [RCTs], 98 meta-analyses, and 111 with other designs). At the journal level, TOP2025 evaluation identified substantial heterogeneity in policies, primarily applied to clinical trials. At the article level, open science practices were more frequently implemented in RCTs than other designs: registration (RCTs: 99% [95% CI, 97%-100%]; meta-analyses: 69% [95% CI, 56%-79%]; other designs: 16% [95% CI, 9%-26%]), protocol sharing (RCTs: 96% [95% CI, 93%-98%]; meta-analyses: 67% [95% CI, 54%-78%]; other designs: 20% [95% CI, 12%-33%]), and intention to share data (RCTs: 79% [95% CI, 67%-87%]; meta-analyses: 65% [51%-77%]; other designs: 70% [95% CI, 57%-81%]). Automated tools showed variable performance (F1 scores, 0.06-1.00) and generally underestimated practices. Conclusions and relevance: In this cross-sectional study of 15 624 articles in 10 leading medical journals, journal policies were only partially aligned with TOP2025, and article-level open science practices were more frequently reported for RCTs than for other designs, supporting the need for stronger journal policies.
BibTeX
@article{vinatier2026open,
author = {Vinatier, Constant and Putu Madri Dewi, Ayu and Freyermuth, Guillaume and Millour, Margaux and Scheidecker, Maud and Arnault, F and Acher, Mathieu and Nachev, Vladislav and Weissgerber, Tracey L and J Devito, Nicholas and Dumont, Gw{\'e}na{\"e}l and Gopalakrishna, Gowri and Le Bartz Lyan, Gauthier and Stegeman, Inge and Leeflang, Mariska M G and Naudet, Florian},
title = {{Open Science Policies and Practices Among Medical Journals}},
journal = {{JAMA Network Open}},
volume = {9},
number = {9},
pages = {e2632070},
year = {2026},
month = sep,
publisher = {{American Medical Association}},
doi = {10.1001/jamanetworkopen.2026.32070},
url = {https://doi.org/10.1001/jamanetworkopen.2026.32070}
}
The Linux Kernel Mailing List (LKML) has long served as an important empirical source for studying communication dynamics in large-scale open-source software development. However, replicating historical LKML studies under contemporary data conditions remains challenging due to differences in archival infrastructures, metadata consistency, and dataset construction practices. This paper presents a qualitative replication of the study Differentiating Communication Styles of Leaders on the Linux Kernel Mailing List using the LKML5Ws curated dataset. We first investigate the feasibility of reconstructing LKML corpora directly from official archives using the lei interface and discuss the practical limitations encountered during large-scale data acquisition. We then re-execute the original analytical pipeline using LKML5Ws, maintaining high fidelity to the original methodological assumptions and execution environment. Through this replicated analysis, we evaluate multiple dimensions, including authorship classification, lexical statistics, expletive usage, and part-of-speech distributions. Ultimately, this work explores both the feasibility and the methodological challenges of revisiting established empirical studies using a contemporary LKML dataset.
BibTeX
@inproceedings{azevedo2026replication,
author = {Azevedo, J{\'u}lia and Canuto, Theo and Borges, Heraldo and Acher, Mathieu and Pereira, Juliana Alves},
title = {{A Replication Study of Communication Style Analysis in the Linux Kernel Mailing List}},
booktitle = {{VEM 2026 - 14th Workshop on Software Visualization, Maintenance and Evolution co-located with CBSoft 2026}},
year = {2026},
month = sep,
url = {https://inria.hal.science/hal-05756009v1}
}
N'Guessan Hermann Kouadio, Mathieu Acher, Olivier Barais, and Jean-Marc Jézéquel
SCAM 2026 - 26th IEEE International Conference on Source Code Analysis and Manipulation (Engineering Track), co-located with ICSME 2026, 2026Distinguished Paper Award
In the context of legacy system modernization, code summaries, whether manually written or automatically generated (e.g., using LLMs), are increasingly used to support program comprehension. However, evaluating whether these summaries effectively assist modernization activities remains challenging. We study IBM-i RPG AS/400 in an industrial modernization context, where the legacy code and sparse documentation make automated summarization and evaluation particularly challenging. Existing automatic metrics fail to capture semantic adequacy, while expert-based evaluations are costly, difficult to scale, and challenging to reproduce. This problem is critical in modernization contexts, as inaccurate summaries may lead to misinterpretations of legacy behavior and increase migration risks. To address this challenge, we propose a semi-automated, context-aware, questiondriven approach for evaluating code summary quality: CRACS. Our method relies on expert-defined comprehension questions targeting key program elements such as database operations, user interface interactions, and algorithmic logic. Evaluated on 18 industrial RPG programs (160 subroutines, ≈12k SLOC) and 640 summaries (160 expert-written plus 480 degraded and LLMgenerated variants) using 846 expert-defined comprehension questions, CRACS reliably separates reference documentation from weaker summaries (large effect, Cliff's δ > 0.8). It also remains stable across five LLM evaluators and reuses 38 question templates to cover 91% of questions.
BibTeX
@inproceedings{kouadio2026cracs,
author = {Kouadio, N'Guessan Hermann and Acher, Mathieu and Barais, Olivier and J{\'e}z{\'e}quel, Jean-Marc},
title = {{CRACS: Question-Driven Assessment of Legacy Code Summaries in Industrial IBM-i Modernization}},
booktitle = {{SCAM 2026 - 26th IEEE International Conference on Source Code Analysis and Manipulation (Engineering Track), co-located with ICSME 2026}},
year = {2026},
month = sep,
publisher = {{IEEE}},
address = {Benevento (IT), Italy},
url = {https://hal.science/hal-05757598v1}
}
Boolean formulae compactly encode huge, constrained search spaces. Thus, variability-intensive systems are often encoded with Boolean formulae. The search space of a variability-intensive system is usually too large to explore without statistical inference (e.g., testing). Testing every valid configuration is computationally expensive (if not impossible) for most systems. This leads most testing approaches to sample a few configurations before analysing them. A desirable property of such samples is uniformity : Each solution should have the same selection probability. Uniformity is the property that facilitates statistical inference. This property motivated the design of uniform random samplers, relying on SAT solvers and counters and achieving different tradeoffs between uniformity and scalability. Though we can observe their performance in practice, judging the quality of the generated samples is different. Assessing the uniformity of a sampler is similar in nature to assessing the uniformity of a pseudo-random number (PRNG) generator. However, sampling is much slower, and the nature of sampling also implies that the hyperspace containing the samples is constrained. This means that testing PRNGs is subject to fewer constraints than testing samplers. We propose a framework that contains five statistical tests, which are suited to test uniform random samplers. Moreover, we demonstrate their use by testing eight samplers. Finally, we demonstrate the influence of the Boolean formula given as input to the samplers under test on the test results.
BibTeX
@article{zeyen2026testing,
author = {Zeyen, Olivier and Cordy, Maxime and Gubri, Martin and Perrouin, Gilles and Acher, Mathieu},
title = {{Testing Uniform Random Samplers: Methods, Datasets, and Protocols}},
journal = {{ACM Transactions on Software Engineering and Methodology}},
volume = {35},
number = {10},
pages = {1--24},
year = {2026},
month = sep,
publisher = {{Association for Computing Machinery}},
doi = {10.1145/3797477},
url = {https://doi.org/10.1145/3797477},
eprint = {2503.14079},
archiveprefix = {arXiv}
}
Due to their black-box nature, LLMs suffer from limited explain- ability and a lack of determinism. Their usage cost can also rise, particularly with repetitive tasks on large codebases. To mitigate this, we conduct a novel empirical study targeting three domain- specific languages for transformation rules, namely Comby, GritQL, and Ast-Grep. We evaluate three LLMs (GPT-5.4, GPT-oss-120B, and Llama3.1-8B) on six diverse datasets covering four software- evolution tasks: API misuse correction, program repair, API migra- tion, and language version migration. Our results provide evidence that transformation rule synthesis moves beyond proof-of-concept with strong frontier models. GPT-5.4 achieves consistently high rule applicability rates and produces transformations closest to the ground truth across most benchmarks. Smaller and open-weight GPT-oss-120B and Llama3.1-8B models remain effective for simpler, localized changes but struggle with complex migration scenarios. We also observe non-negligible generalizability through the usage of meta-variables and through a high reuse score in the first quartile of many datasets. Finally, when compared to the anti-unification algorithm, LLMs outperform it in correctness, but underperform in rule applicability. Overall, our results show great potential for LLMs to generate sound, correct, generalizable, and reusable rules.
BibTeX
@article{arxiv:2609.03592,
author = {Axel Allain and Aymeric Blot and Djamel Eddine Khelladi and Mathieu Acher},
title = {{Code Transformation Rule Synthesis using LLMs: Potential and Limits}},
journal = {CoRR},
volume = {abs/2609.03592},
year = {2026},
month = sep,
doi = {10.48550/arXiv.2609.03592},
url = {https://arxiv.org/abs/2609.03592},
eprint = {2609.03592},
archiveprefix = {arXiv}
}
COBOL remains widely deployed, yet representative corpora reflecting real production code are rarely available, limiting rigorous benchmarking of modernization approaches. We propose a systematic agentic AI pipeline for generating realistic COBOL programs, combining specification-driven generation with iterative degradation guided by patterns and complexity targets extracted from real production code. Here, realism is understood as structural fidelity to production code as captured by our metrics. We evaluate whether degradation reaches target complexity levels while preserving business behavior, and examine the limits of the approach, across three programs from distinct business domains. Results show the pipeline reliably produces syntactically valid programs and moves them toward realistic structural complexity. However, preserving business behavior is not always achieved by construction, and targeting structural metrics independently of business logic risks producing programs whose complexity does not reflect a plausible maintenance history. We discuss these limitations and outline a more realistic alternative as a direction for future work, generating legacy programs from scratch along a simulated development history.
BibTeX
@article{arxiv:2609.26835,
author = {Jean-Baptiste Espinasse and Djamel Eddine Khelladi and Mathieu Acher},
title = {{Spec2COBOLRot: An Agentic-AI Degradation Loop for Realistic COBOL Corpus Generation}},
journal = {CoRR},
volume = {abs/2609.26835},
year = {2026},
month = sep,
doi = {10.48550/arXiv.2609.26835},
url = {https://arxiv.org/abs/2609.26835},
eprint = {2609.26835},
archiveprefix = {arXiv}
}
Corr2Cause asks whether a causal claim holds in every DAG compatible with observed correlations and conditional independencies. We frame this as latent-object reasoning: the label is defined by a CPDAG query, but free-form chain-of-thought often collapses the Markov-equivalence-class problem into local pattern matching. We propose Structured Thinking, a two-turn pipeline that first externalizes a typed, schema-constrained CPDAG summary and then answers against that graph state. On the Corr2Cause full test, Structured Thinking raises Qwen3.5-27B from 73.0 to 86.4 F1(Yes) over a strong PC-instruction baseline in the primary paired run (+13.4 pp; McNemar p=2.4× 10^-6; bootstrap 95% CI [+8.4, +18.6]); across three full-ID seeds, the mean gain is +8.1 ± 5.3 pp. A PC-scaffolded two-turn prose control reaches only 67.6 F1, indicating that a detailed PC scaffold plus a schema-free prose intermediate is not sufficient. The same pattern holds on Qwen3.6-27B, Paraphrase-OOD, and GPT-5.4-mini. Scrambling the emitted CPDAG costs 12.0 pp F1, and a full-split audit shows close agreement with the reference CPDAG (ID skeleton F1 0.960; exact match 75.9%). These results support a bounded design principle: externalize the latent object that defines the label, constrain its form, and test whether downstream answers use it.
BibTeX
@article{arxiv:2609.31071,
author = {Wentao Sun and João Paulo Nogueira and Dominique Verchère and Mathieu Acher and Alonso Silva},
title = {Externalized {CPDAG} Summaries Improve {LLM} Causal Deduction},
journal = {CoRR},
volume = {abs/2609.31071},
year = {2026},
month = sep,
doi = {10.48550/arXiv.2609.31071},
url = {https://arxiv.org/abs/2609.31071},
eprint = {2609.31071},
archiveprefix = {arXiv}
}
Highly configurable software systems, such as the Linux kernel, expose thousands of configuration options whose combinations can drastically influence non-functional properties. In embedded or resource-constrained environments, kernel binary size is particularly important because it directly affects memory footprint, boot time, storage usage, and overall system responsiveness. Accurately predicting binary size from configuration options enables developers to evaluate trade-offs early in the development cycle, reducing the need for costly trial-and-error compilation and measurement processes. This study investigates the use of Feedforward Neural Networks (FNNs) for predicting Linux kernel binary size and compares their performance against strong classical Machine Learning (ML) baselines, including Random Forest and Gradient Boosting Trees. In addition, we analyze the impact of feature selection (FS) strategies on predictive accuracy and computational cost. We evaluate five FS approaches, including supervised tree-based importance rankings and a semantic, label-free method based on Word2Vec embeddings extracted from Linux kernel documentation. Our experiments were conducted on a dataset containing 9,670 Linux kernel configuration options. The results show that classical tree-based ensemble methods outperformed FNNs in predictive accuracy, with Gradient Boosting Trees achieving the best overall results (MAPE of 5.21%). Although FNNs combined with feature selection achieved reasonable accuracy (best MAPE of 8.26%) and benefited from reduced training times, they did not surpass the traditional ML baselines. These findings provide important empirical evidence that more complex neural architectures do not necessarily yield superior performance for SPL prediction tasks, even in high-dimensional configuration spaces. We also show that the Word2Vec-based semantic FS method offers a practical label-free alternative for early-stage scenarios where measured NFP data are unavailable or expensive to obtain, although it generally underperforms supervised feature selection strategies in both accuracy and efficiency. Overall, our findings provide practical guidance for SPL practitioners and researchers in selecting prediction models and preprocessing strategies that balance accuracy, interpretability, and computational cost in highly configurable systems.
BibTeX
@article{bessa2026effectiveness,
author = {Bessa, João Marcello and Borges, Heraldo and Lopes, Pedro and Lopes, Lucas and Acher, Mathieu and Pereira, Juliana Alves},
title = {On the Effectiveness of Feedforward Neural Networks for Performance Prediction in Highly Configurable Systems: The Case of Linux Kernel Size},
journal = {Journal of Software Engineering Research and Development},
volume = {14},
number = {1},
pages = {304--318},
year = {2026},
month = aug,
publisher = {Sociedade Brasileira de Computação},
doi = {10.5753/jserd.2026.6399},
url = {https://doi.org/10.5753/jserd.2026.6399}
}
Neuroimaging pipelines can be designed as highly configurable software workflows whose variants may produce different analysis results and scientific conclusions. Managing this analytical variability is particularly challenging because outputs are complex, high-dimensional brain maps and no ground truth exists to assess their correctness. We model neuroimaging pipelines as a software product line and leverage the resulting feature model in a novel two-step process. First, we refine the configuration space by learning constraints from observed outputs and integrating them into the feature model. Second, we explore the refined space to identify influential features, characterize clusters, and predict unseen configurations. Evaluations on two case studies show that a small subset of features explains most observed variability and that accurate predictions can be achieved from a limited number of executed variants. They also demonstrate the complementarity of the two steps: refining the configuration space by excluding undesirable variants improves the interpretability and predictive power of subsequent exploration. Beyond neuroimaging, our results demonstrate how feature models can support both specialization and structured exploration of complex configuration spaces without ground truth.
BibTeX
@misc{mereljourdan2026search,
author = {Merel Jourdan, Youenn and Spieker, Helge and Maumet, Camille and Acher, Mathieu},
title = {{In the Search for Truth: Refining and Exploring Variability in Neuroimaging Pipelines}},
year = {2026},
month = jul,
howpublished = {Preprint},
url = {https://inria.hal.science/hal-05525807v2}
}
Configurability of neuroimaging pipelines is essential for tailoring the analyses to different experimental conditions but also gives rise to analytical variability : i.e. distinct pipelines, equally valid from a scientific point of view, may produce different findings. Previous works have explored the sources of this variability typically by studying the variability induced (in the results) by a small set of pre-defined pipeline variations – such as the choice of software, operating systems or preprocessing methods. In this work, we leverage methods from software engineering to systematically explore analytical variability from preprocessing up to group analysis in a multi-task fMRI dataset. We investigate 20 parameters – including interpolation algorithm, coregistration cost function, number of motion regressors – expressing a total of over 27,000 distinct pipelines. We propose a method to study variability in this large space without any assumptions made on the expected results or target downstream task. We separate variability of interest (differences observed across valid results) from unwanted variability (differences linked to pipelines producing unacceptable or low quality results) while minimizing the required amount of visual quality control. Finally, among the valid pipelines, we identify the parameters that have the strongest impact on the final results.
BibTeX
@inproceedings{mereljourdan2026systematic,
author = {Merel Jourdan, Youenn and Acher, Mathieu and Maumet, Camille},
title = {{A systematic and large-scale exploration of analytical variability in task-fMRI}},
booktitle = {{OHBM 2026 - Annual Meeting of the Organization for Human Brain Mapping}},
year = {2026},
month = jun,
organization = {{Organization for Human Brain Mapping (OHBM)}},
address = {Bordeaux, France},
url = {https://inria.hal.science/hal-05458481v2}
}
Reinforcement Learning (RL) is the common approach to solving sequential decision-making problems. Testing is an effective method for detecting functional faults in RL policies. Not only should policy testing find as many failures as possible, but it should also reveal diverse ones. In that regard, Quality diversity optimization (QD) is a type of evolutionary algorithm that returns a set of high-quality diverse solutions. In this article, we explore the use of Quality Diversity to tackle fault diversity in policy testing. We define and address the challenges of adapting QD to testing policies with both deterministic test cases -considered by most of the literature -and stochastic executions. We utilize stochastic executions to define a domain-agnostic generic behavior space, tailored to policy testing. We compare QD-based policy testing to a state-of-the-art policy testing framework with two QD optimizers and three environments. Our evaluation assess fault detection, fault diversity and investigate the sensitivity of our method to the behavior space definition and the number of test executions. Our results show that QD improves fault diversity without significantly reducing fault discovery. Furthermore, QD optimization does not necessarily need domain knowledge and can adapt to generic behaviors with stochastic executions.
BibTeX
@article{mazouni2026fault,
author = {Mazouni, Quentin and Gotlieb, Arnaud and Acher, Mathieu and Spieker, Helge},
title = {{Fault Diversity in Reinforcement Learning Policy Testing}},
journal = {{ACM Transactions on Software Engineering and Methodology}},
year = {2026},
month = jun,
publisher = {{Association for Computing Machinery}},
doi = {10.1145/3821533},
url = {https://doi.org/10.1145/3821533}
}
LLMs have significantly advanced code generation, enabling the synthesis of functional programs. While recent systems achieve strong performance on many coding benchmarks, tasks involving programs such as TikZ that generate visual artifacts remain challenging, in particular on visual code customization. Unlike generation from scratch, customization requires localized, semantics-preserving edits: the model must locate relevant code, modify it according to the instruction, and preserve the remaining structure and rendering. Approaches based on post-hoc iterative refinement/correction where a verifier provides feedback to guide corrections, have shown promise. However, in the case of programs with a visual outcome such as in TikZ, where correctness is harder or likely impossible to formalize and evaluate automatically, deterministic verifiers do not exist. Hence, developers can only rely on imperfect verifiers. In this paper, we conduct an empirical study to answer:to what extent can iterative refinement remain effective when the verifier itself is unreliable? We use TikZ as a focused case study that isolates the core difficulties of the problem (weak code structure, fine-grained visual semantics, and difficult feature localization) in a controlled and challenging setting. We define visual code customization as an iterative editing problem with an imperfect oracle, and introduce a framework for analyzing such iterative refinements. We conduct a large-scale study and evaluate multiple LLM-based and tool-augmented visual verifiers within iterative refinement pipelines, and perform extensive manual annotation of refinement trajectories to assess verifier behavior and feedback quality. Our findings show that even imperfect verifiers can determine with moderate accuracy whether visual instructions are applied to code, achieving F1-scores up to 0.815. Feedback improves iterative refinement, especially for weaker models, adding 11–20 perfect customizations for Qwen3-vl-30b-a3b-Instruct, while stronger models like Gemini-3 gain fewer improvements (+5) but benefit more from accurate verification that prevents premature acceptance. Feedback is effective only when it precisely identifies image issues, provides actionable guidance, addresses all relevant problems, and remains grounded in the original instruction.
BibTeX
@article{reux2026imperfect,
author = {Charly Reux and Mathieu Acher and Djamel Eddine Khelladi and Clément Quinton and Olivier Barais},
title = {Imperfect Visual Verification for Code Edition : A Case Study on {TikZ}},
journal = {{CoRR}},
volume = {abs/2606.15693},
year = {2026},
month = apr,
doi = {10.48550/arXiv.2606.15693},
url = {https://arxiv.org/abs/2606.15693},
eprint = {2606.15693},
archiveprefix = {arXiv}
}
Software developers are acutely aware that software build is an essential but resource-intensive step in any software development process, all the more when building large and/or highly configurable systems, whose vast number of configuration options leads to an explosion in the number of variants to build and evaluate. A potential approach to speed up the builds of multiple configurations is to do incremental build, i.e., to not clean the build environment and reuse previous builds when building a new configuration. Previous exploratory studies showed some benefits and limitations of incremental build, but mainly on small configurable software systems and on a limited set of close configurations. However, for large configuration spaces, little is known whether the large distance across configurations impacts the correctness and efficiency of incremental build. This paper presents PyroBuildS, a new approach to speed up incremental builds while keeping reproducibility, featuring a configuration variation operator parameterized by two deny lists of problematic options and a mutation size (diversity). We evaluate PyroBuildS through an empirical study on three large complex configurable systems, namely Linux, BusyBox, and ToyBox, with respectively 18637, 1078, 330 configuration options. We first show that for all configurations PyroBuildS produces the exact same binaries as a clean build, except for Linux with some non-reproducible random configurations. We identify the reasons why incremental build speeds up or slows down the build of large configuration spaces – a knowledge that can be integrated into PyroBuildS. Incremental build systematically pays off, since problematic options are avoided in the first place — something only PyroBuildS does. We also show that a naive use of incremental build on random Linux configurations backfires, taking more time than clean builds. Thus, PyroBuildS controls diversity to avoid too many differences across configurations to perform efficient incremental builds. Thanks to its ability to operate over non-problematic options and close enough configurations, PyroBuildS significantly speeds up the exploration of large configuration spaces, with a gain in build time from 16% to 22% in all three systems with mutated configurations. Finally, with random configurations, PyroBuildS also speeds up the build time from 15% to 20% for ToyBox and BusyBox.
BibTeX
@article{randrianaina2026pyrobuilds,
author = {Georges Aaron Randrianaina and Djamel Eddine Khelladi and Olivier Zendra and Mathieu Acher},
title = {{PyroBuildS}: Speeding up the exploration of large configuration spaces with incremental build},
journal = {Journal of Systems and Software ({JSS})},
volume = {231},
pages = {112592},
year = {2026},
month = jan,
doi = {10.1016/j.jss.2025.112592},
url = {https://doi.org/10.1016/j.jss.2025.112592}
}
Programming environments typically separate the world of static code from the dynamic execution of programs. Developers must switch between writing code and observing its execution, often with limited tools to understand the relationship between code changes and runtime behavior. Several paradigms and approaches exist to bridge this gap, including exploratory programming for comparing code variants, live programming for immediate feedback, and omniscient debugging for exploring execution history. However, existing solutions tend to focus on specific aspects and one specific paradigm rather than providing a fully integrated environment with multiple capabilities. This paper introduces spacetimeProgramming, a novel approach that unifies these paradigms to create a programming model for exploring both code modifications and execution flow. At the core of our approach is a trace mechanism that captures not only execution state but also the corresponding code changes, enabling developers to explore programs in both space (code variants) and time (execution flow). As a proof of concept, we implemented a Python library supporting SpaceTime Programming and applied it in two contexts: a live omniscient debugger and a Pygame game development tool, showcased through a Flappy Bird-like game. We further evaluated SpaceTimePy on five real-world Python projects, finding performance overhead ranging from 35% to 150% on test suites.
BibTeX
@article{doderlein2026spacetime,
author = {Jean-Baptiste Döderlein and Djamel Eddine Khelladi and Mathieu Acher and Benoît Combemale},
title = {{SpaceTime} Programming: Live and Omniscient Exploration of Code and Execution},
journal = {{CoRR}},
volume = {abs/2603.18735},
year = {2026},
doi = {10.48550/arXiv.2603.18735},
url = {https://arxiv.org/abs/2603.18735},
eprint = {2603.18735},
archiveprefix = {arXiv}
}
Many small-scale software systems, that is, with limited codebase or binary size, are widely used in everyday tasks, yet their configurability remains largely unexplored. At the same time, studies on modern software systems show a trend toward increasing configurability, alongside growing interest in building immutable, specialized, and reproducible software. In this paper, we present the first empirical study on the extent of configurability in small-scale software systems. By analyzing 108 programs from GNU coreutils, we show that even small programs can exhibit significant compile-time and run-time variability, with up to 76 options per program. Then, there is a high correlation (0.78) between run-time variability and codebase size. Furthermore, an analysis of the 20 smallest programs across 85 releases reveals that variability tends to increase over time, primarily due to the added compile-time variability. This suggests that shifting options between run-time and compile-time, removing unnecessary run-time variability, or resolving compile-time variability early, can help reduce codebase complexity and size. We also introduce, for the first time, the concept of null-variable software system, one with no configurability beyond mandatory features. Our findings show that high configurability is not exclusive to largescale systems and that reducing unnecessary variability can lead to lightweight, smaller, and more maintainable software. We hope this effort contributes to designing new software by understanding how to balance its configurability with codebase size.
BibTeX
@article{ternava2026small,
author = {Xhevahire Tërnava and Georges Aaron Randrianaina and Luc Lesoil and Mathieu Acher},
title = {Small Yet Configurable: Unveiling Null Variability in Software},
journal = {{CoRR}},
volume = {abs/2604.15957},
year = {2026},
doi = {10.48550/arXiv.2604.15957},
url = {https://arxiv.org/abs/2604.15957},
eprint = {2604.15957},
archiveprefix = {arXiv}
}
Frontier coding agents now promise end-to-end authorship of complete software systems. Two empirical questions follow: can AI coding-agent teammates program in any target language, including ones with no comparable prior open-source artefact? If so, does language choice still shape the artefact, and along which dimensions? We study both through a polyglot case study built around chess engines: non-trivial multi-component systems that admit a hierarchy of language-agnostic oracles, from exact move-generation correctness to a strength scale (Elo), observable from Rust to Brainfuck. We prompted two frontier agents (Claude Code and Codex) at the capability level, without chess knowledge or implementation guidance, under a documented intervention and stopping policy. The agents produced 34 chess engines spanning 17 primary programming languages, from mainstream to specialised, domain-specific, legacy, and esoteric targets. We combine per-engine feature analysis, independent Elo assessment, and session trajectories with qualitative analysis of code and transcripts. Frontier coding agents are genuinely polyglot: every language we tried produced at least one feature-rich working engine, several with no prior open-source counterpart of comparable scope (e.g., LaTeX), and the code is synthesised from scratch rather than copied. Yet language choice still matters: strong playing strength is only reachable in mainstream compiled languages, cost and engineering effort grow sharply as the language becomes more exotic, and feature choices shift across language families. Agents validate their own work unprompted, but their strength self-estimates are biased and a few engines cheated by calling a chess library. Programming language is no longer about whether AI teammates can build a working system, but about performance, cost, what gets built, and how much human supervision validation still needs.
BibTeX
@article{acher2026programming,
author = {Mathieu Acher and Jean-Marc Jézéquel},
title = {Do programming languages still matter to your {AI} coding agent teammate? Evidence at scale from chess engines},
journal = {{CoRR}},
volume = {abs/2606.13763},
year = {2026},
doi = {10.48550/arXiv.2606.13763},
url = {https://arxiv.org/abs/2606.13763},
eprint = {2606.13763},
archiveprefix = {arXiv}
}
Corr2Cause asks whether a causal claim holds in every DAG compatible with observed correlations and conditional independencies. We frame this as latent-object reasoning: the label is defined by a CPDAG query, but free-form chain-of-thought often collapses the Markov-equivalence-class problem into local pattern matching. We propose Structured Thinking, a two-turn pipeline that first externalizes a typed, schema-constrained CPDAG summary and then answers against that graph state. On the Corr2Cause full test, Structured Thinking raises Qwen3.5-27B from 73.0 to 86.4 F1(Yes) over a strong PC-instruction baseline in the primary paired run (+13.4 pp; McNemar p=2.4× 10^-6; bootstrap 95% CI [+8.4, +18.6]); across three full-ID seeds, the mean gain is +8.1 ± 5.3 pp. A PC-scaffolded two-turn prose control reaches only 67.6 F1, indicating that a detailed PC scaffold plus a schema-free prose intermediate is not sufficient. The same pattern holds on Qwen3.6-27B, Paraphrase-OOD, and GPT-5.4-mini. Scrambling the emitted CPDAG costs 12.0 pp F1, and a full-split audit shows close agreement with the reference CPDAG (ID skeleton F1 0.960; exact match 75.9%). These results support a bounded design principle: externalize the latent object that defines the label, constrain its form, and test whether downstream answers use it.
BibTeX
@inproceedings{sun2026externalized,
author = {Wentao Sun and João Paulo Nogueira and Dominique Verchère and Mathieu Acher and Alonso Silva},
title = {Externalized {CPDAG} Summaries Improve {LLM} Causal Deduction},
booktitle = {NeurIPS 2026 - 40th Annual Conference on Neural Information Processing Systems},
year = {2026},
url = {https://arxiv.org/abs/2609.31071},
eprint = {2609.31071},
archiveprefix = {arXiv}
}
Coding agents are routinely used in software engineering (SE) on mainstream languages, but their behavior on COBOL remains less understood. We report a retrospective multi-case study of 16 selected, human-guided development trajectories with Claude Code and Codex (high-reasoning settings, February-July 2026). The agents built from scratch and evolved non-trivial GnuCOBOL systems in eight domain families, spanning different SE and COBOL activities. Three exploratory pilot sessions with non-frontier agents failed, stalled, or delivered a plausible but incorrect program on the easiest task family, illustrating failure modes of the tested stacks and motivating stronger validation. In our study, Claude Code and Codex notably developed two COBOL-to-C compilers written in COBOL, a chess engine measured at about 1,630 Elo in its test pool, a CDCL SAT solver measured within 9× of MiniSat on the reported benchmark, two Doom-like games, two compressors, and two payroll systems whose final refactoring steps preserved the tested outputs. The delivered corpus contains 50,147 lines of COBOL code and uses up to 60 distinct constructs per system across ten languagefeature categories. The agents authored and ran much of the validation apparatus during the sessions, sometimes proactively and sometimes following brief human requests, both to guide development and to validate their code. Though the delivered systems can be incomplete or suboptimal, we provide evidence that coding agents deliver buildable and runnable systems, successfully checking their systems' behavior against published values, external implementations, visual assessment, performance measurements, or human feedback. Qualitative analysis also exposed false success, including a compiler that matched templates instead of parsing, a miscompile behind a suspicious speedup, and a fuzz-detected crash. Overall, our study provides evidence that frontier coding agents can develop in COBOL, a regime not represented in prior short-program COBOL evaluations. This has several implications for COBOL maintenance, for migration pipelines that presuppose COBOL understanding, and for benchmarks that do not yet measure COBOL authoring at this scale.
BibTeX
@misc{acher2026coding,
author = {Acher, Mathieu and Kebaili, Zohra Kaouter and Espinasse, Jean-Baptiste and Khelladi, Djamel Eddine},
title = {{Coding Agents Can Develop COBOL Systems: Evidence from a Human-Guided Multi-Case Study}},
year = {2026},
howpublished = {Preprint},
url = {https://inria.hal.science/hal-05743207v1}
}
Language models are promising solutions for tackling increasing complex problems. In software engineering, they recently gained attention in code assistants, which generate programs from a natural language task description (prompt). They have the potential to save time and effort but remain poorly understood, limiting their optimal use. In this article, we investigate the impact of input variations on two configurations of a language model, focusing on parameters such as task description, surrounding context, model creativity, and the number of generated solutions. We design specific operators to modify these inputs and apply them to three LLM-based code assistants (Copilot, Codex, StarCoder2) and two benchmarks representing algorithmic problems (HumanEval, LeetCode). Our study examines whether these variations significantly affect program quality and how these effects generalize across models. Our results show that varying input parameters can greatly improve performance, achieving up to 79.27% success in one-shot generation compared to 22.44% for Codex and 31.1% for Copilot in default settings. Actioning this potential in practice is challenging due to the complex interplay in our study-the optimal settings for temperature, prompt, and number of generated solutions vary by problem.
BibTeX
@article{doderlein2025piloting,
author = {Jean-Baptiste Döderlein and Nguessan Hermann Kouadio and Mathieu Acher and Djamel Eddine Khelladi and Benoît Combemale},
title = {Piloting Copilot, Codex, and {StarCoder2}: Hot temperature, cold prompts, or black magic?},
journal = {Journal of Systems and Software ({JSS})},
volume = {230},
pages = {112562},
year = {2025},
month = dec,
doi = {10.1016/j.jss.2025.112562},
url = {https://doi.org/10.1016/j.jss.2025.112562},
eprint = {2210.14699},
archiveprefix = {arXiv}
}
Software systems usually provide numerous configuration options that can affect performance metrics such as execution time, memory usage, binary size, or bitrate. On the one hand, making informed decisions is challenging and requires domain expertise in options and their combinations. On the other hand, machine learning techniques can search vast configuration spaces, but with a high computational cost, since concrete executions of numerous configurations are required. In this exploratory study, we investigate whether large language models (LLMs) can assist in performance-oriented software configuration through prompts. We evaluate several LLMs on tasks including identifying relevant options, ranking configurations, and recommending performant configurations across various configurable systems, such as compilers, video encoders, and SAT solvers. Our preliminary results reveal both positive abilities and notable limitations: depending on the task and systems, LLMs can well align with expert knowledge, whereas hallucinations or superficial reasoning can emerge in other cases. These findings represent a first step toward systematic evaluations and the design of LLM-based solutions to assist with software configuration.
BibTeX
@inproceedings{spieker2025prompting,
author = {Helge Spieker and Théo Matricon and Nassim Belmecheri and Jørn Eirik Betten and Gauthier Le Bartz Lyan and Heraldo Borges and Quentin Mazouni and Dennis Gross and Arnaud Gotlieb and Mathieu Acher},
title = {Prompting for Performance: Exploring {LLMs} for Configuring Software},
booktitle = {37th {IEEE} International Conference on Tools with Artificial Intelligence, {ICTAI} 2025, Athens, Greece, November 3-5, 2025},
pages = {114--121},
year = {2025},
month = nov,
publisher = {{IEEE}},
doi = {10.1109/ictai66417.2025.00023},
url = {https://doi.org/10.1109/ictai66417.2025.00023},
eprint = {2507.09790},
archiveprefix = {arXiv}
}
Abstract Objective: To evaluate open science policies of leading general medical journals and the extent to which open science practices are implemented and detectable using automated tools. Design: Cross-sectional audit of journal policies and retrospective observational study of journal articles, with diagnostic accuracy validation of automated screening tools against manual data extraction. Setting: Annals of Internal Medicine, BMC Medicine, The BMJ, CMAJ, JAMA, JAMA Network Open, The Lancet, Nature Medicine, New England Journal of Medicine, and PLOS Medicine. Participants:Research articles published between 2020 and 2023 and randomised controlled trials (RCTs) published before and after policy changes regarding registration and data-sharing. Main outcome measures: Journal policies were assessed using the TOP2025 framework, which rates journals’ transparency and openness standards using the TOP Factor (maximum score 27). At the article level, thirteen core open science practices were examined, including trial registration, protocol sharing, and intention to share data. Nine validated automated tools were applied to detect these practices and compared with manual extraction of 312 articles performed in duplicate. Changes in transparency practices following policy updates were analyzed. Results: Transparency policies varied considerably. TOP Factor scores ranged from 1 (NEJM) to 13 (PLOS Medicine), with many journals’ policies applying primarily to clinical trials rather than all research articles. Only one journal (BMC Medicine) proposed registered reports. At the article level, adoption of open science practices was highest in RCTs: trial registration (99% [95%–100%] vs 68% [55%–79%] in meta-analyses vs 15% [8%–27%] in other research), protocol sharing (95% [90%–98%] vs 67% [54%–78%] vs 19% [11%–32%]), and intention to share data (78% [67%–87%] vs 64% [49%–76%] vs 69% [55%–80%]). Performance across tools was very variable (F1 scores 0.16–1.00). Among all 15,624 research articles, tools detected registration in 20%, protocol sharing in 42%, and intention to share data in 48%, but these were generally underestimated. Policy changes such as mandatory registration or data-sharing requirements were associated with measurable improvements in the corresponding open science practices. Conclusions: Leading medical journals show only partial alignment with TOP2025, with stronger transparency observed for RCTs than for other study types. Triangulation with manual and automated assessments in articles confirms that key open science practices remain suboptimal especially for non-RCTs, highlighting the need for more robust journal policies. Policy changes are associated with observable improvements. Registration: OSF: https://doi.org/10.17605/OSF.IO/F2VW9
BibTeX
@misc{medrxiv:2025.11.26.25341061,
author = {Constant Vinatier and Ayu Putu Madri Dewi and Guillaume Freyermuth and Margaux Millour and Maud Scheidecker and François-Joseph Arnault and Mathieu Acher and Vladislav Nachev and Tracey L. Weissgerber and Nicholas J. DeVito and Gwénaël Dumont and Gowri Gopalakrishna and Gauthier Le Bartz Lyan and Inge Stegeman and Mariska M. G. Leeflang and Florian Naudet},
title = {{Monitoring of Open Science practices: a survey of 10 major medical journals}},
year = {2025},
month = nov,
howpublished = {Preprint, medRxiv},
doi = {10.1101/2025.11.26.25341061},
url = {https://doi.org/10.1101/2025.11.26.25341061}
}
Youenn Merel Jourdan, Mathieu Acher, and Camille Maumet
Proceedings of the 29th ACM International Systems and Software Product Line Conference - Volume A, SPLC-A 2025, A Coruña, Spain, September 1-5, 2025, 2025
Neuroimaging pipelines -software-driven analysis workflows of brain images -are characterized by a wide range of tools, parameters, and configuration choices. Such flexibility, while enabling diverse scientific inquiries, gives rise to analytical variability: different pipeline variants can lead to different outcomes. In practice, each neuroimaging pipeline variant produces a statistic map -a complex, structured 3D output whose relevance can only be assessed with specific domain expertise, unlike simple metrics such as execution time. And, in most cases, there is no ground truth against which to judge these outputs, making it unclear which variant yields the best result. In this paper, we introduce a "sampling, variant scoring, learning" methodology to study variability in the absence of a quantitative target -i.e. ground truth. We report our experience in developing an Universal Variability Language (UVL) feature model of 90 features representing the configuration space of a well-established open source neuroimaging analysis software (SPM). We sample and run 1000 valid configurations generating 1000 statistic maps as outputs. We studied various candidate proxy ground truths and computed Spearman correlations as a quantitative metric of the performance of each pipeline. We tested the following 12 proxy ground truths: the average statistic map (across variants), the output of an expertderived configuration, and a set of randomly selected outputs (as baseline). Then, we used a decision tree learning approach to inspect variability. We evaluated the sensitivity of our method to the choice of (proxy) ground truth, both in terms of predictive accuracy and in the identification of important features. These first results outline the challenge of choosing and validating a referential to assess our understanding of variability in the absence of ground truth.
BibTeX
@inproceedings{mereljourdan2025search,
author = {Youenn Merel Jourdan and Mathieu Acher and Camille Maumet},
title = {In the Search for Truth: Navigating Variability in Neuroimaging Software Pipelines},
booktitle = {Proceedings of the 29th {ACM} International Systems and Software Product Line Conference - Volume A, {SPLC-A} 2025, A Coruña, Spain, September 1-5, 2025},
pages = {129--135},
year = {2025},
month = sep,
publisher = {{ACM}},
doi = {10.1145/3744915.3748470},
url = {https://doi.org/10.1145/3744915.3748470}
}
Proceedings of the 29th ACM International Systems and Software Product Line Conference - Volume A, SPLC-A 2025, A Coruña, Spain, September 1-5, 2025, 2025
Energy consumption is a growing concern for sustainable software. Although increasingly studied, it remains largely unexplored in configurable systems growing in complexity with features. Feature reduction can eliminate software bloat, but to our knowledge, its impact on energy use has not been investigated. To fill this gap, we investigated how both on-demand and built-in feature reduction (defined later) affect the energy consumption of configurable systems. We conducted a first exploratory study using 28 programs from three systems with built-in feature reduction, namely ToyBox, BusyBox, and GNU, as well as 6 GNU programs debloated on-demand using the Chisel, Debop, and Cov tools. In our results, built-in feature reduction led to statistically significant energy decreases in 7% of the cases, while on-demand reduction, despite achieving energy decreases in 67% of cases, showed no statistical significance. However, when energy consumption increased, it was often more substantial than the reductions observed (occurring in 25% of built-in cases and 11% of on-demand cases) showing the complex and sometimes counterintuitive interplay between feature reduction and energy. Additionally, the observed strong correlation between energy consumption and execution time motivates a shift from traditional debloating goals, centered on binary size/attack surface, to energy-aware strategies that prioritize performance concerns. Finally, we provide an in-depth analysis and discuss the perspective.
BibTeX
@inproceedings{ternava2025effect,
author = {Xhevahire Tërnava and Romain Lefeuvre and Quentin Perez and Djamel Eddine Khelladi and Mathieu Acher and Benoît Combemale},
title = {On the Effect of Feature Reduction on Energy Consumption: An Exploratory Study},
booktitle = {Proceedings of the 29th {ACM} International Systems and Software Product Line Conference - Volume A, {SPLC-A} 2025, A Coruña, Spain, September 1-5, 2025},
pages = {57--68},
year = {2025},
month = sep,
publisher = {{ACM}},
doi = {10.1145/3744915.3748463},
url = {https://doi.org/10.1145/3744915.3748463}
}
The ability to recreate computational results provides a solid foundation for scientific research. Yet, reproducibility and getting identical results with the original data, code, and environment are challenging, due to many uncontrolled or undocumented variability factors. When reproduction is achieved, replicability can be envisioned to check whether conclusions still hold or generalize when well-controlled changes—created by inevitable software variability—are introduced. In this talk, I will first provide evidence that deep software variability — spanning operating systems, compilers, input data, versions, and configurations, etc. — is impacting reproducibility and replicability in numerous fields of computational science. I will then present an approach based on "modelling, sampling, measuring, learning" to systematically explore variability spaces of neuroimaging pipelines. I will also illustrate how Masters` students et INSA Rennes leverage variability to reproduce and replicate studies in soccer, chess, and energy consumption. Throughout this talk, I will try to convince the audience that software-engineering and variability researchers have a key role to play for truly replicable science. Keynote (invited talk) at CBSoft Brazilian Symposium on Software Components, Architectures, and Reuse https://cbsoft.sbc.org.br/2025/sbcars/palestras/?lang=en
BibTeX
@misc{acher2025software,
author = {Acher, Mathieu},
title = {{Software Variability for Replicable Science}},
year = {2025},
month = sep,
address = {Rio, Brazil},
howpublished = {Invited talk, CBSoft 2025 - Congresso Brasileiro de Software: Teoria e Pr{\'a}tica},
url = {https://hal.science/hal-05334168v1}
}
Olivier Zeyen, Maxime Cordy, Gilles Perrouin, and Mathieu Acher
Proceedings of the 29th ACM International Systems and Software Product Line Conference - Volume A, SPLC-A 2025, A Coruña, Spain, September 1-5, 2025, 2025
Uniform Random Sampling (URS) and Model Counting (#SAT) are two intrinsically linked, theoretical problems with relevant practical applications in software engineering. In particular, in configurable system engineering, URS and #SAT can support studying configurations’ properties unbiasedly. Despite the community efforts to provide scalable URS and #SAT tools, solving these problems efficiently remains challenging for a large number of formulae. Contrary to the classical SAT problem, whose complexity has been an object of fundamental studies, little is known about what makes a formula hard to sample from. For the first time, we investigate how phase transitions can explain the practical complexity of sampling. Our results, computed on 11,409 synthetic formulae and 4656 real-world formulae, show that phase transitions occur in both cases, but at a different clause-to-variable ratio than for SAT tasks. We further reveal that low formula modularity is correlated with a higher URS/#SAT time. Overall, our work contributes to a principled understanding of URS and #SAT complexity.
BibTeX
@inproceedings{zeyen2025exploring,
author = {Olivier Zeyen and Maxime Cordy and Gilles Perrouin and Mathieu Acher},
title = {Exploring the Computational Complexity of Uniform Random Sampling and {SAT} Counting with Phase Transitions},
booktitle = {Proceedings of the 29th {ACM} International Systems and Software Product Line Conference - Volume A, {SPLC-A} 2025, A Coruña, Spain, September 1-5, 2025},
pages = {149--160},
year = {2025},
month = aug,
publisher = {{ACM}},
doi = {10.1145/3744915.3748473},
url = {https://doi.org/10.1145/3744915.3748473}
}
Reproducibility is often discussed but rarely practiced in undergraduate computer science education. In this paper, we present the design, implementation, and evaluation of a 24-hour hands-on course entirely dedicated to reproducibility and variability in computational experiments. Taught to fourth-and fifth-year students at INSA Rennes in Fall 2024, the course combines scientific thinking, software engineering practices, and variability analysis. Students first explored the non-associativity of floating-point arithmetic as a reproducibility "Hello World" using Docker, GitHub Actions, and templated experimentation to analyze sources of variability across programming languages, compiler flags, and numerical precision. The second half of the course focused on reproducing and replicating actual research papers, including studies on large language models playing chess, home advantage in football during COVID-19, and energy efficiency across programming languages. Students successfully reproduced key results, identified subtle reproducibility issues such as changes in library defaults, and designed replications that extended or challenged original findings. We describe the course structure, pedagogical strategies, and lessons learned, including when students found reproducibility flaws in the instructor's own prior work. Our experience suggests that reproducibility and variability deserve a central place in computer science education and can be taught in a way that is both technically rigorous and scientifically engaging.
BibTeX
@inproceedings{acher2025teaching,
author = {Mathieu Acher and Arnaud Gotlieb and Helge Spieker and Gauthier Le Bartz Lyan},
title = {Teaching Reproducibility and Embracing Variability: From {Floating-Point} Experiments to Replicating Research},
booktitle = {Proceedings of the 3rd {ACM} Conference on Reproducibility and Replicability, {ACM} {REP} 2025, Vancouver, Canada, July 29-31, 2025},
pages = {192--201},
year = {2025},
month = jul,
publisher = {{ACM}},
doi = {10.1145/3736731.3746162},
url = {https://doi.org/10.1145/3736731.3746162}
}
Software systems usually provide numerous configuration options that can affect performance metrics such as execution time, memory usage, binary size, or bitrate. On the one hand, making informed decisions is challenging and requires domain expertise in options and their combinations. On the other hand, machine learning techniques can search vast configuration spaces, but with a high computational cost, since concrete executions of numerous configurations are required. In this exploratory study, we investigate whether large language models (LLMs) can assist in performance-oriented software configuration through prompts. We evaluate several LLMs on tasks including identifying relevant options, ranking configurations, and recommending performant configurations across various configurable systems, such as compilers, video encoders, and SAT solvers. Our preliminary results reveal both positive abilities and notable limitations: depending on the task and systems, LLMs can well align with expert knowledge, whereas hallucinations or superficial reasoning can emerge in other cases. These findings represent a first step toward systematic evaluations and the design of LLM-based solutions to assist with software configuration.
BibTeX
@article{arxiv:2507.09790,
author = {Helge Spieker and Théo Matricon and Nassim Belmecheri and Jørn Eirik Betten and Gauthier Le Bartz Lyan and Heraldo Borges and Quentin Mazouni and Dennis Gross and Arnaud Gotlieb and Mathieu Acher},
title = {{Prompting for Performance: Exploring LLMs for Configuring Software}},
journal = {CoRR},
volume = {abs/2507.09790},
year = {2025},
month = jul,
doi = {10.48550/arXiv.2507.09790},
url = {https://arxiv.org/abs/2507.09790},
eprint = {2507.09790},
archiveprefix = {arXiv}
}
Proceedings of the 29th International Conference on Evaluation and Assessment in Software Engineering, EASE 2025, Istanbul, Turkey, June 17-20, 2025, 2025
Configuring the Linux kernel to meet specific requirements, such as binary size, is highly challenging due to its immense complexity—with over 15,000 interdependent options evolving rapidly across different versions. Although several studies have explored sampling strategies and machine learning methods to understand and predict the impact of configuration options, the literature still lacks a comprehensive and large-scale dataset encompassing multiple kernel versions along with detailed quantitative measurements. To bridge this gap, we introduce TuxKConfig, an accessible collection of kernel configurations spanning several kernel releases, specifically from versions 4.13 to 5.8. This dataset, gathered through automated tools and build processes, comprises over 240,000 kernel configurations systematically labeled with compilation outcomes and binary sizes. By providing detailed records of configuration evolution and capturing the intricate interplay among kernel options, our dataset enables innovative research in feature subset selection, prediction models based on machine learning, and transfer learning across kernel versions. Throughout this paper, we describe how the dataset has been made easily accessible via OpenML and illustrate how it can be leveraged using only a few lines of Python code to evaluate AI-based techniques, such as supervised machine learning. We anticipate that this dataset will significantly enhance reproducibility and foster new insights into configuration-space analysis at a scale that presents unique opportunities and inherent challenges, thereby advancing our understanding of the Linux kernel’s configurability and evolution.
BibTeX
@inproceedings{borges2025linux,
author = {Heraldo Borges and Juliana Alves Pereira and Djamel Eddine Khelladi and Mathieu Acher},
title = {Linux Kernel Configurations at Scale: A Dataset for Performance and Evolution Analysis},
booktitle = {Proceedings of the 29th International Conference on Evaluation and Assessment in Software Engineering, {EASE} 2025, Istanbul, Turkey, June 17-20, 2025},
pages = {1066--1075},
year = {2025},
month = jun,
publisher = {{ACM}},
doi = {10.1145/3756681.3757004},
url = {https://doi.org/10.1145/3756681.3757004},
eprint = {2505.07487},
archiveprefix = {arXiv}
}
Édouard Guégain, Alexandre Bonvoisin, Mathieu Acher, Clément Quinton, and Romain Rouvoy
Proceedings of the 29th International Conference on Evaluation and Assessment in Software Engineering, EASE 2025, Istanbul, Turkey, June 17-20, 2025, 2025
The performance of software systems remains a key concern in software engineering. Configurable software systems, with their numerous configurations, complicate the performance evaluation process. This paper investigates the impact of web stack configurations on performance, using the JHipster web stack generator as a case study. We analyze JHipster configurations to understand how component choices influence system performance and explore individual configuration options for their specific effects. Our study shows that correlations across performance indicators exist but are often weak, and different options affect performance unevenly, with some impacting one indicator minimally while significantly influencing another. We developed a performance model for JHipster to automate the identification of configurations optimized for specific metrics, identifying four configurations that outperform the current default. Overall, this study underscores JHipster’s relevance as a use case for studying component-level variability in software systems and highlights the importance of selecting configurations based on performance indicators rather than preferred technologies.
BibTeX
@inproceedings{guegain2025exploring,
author = {Édouard Guégain and Alexandre Bonvoisin and Mathieu Acher and Clément Quinton and Romain Rouvoy},
title = {Exploring Performance of Configurable Software Systems: the {JHipster} Case Study},
booktitle = {Proceedings of the 29th International Conference on Evaluation and Assessment in Software Engineering, {EASE} 2025, Istanbul, Turkey, June 17-20, 2025},
pages = {238--248},
year = {2025},
month = jun,
publisher = {{ACM}},
doi = {10.1145/3756681.3756936},
url = {https://doi.org/10.1145/3756681.3756936},
eprint = {2409.16480},
archiveprefix = {arXiv}
}
Proceedings of the 29th International Conference on Evaluation and Assessment in Software Engineering, EASE 2025, Istanbul, Turkey, June 17-20, 2025, 2025
With the rise of AI-based code generation, customizing existing code out of natural language instructions to modify visual results -such as figures or images -has become possible, promising to reduce the need for deep programming expertise. However, even experienced developers can struggle with this task, as it requires identifying relevant code regions (feature location), generating valid code variants, and ensuring the modifications reliably align with user intent. In this paper, we introduce vTikZ, the first benchmark designed to evaluate the ability of Large Language Models (LLMs) to customize code while preserving coherent visual outcomes. Our benchmark consists of carefully curated vTikZ editing scenarios, parameterized ground truths, and a reviewing tool that leverages visual feedback to assess correctness. Empirical evaluation with stateof-the-art LLMs shows that existing solutions struggle to reliably modify code in alignment with visual intent, highlighting a gap in current AI-assisted code editing approaches. We argue that vTikZ opens new research directions for integrating LLMs with visual feedback mechanisms to improve code customization tasks in various domains beyond TikZ, including image processing, art creation, Web design, and 3D modeling.
BibTeX
@inproceedings{reux2025llm,
author = {Charly Reux and Mathieu Acher and Djamel Eddine Khelladi and Clément Quinton and Olivier Barais},
title = {{LLM} Code Customization with Visual Results: A Benchmark on {TikZ}},
booktitle = {Proceedings of the 29th International Conference on Evaluation and Assessment in Software Engineering, {EASE} 2025, Istanbul, Turkey, June 17-20, 2025},
pages = {1086--1096},
year = {2025},
month = jun,
publisher = {{ACM}},
doi = {10.1145/3756681.3757003},
url = {https://doi.org/10.1145/3756681.3757003},
eprint = {2505.04670},
archiveprefix = {arXiv}
}
With the rise of AI-based code generation, customizing existing code out of natural language instructions to modify visual results -such as figures or images -has become possible, promising to reduce the need for deep programming expertise. However, even experienced developers can struggle with this task, as it requires identifying relevant code regions (feature location), generating valid code variants, and ensuring the modifications reliably align with user intent. In this paper, we introduce vTikZ, the first benchmark designed to evaluate the ability of Large Language Models (LLMs) to customize code while preserving coherent visual outcomes. Our benchmark consists of carefully curated vTikZ editing scenarios, parameterized ground truths, and a reviewing tool that leverages visual feedback to assess correctness. Empirical evaluation with stateof-the-art LLMs shows that existing solutions struggle to reliably modify code in alignment with visual intent, highlighting a gap in current AI-assisted code editing approaches. We argue that vTikZ opens new research directions for integrating LLMs with visual feedback mechanisms to improve code customization tasks in various domains beyond TikZ, including image processing, art creation, Web design, and 3D modeling.
BibTeX
@article{arxiv:2505.04670,
author = {Charly Reux and Mathieu Acher and Djamel Eddine Khelladi and Olivier Barais and Clément Quinton},
title = {{LLM Code Customization with Visual Results: A Benchmark on TikZ}},
journal = {CoRR},
volume = {abs/2505.04670},
year = {2025},
month = may,
doi = {10.48550/arXiv.2505.04670},
url = {https://arxiv.org/abs/2505.04670},
eprint = {2505.04670},
archiveprefix = {arXiv}
}
Configuring the Linux kernel to meet specific requirements, such as binary size, is highly challenging due to its immense complexity-with over 15,000 interdependent options evolving rapidly across different versions. Although several studies have explored sampling strategies and machine learning methods to understand and predict the impact of configuration options, the literature still lacks a comprehensive and large-scale dataset encompassing multiple kernel versions along with detailed quantitative measurements. To bridge this gap, we introduce LinuxData, an accessible collection of kernel configurations spanning several kernel releases, specifically from versions 4.13 to 5.8. This dataset, gathered through automated tools and build processes, comprises over 240,000 kernel configurations systematically labeled with compilation outcomes and binary sizes. By providing detailed records of configuration evolution and capturing the intricate interplay among kernel options, our dataset enables innovative research in feature subset selection, prediction models based on machine learning, and transfer learning across kernel versions. Throughout this paper, we describe how the dataset has been made easily accessible via OpenML and illustrate how it can be leveraged using only a few lines of Python code to evaluate AI-based techniques, such as supervised machine learning. We anticipate that this dataset will significantly enhance reproducibility and foster new insights into configuration-space analysis at a scale that presents unique opportunities and inherent challenges, thereby advancing our understanding of the Linux kernel's configurability and evolution.
BibTeX
@article{arxiv:2505.07487,
author = {Heraldo Borges and Juliana Alves Pereira and Djamel Eddine Khelladi and Mathieu Acher},
title = {{Linux Kernel Configurations at Scale: A Dataset for Performance and Evolution Analysis}},
journal = {CoRR},
volume = {abs/2505.07487},
year = {2025},
month = may,
doi = {10.48550/arXiv.2505.07487},
url = {https://arxiv.org/abs/2505.07487},
eprint = {2505.07487},
archiveprefix = {arXiv}
}
Modern software systems are highly configurable, offering a vast number of configuration options that can be customized to meet specific functional and non-functional requirements. To support the configuration process, several automated software approaches based on machine learning have been proposed in the literature. These approaches aim to assist developers by predicting non-functional properties based on configuration settings. A recent study demonstrated the potential of leveraging a subset of configuration options (a.k.a. features) to achieve accurate performance predictions in the Linux kernel. The promise of learning over a reduced set of features – instead of all features – is to obtain performance models that are faster to compute, simpler to interpret, and still accurate. Despite the encouraging results of the original study, several questions remain unresolved: Can the findings be generalized to other configurable systems other than Linux? Which learning algorithms deliver the most efficient results when working with a reduced number of features? What are the most effective sampling strategies for building accurate and efficient models? In this work, we extend the original study by conducting an in-depth analysis across eight configurable systems. We evaluate the impact of sampling strategies and learning algorithms on model accuracy and training efficiency. Our goal is to understand whether there is a dominant sampling strategy and learning algorithm for varying systems and performance targets. Our results reveal variability in optimal strategies across systems and advocate for tailored approaches rather than universal solutions.
BibTeX
@inproceedings{bessal2025unveiling,
author = {João Marcello Bessal and Millena Cavalcanti and Mathieu Acher and Markus Endler and Juliana Alves Pereira},
title = {Unveiling the Impact of Sampling on Feature Selection for Performance Prediction in Configurable Systems},
booktitle = {22nd {IEEE/ACM} International Conference on Software and Systems Reuse, {ICSR} 2025, Ottawa, {ON}, Canada, April 27-28, 2025},
pages = {55--66},
year = {2025},
month = apr,
publisher = {{IEEE}},
doi = {10.1109/icsr66718.2025.00012},
url = {https://doi.org/10.1109/icsr66718.2025.00012}
}
Configurable software systems, such as software product lines, enable the generation of products based on configurations tailored to specific requirements by combining reusable features. A key challenge in product lines lies in combinatorial interaction testing, which ensures that all possible feature combinations are tested to identify configurations that may fail. When a configuration fails, pinpointing the feature or the feature interaction causing the fault is crucial. However, fault masking - where faulty interactions remain undetected because other features or interactions could override their effects - potentially hinders the effective identification of faults in product lines. Despite the potential of missing critical interaction faults, fault masking in product lines has received limited attention in existing research. To address this gap, we investigate and analyze on already identified faults of the real-world product line JHipster and quantitatively analyze these faults in terms of masking. In our case study, we find evidence of the existence of fault masking in JHipster and how the detectability of masked faults is influenced. For one feature-interaction fault in JHipster, we miss to identify 17.6% of all configurations containing this fault due to masking effects. By analyzing masked faults of a real-world product line, we raise awareness of investigating feature-interaction masking further in software product lines.
BibTeX
@inproceedings{schmidt2025quantification,
author = {Tim Jannik Schmidt and Sabrina Böhm and Sebastian Krieter and Thomas Thüm and Mathieu Acher},
title = {Poster: Quantification of {Feature-Interaction} Masking in {JHipster}},
booktitle = {{IEEE} Conference on Software Testing, Verification and Validation, {ICST} 2025, Napoli, Italy, March 31 - April 4, 2025},
pages = {1--4},
year = {2025},
month = mar,
publisher = {{IEEE}},
doi = {10.1109/icst62969.2025.10989017},
url = {https://doi.org/10.1109/icst62969.2025.10989017}
}
Boolean formulae compactly encode huge, constrained search spaces. Thus, variability-intensive systems are often encoded with Boolean formulae. The search space of a variability-intensive system is usually too large to explore without statistical inference (e.g. testing). Testing every valid configuration is computationally expensive (if not impossible) for most systems. This leads most testing approaches to sample a few configurations before analyzing them. A desirable property of such samples is uniformity: Each solution should have the same selection probability. Uniformity is the property that facilitates statistical inference. This property motivated the design of uniform random samplers, relying on SAT solvers and counters and achieving different trade-offs between uniformity and scalability. Though we can observe their performance in practice, judging the quality of the generated samples is different. Assessing the uniformity of a sampler is similar in nature to assessing the uniformity of a pseudo-random number (PRNG) generator. However, sampling is much slower and the nature of sampling also implies that the hyperspace containing the samples is constrained. This means that testing PRNGs is subject to fewer constraints than testing samplers. We propose a framework that contains five statistical tests which are suited to test uniform random samplers. Moreover, we demonstrate their use by testing seven samplers. Finally, we demonstrate the influence of the Boolean formula given as input to the samplers under test on the test results.
BibTeX
@article{arxiv:2503.14079,
author = {Olivier Zeyen and Maxime Cordy and Martin Gubri and Gilles Perrouin and Mathieu Acher},
title = {{Testing Uniform Random Samplers: Methods, Datasets and Protocols}},
journal = {CoRR},
volume = {abs/2503.14079},
year = {2025},
month = mar,
doi = {10.48550/arXiv.2503.14079},
url = {https://arxiv.org/abs/2503.14079},
eprint = {2503.14079},
archiveprefix = {arXiv}
}
@proceedings{acher2025proceedings,
editor = {Mathieu Acher and Juliana Alves Pereira and Clément Quinton},
title = {Proceedings of the 19th International Working Conference on Variability Modelling of {Software-Intensive} Systems, {VaMoS} 2025, Rennes, France, February 4-6, 2025},
year = {2025},
month = feb,
publisher = {{ACM}},
isbn = {9798400714412},
doi = {10.1145/3715340},
url = {https://doi.org/10.1145/3715340}
}
Context: This study aims to confirm, replicate and extend the findings of a previous article entitled ”Metamorphic Testing of Chess Engines” that reported inconsistencies in the analyses provided by Stockfish, the most widely used chess engine, for transformed chess positions that are fundamentally identical. Initial findings, under conditions strictly identical to those of the original study, corroborate the reported inconsistencies. Objective: However, the original article considers a specific dataset (including randomly generated chess positions, end-games, or checkmate problems) and very low analysis depth (10 plies,1 corresponding to 5 moves). These decisions pose threats that limit generalizability of the results, but also their practical usefulness both for chess players and maintainers of Stockfish. Thus, we replicate the original study. Methods: We consider this time (1) positions derived from actual chess games, (2) analyses at appropriate and larger depths, and (3) different versions of Stockfish. We conduct novel experiments on thousands of positions, employing significantly deeper searches. Results: The replication results show that the Stockfish chess engines demonstrate significantly greater consistency in its evaluations. The metamorphic relations are not as effective as in the original article, especially on realistic chess positions. We also demonstrate that, for any given position, there exists a depth threshold beyond which further increases in depth do not result in any evaluation differences for the studied metamorphic relations. We perform an in-depth analysis to identify and clarify the implementation reasons behind Stockfish’s inconsistencies when dealing with transformed positions. Conclusion: A first concrete result is thus that metamorphic testing of chess engines is not yet an effective technique for finding faults of Stockfish. Another result is the lessons learned through this replication effort: metamorphic relations must be verified in the context of the domain’s specificities; without such contextual validation, they may lead to misleading or irrelevant conclusions; changes in parameters and input dataset can drastically alter the effectiveness of a testing method.
BibTeX
@article{martin2025reevaluating,
author = {Axel Martin and Djamel Eddine Khelladi and Théo Matricon and Mathieu Acher},
title = {Re-evaluating metamorphic testing of chess engines: A replication study},
journal = {Information \& Software Technology},
volume = {181},
pages = {107679},
year = {2025},
month = feb,
doi = {10.1016/j.infsof.2025.107679},
url = {https://doi.org/10.1016/j.infsof.2025.107679}
}
In Software Engineering, Model-Driven Engineering (MDE) is a methodology that considers Metamodels as a cornerstone. As an abstract artifact, a metamodel plays a significant role in the specification of a software language, particularly, in generating other artifacts of lower abstraction level, such as code. Developers then enrich the generated code to build their language services and tooling, e.g., editors, and checkers. Problem. When a metamodel evolves, the generated code is automatically updated. As a consequence, the developers' additional code is impacted and needs to be co-evolved accordingly. Contribution. This paper proposes a new fully automatic code co-evolution approach with the evolution of the Ecore metamodel. The approach relies on pattern matching of the additional code errors. This process aims to analyze the abstraction gap between the evolved metamodel elements and the code errors to co-evolve them. Evaluation and Results. We evaluated our approach on nine Eclipse projects from OCL, Modisco, and Papyrus over several evolved versions of three metamodels. Results show that we automatically co-evolved 771 errors due to metamodel evolution with 631 matched and applied resolutions. Our approach reached an average of 82% of precision and 81% of recall, varying from 48% to 100% for precision and recall respectively. To check the effect of the co-evolution and its behavioral correctness, we rely on generated test cases before and after co-evolution. We observed that the percentage of passing, failing, and erroneous tests remained the same with insignificant variations in some projects. Thus, suggesting the behavioral correctness of the co-evolution Moreover, we conducted a comparison with the use of quick fixes that represent a usual tool for correcting code errors in an IDE. We found that our automatic co-evolution approach outperforms the use of quick fixes that lacked the context of metamodel evolution. Finally, we also compared our approach with the state-of-the-art semi-automatic co-evolution approach. As expected, precision and recall are slightly better with semi-automation, but with the burden of manual intervention, which is alleviated with our automatic co-evolution.
BibTeX
@article{kebaili2025automatedb,
author = {Zohra Kaouter Kebaili and Djamel Eddine Khelladi and Mathieu Acher and Olivier Barais},
title = {Automated {Co-Evolution} of Metamodels and Code},
journal = {{IEEE} Transactions on Software Engineering ({TSE})},
volume = {51},
number = {4},
pages = {1067--1085},
year = {2025},
month = feb,
doi = {10.1109/tse.2025.3540545},
url = {https://doi.org/10.1109/tse.2025.3540545}
}
In recent years, following tremendous achievements in Reinforcement Learning, a great deal of interest has been devoted to ML models for sequential decision-making. Together with these scientific breakthroughs/advances, research has been conducted to develop automated functional testing methods for finding faults in black-box Markov decision processes. Pang et al. (ISSTA 2022) presented a black-box fuzz testing framework called MDPFuzz. The method consists of a fuzzer whose main feature is to use Gaussian Mixture Models (GMMs) to compute coverage of the test inputs as the likelihood to have already observed their results. This guidance through coverage evaluation aims at favoring novelty during testing and fault discovery in the decision model. Pang et al. evaluated their work with four use cases, by comparing the number of failures found after twelve-hour testing campaigns with or without the guidance of the GMMs (ablation study). In this paper, we verify some of the key findings of the original paper and explore the limits of MDPFuzz through reproduction and replication. We re-implemented the proposed methodology and evaluated our replication in a large-scale study that extends the original four use cases with three new ones. Furthermore, we compare MDPFuzz and its ablated counterpart with a random testing baseline. We also assess the effectiveness of coverage guidance for different parameters, something that has not been done in the original evaluation. Despite this parameter analysis and unlike Pang et al.'s original conclusions, we find that in most cases, the aforementioned ablated Fuzzer outperforms MDPFuzz, and conclude that the coverage model proposed does not lead to finding more faults.
BibTeX
@article{arxiv:2502.19116,
author = {Quentin Mazouni and Helge Spieker and Arnaud Gotlieb and Mathieu Acher},
title = {{Policy Testing with MDPFuzz (Replicability Study)}},
journal = {CoRR},
volume = {abs/2502.19116},
year = {2025},
month = feb,
doi = {10.48550/arXiv.2502.19116},
url = {https://arxiv.org/abs/2502.19116},
eprint = {2502.19116},
archiveprefix = {arXiv}
}
Large language model (LLM)-based test generation has gained attention in software engineering, yet most studies evaluate LLMs' ability to generate unit tests in a single attempt for a given language, missing the opportunity to leverage LLM diversity for more robust testing. This paper introduces PolyTest, a novel approach that enhances test generation by exploiting polyglot and temperature-controlled diversity. PolyTest systematically leverages these properties in two complementary ways: (1) Cross-lingual test generation, where tests are generated in multiple languages at zero temperature and then unified; (2) Diverse test sampling, where multiple test sets are generated within the same language at a higher temperature before unification. A key insight is that LLMs can generate diverse yet contradicting tests – same input, different expected outputs – across languages and generations. PolyTest mitigates inconsistencies by unifying test sets, fostering self-consistency and improving overall test quality. Unlike single-language or single-attempt approaches, PolyTest enhances testing without requiring on-the-fly execution, making it particularly beneficial for weaker-performing languages. We evaluate PolyTest on Llama3-70B, GPT-4o, and GPT-3.5 using EvalPlus, generating tests in five languages (Java, C, Python, JavaScript, and a CSV-based format) at temperature 0 and sampling multiple sets at temperature 1. We observe that LLMs frequently generate contradicting tests across settings, and that PolyTest significantly improves test quality across all considered metrics – number of tests, passing rate, statement/branch coverage (up to +9.01%), and mutation score (up to +11.23%). Finally, PolyTest outperforms Pynguin in test generation, passing rate, and mutation score.
BibTeX
@article{khelladi2025unify,
author = {Djamel Eddine Khelladi and Charly Reux and Mathieu Acher},
title = {Unify and Triumph: Polyglot, Diverse, and {Self-Consistent} Generation of Unit Tests with {LLMs}},
journal = {{CoRR}},
volume = {abs/2503.16144},
year = {2025},
doi = {10.48550/arXiv.2503.16144},
url = {https://arxiv.org/abs/2503.16144},
eprint = {2503.16144},
archiveprefix = {arXiv}
}
Benchmarking is a common practice in software engineering to assess the qualities and performance of software variants, coming from multiple competing systems or from configurations of the same system. Benchmarks are used notably to compare and understand variant performance, fine-tune software, detect regressions, or design new software systems. The execution of benchmarks to get a complete picture of software variants is highly costly in terms of computational resources and time. In this paper, we propose a novel approach for reducing benchmarks while maintaining stable rankings, using test suite optimization techniques. That is, we remove instances from the benchmarks while trying to keep the same rankings of the variants on all tests. Our method, BISection Sampling, BISS, strategically retains the most critical tests and applies a novel divide-and-conquer approach to efficiently sample among relevant remaining tests. We experiment with datasets and use cases from LLM leaderboards, SAT competitions, and configurable systems for performance modeling. Our results show that our method outperforms baselines even when operating on a subset of variants. Using BISS, we reduce the computational cost of the benchmarks on average to 44% and on more than half the benchmarks by up to 99% without loss in ranking stability.
BibTeX
@article{matricon2025efficiently,
author = {Théo Matricon and Mathieu Acher and Helge Spieker and Arnaud Gotlieb},
title = {Efficiently Ranking Software Variants with Minimal Benchmarks},
journal = {{CoRR}},
volume = {abs/2509.06716},
year = {2025},
doi = {10.48550/arXiv.2509.06716},
url = {https://arxiv.org/abs/2509.06716},
eprint = {2509.06716},
archiveprefix = {arXiv}
}
Metamodels are cornerstone in MDE. They define the different domain concepts and the relations between them. A metamodel is also used to generate concrete artifacts such as code. Developers then rely on the generated code to build their language services and tooling, e.g., editors, checkers. To check the behavior of their client code, developers write or generate unit tests. As metamodels evolve between releases, the generated code is automatically updated. As a consequence, the additional developers' code is impacted and is co-evolved accordingly for each release. However, there is no guarantee that the co-evolution of the code is performed correctly. One way to do so is to re-run all the tests after each code co-evolution, which is expensive and time-consuming. This paper proposes an automatic solution for tracing impacted tests due to metamodel evolution. Thus, we end up matching metamodel changes with impacted code methods and their corresponding tests both in the original and evolved versions of a given project. After that, we map the two versions of the impacted tests and compare them to analyze the behavior of the code before and after its evolution due to the metamodel evolution. In particular, we implemented an Eclipse plugin that allows tracing, mapping, execution, and reporting back the results to the developers for easier in-depth analysis of the effect of metamodel evolutions rather than analyzing the whole test suite. We first ran a user study experiment to gain evidence on the difficulty or not of the manual task of tracing impacted tests. We found that manually tracing the 1 tests impacted by the evolution of the metamodel is a hard and error-prone task. Not only the participants could not trace all tests, but they even wrongly traced non-impacted tests. We then evaluated our approach on 18 Eclipse projects from OCL, Modisco, Papyrus, and EMF over several evolved versions of metamodels. For the 14 projects without manual tests, we generated a test suite for each release with the state-of-the-art tool EvoSuite. The results show that we successfully traced the impacted tests automatically by selecting 1608 out of 34612 tests due to 473 metamodel changes. When running the traced tests before and after coevolution, we observed cases indicating possibly both behaviorally correct and incorrect code co-evolution. Finally, we reached gains representing, on average, a reduction of 88% in the number of tests and 84% in the execution time.
BibTeX
@article{kebaili2025automated,
author = {Zohra Kaouter Kebaili and Djamel Eddine Khelladi and Mathieu Acher and Olivier Barais},
title = {Automated testing of metamodels and code co-evolution},
journal = {Software and Systems Modeling},
volume = {24},
number = {2},
pages = {573--591},
year = {2025},
doi = {10.1007/s10270-024-01245-2},
url = {https://doi.org/10.1007/s10270-024-01245-2}
}
Autonomous systems such as space- or underwater-exploration robots or elderly people assistance robots often include an artificial intelligence (AI) planner as a component. Starting from the initial state of a system, an AI planner automatically generates sequential plans to reach final states that satisfy user-specified goals. Generating plans having a minimum number of intermediate steps or taking the least time to execute is usually strongly desired, as these plans exhibit minimal costs. Unfortunately, testing if an AI planner generates optimal plans is almost impossible because the expected cost of these plans is usually unknown. Based on mutation adequacy test suite selection, this article proposes a novel metamorphic testing framework for detecting the lack of optimality in AI planners. The general idea is to perform a systematic but non-exhaustive state space exploration from the initial state and to select mutant-adequate states to instantiate new planning tasks as follow-up test cases. We then check a metamorphic relation between the automatically generated solutions of the AI planner for these new test cases and the cost of the initial plan. We implemented this metamorphic testing framework in a tool called MorphinPlan. Our experimental evaluation shows that MorphinPlan can detect non-optimal behaviour in both mutated AI planners and off-the-shelf, configurable planners. It also shows that our proposed mutation adequacy test selection strategy outperforms three alternative test generation and selection strategies, including both random state selection and random walks through the state space in terms of mutation scores.
BibTeX
@article{mazouni2025mutation,
author = {Quentin Mazouni and Arnaud Gotlieb and Helge Spieker and Mathieu Acher and Benoît Combemale},
title = {{Mutation-Guided} Metamorphic Testing of Optimality in {AI} Planning},
journal = {Software Testing, Verification \& Reliability ({STVR})},
volume = {35},
number = {1},
pages = {e1898},
year = {2025},
doi = {10.1002/stvr.1898},
url = {https://doi.org/10.1002/stvr.1898}
}
Un ordinateur, ça ne calcule jamais juste
Mathieu Acher and Jean-Marc Jézéquel
In Le calcul à découvert, CNRS Éditions, 2025
BibTeX
@incollection{acher2025ordinateur,
author = {Acher, Mathieu and J{\'e}z{\'e}quel, Jean-Marc},
editor = {Bouzeghoub, Mokrane and Dayd{\'e}, Michel and Jutten, Christian},
title = {{Un ordinateur, {\c c}a ne calcule jamais juste}},
booktitle = {{Le calcul {\`a} d{\'e}couvert}},
year = {2025},
publisher = {{CNRS {\'E}ditions}}
}
Large language models (LLMs) can be used to automate software engineering tasks, with the hope of boosting developers' productivity without sacrificing reliability. In this talk, I will briefly present two initiatives: the défi Inria LLM4Code and the CodeCommons project around SoftwareHeritage, exemplifying ongoing research efforts. Then, I will show how LLMs can automatically generate software variants across different technological spaces (Python, Rust, JavaScript, etc.) and implement new features from simple prompts. I will also highlight how LLMs can assist in modernizing legacy applications, such as those written in COBOL or in deprecated technologies. I will further discuss the concept of programming without directly manipulating programs, relying almost entirely on AI to manage technical details and customize code. For all their potential, I will also demonstrate that LLMs can dramatically fail at times, making mistakes that human developers need to carefully verify and correct. I will conclude with an illustration of LLM prompt sensitivity in chess, showcasing how LLMs can be used both to generate variants (e.g., prompts, hypotheses, ideas) and to accelerate scientific discovery through software-based exploration and analysis. 28 november 2024 @ Caen, invited talk at Normastic https://www.normastic.fr/event/journee-de-laxe-donnees-apprentissage-connaissances-large-language-models-llms
BibTeX
@misc{acher2024generative,
author = {Acher, Mathieu},
title = {{Generative AI for Generative Programming: Automating Code Variants and Exploring the Boundaries of LLMs}},
year = {2024},
month = nov,
howpublished = {Invited talk, Normastic day on Large Language Models, Caen, France, 28 November 2024},
url = {https://hal.science/hal-04809253v1}
}
Un ordinateur ne calcule jamais parfaitement. Par exemple, si on additionne trois nombres de différentes façons, le résultat peut changer selon le langage de programmation ou l'ordinateur utilisé. Cela peut même amener des robots, voitures ou avions à prendre des chemins différents selon les conditions. Ou à votre application préférée de retourner une réponse, une image ou une vidéo différente ! En informatique, comme dans toutes les sciences, il est important de comprendre que les calculs ont toujours une petite marge d'erreur. Ce qui compte, ce n'est pas la perfection, mais d'en être conscient, de savoir s'adapter et corriger le tir quand c'est nécessaire ! Un ordinateur, ça ne calcule jamais juste… Ou pourquoi les ordinateurs nous trompent parfois Fête de la science, INSA Rennes
BibTeX
@misc{acher2024ordinateur,
author = {Acher, Mathieu},
title = {{Un ordinateur, {\c c}a ne calcule jamais juste}},
year = {2024},
month = oct,
howpublished = {Talk, F{\^e}te de la science, INSA Rennes},
url = {https://hal.science/hal-04736121v1}
}
The performance of software systems remains a persistent concern in the field of software engineering. While traditional metrics like binary size and execution time have long been focal points for developers, the power consumption concern has gained significant attention, adding a layer of complexity to performance evaluation. Configurable software systems, with their potential for numerous configurations, further complicate this evaluation process. In this experience paper, we examine the impact of configurations on performance, specifically focusing on the web stack generator JHipster. Our goal is to understand how configuration choices within JHipster influence the performance of the generated system. We undertake an exhaustive analysis of JHipster by examining its configurations and their effects on system performance. Additionally, we explore individual configuration options to gauge their specific influence on performance. Through this process, we develop a comprehensive performance model for JHipster, enabling us to automate the identification of configurations that optimize specific performance metrics. In particular, we identify configurations that demonstrate near-optimal performance across multiple indicators and report on significant correlations between configuration choices within JHipster and the performance of generated systems.
BibTeX
@article{arxiv:2409.16480,
author = {Edouard Guégain and Alexandre Bonvoisin and Clément Quinton and Mathieu Acher and Romain Rouvoy},
title = {{Exploring Performance Trade-offs in JHipster}},
journal = {CoRR},
volume = {abs/2409.16480},
year = {2024},
month = sep,
doi = {10.48550/arXiv.2409.16480},
url = {https://arxiv.org/abs/2409.16480},
eprint = {2409.16480},
archiveprefix = {arXiv}
}
Metamodels play an important role in MDE and in specifying a software language. They are cornerstone to generate other artifacts of lower abstraction level, such as code. Developers then enrich the generated code to build their language services and tooling, e.g., editors, and checkers. When a metamodel evolves, part of the code is regenerated and all the additional developers’ code can be impacted, thus requiring erroneous code to be co-evolved accordingly. In this paper, we explore a novel approach to mitigate the challenge of metamodel evolution impacts on the code using LLMs. In fact, LLMs stand as promising tools for tackling increasingly complex problems and support developers in various tasks of writing, correcting, and documenting source code, models, and other artifacts. However, while there is an extensive empirical assessment of the LLMs capabilities in generating models, code, and tests, there is a lack of work on their ability to support their maintenance. In this paper, we focus on the particular problem of metamodels and code co-evolution. We first designed a prompt template structure that contains contextual information about metamodel changes, the abstraction gap between the metamodel and the code, and the erroneous code to co-evolve. To investigate the usefulness of this template, we generated three more variations of the prompts. The generated prompts are then given to the LLM to co-evolve the impacted code. We evaluated our generated prompts and other three of their variations with ChatGPT version 3.5 on seven Eclipse projects from OCL and Modisco evolved metamodels. Results show that ChatGPT can co-evolve correctly 88.7% of the errors due to metamodel evolution, varying from 75% to 100% of correctness rate. When varying the prompts, we observed increased correctness in two variants and decreased correctness in another variant. We also observed that varying the temperature hyperparameter yields better results with lower temperatures. Our results are observed on a total of 5320 generated prompts. Finally, when compared to the quick fixes of the IDE, the generated prompts co-evolutions completely outperform the quick fixes.
BibTeX
@article{kebaili2024empirical,
author = {Zohra Kaouter Kebaili and Djamel Eddine Khelladi and Mathieu Acher and Olivier Barais},
title = {An Empirical Study on Leveraging {LLMs} for Metamodels and Code Co-evolution},
journal = {Journal of Object Technology},
volume = {23},
number = {3},
pages = {1--14},
year = {2024},
month = aug,
doi = {10.5381/jot.2024.23.3.a6},
url = {https://doi.org/10.5381/jot.2024.23.3.a6}
}
Reproducibility (aka determinism in some cases) constitutes a fundamental aspect in various fields of computer science, such as floating-point computations in numerical analysis and simulation, concurrency models in parallelism, reproducible builds for third parties integration and packaging, and containerization for execution environments. These concepts, while pervasive across diverse concerns, often exhibit intricate inter-dependencies, making it challenging to achieve a comprehensive understanding. In this short and vision paper we delve into the application of software engineering techniques, specifically variability management, to systematically identify and explicit points of variability that may give rise to reproducibility issues (eg language, libraries, compiler, virtual machine, OS, environment variables, etc). The primary objectives are: i) gaining insights into the variability layers and their possible interactions, ii) capturing and documenting configurations for the sake of reproducibility, and iii) exploring diverse configurations to replicate, and hence validate and ensure the robustness of results. By adopting these methodologies, we aim to address the complexities associated with reproducibility and replicability in modern software systems and environments, facilitating a more comprehensive and nuanced perspective on these critical aspects.
BibTeX
@inproceedings{acher:hal-04582287,
author = {Acher, Mathieu and Combemale, Beno{\^i}t and Randrianaina, Georges Aaron and J{\'e}z{\'e}quel, Jean-Marc},
title = {{Embracing Deep Variability For Reproducibility and Replicability}},
booktitle = {{REP 2024 - ACM Conference on Reproducibility and Replicability}},
pages = {1-7},
year = {2024},
month = jun,
organization = {{ACM}},
address = {Rennes, France},
doi = {10.1145/3641525.3663621},
url = {https://hal.science/hal-04582287}
}
The ability to recreate computational results with minimal effort and actionable metrics provides a solid foundation for scientific research and software development. When people can replicate an analysis at the touch of a button using open-source software, open data, and methods to assess and compare proposals, it significantly eases verification of results, engagement with a diverse range of contributors, and progress. However, we have yet to fully achieve this; there are still many sociotechnical frictions. Inspired by David Donoho's vision, this talk aims to revisit the three crucial pillars of frictionless reproducibility (data sharing, code sharing, and competitive challenges) with the perspective of deep software variability. Our observation is that multiple layers — hardware, operating systems, third-party libraries, software versions, input data, compile-time options, and parameters — are subject to variability that exacerbates frictions but is also essential for achieving robust, generalizable results and fostering innovation. I will first review the literature, providing evidence of how the complex variability interactions across these layers affect qualitative and quantitative software properties, thereby complicating the reproduction and replication of scientific studies in various fields. I will then present some software engineering and AI techniques that can support the strategic exploration of variability spaces. These include the use of abstractions and models (e.g., feature models), sampling strategies (e.g., uniform, random), cost-effective measurements (e.g., incremental build of software configurations), and dimensionality reduction methods (e.g., transfer learning, feature selection, software debloating). I will finally argue that deep variability is both the problem and solution of frictionless reproducibility, calling the software science community to develop new methods and tools to manage variability and foster reproducibility in software systems.
BibTeX
@misc{acher2024deep,
author = {Acher, Mathieu},
title = {{Deep Software Variability and Frictionless Reproducibility}},
year = {2024},
month = jun,
howpublished = {Invited talk, Journ{\'e}es Nationales du GDR GPL 2024},
url = {https://hal.science/hal-04601752v1}
}
A critical aspect of software development, build reproducibility, ensures the dependability, security, and maintainability of software systems. Although several factors, including the build environment, have been investigated in the context of non-reproducible builds, to the best of our knowledge the precise influence of configuration options in configurable systems has not been thoroughly investigated. This paper aims at filling this gap. This paper thus proposes an approach for the automatic identification of configuration options causing non-reproducibility of builds. It begins by building a set of builds in order to detect non-reproducible ones through binary comparison. We then develop automated techniques that combine statistical learning with symbolic reasoning to analyze over 20,000 configuration options. Our methods are designed to both detect options causing non-reproducibility, and remedy non-reproducible configurations, two tasks that are challenging and costly to perform manually. We evaluate our approach on three case studies, namely Toybox, Busybox, and Linux, analyzing more than 2,000 configurations for each of them. Toybox and Busybox come exempt from nonreproducibility. In contrast, 47% of Linux configurations lead to non-reproducible builds. The approach we propose in this paper is capable of identifying 10 configuration options that caused this non-reproducibility. When confronted to the Linux documentation, none of these are documented as non-reproducible. Thus, our identified non-reproducible configuration options are novel knowledge and constitutes a direct, actionable information improvement for the Linux community. Finally, we demonstrate that our methodology effectively identifies a set of undesirable option values, enabling the enhancement and expansion of the Linux kernel documentation while automatically rectifying 96% of encountered non-reproducible builds.
BibTeX
@inproceedings{randrianaina:hal-04441579,
author = {Randrianaina, Georges Aaron and Khelladi, Djamel Eddine and Zendra, Olivier and Acher, Mathieu},
title = {{Options Matter: Documenting and Fixing Non-Reproducible Builds in Highly-Configurable Systems}},
booktitle = {{MSR 2024 - 21st International Conference on Mining Software Repository}},
pages = {1-11},
year = {2024},
month = apr,
address = {Lisbon, Portugal},
doi = {10.1145/3643991.3644913},
url = {https://inria.hal.science/hal-04441579}
}
Reinforcement Learning is the premier technique to approach sequential decision problems, including complex tasks such as driving cars and landing spacecraft. Among the software validation and verification practices, testing for functional fault detection is a convenient way to build trustworthiness in the learned decision model. While recent works seek to maximise the number of detected faults, none consider fault characterisation during the search for more diversity. We argue that policy testing should not find as many failures as possible (e.g., inputs that trigger similar car crashes) but rather aim at revealing as informative and diverse faults as possible in the model. In this paper, we explore the use of quality diversity optimisation to solve the problem of fault diversity in policy testing. Quality diversity (QD) optimisation is a type of evolutionary algorithm to solve hard combinatorial optimisation problems where high-quality diverse solutions are sought. We define and address the underlying challenges of adapting QD optimisation to the test of action policies. Furthermore, we compare classical QD optimisers to state-of-the-art frameworks dedicated to policy testing, both in terms of search efficiency and fault diversity. We show that QD optimisation, while being conceptually simple and generally applicable, finds effectively more diverse faults in the decision model, and conclude that QD-based policy testing is a promising approach.
BibTeX
@article{arxiv:2403.15065,
author = {Quentin Mazouni and Helge Spieker and Arnaud Gotlieb and Mathieu Acher},
title = {{Testing for Fault Diversity in Reinforcement Learning}},
journal = {CoRR},
volume = {abs/2403.15065},
year = {2024},
month = mar,
doi = {10.48550/arXiv.2403.15065},
url = {https://arxiv.org/abs/2403.15065},
eprint = {2403.15065},
archiveprefix = {arXiv}
}
Producing a variant of code is highly challenging, particularly for individuals unfamiliar with programming. This demonstration introduces a novel use of generative AI to aid end-users in customizing code. We first describe how generative AI can be used to customize code through prompts and instructions, and further demonstrate its potential in building end-user tools for configuring code. We showcase how to transform an undocumented, technical, low-level TikZ into a user-friendly, configurable, Web-based customization tool written in Python, HTML, CSS, and JavaScript and itself configurable. We discuss how generative AI can support this transformation process and traditional variability engineering tasks, such as identification and implementation of features, synthesis of a template code generator, and development of end-user configurators. We believe it is a first step towards democratizing variability programming, opening a path for end-users to adapt code to their needs.
BibTeX
@inproceedings{acher:hal-04312909,
author = {Acher, Mathieu},
title = {{A Demonstration of End-User Code Customization Using Generative AI}},
booktitle = {{VAMOS 2024 - 18th International Working Conference on Variability Modelling of Software-Intensive Systems}},
pages = {1-6},
year = {2024},
month = feb,
address = {Bern, Switzerland},
doi = {10.1145/3634713.3634732},
url = {https://hal.science/hal-04312909}
}
Modern software-based systems are highly configurable and come with a number of configuration options that impact the performance of the systems. However, selecting inappropriate values for these options can cause long response time, high CPU load, downtime, RAM exhaustion, resulting in performance degradation and poor software reliability. Consequently, considerable effort has been carried out to predict key performance metrics (execution time, program size, energy consumption, etc.) from the user's choice of configuration options values. The selection of inputs (e.g., JavaScript scripts embedded in a web page interpreted by Node.js or input videos encoded with x264 by a streaming platform) also impacts software performance, and there is a complex interplay between inputs and configurations. Unfortunately, owing to the huge variety of existing inputs, it is yet challenging to automate the prediction of software performance whatever their configuration and input. In this article, we empirically evaluate how supervised and transfer learning methods can be leveraged to efficiently learn performance models based on configuration options and input data. Our study over 1,941,075 data points empirically shows that measuring the performance of configurations on multiple inputs allows one to reuse this knowledge and train performance models robust to the change of input data. To the best of our knowledge, this is the first domain-agnostic empirical evaluation of machine learning methods addressing the input-aware performance prediction problem.
BibTeX
@article{lesoil:hal-04271476,
author = {Lesoil, Luc and Spieker, Helge and Gotlieb, Arnaud and Acher, Mathieu and Temple, Paul and Blouin, Arnaud and J{\'e}z{\'e}quel, Jean-Marc},
title = {{Learning input-aware performance models of configurable systems: An empirical evaluation}},
journal = {{Journal of Systems and Software}},
volume = {208},
pages = {111883},
year = {2024},
month = feb,
publisher = {{Elsevier}},
doi = {10.1016/j.jss.2023.111883},
url = {https://hal.science/hal-04271476}
}
In recent years, following tremendous achievements in Reinforcement Learning, a great deal of interest has been devoted to ML models for sequential decision-making. Together with these scientific breakthroughs/advances, research has been conducted to develop automated functional testing methods for finding faults in black-box Markov decision processes. Pang et al. (ISSTA 2022) presented a black-box fuzz testing framework called MDPFuzz. The method consists of a fuzzer whose main feature is to use Gaussian Mixture Models (GMMs) to compute coverage of the test inputs as the likelihood to have already observed their results. This guidance through coverage evaluation aims at favoring novelty during testing and fault discovery in the decision model. Pang et al. evaluated their work with four use cases, by comparing the number of failures found after twelve-hour testing campaigns with or without the guidance of the GMMs (ablation study). In this paper, we verify some of the key findings of the original paper and explore the limits of MDPFuzz through reproduction and replication. We re-implemented the proposed methodology and evaluated our replication in a large-scale study that extends the original four use cases with three new ones. Furthermore, we compare MDPFuzz and its ablated counterpart with a random testing baseline. We also assess the effectiveness of coverage guidance for different parameters, something that has not been done in the original evaluation. Despite this parameter analysis and unlike Pang et al.’s original conclusions, we find that in most cases, the aforementioned ablated Fuzzer outperforms MDPFuzz, and conclude that the coverage model proposed does not lead to finding more faults.
BibTeX
@inproceedings{10.1145/3650212.3680382,
author = {Mazouni, Quentin and Spieker, Helge and Gotlieb, Arnaud and Acher, Mathieu},
title = {Policy Testing with MDPFuzz (Replicability Study)},
booktitle = {Proceedings of the 33rd ACM SIGSOFT International Symposium on Software Testing and Analysis},
pages = {1567–1578},
numpages = {12},
series = {ISSTA 2024},
year = {2024},
publisher = {Association for Computing Machinery},
address = {New York, NY, USA},
isbn = {9798400706127},
doi = {10.1145/3650212.3680382},
url = {https://doi.org/10.1145/3650212.3680382},
eprint = {2502.19116},
archiveprefix = {arXiv}
}
Olivier Zeyen, Maxime Cordy, Gilles Perrouin, and Mathieu Acher
Proceedings of the 2024 IEEE/ACM 46th International Conference on Software Engineering: Companion Proceedings, ICSE Companion 2024, Lisbon, Portugal, April 14-20, 2024, 2024
Uniform Random Sampling (URS) is the problem of selecting solutions (models) from a Boolean formula such that each solution gets the same probability of being selected. URS has many applications. In large configurable software systems, one wants an unbiased sample of configurations to look for bugs at an affordable cost [12, 13]. Other applications of URS include deep learning verification (to sample inputs from unknown distributions) [2] and evolutionary algorithms (to initialize the input population) [4].
BibTeX
@inproceedings{DBLP:conf/icse/ZeyenCPA24,
author = {Olivier Zeyen and Maxime Cordy and Gilles Perrouin and Mathieu Acher},
title = {Exploring the Computational Complexity of {SAT} Counting and Uniform Sampling with Phase Transitions},
booktitle = {Proceedings of the 2024 {IEEE/ACM} 46th International Conference on Software Engineering: Companion Proceedings, {ICSE} Companion 2024, Lisbon, Portugal, April 14-20, 2024},
pages = {322--323},
year = {2024},
publisher = {{ACM}},
doi = {10.1145/3639478.3643097},
url = {https://doi.org/10.1145/3639478.3643097}
}
Olivier Zeyen, Maxime Cordy, Gilles Perrouin, and Mathieu Acher
Proceedings of the 2024 IEEE/ACM 12th International Conference on Formal Methods in Software Engineering (FormaliSE), Lisbon, Portugal, April 14-15, 2024, 2024
Despite its NP-completeness, the Boolean satisfiability problem gave birth to highly efficient tools that are able to find solutions to a Boolean formula and compute their number. Boolean formulae compactly encode huge, constrained search spaces for variability-intensive systems, e.g., the possible configurations of the Linux kernel. These search spaces are generally too big to explore exhaustively, leading most testing approaches to sample a few solutions before analysing them. A desirable property of such samples is uniformity: each solution should get the same selection probability. This property motivated the design of uniform random samplers, relying on SAT solvers and counters and achieving different tradeoffs between uniformity and scalability. Though we can observe their performance in practice, understanding the complexity these tools face and accurately predicting it is an under-explored problem. Indeed, structural metrics such as the number of variables and clauses involved in a formula poorly predict the sampling complexity. More elaborated ones, such as minimal independent support (MIS), are intractable to compute on large formulae. We provide an efficient parallel algorithm to compute a related metric, the number of equivalence classes, and demonstrate that this metric is highly correlated to time and memory usage of uniform random sampling and model counting tools. We explore the role of formula preprocessing on various metrics and show its positive influence on correlations. Relying on these correlations, we train an efficient classifier (F1-score 0.97) to predict whether uniformly sampling a given formula will exceed a specified budget. Our results allow us to characterise the similarities and differences between (uniform) sampling, solving and counting.
BibTeX
@inproceedings{DBLP:conf/icse-formalise/ZeyenCPA24,
author = {Olivier Zeyen and Maxime Cordy and Gilles Perrouin and Mathieu Acher},
title = {Preprocessing is What You Need: Understanding and Predicting the Complexity of SAT-based Uniform Random Sampling},
booktitle = {Proceedings of the 2024 {IEEE/ACM} 12th International Conference on Formal Methods in Software Engineering (FormaliSE), Lisbon, Portugal, April 14-15, 2024},
pages = {23--32},
year = {2024},
publisher = {{ACM}},
doi = {10.1145/3644033.3644371},
url = {https://doi.org/10.1145/3644033.3644371}
}
Maxime Cordy, Daniel Strüber, Mónica Pinto, Iris Groher, Deepak Dhungana, Jacob Krüger, Juliana Alves Pereira, Mathieu Acher, Thomas Thüm, Maurice H. ter Beek, Jessie Galasso-Carbonnel, Paolo Arcaini, Mohammad Reza Mousavi, Xhevahire Tërnava, José A. Galindo, Tao Yue, Lidia Fuentes, and José Miguel Horcas (eds.)
@proceedings{DBLP:conf/splc/2024b,
editor = {Maxime Cordy and Daniel Str{\"{u}}ber and M{\'{o}}nica Pinto and Iris Groher and Deepak Dhungana and Jacob Kr{\"{u}}ger and Juliana Alves Pereira and Mathieu Acher and Thomas Th{\"{u}}m and Maurice H. ter Beek and Jessie Galasso{-}Carbonnel and Paolo Arcaini and Mohammad Reza Mousavi and Xhevahire T{\"{e}}rnava and Jos{\'{e}} A. Galindo and Tao Yue and Lidia Fuentes and Jos{\'{e}} Miguel Horcas},
title = {Proceedings of the 28th {ACM} International Systems and Software Product Line Conference - Volume B, {SPLC} 2024, Dommeldange, Luxembourg, September 2-6, 2024},
year = {2024},
publisher = {{ACM}},
isbn = {979-8-4007-0593-9},
doi = {10.1145/3646548},
url = {https://doi.org/10.1145/3646548}
}
Maxime Cordy, Daniel Strüber, Mónica Pinto, Iris Groher, Deepak Dhungana, Jacob Krüger, Juliana Alves Pereira, Mathieu Acher, Thomas Thüm, Maurice H. ter Beek, Jessie Galasso-Carbonnel, Paolo Arcaini, Mohammad Reza Mousavi, Xhevahire Tërnava, José A. Galindo, Tao Yue, Lidia Fuentes, and José Miguel Horcas (eds.)
@proceedings{DBLP:conf/splc/2024a,
editor = {Maxime Cordy and Daniel Str{\"{u}}ber and M{\'{o}}nica Pinto and Iris Groher and Deepak Dhungana and Jacob Kr{\"{u}}ger and Juliana Alves Pereira and Mathieu Acher and Thomas Th{\"{u}}m and Maurice H. ter Beek and Jessie Galasso{-}Carbonnel and Paolo Arcaini and Mohammad Reza Mousavi and Xhevahire T{\"{e}}rnava and Jos{\'{e}} A. Galindo and Tao Yue and Lidia Fuentes and Jos{\'{e}} Miguel Horcas},
title = {Proceedings of the 28th {ACM} International Systems and Software Product Line Conference - Volume A, {SPLC} 2024, Dommeldange, Luxembourg, September 2-6, 2024},
year = {2024},
publisher = {{ACM}},
isbn = {979-8-4007-0593-9},
doi = {10.1145/3646548},
url = {https://doi.org/10.1145/3646548}
}
Quentin Mazouni, Helge Spieker, Arnaud Gotlieb, and Mathieu Acher
Proceedings of the 5th ACM/IEEE International Conference on Automation of Software Test (AST 2024), Lisbon, Portugal, April 15-16, 2024, 2024Best Paper Award
Reinforcement Learning is the premier technique to approach sequential decision problems, including complex tasks such as driving cars and landing spacecraft. Among the software validation and verification practices, testing for functional fault detection is a convenient way to build trustworthiness in the learned decision model. While recent works seek to maximise the number of detected faults, none consider fault characterisation during the search for more diversity. We argue that policy testing should not find as many failures as possible (e.g., inputs that trigger similar car crashes) but rather aim at revealing as informative and diverse faults as possible in the model. In this paper, we explore the use of quality diversity optimisation to solve the problem of fault diversity in policy testing. Quality diversity (QD) optimisation is a type of evolutionary algorithm to solve hard combinatorial optimisation problems where high-quality diverse solutions are sought. We define and address the underlying challenges of adapting QD optimisation to the test of action policies. Furthermore, we compare classical QD optimisers to state-of-the-art frameworks dedicated to policy testing, both in terms of search efficiency and fault diversity. We show that QD optimisation, while being conceptually simple and generally applicable, finds effectively more diverse faults in the decision model, and conclude that QD-based policy testing is a promising approach.
BibTeX
@inproceedings{DBLP:conf/ast/MazouniSGA24,
author = {Quentin Mazouni and Helge Spieker and Arnaud Gotlieb and Mathieu Acher},
title = {Testing for Fault Diversity in Reinforcement Learning},
booktitle = {Proceedings of the 5th {ACM/IEEE} International Conference on Automation of Software Test {(AST} 2024), Lisbon, Portugal, April 15-16, 2024},
pages = {136--146},
year = {2024},
publisher = {{ACM}},
doi = {10.1145/3644032.3644458},
url = {https://doi.org/10.1145/3644032.3644458},
eprint = {2403.15065},
archiveprefix = {arXiv}
}
In software product line (SPL) engineering, feature models are the de facto standard for modeling variability. A user can derive products out of a base model by selecting features of interest. Doing it automatically, however, requires a realization model, which is a description of how a base model should be modified when a given feature is selected/unselected. A realization model then necessarily depends on the base metamodel, asking for ad hoc solutions that have flourished in recent years. In this paper, we propose Greal, a generic solution to this problem in the form of (1) a generic declarative realization language that can be automatically composed with one or more base metamodels to yield a domain-specific realization language and (2) a product derivation algorithm applying a realization model to a base model and a resolved model to yield a derived product. We describe how, on top of Greal, we specialized a realization language to support both positive and negative variability, fit the syntax and semantics of the targeted language (BPMN) and take into account modeling practices at Airbus. We report on lessons learned of applying this approach on Program Development Plans based on business process models and discuss open problems.
BibTeX
@inproceedings{foures:hal-04216627,
author = {Foures, Damien and Acher, Mathieu and Barais, Olivier and Combemale, Benoit and J{\'e}z{\'e}quel, Jean-Marc and Kienzle, J{\"o}rg},
title = {{Experience in Specializing a Generic Realization Language for SPL Engineering at Airbus}},
booktitle = {{MODELS 2023 - 26th International Conference on Model-Driven Engineering Languages and Systems}},
pages = {1-12},
year = {2023},
month = oct,
publisher = {{IEEE}},
organization = {{ACM and IEEE}},
address = {V{\"a}ster{\aa}s, Sweden},
doi = {10.1109/models58315.2023.00035},
url = {https://inria.hal.science/hal-04216627}
}
Programming variability is central to the design and implementation of software systems that can adapt to a variety of contexts and requirements, providing increased flexibility and customization. Managing the complexity that arises from having multiple features, variations, and possible configurations is known to be highly challenging for software developers. In this paper, we explore how large language model (LLM)-based assistants can support the programming of variability. We report on new approaches made possible with LLM-based assistants, like: features and variations can be implemented as prompts; augmentation of variability out of LLM-based domain knowledge; seamless implementation of variability in different kinds of artefacts, programming languages, and frameworks, at different binding times (compile-time or run-time). We are sharing our data (prompts, sessions, generated code, etc.) to support the assessment of the effectiveness and robustness of LLMs for variability-related tasks.
BibTeX
@inproceedings{acher:hal-04153310,
author = {Acher, Mathieu and Duarte, Jos{\'e} Galindo and J{\'e}z{\'e}quel, Jean-Marc},
title = {{On Programming Variability with Large Language Model-based Assistant}},
booktitle = {{SPLC 2023 - 27th ACM International Systems and Software Product Lines Conference}},
pages = {1-7},
year = {2023},
month = aug,
publisher = {{ACM}},
organization = {{ACM}},
address = {Tokyo, Japan},
doi = {10.1145/3579027.3608972},
url = {https://inria.hal.science/hal-04153310}
}
The migration and reengineering of existing variants into a software product line (SPL) is an error-prone and time-consuming activity. Many extractive approaches have been proposed, spanning different activities from feature identification and naming to the synthesis of reusable artefacts. In this paper, we explore how large language model (LLM)-based assistants can support domain analysts and developers. We revisit four illustrative cases of the literature where the challenge is to migrate variants written in different formalism (UML class diagrams, Java, GraphML, statecharts). We systematically report on our experience with ChatGPT-4, describing our strategy to prompt LLMs and documenting positive aspects but also failures. We compare the use of LLMs with state-of-the-art approach, BUT4Reuse. While LLMs offer potential in assisting domain analysts and developers in transitioning software variants into SPLs, their intrinsic stochastic nature and restricted ability to manage large variants or complex structures necessitate a semiautomatic approach, complete with careful review, to counteract inaccuracies.
BibTeX
@inproceedings{acher:hal-04160693,
author = {Acher, Mathieu and Martinez, Jabier},
title = {{Generative AI for Reengineering Variants into Software Product Lines: An Experience Report}},
booktitle = {{SPLC 2023 - 27th ACM International Systems and Software Product Lines Conference}},
volume = {B},
pages = {1-9},
series = {B},
year = {2023},
month = aug,
publisher = {{ACM}},
address = {Tokyo, Japan},
doi = {10.1145/3579028.3609016},
url = {https://inria.hal.science/hal-04160693}
}
One of the main promises of software is that a result obtained from an experiment (e.g. a simulation) can be reproduced with a high degree of concordance. The quest for reproducibility has an impact on different scientific fields, takes different forms and requires making all the data and code available so that calculations can be run again with identical results. In this course, we will first review terminologies (e.g. reproducible vs replication vs repeatability), basic tools (e.g. versioning systems, build systems, package managers, notebooks), and techniques (e.g. automated testing, continuous integration and deployment, configuration management) related to reproducible science. We will then program a relatively simple feature in different variants and demonstrate that many factors (including programming languages, library versions, compilers, variable types, randomness management, etc.) can have an impact on the final result. Through this exercise, we aim to present and discuss software techniques, methodologies and tools that developers or scientists can use to address and mitigate reproducibility issues, hopefully leading to more robust and general results.
BibTeX
@misc{acher2023reproducible,
author = {Acher, Mathieu and Temple, Paul and Barais, Olivier},
title = {{Reproducible Science and Software Engineering}},
year = {2023},
month = jul,
address = {Valence, France},
howpublished = {Lecture, {\'E}cole Jeunes Chercheurs en Programmation (EJCP 2023), Valence, France},
url = {https://inria.hal.science/hal-04152637v2}
}
Models play a significant role in Model-Driven Engineering (MDE) and metamodels are commonly transformed into code. Developers intensively rely on the generated code to build language services and tooling, such as editors and views which are also tested to ensure their behavior. The metamodel evolution between releases updates the generated code, and this may impact the developers' additional, client code. Accordingly, the impacted code must be co-evolved too, but there is no guarantee of preserving its behavior correctness. This paper envisions an automatic approach for ensuring code co-evolution correctness. It first aims to trace the tests impacted by the metamodel evolution before and after the code co-evolution, and then compares them to analyze the behavior of the code. Preliminary evaluation on two implementations of OCL and Modisco Eclipse projects. showed that we can successfully traced the impacted tests automatically by selecting 738 and 412 tests, before and after co-evolution respectively, based on 303 metamodel changes. By running these impacted tests, we observed both behaviorally correct and incorrect code co-evolution.
BibTeX
@inproceedings{kebaili:hal-04126496,
author = {Kebaili, Zohra Kaouter and Khelladi, Djamel Eddine and Acher, Mathieu and Barais, Olivier},
title = {{Towards Leveraging Tests to Identify Impacts of Metamodel and Code Co-evolution}},
booktitle = {{Intelligent Information Systems - CAiSE Forum 2023 (35th International Conference on Advanced Information Systems Engineering)}},
volume = {477},
pages = {129-137},
series = {Lecture Notes in Business Information Processing},
year = {2023},
month = jun,
publisher = {{Springer International Publishing}},
address = {Zaragoza, Spain},
doi = {10.1007/978-3-031-34674-3_16},
url = {https://inria.hal.science/hal-04126496}
}
Software engineers are acutely aware that the build of software is an essential but resource-intensive step in any software development process. This is especially true when building large systems or highly configurable systems whose vast number of configuration options results in a space explosion in the number of versions that should ideally be built and evaluated. Linux is precisely one such large and highly configurable system with thousands of options that can be combined. Previous study showed the benefit of incremental build, however, only on small-sized configurable software systems, unlike Linux. Although incremental compilation for post-commit is used in Linux, we show in this paper that the build of large numbers of random Linux configurations does not benefit from incremental build. Thus, we introduce and detail PyroBuildS, our new approach to efficiently explore, with incremental builds, the very large configuration space of Linux. Very much like fireworks, PyroBuildS starts from several base configurations ("rockets") and generates mutated configurations ("sparks") derived from each of the base ones. This enables exploring the configuration space with an efficient incremental build of the mutants, while keeping a good amount of diversity. We show on a total of 2520 builds that our PyroBuildS approach does trigger synergies with the caching capabilities of Make, hence significantly decreasing builds time with gains up to 85%, while having a diversity of 33% of options and 15 out of 17 subsystems. Overall, individual contributors and continuous integration services can leverage PyroBuildS to efficiently augment their configuration builds, or reduce the cost of building numerous configurations.
BibTeX
@misc{hal:hal-04130361,
author = {Georges Aaron Randrianaina and Djamel Eddine Khelladi and Olivier Zendra and Mathieu Acher},
title = {{PyroBuildS: Enabling Efficient Exploration of Linux Configuration Space with Incremental Build}},
year = {2023},
month = jun,
howpublished = {Preprint, HAL},
url = {https://hal.science/hal-04130361v1}
}
Numerous software systems are highly configurable through runtime options (e.g., command-line parameters). Users can tune some of the options to meet various functional and non-functional requirements such as footprint, security, or execution time. However, some options are never set for a given system instance, and their values remain the same whatever the use cases of the system. Herein, we design a controlled experiment in which the system's run-time configuration space can be specialized at compile-time and combinations of options can be removed on demand. We perform an in-depth study of the well-known x264 video encoder and quantify the effects of its specialization to its non-functional properties, namely on binary size, attack surface, and performance while ensuring its validity. Our exploratory study suggests that the configurable specialization of a system has statistically significant benefits on most of its analysed non-functional properties, which benefits depend on the number of the debloated options. While our empirical results and insights show the importance of removing code related to unused run-time options to improve software systems, an open challenge is to further automate the specialization process.
BibTeX
@inproceedings{ternava:hal-03916459,
author = {T{\"e}rnava, Xhevahire and Acher, Mathieu and Combemale, Benoit},
title = {{Specialization of Run-time Configuration Space at Compile-time: An Exploratory Study}},
booktitle = {{SAC 2023 - The 38th ACM/SIGAPP Symposium on Applied Computing}},
pages = {1-10},
year = {2023},
month = mar,
publisher = {{ACM}},
address = {Tallinn, Estonia},
doi = {10.1145/3555776.3578613},
url = {https://hal.science/hal-03916459},
eprint = {2210.14082},
archiveprefix = {arXiv}
}
Software variability is largely accepted and explored in software engineering and seems to have become a norm and a must, if only in the context of product lines. Yet, the removal of superfluous or unneeded software artefacts and functionalities is an inevitable trend. It is frequently investigated in relation to software bloat. This paper is essentially a call to the community on software variability to devise methods and tools that will facilitate the removal of unneeded variability from software systems. The advantages are expected to be numerous in terms of functional and non-functional properties, such as maintainability (lower complexity), security (smaller attack surface), reliability, and performance (smaller binaries).
BibTeX
@inproceedings{acher:hal-03882594,
author = {Acher, Mathieu and Lesoil, Luc and Randrianaina, Georges Aaron and T{\"e}rnava, Xhevahire and Zendra, Olivier},
title = {{A Call for Removing Variability}},
booktitle = {{VaMoS 2023 - 17th International Working Conference on Variability Modelling of Software-Intensive Systems}},
pages = {3},
year = {2023},
month = jan,
address = {Odense, Denmark},
doi = {10.1145/3571788.3571801},
url = {https://hal.science/hal-03882594}
}
BURST is a benchmarking platform for uniform random sampling (URS) techniques. Given: i) the description of a sampling space provided as a Boolean formula (DIMACS), and ii) a sampling budget (time and strength of uniformity), BURST evaluates ten samplers for scalability and uniformity. BURST measures scalability based on the time required to produce a sample, and uniformity based on the state-of-the-art and proven statistical test Barbarik. BURST is easily extendable to new samplers and offers: i) 128 feature models (for highly-configurable systems), ii) many other models mined from the artificial intelligence/satisfiability solving benchmarks. BURST envisions supporting URS assessment and design across multiple research communities.
BibTeX
@article{acher:hal-03897639,
author = {Acher, Mathieu and Perrouin, Gilles and Cordy, Maxime},
title = {{BURST: Benchmarking Uniform Random Sampling Techniques}},
journal = {{Science of Computer Programming}},
volume = {226},
pages = {102914},
year = {2023},
month = jan,
publisher = {{Elsevier}},
doi = {10.1016/j.scico.2022.102914},
url = {https://hal.science/hal-03897639}
}
Widely used software systems such as video encoders are by necessity highly configurable, with hundreds or even thousands of options to choose from. Their users often have a hard time finding suitable values for these options (i.e., finding a proper configuration of the software system) to meet their goals for the tasks at hand, e.g., compress a video down to a certain size. One dimension of the problem is of course that performance depends on the input data: e.g., a video as input to an encoder like x264 or a file fed to a tool like xz. To achieve good performance, users should therefore take into account both dimensions of (1) software variability and (2) input data. This paper details a large study over 8 configurable systems that quantifies the existing interactions between input data and configurations of software systems. The results exhibit that (1) inputs fed to software systems can interact with their configuration options in non-monotonous ways, significantly impacting their performance properties (2) input sensitivity can challenge our knowledge of software variability and question the relevance of performance predictive models for a field deployment. Given the results of our study, we call researchers to address the problem of input sensitivity when tuning, predicting, understanding, and benchmarking configurable systems.
BibTeX
@article{lesoil:hal-03476464,
author = {Lesoil, Luc and Acher, Mathieu and Blouin, Arnaud and J{\'e}z{\'e}quel, Jean-Marc},
title = {{Input Sensitivity on the Performance of Configurable Systems: An Empirical Study}},
journal = {{Journal of Systems and Software}},
volume = {201},
pages = {111671},
year = {2023},
publisher = {{Elsevier}},
doi = {10.1016/j.jss.2023.111671},
url = {https://inria.hal.science/hal-03476464}
}
In sequential decision making, neural networks (NNs) are nowadays commonly used to represent and learn the agent's policy. This area of application has implied new software quality assessment challenges that traditional validation and verification practises are not able to handle. Subsequently, novel approaches have emerged to adapt those techniques to NN-based policies for sequential decision making. This survey paper aims at summarising these novel contributions and proposing future research directions. We conducted a literature review of recent research papers (from 2018 to beginning of 2023), whose topics cover aspects of the test or verification of NN-based policies. The selection has been enriched by a snowballing process from the previously selected papers, in order to relax the scope of the study and provide the reader with insight into similar verification challenges and their recent solutions. 18 papers have been finally selected. Our results show evidence of increasing interest for this subject. They highlight the diversity of both the exact problems considered and the techniques used to tackle them.
BibTeX
@article{DBLP:journals/corr/abs-2312-09680,
author = {Quentin Mazouni and Helge Spieker and Arnaud Gotlieb and Mathieu Acher},
title = {A Review of Validation and Verification of Neural Network-based Policies for Sequential Decision Making},
journal = {CoRR},
volume = {abs/2312.09680},
year = {2023},
doi = {10.48550/ARXIV.2312.09680},
url = {https://doi.org/10.48550/arXiv.2312.09680},
eprint = {2312.09680}
}
This handbook distils the wealth of expertise and knowledge from a large community of researchers and industrial practitioners in Software Product Lines (SPLs) gained through extensive and rigorous theoretical, empirical, and applied research. It is a timely compilation of well-established and cutting-edge approaches that can be leveraged by those facing the prevailing and daunting challenge of re-engineering their systems into SPLs. The selection of chapters provides readers with a wide and diverse perspective that reflects the complementary and varied expertise of the chapter authors. This perspective covers the re-engineering processes, from planning to execution. SPLs are families of systems that share common assets, allowing a disciplined software reuse. The adoption of SPL practices has shown to enable significant technical and economic benefits for the companies that employ them. However, successful SPLs rarely start from scratch, but instead, they usually start from a set of existing systems that must undergo well-defined re-engineering processes to unleash new levels of productivity and competitiveness. Practitioners will benefit from the lessons learned by the community, captured in the array of methodological and technological alternatives presented in the chapters of the handbook, and will gain the confidence for undertaking their own re-engineering challenges. Researchers and educators will find a valuable single-entry point to quickly become familiar with the state-of-the-art on the topic and the open research opportunities; including undergraduate, graduate students, and R&D engineers who want to have a comprehensive understanding of techniques in reverse engineering and re-engineering of variability-rich software systems.
BibTeX
@book{LMA2023,
editor = {Lopez-Herrejon, Roberto and Martinez, Jabier and Ziadi, Tewfik and Acher, Mathieu and Assunção, K.G. Wesley and Vergilio, Silvia},
title = {Handbook of Re-Engineering Software Intensive Systems into Software Product Lines},
year = {2023},
publisher = {Springer International Publishing},
isbn = {978-3-031-11685-8},
doi = {10.1007/978-3-031-11686-5},
url = {https://doi.org/10.1007/978-3-031-11686-5}
}
Constraints among features are central to the success and quality of software product lines (SPLs). Unfortunately, the number of potential interactions and dependencies, materialized as logical constraints, grows as the number of features increases in an SPL. In particular, it is easy to forget a constraint and thus mistakenly authorizes invalid products. Developers thus struggle to identify and track constraints throughout the engineering of more and more complex SPLs. In this chapter, we show how to leverage statistical machine learning (and more specifically decision trees) to automatically prevent the derivation of invalid products through the synthesis of constraints. The key principle is to try and test some product of an SPL and then identify what individual features or combinations of features (if any) are causing their non-validity (e.g., a product does not compile). A sample of derived products is used to train a classifier (here a decision tree but other classifiers might also be used as long as constraints can be easily extracted) that can classify any remaining products of the SPL. We illustrate the chapter through different application domains and software systems (a video generator, parametric programs for 3D printing, or the Linux kernel). We also discuss the cost, benefits, and applicability of the method.
BibTeX
@inbook{DBLP:books/sp/23/0003TAPJ23,
author = {Hugo Martin and Paul Temple and Mathieu Acher and Juliana Alves Pereira and Jean-Marc J{\'e}z{\'e}quel},
title = {Handbook of Re-Engineering Software Intensive Systems into Software Product Lines},
pages = {175--196},
chapter = {Machine Learning for Feature Constraints Discovery},
year = {2023},
publisher = {Springer International Publishing},
doi = {10.1007/978-3-031-11686-5_7},
url = {https://doi.org/10.1007/978-3-031-11686-5_7}
}
2022
Empirical Assessment of Generating Adversarial Configurations for Software Product Lines
Paul Temple, Gilles Perrouin, Mathieu Acher, Battista Biggio, Jean-Marc Jézéquel, and Fabio Roli
International Conference on Software Architecture (ICSA), Journal First Track, 2022
Abstract
Software product line (SPL) engineers put a lot of effort to ensure that, through the setting of a large number of possible configuration options, products are acceptable and well-tailored to customers' needs. Unfortunately, options and their mutual interactions create a huge configuration space which is intractable to exhaustively explore. Instead of testing all products, machine learning is increasingly employed to approximate the set of acceptable products out of a small training sample of configurations. Machine learning (ML) techniques can refine a software product line through learned constraints and a priori prevent non-acceptable products to be derived. In this paper, we use adversarial ML techniques to generate adver-sarial configurations fooling ML classifiers and pinpoint incorrect classifications of products (videos) derived from an industrial video generator. Our attacks yield (up to) a 100% misclassification rate and a drop in accuracy of 5%. We discuss the implications these results have on SPL quality assurance.
BibTeX
@inproceedings{templeEMSEAdvICSA,
author = {Temple, Paul and Perrouin, Gilles and Acher, Mathieu and Biggio, Battista and J{\'e}z{\'e}quel, Jean-Marc and Roli, Fabio},
title = {{Empirical Assessment of Generating Adversarial Configurations for Software Product Lines}},
booktitle = {{International Conference on Software Architecture (ICSA), Journal First Track}},
year = {2022},
month = nov
}
Linux kernels are used in a wide variety of appliances, many of them having strong requirements on the kernel size due to constraints such as limited memory or instant boot. With more than nine thousands of configuration options to choose from, developers and users of Linux actually spend significant effort to document, understand, and eventually tune (combinations of) options for meeting a kernel size. In this paper, we describe a large-scale endeavour automating this task and predicting a given Linux kernel binary size out of unmeasured configurations. We first experiment that state-of-theart solutions specifically made for configurable systems such as performance-influence models cannot cope with that number of options, suggesting that software product line techniques may need to be adapted to such huge configuration spaces. We then show that tree-based feature selection can learn a model achieving low prediction errors over a reduced set of options. The resulting model, trained on 95 854 kernel configurations, is fast to compute, simple to interpret and even outperforms the accuracy of learning without feature selection.
BibTeX
@inproceedings{acher:hal-03720273,
author = {Acher, Mathieu and Martin, Hugo and Pereira, Juliana Alves and Lesoil, Luc and Blouin, Arnaud and J{\'e}z{\'e}quel, Jean-Marc and Khelladi, Djamel Eddine and Barais, Olivier},
title = {{Feature Subset Selection for Learning Huge Configuration Spaces: The case of Linux Kernel Size}},
booktitle = {{SPLC 2022 - 26th ACM International Systems and Software Product Line Conference}},
pages = {1-12},
year = {2022},
month = sep,
address = {Graz, Austria},
doi = {10.1145/3546932.3546997},
url = {https://hal.science/hal-03720273}
}
Feature Toggles (often also referred to as Feature Flags) are a powerful technique, providing an alternative to maintaining multiple feature branches in source code. A condition within the code enables or disables a feature at runtime, hence providing a kind of runtime variability resolution. Several works have already identified the proximity of this concept with the notion of Feature found in Software Product Lines. In this paper, we propose to go one step further in unifying these concepts to provide a seamless transition between design time and runtime variability resolutions. We propose to model all the variability using a feature model. Then this feature model can be partially resolved at design time (yielding an incomplete product derivation), the unresolved variability being used to generate feature toggles that can be enabled/disabled at runtime. We first demonstrate these ideas on the toy example of the Expression Product Line, and then show how it can scale to build a configurable authentication system, where a partially resolved feature model can interface with popular feature toggle frameworks such as Togglz.
BibTeX
@inproceedings{jezequel:hal-03788437,
author = {J{\'e}z{\'e}quel, Jean-Marc and Kienzle, J{\"o}rg and Acher, Mathieu},
title = {{From feature models to feature toggles in practice}},
booktitle = {{SPLC 2022 - 26th ACM International Systems and Software Product Line Conference}},
pages = {234-244},
year = {2022},
month = sep,
publisher = {{ACM}},
address = {Graz / Hybrid, Austria},
doi = {10.1145/3546932.3547009},
url = {https://hal.science/hal-03788437}
}
Numerous software systems are configurable through compile-time options and the widely used ./configure. However, the combined effects of these options on binary's non-functional properties (size and attack surface) are often not documented, and or not well understood, even by experts. Our goal is to provide automated support for exploring and comprehending the configuration space (a.k.a., surface) of compile-time options using statistical learning techniques. In this paper, we perform an empirical study on four C-based configurable systems. We measure the variation of binary size and attack surface (by quantifying the number of code reuse gadgets) in over 400 compile-time configurations of a subject system. We then apply statistical learning techniques on top of our build infrastructure to identify how compile-time options relate to non-functional properties. Our results show that, by changing the default configuration, the system's binary size and gadgets vary greatly (roughly −79% to 244% and −77% to 30%, respectively). Then, we found out that identifying the most influential options can be accurately learned with a small training set, while their relative importance varies across size and attack surface for the same system. Practitioners can use our approach and artifacts to explore the effects of compile-time options in order to take informed decisions when configuring a system with ./configure.
BibTeX
@inproceedings{ternava:hal-03627246,
author = {T{\"e}rnava, Xhevahire and Acher, Mathieu and Lesoil, Luc and Blouin, Arnaud and J{\'e}z{\'e}quel, Jean-Marc},
title = {{Scratching the Surface of ./configure: Learning the Effects of Compile-Time Options on Binary Size and Gadgets}},
booktitle = {{ICSR 2022 - 20th International Conference on Software and Systems Reuse}},
pages = {1-18},
year = {2022},
month = jun,
address = {Montpellier, France},
doi = {10.1007/978-3-031-08129-3_3},
url = {https://hal.science/hal-03627246}
}
Software projects use build systems to automate the compilation, testing, and continuous deployment of their software products. As software becomes increasingly configurable, the build of multiple configurations is a pressing need, but expensive and challenging to implement. The current state of practice is to build independently (aka clean build) a software for a subset of configurations. While incremental build has been studied for software evolution and relatively small changes of the source code, it has surprisingly not been considered for software configurations. In this exploratory study, we examine the benefits and limits of building software configurations incrementally, rather than always building them cleanly. By using five real-life configurable systems as subjects, we explore whether incremental build works, outperforms a sequence of clean builds, is correct wrt clean build, and can be used to find an optimal ordering for building configurations. Our results show that incremental build is feasible in 100% of the times in four subjects and in 78% of the times in one subject. In average, 88.5% of the configurations could be built faster with incremental build while also finding several alternatives faster incremental builds. However, only 60% of faster incremental builds are correct. Still, when considering those correct incremental builds with clean builds, we could always find an optimal order that is faster than just a collection of clean builds with a gain up to 11.76%.
BibTeX
@inproceedings{randrianaina:hal-03547219,
author = {Randrianaina, Georges Aaron and T{\"e}rnava, Xhevahire and Khelladi, Djamel Eddine and Acher, Mathieu},
title = {{On the Benefits and Limits of Incremental Build of Software Configurations: An Exploratory Study}},
booktitle = {{ICSE 2022 - 44th International Conference on Software Engineering}},
pages = {1-12},
year = {2022},
month = may,
address = {Pittsburgh, Pennsylvania / Virtual, United States},
doi = {10.1145/3510003.3510190},
url = {https://hal.science/hal-03547219}
}
Building software is a crucial task to compile, test, and deploy software systems while continuously ensuring quality. As software is more and more configurable, building multiple configurations is a pressing need, yet, costly and challenging to instrument. The common practice is to independently build (a.k.a., clean build) a software for a subset of configurations. While incremental build has been considered for software evolution and relatively small modifications of the source code, it has surprisingly not been considered for software configurations. In this vision paper, we formulate the hypothesis that incremental build can reduce the cost of exploring the configuration space of software systems. We detail how we apply incremental build for two real-world application scenarios and conduct a preliminary evaluation on two case studies, namely x264 and Linux Kernel. For x264, we found that one can incrementally build configurations in an order such that overall build time is reduced. Nevertheless, we could not find any optimal order with the Linux Kernel, due to a high distance between random configurations. Therefore, we show it is possible to control the process of generating configurations: we could reuse commonality and gain up to 66% of build time compared to only clean builds.
BibTeX
@inproceedings{randrianaina:hal-03558479,
author = {Randrianaina, Georges Aaron and Khelladi, Djamel Eddine and Zendra, Olivier and Acher, Mathieu},
title = {{Towards Incremental Build of Software Configurations}},
booktitle = {{ICSE-NIER 2022 - 44th International Conference on Software Engineering -- New Ideas and Emerging Results}},
pages = {1-5},
year = {2022},
month = may,
address = {Pittsburgh, PA, United States},
doi = {10.1145/3510455.3512792},
url = {https://hal.science/hal-03558479}
}
With commits and releases, hundreds of tests are run on varying conditions (e.g., over different hardware and workloads) that can help to understand evolution and ensure non-regression of software performance. We hypothesize that performance is not only sensitive to evolution of software, but also to different variability layers of its execution environment, spanning the hardware, the operating system, the build, or the workload processed by the software. Leveraging the MongoDB dataset, our results show that changes in hardware and workload can drastically impact performance evolution and thus should be taken into account when reasoning about evolution. An open problem resulting from this study is how to manage the variability layers in order to efficiently test the performance evolution of a software.
BibTeX
@inproceedings{lesoil:hal-03624309,
author = {Lesoil, Luc and Acher, Mathieu and Blouin, Arnaud and J{\'e}z{\'e}quel, Jean-Marc},
title = {{Beware of the Interactions of Variability Layers When Reasoning about Evolution of MongoDB}},
booktitle = {{ICPE 2022 - 13th ACM/SPEC International Conference on Performance Engineering}},
pages = {1-5},
year = {2022},
month = apr,
address = {Beijing, China},
doi = {10.1145/3491204.3527489},
url = {https://hal.science/hal-03624309}
}
Biology, medicine, physics, astrophysics, chemistry: all these scientific domains need to process large amount of data with more and more complex software systems. For achieving reproducible science, there are several challenges ahead involving multidisciplinary collaboration and socio-technical innovation with software at the center of the problem. Despite the availability of data and code, several studies report that the same data analyzed with different software can lead to different results. I am seeing this problem as a manifestation of deep software variability: many factors (operating system, third-party libraries, versions, workloads, compile-time options and flags, etc.) themselves subject to variability can alter the results, up to the point it can dramatically change the conclusions of some scientific studies. In this keynote, I argue that deep software variability is a threat and also an opportunity for reproducible science. I first outline some works about (deep) software variability, reporting on preliminary evidence of complex interactions between variability layers. I then link the ongoing works on variability modelling and deep software variability in the quest for reproducible science.
BibTeX
@inproceedings{acher:hal-03528889,
author = {Acher, Mathieu},
title = {{Reproducible Science and Deep Software Variability}},
booktitle = {{VaMoS 2022 - 16th International Working Conference on Variability Modelling of Software-Intensive Systems}},
pages = {1-2},
year = {2022},
month = feb,
address = {Florence, Italy},
doi = {10.1145/3510466.3510481},
url = {https://hal.science/hal-03528889}
}
Many research studies predict the performance of configurable software using machine learning techniques, thus requiring large amounts of data. Transfer learning aims to reduce the amount of data needed to train these models and has been successfully applied on different executing environments (hardware) or software versions. In this paper we investigate for the first time the idea of applying transfer learning between distinct configurable systems. We design a study involving two video encoders (namely x264 and x265) coming from different code bases. Our results are encouraging since transfer learning outperforms traditional learning for two performance properties (out of three). We discuss the open challenges to overcome for a more general application.
BibTeX
@inproceedings{lesoil:hal-03514984,
author = {Lesoil, Luc and Martin, Hugo and Acher, Mathieu and Blouin, Arnaud and J{\'e}z{\'e}quel, Jean-Marc},
title = {{Transferring Performance between Distinct Configurable Systems : A Case Study}},
booktitle = {{VaMoS 2022 - 16th International Working Conference on Variability Modelling of Software-Intensive Systems}},
pages = {1-6},
year = {2022},
month = feb,
address = {Florence, Italy},
doi = {10.1145/3510466.3510486},
url = {https://hal.science/hal-03514984}
}
Feature toggling is a technique for enabling branching-in-code. It is increasingly used during continuous deployment to incrementally test and integrate new features before their release. In principle, feature toggles tend to be light, that is, they are defined as simple Boolean flags and used in conditional statements to condition the activation of some software features. However, there is a lack of knowledge on whether and how they may interact with each other, in that case their enabling and testing become complex. We argue that finding the interactions of feature toggles is valuable for developers to know which of them should be enabled at the same time, which are impacted by a removed toggle, and to avoid their mis-configurations. In this work, we mine feature toggles and their interactions in five open-source projects. We then analyse how they are realized and whether they tend to be multiplied over time. Our results show that 7% of feature toggles interact with each other, 33% of them interact with another code expression, and their interactions tend to increase over time (22%, on average). Further, their interactions are expressed by simple logical operators (i.e., and and or) and nested if statements. We propose to model them into a Feature Toggle Model, and believe that our results are helpful towards robust management approaches of feature toggles.
BibTeX
@inproceedings{ternava:hal-03527250,
author = {T{\"e}rnava, Xhevahire and Lesoil, Luc and Randrianaina, Georges Aaron and Khelladi, Djamel Eddine and Acher, Mathieu},
title = {{On the Interaction of Feature Toggles}},
booktitle = {{VaMoS 2022 - 16th International Working Conference on Variability Modelling of Software-Intensive Systems}},
year = {2022},
month = feb,
address = {Florence, Italy},
doi = {10.1145/3510466.3510485},
url = {https://hal.science/hal-03527250}
}
Numerous software systems are highly configurable through run-time options, such as command-line parameters. Users can tune some of the options to meet various functional and non-functional requirements such as footprint, security, or execution time. However, some options are never set for a given system instance, and their values remain the same whatever the use cases of the system. Herein, we design a controlled experiment in which the system's run-time configuration space can be specialized at compile-time and combinations of options can be removed on demand. We perform an in-depth study of the well-known x264 video encoder and quantify the effects of its specialization to its non-functional properties, namely on binary size, attack surface, and performance while ensuring its validity. Our exploratory study suggests that the configurable specialization of a system has statistically significant benefits on most of its analysed non-functional properties, which benefits depend on the number of the debloated options. While our empirical results and insights show the importance of removing code related to unused run-time options to improve software systems, an open challenge is to further automate the specialization process.
BibTeX
@article{DBLP:journals/corr/abs-2210-14082,
author = {Xhevahire T{\"e}rnava and Mathieu Acher and Beno{\^{\i}}t Combemale},
title = {Specialization of Run-time Configuration Space at Compile-time: An Exploratory Study},
journal = {CoRR},
volume = {abs/2210.14082},
year = {2022},
doi = {10.48550/arXiv.2210.14082},
url = {https://doi.org/10.48550/arXiv.2210.14082},
eprint = {2210.14082}
}
Language models are promising solutions for tackling increasing complex problems. In software engineering, they recently attracted attention in code assistants, with programs automatically written in a given programming language from a programming task description in natural language. They have the potential to save time and effort when writing code. However, these systems are currently poorly understood, preventing them from being used optimally. In this paper, we investigate the various input parameters of two language models, and conduct a study to understand if variations of these input parameters (e.g. programming task description and the surrounding context, creativity of the language model, number of generated solutions) can have a significant impact on the quality of the generated programs. We design specific operators for varying input parameters and apply them over two code assistants (Copilot and Codex) and two benchmarks representing algorithmic problems (HumanEval and LeetCode). Our results showed that varying the input parameters can significantly improve the performance of language models. However, there is a tight dependency when varying the temperature, the prompt and the number of generated solutions, making potentially hard for developers to properly control the parameters to obtain an optimal result. This work opens opportunities to propose (automated) strategies for improving performance.
BibTeX
@article{DBLP:journals/corr/abs-2210-14699,
author = {Jean{-}Baptiste D{\"{o}}derlein and Mathieu Acher and Djamel Eddine Khelladi and Beno{\^{\i}}t Combemale},
title = {Piloting Copilot and Codex: Hot Temperature, Cold Prompts, or Black Magic?},
journal = {CoRR},
volume = {abs/2210.14699},
year = {2022},
doi = {10.48550/arXiv.2210.14699},
url = {https://doi.org/10.48550/arXiv.2210.14699},
eprint = {2210.14699}
}
With large scale and complex configurable systems, it is hard for users to choose the right combination of options (i.e., configurations) in order to obtain the wanted trade-off between functionality and performance goals such as speed or size. Machine learning can help in relating these goals to the configurable system options, and thus, predict the effect of options on the outcome, typically after a costly training step. However, many configurable systems evolve at such a rapid pace that it is impractical to retrain a new model from scratch for each new version. In this paper, we propose a new method to enable transfer learning of binary size predictions among versions of the same configurable system. Taking the extreme case of the Linux kernel with its ≈ 14, 500 configuration options, we first investigate how binary size predictions of kernel size degrade over successive versions. We show that the direct reuse of an accurate prediction model from 2017 quickly becomes inaccurate when Linux evolves, up to a 32% mean error by August 2020. We thus propose a new approach for transfer evolution-aware model shifting (TEAMS). It leverages the structure of a configurable system to transfer an initial predictive model towards its future versions with a minimal amount of extra processing for each version. We show that TEAMS vastly outperforms state of the art approaches over the 3 years history of Linux kernels, from 4.13 to 5.8.
BibTeX
@article{martin:hal-03358817,
author = {Martin, Hugo and Acher, Mathieu and Pereira, Juliana Alves and Lesoil, Luc and J{\'e}z{\'e}quel, Jean-Marc and Khelladi, Djamel Eddine},
title = {{Transfer Learning Across Variants and Versions: The Case of Linux Kernel Size}},
journal = {{IEEE Transactions on Software Engineering}},
volume = {48},
number = {11},
pages = {4274--4290},
year = {2022},
publisher = {{Institute of Electrical and Electronics Engineers}},
doi = {10.1109/tse.2021.3116768},
url = {https://hal.science/hal-03358817}
}
The society expects software to deliver the right functionality, in a short amount of time and with fewer resources, in every possible circumstance whatever are the hardware, the operating systems, the compilers, or the data fed as input. For fitting such a diversity of needs, it is common that software comes in many variants and is highly configurable through configuration options, runtime parameters, conditional compilation directives, menu preferences, configuration files, plugins, etc. As there is no one-size-fits-all solution, software variability ("the ability of a software system or artifact to be efficiently extended, changed, customized or configured for use in a particular context") has been studied the last two decades and is a discipline of its own. Though highly desirable, software variability also introduces an enormous complexity due to the combinatorial explosion of possible variants. For example, the Linux kernel has 15000+ options and most of them can have 3 values: "yes", "no", or "module". Variability is challenging for maintaining, verifying, and configuring software systems (Web applications, Web browsers, video tools, etc.). It is also a source of opportunities to better understand a domain, create reusable artefacts, deploy performance-wise optimal systems, or find specialized solutions to many kinds of problems. In many scenarios, a model of variability is either beneficial or mandatory to explore, observe, and reason about the space of possible variants. For instance, without a variability model, it is impossible to establish a sampling strategy that would satisfy the constraints among options and meet coverage or testing criteria. I address a central question in this HDR manuscript: How to model software variability? I detail several contributions related to modelling, reverse engineering, and learning software variability. I first contribute to support the persons in charge of manually specifying feature models, the de facto standard for modeling variability. I develop an algebra together with a language for supporting the composition, decomposition, diff, refactoring, and reasoning of feature models. I further establish the syntactic and semantic relationships between feature models and product comparison matrices, a large class of tabular data. I then empirically investigate how these feature models can be used to test in the large configurable systems with different sampling strategies. Along this effort, I report on the attempts and lessons learned when defining the "right" variability language. From a reverse engineering perspective, I contribute to synthesize variability information into models and from various kinds of artefacts. I develop foundations and methods for reverse engineering feature models from satisfiability formulae, product comparison matrices, dependencies files and architectural information, and from Web configurators. I also report on the degree of automation and show that the involvement of developers and domain experts is beneficial to obtain high-quality models. Thirdly, I contribute to learning constraints and non-functional properties (performance) of a variability-intensive system. I describe a systematic process "sampling, measuring, learning" that aims to enforce or augment a variability model, capturing variability knowledge that domain experts can hardly express. I show that supervised, statistical machine learning can be used to synthesize rules or build prediction models in an accurate and interpretable way. This process can even be applied to huge configuration space, such as the Linux kernel one. Despite a wide applicability and observed benefits, I show that each individual line of contributions has limitations. I defend the following answer: a supervised, iterative process (1) based on the combination of reverse engineering, modelling, and learning techniques; (2) capable of integrating multiple variability information (eg expert knowledge, legacy artefacts, dynamic observations). Finally, this work opens different perspectives related to so-called deep software variability, security, smart build of configurations, and (threats to) science.
BibTeX
@phdthesis{acher:tel-03521806,
author = {Acher, Mathieu},
title = {{Modelling, Reverse Engineering, and Learning Software Variability}},
year = {2021},
month = nov,
school = {{Universit{\'e} de Rennes 1}},
type = {Habilitation {\`a} diriger des recherches},
url = {https://hal.science/tel-03521806}
}
Many software projects are configurable through compile-time options (e.g., using ./configure) and also through run-time options (e.g., command-line parameters, fed to the software at execution time). Several works have shown how to predict the effect of run-time options on performance. However it is yet to be studied how these prediction models behave when the software is built with different compile-time options. For instance, is the best run-time configuration always the best w.r.t. the chosen compilation options? In this paper, we investigate the effect of compile-time options on the performance distributions of 4 software systems. There are cases where the compiler layer effect is linear which is an opportunity to generalize performance models or to tune and measure runtime performance at lower cost. We also prove there can exist an interplay by exhibiting a case where compile-time options significantly alter the performance distributions of a configurable system.
BibTeX
@inproceedings{lesoil:hal-03286127,
author = {Lesoil, Luc and Acher, Mathieu and T{\"e}rnava, Xhevahire and Blouin, Arnaud and J{\'e}z{\'e}quel, Jean-Marc},
title = {{The Interplay of Compile-time and Run-time Options for Performance Prediction}},
booktitle = {{SPLC 2021 - 25th ACM International Systems and Software Product Line Conference - Volume A}},
pages = {1-12},
year = {2021},
month = sep,
publisher = {{ACM}},
address = {Leicester, United Kingdom},
doi = {10.1145/3461001.3471149},
url = {https://hal.science/hal-03286127}
}
The specialization of the configuration space of a software system has been considered for targeting specific configuration profiles, usages, deployment scenarios, or hardware settings. The challenge is to find constraints among options' values that only retain configurations meeting a performance objective. Since the exponential nature of configurable systems makes a manual specialization unpractical, several approaches have considered its automation using machine learning, i.e., measuring a sample of configurations and then learning what options' values should be constrained. Even focusing on learning techniques based on decision trees for their built-in explainability, there is still a wide range of possible approaches that need to be evaluated, i.e., how accurate is the specialization with regards to sampling size, performance thresholds, and kinds of configurable systems. In this paper, we compare six learning techniques: three variants of decision trees (including a novel algorithm) with and without the use of model-based feature selection. We first perform a study on 8 configurable systems considered in previous related works and show that the accuracy reaches more than 90% and that feature selection can improve the results in the majority of cases. We then perform a study on the Linux kernel and show that these techniques performs as well as on the other systems. Overall, our results show that there is no one-size-fits-all learning variant (though high accuracy can be achieved): we present guidelines and discuss tradeoffs.
BibTeX
@inproceedings{martin:hal-03335263,
author = {Martin, Hugo and Acher, Mathieu and Pereira, Juliana Alves and J{\'e}z{\'e}quel, Jean-Marc},
title = {{A comparison of performance specialization learning for configurable systems}},
booktitle = {{SPLC 2021 - 25th ACM International Systems and Software Product Line Conference}},
pages = {1-11},
year = {2021},
month = sep,
publisher = {{ACM}},
address = {Leicester, United Kingdom},
doi = {10.1145/3461001.3471155},
url = {https://hal.science/hal-03335263}
}
Feature models were invented in 1990 and have been recognised as one of the main contributions to the Software Product Line community. Although there have been several attempts to establish and study a sort of standard variability modelling language, there is still no consensus on a simple feature modelling language. There can be many motivations to have one but among others, there is one that is very important: information sharing among researchers, tools or developers. Following the spirit of the first three editions, this workshop is an interactive event where all participants shall share knowledge, but also ongoing realizations about how to build up a simple feature modelling language that all the community can agree on.
BibTeX
@inproceedings{thum2021fourth,
author = {Thomas Thüm and Philippe Collet and Mathieu Acher},
title = {Fourth International Workshop on Languages for Modelling Variability ({MODEVAR@SPLC} 2021)},
booktitle = {{SPLC} '21: 25th {ACM} International Systems and Software Product Line Conference, Leicester, United Kingdom, September 6-11, 2021, Volume A},
pages = {205},
year = {2021},
month = sep,
publisher = {{ACM}},
doi = {10.1145/3461001.3473056},
url = {https://doi.org/10.1145/3461001.3473056}
}
Most modern software systems (operating systems like Linux or Android, Web browsers like Firefox or Chrome, video encoders like ffmpeg, x264 or VLC, mobile and cloud applications, etc.) are highly configurable. Hundreds of configuration options, features, or plugins can be combined, each potentially with distinct functionality and effects on execution time, security, energy consumption, etc. Due to the combinatorial explosion and the cost of executing software, it is quickly impossible to exhaustively explore the whole configuration space. Hence, numerous works have investigated the idea of learning it from a small sample of configurations' measurements. The pattern “sampling, measuring, learning" has emerged in the literature, with several practical interests for both software developers and end-users of configurable systems. In this systematic literature review, we report on the different application objectives (e.g., performance prediction, configuration optimization, constraint mining), use-cases, targeted software systems, and application domains. We review the various strategies employed to gather a representative and cost-effective sample. We describe automated software techniques used to measure functional and non-functional properties of configurations. We classify machine learning algorithms and how they relate to the pursued application. Finally, we also describe how researchers evaluate the quality of the learning process. The findings from this systematic review show that the potential application objective is important; there are a vast number of case studies reported in the literature related to particular domains or software systems. Yet, the huge variant space of configurable systems is still challenging and calls to further investigate the synergies between artificial intelligence and software engineering.
BibTeX
@article{alvespereira:hal-02148791,
author = {Alves Pereira, Juliana and Martin, Hugo and Acher, Mathieu and J{\'e}z{\'e}quel, Jean-Marc and Botterweck, Goetz and Ventresque, Anthony},
title = {{Learning Software Configuration Spaces: A Systematic Literature Review}},
journal = {{Journal of Systems and Software}},
volume = {182},
pages = {111044},
year = {2021},
month = aug,
publisher = {{Elsevier}},
doi = {10.1016/j.jss.2021.111044},
url = {https://hal.science/hal-02148791},
eprint = {1906.03018},
archiveprefix = {arXiv}
}
The performance of software systems (such as speed, memory usage, correct identification rate) tends to be an evermore important concern, often nowadays on par with functional correctness for critical systems.Systematically testing these performance concerns is however extremely difficult, in particular because there exists no theory underpinning the evaluation of a performance test suite, i.e., to tell the software developer whether such a test suite is "good enough" or even whether a test suite is better than another one. This paper proposes to apply Multimorphic testing and empirically assess the effectiveness of performance test suites of software systems coming from various domains. By analogy with mutation testing, our core idea is to leverage the typical configurability of these systems, and to check whether it makes any difference in the outcome of the tests: i.e., are some tests able to "kill" underperforming system configurations? More precisely, we propose a framework for defining and evaluating the coverage of a test suite with respect to a quantitative property of interest. Such properties can be the execution time, the memory usage or the success rate in tasks performed by a software system. This framework can be used to assess whether a new test case is worth adding to a test suite or to select an optimal test suite with respect to a property of interest. We evaluate several aspects of our proposal through 3 empirical studies carried out in different fields: object tracking in videos, object recognition in images, and code generators.
BibTeX
@article{temple:hal-02177158,
author = {Temple, Paul and Acher, Mathieu and J{\'e}z{\'e}quel, Jean-Marc},
title = {{Empirical Assessment of Multimorphic Testing}},
journal = {{IEEE Transactions on Software Engineering (TSE)}},
volume = {47},
number = {7},
pages = {1511--1527},
year = {2021},
month = jul,
publisher = {{Institute of Electrical and Electronics Engineers}},
doi = {10.1109/TSE.2019.2926971},
url = {https://hal.science/hal-02177158}
}
Configuring software is a powerful means to reach functional and performance goals of a system. However, many layers (hardware, operating system, input data, etc.), themselves subject to variability, can alter performances of software configurations. For instance, configurations' options of the x264 video encoder may have very different effects on x264's encoding time when used with different input videos, depending on the hardware on which it is executed. In this vision paper, we coin the term deep software variability to refer to the interaction of all external layers modifying the behavior or non-functional properties of a software. Deep software variability challenges practitioners and researchers: the combinatorial explosion of possible executing environments complicates the understanding, the configuration, the maintenance, the debug, and the test of configurable systems. There are also opportunities: harnessing all variability layers (and not only the software layer) can lead to more efficient systems and configuration knowledge that truly generalizes to any usage and context.
BibTeX
@inproceedings{lesoil:hal-03084276,
author = {Lesoil, Luc and Acher, Mathieu and Blouin, Arnaud and J{\'e}z{\'e}quel, Jean-Marc},
title = {{Deep Software Variability: Towards Handling Cross-Layer Configuration}},
booktitle = {{VaMoS 2021 - 15th International Working Conference on Variability Modelling of Software-Intensive Systems}},
year = {2021},
month = feb,
address = {Krems / Virtual, Austria},
doi = {10.1145/3442391.3442402},
url = {https://hal.science/hal-03084276}
}
Widely used software systems such as video encoders are by necessity highly configurable, with hundreds or even thousands of options to choose from. Their users often have a hard time finding suitable values for these options (i.e. finding a proper configuration of the software system) to meet their goals for the tasks at hand, e.g. compress a video down to a certain size. One dimension of the problem is of course that performance depends on the input data: a video as input to an encoder like x264 or a file system fed to a tool like xz. To achieve good performance, users should therefore take into account both dimensions of (1) software variability and (2) input data. In this problem-statement paper, we conduct a large study over 8 configurable systems that quantifies the existing interactions between input data and configurations of software systems. The results exhibit that (1) inputs fed to software systems interact with their configuration options in non monotonous ways, significantly impacting their performance properties (2) tuning a software system for its input data makes it possible to multiply its performance by up to ten (3) input variability can jeopardize the relevance of performance predictive models for a field deployment.
BibTeX
@article{DBLP:journals/corr/abs-2112-07279,
author = {Luc Lesoil and Mathieu Acher and Arnaud Blouin and Jean{-}Marc J{\'{e}}z{\'{e}}quel},
title = {The Interaction between Inputs and Configurations fed to Software Systems: an Empirical Study},
journal = {CoRR},
volume = {abs/2112.07279},
year = {2021},
doi = {10.48550/arXiv.2112.07279},
url = {https://arxiv.org/abs/2112.07279},
eprint = {2112.07279}
}
We present BURST, a benchmarking platform for uniform random sampling techniques. With BURST, researchers have a flexible, controlled environment in which they can evaluate the scalability and uniformity of their sampling. BURST comes with an extensive — and extensible — benchmark dataset comprising 128 feature models, including challenging, real-world models of the Linux kernel. BURST takes as inputs a sampling tool, a set of feature models and a sampling budget. It automatically translates any feature model of the set in DIMACS and invokes the sampling tool to generate the budgeted number of samples. To evaluate the scalability of the sampling tool, BURST measures the time the tool needs to produce the requested sample. To evaluate the uniformity of the produced sample, BURST integrates the state-of-the-art and proven statistical test Barbarik. We envision BURST to become the starting point of a standardisation initiative of sampling tool evaluation. Given the huge interest of research for sampling algorithms and tools, this initiative would have the potential to reach and crosscut multiple research communities including AI, ML, SAT and SPL.
BibTeX
@inproceedings{acherBURST2021,
author = {Acher, Mathieu and Perrouin, Gilles and Cordy, Maxime},
title = {BURST: A Benchmarking Platform for Uniform Random Sampling Techniques},
booktitle = {Proceedings of the 25th ACM International Systems and Software Product Line Conference - Volume B},
pages = {36–40},
numpages = {5},
series = {SPLC '21},
year = {2021},
publisher = {Association for Computing Machinery},
address = {New York, NY, USA},
isbn = {9781450384704},
doi = {10.1145/3461002.3473070},
url = {https://doi.org/10.1145/3461002.3473070}
}
Software product line (SPL) engineers put a lot of effort to ensure that, through the setting of a large number of possible configuration options, products are acceptable and well-tailored to customers' needs. Unfortunately, options and their mutual interactions create a huge configuration space which is intractable to exhaustively explore. Instead of testing all products, machine learning is increasingly employed to approximate the set of acceptable products out of a small training sample of configurations. Machine learning (ML) techniques can refine a software product line through learned constraints and a priori prevent non-acceptable products to be derived. In this paper, we use adversarial ML techniques to generate adver-sarial configurations fooling ML classifiers and pinpoint incorrect classifications of products (videos) derived from an industrial video generator. Our attacks yield (up to) a 100% misclassification rate and a drop in accuracy of 5%. We discuss the implications these results have on SPL quality assurance.
BibTeX
@article{templeEMSEAdv,
author = {Temple, Paul and Perrouin, Gilles and Acher, Mathieu and Biggio, Battista and J{\'e}z{\'e}quel, Jean-Marc and Roli, Fabio},
title = {{Empirical Assessment of Generating Adversarial Configurations for Software Product Lines}},
journal = {{Empirical Software Engineering (ESE)}},
volume = {26},
number = {1},
pages = {6},
year = {2020},
month = nov,
doi = {10.1007/s10664-020-09915-7}
}
Feature models were invented in 1990 and have been recognised as one of the main contributions to the Software Product Line community. Although there have been several attempts to establish a sort of standard variability modelling language, there is still no consensus on a simple feature modelling language. There can be many motivations to have one but among others, there is one that is very important: information sharing among researchers, tools or developers. Following the spirit of the first two editions, this workshop is an interactive event where all participants shall share knowledge, but also first realizations about how to build up a simple feature modelling language that all the community can agree on.
BibTeX
@inproceedings{acher2020third,
author = {Mathieu Acher and Philippe Collet and David Benavides and Rick Rabiser},
title = {Third International Workshop on Languages for Modelling Variability ({MODEVAR@SPLC} 2020)},
booktitle = {{SPLC} '20: 24th {ACM} International Systems and Software Product Line Conference, Montreal, Quebec, Canada, October 19-23, 2020, Volume A},
pages = {36:1},
year = {2020},
month = oct,
publisher = {{ACM}},
doi = {10.1145/3382025.3414948},
url = {https://doi.org/10.1145/3382025.3414948}
}
Software Product Line (SPL) migration remains a challenging endeavour. From organizational issues to purely technical challenges, there is a wide range of barriers that complicates SPL adoption. This workshop aims to foster research about making the most of the two main inputs for SPL migration: 1) domain knowledge and 2) legacy assets. Domain knowledge, usually implicit and spread across an organization, is key to define the SPL scope and to validate the variability model and its semantics. At the technical level, domain expertise is also needed to create or extract the reusable software components. Legacy assets can be, for instance, similar product variants (e.g., requirements, models, source code, etc.) that were implemented using ad-hoc reuse techniques such as clone-and-own. More generally, the workshop REverse Variability Engineering attracts researchers and practitioners contributing to processes, techniques, tools, or empirical studies related to the automatic, semi-automatic or manual extraction or refinement of SPL assets.
BibTeX
@inproceedings{assuncao2020reve,
author = {Wesley K. G. Assunção and Mathieu Acher and Tewfik Ziadi and Jabier Martinez},
title = {{REVE} 2020: 8th International Workshop on Reverse Variability Engineering},
booktitle = {{SPLC} '20: 24th {ACM} International Systems and Software Product Line Conference, Montreal, Quebec, Canada, October 19-23, 2020, Volume A},
pages = {35:1},
year = {2020},
month = oct,
publisher = {{ACM}},
doi = {10.1145/3382025.3414947},
url = {https://doi.org/10.1145/3382025.3414947}
}
This is an extended abstract of the article: Axel Halin, Alexandre Nuttinck, Mathieu Acher, Xavier Devroey, Gilles Perrouin, and Benoit Baudry. 2018. Test them all, is it worth it? Assessing configuration sampling on the JHipster Web development stack. In Empirical Software Engineering (17 Jul 2018). https://doi.org/10.1007/s10664-018-9635-4.
BibTeX
@inproceedings{halin2020test,
author = {Axel Halin and Alexandre Nuttinck and Mathieu Acher and Xavier Devroey and Gilles Perrouin and Benoit Baudry},
title = {Test them all, is it worth it?: assessing configuration sampling on the {JHipster} web development stack},
booktitle = {{SPLC} '20: 24th {ACM} International Systems and Software Product Line Conference, Montreal, Quebec, Canada, October 19-23, 2020, Volume A},
pages = {12:1},
year = {2020},
month = oct,
publisher = {{ACM}},
doi = {10.1145/3382025.3414985},
url = {https://doi.org/10.1145/3382025.3414985}
}
@proceedings{DBLP:conf/vamos/2020,
editor = {Maxime Cordy and Mathieu Acher and Danilo Beuche and Gunter Saake},
title = {VaMoS '20: 14th International Working Conference on Variability Modelling of Software-Intensive Systems, Magdeburg Germany, February 5-7, 2020},
year = {2020},
publisher = {{ACM}},
isbn = {978-1-4503-7501-6},
doi = {10.1145/3377024},
url = {https://doi.org/10.1145/3377024}
}
Metamodels play a significant role to describe and analyze the relations between domain concepts. They are also cornerstone to build a software language (SL) for a domain and its associated tooling. Metamodel definition generally drives code generation of a core API. The latter is further enriched by developers with additional code implementing advanced functionalities, e.g., checkers, recommenders, etc. When a SL is evolved to the next version, the metamodels are evolved as well before to regenerate the core API code. As a result, the developers added code both in the core API and the SL toolings may be impacted and thus may need to be co-evolved accordingly. Many approaches support the co-evolution of various artifacts when metamodels evolve. However, not the co-evolution of code. This paper fills this gap. We propose a semi-automatic co-evolution approach based on change propagation. The premise is that knowledge of the metamodel evolution changes can be propagated by means of resolutions to drive the code co-evolution. Our approach leverages on the abstraction level of metamodels where a given metamodel element has often different usages in the code. It supports alternative co-evaluations to meet different developers needs. Our work is evaluated on three Eclipse SL implementations, namely OCL, Modisco, and Papyrus over several evolved versions of metamodels and code. In response to five different evolved metamodels, we co-evolved 976 impacts over 18 projects.A comparison of our co-evolved code with the versioned ones shows the usefulness of our approach. Our approach was able to reach a weighted average of 87.4% and 88.9% respectively of precision and recall while supporting useful alternative co-evolution that developers have manually performed.
BibTeX
@inproceedings{DBLP:conf/icse/KhelladiCABJ20,
author = {Djamel Eddine Khelladi and Benoit Combemale and Mathieu Acher and Olivier Barais and Jean-Marc J{\'e}z{\'e}quel},
title = {Co-evolving code with evolving metamodels},
booktitle = {{ICSE} '20: 42nd International Conference on Software Engineering, Seoul, South Korea, 27 June - 19 July, 2020},
pages = {1496--1508},
year = {2020},
publisher = {{ACM}},
doi = {10.1145/3377811.3380324},
url = {https://doi.org/10.1145/3377811.3380324}
}
Djamel Eddine Khelladi, Benoit Combemale, Mathieu Acher, and Olivier Barais
ICSE-NIER 2020: 42nd International Conference on Software Engineering, New Ideas and Emerging Results, Seoul, South Korea, 27 June - 19 July, 2020, 2020
Model-driven software engineering fosters abstraction through the use of models and then automation by transforming them into various artefacts, in particular to code, for example: 1) from architectural models to code, 2) from metamodels to API code (with EMF in Eclipse), 3) from entity models to front-end and back-end code in Web stack application (with JHispter), etc. In all these examples, the generated code is usually enriched by developers with additional code implementing advanced functionalities (e.g., checkers, recommenders, etc.) to build a full coherent system. When the system must evolve, so are the models to regenerate the code. As a result, the developers' enriched code may be impacted and thus need to co-evolve accordingly. Many approaches support the co-evolution of various artifacts, but not the co-evolution of code. This paper sheds light on this issue and envisions to fill this gap. We formulate the hypothesis that the code co-evolution can be driven by the model changes by means of change propagation. To investigate this hypothesis, we implemented a prototype for the case of metamodels and their accompanying code in EMF Eclipse. As a preliminary evaluation, we considered the case of the OCL Pivot metamodel evolution and its code co-evolution in two projects from version 3.2.2 to 3.4.4. Preliminary results confirms our hypothesis that model-driven evolution changes can effectively drive the code co-evolution. On 562 impacts in two projects' code by 221 metamodel changes, our approach was able to reach the average of 89% and 92,5% respectively of precision and recall.
BibTeX
@inproceedings{DBLP:conf/icse/KhelladiCAB20,
author = {Djamel Eddine Khelladi and Benoit Combemale and Mathieu Acher and Olivier Barais},
title = {On the power of abstraction: a model-driven co-evolution approach of software code},
booktitle = {{ICSE-NIER} 2020: 42nd International Conference on Software Engineering, New Ideas and Emerging Results, Seoul, South Korea, 27 June - 19 July, 2020},
pages = {85--88},
year = {2020},
publisher = {{ACM}},
doi = {10.1145/3377816.3381727},
url = {https://doi.org/10.1145/3377816.3381727}
}
The goal of this tutorial is to give an introduction to how machine learning can be used to support activities related to the engineering of con gurable systems and software product lines. To the best of our knowledge, this is the rst practical tutorial in this trending eld. The tutorial is based on a systematic literature review and includes practical tasks (specialization, performance prediction) on real-world systems (VaryLaTeX, x264).
BibTeX
@inproceedings{DBLP:conf/splc/Pereira0TA20,
author = {Juliana Alves Pereira and Hugo Martin and Paul Temple and Mathieu Acher},
title = {Machine learning and configurable systems: a gentle introduction},
booktitle = {{SPLC} '20: 24th {ACM} International Systems and Software Product Line Conference, Montreal, Quebec, Canada, October 19-23, 2020, Volume {A}},
pages = {40:1},
year = {2020},
publisher = {{ACM}},
doi = {10.1145/3382025.3414976},
url = {https://doi.org/10.1145/3382025.3414976}
}
The integration of a model composition operator into a system is a challenging task: the properties associated with such operators can drastically change how the developers will be able to use it. In this paper, we describe a modelling framework that allows a software developer, who is not an expert in model composition, to describe the interface of the operators she wants to use, and describe the properties she expects from them to fit her needs (e.g., idempotence, commutativity, associativity). This abstract description is used to pilot a property-based testing approach on generated code. We applied the approach to two case studies: feature model composition and Git merging.
BibTeX
@article{DBLP:journals/jot/BenniMAP20,
author = {Benjamin Benni and S{\'{e}}bastien Mosser and Mathieu Acher and Mathieu Paillart},
title = {Characterizing Black-box Composition Operators via Generated Tailored Benchmarks},
journal = {J. Object Technol.},
volume = {19},
number = {2},
pages = {7:1--20},
year = {2020},
doi = {10.5381/jot.2020.19.2.a7},
url = {https://doi.org/10.5381/jot.2020.19.2.a7}
}
Welcome to the third edition of the workshop on Machine Learning Techniques for Software Quality Evaluation (MaLTeSQuE 2019), held in Tallinn, Estonia, August 27th, 2019, co-located with ESEC / FSE 2019. This year MALTESQUE merged with the MASES (Machine Learning and Software Engineering in Symbiosis) workshop, co-located with the ASE 2018 conference. Ten papers from all over the world were submitted, seven of them were accepted. The program also featured a keynote by Lionel Briand on the use of machine learning to improve software testing.
BibTeX
@article{DBLP:journals/sigsoft/FontanaPAAWCPD20,
author = {Francesca Arcelli Fontana and Gilles Perrouin and Apostolos Ampatzoglou and Mathieu Acher and Bartosz Walter and Maxime Cordy and Fabio Palomba and Xavier Devroey},
title = {{MALTESQUE} 2019 Workshop Summary},
journal = {{ACM} {SIGSOFT} Softw. Eng. Notes},
volume = {45},
number = {1},
pages = {34--35},
year = {2020},
doi = {10.1145/3375572.3375582},
url = {https://doi.org/10.1145/3375572.3375582}
}
Numerous software systems are highly configurable and provide a myriad of configuration options that users can tune to fit their functional and performance requirements (e.g., execution time). Measuring all configurations of a system is the most obvious way to understand the effect of options and their interactions, but is too costly or infeasible in practice. Numerous works thus propose to measure only a few configurations (a sample) to learn and predict the performance of any combination of options’ values. A challenging issue is to sample a small and representative set of configurations that leads to a good accuracy of performance prediction models. A recent study devised a new algorithm, called distance-based sampling, that obtains state-of-the-art accurate performance predictions on different subject systems. In this paper, we replicate this study through an in-depth analysis of x264, a popular and configurable video encoder. We systematically measure 1,152 configurations of x264 with 17 input videos and two quantitative properties (encoding time and encoding size). Our goal is to understand whether there is a dominant sampling strategy over the very same subject system (x264), i.e., whatever the workload and targeted performance properties. The findings from this study show that random sampling leads to more accurate performance models. However, without considering random, there is no single “dominant" sampling, instead different strategies perform best on different inputs and non-functional properties, further challenging practitioners and researchers.
BibTeX
@inproceedings{alvespereira:hal-02356290,
author = {Alves Pereira, Juliana and Acher, Mathieu and Martin, Hugo and J{\'e}z{\'e}quel, Jean-Marc},
title = {{Sampling Effect on Performance Prediction of Configurable Systems: A Case Study}},
booktitle = {International Conference on Performance Engineering (ICPE 2020)},
year = {2020},
doi = {10.1145/3358960.3379137},
url = {https://hal.science/hal-02356290}
}
Linux kernels are used in a wide variety of appliances, many of them having strong requirements on the kernel size due to constraints such as limited memory or instant boot. With more than ten thousands of configuration options to choose from, obtaining a suitable trade off between kernel size and functionality is an extremely hard problem. Developers, contributors, and users actually spend significant effort to document, understand, and eventually tune (combinations of) options for meeting a kernel size. In this paper, we investigate how machine learning can help explain what matters for predicting a given Linux kernel size. Unveiling what matters in such very large configuration space is challenging for two reasons: (1) whatever the time we spend on it, we can only build and measure a tiny fraction of possible kernel configurations; (2) the prediction model should be both accurate and interpretable. We compare different machine learning algorithms and demonstrate the benefits of specific feature encoding and selection methods to learn an accurate model that is fast to compute and simple to interpret. Our results are validated over 95,854 kernel configurations and show that we can achieve low prediction errors over a reduced set of options. We also show that we can extract interpretable information for refining documentation and experts' knowledge of Linux, or even assigning more sensible default values to options.
BibTeX
@techreport{acher:hal-02314830,
author = {Acher, Mathieu and Martin, Hugo and Pereira, Juliana Alves and Blouin, Arnaud and J{\'e}z{\'e}quel, Jean-Marc and Khelladi, Djamel Eddine and Lesoil, Luc and Barais, Olivier},
title = {{Learning Very Large Configuration Spaces: What Matters for Linux Kernel Sizes}},
year = {2019},
month = oct,
institution = {{Inria Rennes - Bretagne Atlantique}},
type = {Research Report},
url = {https://hal.science/hal-02314830}
}
The goal of this tutorial is to give an introduction to how machine learning can be used to support activities related to the engineering of con gurable systems and software product lines. To the best of our knowledge, this is the rst practical tutorial in this trending eld. The tutorial is based on a systematic literature review and includes practical tasks (specialization, performance prediction) on real-world systems (VaryLaTeX, x264).
BibTeX
@inproceedings{martin:hal-02287459,
author = {Martin, Hugo and Pereira, Juliana Alves and Temple, Paul and Acher, Mathieu},
title = {{Machine Learning and Configurable Systems: A Gentle Introduction}},
booktitle = {{SPLC 2019 - 23rd International Systems and Software Product Line Conference}},
pages = {83-88},
year = {2019},
month = sep,
publisher = {{ACM}},
address = {Paris, France},
doi = {10.1145/3336294.3342383},
url = {https://hal.science/hal-02287459}
}
Software Product Line (SPL) migration remains a challenging endeavour. From organizational issues to purely technical challenges, there is a wide range of barriers that complicates SPL adoption. This workshop aims to foster research about making the most of the two main inputs for SPL migration: 1) domain knowledge and 2) legacy assets. Domain knowledge, usually implicit and spread across an organization, is key to define the SPL scope and to validate the variability model and its semantics. At the technical level, domain expertise is also needed to create or extract the reusable software components. Legacy assets can be, for instance, similar product variants (e.g., requirements, models, source code etc.) that were implemented using ad-hoc reuse techniques such as clone-and-own. More generally, the workshop REverse Variability Engineering (REVE) attracts researchers and practitioners contributing to processes, techniques, tools, or empirical studies related to the automatic, semi-automatic or manual extraction or refinement of SPL assets.
BibTeX
@inproceedings{acher:hal-02268373,
author = {Acher, Mathieu and Ziadi, Tewfik and Lopez-Herrejon, Roberto E and Martinez, Jabier},
title = {{Seventh international workshop on reverse variability engineering (REVE 2019)}},
booktitle = {{SPLC 2019 - 23rd International Systems and Software Product Line Conference}},
pages = {1},
year = {2019},
month = sep,
publisher = {{ACM Press}},
address = {Paris, France},
doi = {10.1145/3336294.3342365},
url = {https://hal.science/hal-02268373}
}
Software product line (SPL) engineers put a lot of effort to ensure that, through the setting of a large number of possible configuration options, products are acceptable and well-tailored to customers' needs. Unfortunately, options and their mutual interactions create a huge configuration space which is intractable to exhaustively explore. Instead of testing all products, machine learning is increasingly employed to approximate the set of acceptable products out of a small training sample of configurations. Machine learning (ML) techniques can refine a software product line through learned constraints and a priori prevent non-acceptable products to be derived. In this paper, we use adversarial ML techniques to generate adver-sarial configurations fooling ML classifiers and pinpoint incorrect classifications of products (videos) derived from an industrial video generator. Our attacks yield (up to) a 100% misclassification rate and a drop in accuracy of 5%. We discuss the implications these results have on SPL quality assurance.
BibTeX
@inproceedings{temple:hal-02287616,
author = {Temple, Paul and Acher, Mathieu and Perrouin, Gilles and Biggio, Battista and J{\'e}z{\'e}quel, Jean-Marc and Roli, Fabio},
title = {{Towards Quality Assurance of Software Product Lines with Adversarial Configurations}},
booktitle = {{23rd International Systems and Software Product Line Conference}},
year = {2019},
month = sep,
address = {Paris, France},
doi = {10.1145/3336294.3336309},
url = {https://hal.science/hal-02287616},
eprint = {1909.07283},
archiveprefix = {arXiv}
}
Education has a key role to play for disseminating the constantly growing body of Software Product Line (SPL) knowledge. In a sense, every researcher in SPL should think about how to teach SPL. This workshop aims to explore and explain the current status and ongoing work on teaching SPLs at universities, colleges, and in industry (e.g., by consultants). This fourth edition will continue the effort made at SPLTea'14, SPLTea'15 and SPLTea'18. In particular we seek to better understand how to build a curriculum for teaching SPLs - a central issue as reported in surveys and as informally discussed at SPLTea'18. We expect several lightning talks that report on traditional questions like: what is the targeted audience? What is the place in the curriculum? What is the material (slides, tools, books, etc) used? As there is hardly a one-size-fits-all curriculum, the workshop aims to collectively identify commonality and variability when building SPL curriculums. As a concrete outcome, we expect to elaborate a variability model of SPL teaching that could be actuated to derive custom curriculum in various contexts.
BibTeX
@inproceedings{acher2019fourth,
author = {Mathieu Acher and Rick Rabiser and Roberto E. Lopez-Herrejon},
title = {Fourth international workshop on software product line teaching ({SPLTea} 2019)},
booktitle = {Proceedings of the 23rd International Systems and Software Product Line Conference, {SPLC} 2019, Volume A, Paris, France, September 9-13, 2019},
pages = {45:1},
year = {2019},
month = sep,
publisher = {{ACM}},
doi = {10.1145/3336294.3342363},
url = {https://doi.org/10.1145/3336294.3342363}
}
Feature models were invented in 1990 and have been recognised as one of the main contributions to the software product line community. Although there have been several attempts to establish a sort of standard variability modelling language, there is still no consensus. There can be many motivations to have one but there is one that is very important: information sharing among researchers, tools or developers. This first international workshop is an interactive event where all participants shall share knowledge about how to build up a simple variability modelling language that all the community can agree on.
BibTeX
@inproceedings{benavides2019first,
author = {David Benavides and Rick Rabiser and Don S. Batory and Mathieu Acher},
title = {First international workshop on languages for modelling variability ({MODEVAR} 2019)},
booktitle = {Proceedings of the 23rd International Systems and Software Product Line Conference, {SPLC} 2019, Volume A, Paris, France, September 9-13, 2019},
pages = {46:1},
year = {2019},
month = sep,
publisher = {{ACM}},
doi = {10.1145/3336294.3342364},
url = {https://doi.org/10.1145/3336294.3342364}
}
Software product line (SPL) engineers put a lot of effort to ensure that, through the setting of a large number of possible configuration options, products are acceptable and well-tailored to customers' needs. Unfortunately, options and their mutual interactions create a huge configuration space which is intractable to exhaustively explore. Instead of testing all products, machine learning techniques are increasingly employed to approximate the set of acceptable products out of a small training sample of configurations. Machine learning (ML) techniques can refine a software product line through learned constraints and a priori prevent non-acceptable products to be derived. In this paper, we use adversarial ML techniques to generate adversarial configurations fooling ML classifiers and pinpoint incorrect classifications of products (videos) derived from an industrial video generator. Our attacks yield (up to) a 100% misclassification rate and a drop in accuracy of 5%. We discuss the implications these results have on SPL quality assurance.
BibTeX
@article{arxiv:1909.07283,
author = {Paul Temple and Mathieu Acher and Gilles Perrouin and Battista Biggio and Jean-marc Jezequel and Fabio Roli},
title = {{Towards Quality Assurance of Software Product Lines with Adversarial Configurations}},
journal = {CoRR},
volume = {abs/1909.07283},
year = {2019},
month = sep,
doi = {10.48550/arXiv.1909.07283},
url = {https://arxiv.org/abs/1909.07283},
eprint = {1909.07283},
archiveprefix = {arXiv}
}
Wikipedia is a rich source of information across many knowledge domains. Yet, recovering articles relevant to a specific domain is a difficult problem since such articles may be rare and tend to cover multiple topics. Furthermore, Wikipedia's categories provide an ambiguous classification of articles as they relate to all topics and thus are of limited use. In this paper, we develop a new methodology to isolate Wikipedia's articles that describe a specific topic within the scope of relevant categories; the methodology uses supervised machine learning to retrieve a decision tree classifier based on articles' features (URL patterns, summary text, infoboxes, links from list articles). In a case study, we retrieve 3000+ articles that describe software (computer) languages. Available fragments of ground truths serve as an essential part of the training set to detect relevant articles. The results of the classification are thoroughly evaluated through a survey, in which 31 domain experts participated.
BibTeX
@inproceedings{heinz:hal-02129131,
author = {Heinz, Marcel and Lämmel, Ralf and Acher, Mathieu},
title = {{Discovering Indicators for Classifying Wikipedia Articles in a Domain: A Case Study on Software Languages}},
booktitle = {{SEKE 2019 - The 31st International Conference on Software Engineering and Knowledge Engineering}},
pages = {1-6},
year = {2019},
month = jul,
address = {Lisbonne, Portugal},
doi = {10.18293/seke2019-126},
url = {https://hal.science/hal-02129131}
}
Many approaches for testing configurable software systems start from the same assumption: it is impossible to test all configurations. This motivated the definition of variability-aware abstractions and sampling techniques to cope with large configuration spaces. Yet, there is no theoretical barrier that prevents the exhaustive testing of all configurations by simply enumerating them, if the effort required to do so remains acceptable. Not only this: we believe there is lots to be learned by systematically and exhaustively testing a configurable system. In this case study, we report on the first ever endeavour to test all possible configurations of an industry-strength, open source configurable software system, JHipster, a popular code generator for web applications. We built a testing scaffold for the 26,000+ configurations of JHipster using a cluster of 80 machines during 4 nights for a total of 4,376 hours (182 days) CPU time. We find that 35.70% configurations fail and we identify the feature interactions that cause the errors. We show that sampling strategies (like dissimilarity and 2-wise): (1) are more effective to find faults than the 12 default configurations used in the JHipster continuous integration; (2) can be too costly and exceed the available testing budget. We cross this quantitative analysis with the qualitative assessment of JHipster's lead developers.
BibTeX
@article{halin:hal-01829928,
author = {Halin, Axel and Nuttinck, Alexandre and Acher, Mathieu and Devroey, Xavier and Perrouin, Gilles and Baudry, Benoit},
title = {{Test them all, is it worth it? Assessing configuration sampling on the JHipster Web development stack}},
journal = {{Empirical Software Engineering (ESE)}},
volume = {24},
number = {2},
pages = {674--717},
year = {2019},
month = jul,
publisher = {{Springer Verlag}},
doi = {10.1007/s10664-018-9635-4},
url = {https://hal.science/hal-01829928},
eprint = {1710.07980},
archiveprefix = {arXiv}
}
The Linux kernel offers more than ten thousands configuration options that can be combined to build an almost infinite number of kernel variants. Developers and contributors spend significant effort and computational resources to continuously track and hopefully fix configurations that lead to build failures. In this experience paper, we report on our endeavor to develop an infrastructure, called TuxML, able to build any kernel configuration and learn what could explain or even prevent configurations' failures. Our results over 95,000+ configurations show that TuxML can accurately cluster 3,600+ failures, automatically trace the responsible configuration options, and learn by itself to avoid unnecessary and costly builds. Our large qualitative and quantitative analysis reveals insights about Linux itself (e.g., we only found 16 configuration bugs) and the difficulty to engineer a build infrastructure for configurable systems (e.g., a false positive failure may mask true configuration bugs).
BibTeX
@techreport{acher:hal-02147012,
author = {Acher, Mathieu and Martin, Hugo and Alves Pereira, Juliana and Blouin, Arnaud and Eddine Khelladi, Djamel and J{\'e}z{\'e}quel, Jean-Marc},
title = {{Learning From Thousands of Build Failures of Linux Kernel Configurations}},
pages = {1-12},
year = {2019},
month = jun,
institution = {{Inria ; IRISA}},
type = {Technical Report},
url = {https://hal.science/hal-02147012}
}
Most modern software systems (operating systems like Linux or Android, Web browsers like Firefox or Chrome, video encoders like ffmpeg, x264 or VLC, mobile and cloud applications, etc.) are highly-configurable. Hundreds of configuration options, features, or plugins can be combined, each potentially with distinct functionality and effects on execution time, security, energy consumption, etc. Due to the combinatorial explosion and the cost of executing software, it is quickly impossible to exhaustively explore the whole configuration space. Hence, numerous works have investigated the idea of learning it from a small sample of configurations' measurements. The pattern "sampling, measuring, learning" has emerged in the literature, with several practical interests for both software developers and end-users of configurable systems. In this survey, we report on the different application objectives (e.g., performance prediction, configuration optimization, constraint mining), use-cases, targeted software systems and application domains. We review the various strategies employed to gather a representative and cost-effective sample. We describe automated software techniques used to measure functional and non-functional properties of configurations. We classify machine learning algorithms and how they relate to the pursued application. Finally, we also describe how researchers evaluate the quality of the learning process. The findings from this systematic review show that the potential application objective is important; there are a vast number of case studies reported in the literature from the basis of several domains and software systems. Yet, the huge variant space of configurable systems is still challenging and calls to further investigate the synergies between artificial intelligence and software engineering.
BibTeX
@article{arxiv:1906.03018,
author = {Juliana Alves Pereira and Hugo Martin and Mathieu Acher and Jean-Marc Jézéquel and Goetz Botterweck and Anthony Ventresque},
title = {{Learning Software Configuration Spaces: A Systematic Literature Review}},
journal = {CoRR},
volume = {abs/1906.03018},
year = {2019},
month = jun,
doi = {10.48550/arXiv.1906.03018},
url = {https://arxiv.org/abs/1906.03018},
eprint = {1906.03018},
archiveprefix = {arXiv}
}
Uniform or near-uniform generation of solutions for large satisfiability formulas is a problem of theoretical and practical interest for the testing community. Recent works proposed two algorithms (namely UniGen and QuickSampler) for reaching a good compromise between execution time and uniformity guarantees, with empirical evidence on SAT benchmarks. In the context of highly-configurable software systems (e.g., Linux), it is unclear whether UniGen and QuickSampler can scale and sample uniform software configurations. In this paper, we perform a thorough experiment on 128 real-world feature models. We find that UniGen is unable to produce SAT solutions out of such feature models. Furthermore, we show that QuickSampler does not generate uniform samples and that some features are either never part of the sample or too frequently present. Finally, using a case study, we characterize the impacts of these results on the ability to find bugs in a configurable system. Overall, our results suggest that we are not there: more research is needed to explore the cost-effectiveness of uniform sampling when testing large configurable systems.
BibTeX
@inproceedings{plazar:hal-01991857,
author = {Plazar, Quentin and Acher, Mathieu and Perrouin, Gilles and Devroey, Xavier and Cordy, Maxime},
title = {{Uniform Sampling of SAT Solutions for Configurable Systems: Are We There Yet?}},
booktitle = {ICST 2019 - 12th International Conference on Software Testing, Verification, and Validation},
pages = {1-12},
year = {2019},
month = apr,
address = {Xian, China},
doi = {10.1109/icst.2019.00032},
url = {https://hal.science/hal-01991857}
}
Configurators rely on logical constraints over parameters to aid users and determine the validity of a configuration. However, for some domains, capturing such configuration knowledge is hard, if not infeasible. This is the case in the 3D printing industry, where parametric 3D object models contain the list of parameters and their value domains, but no explicit constraints. This calls for a complementary approach that learns what configurations are valid based on previous experiences. In this paper, we report on preliminary experiments showing the capability of state-of-the-art classification algorithms to assist the configuration process. While machine learning holds its promises when it comes to evaluation scores, an in-depth analysis reveals the opportunity to combine the classifiers with constraint solvers.
BibTeX
@inproceedings{amand:hal-01990767,
author = {Amand, Benoit and Cordy, Maxime and Heymans, Patrick and Acher, Mathieu and Temple, Paul and J{\'e}z{\'e}quel, Jean-Marc},
title = {{Towards Learning-Aided Configuration in 3D Printing: Feasibility Study and Application to Defect Prediction}},
booktitle = {{VaMoS 2019 - 13th International Workshop on Variability Modelling of Software-Intensive Systems}},
pages = {1-9},
year = {2019},
month = feb,
address = {Leuven, Belgium},
doi = {10.1145/3302333.3302338},
url = {https://hal.science/hal-01990767}
}
@proceedings{DBLP:conf/sigsoft/2019maltesque,
editor = {Francesca Arcelli Fontana and Bartosz Walter and Apostolos Ampatzoglou and Fabio Palomba and Gilles Perrouin and Mathieu Acher and Maxime Cordy and Xavier Devroey},
title = {Proceedings of the 3rd {ACM} {SIGSOFT} International Workshop on Machine Learning Techniques for Software Quality Evaluation, MaLTeSQuE@ESEC/SIGSOFT {FSE} 2019, Tallinn, Estonia, August 27, 2019},
year = {2019},
publisher = {{ACM}},
isbn = {978-1-4503-6855-1},
doi = {10.1145/3340482},
url = {https://doi.org/10.1145/3340482}
}
@article{DBLP:journals/jss/AcherC19,
author = {Mathieu Acher and Myra B. Cohen},
title = {Special issue on systems and software product line engineering},
journal = {Journal of Systems and Software (JSS)},
volume = {154},
pages = {110--111},
year = {2019},
doi = {10.1016/j.jss.2019.04.054},
url = {https://doi.org/10.1016/j.jss.2019.04.054}
}
[Context] In an industrial project, we addressed the challenge of developing a software-based video generator such that consumers and providers of video processing algorithms can benchmark them on a wide range of video variants. [Objective] This article aims to report on our positive experience in modeling, controlling, and implementing software variability in the video domain. [Method] We describe how we have designed and developed a variability modeling language, called VM, resulting from the close collaboration with industrial partners during two years. We expose the specific requirements and advanced variability constructs we developed and used to characterize and derive variations of video sequences. [Results] The results of our experiments and industrial experience show that our solution is effective to model complex variability information and supports the synthesis of hundreds of realistic video variants. [Conclusions] From the software language perspective, we learned that basic variability mechanisms are useful but not enough; attributes and multi-features are of prior importance; meta-information and specific constructs are relevant for scalable and purposeful reasoning over variability models. From the video domain and software perspective, we report on the practical benefits of a variability approach. With more automation and control, practitioners can now envision benchmarking video algorithms over large, diverse, controlled, yet realistic datasets (videos that mimic real recorded videos) – something impossible at the beginning of the project.
BibTeX
@article{alferez:hal-01688247,
author = {Alf{\'e}rez, Mauricio and Acher, Mathieu and Galindo, Jos{\'e} A and Baudry, Benoit and Benavides, David},
title = {{Modeling Variability in the Video Domain: Language and Experience Report}},
journal = {{Software Quality Journal}},
volume = {27},
number = {1},
pages = {307--347},
year = {2019},
publisher = {{Springer Verlag}},
doi = {10.1007/s11219-017-9400-8},
url = {https://hal.science/hal-01688247}
}
This extended abstract summarizes our article entitled " Teaching Software Product Lines: A Snapshot of Current Practices and Challenges " published in the ACM Transactions on Computing Education , vol. 18 in 2017 (http://doi.acm.org/10.1145/3088440). The article reports on three initiatives we have conducted with scholars, educators, industry practitioners, and students to understand the connection between software product lines and education and to derive recommendations for educators to continue improving the state of practice of teaching SPLs.
BibTeX
@inproceedings{acher:hal-01829933,
author = {Acher, Mathieu and Lopez-Herrejon, Roberto E and Rabiser, Rick},
title = {{Teaching Software Product Lines: A Snapshot of Current Practices and Challenges (Journal-First Abstract)}},
booktitle = {{SPLC2018 - 22nd International Systems and Software Product Line Conference}},
pages = {1},
year = {2018},
month = sep,
address = {Gothenburg, Sweden},
doi = {10.1145/3233027.3236393},
url = {https://hal.science/hal-01829933}
}
Mathieu Acher, Rick Rabiser, and Roberto E. Lopez-Herrejon
Proceeedings of the 22nd International Systems and Software Product Line Conference - Volume 1, SPLC 2018, Gothenburg, Sweden, September 10-14, 2018, 2018
Education has a key role to play for disseminating the constantly growing body of Software Product Line (SPL) knowledge. In a sense, every researcher in SPL should think about how to teach SPL. This workshop aims to explore and explain the current status and ongoing work on teaching SPLs at universities, colleges, and in industry (e.g., by consultants). This third edition will continue the effort made at SPLTea'14 and SPLTea'15. In particular we seek to attract experience reports of teaching SPLs. We expect several lightning talks that report on traditional questions like: what is the targeted audience? What is the place in the curriculum? What is the material (slides, tools, books, etc) used? What are the benefits of teaching SPLs? What are the difficulties and barriers? We also welcome opinionated and provocative talks that encourage discussions about the topic. Another goal of the workshop is to populate an open repository of resources dedicated to SPL teaching: http://teaching.variability.io
BibTeX
@inproceedings{acher2018spltea,
author = {Mathieu Acher and Rick Rabiser and Roberto E. Lopez-Herrejon},
title = {{SPLtea} 2018: third international workshop on software product line teaching},
booktitle = {Proceeedings of the 22nd International Systems and Software Product Line Conference - Volume 1, {SPLC} 2018, Gothenburg, Sweden, September 10-14, 2018},
pages = {297},
year = {2018},
month = sep,
publisher = {{ACM}},
doi = {10.1145/3233027.3241370},
url = {https://doi.org/10.1145/3233027.3241370}
}
Tewfik Ziadi, Roberto E. Lopez-Herrejon, Mathieu Acher, and Jabier Martinez
Proceeedings of the 22nd International Systems and Software Product Line Conference - Volume 1, SPLC 2018, Gothenburg, Sweden, September 10-14, 2018, 2018
Software Product Line (SPL) migration remains a challenging endeavour. From organizational issues to purely technical challenges, there is a wide range of barriers that complicates SPL adoption. The workshop REverse Variability Engineering (REVE) aims to foster research about making the most of the two main inputs for SPL migration: 1) domain knowledge and 2) legacy assets. Domain knowledge, usually implicit and spread across an organization, is key to define the SPL scope and to validate the variability model and its semantics. At the technical level, domain expertise is also needed to create or extract the reusable software components. Legacy assets can be, for instance, similar product variants (e.g., requirements, models, source code) that were implemented using ad-hoc reuse techniques such as clone-and-own. More generally, the workshop attracts researchers and practitioners contributing to processes, techniques, tools, or empirical studies related to the automatic, semi-automatic or manual extraction or refinement of SPL assets.
BibTeX
@inproceedings{ziadi2018reve,
author = {Tewfik Ziadi and Roberto E. Lopez-Herrejon and Mathieu Acher and Jabier Martinez},
title = {{REVE} 2018: 6th international workshop on reverse variability engineering},
booktitle = {Proceeedings of the 22nd International Systems and Software Product Line Conference - Volume 1, {SPLC} 2018, Gothenburg, Sweden, September 10-14, 2018},
pages = {296},
year = {2018},
month = sep,
publisher = {{ACM}},
doi = {10.1145/3233027.3241371},
url = {https://doi.org/10.1145/3233027.3241371}
}
The functional correctness of a software application is, of course, a prime concern, but other issues such as its execution time, precision , or energy consumption might also be important in some contexts. Systematically testing these quantitative properties is still extremely difficult, in particular, because there exists no method to tell the developer whether such a test set is "good enough" or even whether a test set is better than another one. This paper proposes a new method, called Multimorphic testing, to assess the relative effectiveness of a test suite for revealing performance variations of a software system. By analogy with mutation testing, our core idea is to vary software parameters, and to check whether it makes any difference on the outcome of the tests: i.e. are some tests able to " kill " bad morphs (configurations)? Our method can be used to evaluate the quality of a test suite with respect to a quantitative property of interest, such as execution time or computation accuracy.
BibTeX
@inproceedings{temple:hal-01730163,
author = {Temple, Paul and Acher, Mathieu and J{\'e}z{\'e}quel, Jean-Marc},
title = {{Multimorphic Testing}},
booktitle = {{ACM/IEEE 40th International Conference on Software Engineering: Companion Proceedings}},
pages = {1-2},
year = {2018},
month = may,
address = {Gothenburg, Sweden},
doi = {10.1145/3183440.3195043},
url = {https://hal.science/hal-01730163}
}
Jabier Martinez, Jean-Sébastien Sottet, Alfonso Garcia Frey, Tegawendé Bissyandé, Tewfik Ziadi, Jacques Klein, Paul Temple, Mathieu Acher, and Yves Le Traon
ICSR 2018 - International Conference on Software Reuse, 2018
Estimating and predicting user subjective perceptions on software products is a challenging, yet increasingly important, endeavour. As an extreme case study, we consider the problem of exploring computer-generated art object combinations that will please the maximum number of people. Since it is not feasible to gather feedbacks for all art products because of a combinatorial explosion of possible configurations as well as resource and time limitations, the challenging objective is to rank and identify optimal art product variants that can be generated based on their average likability. We present the use of Software Product Line (SPL) techniques for gathering and leveraging user feedbacks within the boundaries of a variability model. Our approach is developed in two phases: 1) the creation of a data set using a genetic algorithm and real feedback and 2) the application of a data mining technique on this data set to create a ranking enriched with confidence metrics. We perform a case study of a real-world computer-generated art system. The results of our approach on the arts domain reveal interesting directions for the analysis of user-specific qualities of SPLs.
BibTeX
@inproceedings{martinez:hal-01720519,
author = {Martinez, Jabier and Sottet, Jean-S{\'e}bastien and Garcia Frey, Alfonso and Bissyand{\'e}, Tegawend{\'e} and Ziadi, Tewfik and Klein, Jacques and Temple, Paul and Acher, Mathieu and Le Traon, Yves},
title = {{Towards Estimating and Predicting User Perception on Software Product Variants}},
booktitle = {{ ICSR 2018 - International Conference on Software Reuse}},
pages = {1-16},
year = {2018},
month = may,
address = {Madrid, Spain},
doi = {10.1007/978-3-319-90421-4_2},
url = {https://hal.sorbonne-universite.fr/hal-01720519}
}
How to submit a research paper, a technical report, a grant proposal, or a curriculum vitae that respect imposed constraints such as formatting instructions and page limits? It is a challenging task, especially with time pressure and deadlines. In this paper, we present a solution based on variability, constraint programming, and machine learning techniques for documents written in LaTeX. Users simply have to annotate LaTeX source files with variability information for e.g., (de)activating portions of text, tuning the figures' sizes, or tweaking line spacing. Then, a fully automated procedure learns constraints among Boolean and numerical features for avoiding non-acceptable paper variants. As a result, users can configure their papers (e.g., for controlling the aesthetics) or pick a (random) paper variant that meets constraints e.g., page limits. We describe our implementation and report on some experiences with VaryLaTeX.
BibTeX
@inproceedings{acher:hal-01659161,
author = {Acher, Mathieu and Temple, Paul and J{\'e}z{\'e}quel, Jean-Marc and Galindo Duarte, Jos{\'e} Angel and Martinez, Jabier and Ziadi, Tewfik},
title = {{VaryLaTeX: Learning Paper Variants That Meet Constraints}},
booktitle = {12th International Workshop on Variability Modelling of Software-intensive Systems (VaMoS'18)},
year = {2018},
month = feb,
address = {Madrid, Spain},
doi = {10.1145/3168365.3168372},
url = {https://hal.science/hal-01659161}
}
@proceedings{DBLP:conf/kbse/2018mases,
editor = {Gilles Perrouin and Mathieu Acher and Maxime Cordy and Xavier Devroey},
title = {Proceedings of the 1st International Workshop on Machine Learning and Software Engineering in Symbiosis, MASES@ASE 2018, Montpellier, France, September 3, 2018},
year = {2018},
publisher = {{ACM}},
doi = {10.1145/3243127},
url = {https://doi.org/10.1145/3243127}
}
Ensuring that all supposedly valid configurations of a software product line (SPL) lead to well-formed and acceptable products is challenging since it is most of the time impractical to enumerate and test all individual products of an SPL. Machine learning classifiers have been recently used to predict the acceptability of products associated with unseen configurations. For some configurations, a tiny change in their feature values can make them pass from acceptable to non-acceptable regarding users' requirements and vice-versa. In this paper, we introduce the idea of leveraging these specific configurations and their positions in the feature space to improve the classifier and therefore the engineering of an SPL. Starting from a variability model, we propose to use Adversarial Machine Learning techniques to create new, adversarial configurations out of already known configurations by modifying their feature values. Using an industrial video generator we show how adversarial configurations can improve not only the classifier, but also the variability model, the variability implementation, and the testing oracle.
BibTeX
@article{DBLP:journals/corr/abs-1805-12021,
author = {Paul Temple and Mathieu Acher and Battista Biggio and Jean-Marc J{\'e}z{\'e}quel and Fabio Roli},
title = {Towards Adversarial Configurations for Software Product Lines},
journal = {CoRR},
volume = {abs/1805.12021},
year = {2018},
doi = {10.48550/arXiv.1805.12021},
url = {https://arxiv.org/abs/1805.12021},
eprint = {1805.12021},
archiveprefix = {arXiv}
}
Modeling how contextual factors relate to a software system’s configuration space is usually a manual, error-prone task that depends highly on expert knowledge. Machine-learning techniques can automatically predict the acceptable software configurations for a given context. Such an approach executes and observes a sample of software configurations within a sample of contexts. It then learns what factors of each context will likely discard or activate some of the software’s features. This lets developers and product managers automatically extract the rules that specialize highly configurable systems for specific contexts.
BibTeX
@article{temple:hal-01659137,
author = {Temple, Paul and Acher, Mathieu and J{\'e}z{\'e}quel, Jean-Marc and Barais, Olivier},
title = {{Learning Contextual-Variability Models}},
journal = {IEEE Software},
volume = {34},
number = {6},
pages = {64--70},
year = {2017},
month = nov,
publisher = {Institute of Electrical and Electronics Engineers (IEEE)},
doi = {10.1109/ms.2017.4121211},
url = {https://hal.science/hal-01659137}
}
Software Product Line (SPL) migration remains a challenging endeavour. From organizational issues to purely technical challenges, there is a wide range of barriers that complicates SPL adoption. The workshop REverse Variability Engineering (REVE) aims to foster research about making the most of the two main inputs for SPL migration: 1) domain knowledge and 2) legacy assets. Domain knowledge, usually implicit and spread across an organization, is key to define the SPL scope and to validate the variability model and its semantics. At the technical level, domain expertise is also needed to create or extract the reusable software components. Legacy assets can be, for instance, similar product variants (e.g., requirements, models, source code) that were implemented using ad-hoc reuse techniques such as clone-and-own. More generally, the workshop attracts researchers and practitioners contributing to processes, techniques, tools, or empirical studies related to the automatic, semi-automatic or manual extraction or refinement of SPL assets.
BibTeX
@inproceedings{martinez2017reve,
author = {Jabier Martinez and Roberto E. Lopez-Herrejon and Tewfik Ziadi and Mathieu Acher},
title = {{REVE} 2017: 5th International Workshop on {REverse} Variability Engineering},
booktitle = {Proceedings of the 21st International Systems and Software Product Line Conference, {SPLC} 2017, Volume A, Sevilla, Spain, September 25-29, 2017},
pages = {245},
year = {2017},
month = sep,
publisher = {{ACM}},
doi = {10.1145/3106195.3106199},
url = {https://doi.org/10.1145/3106195.3106199}
}
Array constraints are essential for handling data structures in automated reasoning and software verification. Unfortunately, the use of a typical finite domain (FD) solver based on local consistency-based filtering has strong limitations when constraints on indexes are combined with constraints on array elements and size. This paper proposes an efficient and complete FD-solving technique for extended constraints over (possibly unbounded) arrays. We describe a simple but particularly powerful transformation for building an equisatisfiable formula that can be efficiently solved using standard FD reasoning over arrays, even in the unbounded case. Experiments show that the proposed solver significantly outperforms FD solvers, and successfully competes with the best SMT-solvers.
BibTeX
@inproceedings{plazar:hal-01545557,
author = {Plazar, Quentin and Acher, Mathieu and Bardin, S{\'e}bastien and Gotlieb, Arnaud},
title = {{Efficient and Complete FD-Solving for Extended Array Constraints}},
booktitle = {IJCAI 2017},
year = {2017},
month = aug,
address = {Melbourne, Australia},
doi = {10.24963/ijcai.2017/171},
url = {https://hal.science/hal-01545557}
}
Though variability is everywhere, there has always been a shortage of publicly available cases for assessing variability-aware tools and techniques as well as supports for teaching variability-related concepts. Historical software product lines contains industrial secrets their owners do not want to disclose to a wide audience. The open source community contributed to large-scale cases such as Eclipse, Linux kernels, or web-based plugin systems (Drupal, WordPress). To assess accuracy of sampling and prediction approaches (bugs, performance), a case where all products can be enumerated is desirable. As configuration issues do not lie within only one place but are scattered across technologies and assets, a case exposing such diversity is an additional asset. To this end, we present in this paper our efforts in building an explicit product line on top of JHipster, an industrial open-source Web-app configurator that is both manageable in terms of configurations (≈ 163,000) and diverse in terms of technologies used. We present our efforts in building a variability-aware chain on top of JHipster's configurator and lessons learned using it as a teaching case at the University of Rennes. We also sketch the diversity of analyses that can be performed with our infrastructure as well as early issues found using it. Our long term goal is both to support students and researchers studying variability analysis and JHipster developers in the maintenance and evolution of their tools.
BibTeX
@inproceedings{halin:hal-01468084,
author = {Halin, Axel and Nuttinck, Alexandre and Acher, Mathieu and Devroey, Xavier and Perrouin, Gilles and Heymans, Patrick},
title = {{Yo Variability! JHipster: A Playground for Web-Apps Analyses}},
booktitle = {11th International Workshop on Variability Modelling of Software-intensive Systems (VaMoS'17)},
pages = {44 - 51},
year = {2017},
month = feb,
address = {Eindhoven, Netherlands},
doi = {10.1145/3023956.3023963},
url = {https://hal.science/hal-01468084}
}
A large scale configurable system typically offers thousands of options or parameters to let the engineers customize it for specific needs. Among the resulting many billions possible configurations, relating option and parameter values to desired performance is then a daunting task relying on a deep know how of the internals of the configurable system. In this paper, we propose a staged configuration process to narrow the space of possible configurations to a good approximation of those satisfying the wanted high level customer requirements. Based on an oracle (e.g. a runtime test) that tells us whether a given configuration meets the requirements (e.g. speed or memory footprint), we leverage machine learning to retrofit the acquired knowledge into a variability model of the system that can be used to automatically specialize the configurable system. We validate our approach on a set of well-known configurable software systems. Our results show that, for many different kinds of objectives and performance qualities, the approach has interesting accuracy, precision and recall after a learning stage based on a relative small number of random samples.
BibTeX
@techreport{temple:hal-01467299,
author = {Temple, Paul and Acher, Mathieu and J{\'e}z{\'e}quel, Jean-Marc and Noel-Baron, L{\'e}o and Galindo, Jos{\'e} A.},
title = {{Learning-Based Performance Specialization of Configurable Systems}},
year = {2017},
month = feb,
institution = {{IRISA, Inria Rennes ; University of Rennes 1}},
type = {Research Report},
url = {https://hal.science/hal-01467299}
}
Many approaches for testing configurable software systems start from the same assumption: it is impossible to test all configurations. This motivated the definition of variability-aware abstractions and sampling techniques to cope with large configuration spaces. Yet, there is no theoretical barrier that prevents the exhaustive testing of all configurations by simply enumerating them, if the effort required to do so remains acceptable. Not only this: we believe there is lots to be learned by systematically and exhaustively testing a configurable system. In this article, we report on the first ever endeavor to test all possible configurations of an industry-strength, open source configurable software system, JHipster, a popular code generator for web applications. We built a testing scaffold for the 26,000+ configurations of JHipster using a cluster of 80 machines during 4 nights for a total of 4,376 hours (182 days) CPU time. We find that 35.70% configurations fail and we identify the feature interactions that cause the errors. We show that sampling testing strategies (like dissimilarity and 2-wise) (1) are more effective to find faults than the 12 default configurations used in the JHipster continuous integration; (2) can be too costly and exceed the available testing budget. We cross this quantitative analysis with the qualitative assessment of JHipster's lead developers.
BibTeX
@article{DBLP:journals/corr/abs-1710-07980,
author = {Axel Halin and Alexandre Nuttinck and Mathieu Acher and Xavier Devroey and Gilles Perrouin and Benoit Baudry},
title = {Test them all, is it worth it? {A} ground truth comparison of configuration sampling strategies},
journal = {CoRR},
volume = {abs/1710.07980},
year = {2017},
url = {https://arxiv.org/abs/1710.07980},
eprint = {1710.07980},
archiveprefix = {arXiv}
}
Myra B. Cohen, Mathieu Acher, Lidia Fuentes, Daniel Schall, Jan Bosch, Rafael Capilla, Ebrahim Bagheri, Yingfei Xiong, Javier Troya, Antonio Ruiz Cortes, and David Benavides (eds.)
@proceedings{DBLP:conf/splc/2017a,
editor = {Myra B. Cohen and Mathieu Acher and Lidia Fuentes and Daniel Schall and Jan Bosch and Rafael Capilla and Ebrahim Bagheri and Yingfei Xiong and Javier Troya and Antonio Ruiz Cortes and David Benavides},
title = {Proceedings of the 21st International Systems and Software Product Line Conference, {SPLC} 2017, Volume A, Sevilla, Spain, September 25-29, 2017},
year = {2017},
publisher = {{ACM}},
isbn = {978-1-4503-5221-5},
doi = {10.1145/3106195},
url = {https://doi.org/10.1145/3106195}
}
Software Product Line (SPL) engineering has emerged to provide the means to efficiently model, produce, and maintain multiple similar software variants, exploiting their common properties, and managing their variabilities (differences). With over two decades of existence, the community of SPL researchers and practitioners is thriving as can be attested by the extensive research output and the numerous successful industrial projects. Education has a key role to support the next generation of practitioners to build highly complex, variability-intensive systems. Yet, it is unclear how the concepts of variability and SPLs are taught, what are the possible missing gaps and difficulties faced, what are the benefits, or what is the material available. Also, it remains unclear whether scholars teach what is actually needed by industry. In this article we report on three initiatives we have conducted with scholars, educators, industry practitioners, and students to further understand the connection between SPLs and education, i.e., an online survey on teaching SPLs we performed with 35 scholars, another survey on learning SPLs we conducted with 25 students, as well as two workshops held at the International Software Product Line Conference in 2014 and 2015 with both researchers and industry practitioners participating. We build upon the two surveys and the workshops to derive recommendations for educators to continue improving the state of practice of teaching SPLs, aimed at both individual educators as well as the wider community.
BibTeX
@article{TOCE2017,
author = {Acher, Mathieu and Lopez-Herrejon, Roberto Erick and Rabiser, Rick},
title = {{Teaching Software Product Lines: A Snapshot of Current Practices and Challenges}},
journal = {ACM Transactions on Computing Education (TOCE)},
volume = {18},
number = {1},
pages = {1--31},
year = {2017},
publisher = {ACM},
doi = {10.1145/3088440}
}
Domain analysts, product managers, or customers aim to capture the important features and differences among a set of related products. A case-by-case reviewing of each product description is a laborious and time-consuming task that fails to deliver a condense view of a family of product. In this article, we investigate the use of automated techniques for synthesizing a product comparison matrix (PCM) from a set of product descriptions written in natural language. We describe a tool-supported process, based on term recognition, information extraction, clustering, and similarities, capable of identifying and organizing features and values in a PCM – despite the informality and absence of structure in the textual descriptions of products. We evaluate our proposal against numerous categories of products mined from BestBuy. Our empirical results show that the synthesized PCMs exhibit numerous quantitative, comparable information that can potentially complement or even refine technical descriptions of products. The user study shows that our automatic approach is capable of extracting a significant portion of correct features and correct values. This approach has been implemented in MatrixMiner a web environment with an interactive support for automatically synthesizing PCMs from informal product descriptions. MatrixMiner also maintains traceability with the original descriptions and the technical specifications for further refinement or maintenance by users.
BibTeX
@article{bennasr:hal-01427218,
author = {Ben Nasr, Sana and B{\'e}can, Guillaume and Acher, Mathieu and Ferreira Filho, João Bosco and Sannier, Nicolas and Baudry, Benoit and Davril, Jean-Marc},
title = {{Automated Extraction of Product Comparison Matrices From Informal Product Descriptions}},
journal = {Journal of Systems and Software (JSS)},
volume = {124},
pages = {82 - 103},
year = {2017},
publisher = {Elsevier},
doi = {10.1016/j.jss.2016.11.018},
url = {https://hal.science/hal-01427218}
}
In systems engineering, practitioners shall explore numerous architectural alternatives until choosing the most adequate variant. The decision-making process is most of the time a manual, time-consuming, and error-prone activity. The exploration and justification of architectural solutions is ad-hoc and mainly consists in a series of tries and errors on the mod-eling assets. In this paper, we report on an industrial case study in which we apply variability modeling techniques to automate the assessment and comparison of several candidate architectures (variants). We first describe how we can use a model-based approach such as the Common Variability Language (CVL) to specify the architectural variability. We show that the selection of an architectural variant is a multi-criteria decision problem in which there are numerous interactions (veto, favor, complementary) between criteria. We present a tooled process for exploring architectural variants integrating both CVL and the MYRIAD method for assessing and comparing variants based on an explicit preference model coming from the elicitation of stakeholders' concerns. This solution allows understanding differences among variants and their satisfactions with respect to criteria. Beyond variant selection automation improvement, this experiment results highlight that the approach improves rationality in the assessment and provides decision arguments when selecting the preferred variants.
BibTeX
@inproceedings{lenoir:hal-01374140,
author = {Le Noir, J{\'e}rome and Madel{\'e}nat, S{\'e}bastien and Labreuche, Christophe and Constant, Olivier and Gailliard, Gr{\'e}gory and Acher, Mathieu and Barais, Olivier},
title = {{A Decision-making Process for Exploring Architectural Variants in Systems Engineering}},
booktitle = {Software Product Lines Conference (SPLC)},
year = {2016},
month = sep,
address = {Beijing, China},
doi = {10.1145/2934466.2946045},
url = {https://hal.science/hal-01374140}
}
Variability intensive systems may include several thousand features allowing for an enormous number of possible configurations , including wrong ones (e.g. the derived product does not compile). For years, engineers have been using constraints to a priori restrict the space of possible configurations , i.e. to exclude configurations that would violate these constraints. The challenge is to find the set of constraints that would be both precise (allow all correct configurations) and complete (never allow a wrong configuration with respect to some oracle). In this paper, we propose the use of a machine learning approach to infer such product-line constraints from an oracle that is able to assess whether a given product is correct. We propose to randomly generate products from the product line, keeping for each of them its resolution model. Then we classify these products according to the oracle, and use their resolution models to infer cross-tree constraints over the product-line. We validate our approach on a product-line video generator, using a simple computer vision algorithm as an oracle. We show that an interesting set of cross-tree constraint can be generated, with reasonable precision and recall.
BibTeX
@inproceedings{temple:hal-01323446,
author = {Temple, Paul and Galindo Duarte, Jos{\'e} Angel and Acher, Mathieu and J{\'e}z{\'e}quel, Jean-Marc},
title = {{Using Machine Learning to Infer Constraints for Product Lines}},
booktitle = {Software Product Line Conference (SPLC'16)},
year = {2016},
month = sep,
address = {Beijing, China},
doi = {10.1145/2934466.2934472},
url = {https://hal.science/hal-01323446}
}
Feature models are widely used to encode the configurations of a software product line in terms of mandatory, optional and exclusive features as well as propositional constraints over the features. Numerous computationally expensive procedures have been developed to model check, test, configure, debug, or compute relevant information of feature models. In this paper we explore the possible improvement of relying on the enumeration of all configurations when performing automated analysis operations. The key idea is to pre-compile configurations so that reasoning operations (queries and transformations) can then be performed in polytime. We tackle the challenge of how to scale the existing enu-meration techniques. We show that the use of distributed computing techniques might offer practical solutions to previously unsolvable problems and opens new perspectives for the automated analysis of software product lines.
BibTeX
@inproceedings{galindo:hal-01334851,
author = {Galindo, Jos{\'e} A. and Acher, Mathieu and Tirado, Juan Manuel and Vidal, Cristian and Baudry, Benoit and Benavides, David},
title = {{Exploiting the Enumeration of All Feature Model Configurations: A New Perspective with Distributed Computing}},
booktitle = {Software Product Line Conference (SPLC'16)},
year = {2016},
month = sep,
address = {Beijing, China},
doi = {10.1145/2934466.2934478},
url = {https://hal.science/hal-01334851}
}
By analogy with software product reuse, the ability to reuse (meta)models and model transformations is key to achieve better quality and productivity. To this end, various op-portunistic reuse techniques have been developed, such as higher-order transformations, metamodel adaptation, and model types. However, in contrast to software product development that has moved to systematic reuse by adopting (model-driven) software product lines, we are not quite there yet for modelling languages, missing economies of scope and automation opportunities. Our vision is to transpose the product line paradigm at the metamodel level, where reusable assets are formed by metamodel and transformation fragments and " products " are reusable language building blocks (model types). We introduce featured model types to concisely model variability amongst metamodelling elements, enabling configuration, automated analysis, and derivation of tailored model types.
BibTeX
@inproceedings{perrouin:hal-01406507,
author = {Perrouin, Gilles and Amrani, Moussa and Acher, Mathieu and Combemale, Benoit and Legay, Axel and Schobbens, Pierre-Yves},
title = {{Featured model types: Towards Systematic Reuse in Modelling Language Engineering}},
booktitle = {MiSE '16 - 8th International Workshop on Modeling in Software Engineering},
pages = {1 - 7},
year = {2016},
month = may,
publisher = {ACM},
doi = {10.1145/2896982.2896987},
url = {https://hal.science/hal-01406507}
}
Online configurators are basically everywhere. From physical goods (cars, clothes) to services (cloud solutions, insurances, etc.) such configurators have pervaded many areas of everyday life, in order to provide the customers products tailored to their needs. Being sometimes the only interfaces between product suppliers and consumers, much care has been devoted to the HCI aspects of configurators, aiming at offering an enjoyable buying experience. However, at the backend, the management of numerous and complex configuration options results from ad-hoc process rather than a systematic variability-aware engineering approach. We present our experience in analysing web configurators and formalising configuration options in terms of feature models or product configuration matrices. We also consider behavioural issues and perspectives on their architectural design.
BibTeX
@inproceedings{perrouin:hal-01427165,
author = {Perrouin, Gilles and Acher, Mathieu and Davril, Jean-Marc and Legay, Axel and Heymans, Patrick},
title = {{A Complexity Tale: Web Configurators}},
booktitle = {VACE 2016 - 1st International Workshop on Variability and Complexity in Software Design Pages (co-located with ICSE'16)},
pages = {28 - 31},
year = {2016},
month = may,
address = {Austin, United States},
doi = {10.1145/2897045.2897051},
url = {https://hal.science/hal-01427165}
}
The strength of chess engines together with the availability of numerous chess games have attracted the attention of chess players, data scientists, and researchers during the last decades. State-of-the-art engines now provide an authoritative judgement that can be used in many applications like cheating detection, intrinsic ratings computation, skill assessment, or the study of human decision-making. A key issue for the research community is to gather a large dataset of chess games together with the judgement of chess engines. Unfortunately the analysis of each move takes lots of times. In this paper, we report our effort to analyse almost 5 millions chess games with a computing grid. During summer 2015, we processed 270 millions unique played positions using the Stockfish engine with a quite high depth (20). We populated a database of 1+ tera-octets of chess evaluations, representing an estimated time of 50 years of computation on a single machine. Our effort is a first step towards the replication of research results, the supply of open data and procedures for exploring new directions, and the investigation of software engineering/scalability issues when computing billions of moves.
BibTeX
@techreport{acher:hal-01307091,
author = {Acher, Mathieu and Esnault, François},
title = {{Large-scale Analysis of Chess Games with Chess Engines: A Preliminary Report}},
number = {RT-0479},
year = {2016},
month = apr,
institution = {{Inria Rennes Bretagne Atlantique}},
type = {Technical Report},
url = {https://hal.science/hal-01307091}
}
Unbundling is a phenomenon that consists of dividing an existing software artifact into smaller ones. It can happen for different reasons , one of them is the fact that applications tend to grow in func-tionalities and sometimes this can negatively influence the user experience. For example, mobile applications from well-known companies are being divided into simpler and more focused new ones. Despite its current importance, little is known or studied about unbundling or about how it relates to existing software engineering approaches, such as modularization. Consequently, recent cases point out that it has been performed unsystematically and arbitrarily. In this article, our main goal is to present this novel and relevant concept and its underlying challenges in the light of software engineering, also exemplifying it with recent cases. We relate un-bundling to standard software modularization, presenting the new motivations behind it, the resulting problems, and drawing perspectives for future support in the area.
BibTeX
@article{DBLP:journals/taosd/FilhoAB16,
author = {Ferreira Filho, João Bosco and Mathieu Acher and Olivier Barais},
title = {Software Unbundling: Challenges and Perspectives},
journal = {Trans. Modularity and Composition},
volume = {1},
pages = {224--237},
year = {2016},
publisher = {LNCS},
doi = {10.1007/978-3-319-46969-0_6},
url = {https://hal.science/hal-01427560}
}
From organizational issues to purely technical challenges, there is a wide range of barriers that complicates Software Product Line (SPL) adoption. This workshop aims to foster research about making the most of two main inputs for SPL migration: 1) domain knowledge and 2) existing legacy assets. Domain knowledge, usually implicit and spread across an organization, is key to define the SPL scope and to validate the variability model and its semantics. At the technical level, domain expertise is also needed to create reusable software components. Regarding legacy assets, they use to be similar product variants (e.g. requirements, models, source code etc.) that were implemented using ad-hoc reuse techniques such as clone-and-own. These assets can be leveraged in extractive SPL adoption processes. The workshop REverse Variability Engineering (REVE) attracts researchers and practitioners contributing processes, techniques, tools, or empirical studies related to the automatic, semi-automatic or manual extraction or refinement of SPL assets.
BibTeX
@inproceedings{DBLP:conf/splc/Lopez-HerrejonM16,
author = {Roberto Erick Lopez-Herrejon and Jabier Martinez and Tewfik Ziadi and Mathieu Acher},
title = {Fourth international workshop on reverse variability engineering {(REVE} 2016)},
booktitle = {Proceedings of the 20th International Systems and Software Product Line Conference, SPLC 2016, Beijing, China, September 16-23, 2016},
pages = {345},
year = {2016},
doi = {10.1145/2934466.2962734},
url = {https://doi.org/10.1145/2934466.2962734}
}
Adapting real-time embedded software for various variants of an application and usage contexts is highly demanded. However, the question of how to analyze real-time properties for a family of products (rather than for a single one) has not drawn much attention from researchers. In this paper , we present a formal analysis framework to analyze a family of platform products w.r.t. real-time properties. To this end, we rst propose an extension of the widely-used feature model, called Property Feature Model (PFM), that distinguishes features and properties explicitly, so that the scope of properties restricted to features can be explicitly dened. Then we present formal behavioral models of components of a real-time scheduling unit, i.e. tasks, resources, and resource schedulers, such that all real-time scheduling units implied by a PFM are automatically composed with the components to be analyzed against the properties given by the PFM. We apply our approach to the verication of the schedulability of a family of scheduling units using the symbolic and statistical model checkers of Uppaal.
BibTeX
@inproceedings{kim:hal-01241673,
author = {Kim, Jin Hyung and Legay, Axel and Traonouez, Louis-Marie and Acher, Mathieu and Kang, Sungwon},
title = {{A Formal Modeling and Analysis Framework for Software Product Line of Preemptive Real-Time Systems}},
booktitle = {Symposium on Applied Computing (SAC'16), software engineering track},
year = {2016},
doi = {10.1145/2851613.2851977}
}
Feature Models (FMs) are a popular formalism for modeling and reasoning about the configurations of a software product line. As the manual construction of an FM is time-consuming and error-prone, management operations have been developed for reverse engineering, merging, slicing, or refactoring FMs from a set of configurations/dependencies. Yet the synthesis of meaningless ontological relations in the FM – as defined by its feature hierarchy and feature groups – may arise and cause severe difficulties when reading, maintaining or exploiting it. Numerous synthesis techniques and tools have been proposed, but only a few consider both configuration and ontolog-ical semantics of an FM. There are also few empirical studies investigating ontological aspects when synthesizing FMs. In this article, we define a generic, ontologic-aware synthesis procedure that computes the likely siblings or parent candidates for a given feature. We develop six heuristics for clustering and weighting the logical, syntactical and semantical relationships between feature names. We then perform an empirical evaluation on hundreds of FMs, coming from the SPLOT repository and Wikipedia. We provide evidence that a fully automated synthesis (i.e., without any user intervention) is likely to produce FMs far from the ground truths. As the role of the user is crucial, we empirically analyze the strengths and weak-nesses of heuristics for computing ranking lists and different kinds of clusters. We show that a hybrid approach mixing logical and ontological techniques outperforms state-of-the-art solutions. We believe our approach, environment, and empirical results support researchers and practitioners working on reverse engineering and management of FMs.
BibTeX
@article{becan:hal-01096969,
author = {B{\'e}can, Guillaume and Acher, Mathieu and Baudry, Benoit and Ben Nasr, Sana},
title = {{Breathing Ontological Knowledge Into Feature Model Synthesis: An Empirical Study}},
journal = {Empirical Software Engineering (ESE)},
volume = {21},
number = {4},
pages = {1794--1841},
year = {2016},
publisher = {Springer},
doi = {10.1007/s10664-014-9357-1},
url = {https://hal.science/hal-01096969}
}
Feature models have become one of the most widely used formalism for representing the variability among the products of a product line. The design of a feature model from a set of existing products can help stakeholders communicate on the commonalities and differences between the products, facilitate the adoption of mass customization strategies, or provide foundations for engineering product configurators. As the manual construction of feature models proves to be a time-consuming and error prone task, researchers have proposed various approaches for automatically deriving feature models from available product data. Existing techniques mostly rely on data mining algorithms that search for frequently occurring patterns between the features included in product configurations. However, when the number of features is too large, the sparsity among the configurations can reduce the quality of the extracted model. In this paper, we discuss motivations for the development of dimensionality reduction techniques for product lines in order to support the extraction of feature models in the case of high-dimensional product spaces. We use a real world dataset to illustrate the problems arising with high dimensionality and present four research questions to address these problems.
BibTeX
@inproceedings{davril2015,
author = {Davril, Jean-Marc and Acher, Mathieu and B{\'e}can, Guillaume and Heymans, Patrick},
title = {{On Breaking the Curse of Dimensionality in Reverse Engineering Feature Models}},
booktitle = {17th International Configuration Workshop (ConfWS'15)},
pages = {19--22},
year = {2015},
month = sep,
address = {Vienna, Austria},
url = {https://ceur-ws.org/Vol-1453/}
}
Companies increasingly rely on product differentiation and personalization strategies to provide their customers with an expansive catalog, and tools to assist them in finding the product meeting their needs. These tools include product search facilities, recommender systems, and product configurators. They typically represent a product as a set of features, which refer to a large number of technical specifications (e.g. size, weight, battery life). However, customers usually communicate and reason about products in terms of their qualities (e.g. ease-of-use, portability, ergonomics). In this paper, we tackle the problem of formalizing product qualities in the requirements of product-centred applications. Our goal is to extract product qualities from their technical features, so that customers can better perceive and evaluate the proposed products. To this end, we design a procedure for identifying segments of textual product documentation related to specific product qualities, and propose an approach based on fuzzy modeling to represent product qualities on top of technical specifications. Preliminary experiments we carried out on a catalog of cameras tend to show that fuzzy modeling is an appropriate formalism for representing product qualities. We also illustrate how modeled qualities can support the design of product configurators that are centered on the customers' needs.
BibTeX
@inproceedings{davril:hal-01243006,
author = {Davril, Jean-Marc and Cordy, Maxime and Heymans, Patrick and Acher, Mathieu},
title = {{Using fuzzy modeling for consistent definitions of product qualities in requirements}},
booktitle = {IEEE Second International Workshop on Artificial Intelligence for Requirements Engineering (AIRE'15)},
series = {IEEE Second International Workshop on Artificial Intelligence for Requirements Engineering (AIRE'15)},
year = {2015},
month = aug,
address = {Otawa , Canada},
doi = {10.1109/AIRE.2015.7337624}
}
Attack trees are widely considered in the fields of security for the analysis of risks (or threats) against electronics, computer control, or physical systems. A major barrier is that attack trees can become largely complex and thus hard to specify. This paper presents ATSyRA, a tooling environment to automatically synthesize attack trees of a system under study. ATSyRA provides advanced editors to specify high-level descriptions of a system, high-level actions to structure the tree, and ways to interactively refine the synthesis. We illustrate how users can specify a military building, abstract and organize attacks, and eventually obtain a readable attack tree.
BibTeX
@inproceedings{pinchinat:hal-01243021,
author = {Pinchinat, Sophie and Acher, Mathieu and Vojtisek, Didier},
title = {{ATSyRa: An Integrated Environment for Synthesizing Attack Trees }},
booktitle = {Second International Workshop on Graphical Models for Security (GraMSec'15) co-located with CSF'15},
volume = {Second International Workshop on Graphical Models for Security (GraMSec'15) co-located with CSF'15},
series = {Second International Workshop on Graphical Models for Security (GraMSec'15) co-located with CSF'15},
year = {2015},
month = jul,
address = {Verona, Italy}
}
Many real-world product lines are only represented as non-hierarchical collections of distinct products, described by their configuration values. As the manual preparation of feature models is a tedious and labour-intensive activity, some techniques have been proposed to automatically generate boolean feature models from product descriptions. However, none of these techniques is capable of synthesizing feature attributes and relations among attributes, despite the huge relevance of attributes for documenting software product lines. In this paper, we introduce for the first time an algorithmic and parametrizable approach for computing a legal and appropriate hierarchy of features, including feature groups, typed feature attributes, domain values and relations among these attributes. We have performed an empirical evaluation by using both randomized configuration matrices and real-world examples. The initial results of our evaluation show that our approach can scale up to matrices containing 2,000 attributed features, and 200,000 distinct configurations in a couple of minutes.
BibTeX
@inproceedings{becan2015AFM,
author = {B{\'e}can, Guillaume and Behjati, Razieh and Gotlieb, Arnaud and Acher, Mathieu},
title = {{Synthesis of Attributed Feature Models From Product Descriptions}},
booktitle = {19th International Software Product Line Conference (SPLC'15)},
year = {2015},
month = jul,
address = {Nashville, TN, USA},
doi = {10.1145/2791060.2791068}
}
Product Derivation is a key activity in Software Product Line Engineering. During this process, derivation operators modify or create core assets (e.g., model elements, source code instructions, components) by adding, removing or substituting them according to a given configuration. The result is a derived product that generally needs to conform to a programming or modeling language. Some operators lead to invalid products when applied to certain assets, some others do not; knowing this in advance can help to better use them, however this is challenging, specially if we consider assets expressed in extensive and complex languages such as Java. In this paper, we empirically answer the following question: which product line operators, applied to which program elements, can synthesize variants of programs that are incorrect, correct or perhaps even conforming to test suites? We implement source code transformations, based on the derivation operators of the Common Variability Language. We automatically synthesize more than 370,000 program variants from a set of 8 real large Java projects (up to 85,000 lines of code), obtaining an extensive panorama of the sanity of the operations.
BibTeX
@inproceedings{bosco2015,
author = {Ferreira Filho, João Bosco and Allier, Simon and Acher, Mathieu and Barais, Olivier and Baudry, Benoit},
title = {{Assessing Product Line Derivation Operators Applied to Java Source Code: An Empirical Study}},
booktitle = {19th International Software Product Line Conference (SPLC'15)},
year = {2015},
month = jul,
address = {Nashville, TN, USA},
doi = {10.1145/2791060.2791099}
}
In systems engineering, the deployment of software components is error-prone since numerous safety and security rules have to be preserved. Another related problem is that numerous variants of deployments on different platforms are possible. In this paper we present a technological solution to assist industrial practitioners in producing a safe and secure solution out of numerous architectural variants. First, we introduce a pattern technology that provides correct-by-construction deployment models through the reuse of modeling artefacts organized in a catalog. Second, we develop a variability solution, connected to the pattern technology and based on an extension of the common variability language, for supporting the synthesis of model-based architectural variants. This paper describes a live demonstration of an industrial effort seeking to bridge the gap between variability modeling and system engineering practices. We illustrate the tooling support with an industrial case study (a secure radio platform).
BibTeX
@inproceedings{degueule2015,
author = {Thomas Degueule and João Bosco Ferreira Filho and Olivier Barais and Mathieu Acher and Jérôme Lenoir and Olivier Constant and Sebastien Madelenat and Gregory Gailliard and Godefroy Burlot},
title = {{Tooling Support for Variability and Architectural Patterns in Systems Engineering}},
booktitle = {19th International Software Product Line Conference (SPLC'15)},
year = {2015},
month = jul,
address = {Nashville, TN, USA},
doi = {10.1145/2791060.2791097}
}
Education has a key role to play for disseminating the constantly growing body of Software Product Line (SPL) knowledge. Teaching SPLs is challenging; it is unclear, for example, how SPLs can be taught and what is the material available. This workshop aims to explore and explain the current status and ongoing work on teaching SPLs at universities, colleges, and in industry (e.g., by consultants). This second edition will continue the effort made at SPLTea'14. In particular we seek to design and populate an open repository of resources dedicated to SPL teaching. See also http://teaching.variability.io
BibTeX
@inproceedings{acherSPLTea15,
author = {Acher, Mathieu and Lopez-Herrejon, Roberto Erick and Rabiser, Rick},
title = {{SPLTea 2015: Second International Workshop on Software Product Line Teaching}},
booktitle = {19th International Software Product Line Conference (SPLC'15)},
year = {2015},
month = jul,
address = {Nashville, USA},
doi = {10.1145/2791060.2791063}
}
Unbundling is a phenomenon that consists of dividing an existing software artifact into smaller ones. For example, mobile applications from well-known companies are being divided into simpler and more focused new ones. Despite its current importance, little is known or studied about unbundling or about how it relates to existing software engineering approaches, such as modularization. Consequently, recent cases points out that it has been performed unsystematically and arbitrarily. In this paper, our main goal is to present this novel and relevant concept and its challenges in the light of software engineering, exemplifying it with recent cases. We relate unbundling to standard software modularization, presenting the new motivations behind it, the resulting problems, and drawing perspectives for future support in the area.
BibTeX
@inproceedings{ferreirafilho:hal-01116694,
author = {Ferreira Filho, João Bosco and Acher, Mathieu and Barais, Olivier},
title = {{Challenges on Software Unbundling: Growing and Letting Go}},
booktitle = {14th International Conference on Modularity'15},
year = {2015},
month = mar,
address = {Fort Collins, CO, United States},
doi = {10.1145/2735386.2735390},
url = {https://hal.science/hal-01116694}
}
Feature modeling is a widely used formalism to characterize a set of products (also called configurations). As a manual elaboration is a long and arduous task, numerous techniques have been proposed to reverse engineer feature models from various kinds of artefacts. But none of them synthesize feature attributes (or constraints over attributes) despite the practical relevance of attributes for documenting the different values across a range of products. In this report, we develop an algorithm for synthesizing attributed feature models given a set of product descriptions. We present sound, complete, and parametrizable techniques for computing all possible hierarchies, feature groups, placements of feature attributes, domain values, and constraints. We perform a complexity analysis w.r.t. number of features, attributes, configurations, and domain size. We also evaluate the scalability of our synthesis procedure using randomized configuration matrices. This report is a first step that aims to describe the foundations for synthesizing attributed feature models.
BibTeX
@techreport{becan:hal-01116663,
author = {B{\'e}can, Guillaume and Behjati, Razieh and Gotlieb, Arnaud and Acher, Mathieu},
title = {{Synthesis of Attributed Feature Models From Product Descriptions: Foundations}},
number = {RR-8680},
year = {2015},
month = feb,
institution = {{Inria Rennes}},
type = {Rapport de Recherche},
url = {https://hal.science/hal-01116663}
}
We relate an original experience concerning a popular online video service that offers to generate variants of an humorous video. To further the understanding of the generator, we have reverse engineered its general behavior, architecture, as well as its variation points and its configuration space. The reverse engineering also allows us to create a new generator and online configurator that proposes 18 variation points – instead of only 3 as in the original generator. We explain why and how we have collaborated and are collaborating with the original creators of the video generator. We also highlight how our reverse engineering work represents a threat to the original service and call for further investigating variability-aware security mechanisms.
BibTeX
@inproceedings{becan:hal-01104797,
author = {B{\'e}can, Guillaume and Acher, Mathieu and J{\'e}z{\'e}quel, Jean-Marc and Menguy, Thomas},
title = {{On the Variability Secrets of an Online Video Generator}},
booktitle = {Variability Modelling of Software-intensive Systems (VaMoS'15)},
pages = {96 - 102},
year = {2015},
month = jan,
address = {Hildesheim, Germany},
doi = {10.1145/2701319.2701328},
url = {https://hal.science/hal-01104797}
}
Domain analysts, product managers, or customers aim to capture the important features and differences among a set of related products. A case-by-case reviewing of each product description is a laborious and time-consuming task that fails to deliver a condensed view of a product line. This paper introduces MatrixMiner: a tool for automatically synthesizing product comparison matrices (PCMs) from a set of product descriptions written in natural language. MatrixMiner is capable of identifying and organizing features and values in a PCM – despite the informality and absence of structure in the textual descriptions of products. Our empirical results of products mined from BestBuy show that the synthesized PCMs exhibit numerous quantitative, comparable information. Users can exploit MatrixMiner to visualize the matrix through a Web editor and review, refine, or complement the cell values thanks to the traceability with the original product descriptions and technical specifications.
BibTeX
@inproceedings{NasrMM2015,
author = {Sana Ben Nasr and Guillaume B{\'e}can and Mathieu Acher and Joao Bosco Ferreira Filho and Benoit Baudry and Nicolas Sannier and Jean-Marc Davril},
title = {MatrixMiner: a red pill to architect informal product descriptions in the matrix},
booktitle = {Proceedings of the 2015 10th Joint Meeting on Foundations of Software Engineering, (ESEC/FSE'15)},
pages = {982--985},
year = {2015},
doi = {10.1145/2786805.2803180}
}
What do you give for free to your competitor when you exhibit a product line? This paper addresses this question through several cases in which the discovery of trade secrets of a product line is possible and can lead to severe consequences. That is, we show that an outsider can understand the variability realization and gain either confidential business information or even some economical direct advantage. For instance, an attacker can identify hidden constraints and bypass the product line to get access to features or copyrighted data. This paper warns against possible naive modeling, implementation, and testing of variability leading to the existence of product lines that jeopardize their trade secrets. Our vision is that defensive methods and techniques should be developed to protect specifically variability – or at least further complicate the task of reverse engineering it.
BibTeX
@inproceedings{acherjeopardize15,
author = {Mathieu Acher and Guillaume B{\'e}can and Benoit Combemale and Benoit Baudry and Jean-Marc J{\'e}z{\'e}quel},
title = {Product lines can jeopardize their trade secrets},
booktitle = {Proceedings of the 2015 10th Joint Meeting on Foundations of Software Engineering (ESEC/FSE'15)},
pages = {930--933},
year = {2015},
doi = {10.1145/2786805.2803210}
}
Variability management of a product family is the core aspect of Software Product Line Engineering. The adoption of this mature approach requires a high upfront investment before being able to automatically generate product instances based on customer requirements. However, this adoption costs and risks could be reduced with an incremental approach, which mines existing assets and then transitions to full product line engineering. Those existing assets can be for instance similar product variants that were implemented using ad-hoc reuse techniques such as clone-and-own. Hence, there is a great need of bottom-up approaches that extract variability from the artifacts (across all the life cycle) of the legacy product variants and manage the consolidated variability. The REVE workshop series aims to bring together the Reengineering and Software Product Line Engineering communities to address this gap.
BibTeX
@inproceedings{DBLP:conf/splc/Lopez-HerrejonZ15,
author = {Roberto E. Lopez-Herrejon and Tewfik Ziadi and Jabier Martinez and Anil Kumar Thurimella and Mathieu Acher},
title = {Third International Workshop on Reverse Variability Engineering {(REVE} 2015)},
booktitle = {Proceedings of the 19th International Conference on Software Product Line, {SPLC} 2015, Nashville, TN, USA, July 20-24, 2015},
pages = {394},
year = {2015},
doi = {10.1145/2791060.2791062},
url = {https://doi.org/10.1145/2791060.2791062}
}
Talk at Third International Workshop on Reverse Variability Engineering (REVE'15)
Mathieu Acher
Proceedings of the 19th International Conference on Software Product Line (SPLC'15), 2015
Variability is omnipresent in numerous kinds of artefacts (e.g., source code, product matrices) and in different shapes (e.g., conditional compilation, differences among product descriptions). For understanding, reasoning about, maintaining or evolving variability, practitioners usually need an explicit encoding of variability (ie a variability model). As a result, numerous techniques have been developed to reverse engineer variability (e.g., through the mining of features and constraints from source code) or for migrating a set of products as a variability system. In this talk we will first present tool-supported techniques for synthesizing variability models from constraints or product descriptions. Practitioners can build Boolean feature models with an interactive environment for selecting a meaningful and sound hierarchy. Attributes can also be synthesized for encoding numerical values and constraints among them. We will present key results we obtain through experiments with the SPLOT repository and product comparison matrices coming from Wikipedia and BestBuy. Finally we will introduce OpenCompare.org a recent initiative for editing, reasoning, and mining product comparison matrices. This talk has been done at REVE'15 workshop co-located with SPLC'15 (software product line conference): http://www.isse.jku.at/reve2015/program.html
BibTeX
@misc{Lopez-HerrejonZ15,
author = {Mathieu Acher},
title = {Talk at Third International Workshop on Reverse Variability Engineering (REVE'15)},
booktitle = {Proceedings of the 19th International Conference on Software Product Line (SPLC'15)},
pages = {394},
year = {2015}
}
External or internal domain-specific languages (DSLs) or (fluent) APIs? Whoever you are – a developer or a user of a DSL – you usually have to choose side; you should not! What about metamorphic DSLs that change their shape according to your needs? Our 4-years journey of providing the "right" support (in the domain of feature modeling), led us to develop an external DSL, different shapes of an internal API, and maintain all these languages. A key insight is that there is no one-size-fits-all solution or no clear superiority of a solution compared to another. On the contrary, we found that it does make sense to continue the maintenance of an external and internal DSL. Based on our experience and on an analysis of the DSL engineering field, the vision that we foresee for the future of software languages is their ability to be self-adaptable to the most appropriate shape (including the corresponding integrated development environment) according to a particular usage or task. We call metamorphic DSL such a language, able to change from one shape to another shape.
BibTeX
@inproceedings{acher:hal-01061576,
author = {Acher, Mathieu and Combemale, Benoit and Collet, Philippe},
title = {{Metamorphic Domain-Specific Languages: A Journey Into the Shapes of a Language}},
booktitle = {Onward! Essays (co-located with SPLASH and OOPSLA)},
year = {2014},
month = sep,
address = {Portland, {\'E}tats-Unis},
doi = {10.1145/2661136.2661159},
url = {https://hal.science/hal-01061576},
eprint = {1404.6838},
archiveprefix = {arXiv}
}
Attack trees are widely used in the fields of defense for the analysis of risks (or threats) against electronics systems, computer control systems or physical systems. Based on the analysis of attack trees, practitioners can define actions to engage in order to reduce or annihilate risks. A major barrier to support computer-aided risk analysis is that attack trees can become largely complex and thus hard to specify. This paper is a first step towards a methodology, formal foundations as well as automated techniques to synthesize attack trees from a high-level description of a system. Attacks are expressed as a succession of elementary actions and high-level actions can be used to abstract and organize attacks into exploitable attack trees. We describe our tooling support and identify open challenges for supporting the analysis of risks.
BibTeX
@inproceedings{pinchinat:hal-01064645,
author = {Pinchinat, Sophie and Acher, Mathieu and Vojtisek, Didier},
title = {{Towards Synthesis of Attack Trees for Supporting Computer-Aided Risk Analysis}},
booktitle = {Workshop on Formal Methods in the Development of Software (co-located with SEFM)},
year = {2014},
month = sep,
address = {Grenoble, France},
doi = {10.1007/978-3-319-15201-1_24},
url = {https://hal.science/hal-01064645}
}
Product Comparison Matrices (PCMs) form a rich source of data for comparing a set of related and competing products over numerous features. Despite their apparent simplicity, PCMs contain heterogeneous, ambiguous, uncontrolled and partial information that hinders their efficient exploitations. In this paper, we formalize PCMs through model-based automated techniques and develop additional tooling to support the edition and re-engineering of PCMs. 20 participants used our editor to evaluate the PCM metamodel and automated transformations. The results over 75 PCMs from Wikipedia show that (1) a significant proportion of the formalization of PCMs can be automated - 93.11% of the 30061 cells are correctly formalized; (2) the rest of the formalization can be realized by using the editor and mapping cells to existing concepts of the metamodel. The automated approach opens avenues for engaging a community in the mining, re-engineering, edition, and exploitation of PCMs that now abound on the Internet.
BibTeX
@inproceedings{becan:hal-01058440,
author = {B{\'e}can, Guillaume and Sannier, Nicolas and Acher, Mathieu and Barais, Olivier and Blouin, Arnaud and Baudry, Benoit},
title = {{Automating the Formalization of Product Comparison Matrices}},
booktitle = {29th IEEE/ACM International Conference on Automated Software Engineering (ASE'14)},
year = {2014},
month = sep,
address = {V{\"a}ster{\aa}s, Su{\`e}de},
doi = {10.1145/2642937.2643000},
url = {https://hal.science/hal-01058440}
}
Recently, domain-specific language development has become again a topic of interest, as a means to help designing solutions to domain-specific problems. Componentized language frameworks, coupled with variability modeling, have the potential to bring language development to the masses, by simplifying the configuration of a new language from an existing set of reusable components. However, designing variability models for this purpose requires not only a good understanding of these frameworks and the way components interact, but also an adequate familiarity with the problem domain. In this paper we propose an approach to automatically infer a relevant variability model from a collection of already implemented language components, given a structured, but general representation of the domain. We describe techniques to assist users in achieving a better understanding of the relationships between language components, and find out which languages can be derived from them with respect to the given domain.
BibTeX
@inproceedings{vacchi:hal-01023864,
author = {Vacchi, Edoardo and Cazzola, Walter and Combemale, Benoit and Acher, Mathieu},
title = {{Automating Variability Model Inference for Component-Based Language Implementations}},
booktitle = {18th International Software Product Line Conference (SPLC'14)},
year = {2014},
month = sep,
publisher = {ACM},
address = {Florence, Italie},
doi = {10.1145/2648511.2648529},
url = {https://hal.science/hal-01023864}
}
Testing techniques in industry are not yet adapted for product line engineering (PLE). In particular, Model-based Testing (MBT), a technique that allows to automatically generate test cases from requirements, lacks support for managing variability (differences) among a set of related product. In this paper, we present an approach to equip usage models, a widely used formalism in MBT, with variability capabilities. Formal correspondences are established between a variability model, a set of functional requirements, and a usage model. An algorithm then exploits the traceability links to automatically derive a usage model variant from a desired set of selected features. The approach is integrated into the professional MBT tool MaTeLo and is currently used in industry.
BibTeX
@inproceedings{samih:hal-01025124,
author = {Samih, Hamza and Le Guen, H{\'e}l{\`e}ne and Bogusch, Ralf and Acher, Mathieu and Baudry, Benoit},
title = {{An Approach to Derive Usage Models Variants for Model-based Testing}},
booktitle = {26th IFIP International Conference on Testing Software and Systems (ICTSS'2014)},
year = {2014},
month = sep,
publisher = {Springer},
address = {Madrid, Espagne},
doi = {10.1007/978-3-662-44857-1_6},
url = {https://hal.science/hal-01025124}
}
Feature Models (FMs) are the de-facto standard for documenting, model checking, and reasoning about the configurations of a software system. This paper introduces WebFML a comprehensive environment for synthesizing FMs from various kinds of artefacts (e.g. propositional formula, dependency graph, FMs or product comparison matrices). A key feature of WebFML is an interactive support (through ranking lists, clusters, and logical heuristics) for choosing a sound and meaningful hierarchy. WebFML opens avenues for numerous practical applications (e.g., merging multiple product lines, slicing a configuration process, reverse engineering configurable systems).
BibTeX
@inproceedings{becan:hal-01022912,
author = {B{\'e}can, Guillaume and Ben Nasr, Sana and Acher, Mathieu and Baudry, Benoit},
title = {{WebFML: Synthesizing Feature Models Everywhere}},
booktitle = {18th International Software Product Line Conference (SPLC'14), tool track},
year = {2014},
month = sep,
address = {Florence, Italie},
doi = {10.1145/2647908.2655974},
url = {https://hal.science/hal-01022912}
}
The strong cost pressure of the market and safety issues faced by aerospace industry affect the development. Suppliers are forced to continuously optimize their life-cycle processes to facilitate the development of variants for different customers and shorten time to market. Additionally, industrial safety standards like RTCA/DO-178C require high efforts for testing single products. A suitably organized test process for Product Lines (PL) can meet standards. In this paper, we propose an approach that adopts Model-based Testing (MBT) for PL. Usage models, a widely used MBT formalism that provides automatic test case generation capabilities, are equipped with variability information such that usage model variants can be derived for a given set of features. The approach is integrated in the professional MBT tool MaTeLo. We report on our experience gained from an industrial case study in the aerospace domain.
BibTeX
@inproceedings{samih2014,
author = {Samih, Hamza and Acher, Mathieu and Bogusch, Ralf and Le Guen, H{\'e}l{\`e}ne and Baudry, Benoit},
title = {{Deriving Usage Model Variants for Model-based Testing: An Industrial Case Study}},
booktitle = {19th International Conference on Engineering of Complex Computer Systems (ICECCS'14)},
year = {2014},
month = aug,
address = {Tianjin, Chine},
doi = {10.1109/iceccs.2014.19},
url = {https://hal.science/hal-01002099}
}
This paper reports about a new domain-specific variability modeling language, called VM, resulting from the close collaboration with industrial partners in the video domain. We expose the requirements and advanced variability constructs required to characterize and realize variations of physical properties of a video (such as objects' speed or scene illumination). The results of our experiments and industrial experience show that VM is effective to model complex variability information and can be exploited to synthesize video variants. We concluded that basic variability mechanisms are useful but not enough, attributes and multi-features are of prior importance, and meta-information is relevant for efficient variability analysis. In addition, we questioned the existence of one-size-fits-all variability modeling solution applicable in any industry. Yet, some common needs for modeling variability are becoming apparent such as support for attributes and multi-features.
BibTeX
@techreport{alferez:hal-01023159,
author = {Alf{\'e}rez, Mauricio and Galindo, Jos{\'e} A. and Acher, Mathieu and Baudry, Benoit},
title = {{Modeling Variability in the Video Domain: Language and Experience Report}},
number = {RR-8576},
year = {2014},
month = jul,
institution = {INRIA},
type = {Rapport de Recherche},
url = {https://hal.science/hal-01023159}
}
In a Model-based Software Product Line (MSPL), the variability of the domain is characterized in a variability model and the core artifacts are base models conforming to a modeling language (also called metamodel). A realization model connects the features of the variability model to the base model elements, triggering operations over these elements based on a configuration. The design space of an MSPL is extremely complex to manage for the engineer, since the number of variants may be exponential and the derived product models have to be conforming to numerous well-formedness and business rules. In this paper, the objective is to provide a way to generate MSPLs, called counterexamples (also called anti-patterns), that can produce invalid product models despite a valid configuration in the variability model. We describe the foundations and motivate the usefulness of counterexamples (e.g., inference of guidelines or domain-specific rules to avoid earlier the specification of incorrect mappings; testing oracles for increasing the robustness of derivation engines given a modeling language). We provide a generic process, based on the Common Variability Language (CVL) to randomly search the space of MSPLs for a specific modelling language. We develop LineGen a tool on top of CVL and modeling technologies to support the methodology and the process. LineGen targets different scenarios and is flexible to work either with just a domain metamodel as input or also with pre-defined variability models and base models. We validate the effectiveness of this process for three formalisms at different scales (up to 247 metaclasses and 684 rules). We also apply the approach in the context of a real industrial scenario involving a large-scale metamodel.
BibTeX
@article{ferreirafilho:hal-01026581,
author = {Ferreira Filho, Joao Bosco and Barais, Olivier and Acher, Mathieu and Le Noir, J{\'e}r{\^o}me and Legay, Axel and Baudry, Benoit},
title = {{Generating Counterexamples of Model-based Software Product Lines}},
journal = {International Journal on Software Tools for Technology Transfer (STTT)},
volume = {17},
number = {5},
pages = {585--600},
year = {2014},
month = jul,
publisher = {Springer},
doi = {10.1007/s10009-014-0341-2},
url = {https://hal.science/hal-01026581}
}
3D printing is gaining more and more momentum to build customized product in a wide variety of fields. We conduct an exploratory study of Thingiverse, the most popular Website for sharing user-created 3D design files, in order to establish a possible connection with software product line (SPL) engineering. We report on the socio-technical aspects and current practices for modeling variability, implementing variability, configuring and deriving products, and reusing artefacts. We provide hints that SPL-alike techniques are practically used in 3D printing and thus relevant. Finally, we discuss why the customization in the 3D printing field represents a challenging playground for SPL engineering.
BibTeX
@inproceedings{acher:hal-01018937,
author = {Acher, Mathieu and Baudry, Benoit and Barais, Olivier and J{\'e}z{\'e}quel, Jean-Marc},
title = {{Customization and 3D Printing: A Challenging Playground for Software Product Lines}},
booktitle = {18th International Software Product Line Conference (SPLC'14), research track},
year = {2014},
month = jul,
address = {Florence, Italie},
doi = {10.1145/2648511.2648526},
url = {https://hal.science/hal-01018937}
}
This paper discusses the merits and challenges of adopting software product line engineering (SPLE) as the main development process for an automotive Hall Effect sensor. This versatile component is integrated into a number of automotive applications with varying safety requirements (e.g., windshield wipers and brake pedals). This paper provides a detailed explanation as to why the process of safety assessment and verification of the Hall Effect sensor is currently cumbersome and repetitive:ĩt must be repeated entirely for every automotive application in which the sensor is to be used. In addition, no support is given to the engineer to select and configure the appropriate safety solutions and to explain the safety implications of his decisions. To address these problems, we present a tailored SPLE-based approach that combines model-driven development with advanced model composition techniques for applying and reasoning about specific safety solutions. In addition, we provide insights about how this approach can reduce the overall complexity, improve reusability, and facilitate safety assessment of the Hall Effect sensor.
BibTeX
@inproceedings{vanlanduyt:hal-01018938,
author = {Van Landuyt, Dimitri and Op De Beeck, Steven and Hovsepyan, Aram and Michiels, Sam and Joosen, Wouter and Meynckens, Sven and De Jong, Gjalt and Barais, Olivier and Acher, Mathieu},
title = {{Towards Managing Variability in the Safety Design of an Automotive Hall Effect Sensor}},
booktitle = {18th International Software Product Line Conference (SPLC'14), industrial track},
year = {2014},
month = jul,
address = {Florence, Italie},
doi = {10.1145/2648511.2648546},
url = {https://hal.science/hal-01018938}
}
Nuclear power plants are some of the most sophisticated and complex energy systems ever designed. These systems perform safety critical functions and must conform to national safety institutions and international regulations. In many cases, regulatory documents provide very high level and ambiguous requirements that leave a large margin for interpretation. As the French nuclear industry is now seeking to spread its activities outside France, it is but necessary to master the ins and the outs of the variability between countries safety culture and regulations. This sets both an industrial and a scientific challenge to introduce and propose a product line engineering approach to an unaware industry whose safety culture is made of interpretations, specificities, and exceptions. This paper presents our current work within the French R&D project CONNEXION, while introducing variability modeling to the French nuclear industry. In particular, we discuss the background, the quest for the best variability paradigm, the practical modeling of requirements variability as well as the mapping between variable requirements and variable architecture elements.
BibTeX
@inproceedings{bennasr:hal-01019537,
author = {Ben Nasr, Sana and Sannier, Nicolas and Acher, Mathieu and Baudry, Benoit},
title = {{Moving Toward Product Line Engineering in a Nuclear Industry Consortium}},
booktitle = {18th International Software Product Line Conference (SPLC'2014), industrial track},
year = {2014},
month = jul,
address = {Florence, Italie},
doi = {10.1145/2648511.2648545},
url = {https://hal.science/hal-01019537}
}
Education has a key role to play for disseminating the constantly growing body of Software Product Line (SPL) knowledge. Teaching SPLs is challenging and it is unclear how SPLs can be taught, what are the possible benefits, or what is the material available. This workshop aims to explore and explain the current status and ongoing work on teaching SPLs at universities, colleges, and in industry (e.g., by consultants). Participants will discuss gaps and difficulties faced when teaching SPLs, benefits to research and industry, different ways to teach SPL knowledge, common threads, interests, and problems. The overall goal is to strengthen the important aspect of teaching in the SPL community.
BibTeX
@inproceedings{acher:hal-01024990,
author = {Acher, Mathieu and Lopez-Herrejon, Roberto Erick and Rabiser, Rick},
title = {{SPLTea 2014: First International Workshop on Software Product Line Teaching}},
booktitle = {18th International Software Product Line Conference (SPLC'14)},
year = {2014},
month = jul,
address = {Florence, Italie},
doi = {10.1145/2648511.2648551},
url = {https://hal.science/hal-01024990}
}
Diversity emerges as a critical concern that spans all activities in software engineering (from design to verification, from deployment to runtime resilience) and appears in all sorts of domains, which rely on software intensive systems, from systems of systems to pervasive combinations of Internet of Things and Internet of Services. If these domains are apparently radically different, we envision a strong convergence of the scientific principles underpinning their construction and validation towards flexible and open yet dependable systems. In this paper, we discuss the software engineering challenges raised by these requirements for flexibility and openness, focusing on four dimensions of diversity: the diversity of functionalities required by the different customers; the diversity of languages used by the stakeholders involved in the construction of these systems; the diversity of runtime environments in which software has to run and adapt; the diversity of failures against which the system must be able to react. In particular, we want to emphasize the challenges for handling imposed diversity, as well as the opportunities to leverage chosen diversity. The main challenge is that software diversity imposes to integrate the fact that software must adapt to changes in the requirements and environment – in all development phases and in unpredictable ways. Yet, exploiting and increasing software diversity is a great opportunity to allow the spontaneous exploration of alternative software solutions and proactively prepare for unforeseen changes. Concretely, we want to provide software engineers with the ability: to characterize an 'envelope' of possible variations; to compose 'envelopes' (to discover new macro envelopes in an opportunistic manner); to dynamically synthesize software inside a given envelop.
BibTeX
@inproceedings{acher:hal-00980126,
author = {Acher, Mathieu and Barais, Olivier and Baudry, Benoit and Blouin, Arnaud and Bourcier, Johann and Combemale, Benoit and J{\'e}z{\'e}quel, Jean-Marc and Plouzeau, No{\"e}l},
title = {{Software Diversity: Challenges to handle the imposed, Opportunities to harness the chosen}},
booktitle = {GDR GPL},
year = {2014},
month = jun,
address = {Paris, France},
url = {https://hal.science/hal-00980126}
}
Class diagrams are among the most popular modeling languages in industrial use. In a model-driven development process, class diagrams evolve, so it is important to be able to assess differences between revisions, as well as to propagate differences using suitable merge operations. Existing differencing and merging methods are mainly syntactic, concentrating on edit operations applied to model elements, or they are based on sampling: enumerating some examples of instances which characterize the difference between two diagrams. This paper presents the first known (to the best of our knowledge) automatic model merging and differencing operators supported by a formal semantic theory guaranteeing that they are semantically sound. All instances of the merge of a model and its difference with another model are automatically instances of the second model. The differences we synthesize are represented using class diagram notation (not edits, or instances), which allows creation of a simple yet flexible algebra for diffing and merging. It also allows presenting changes comprehensively, in a notation already known to users.
BibTeX
@inproceedings{fahrenberg:hal-00927310,
author = {Fahrenberg, Uli and Acher, Mathieu and Legay, Axel and Wasowski, Andrzej},
title = {{Sound Merging and Differencing for Class Diagrams}},
booktitle = {17th International Conference on Fundamental Approaches to Software Engineering (FASE'14)},
series = {LNCS},
year = {2014},
month = apr,
publisher = {Springer},
address = {Grenoble, France},
doi = {10.1007/978-3-642-54804-8_5},
url = {https://hal.science/hal-00927310}
}
External or internal domain-specific languages (DSLs) or (fluent) APIs? Whoever you are – a developer or a user of a DSL – you usually have to choose your side; you should not! What about metamorphic DSLs that change their shape according to your needs? We report on our 4-years journey of providing the "right" support (in the domain of feature modeling), leading us to develop an external DSL, different shapes of an internal API, and maintain all these languages. A key insight is that there is no one-size-fits-all solution or no clear superiority of a solution compared to another. On the contrary, we found that it does make sense to continue the maintenance of an external and internal DSL. The vision that we foresee for the future of software languages is their ability to be self-adaptable to the most appropriate shape (including the corresponding integrated development environment) according to a particular usage or task. We call metamorphic DSL such a language, able to change from one shape to another shape.
BibTeX
@article{arxiv:1404.6838,
author = {Mathieu Acher and Benoit Combemale and Philippe Collet},
title = {{Metamorphic Domain-Specific Languages: A Journey Into the Shapes of a Language}},
journal = {CoRR},
volume = {abs/1404.6838},
year = {2014},
month = apr,
doi = {10.48550/arXiv.1404.6838},
url = {https://arxiv.org/abs/1404.6838},
eprint = {1404.6838},
archiveprefix = {arXiv}
}
A Web configurator offers a highly interactive environment to assist users in customising sales products through the selection of configuration options. Our previous empirical study revealed that a significant number of configurators are suboptimal in reliability, efficiency, and maintainability, opening avenues for re-engineering support and methodologies. This paper presents a tool-supported reverse-engineering process to semi-automatically extract configuration-specific data from a legacy Web configurator. The extracted and structured data is stored in formal models (e.g., variability models) and can be used in a forward-engineering process to generate a customized interface with an underlying reliable reasoning engine. Two major components are presented: (1) a Web Wrapper that extracts structured configuration-specific data from unstructured or semi-structured Web pages of a configurator, and (2) a Web Crawler that explores the configuration space (i.e., all objects representing configuration-specific data) and simulates users' configuration actions. We describe variability data extraction patterns, used on top of the Wrapper and the Crawler to extract configuration data. Experimental results on five existing Web configurators show that the specification of a few variability patterns enable the identification of hundreds of options.
BibTeX
@inproceedings{khalilabbasi2014,
author = {Khalil Abbasi, Ebrahim and Acher, Mathieu and Heymans, Patrick and Cleve, Anthony},
title = {{Reverse Engineering Web Configurators}},
booktitle = {2014 Software Evolution Week - IEEE Conference on Software Maintenance, Reengineering, and Reverse Engineering (CSMR-WCRE)},
pages = {264--273},
year = {2014},
month = feb,
address = {Antwerp, Belgium},
doi = {10.1109/csmr-wcre.2014.6747178}
}
Product comparators and configurators aim to assist customers in choosing a product that meets their expectations. While comparators present similarities and differences between competing products, configurators propose an assisted environment to gradually choose and customize products. The two systems have pros and cons and are inherently different. But both share the same variability information background and operate over a set of (possible) products, typically represented through product comparison matrices (PCMs). A key issue is that current PCMs have no clear semantics, making their analysis and transformations imprecise and hard. In this paper, we sketch a research plan for generating dedicated comparators or configurators from PCMs. The core of our vision is the use of formal variability models to encode PCMs and enables a further exploitation by developers of comparators or configurators. We elaborate on five research questions and describe the expected outputs of the research.
BibTeX
@inproceedings{sannier:hal-00927312,
author = {Sannier, Nicolas and Bécan, Guillaume and Acher, Mathieu and Ben Nasr, Sana and Baudry, Benoit},
title = {{Comparing or Configuring Products: Are We Getting the Right Ones?}},
booktitle = {8th International Workshop on Variability Modelling of Software-intensive Systems (VaMoS'14)},
year = {2014},
month = jan,
publisher = {ACM},
address = {Nice, France},
doi = {10.1145/2556624.2556636}
}
With around two decades of existence, the community of Software Product Line (SPL) researchers and practitioners is thriving as can be attested by the extensive research output and the numerous successful industrial projects. Education has a key role to support the next generation of engineers to build highly complex SPLs. Yet, it is unclear how SPLs are taught, what are the possible missing gaps and difficulties faced, what are the benefits, or what is the material available. In this paper, we carry out a survey with over 30 respondents with the purpose of capturing a snapshot of the state of teaching in our community. We report and discuss quantitative as well as qualitative results of the survey. We build upon them and sketch six concrete actions to continue improving the state of practice of SPL teaching.
BibTeX
@inproceedings{acher:hal-00916746,
author = {Acher, Mathieu and Lopez-Herrejon, Roberto Erick and Rabiser, Rick},
title = {{A Survey on Teaching of Software Product Lines}},
booktitle = {Eight International Workshop on Variability Modelling of Software-Intensive Systems (VaMoS'14)},
year = {2014},
month = jan,
publisher = {ACM},
address = {Nice, France},
doi = {10.1145/2556624.2556629},
url = {https://hal.science/hal-00916746}
}
We present ViViD, a variability-based tool to synthesize variants of video sequences. ViViD is developed and used in the context of an industrial project involving consumers and providers of video processing algorithms. The goal is to synthesize synthetic video variants with a wide range of characteristics to then test the algorithms. We describe the key components of ViViD(1) a variability language and an environment to model what can vary within a video sequence; (2) a reasoning back-end to generate relevant testing configurations; (3) a video synthesizer in charge of producing variants of video sequences corresponding to configurations. We show how ViViD can synthesize realistic videos with different characteristics such as luminances, vehicles and persons that cover a diversity of testing scenarios.
BibTeX
@inproceedings{acher:hal-01020933,
author = {Acher, Mathieu and Alferez, Mauricio and Galindo, Jos{\'e} A. and Romenteau, Pierre and Baudry, Benoit},
title = {{ViViD: A Variability-Based Tool for Synthesizing Video Sequences}},
booktitle = {18th International Software Product Line Conference (SPLC'14), tool track},
year = {2014},
address = {Florence, Italie},
doi = {10.1145/2647908.2655981},
url = {https://hal.science/hal-01020933}
}
During the construction of software product lines, variability management is a crucial activity. A large number of software variants must be produced, in most cases, by using extensible architectures. In this chapter, we present the various applications of a set of modular management variability tools (FAMILIAR) for different forms of architecture (component-, service- and plug-in-based), and at different stages of the software life cycle. We discuss the lessons learnt from these studies and present guidelines for resolving recurring problems linked to multiple variability and to software architecture.
BibTeX
@inbook{acherm2014book,
author = {Acher, Mathieu and Collet, Philippe and Lahire, Philippe},
title = {Software Architecture 2},
chapter = {Software Architectures and Multiple Variability},
year = {2014},
publisher = {Wiley}
}
A key problem when developing video processing software is the difficulty to test different input combinations. In this paper, we present VANE, a variability-based testing approach to derive video sequence variants. The ideas of the approach are i) to encode what can vary within a video sequence in a variability model; ii) exploit the variability model to generate a certain number of testable configurations; iii) synthesize variants of video sequences corresponding to configurations. VANE computes T-wise covering sets while maximizing a function over quality attributes. Also, we present a preliminary validation of the VANE approach in the context of an industrial project involving the test of video processing algorithms.
BibTeX
@inproceedings{galindoISSTA14,
author = {Jos\'{e} A. Galindo and Mauricio Alferez and Mathieu Acher and Benoit Baudry and David Benavides},
title = {A Variability-based Testing Approach for Synthesizing Video Sequences},
booktitle = {International Symposium on Software Testing and Analysis (ISSTA'14)},
year = {2014},
doi = {10.1145/2610384.2610411}
}
Lors de la construction de lignes de produits logiciels, la gestion de la variabilité est une activité cruciale. Un très grand nombre de variantes logicielles doit être réalisé, le plus souvent en utilisant des architectures extensibles. Dans ce chapitre, nous présentons plusieurs applications d'un outillage (FAMILIAR) de gestion modulaire de la variabilité à différentes formes d'architectures (à base de composants, de services, de plugins) et à différents stades du cycle de vie logiciel. Nous discutons les leçons apprises de ces études, ainsi que quelques problèmes ouverts liés à la variabilité et aux architectures logicielles.
BibTeX
@inbook{acherm2014bookb,
author = {Acher, Mathieu and Collet, Philippe and Lahire, Philippe},
title = {{Architectures logicielles et variabilité multiple}},
chapter = {Architectures logicielles et variabilité multiple},
year = {2014},
publisher = {Lavoisier},
isbn = {978-2-7462-4517-4},
url = {https://web.archive.org/web/20230911210104/https://www.lavoisier.fr/livre/informatique/architectures-logicielles/oussalah/descriptif-9782746245174}
}
Feature Models (FMs) are a popular formalism for modeling and reasoning about the configurations of a software product line. As the manual construction or management of an FM is time-consuming and error-prone for large software projects, recent works have focused on automated operations for reverse engineering or refactoring FMs from a set of configurations/dependencies. Without prior knowledge, meaningless ontological relations (as defined by the feature hierarchy and groups) are likely to be synthesized and cause severe difficulties when reading, maintaining or exploiting the resulting FM. In this paper we define a generic, ontological-aware synthesis procedure that guides users when identifying the likely siblings or parent candidates for a given feature. We develop and evaluate a series of heuristics for clustering/weighting the logical, syntactic and semantic relationships between features. Empirical experiments on hundreds of FMs, coming from the SPLOT repository and Wikipedia, show that an hybrid approach mixing logical and ontological techniques outperforms state-of-the-art solutions and offers the best support for reducing the number of features a user has to consider during the interactive selection of a hierarchy.
BibTeX
@techreport{becan:hal-00874867,
author = {Bécan, Guillaume and Acher, Mathieu and Baudry, Benoit and Ben Nasr, Sana},
title = {{Breathing Ontological Knowledge Into Feature Model Management}},
number = {RT-0441},
pages = {15},
year = {2013},
month = oct,
institution = {INRIA},
type = {Rapport Technique},
url = {https://hal.science/hal-00874867}
}
Variability modelling and management is pervasive in a growing number of software engineering contexts (e.g., software product lines, dynamic adaptive systems). Feature models are the de facto standard to formally represent and reason about commonality and variability of a software system. This tutorial aims at presenting feature modelling languages and tools, directly applicable to a wide range of model-based variability problems and application domains. We will explain how to import, export, compose, decompose, edit, configure, compute diffs, refactor, reverse engineer, test, or reason about (multiple) feature models. We will also illustrate how these "smart" operations can be combined to realize complex variability management tasks. Participants (being practitioners or academics, beginners or advanced) will learn the principles and foundations of tool-supported techniques dedicated to the model-based management of variability.
BibTeX
@inproceedings{collet:hal-00913157,
author = {Collet, Philippe and Lahire, Philippe and Acher, Mathieu and France, Robert},
title = {{Feature Model Management: Smart Operations and Language Support (tutorial)}},
booktitle = {ACM/IEEE 16th International Conference on Model Driven Engineering Languages and Systems (MODELS'13)},
year = {2013},
month = sep,
address = {Miami, {\'E}tats-Unis},
url = {https://hal.science/hal-00913157}
}
The customization of almost everything is observed in a wide range of domains. Many organizations should address the challenge of extending, changing, customizing or configuring numerous kinds of systems and artefacts (requirements, components, services, languages, architectural or design models, codes, user interfaces, etc.) for use in a particular context. As a result, modeling and managing variability of such systems and artefacts is a crucial activity in a growing number of software engineering contexts (e.g., software product lines, dynamic adaptive architectures). Numerous model-based techniques have been proposed and usually consist in i) a variability model (e.g., a feature model), ii) a model (e.g., a class diagram) expressed in a domain-specific modeling language (e.g., Unified Modelling language), and iii) a realization layer that maps and transforms variation points into model elements. Based on a selection of desired features in the variability model, a derivation engine can automatically synthesise customized models – each model corresponding to an individual product. In this tutorial, we present the foundations and tool-supported techniques of state-of-the-art variability modeling technologies. In the first part, we briefly exemplify the management of variability in some systems/artefacts (design models, languages, product configurators). We introduce the Common Variability Language (CVL), a representative approach and ongoing effort involving both academic and industry partners to promote standardization variability modeling technology. In the second part, we focus on feature models the most popular notation to formally represent and reason about commonality and variability of a software system. Feature modelling languages and tools, directly applicable to a wide range of model-based variability problems and application domains, are presented. The FAMILIAR language and environment is used to perform numerous management operations like the import, export, compose, decompose, edit, configure, compute diffs, refactor, reverse engineer, test, or reason about (multiple) feature models. We describe their theoretical foundations, efficient implementations, and how these operations can be combined to realize complex variability management tasks. In the third part, we show how to combine feature models and other modeling artefacts. We revisit the examples given in the first part of the tutorial, using the Kermeta workbench and familiarCVL, an implementation of CVL. Finally we present some of the ongoing challenges for variability modeling. At the end of the tutorial, participants (being practitioners or academics, beginners or advanced) will learn languages, tools and novel variability modeling techniques they can directly use in their industrial contexts or as part of their research.
BibTeX
@inproceedings{acherEC2013,
author = {Acher, Mathieu and Benoit Combemale and Olivier Barais},
title = {{Model-Based Variability Management} (tutorial)},
booktitle = {Three co-located international conferences ECOOP'13, ECMFA'13 and ECSA'13},
year = {2013},
month = jul,
address = {France (Montpellier)},
url = {https://www.lirmm.fr/ecmfa13/?id=158#tutorial10}
}
Nowadays, mass customization has been embraced by a large portion of the industry. As a result, the web abounds with sales config- urators that help customers tailor all kinds of goods and services to their specific needs. In many cases, configurators have become the sin- gle entry point for placing customer orders. As such, they are strategic components of companies' information systems and must meet stringent reliability, usability and evolvability requirements. However, the state of the art lacks guidelines and tools for efficiently engineering web sales configurators. To tackle this problem, empirical data on current practice is required. The first part of this paper reports on a systematic study of 111 web sales configurators along three essential dimensions: rendering of configuration options, constraint handling, and configuration process support. Based on this, the second part highlights good and bad prac- tices in engineering web sales configurator. The reported quantitative and qualitative results open avenues for the elaboration of methodolo- gies to (re-)engineer web sales configurators.
BibTeX
@inproceedings{khalilabbasi:hal-00796555,
author = {Khalil Abbasi, Ebrahim and Hubaux, Arnaud and Acher, Mathieu and Boucher, Quentin and Heymans, Patrick},
title = {{The Anatomy of a Sales Configurator: An Empirical Study of 111 Cases}},
booktitle = {25th International Conference on Advanced Information Systems Engineering (CAiSE'13)},
year = {2013},
month = jun,
address = {Valencia, Espagne},
doi = {10.1007/978-3-642-38709-8_11},
url = {https://hal.science/hal-00796555}
}
Feature Models (FMs) are a popular formalism for modelling and reasoning about commonality and variability of a system. In essence, FMs aim to define a set of valid combinations of features, also called configurations. In this paper, we tackle the problem of synthesising an FM from a set of configurations. The main challenge is that numerous candidate FMs can be extracted from the same input configurations, yet only a few of them are meaningful and maintainable. We first characterise the different meanings of FMs and identify the key properties allowing to discriminate between them. We then develop a generic synthesis procedure capable of restituting the intended meanings of FMs based on inferred or user-specified knowledge. Using tool support, we show how the integration of knowledge into FM synthesis can be realized in different practical application scenarios that involve reverse engineering and maintaining FMs.
BibTeX
@inproceedings{acher:hal-00766786,
author = {Acher, Mathieu and Heymans, Patrick and Cleve, Anthony and Hainaut, Jean-Luc and Baudry, Benoit},
title = {{Support for Reverse Engineering and Maintaining Feature Models}},
booktitle = {Seventh International Workshop on Variability Modelling of Software-Intensive Systems (VaMoS'13)},
year = {2013},
month = jan,
publisher = {ACM},
address = {Pisa, Italie},
doi = {10.1145/2430502.2430530}
}
Product comparison matrices (PCMs) provide a convenient way to document the discriminant features of a family of related products and now abound on the internet. Despite their apparent simplicity, the information present in existing PCMs can be very heterogeneous, partial, ambiguous, hard to exploit by users who desire to choose an appropriate product. Variability Models (VMs) can be employed to formulate in a more precise way the semantics of PCMs and enable automated reasoning such as assisted configuration. Yet, the gap between PCMs and VMs should be precisely understood and automated techniques should support the transition between the two. In this paper, we propose variability patterns that describe PCMs content and conduct an empirical analysis of 300+ PCMs mined from Wikipedia. Our findings are a first step toward better engineering techniques for maintaining and configuring PCMs.
BibTeX
@inproceedings{sannier2013,
author = {Sannier, Nicolas and Acher, Mathieu and Baudry, Benoit},
title = {{From Comparison Matrix to Variability Model: The Wikipedia Case Study}},
booktitle = {28th IEEE/ACM International Conference on Automated Software Engineering (ASE'13)},
year = {2013},
address = {Palo Alto, {\'E}tats-Unis},
doi = {10.1109/ase.2013.6693116},
url = {https://hal.science/hal-00858491}
}
MAPLE/SCALE 2013 at SPLC 2013 Joint Workshop of MAPLE 2013 – 5th International Workshop on Model-driven Approaches in Software Product Line Engineering and SCALE 2013 – 4th Workshop on Scalable Modeling Techniques for Software Product Lines, 2013
Numerous companies develop interactive environments to assist users in customising sales products through the selection of configuration options. A visual representation of these products is an important factor in terms of user experience. However, an analysis of 60+ existing configurators highlights that not all provide visual representations of configured products and few of them do it in an user-friendly manner. One of the current challenges is the trade-off developers face between either the memory consuming use of pregenerated images of all the combinations of options, or rendering products on the fly, which is non trivial to implement efficiently. We believe that a new approach to associate product configurations to visual representations is needed to compose and render them dynamically. In this paper we present a formal statement of the problem and a model-driven perspective for addressing it as well as ongoing and future work. We argue the case study can serve as an empirical method to explore the adequacy of variability (modelling) technologies.
BibTeX
@inproceedings{marianela2013,
author = {Marianela Ciolfi Felice and Joao Bosco Ferreira Filho and Mathieu Acher and Arnaud Blouin and Olivier Barais},
title = {{Interactive Visualisation of Products in Online Configurators: A Case Study for Variability Modelling Technologies}},
booktitle = {MAPLE/SCALE 2013 at SPLC 2013 Joint Workshop of MAPLE 2013 -- 5th International Workshop on Model-driven Approaches in Software Product Line Engineering and SCALE 2013 -- 4th Workshop on Scalable Modeling Techniques for Software Product Lines},
year = {2013},
doi = {10.1145/2499777.2500711}
}
Modeling and managing variability is a key activity in a growing number of software engineering contexts. Support for composing variability models is arising in many engineering scenarios, for instance, when several subsystems or modeling artifacts, each coming with their own variability and possibly developed by different stakeholders, should be combined together. In this paper, we consider the problem of composing feature models (FMs), a widely used formalism for representing and reasoning about a set of variability choices. We show that several composition operators can actually be defined, depending on both matching/merging strategies and semantic properties expected in the composed FM. We present four alternative forms and their implementations. We discuss their relative trade-offs w.r.t. reasoning, customizability, traceability, composability and quality of the resulting feature diagram. We summarize these findings in a reading grid which is validated by revisiting some relevant existing works. Our contribution should assist developers in choosing and implementing the right composition operators.
BibTeX
@inproceedings{acherMODELS13,
author = {Mathieu Acher and Benoit Combemale and Philippe Collet and Olivier Barais and Philippe Lahire and Robert B. France},
title = {{Composing your Compositions of Variability Models}},
booktitle = {ACM/IEEE 16th International Conference on Model Driven Engineering Languages and Systems (MODELS'13)},
year = {2013},
doi = {10.1007/978-3-642-41533-3_22}
}
Feature Models (FMs) are used extensively in software product line engineering to help generate and validate individual product configurations and to provide support for domain analysis. As FM construction can be tedious and time-consuming, researchers have previously developed techniques for extracting FMs from sets of formally specified individual configurations, or from software requirements specifications for families of existing products. However, such artifacts are often not available. In this paper we present a novel, automated approach for constructing FMs from publicly available product descriptions found in online product repositories and marketing websites such as SoftPedia and CNET. While each individual product description provides only a partial view of features in the domain, a large set of descriptions can provide fairly comprehensive coverage. Our approach utilizes hundreds of partial product descriptions to construct an FM and is described and evaluated against antivirus product descriptions mined from SoftPedia.
BibTeX
@inproceedings{FSE13,
author = {Jean-Marc Davril and Edouard Delfosse and Negar Hariri and Mathieu Acher and Jane Cleland-Huang and Patrick Heymans},
title = {{Feature Model Extraction from Large Collections of Informal Product Descriptions}},
booktitle = {European Software Engineering Conference and the ACM SIGSOFT Symposium on the Foundations of Software Engineering (ESEC/FSE'13)},
pages = {290-300},
year = {2013},
doi = {10.1145/2491411.2491455}
}
Model-based Software Product Line (MSPL) engineering aims at deriving customized models corresponding to individual products of a family. MSPL approaches usually promote the joint use of a variability model, a base model expressed in a specific formalism, and a realization layer that maps variation points to model elements. The design space of an MSPL is extremely complex to manage for the engineer, since the number of variants may be exponential and the derived product models have to be conformant to numerous well-formedness and business rules. In this paper, the objective is to provide a way to generate MSPLs, called counterexamples, that can produce invalid product models despite a valid configuration in the variability model. We provide a systematic and automated process, based on the Common Variability Language (CVL), to randomly search the space of MSPLs for a specific formalism. We validate the effectiveness of this process for three formalisms at different scales (up to 247 metaclasses and 684 rules). We also explore and discuss how counterexamples could guide practitioners when customizing derivation engines, when implementing checking rules that prevent early incorrect CVL models, or simply when specifying an MSPL.
BibTeX
@inproceedings{bosco2013,
author = {João Bosco Ferreira Filho and Olivier Barais and Mathieu Acher and Jérôme Le Noir and Benoit Baudry},
title = {{Generating Counterexamples of Model-based Software Product Lines: An Exploratory Study}},
booktitle = {17th International Software Product Line Conference (SPLC'13)},
year = {2013},
doi = {10.1145/2491627.2491639}
}
Variability management is a key issue when building and evolving software-intensive systems, making it possible to extend, configure, customize and adapt such systems to customers' needs and specific deployment contexts. A wide form of variability can be found in extensible software systems, typically built on top of plugin-based architectures that offer a (large) number of configuration options through plugins. In an ideal world, a software architect should be able to generate a system variant on-demand, corresponding to a particular assembly of plugins. To this end, the variation points and constraints between architectural elements should be properly modeled and maintained over time (i.e., for each version of an architecture). A crucial, yet error-prone and time-consuming, task for a software architect is to build an accurate representation of the variability of an architecture, in order to prevent unsafe architectural variants and reach the highest possible level of flexibility. In this article, we propose a reverse engineering process for producing a variability model (i.e., a feature model) of a plugin-based architecture. We develop automated techniques to extract and combine different variability descriptions, including a hierarchical software architecture model, a plugin dependency model and the software architect knowledge. By computing and reasoning about differences between versions of architectural feature models, software architect can control both the variability extraction and evolution processes. The proposed approach has been applied to a representative, large-scale plugin-based system (FraSCAti), considering different versions of its architecture. We report on our experience in this context.
BibTeX
@article{acher-cleve-etal:2013,
author = {Acher, Mathieu and Cleve, Anthony and Collet, Philippe and Merle, Philippe and Duchien, Laurence and Lahire, Philippe},
title = {{Extraction and Evolution of Architectural Variability Models in Plugin-based Systems}},
journal = {Software and Systems Modeling (SoSyM)},
volume = {13},
number = {4},
pages = {1367--1394},
year = {2013},
doi = {10.1007/s10270-013-0364-2}
}
The feature model formalism has become the de facto standard for managing variability in software product lines (SPLs). In practice, developing an SPL can involve modeling a large number of features representing di erent viewpoints, sub-systems or concerns of the software system. This activity is generally tedious and error-prone. In this article, we present FAMILIAR a Domain-Specific Language (DSL) that is dedicated to the large scale management of feature models and that complements existing tool support. The language provides a powerful support for separating concerns in feature modeling, through the provision of composition and decomposition operators, reasoning facilities and scripting capabilities with modularization mechanisms. We illustrate how an SPL consisting of medical imaging services can be practically managed using reusable FAMILIAR scripts that implement reasoning mechanisms. We also report on various usages and applications of FAMILIAR and its operators, to demonstrate their applicability to di erent domains and use for di erent purposes.
BibTeX
@article{acher-collet-etal:2013,
author = {Acher, Mathieu and Collet, Philippe and Lahire, Philippe and France, Robert},
title = {{FAMILIAR: A Domain-Specific Language for Large Scale Management of Feature Models}},
journal = {Science of Computer Programming (SCP) Special issue on programming languages},
volume = {78},
number = {6},
pages = {657--681},
year = {2013},
doi = {10.1016/j.scico.2012.12.004}
}
Arnaud Hubaux, Mathieu Acher, T. T. Tun, Patrick Heymans, Philippe Collet, and Philippe Lahire
Chapter in Domain Engineering: Product Lines, Conceptual Models, and Languages (editors: Reinhartz-Berger,I. and Sturm, A. and Clark, T. and Bettin, J. and Cohen, S.), Springer, 2013
Feature models (FMs) are a popular formalism to describe the commonality and variability of a set of assets in a software product line (SPL). SPLs usually involve large and complex FMs that describe thousands of features whose legal combinations are governed by many and often complex rules. The size and complexity of these models is partly explained by the large number of concerns considered by SPL practitioners when managing and configuring FMs. In this chapter, we first survey concerns and their separation in FMs, highlighting the need for more modular and scalable techniques. We then revisit the concept of view as a simplified representation of an FM. We finally describe a set of techniques to specify, visualize and verify the coverage of a set of views. These techniques are implemented in complementary tools providing practical support for feature-based configuration and large scale management of FMs.
BibTeX
@inbook{hubaux-acher-etal:2013,
author = {Hubaux, Arnaud and Acher, Mathieu and Tun, T. T. and Heymans, Patrick and Collet, Philippe and Lahire, Philippe},
title = {Domain Engineering: Product Lines, Conceptual Models, and Languages (editors: Reinhartz-Berger,I. and Sturm, A. and Clark, T. and Bettin, J. and Cohen, S.)},
pages = {3--28},
chapter = {Separating Concerns in Feature Models: Retrospective and Support for Multi-Views},
year = {2013},
publisher = {Springer},
doi = {10.1007/978-3-642-36654-3_1}
}
2012
Modelling variability using CVL; A step by step tutorial
Jérôme Le Noir, Olivier Barais, Joao Bosco Ferreira Filho, Mathieu Acher, and Jean-Marc Jézéquel
Journée Lignes de Produits, 2012
BibTeX
@inproceedings{lenoir2012,
author = {Le Noir, J{\'e}r{\^o}me and Barais, Olivier and Ferreira Filho, Joao Bosco and Acher, Mathieu and J{\'e}z{\'e}quel, Jean-Marc},
title = {{Modelling variability using CVL; A step by step tutorial}},
booktitle = {Journ{\'e}e Lignes de Produits},
year = {2012},
month = nov
}
Variability modelling and management is a key activity in a growing number of software engineering contexts, from software product lines to dynamic adaptive systems. Feature models are the defacto standard to formally represent and reason about commonality and variability of a software system. This tutorial aims at presenting next generation of feature modelling languages and tools, directly applicable to a wide range of model-based variability problems and application domains. Participants (being practitioners or academics, beginners or advanced) will learn the principles and foundations of languages and tool-supported techniques dedicated to the model-based management of variability.
BibTeX
@inproceedings{acher-heymans-etal:2012a,
author = {Acher, Mathieu and Heymans, Patrick and Collet, Philippe and Lahire, Philippe},
title = {{Next-Generation Model-based Variability Management: Languages and Tools} (tutorial)},
booktitle = {ACM/IEEE 15th International Conference on Model Driven Engineering Languages \& Systems (MODELS'2012)},
year = {2012},
month = oct,
address = {Innsbruck (Austria)},
url = {https://hal.science/hal-00767170}
}
The development of scientific workflows is evolving towards the systematic use of service oriented architectures, enabling the composition of dedicated and highly parameterized software services into processing pipelines. Building consistent workflows then becomes a cumbersome and error-prone activity as users cannot manage such large scale variability. This paper presents a rigorous and tooled approach in which techniques from Software Product Line (SPL) engineering are reused and extended to manage variability in service and workflow descriptions. Composition can be facilitated while ensuring consistency. Services are organized in a rich catalog which is organized as a SPL and structured according to the common and variable concerns captured for all services. By relying on sound merging techniques on the feature models that make up the catalog, reasoning about the compatibility between connected services is made possible. Moreover, an entire workflow is then seen as a multiple SPL (i.e., a composition of several SPLs). When services are configured within, the propagation of variability choices is then automated with appropriate techniques and the user is assisted in obtaining a consistent workflow. The approach proposed is completely supported by a combination of dedicated tools and languages. Illustrations and experimental validations are provided using medical imaging pipelines, which are representative of current scientific workflows in many domains.
BibTeX
@article{acher-collet-etal:2011g,
author = {Acher, Mathieu and Collet, Philippe and Gaignard, Alban and Lahire, Philippe and Montagnat, Johan and France, Robert},
title = {{Composing Multiple Variability Artifacts to Assemble Coherent Workflows}},
journal = {Software Quality Journal Special issue on Quality Engineering for Software Product Lines},
volume = {20},
number = {{3-4}},
pages = {689--734},
year = {2012},
month = sep,
doi = {10.1007/s11219-011-9170-7},
url = {https://hal.science/hal-00733556}
}
This tutorial aims at presenting new feature modelling tools directly applicable to a wide range of variability problems and application domains. Techniques and languages (TVL, FAMILIAR) for modelling, managing and configuring feature models will be illustrated and explained to participants (practitioners or academics, beginners or advanced).
BibTeX
@inproceedings{acher-michel-etal:2012a,
author = {Acher, Mathieu and Michel, Rapha{\"e}l and Heymans, Patrick},
title = {{Next-Generation Model-based Variability Management: Languages and Tools}},
booktitle = {ACM 16th International Software Product Line Conference (SPLC’12)},
pages = {276--277},
year = {2012},
month = sep,
address = {Salvador (Brazil)},
doi = {10.1145/2364412.2364469},
url = {https://dl.acm.org/citation.cfm?id=2364469}
}
Feature models are a widespread means to represent commonality and variability in software product lines. As is the case for other kinds of models, computing and managing feature model differences is useful in various real-world situations. In this paper, we propose a set of novel differencing techniques that combine syntactic and semantic mechanisms, and automatically produce meaningful differences. Practitioners can exploit our results in various ways: to understand, manipulate, visualize and reason about differences. They can also combine them with existing feature model composition and decomposition operators. The proposed automations rely on satisfiability algorithms. They come with a dedicated language and a comprehensive environment. We illustrate and evaluate the practical usage of our techniques through a case study dealing with a configurable component framework.
BibTeX
@inproceedings{acher-heymans-etal:2012,
author = {Acher, Mathieu and Heymans, Patrick and Collet, Philippe and Quinton, Cl{\'e}ment and Lahire, Philippe and Merle, Philippe},
title = {{Feature Model Differences}},
booktitle = {24th International Conference on Advanced Information Systems Engineering (CAiSE'12)},
series = {{LNCS}},
year = {2012},
month = jun,
publisher = {Springer},
doi = {10.1007/978-3-642-31095-9_41},
url = {https://doi.org/10.1007/978-3-642-31095-9_41}
}
Building large scale systems involves many design decisions, both at specification and implementation levels. This is due to numerous variants in the description of the task to achieve and its execution context as well as in the assembly of software components. We adopt a model-driven perspective, relying on different models and their transformations. We have started to model variability for large scale systems using feature diagrams, a formalism well suited for modeling variability. Our test application domain is video surveillance software platforms, from a software engineering perspective. These are good candidates to put MDE to the test, because of the huge variability in both the surveillance tasks and the video analysis algorithms. Our work was first concentrated on deployment of video-surveillance systems, now we rather work on runtime adaptation too.
BibTeX
@inproceedings{moisan-rigault-etal:2012,
author = {Moisan, Sabine and Rigault, Jean-Paul and Acher, Mathieu},
title = {{A Feature-based Approach to System Deployment and Adaptation}},
booktitle = {Proceedings of the 2012 international workshop on Modeling in software engineering at ICSE 2012 (MiSE'12)},
year = {2012},
month = jun,
publisher = {IEEE},
address = {Zurich},
doi = {10.1109/mise.2012.6226019}
}
Delivering configurable solutions, that is products tailored to the requirements of a particular customer, is a priority of most B2B and B2C markets. These markets now heavily rely on interactive configurators that help customers build complete and correct products. Reliability is thus a critical requirement for configurators. Yet, our experience in industry reveals that many configurators are developed in an ad hoc manner, raising correctness and maintenance issues. In this paper, we present a vision to re-engineering more reliable configurators and the challenges it poses. The first challenge is to reverse engineer from an existing configurator the variability information, including complex rules, and to consolidate it in a variability model, namely a feature model. The second challenge is to forward engineer a new configurator that uses the feature model to generate a customized graphical user interface and the underlying reasoning engine.
BibTeX
@inproceedings{boucher-abbasi-etal:2012,
author = {Boucher, Quentin and Abbasi, Ebrahim and Hubaux, Arnaud and Perrouin, Gilles and Acher, Mathieu and Heymans, Patrick},
title = {{Towards More Reliable Configurators: A Re-engineering Perspective}},
booktitle = {Third International Workshop on Product LinE Approaches in Software Engineering at ICSE 2012 (PLEASE'12)},
year = {2012},
month = jun,
address = {Zurich},
doi = {10.1109/please.2012.6229766}
}
Feature models (FMs) are the de facto standard for modeling variability of software product lines. The research effort is still intensive and aims at increasing the adoption of FMs in practice. Integrated solutions that combine state-of-the-art techniques, languages, and tools are emerging. We give an overview of complementary languages, TVL and FAMILIAR, and tools for the purpose of supporting the management (e.g., configuration) of FMs. We report on practical applications of the languages and tools in different domains and for different purposes. Still, we are interested in applying our solutions to other contexts (e.g., industrial) in order to determine their applicability and possible adoption by practitioners.
BibTeX
@inproceedings{acher-michel-please:2012,
author = {Acher, Mathieu and Michel, Rapha{\"e}l and Heymans, Patrick and Collet, Philippe and Lahire, Philippe},
title = {{Languages and Tools for Managing Feature Models}},
booktitle = {Third International Workshop on Product LinE Approaches in Software Engineering at ICSE 2012 (PLEASE'12)},
pages = {4},
series = {{PLEASE}},
year = {2012},
month = jun,
organization = {ACM},
address = {Zurich, Switzerland},
doi = {10.1109/please.2012.6229765}
}
Feature models (FMs) are a popular formalism for describing the commonality and variability of software product lines (SPLs) in terms of features. SPL development increasingly involves manipulating many large FMs, and thus scalable modular techniques that support compositional development of complex SPLs are required. In this paper, we describe how a set of complementary operators (aggregate, merge, slice) provides practical support for separation of concerns in feature modeling. We show how the combination of these operators can assist in tedious and error prone tasks such as automated correction of FM anomalies, update and extraction of FM views, reconciliation of FMs and reasoning about properties of FMs. For each task, we report on practical applications in different domains. We also present a technique that can efficiently decompose FMs with thousands of features and report our experimental results.
BibTeX
@inproceedings{acher-collet-etal:2012,
author = {Acher, Mathieu and Collet, Philippe and Lahire, Philippe and France, Robert},
title = {{Separation of Concerns in Feature Modeling: Support and Applications}},
booktitle = {Aspect-Oriented Software Development (AOSD'12)},
year = {2012},
month = mar,
publisher = {ACM},
doi = {10.1145/2162049.2162051},
url = {https://hal.science/hal-00767423}
}
In product line engineering, domain analysis is the process of analyzing related products to identify their common and variable features. This process is generally carried out by experts on the basis of existing product descriptions, which are expressed in a more or less structured way. Modeling and reasoning about product descriptions are error-prone and time consuming tasks. Feature models (FMs) consti- tute popular means to specify product commonalities and variabilities in a compact way, and to provide automated support to the domain analysis process. This paper aims at easing the transition from product descriptions expressed in a tabular format to FMs accurately representing them. This process is parameterized through a dedicated language and high-level directives (e.g., products/features scoping). We guarantee that the resulting FM represents the set of legal feature combinations supported by the considered products and has a readable tree hierarchy together with variability information. We report on our experiments based on public data and characterize the properties of the derived FMs.
BibTeX
@inproceedings{acher-cleve-etal:2012,
author = {Acher, Mathieu and Cleve, Anthony and Perrouin, Gilles and Heymans, Patrick and Collet, Philippe and Lahire, Philippe and Vanbeneden, Charles},
title = {{On Extracting Feature Models From Product Descriptions}},
booktitle = {Sixth International Workshop on Variability Modelling of Software-intensive Systems (VaMoS'12)},
pages = {10},
series = {{VaMoS}},
year = {2012},
month = jan,
publisher = {ACM},
address = {Leipzig, Germany},
doi = {10.1145/2110147.2110153},
url = {https://doi.org/10.1145/2110147.2110153}
}
Next-Generation Model-based Variability Management: Languages and Tools (Tutorial)
Mathieu Acher, Raphaël Michel, and Patrick Heymans
Conférence en IngénieriE du Logiciel (CIEL'12), 2012
BibTeX
@inproceedings{acher-michel-ciel:2012b,
author = {Acher, Mathieu and Michel, Rapha{\"e}l and Heymans, Patrick},
title = {{Next-Generation Model-based Variability Management: Languages and Tools (Tutorial)}},
booktitle = {Conf{\'e}rence en Ing{\'e}nieriE du Logiciel (CIEL'12)},
year = {2012}
}
@misc{acher-cleve-etal:2011a,
author = {Acher, Mathieu and Cleve, Anthony and Collet, Philippe and Merle, Philippe and Duchien, Laurence and Lahire, Philippe},
title = {{Reverse Engineering Architectural Feature Models}},
booktitle = {10th Belgian-Netherlands Seminar on Software Evolution (BENEVOL)},
year = {2011},
month = dec,
url = {https://soft.vub.ac.be/benevol2011/abstracts/Acher.pdf}
}
Variability in software product lines is often expressed through feature models (FMs). To handle the complexity of increasingly larger FMs, we propose semantically meaningful decomposition support through a slicing operator. We describe how the slicing operator is integrated into the FAMILIAR environment and how it can be combined with other operators to support complex tasks over FMs in different case studies.
BibTeX
@inproceedings{acher-collet-etal:2011h,
author = {Acher, Mathieu and Collet, Philippe and Lahire, Philippe and France, Robert},
title = {{Decomposing Feature Models: Language, Environment, and Applications}},
booktitle = {Automated Software Engineering (ASE'11), short paper: demonstration track},
year = {2011},
month = nov,
publisher = {IEEE/ACM},
address = {Lawrence, USA},
doi = {10.1109/ASE.2011.6100135},
url = {https://dl.acm.org/citation.cfm?id=2190078.2190137}
}
Feature models (FMs) are a popular formalism for describing the commonality and variability of software product lines (SPLs) in terms of features. As SPL development increasingly involves numerous large FMs, scalable modular techniques are required to manage their complexity. In this paper, we present a novel slicing technique that produces a projection of an FM, including constraints. The slicing allows SPL practitioners to find semantically meaningful decompositions of FMs and has been integrated into the FAMILIAR language.
BibTeX
@inproceedings{acher-collet-etal:2011e,
author = {Acher, Mathieu and Collet, Philippe and Lahire, Philippe and France, Robert},
title = {{Slicing Feature Models}},
booktitle = {26th IEEE/ACM International Conference On Automated Software Engineering (ASE'11), short paper},
year = {2011},
month = nov,
publisher = {IEEE/ACM},
address = {Lawrence, USA},
doi = {10.1109/ASE.2011.6100089},
url = {https://dl.acm.org/citation.cfm?id=2190091}
}
Reverse engineering the variability of an existing system is a challenging activity. The architect knowledge is essential to identify variation points and explicit constraints between features, for instance in feature models (FMs), but the manual creation of FMs is both time-consuming and error-prone. On a large scale, it is very difficult for an architect to guarantee that the resulting FM ensures a safe composition of the architectural elements when some features are selected. In this paper, we present a comprehensive, tool supported process for reverse engineering architectural FMs. We develop automated techniques to extract and combine different variability descriptions of an architecture. Then, alignment and reasoning techniques are applied to integrate the architect knowledge and reinforce the extracted FM. We illustrate the reverse engineering process when applied to a representative software system, FraSCAti, and we report on our experience in this context.
BibTeX
@inproceedings{acher-cleve-etal:2011,
author = {Acher, Mathieu and Cleve, Anthony and Collet, Philippe and Merle, Philippe and Duchien, Laurence and Lahire, Philippe},
title = {{Reverse Engineering Architectural Feature Models}},
booktitle = {5th European Conference on Software Architecture (ECSA'11), long paper},
pages = {16},
series = {{LNCS}},
year = {2011},
month = sep,
publisher = {Springer},
address = {Essen (Germany)},
doi = {10.1007/978-3-642-23798-0_25}
}
Managing Multiple Feature Models: Foundations, Language, and Applications
Mathieu Acher
PhD thesis, University of Nice Sophia Antipolis, 2011
@inproceedings{moisan-rigault-etal:2011,
author = {Moisan, Sabine and Rigault, Jean-Paul and Acher, Mathieu and Collet, Philippe and Lahire, Philippe},
title = {{Run Time Adaptation of Video-Surveillance Systems: A Software Modeling Approach}},
booktitle = {8th International Conference on Computer Vision Systems (ICVS'2011)},
series = {{LNCS}},
year = {2011},
month = sep,
publisher = {Springer Verlag},
address = {Sophia Antipolis (France)},
doi = {10.1007/978-3-642-23968-7_21}
}
In software product line (SPL) engineering, a software configuration can be obtained through a valid selection of features represented in a feature model (FM). With a strong separation between requirements and reusable components and a deep impact of high level choices on technical parts, determining and configuring an well-adapted software configuration is a long, cumbersome and error-prone activity. This paper presents a modeling process in which variability sources are separated in different FMs and inter-related by propositional constraints while consistency checking and propagation of variability choices are automated. We show how the variability requirements can be expressed and then refined at design time so that the set of valid software configurations to be considered at runtime may be highly reduced. Software tools support the approach and some experimentations on a video surveillance SPL are also reported.
BibTeX
@inproceedings{acher-collet-etal:2011b,
author = {Acher, Mathieu and Collet, Philippe and Lahire, Philippe and Moisan, Sabine and Rigault, Jean-Paul},
title = {{Modeling Variability from Requirements to Runtime}},
booktitle = {16th International Conference on Engineering of Complex Computer Systems (ICECCS'11)},
year = {2011},
month = apr,
publisher = {IEEE},
address = {Las Vegas},
doi = {10.1109/iceccs.2011.15}
}
Feature models are a popular formalism for managing variability in software product lines (SPLs). In practice, developing an SPL can involve modeling a large number of features representing different viewpoints, sub-systems or concerns of the software system. To manage complexity, there is a need to separate, relate and compose several feature models while automating the reasoning on their compositions in order to enable rigorous SPL validation and configuration. In this paper, we propose a Domain-Specific Language (DSL) that is dedicated to the management of feature models and that complements existing tool support. Rationale for this language is discussed and its main constructs are presented through examples. We show how the DSL can be used to realize a non trivial scenario in which multiple SPLs are managed.
BibTeX
@inproceedings{acher-collet-etal:2011,
author = {Acher, Mathieu and Collet, Philippe and Lahire, Philippe and France, Robert},
title = {{A Domain-Specific Language for Managing Feature Models}},
booktitle = {Symposium on Applied Computing (SAC'11)},
year = {2011},
month = mar,
publisher = {ACM},
organization = {Programming Languages Track},
address = {Taiwan},
doi = {10.1145/1982185.1982473},
url = {https://doi.org/10.1145/1982185.1982473}
}
Developing software product lines involves modeling a large number of features, usually using feature models, that represent different viewpoints, sub-systems or concerns of the software system. To manage complexity on a large scale, there is a need to separate, relate and compose several feature models while automating the reasoning on their compositions. This demonstration gives an overview of a Domain-Specific Language, FAMILIAR, that is dedicated to the management of feature models. Its comprehensive programming environment, based on Eclipse, is also described. It complements existing tool support (i.e., FeatureIDE).
BibTeX
@inproceedings{acher-collet-etal:2011a,
author = {Acher, Mathieu and Collet, Philippe and Lahire, Philippe and France, Robert},
title = {{Managing Feature Models with FAMILIAR: a Demonstration of the Language and its Tool Support}},
booktitle = {Fifth International Workshop on Variability Modelling of Software-intensive Systems (VaMoS'11)},
series = {{VaMoS}},
year = {2011},
month = jan,
publisher = {ACM},
address = {Namur, Belgium},
doi = {10.1145/1944892.1944903}
}
@misc{acher-collet-etal:2011c,
author = {Acher, Mathieu and Collet, Philippe and Lahire, Philippe and France, Robert},
title = {{FAMILIAR (FeAture Model scrIpt Language for manIpulation and Automatic Reasoning)}},
year = {2011},
month = jan,
url = {https://familiar-project.github.io/}
}
2010
FAMILIAR, a Language and its Environment for Feature Model Management
Mathieu Acher, Philippe Collet, Philippe Lahire, and Robert France
Journée Lignes de Produits. Maîtriser la Diversité, 2010
Abstract
Feature models are a popular formalism for managing variability in software product lines (SPLs). In practice, developing an SPL can involve modeling a large number of features representing different viewpoints, sub-systems or concerns of the software system. To manage complexity, there is a need to separate, relate and compose several feature models while automating the reasoning on their compositions in order to enable rigorous SPL validation and configuration. In this paper, we propose a domain-specific language, named FAMILIAR, that is dedicated to the management of feature models. We introduce the main constructs of the langage through examples and we describe its comprehensive programming environment, based on Eclipse, that complements existing tool support (i.e., FeatureIDE).
BibTeX
@inproceedings{acher-collet-etal:2010d,
author = {Acher, Mathieu and Collet, Philippe and Lahire, Philippe and France, Robert},
title = {{FAMILIAR, a Language and its Environment for Feature Model Management}},
booktitle = {Journ{\'e}e Lignes de Produits. Ma{\^\i}triser la Diversit{\'e}},
pages = {12},
year = {2010},
month = oct,
organization = {Universit{\'e} Paris 1 - Panth{\'e}on Sorbonne}
}
A factor slowing down the use of feature models is that either the concepts or the relations expressed in a feature model are not defined at all, or defined in an unsatisfactory manner; feature models are sometimes too vague to be analyzed by a reasoning tool. It is thus difficult to determine if the features in a feature model are arranged and structured consistently with domain knowledge and if they are accurately expressed, organized and represented. Ontology modeling can improve feature modeling by providing additional information relevant for the domain in which a feature model is constructed. Finding synergies between feature models and ontologies will aid an SPL engineer in accurately expressing, organizing and representing features in their feature models. In this paper, we look at potential benefits in using the two modeling formalisms together, we identify issues and challenges considering the gap between the two formalisms and discuss the importance of this gap. We report on our current ideas and results.
BibTeX
@inproceedings{fagerengjohansen-fleurey-etal:2010,
author = {Fagereng Johansen, Martin and Fleurey, Franck and Acher, Mathieu and Collet, Philippe and Lahire, Philippe},
title = {{Exploring the Synergies Between Feature Models and Ontologies}},
booktitle = {International Workshop on Model-driven Approaches in Software Product Line Engineering (MAPLE 2010)},
volume = {2},
pages = {163-171},
series = {{SPLC'10 (Volume 2)}},
year = {2010},
month = sep,
publisher = {Lancaster University},
address = {Jeju Island, South Korea},
isbn = {978-1-86220-274-0},
url = {https://web.archive.org/web/20160203133206/http://heim.ifi.uio.no/martifag/papers/Johansen2010.pdf}
}
In grid-based scientific applications, building a workflow essentially involves composing parameterized services describing families of services and then configuring the resulting workflow product line. In domains (e.g., medical imaging) in which many different kinds of highly parameterized services exist, there is a strong need to manage variabilities so that scientists can more easily configure and compose services with consistency guarantees. In this paper, we propose an approach in which variable points in services are described with several separate feature models, so that families of workflow can be defined as compositions of feature models. A compositional technique then allows reasoning about the compatibility between connected services to ensure consistency of an entire workflow, while supporting automatic propagation of variability choices when configuring services.
BibTeX
@inproceedings{acher-collet-etal:2010a,
author = {Acher, Mathieu and Collet, Philippe and Lahire, Philippe and France, Robert},
title = {{Managing Variability in Workflow with Feature Model Composition Operators}},
booktitle = {9th International Conference on Software Composition (SC'10)},
volume = {LNCS},
pages = {16},
series = {Software Composition},
year = {2010},
month = jun,
publisher = {Springer},
doi = {10.1007/978-3-642-14046-4_2}
}
The use of Feature Models (FMs) to define the valid combinations of features in Software Product Lines (SPL) is becoming commonplace. To enhance the scalability of FMs, support for composing FMs describing different SPL aspects is needed. Some composition operators, with interesting property preservation capabilities, have already been defined but a comprehensive and efficient implementation is still to be proposed. In this paper, we systematically compare strengths and weaknesses of different implementation approaches. The study provides some evidence that using generic model composition frameworks are not helping much in the realization, whereas a specific solution is finally necessary and clearly stands out by its qualities.
BibTeX
@inproceedings{acher-collet-etal:2010,
author = {Acher, Mathieu and Collet, Philippe and Lahire, Philippe and France, Robert},
title = {{Comparing Approaches to Implement Feature Model Composition}},
booktitle = {6th European Conference on Modelling Foundations and Applications (ECMFA)},
volume = {LNCS},
pages = {16},
year = {2010},
month = jun,
publisher = {Springer},
doi = {10.1007/978-3-642-13595-8_3}
}
A growing number of organizations produce and maintain multiple Software Product Lines (SPLs) or design software products that utilize features in SPLs maintained by competing suppliers. Manually building monolithic Feature Models (FMs) to help manage features described across different SPLs is error-prone and tedious and the resulting FMs can be difficult to understand and use. In this paper we propose a compositional approach to managing multiple SPLs that involves automatically merging FMs defined across the SPLs. We illustrate how the approach can be used to create FMs that support selection of products from among sets of competing products provided by different companies or suppliers. The merging techniques can also manage features from different SPLs which are then combined to form products. We show that the proposed approach results in more compact FMs, and we provide some empirical results on the complexity and scalability of the composition operators used in the approach.
BibTeX
@techreport{acher-collet-etal:2010b,
author = {Acher, Mathieu and Collet, Philippe and Lahire, Philippe and France, Robert},
title = {{Managing Multiple Software Product Lines Using Merging Techniques}},
year = {2010},
month = may,
address = {Sophia Antipolis, France},
institution = {University of Nice Sophia Antipolis, I3S CNRS},
type = {Technical Report},
isbn = {I3S/RR-2010-06-FR},
url = {https://web.archive.org/web/20211008120050/https://www.i3s.unice.fr/~mh/RR/2010/RR-10-06-P.LAHIRE.pdf}
}
@misc{acher-collet-etal:2009a,
author = {Acher, Mathieu and Collet, Philippe and Fleurey, Franck and Lahire, Philippe and Moisan, Sabine and Rigault, Jean-Paul},
title = {{Modeling Context and Dynamic Adaptations with Feature Models}},
year = {2009},
month = oct,
url = {https://web.archive.org/web/20160131014545/http://nyx.unice.fr/publis/acher-collet-etal:2009a.pdf}
}
Feature modeling is a widely used technique in Software Product Line development. Feature models allow stakeholders to describe domain concepts in terms of commonalities and differences within a family of software systems. Developing a complex monolithic feature model can require significant effort and restrict the reusability of a set of features already modeled. We advocate using modeling techniques that support separating and composing concerns to better manage the complexity of developing large feature models. In this paper, we propose a set of composition operators dedicated to feature models. These composition operators enable the development of large feature models by composing smaller feature models which address well-defined concerns. The operators are notably distinguished by their documented capabilities to preserve some significant properties.
BibTeX
@inproceedings{acher-collet-etal:2009,
author = {Acher, Mathieu and Collet, Philippe and Lahire, Philippe and France, Robert},
title = {{Composing Feature Models}},
booktitle = {2nd International Conference on Software Language Engineering (SLE'09)},
pages = {20},
series = {LNCS},
year = {2009},
month = oct,
publisher = {LNCS},
doi = {10.1007/978-3-642-12107-4_6}
}
Self-adaptive and dynamic systems adapt their behavior according to the context of execution. The contextual information exhibits multiple variability factors which induce many possible configurations of the software system at runtime. The challenge is to specify the adaptation rules that can link the dynamic variability of the context with the possible variants of the system. Our work investigates the systematic use of feature models for modeling the context and the software variants, together with their inter relations, as a way to configure the adaptive system with respect to a particular context. A case study in the domain of video surveillance systems is used to illustrate the approach.
BibTeX
@inproceedings{acher-collet-etal:2009b,
author = {Acher, Mathieu and Collet, Philippe and Fleurey, Franck and Lahire, Philippe and Moisan, Sabine and Rigault, Jean-Paul},
title = {{Modeling Context and Dynamic Adaptations with Feature Models}},
booktitle = {4th International Workshop Models@run.time at Models 2009 (MRT'09)},
pages = {10},
year = {2009},
month = oct
}
This work explores how model-driven engineering techniques can support the configuration of systems in domains presenting multiple variability factors. Video surveillance is a good candidate for which we have an extensive experience. Ultimately, we wish to automatically generate a software component assembly from an application specification, using model to model transformations. The challenge is to cope with variability both at the specification and at the implementation levels. Our approach advocates a clear separation of concerns. More precisely, we propose two feature models, one for task specification and the other for software components. The first model can be transformed into one or several valid component configurations through step-wise specialization. This paper outlines our approach, focusing on the two feature models and their relations. We particularly insist on variability and constraint modeling in order to achieve the mapping from domain variability to software variability through model transformations.
BibTeX
@inproceedings{acher-lahire-etal:2009,
author = {Acher, Mathieu and Lahire, Philippe and Moisan, Sabine and Rigault, Jean-Paul},
title = {{Tackling High Variability in Video Surveillance Systems through a Model Transformation Approach}},
booktitle = {MiSE '09: Proceedings of the 2009 international workshop on Modeling in software engineering at ICSE 2009 (MiSE'09)},
year = {2009},
month = may,
organization = {IEEE Computer Society},
doi = {10.1109/mise.2009.5069896}
}
SOA is now the reference architecture for medical imaging processing on the grid. Imaging services must be composed in workflows to implement the processing chains, but the need to handle end-to-end qualities of service hampered both the provision of services and their composition. This paper analyses the variability of functional and non functional aspects of this domain and proposes a first architecture in which services are organized within a product line architecture and metamodels help in structuring necessary information.
BibTeX
@inproceedings{acher-collet-etal:2008a,
author = {Acher, Mathieu and Collet, Philippe and Lahire, Philippe and Montagnat, Johan},
title = {{Imaging Services on the Grid as a Product Line: Requirements and Architecture}},
booktitle = {Service-Oriented Architectures and Software Product Lines - Putting Both Together (SOAPL'08)},
year = {2008},
month = sep,
publisher = {IEEE Computer Society},
organization = {(associated workshop issue of SPLC 2008)}
}
@mastersthesis{acher:2008,
author = {Acher, Mathieu},
title = {{Vers une ligne de services pour la grille: application {\`a} l’imagerie m{\'e}dicale}},
pages = {23},
year = {2008},
month = jun,
address = {Sophia Antipolis, France},
school = {Universit{\'e} de Nice Sophia-Antipolis},
url = {https://web.archive.org/web/20200819055947/http://nyx.unice.fr/publis/acher:2008.pdf}
}
In medical image analysis, there exist multifold applications to grids and service-oriented architectures are more and more used to implement such imaging applications. In this context, workflow and service architects have to face an important variability problem related both to the functional description of services, and to the numerous quality of service (QoS) dimensions that are to be considered. In this paper, we analyze such variability issues and establish the requirements of a service product line, which objective is to facilitate variability handling in the image processing chain.
BibTeX
@inproceedings{acher-collet-etal:2008,
author = {Acher, Mathieu and Collet, Philippe and Lahire, Philippe},
title = {{Issues in Managing Variability of Medical Imaging Grid Services}},
booktitle = {MICCAI-Grid Workshop (MICCAI-Grid)},
year = {2008}
}