Software Product Line Engineering (SPLE) aims at developing a large number of software systems that share a common and managed set of features. In the past years, it has been an active area in both research and industry. SPLE aims at improving productivity and reducing the time, effort and cost required to develop a family of products (also called variants). The key point to achieve this goal is to manage the variability among various products of a Software Product Line (SPL). SPLE mainly relies on model-based techniques by which variable features and behaviours are specified. The models are then used to derive numerous products, each of which contains a specific set of features.