Tutorial: Re-engineering Software Variability into Software Product Lines

will be presented in the 24th International Conference on Engineering of Complex Computer Systems (ICECCS 2019)

10-13 November 2019 - Hong Kong, China




Software Product Lines (SPLs) represent one of the most exciting paradigm shift in software development in the two last decades.   Multiple approaches have been proposed addressing the different activities of variability design and manipulation, reusable assets implementation, or product derivation.


However, adopting an SPL approach and managing 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) these  companies must have, in advance, a complete understanding of the variability to anticipate all possible variations; 2) these companies should start from scratch to specify the variability and implement the reusable assets. Thus, instead of adopting an SPL, many companies usually start from a set of existing systems that must undergo a well-defined re-engineering process. Many approaches to conduct such re-engineering processes have been proposed and documented in research literature.


In this tutorial, after introducing SPLs and their concepts, we introduce the re-engineering processes for SPL adoption and a summary of the research literature. Attendees will have the possibility to experiment hands-on with SPL open source tools and also on our tools  for SPL re-engineering such as FeatureIDE and BUT4Reuse. 




The tutorial is structured as follows:


  1. Come, let’s play with Software Product Lines. We will use a programming game-rich variability system (Robocode). This example will be an opportunity to present the general process of SPL engineering: (1) feature modeling (2) variability implementation (3) product derivation. We will use open source tools with exercises we used when training graduate students and PhD candidates.
    1. Part 1: Course:
      1. Domain analysis and feature model specification including feature identification, hierarchical organisation of features, constraints, and hot research topics)
      2. Domain Implementation including main existing paradigms (annotative, compositional) in different technologies (e.g, Java, JavaScript)
      3. Product Derivation for automating the synthesis of variants
    1. Part 2: Hands-on experiments
      1. FeatureIDE ( for elaborating and reasoning about feature models and implement concret examples of SPLs.
  1. SPL re-engineering. Now the audience is convinced by the benefits of an SPL approach, we introduce the general re-engineering process including the different activities related to: (1) feature identification and location (2) constraint mining (3)  reusable asset extraction (4) variability model synthesis.
    1. Part 1: Course:

Extractive SPL adoption activities including feature Identification and location, constraints mining, reusable assets and feature model extraction.

    1. Part 2: Hands-on experiments

Extracting SPL from existing variants using the BUT4Reuse platform. We will use the examples and the benchmarks provided by the BUT4Reuse platform (




Tewfik Ziadi is Associate Professor of Software Engineering at Sorbonne Université. Tewfik Ziadi is co-leading the MoVe research team in the LIP6 lab. He is interested in software engineering including Software Product Line Engineering (SPLE), and Model Driven Software Engineering (MDE) for the design and the development of Software Systems with applications in different domains including robotics and multi-agent systems.  In 2016, Tewfik Ziadi received his Habilitation in Computer Science (in French HabilitationDiriger des Recherches) from UPMC. He earned a PhD in Computer Science in 2004 from University of Rennes 1. Tewfik Ziadi co-authored 40 journal and conference publications and he is a member of the Steering Committee of the SPLC conference and the general co-chair of SPLC 2019. He is also a founding member of the LOUISE action that gathers the main researchers on SPLE in France. He is a co-developer of the BUT4Reuse platform for Bottom-Up technologies for Reuse. He is the scientific coordinator of the ITEA REVaMP2 project that gathers 28 partners in 5 countries.