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.
Similar content being viewed by others
References
Acher M, Cleve A, Perrouin G, Heymans P, Vanbeneden C, Collet P, Lahire P (2012) On extracting feature models from product descriptions. In: International workshop on variability modelling of software-intensive systems (vamos), pp 45–54
Arcuri A, Briand L (2014) A hitchhiker’s guide to statistical tests for assessing randomized algorithms in software engineering. Software Testing, Verification and Reliability 24(3):219–250. doi:10.1002/stvr.1486
Assunção WK, Lopez-Herrejon RE, Linsbauer L, Vergilio SR, Egyed A (2015) Extracting variability-safe feature models from source code dependencies in system variants. In: Genetic and evolutionary computation conference (GECCO). doi:10.1145/2739480.2754720. ACM, New York, NY, USA, pp 1303–1310
Assunção WKG, Colanzi TE, Vergilio SR, Pozo A (2014) A multi-objective optimization approach for the integration and test order problem. Inf Sci 267:119–139. doi:10.1016/j.ins.2013.12.040
Assunção WKG, Vergilio SR (2014) Feature location for software product line migration: a mapping study. In: 18th software product line conference - 2nd international workshop on REverse variability engineering (REVE). doi:10.1145/2647908.2655967, pp 1–8
Batory DS, Sarvela JN, Rauschmayer A (2004) Scaling step-wise refinement. IEEE Trans Softw Eng 30(6):355–371
Benavides D, Segura S, Cortés AR (2010) Automated analysis of feature models 20 years later: a literature review. Inf Syst 35(6):615–636
Benavides D, Segura S, Trinidad P, Cortés AR (2007) FAMA: tooling a framework for the automated analysis of feature models. In: Pohl K, Heymans P, Kang KC, Metzger A (eds) International workshop on variability modelling of software-intensive systems (VaMoS), Lero Technical Report, vol 2007-01, pp 129–134
Bergmann R, Ludbrook J, Spooren WPJM (2000) Different outcomes of the Wilcoxon-Mann-Whitney test from different statistics packages. Am Stat 54(1):72–77. doi:10.2307/2685616
Chan KY, Kwong CK, Wong TC (2011) Modelling customer satisfaction for product development using genetic programming. J Eng Des 22(1):55–68. doi:10.1080/09544820902911374
Coello CAC, Lamont G, van Veldhuizen D (2007) Evolutionary algorithms for solving multi-objective problems, 2nd edn. Genetic and Evolutionary Computation. Springer, Berlin
Couto MV, Valente MT, Figueiredo E (2011) Extracting software product lines: a case study using conditional compilation. In: Conference on software maintenance and reengineering (CSMR). doi:10.1109/CSMR.2011.25, pp 191–200
Czarnecki K, Wasowski A (2007) Feature diagrams and logics: there and back again. In: International software product line conference (SPLC). IEEE Computer Society, pp 23–34
Deb K, Pratap A, Agarwal S, Meyarivan T (2002) A fast and elitist multiobjective genetic algorithm: NSGA-II. IEEE Trans Evol Comput 6(2):182–197
Figueiredo E, Cacho N, Sant’Anna C, Monteiro M, Kulesza U, Garcia A, Soares S, Ferrari F, Khan S, Castor Filho F, Dantas F (2008) Evolving software product lines with aspects: an empirical study on design stability. In: International conference on software engineering (ICSE). doi:10.1145/1368088.1368124. ACM, New York, NY, USA, pp 261–270
Fischer S, Linsbauer L, Lopez-Herrejon RE, Egyed A (2014) Enhancing clone-and-own with systematic reuse for developing software variants. In: International conference on software maintenance and evolution (ICSME)
Harman M, Jia Y, Krinke J, Langdon WB, Petke J, Zhang Y (2014) Search based software engineering for software product line engineering: a survey and directions for future work. In: 18Th international software product line conference - volume 1, SPLC ’14. doi:10.1145/2648511.2648513. ACM, New York, NY, USA, pp 5–18
Harman M, Mansouri SA, Zhang Y (2012) Search-based software engineering: trends, techniques and applications. ACM Comput Surv 45(1):11:1–11:61. doi:10.1145/2379776.2379787
Haslinger EN, Lopez-Herrejon RE, Egyed A (2011) Reverse engineering feature models from programs’ feature sets. In: Working conference on reverse engineering (WCRE), pp 308–312
Haslinger EN, Lopez-Herrejon RE, Egyed A (2013) On extracting feature models from sets of valid feature combinations. In: International conference fundamental approaches to software engineering (FASE), pp 53–67
Kang K, Cohen S, Hess J, Novak W, Peterson A (1990) Feature-Oriented Domain analysis (FODA) feasibility study. Tech. Rep. CMU/SEI-90-TR-21, SEI CMU
van d. Linden FJ, Schmid K, Rommes E (2007) Software product lines in action: the best industrial practice in product line engineering. Springer
Linsbauer L, Lopez-Herrejon RE, Egyed A (2013) Recovering traceability between features and code in product variants. In: International software product line conference (SPLC), pp 131– 140
Linsbauer L, Lopez-Herrejon RE, Egyed A (2014) Feature model synthesis with genetic programming. In: International symposium on search based software engineering (SSBSE), pp 153–167
Lopez-Herrejon RE, Galindo JA, Benavides D, Segura S, Egyed A (2012) Reverse engineering feature models with evolutionary algorithms: an exploratory study. In: International symposium on search based software engineering (SSBSE), pp 168–182
Lopez-Herrejon RE, Linsbauer L, Egyed A (2015) A systematic mapping study of search-based software engineering for software product lines. J Inf Softw Technol. doi:10.1016/j.infsof.2015.01.008
Lopez-Herrejon RE, Linsbauer L, Galindo JA, Parejo JA, Benavides D, Segura S, Egyed A (2015) An assessment of search-based techniques for reverse engineering feature models. J Syst Softw 103(0):353–369. doi:10.1016/j.jss.2014.10.037
Manning CD, Raghavan P, Schütze H (2008) Introduction to information retrieval. Cambridge University Press
Martinez J, Ziadi T, Bissyandé TF, Klein J, Traon YL (2015) Bottom-up adoption of software product lines: a generic and extensible approach. In: International conference on software product line (SPLC). doi:10.1145/2791060.2791086, pp 101–110
Sannier N, Acher M, Baudry B (2013) From comparison matrix to variability model: The wikipedia case study. In: International conference on automated software engineering (ASE). IEEE, pp 580– 585
Segura S, Galindo J, Benavides D, Parejo JA, Cortés AR (2012) BeTTy: benchmarking and testing on the automated analysis of feature models. In: Eisenecker UW, Apel S, Gnesi S (eds) International workshop on variability modelling of software-intensive systems (VaMoS). ACM, pp 63–71
She S, Lotufo R, Berger T, Wasowski A, Czarnecki K (2011) Reverse engineering feature models. In: International conference on software engineering (ICSE). ACM, pp 461–470
She S, Ryssel U, Andersen N, Wasowski A, Czarnecki K (2014) Efficient synthesis of feature models. Inf Softw Technol 56(9):1122–1143
Thianniwet T, Cohen M (2015) Splrevo: optimizing complex feature models in search based reverse engineering of software product lines. In: North american search based software engineering symposium (NasBASE)
Vargha A, Delaney H (2000) A critique and improvement of the cl common language effect size statistics of mcgraw and wong. J Educ Behav Stat 25(2):101–132
Weston N, Chitchyan R, Rashid A (2009) A framework for constructing semantically composable feature models from natural language requirements. In: International software product line conference (SPLC), pp 211–220
Yao X (2013) Some recent work on multi-objective approaches to search-based software engineering. Springer, Berlin, pp 4–15. doi:10.1007/978-3-642-39742-4_2
Zitzler E, Laumanns M, Thiele L (2001) SPEA2: improving the strength pareto evolutionary algorithm. Tech. Rep. 103, Gloriastrasse 35, CH-8092 Zurich, Switzerland
Zitzler E, Thiele L, Laumanns M, Fonseca CM, da Fonseca VG (2003) Performance assessment of multiobjective optimizers: an analysis and review. IEEE Trans Evol Comput 7:117–132
Acknowledgments
This work was supported by Austrian Science Fund (FWF): P 25289-N15, and the Brazilian Agencies CAPES: 007126/ 2014-00 and CNPq: 453678/2014-9 and 305358/2012-0.
Author information
Authors and Affiliations
Corresponding author
Additional information
Communicated by: Mark Harman
Rights and permissions
About this article
Cite this article
Assunção, W.K.G., Lopez-Herrejon, R.E., Linsbauer, L. et al. Multi-objective reverse engineering of variability-safe feature models based on code dependencies of system variants. Empir Software Eng 22, 1763–1794 (2017). https://doi.org/10.1007/s10664-016-9462-4
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10664-016-9462-4