DOI Bookmark: http://doi.ieeecomputersociety.org/10.1109/TSE.2013.45
Christian Kästner , Carnegie Mellon University, Pittsburgh
Alexander Dreiling , University of Magdeburg and Deutsche Bank, Frankfurt
Klaus Ostermann , Philipps University Marburg, Marburg
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
C. Kästner, A. Dreiling and K. Ostermann, "Variability Mining: Consistent Semiautomatic Detection of Product-Line Features," in IEEE Transactions on Software Engineering.