Abstract
The parallel maintenance of independent system variants, developed to supply a wide range of customer-specific demands, is a complex activity. To alleviate this problem and ease the creation of new products, the consolidation of such variants into a Software Product Line (SPL) is an effective solution. For this, a fundamental step is to construct a variability model that represents the combinations of features of all the existing variants. However, the process of extracting an SPL from independent variants, and consequently constructing a variability model, is acknowledged as costly and error-prone. Instead of starting from scratch, many approaches have been proposed for reverse engineering variability models, but they have two limitations. These approaches usually optimize a single objective that does not allow software engineers to consider design trade-offs and do not exploit knowledge from implementation artifacts. This chapter presents our approach to address these limitations. Our approach applies a multi-objective optimization strategy and uses source code dependencies to reverse engineer variability models. The resulting model not only represents the desired feature combinations but are also well-formed regarding source code dependencies, i.e., variability safe. The approach, using two multi-objective evolutionary algorithms, namely NSGA-II and SPEA2, and a single-objective algorithm was evaluated with twelve subject systems. For comparisons, we rely on widely adopted performance indicators. The results indicate that the performance of the multi-objective algorithms is similar in most cases, and that both clearly outperform the single-objective algorithm. Also, the trade-off among different solutions is important to support engineers during decision making.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Similar content being viewed by others
References
Acher, M., Cleve, A., Perrouin, G., Heymans, P., Vanbeneden, C., Collet, P., Lahire, P.: On extracting feature models from product descriptions. In: International Workshop on Variability Modelling of Software-Intensive Systems (VaMoS), pp. 45–54 (2012)
Arcuri, A., Briand, L.: A hitchhiker’s guide to statistical tests for assessing randomized algorithms in software engineering. Software Testing, Verification and Reliability 24(3), 219–250 (2014)
Assunção, W.K.G., Lopez-Herrejon, R.E., Linsbauer, L., Vergilio, S.R., Egyed, A.: Multi-objective reverse engineering of variability-safe feature models based on code dependencies of system variants. Empirical Software Engineering 22(4), 1763–1794 (2016)
Assunção, W.K.G., Lopez-Herrejon, R.E., Linsbauer, L., Vergilio, S.R., Egyed, A.: Reengineering legacy applications into software product lines: a systematic mapping. Empirical Software Engineering 22(6), 2972–3016 (2017)
Assunção, W.K., Lopez-Herrejon, R.E., Linsbauer, L., Vergilio, S.R., Egyed, A.: Extracting variability-safe feature models from source code dependencies in system variants. In: Genetic and Evolutionary Computation Conference (GECCO), pp. 1303–1310. ACM, New York, NY, USA (2015)
Assunção, W.K.G., Colanzi, T.E., Vergilio, S.R., Pozo, A.: A multi-objective optimization approach for the integration and test order problem. Information Sciences 267, 119 – 139 (2014)
Assunção, W.K.G., Vergilio, S.R.: Feature location for software product line migration: A mapping study. In: 18th Software Product Line Conference - 2nd International Workshop on REverse Variability Engineering (REVE), pp. 1–8 (2014)
Batory, D.: Feature models, grammars, and propositional formulas. In: H. Obbink, K. Pohl (eds.) Software Product Lines, pp. 7–20. Springer Berlin Heidelberg, Berlin, Heidelberg (2005)
Batory, D.S., Sarvela, J.N., Rauschmayer, A.: Scaling step-wise refinement. IEEE Transactions on Software Engineering 30(6), 355–371 (2004)
Benavides, D., Segura, S., Cortés, A.R.: Automated analysis of feature models 20 years later: A literature review. Information Systems 35(6), 615–636 (2010)
Benavides, D., Segura, S., Trinidad, P., Cortés, A.R.: FAMA: Tooling a framework for the automated analysis of feature models. In: K. Pohl, P. Heymans, K.C. Kang, A. Metzger (eds.) International Workshop on Variability Modelling of Software-Intensive Systems (VaMoS), Lero Technical Report, vol. 2007-01, pp. 129–134 (2007)
Bergmann, R., Ludbrook, J., Spooren, W.P.J.M.: Different Outcomes of the Wilcoxon-Mann-Whitney Test from Different Statistics Packages. The American Statistician 54(1), 72–77 (2000)
Coello, C.A.C., Lamont, G., van Veldhuizen, D.: Evolutionary Algorithms for Solving Multi-Objective Problems, 2nd edn. Genetic and Evolutionary Computation. Springer, Berlin, Heidelberg (2007)
Colanzi, T.E., Assunção, W.K., Vergilio, S.R., Farah, P.R., Guizzo, G.: The symposium on search-based software engineering: Past, present and future. Information and Software Technology 127, 106,372 (2020)
Couto, M.V., Valente, M.T., Figueiredo, E.: Extracting software product lines: A case study using conditional compilation. In: Conference on Software Maintenance and Reengineering (CSMR), pp. 191–200 (2011)
Czarnecki, K., Wasowski, A.: Feature diagrams and logics: There and back again. In: International Software Product Line Conference (SPLC), pp. 23–34. IEEE Computer Society (2007)
Deb, K., Pratap, A., Agarwal, S., Meyarivan, T.: A fast and elitist multiobjective genetic algorithm: NSGA-II. IEEE Transactions on Evolutionary Computation 6(2), 182–197 (2002)
Figueiredo, E., Cacho, N., Sant’Anna, C., Monteiro, M., Kulesza, U., Garcia, A., Soares, S., Ferrari, F., Khan, S., Castor Filho, F., Dantas, F.: Evolving software product lines with aspects: An empirical study on design stability. In: International Conference on Software Engineering (ICSE), pp. 261–270. ACM, New York, NY, USA (2008)
Fischer, S., Linsbauer, L., Lopez-Herrejon, R.E., Egyed, A.: Enhancing clone-and-own with systematic reuse for developing software variants. In: International Conference on Software Maintenance and Evolution (ICSME) (2014)
Harman, M., Jia, Y., Krinke, J., Langdon, W.B., Petke, J., Zhang, Y.: 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, pp. 5–18. ACM, New York, NY, USA (2014)
Harman, M., Mansouri, S.A., Zhang, Y.: Search-based software engineering: Trends, techniques and applications. ACM Computing Surveys 45(1), 11:1–11:61 (2012)
Haslinger, E.N., Lopez-Herrejon, R.E., Egyed, A.: Reverse engineering feature models from programs’ feature sets. In: Working Conference on Reverse Engineering (WCRE), pp. 308–312 (2011)
Haslinger, E.N., Lopez-Herrejon, R.E., Egyed, A.: On extracting feature models from sets of valid feature combinations. In: International Conference Fundamental Approaches to Software Engineering (FASE), pp. 53–67 (2013)
Kang, K., Cohen, S., Hess, J., Novak, W., Peterson, A.: Feature-Oriented Domain Analysis (FODA) Feasibility Study. Tech. Rep. CMU/SEI-90-TR-21, SEI, CMU (1990)
Krueger, C.W.: Software reuse. ACM Computing Surveys (CSUR) 24(2), 131–183 (1992)
Krueger, C.W.: Easing the transition to software mass customization. In: Software Product-Family Engineering, pp. 282–293. Springer (2002)
van d. Linden, F.J., Schmid, K., Rommes, E.: Software Product Lines in Action: The Best Industrial Practice in Product Line Engineering. Springer (2007)
Linsbauer, L., Lopez-Herrejon, R.E., Egyed, A.: Recovering traceability between features and code in product variants. In: International Software Product Line Conference (SPLC), pp. 131–140 (2013)
Linsbauer, L., Lopez-Herrejon, R.E., Egyed, A.: Feature model synthesis with genetic programming. In: International Symposium on Search Based Software Engineering (SSBSE), pp. 153–167 (2014)
Linsbauer, L., Lopez-Herrejon, R.E., Egyed, A.: Variability extraction and modeling for product variants. Software & Systems Modeling 16(4), 1179–1199 (2017)
Lopez-Herrejon, R.E., Galindo, J.A., Benavides, D., Segura, S., Egyed, A.: Reverse engineering feature models with evolutionary algorithms: An exploratory study. In: International Symposium on Search Based Software Engineering (SSBSE), pp. 168–182 (2012)
Lopez-Herrejon, R.E., Linsbauer, L., Egyed, A.: A systematic mapping study of search-based software engineering for software product lines. Journal of Information and Software Technology (2015)
Lopez-Herrejon, R.E., Linsbauer, L., Galindo, J.A., Parejo, J.A., Benavides, D., Segura, S., Egyed, A.: An assessment of search-based techniques for reverse engineering feature models. Journal of Systems and Software 103(0), 353 – 369 (2015)
Manning, C.D., Raghavan, P., Schütze, H.: Introduction to information retrieval. Cambridge University Press (2008)
Mendonca, M., Branco, M., Cowan, D.: S.p.l.o.t.: Software product lines online tools. In: 24th ACM SIGPLAN Conference Companion on Object Oriented Programming Systems Languages and Applications, OOPSLA ’09, p. 761–762. Association for Computing Machinery, New York, NY, USA (2009)
Sannier, N., Acher, M., Baudry, B.: From comparison matrix to variability model: The wikipedia case study. In: International Conference on Automated Software Engineering (ASE), pp. 580–585. IEEE (2013)
Segura, S., Galindo, J., Benavides, D., Parejo, J.A., Cortés, A.R.: BeTTy: benchmarking and testing on the automated analysis of feature models. In: U.W. Eisenecker, S. Apel, S. Gnesi (eds.) International Workshop on Variability Modelling of Software-Intensive Systems (VaMoS), pp. 63–71. ACM (2012)
She, S., Lotufo, R., Berger, T., Wasowski, A., Czarnecki, K.: Reverse engineering feature models. In: International Conference on Software Engineering (ICSE), pp. 461–470. ACM (2011)
She, S., Ryssel, U., Andersen, N., Wasowski, A., Czarnecki, K.: Efficient synthesis of feature models. Information and Software Technology 56(9), 1122–1143 (2014)
Thianniwet, T., Cohen, M.: SPLRevO: Optimizing complex feature models in search based reverse engineering of software product lines. In: North American Search Based Software Engineering Symposium (NasBASE) (2015)
Thianniwet, T., Cohen, M.B.: Scaling up the fitness function for reverse engineering feature models. In: F. Sarro, K. Deb (eds.) Search Based Software Engineering, pp. 128–142. Springer International Publishing, Cham (2016)
Vargha, A., Delaney, H.: A critique and improvement of the CL common language effect size statistics of McGraw and Wong. Journal of Educational and Behavioral Statistics 25(2), 101–132 (2000)
Vescan, A., Pintea, A., Linsbauer, L., Egyed, A.: Genetic programming for feature model synthesis: a replication study. Empirical Software Engineering 26(4) (2021)
Weston, N., Chitchyan, R., Rashid, A.: A framework for constructing semantically composable feature models from natural language requirements. In: International Software Product Line Conference (SPLC), pp. 211–220 (2009)
Yao, X.: Some Recent Work on Multi-objective Approaches to Search-Based Software Engineering, pp. 4–15. Springer Berlin Heidelberg, Berlin, Heidelberg (2013)
Zitzler, E., Laumanns, M., Thiele, L.: SPEA2: Improving the Strength Pareto Evolutionary Algorithm. Tech. Rep. 103, Swiss Federal Institute of Technology (ETH) Zurich, Gloriastrasse 35, CH-8092 Zurich, Switzerland (2001)
Zitzler, E., Thiele, L., Laumanns, M., Fonseca, C.M., da Fonseca, V.G.: Performance assessment of multiobjective optimizers: An analysis and review. IEEE Transactions on Evolutionary Computation 7, 117–132 (2003)
Acknowledgements
This work was supported by the Brazilian Agencies CAPES: 7126/2014-00; CNPq: 453678/2014-9, 305358/2012-0, 408356/2018-9 and 305968/2018-1; and the Carlos Chagas Filho Foundation for Supporting Research in the State of Rio de Janeiro (FAPERJ), under the PDR-10 program, grant 202073/2020. This work is partially funded Natural Sciences and Engineering Research Council of Canada (NSERC) grant RGPIN-2017-05421.
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2023 Springer Nature Switzerland AG
About this chapter
Cite this chapter
Assunção, W.K.G., Vergilio, S.R., Lopez-Herrejon, R.E., Linsbauer, L. (2023). Search-Based Variability Model Synthesis from Variant Configurations. In: Lopez-Herrejon, R.E., Martinez, J., Guez Assunção, W.K., Ziadi, T., Acher, M., Vergilio, S. (eds) Handbook of Re-Engineering Software Intensive Systems into Software Product Lines. Springer, Cham. https://doi.org/10.1007/978-3-031-11686-5_5
Download citation
DOI: https://doi.org/10.1007/978-3-031-11686-5_5
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-031-11685-8
Online ISBN: 978-3-031-11686-5
eBook Packages: Computer ScienceComputer Science (R0)