Reverse engineering feature models with evolutionary algorithms: an exploratory study

  • Authors:
  • Roberto Erick Lopez-Herrejon;José A. Galindo;David Benavides;Sergio Segura;Alexander Egyed

  • Affiliations:
  • Institute for Systems Engineering and Automation, Johannes Kepler University, Linz, Austria;Department of Computer Languages and Systems, University of Seville, Spain;Department of Computer Languages and Systems, University of Seville, Spain;Department of Computer Languages and Systems, University of Seville, Spain;Institute for Systems Engineering and Automation, Johannes Kepler University, Linz, Austria

  • Venue:
  • SSBSE'12 Proceedings of the 4th international conference on Search Based Software Engineering
  • Year:
  • 2012

Quantified Score

Hi-index 0.00

Visualization

Abstract

Successful software evolves, more and more commonly, from a single system to a set of system variants tailored to meet the similiar and yet different functionality required by the distinct clients and users. Software Product Line Engineering (SPLE) is a software development paradigm that has proven effective for coping with this scenario. At the core of SPLE is variability modeling which employs Feature Models (FMs) as the de facto standard to represent the combinations of features that distinguish the systems variants. Reverse engineering FMs consist in constructing a feature model from a set of products descriptions. This research area is becoming increasingly active within the SPLE community, where the problem has been addressed with different perspectives and approaches ranging from analysis of configuration scripts, use of propositional logic or natural language techniques, to ad hoc algorithms. In this paper, we explore the feasibility of using Evolutionary Algorithms (EAs) to synthesize FMs from the feature sets that describe the system variants. We analyzed 59 representative case studies of different characteristics and complexity. Our exploratory study found that FMs that denote proper supersets of the desired feature sets can be obtained with a small number of generations. However, reducing the differences between these two sets with an effective and scalable fitness function remains an open question. We believe that this work is a first step towards leveraging the extensive wealth of Search-Based Software Engineering techniques to address this and other variability management challenges.