On the Use of Machine Learning and Search-Based Software Engineering for Ill-Defined Fitness Function: A Case Study on Software Refactoring

  • Boukhdhir Amal
  • Marouane Kessentini
  • Slim Bechikh
  • Josselin Dea
  • Lamjed Ben Said
Part of the Lecture Notes in Computer Science book series (LNCS, volume 8636)


The most challenging step when adapting a search-based technique for a software engineering problem is the definition of the fitness function. For several software engineering problems, a fitness function is ill-defined, subjective, or difficult to quantify. For example, the evaluation of a software design is subjective. This paper introduces the use of a neural network-based fitness function for the problem of software refactoring. The software engineers evaluate manually the suggested refactoring solutions by a Genetic Algorithm (GA) for few iterations then an Artificial Neural Network (ANN) uses these training examples to evaluate the refactoring solutions for the remaining iterations. We evaluate the efficiency of our approach using six different open-source systems through an empirical study and compare the performance of our technique with several existing refactoring studies.


Fitness Function Quality Metrics Semantic Coherence Software Development Team Interactive Genetic Algorithm 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Jensen, A., Cheng, B.: On the use of genetic programming for automated refactoring and the introduction of design patterns. In: Proceedings of GECCO. ACM (July 2010)Google Scholar
  2. 2.
    Roberts, D.B.: Practical Analysis for Refactoring. PhD thesis, Department of Computer Science, University of Illinois (1999)Google Scholar
  3. 3.
    Qayum., F., Heckel, R.: Local search-based refactoring as graph transformation. In: Proceedings of 1st International Symposium on Search Based Software Engineering, pp. 43–46 (2009)Google Scholar
  4. 4.
    Palomba, F., Bavota, G., Penta, M.D., Oliveto, R., Lucia, A.D., Poshyvanyk, D.: Detecting bad smells in source code using change history information. In: ASE, pp. 268–278 (2013)Google Scholar
  5. 5.
    Ghannem, A., El Boussaidi, G., Kessentini, M.: Model refactoring using interactive genetic algorithm. In: Ruhe, G., Zhang, Y. (eds.) SSBSE 2013. LNCS, vol. 8084, pp. 96–110. Springer, Heidelberg (2013)CrossRefGoogle Scholar
  6. 6.
    Kilic, H., Koc, E., Cereci, I.: Search-based parallel refactoring using population-based direct approaches. In: Cohen, M.B., Ó Cinnéide, M. (eds.) SSBSE 2011. LNCS, vol. 6956, pp. 271–272. Springer, Heidelberg (2011)CrossRefGoogle Scholar
  7. 7.
    Harman, M., Clark, J.A.: Metrics are fitness functions too. In: Proc. of the IEEE International Symposium on Software Metrics, pp. 58–69 (2004)Google Scholar
  8. 8.
    Harman, M., Mansouri, S.A., Zhang, Y.: Search-based software engineering: Trends, techniques and applications. ACM Computing Surveys 45(1), 11 (2012)CrossRefGoogle Scholar
  9. 9.
    Harman, M.: The Relationship between search based software engineering and predictive modeling. In: Proc. of the International Conference on Predictive Models in Software Engineering, pp. 1–13 (2013)Google Scholar
  10. 10.
    Hecht-Nielsen, R.: Neurocomputing. Addison- Wesley, CA (1990) ISBN 0201093553Google Scholar
  11. 11.
    Idri, A., Khoshgoftaar, T.M., Abran, A.: Can neural networks be easily interpreted in software cost estimation. In: Proc. of the IEEE International Conference on Fuzzy Systems, pp. 1162–1167 (2002)Google Scholar
  12. 12.
    Jayalakshmi, T., Santhakumaran, A.: Statistical normalization and back propagation for classification. International Journal of Computer Theory and Engineering 3(1), 1793–8201 (2011)Google Scholar
  13. 13.
    Prete, K., Rachatasumrit, N., Sudan, N., Kim, M.: Template-based reconstruction of complex refactorings. In: Proceedings of the ICSM 2010, pp. 1–10 (2010)Google Scholar
  14. 14.
    Kessentini, M., Kessentini, W., Sahraoui, H., Boukadoum, M., Ouni, A.: Design defects detection and correction by example. In: Proc. of the IEEE International Conference on Program Comprehension, pp. 81–90 (2011)Google Scholar
  15. 15.
    Kruskal, W.H., Wallis, W.A.: Use of ranks in one-criterion variance analysis. Journal of the American Statistical Association 47(260), 583–621 (1952)CrossRefzbMATHGoogle Scholar
  16. 16.
    Erlikh, L.: Leveraging legacy system dollars for e-business. IT Professional 02(3), 17–23 (2000)CrossRefGoogle Scholar
  17. 17.
    Lars, W., Yaochu, J.: Comparing neural networks and kriging for fitness approximation in evolutionary optimization. In: Proc. of the IEEE Congress on Evolutionary Computation, pp. 663–670 (2003)Google Scholar
  18. 18.
    Fokaefs, M., Tsantalis, N., Stroulia, E., Chatzigeorgiou, A.: JDeodorant: identification and application of extract class refactorings. In: International Conference on Software Engineering (ICSE), pp. 1037–1039 (2011)Google Scholar
  19. 19.
    Harman, M., Tratt, L.: Pareto optimal search based refactoring at the design level. In: Proceedings of the Genetic and Evolutionary Computation Conference (GECCO 2007), pp. 1106–1113 (2007)Google Scholar
  20. 20.
    Ó Cinnéide, M., Tratt, L., Harman, M., Counsell, S., Moghadam, I.H.: Experimental Assessment of Software Metrics Using Automated Refactoring. In: Proc. Empirical Software Engineering and Management (ESEM), pp. 49–58 (September 2012)Google Scholar
  21. 21.
    O’Keeffe, M., Cinnéide, M.O.: Search-based Refactoring for Software Maintenance. J. of Systems and Software 81(4), 502–516Google Scholar
  22. 22.
    Mkaouer, W., Kessentini, M., Bechikh, S., Deb, K.: High dimensional search-based software engineering: Finding tradeoffs among 15 objectives for automating software refactoring using NSGA-III. In: Proc. of the Genetic and Evolutionary Computation Conference (accepted, 2014)Google Scholar
  23. 23.
    Moha, N., Guéhéneuc, Y.-G., Duchien, L., Meur, A.-F.L.: DECOR: A method for the specification and detection of code and design smells. IEEE Trans. Softw. Eng. 36, 20–36 (2009)CrossRefGoogle Scholar
  24. 24.
    Seng, O., Stammel, J., Burkhart, D.: Search-based determination of refactorings for improving the class structure of object-oriented systems. In: Proceedings of the Genetic and Evolutionary Computation Conference (GECCO 2006), pp. 1909–1916 (2006)Google Scholar
  25. 25.
    Ouni, A., Kessentini, M., Sahraoui, H., Hamdi, M.S.: The use of development history in software refactoring using a multi-objective. In: Proc. the Genetic and Evolutionary Computation Conference, pp. 1461–1468 (2013)Google Scholar
  26. 26.
    Shukla, K.K.: Neuro-genetic prediction of software development effort. Information and Software Technology 42(10), 701–713 (2000)CrossRefGoogle Scholar
  27. 27.
    Sibo Yang, T.O.T., Man, K.L., Guan, S.U.: Investigation of neural networks for function approximation. In: Proc. of the International Conference on Information Technology and Quantitative Management, pp. 586–594 (2013)Google Scholar
  28. 28.
    Mens, T., Tourwé, T.: A Survey of Software Refactoring. IEEE Trans. Software Eng. 30(2), 126–139 (2004)CrossRefGoogle Scholar
  29. 29.
    Opdyke, W.F.: Refactoring: A Program Restructuring Aid in Designing Object-Oriented Application Frameworks, Ph.D. thesis, University of Illinois at Urbana-Champaign (1992)Google Scholar
  30. 30.
    Zhang, D.: Machine Learning and software engineering. In: Proc. of the International Conference on Tools with Artificial Intelligence, pp. 87–119 (2002)Google Scholar
  31. 31.
    Simons, C.L., Parmee, I.C., Gwynllyw, R.: Interactive, Evolutionary Search in Upstream Object-Oriented Class Design. IEEE Trans. Software Eng. 36(6), 798–816 (2010)CrossRefGoogle Scholar
  32. 32.
    Holm, S.: A simple sequentially rejective multiple test procedure. Scandinavian Journal of Statistics 6, 65–70 (1979)zbMATHMathSciNetGoogle Scholar

Copyright information

© Springer International Publishing Switzerland 2014

Authors and Affiliations

  • Boukhdhir Amal
    • 1
  • Marouane Kessentini
    • 1
  • Slim Bechikh
    • 1
  • Josselin Dea
    • 1
  • Lamjed Ben Said
    • 2
  1. 1.University of MichiganUSA
  2. 2.University of TunisTunisia

Personalised recommendations