Abstract
Software Product Lines (SPL) aim to industrialize the construction of a family of software products in order to reduce the time and costs related to the development and maintenance of software products while improving their quality. The main characteristic of an SPL is that it allows systematic reuse of software artifacts and massive customization of software products. However, the engineering process of SPL represents a significant investment cost for companies, which often prevents the deployment of SPL in low-resource companies. In addition, there is the effort required for developers to take ownership of the process. The latter, which are often trained to develop one product at a time, are obliged to rethink their practices to adapt to a multi-product engineering process.Our study of the state of the art shows that the three adoption strategies, namely proactive, reactive and extractive, do not offer satisfactory answers to overcome these obstacles.It is clear that a partial or complete automation of the SPL engineering process would reduce costs and thus facilitate the adoption of SPL by companies. In this context, the main contribution of this thesis is the definition of IsiSPL, an automated process to perform SPL engineering according to a reactive or extractive adoption strategy. This process is product-driven and is integrated into the development cycle (single product) already established in an enterprise.Our work provides the necessary answers to a number of challenges related to our objective, namely: the identification and safe acquisition of fine-grained artifacts (down to code instructions); the definition of a new feature location technique based on the analysis of formal and relational concepts; and finally, the materialization of a configurable platform based on the annotation approach, which minimizes the readability problems related to the proliferation of annotations in the code.