DOI: 10.5281/zenodo.7273339
title: Comparing the Intensity of Variability Changes in Software Product Line Evolution - Related Research Artifacts

description: This archived open repository contains open science material related to the following submission to the Journal of Systems and Software (JSS) special issue <em>Software Reuse for the Next Generation</em>: C. Kröher, L. Gerling, K. Schmid, <em>Comparing the intensity of variability changes in software product line evolution</em>, Journal of Systems and Software. Submitted November 2022. The paper presents the application of a fine-grained, variability-centric analysis approach to four different software product lines: Linux kernel, coreboot firmware, BusyBox UNIX utilities, and axTLS embedded SSL. The approach is based on the differentiation between artifact-specific and variability information in code, build, and variability model artifacts to identify the intensity (the frequency and the amount) with which developers change variability information in practice. In order to complement the results presented in the submission and support reproducibility as well as reuse, the following artifacts are available: <strong>JSS-VM_2022-11-01.zip</strong>: a compressed archive containing the virtual machine in which the analysis was executed. This virtual machine was created with VMware Workstation 16 Player based on Ubuntu Desktop 22.04.1 (username and password: jss). It provides all installed software, configuration files, data sets, and results as described in the submission. Download, extract, and start the virtual machine to access the detailed description of its content and usage on the desktop. <strong>ComAnI-Applications.zip</strong>: a compressed archive containing the technical realization of the analysis approach and the configuration files used to apply it to the individual software product lines. This includes: <em>ComAnI_Guide.pdf</em>: the guide explaining the application and its usage in general <em>ComAnI.jar</em>: the Java executable archive file representing the main application for starting an analysis <em>ComAnI-PS.jar</em>: a modified version of the previous Java executable archive file, which provides the number of code, build, and variability model artifacts as specified by the regular expressions of a given configuration file as well as their total number of lines based on the current state of a repository only (no history) <em>DeadCodeChangeAnalyzer.jar</em>: a commit analyzer plug-in for detecting changes relevant to dead code detection (not used in the submission) <em>GitCommitExtractor.jar</em>: a commit extraction plug-in for extracting commits from Git repositories <em>SvnCommitExtractor.jar</em>: a commit extraction plug-in for extracting commits from Subversion (SVN) repositories <em>VariabilityChangeAnalyzer.jar</em>: a commit analyzer plug-in for detecting changes to artifact-specific and variability information in code, build, and variability model artifacts (realization of the commit analysis process described in the submission) <em>busybox-commit-list</em>: a plain text file containing a subset of the BusyBox commits as required by the application to extract and analyze only those parts of its entire history relevant for the submission (quote from the submission: <em>"For BusyBox, we had to further exclude commits before the complete migration to Kbuild and after the introduction of a script for extracting variability model information from code artifacts, which initiated defining variability information of the variability model as part of comments in code artifacts. This mixing of information and artifact types is not supported by our tooling"</em>) <em>axtls.properties</em>: the configuration (file) defining the required properties for extracting and analyzing commits of the axTLS history <em>busybox.properties</em>: the configuration (file) defining the required properties for extracting and analyzing all commits of the BusyBox history <em>busybox-subset.properties</em>: the configuration (file) defining the required properties for extracting and analyzing the commits specified in the busybox-commit-list file only, resulting in the respective subset of the BusyBox history <em>coreboot.properties</em>: the configuration (file) defining the required properties for extracting and analyzing all commits of the coreboot history <em>linux.properties</em>: the configuration (file) defining the required properties for extracting and analyzing all commits of the Linux kernel history <em>template.properties</em>: the configuration (file) template including descriptions of each property and its valid values <strong>ComAnI-Results.zip</strong>: a compressed archive containing the (raw) analysis results from applying the approach via its realization as provided by the previous archive to each of the software product lines. Hence, for each subject, a directory with the respective name exist, which in turn contains the following artifacts: <em>VariabilityChangeAnalyzer-Results_2022-09-[…]</em>: the directory containing the respective analysis results and some automated visualizations. Please note that some files are not correctly labeled, .e.g. some files for axTLS and BusyBox are prefixed with "coreboot", while containing the correct data for the respective subjects. Further, for BusyBox, two directories exist, which the additional readme-file explains <em>project-size-trace.txt</em>: the complete trace from starting ComAnI-PS.jar (see description above) with a specific configuration file to its final output <strong>JSS23_Extended-Evolution-Analysis_Statistics.ods</strong>: a LibreOffice Calc spreadsheet containing data derived from the raw ones of the ComAnI-Results.zip and the respective visualizations as presented in the submission. Further, some sheets include additional data preparations used to write certain parts of the result and discussion sections. The additional <strong>LICENSE</strong> file defines Apache License Version 2.0, January 2004 to apply for all artifacts in this repository. This work is partially supported by the Evoline project, funded by the DFG (German Research Foundation) under Priority Programme SPP 1593 and by the ITEA3 project REVaMP², funded by the BMBF (German Ministry of Research and Education) under grant 01IS16042H. Any opinions expressed herein are solely by the authors and not of the DFG or BMBF.