Multi-objective reverse engineering of variability-safe feature models based on code
Sprache des Titels:
Englisch
Original Kurzfassung:
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.
Sprache der Kurzfassung:
Englisch
Journal:
Empirical Software Engineering
Volume:
22
Number:
4
Seitenreferenz:
1763-1794
Erscheinungsjahr:
2017
ISSN:
1573-7616
Anzahl der Seiten:
32
Reichweite:
international
Publikationstyp:
Aufsatz / Paper in sonstiger referierter Fachzeitschrift