This repository contains artifacts used in the 2017 master's thesis Explaining Satisfiability Queries for Software Product Lines [Gün17]. In that thesis, an algorithm capable of finding explanations for satisfiability queries in a software product line context is presented. While the implementation of that algorithm is available in the open-source project FeatureIDE [MTS+17], the documentation and the evaluation reference several models that can be accessed from here. Additionally, the code for the evaluation lives in this repository.
This repository contains various projects that can be imported into Eclipse.
All data projects contain feature models that can be opened in FeatureIDE [MTS+17].
- The folder Documentation/data contains the data shown throughout the thesis. All files in that folder are the work of the author, with two exceptions:
- The feature model of Car is from Ananieva [Ana16].
- The project HelloWorld-Colligens is a FeatureIDE example [MTS+17]. An additional preprocessor annotation was added to main.c in order to showcase explanations for invariant presence conditions.
- The folder Evaluation/Qualitative/data contains feature models used in the qualitative analysis. All of them are from Ananieva [Ana16].
- The folder Evaluation/Quantitative/data contains the data used in the quantitative analysis. They are sourced from various works:
- The feature model of Automotive01 is a FeatureIDE example [MTS+17]. Its configurations were generated using IncLing [AHKT+16].
- The feature models of SortingLine and PPU are from the Pick-and-Place Unit case studies [FLVH15] implemented by Kowal et al. [KATS17]. Their configurations were generated using IncLing [AHKT+16].
- The feature models and configurations of PROFilE-E-Agribusiness and PROFilE-ERP-System are from Pereira et al. [PMK+16].
- The remaining projects in that folder are from Knüppel et al. [KTM+17]. Their configurations were generated using IncLing [AHKT+16].
The folder Evaluation/Quantitative/src contains the source code for the quantitative analysis. To run the evaluation program, both this repository and the FeatureIDE repository need to be cloned. The easiest way to get the program working is to import the source projects of both repositories into Eclipse without copying them into the workspace. Then, the main methods of FeatureModelExplanationTest and ConfigurationExplanationTest can be run to gather data on explanations for feature models and configurations respectively. The measurements are stored as comma-separated values in a folder called results
.
- [AHKT+16] Mustafa Al-Hajjaji, Sebastian Krieter, Thomas Thüm, Malte Lochau, and Gunter Saake. IncLing: Efficient Product-Line Testing Using Incremental Pairwise Sampling. In Proceedings of the International Conference on Generative Programming: Concepts and Experiences (GPCE), pages 144-155, 2016.
- [Ana16] Sofia Ananieva. Explaining Defects and Identifying Dependencies in Interrelated Feature Models. Master's thesis, Technische Universität Braunschweig, September 2016.
- [FLVH15] Stefan Feldmann, Christoph Legat, and Birgit Vogel-Heuser. Engineering Support in the Machine Manufacturing Domain Through Interdisciplinary Product Lines: An Applicability Analysis. In Proceedings of the IFAC Symposium on Information Control Problems in Manufacturing (INCOME), pages 211-218, 2015.
- [Gün17] Timo Günther. Explaining Satisfiability Queries for Software Product Lines. Master's thesis, Technische Universität Braunschweig, October 2017.
- [KATS17] Matthias Kowal, Sofia Ananieva, Thomas Thüm, and Ina Schaefer. Supporting the Development of Interdisciplinary Product Lines in the Manufacturing Domain. In World Congress of the International Federation of Automatic Control. 2017.
- [KTM+17] Alexander Knüppel, Thomas Thüm, Stephan Mennicke, Jens Meinicke, and Ina Schaefer. Is There a Mismatch Between Real-World Feature Models and Product-Line Research? In Proceedings of the European Software Engineering Conference/Foundations of Software Engineering (ESECFSE), pages 291-302, 2017.
- [MTS+17] Jens Meinicke, Thomas Thüm, Reimar Schröter, Fabian Benduhn, Thomas Leich, and Gunter Saake. Mastering Software Variability with FeatureIDE. Springer, 2017.
- [PMK+16] Juliana Alves Pereira, Pawel Matuszyk, Sebastian Krieter, Myra Spiliopoulou, and Gunter Saake. A Feature-Based Personalized Recommender System for Product-Line Configuration. In Proceedings of the International Conference on Generative Programming: Concepts and Experiences (GPCE), pages 120-131, 2016.