Christian Kästner , Carnegie Mellon University, Pittsburgh
Alexander Dreiling , University of Magdeburg and Deutsche Bank, Frankfurt
Klaus Ostermann , Philipps University Marburg, Marburg
DOI Bookmark: http://doi.ieeecomputersociety.org/10.1109/TSE.2013.45
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 semiautomatic 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 extends prior work in three important aspects: (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.
Programming Environments/Construction Tools, Reusable Software, Restructuring, reverse engineering, and reengineering, Distribution, Maintenance, and Enhancement, Software, Configuration Management
Christian Kästner, Alexander Dreiling, Klaus Ostermann, "Variability Mining: Consistent Semiautomatic Detection of Product-Line Features", IEEE Transactions on Software Engineering, , no. 1, pp. 1, PrePrints PrePrints, doi:10.1109/TSE.2013.45