The idea of Software Product Line (SPL) approach is to manage a family of similar software products in a reuse-based way. Reuse avoids repetitions, which helps reduce development/maintenance effort, shorten time-to-market and improve overall quality of software. A number of open problems must be solved for SPL to have wide-spread impact on software practice. One of them is to understand and manage variability in software artefacts. To migrate from existing software products into SPL, one has to understand how they are similar and how they differ one from another. In this book, We propose higher level of automation, and a sandwich approach that consolidates feature knowledge from top-down domain analysis with bottom-up analysis of code similarities in subject software products. Our proposed method integrates model differencing, software clone detection, and information retrieval techniques, which can provide a systematic means to reengineer the legacy software products into SPL based on automatic variability analysis. Finally, the benefits and trade-offs involved in strategies of software variability management are discussed.