This is the replication package for our paper Views on Edits to Variational Software conditionally accepted at the 27th Systems and Software Product Line Conference (SPLC 2023).
This replication package consists of two parts:
- Feasibility Study: We implemented our feasibility study in DiffDetective, a library and command-line tool for analysis of edits to preprocessor-based software product lines.
-
Appendix: The appendix of our paper is given in PDF format in the file ../../appendix/appendix-splc23-views.pdf. The appendix consists of the proof of correctness of our optimized view generation
$view_{smart}$ (Theorem 5.8 in the paper).
We implemented the generation of views and our experiment in DiffDetective. In this section, we outline where our extensions can be found within DiffDetective's code base.
Our implementation of views as proposed in our paper can be found in the packages org.variantsync.diffdetective.variation.tree.view and org.variantsync.diffdetective.variation.diff.view for views on variation trees (Section 3 in our paper) and diffs (Section 5), respectively.
The algorithms
The experiment for our feasibility study (Section 6) is implemented in the package org.variantsync.diffdetective.experiments.views. The experiment's entry point is the main method in the Main class in that package.
We documented all relevant source code of our extensions with Javadoc. The majority of DiffDetective's code base is documented, too. You may access the javadoc website here.
Hardware and software requirements are documented in the REQUIREMENTS.md file. Please make sure that you meet the specified software requirements (there are no specific hardware requirements).
Instructions to setup and replicate our feasibility study can be found in the INSTALL.md file, including detailed descriptions of each step. We offer a Docker setup to replicate the feasibility study performed in our paper.
Troubleshooting advice for frequent errors can be found at the bottom of the INSTALL.md file.