Title
Multi-objective reverse engineering of variability-safe feature models based on code dependencies of system variants.
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.
Year
DOI
Venue
2017
10.1007/s10664-016-9462-4
Empirical Software Engineering
Keywords
Field
DocType
Reverse engineering,Feature models,Multi-objective evolutionary algorithms,Empirical evaluation
Data mining,Systems engineering,Computer science,Source code,Reverse engineering,Exploit,Software system,Software,Software product line,Artificial intelligence,Consolidation (soil),Machine learning
Journal
Volume
Issue
ISSN
22
4
1382-3256
Citations 
PageRank 
References 
4
0.44
26
Authors
5