Empirical evaluation of feature trace recording on the edit history of Marlin

Sören Viegener · OPen Access Repositorium der Universität Ulm (OPARU) (Ulm University) · 2021

Between software product lines and clone-and-own software development lies a large spectrum of approaches for software projects. Feature trace recording is a novel method for tracking feature mappings during the development of a clone-and-own project. An existing evaluation shows that feature trace recording is able to perform edits usually found in a software product line but does not give any insight into its applicability to real software development. This thesis extends this evaluation by empirically evaluating feature trace recording on the commit history of Marlin, an open-source preprocessor-based software product line. We gather empirical data by categorizing edits into edit patterns. From the pattern matches, we reverse engineer how these edits could be reproduced using feature trace recording (i.e., which feature context is necessary). When using the edit patterns presented by Stănciulescu et al., we discovered problems regarding ambiguity, mutual exclusivity, and exhaustion of the patterns. To solve these problems, we refine and extend the patterns introducing a new classification of edit patterns together with a mechanism to detect them. With this new classification, we present exact definitions for edit patterns that are mutually exclusive and exhaustive regarding all edited lines of code. We implemented a tool for edit pattern detection and to perform the reverse engineering of edits automatically. The results of our evaluation include exact amounts of all pattern matches found in the commit history of Marlin. From our reverse engineering of the feature contexts, we can conclude that changing the feature context may not be a large effort for developers. We also conclude that the complexity of feature contexts may be reasonably low, and we provide first observations on when the feature context can be omitted and the similarity of feature context and target feature mapping.

Read the paper · More papers on PaperTik