Variability mining: Consistent semi-automatic detection of product-line features

C Kästner, A Dreiling… - IEEE Transactions on …, 2013 - ieeexplore.ieee.org
C Kästner, A Dreiling, K Ostermann
IEEE Transactions on Software Engineering, 2013ieeexplore.ieee.org
Software product line engineering is an efficient means to generate a set of tailored software
products from a common implementation. However, adopting a product-line approach poses
a major challenge and significant risks, since typically legacy code must be migrated toward
a product line. Our aim is to lower the adoption barrier by providing semi-automatic tool
support—called variability mining—to support developers in locating, documenting, and
extracting implementations of product-line features from legacy code. Variability mining …
Software product line engineering is an efficient means to generate a set of tailored software products from a common implementation. However, adopting a product-line approach poses a major challenge and significant risks, since typically legacy code must be migrated toward a product line. Our aim is to lower the adoption barrier by providing semi-automatic tool support—called variability mining —to support developers in locating, documenting, and extracting implementations of product-line features from legacy code. Variability mining combines prior work on concern location, reverse engineering, and variability-aware type systems, but is tailored specifically for the use in product lines. Our work pursues three technical goals: (1) we provide a consistency indicator based on a variability-aware type system, (2) we mine features at a fine level of granularity, and (3) we exploit domain knowledge about the relationship between features when available. With a quantitative study, we demonstrate that variability mining can efficiently support developers in locating features.
ieeexplore.ieee.org