Multi-objective reverse engineering of variability-safe feature models based on code

Wesley Klewerton Guez Assuncao, Roberto Erick Lopez-Herrejon, Lukas Linsbauer, Silvia Regina Vergilio, Alexander Egyed

Research output: Contribution to journalArticlepeer-review

Abstract

Maintenance of many variants of a software system, developed to supply a wide range of customer-specific demands, is a complex endeavour. The consolidation of such variants into a Software Product Line is a way to effectively cope with this problem. A crucial step for this consolidation is to reverse engineer feature models that represent the desired combinations of features of all the available variants. Many approaches have been proposed for this reverse engineering task but they present two shortcomings. First, they use a single-objective perspective that does not allow software engineers to consider design trade-offs. Second, they do not exploit knowledge from implementation artifacts. To address these limitations, our work takes a multi-objective perspective and uses knowledge from source code dependencies to obtain feature models that not only represent the desired feature combinations but that also check that those combinations are indeed well-formed, i.e. variability safe. We performed an evaluation of our approach with twelve case studies using NSGA-II and SPEA2, and a single-objective algorithm. Our results indicate that the performance of the multi-objective algorithms is similar in most cases and that both clearly outperform the single-objective algorithm. Our work also unveils several avenues for further research.
Original languageEnglish
Pages (from-to)1763-1794
Number of pages32
JournalEmpirical Software Engineering
Volume22
Issue number4
DOIs
Publication statusPublished - 2017

Fields of science

  • 102 Computer Sciences
  • 102022 Software development

JKU Focus areas

  • Computation in Informatics and Mathematics
  • Engineering and Natural Sciences (in general)

Cite this