This lab is quite diverse. It is comprised of a group of really smart people from all over the world, each with different backgrounds, working in a friendly and welcoming environment. Being part of it has been such an enriching experience.
Migration of Software Products to Software Product Lines
Empirical Assessment of Product-Line Migration Strategies in Industry.
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.
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?
- Sarah Nadi (TU Darmstadt)
- Thorsten Berger (Univ. of Gothenburg & Chalmers Univ. of Technology)
- Adeline Silva (Fraunhofer IESE)
- Thomas Thuem (TU Braunschweig)
- Martin Becker (Fraunhofer IESE)
- Joanne Atlee (University of Waterloo)
- Krzysztof Czarnecki (University of Waterloo)
Related Former Publications
This work follows-up on our previous studies, specifically:
- "What is a Feature? A Qualitative Study of Features in Industrial Software Product Lines", 19th International Software Product Line Conference (SPLC), 2015.
- "A survey of variability modeling in industrial practice", 7th International Workshop on Variability Modelling of Software-intensive Systems (VaMoS), 2013.
- "Where do Configuration Constraints Stem From? An Extraction Approach and an Empirical Study", IEEE Transactions on Software Engineering, 2015.
- "Three Cases of Feature-Based Variability Modeling in Industry", ACM/IEEE 17th International Conference on Model Driven Engineering Languages and Systems (MODELS), 2014.
- Flávio Medeiros, Christian Kästner, Márcio Ribeiro, Sarah Nadi, Rohit Gheyi. The Love/Hate Relationship with the C Preprocessor: An Interview Study. In Proceedings of the European Conference on Object-Oriented Programming (ECOOP), 2015
- "Flexible Product Line Engineering with a Virtual Platform", ICSE, 2014.