Migration of Software Products to Software Product Lines

Empirical Assessment of Product-Line Migration Strategies in Industry.

Project Overview

Software product lines (SPLs) are portfolios of products that address a variety of requirements for different customers or market segments. When such a product line comprises many products, dedicated techniques and processes have to be applied, which is known as Software Product Line Engineering (SPLE). SPLE promises many advantages, such as shorter time-to-market or low redundancies among products by establishing an integrated platform from which the individual portfolio products can be derived efficiently. SPLE is increasingly adopted in industry. However, many companies are still facing challenges with SPLE and are hesitant to migrate to an integrated SPL platform, given the high investments necessary as well as the lack of detailed migration processes and of information about the required technical effort.

Project Goal 

In this project, our goal is to collect and compare experiences of companies that have successfully migrated to an SPL or that are currently in the migration process. This will be done through interviews with architects and engineers from various companies. Our focus is on technical details of the migration, such as the identification of variability in existing products, including details on the diffing strategies of source code; the modeling of variability and identification of features; and what kind of refactoring is needed to migrate products to an integrated platform. Examples of other details we strive to analyze comprise version-control strategies and product-generation techniques.

Project Outcome and Benefits

The outcome of this project would be a set of strategies that can be applied at different phases of the migration. For example, we would identify what diff tools can be used to compare existing products and how the identified differences can be mapped to features. Additionally, we would report the challenges and problems faced in practice and discuss the possible solutions for them based on our participants's experiences. Such information would provide guidelines for new companies to migrate to SPLs and allow companies that have already migrated to further improve their processes and SPL implementations. More specifically, by participating in this study, companies can:

  • Compare their practices with those of other companies.
  • Compare their migration and implementation techniques to the state of the art.
  • Receive a report with the results of this study.

Scope of Interview Questions

The following are examples of questions we would ask during an interview:

  • What programming language(s) are used?
  • What would a product delivered to the customer consist of (code, binary, other artifacts, etc.)?
  • Before the migration, were multiple product variants developed? If so, how were product differences documented?
  • Is the SPL based on existing products?
  • How were the implementations of these products analyzed? Were specific tools used?
  • Were all product differences considered as features?
  • How were the existing implementation(s) refactored to a product line (through annotations, creating a new architecture, etc.)?
  • How is a product “generated” using the new SPL?




Team Members


Related Former Publications

This work follows-up on our previous studies, specifically: