Contributions to Variability Inference for the development of Software Systems
Software Product Lines (SPLs) represent one of the most exciting paradigm shift in software development in the two last decades. However, adopting an SPL approach and designing SPL variability is still a major challenge and represents a risk for a company. First, compared to single-system development, SPL variability management implies a methodology that highly impacts the life cycle of the products as well as the processes and roles inside the company. Second, adopting an SPL from the beginning, called proactive SPL adoption is subject to two main assumptions: 1) the company must have, in advance, a complete understanding of the variability to anticipate all possible variations; 2) the company should start from scratch to specify the variability and implement the reusable assets.
Recent studies with industrial companies that participated in industrial SPL engineering showed that around 50% of them cannot adopt SPL proactively. On the one hand, the variability in these companies is discovered as customer needs emerge over time; so, it is very difficult, if not impossible, to anticipate all the variations from the beginning. On the other hand, companies already have existing product variants that were implemented using an opportunistic reuse in an ad-hoc way to quickly respond to different customer needs. Instead of adopting an SPL, many companies clone an existing product and modify it to fit the new customer needs. This approach, called clone-and-own, is widely used because it is faster and more efficient to start with an already developed and tested set of artifacts. Companies thus face the SPL adoption dilemma: they are aware that SPL can enable them to achieve large-scale productivity gains, improve time-to-market and product quality. However, these same companies already have existing variants created using the clone-and-own approach. Consequently, they are practically unable to adopt SPL.
This talk presents our contributions in what is referred to as extractive SPL adoption. The objective was to propose approaches to migrate existing similar product variants, created using the clone-and-own approach, into an SPL. Instead of designing variability, our work focused on variability inference. The first part of our work considered static variability inference, which is based on the analysis of the structural (or static) information of the product variants, including, for instance, the source code, models, requirements, documentation etc. In addition to the structural information, product variants can also be defined by the dynamic information on their execution. The execution traces are the main source of such information. When execution traces are available, it is possible to analyze them to infer the behavior of these product variants, which can be used to infer the SPL behavior. The second part of our work is thus related to dynamic variability inference, which refers to variability inference using the dynamic information. Our contributions were implemented and integrated within the BUT4Reuse tool. BUT4Reuse is freely available at https://but4reuse.github.io
Defence : 12/09/2016
Jury members :
Pr. Laurence Duchien, Université Lille 1, France [rapporteur]
Pr. Patrick Heymans, Université Namur, Belgique [rapporteur] Pr. Philippe Collet, Université Nice Sophia Antipolis, France [rapporteur]
Pr. Yves Le Traon, Université Luxembourg, Luxembourg
Pr. Jean-Marc Jézéquel, Université Rennes 1
Pr. Camille Salinesi, Université Paris 1
Pr. Xavier Blanc, Université Bordeaux
Pr. Fabrice Kordon, Université Pierre et Marie Curie-UPMC