A taxonomy of software product line reengineering

  • Authors:
  • Wolfram Fenske;Thomas Thüm;Gunter Saake

  • Affiliations:
  • University of Magdeburg;University of Magdeburg;University of Magdeburg

  • Venue:
  • Proceedings of the Eighth International Workshop on Variability Modelling of Software-Intensive Systems
  • Year:
  • 2014

Quantified Score

Hi-index 0.00

Visualization

Abstract

In the context of single software systems, refactoring is commonly accepted to be the process of restructuring an existing body of code in order to improve its internal structure without changing its external behavior. This process is vital to the maintenance and evolution of software systems. Software product line engineering is a paradigm for the construction and customization of large-scale software systems. As systems grow in complexity and size, maintaining a clean structure becomes arguably more important. However, product line literature uses the term "refactoring" for such a wide range of reengineering activities that it has become difficult to see how these activities pertain to maintenance and evolution and how they are related. We improve this situation in the following way: i) We identify the dimensions along which product line reengineering occurs. ii) We derive a taxonomy that distinguishes and relates these reengineering activities. iii) We propose definitions for the three main branches of this taxonomy. iv) We classify a corpus of existing work.