Abstract
Similarly to car manufacturers who propose a full range of cars with common characteristics and numerous variants and options, software development might entail to segment users’ needs and propose to them a software family to choose from. Such software family is called a software product line (SPL). A SPL is usually characterized by two sets of features: the features that are shared by all products in the family, called the SPL’s commonalities, and, the features that are shared by some, but not all, products in the family, called the SPLs variability. These two sets define the mandatory and optional parts of the SPL. Software product line engineering (SPLE) focuses on capturing the commonalities and variabilities between several software products that belong to the same family.