Scaling up the Fitness Function for Reverse Engineering Feature Models

Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 9962)

Abstract

Recent research on software product line engineering has led to several search-based frameworks for reverse engineering feature models. The most common fitness function utilized maximizes the number of matched products with an oracle set of products. However, to calculate this fitness each product defined by the chromosome has to be enumerated using a SAT solver and this limits scalability to product lines with fewer than 30 features. In this paper we propose \(\textit{SAT}_{\textit{ff}}\), a fitness function that simulates validity by computing the difference between constraints in the chromosome and oracle. In an empirical study on 101 feature models comparing \(\textit{SAT}_{\textit{ff}}\) with two existing fitness functions that use the enumeration technique we find that \(\textit{SAT}_{\textit{ff}}\) shows a significant improvement over one, and no significant difference with the other one. We also find that \(\textit{SAT}_{\textit{ff}}\) requires only 7 % of the runtime on average scaling to feature models with as many as 97 features.

Keywords

Genetic algorithms Software product lines Reverse engineering Feature models Fitness function 

References

  1. 1.
    Andersen, N., Czarnecki, K., She, S., Wąsowski, A.: Efficient synthesis of feature models. In: Proceedings of the 16th International Software Product Line Conference, vol. 1. pp. 106–115. SPLC (2012)Google Scholar
  2. 2.
    Benavides, D., Segura, S., Trinidad, P., Ruiz-Cortés, A.: A first step towards a framework for the automated analysis of feature models. In: Managing Variability for Software Product Lines: Working With Variability Mechanisms (2006)Google Scholar
  3. 3.
    Benavides, D., Segura, S., Trinidad, P., Ruiz-cortés, A.: FaMa: tooling a framework for the automated analysis of feature models. In. Proceeding of the First International Workshop on Variability Modelling of Software Intensive Systems VAMOS, pp. 129–134 (2007)Google Scholar
  4. 4.
    Benavides, D., Segura, S., Trinidad, P., Ruiz-cortés, A.: FAMA, a framework for automated analyses of feature models (2014). http://www.isa.us.es/fama/
  5. 5.
    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, pp. 261–270. ICSE (2008)Google Scholar
  6. 6.
    Henard, C., Papadakis, M., Harman, M., Le Traon, Y.: Combining multi-objective search and constraint solving for configuring large software product lines. In: International Conference on Software Engineering, pp. 517–528. ICSE (2015)Google Scholar
  7. 7.
    Kenner, A., Kästner, C., Haase, S., Leich, T.: Typechef: toward type checking #ifdef variability in c. In: International Workshop on Feature-Oriented Software Development, pp. 25–32. FOSD (2010)Google Scholar
  8. 8.
    Lopez-Herrejon, R.E., Galindo, J.A., Benavides, D., Segura, S., Egyed, A.: Reverse engineering feature models with evolutionary algorithms: an exploratory study. In: Fraser, G., Teixeira de Souza, J. (eds.) SSBSE 2012. LNCS, vol. 7515, pp. 168–182. Springer, Heidelberg (2012)CrossRefGoogle Scholar
  9. 9.
    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. J. Syst. Softw. 103, 353–369 (2014)CrossRefGoogle Scholar
  10. 10.
    Manning, C.D., Raghavan, P., Schütze, H.: Introduction to Information Retrieval. Cambridge University Press, Cambridge (2008)CrossRefMATHGoogle Scholar
  11. 11.
    Mendonca, M., Branco, M., Cowan, D.: S.P.L.O.T.: Software product lines online tool (2014). http://www.splot-research.org/. Generative Software Development Lab. Computer Systems Group, University of Waterloo
  12. 12.
    Nadi, S., Berger, T., Kästner, C., Czarnecki, K.: Mining configuration constraints: static analyses and empirical results. In: International Conference on Software Engineering, pp. 140–151. ICSE (2014)Google Scholar
  13. 13.
    Nadi, S., Berger, T., Kästner, C., Czarnecki, K.: Where do configuration constraints stem from? An extraction approach and an empirical study. IEEE Trans. Softw. Eng. 41(8), 820–841 (2015)CrossRefGoogle Scholar
  14. 14.
    Pohl, K., Böckle, G., van der Linden, F.: Software Product Line Engineering. Springer, Berlin (2005)CrossRefMATHGoogle Scholar
  15. 15.
    Sayyad, A., Ingram, J., Menzies, T., Ammar, H.: Scalable product line configuration: a straw to break the camel’s back. In: International Conference on Automated Software Engineering (ASE), pp. 465–474 (2013)Google Scholar
  16. 16.
    She, S., Lotufo, R., Berger, T., Wąsowski, A., Czarnecki, K.: Reverse engineering feature models. In: Proceedings of the 33rd International Conference on Software Engineering (ICSE), pp. 461–470 (2011)Google Scholar
  17. 17.
    Thianniwet., T., Cohen, M.B.: SPLRevO: optimizing complex feature models in search based reverse engineering of software product lines. In: First North American Search Based Software Engineering Symposium (NasBASE 2015), February 2015Google Scholar
  18. 18.
    Whaley, J.: JavaBDD - Java Binary Decision Diagram library. http://javabdd.sourceforge.net

Copyright information

© Springer International Publishing AG 2016

Authors and Affiliations

  1. 1.Department of Computer Science and EngineeringUniversity of Nebraska-LincolnLincolnUSA

Personalised recommendations