Software product line engineering is an approach that develops and maintains families of products while taking advantage of their common aspects and predicted variabilities. Indeed, software product lines (SPL) are an important means for implementing software variability which is the ability of a system to be efficiently extended, changed, customized or configured for use in a particular context. Variability needs in software are constantly increasing because variability moves from mechanics and hardware to software and design decisions are delayed as long as economically feasible. Numerous SPL construction approaches are proposed. Different in nature, these approaches have nevertheless some common disadvantages. We have proceeded to an in-depth analysis of existing approaches for the construction of Software Product Line within a comparison framework in order to identify their drawbacks.