Ghanam, YaserMaurer, Frank2015-08-172015-08-172010http://hdl.handle.net/1880/50961https://doi.org/10.11575/PRISM/46221Software product lines - families of similar but not identical software products - need to address the issue of feature variability. That is, a single feature might require various implementations for different customers. Also, features might need optional extensions that are needed by some but not all products. Software product line engineering manages variability by conducting a thorough domain analysis upfront during the planning phases. However, upfront, heavyweight planning approaches are not well-aligned with the values of minimalistic practices like XP where bottom-up, incremental development is common. In this paper, we introduce a bottom-up, test-driven approach to introduce variability to systems by reactively refactoring existing code. We support our approach with an eclipse plug-in to automate the refactoring process. We evaluate our approach by a case study to determine the feasibility and practicality of the approach.Extreme Product Line Engineering – Refactoring for Variability: A Test-Driven Approachunknown10.1007/978-3-642-13054-0_4