Multi-objective Reverse Engineering of Variability-safe Feature Models based on Code Dependencies of System Variants (bibtex)
by Wesley K. G. Assunção, Roberto E. Lopez-Herrejon, Lukas Linsbauer, Silvia R. Vergilio, Alexander Egyed
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.
Reference:
Multi-objective Reverse Engineering of Variability-safe Feature Models based on Code Dependencies of System Variants (Wesley K. G. Assunção, Roberto E. Lopez-Herrejon, Lukas Linsbauer, Silvia R. Vergilio, Alexander Egyed), In Empirical Software Engineering, 2017.
Bibtex Entry:
@Article{Assuncao2016,
  author   = {Wesley K. G. Assunção and Roberto E. Lopez-Herrejon and Lukas Linsbauer and Silvia R. Vergilio and Alexander Egyed},
  journal  = {Empirical Software Engineering},
  title    = {Multi-objective Reverse Engineering of Variability-safe Feature Models based on Code Dependencies of System Variants},
  year     = {2017},
  issn     = {1573-7616},
  pages    = {1--32},
  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.},
  doi      = {10.1007/s10664-016-9462-4},
  file     = {:Journals\\JESE 2016 - Multi-Objective Reverse Engineering of Feature Models based on Code Dependencies\\Multi-objective reverse engineering of varability-safe features models based on code dependencies-preprint.pdf:PDF},
  keywords = {FWF P25289},
  url      = {http://dx.doi.org/10.1007/s10664-016-9462-4},
}
Powered by bibtexbrowser