Litcius/Paper detail

A Hybrid Feature Location Technique for Re-engineeringSingle Systems into Software Product Lines

Gabriela Karoline Michelon, Lukas Linsbauer, Wesley K. G. Assunção, Stefan Fischer, Alexander Egyed

202121 citationsDOI

Abstract

Software product lines (SPLs) are known for improving productivity and reducing time-to-market through the systematic reuse of assets. SPLs are adopted mainly by re-engineering existing system variants. Feature location techniques (FLTs) support the re-engineering process by mapping the variants’ features to their implementation. However, such FLTs do not perform well when applied to single systems. In this way, there is a lack of FLTs to aid the re-engineering process of a single system into an SPL. In this work, we present a hybrid technique that consists of two complementary types of analysis: i) a dynamic analysis by runtime monitoring traces of scenarios in which features of the system are exercised individually, and ii) a static analysis for refining overlapping traces. We evaluate our technique on three subject systems by computing the common metrics used in FL research. We thus computed Precision, Recall, and F-Score at the line- and method-level of source code. In addition to that, one of the systems has a ground truth available, which we also used for comparing results. Results show that our FLT reached an average of 68-78% precision and 72-81% recall on two systems at the line-level, and 67-65% precision and 68-48% recall at the method-level. In these systems, most of the implementation can be covered by the exercise of the features. For the largest system, our technique reached a precision of up to 99% at the line-level, 94% at the method-level, and 44% when comparing to traces. However, due to its size, it was difficult to reach high code coverage during execution, and thus the recall obtained was on average of 28% at the line-level, 25% at the method-level, and 30% when comparing to traces. The main contribution of this work is a hybrid FLT, its publicly available implementation, and a replication package for comparisons and future studies.

Topics & Concepts

Computer scienceFeature (linguistics)SoftwareSoftware product lineFeature modelProduct (mathematics)Software developmentProgramming languageMathematicsGeometryPhilosophyLinguisticsAdvanced Software Engineering MethodologiesSoftware Engineering ResearchSoftware System Performance and Reliability