Skip to main content

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

  • Conference paper
Search-Based Software Engineering (SSBSE 2014)

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 8636))

Included in the following conference series:

Abstract

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 44.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 59.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  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. Roberts, D.B.: Practical Analysis for Refactoring. PhD thesis, Department of Computer Science, University of Illinois (1999)

    Google Scholar 

  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. 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. 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)

    Chapter  Google Scholar 

  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)

    Chapter  Google Scholar 

  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. Harman, M., Mansouri, S.A., Zhang, Y.: Search-based software engineering: Trends, techniques and applications. ACM Computing Surveys 45(1), 11 (2012)

    Article  Google Scholar 

  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. Hecht-Nielsen, R.: Neurocomputing. Addison- Wesley, CA (1990) ISBN 0201093553

    Google Scholar 

  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. 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. 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. 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. 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)

    Article  MATH  Google Scholar 

  16. Erlikh, L.: Leveraging legacy system dollars for e-business. IT Professional 02(3), 17–23 (2000)

    Article  Google Scholar 

  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. 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. 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. Ó 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. O’Keeffe, M., Cinnéide, M.O.: Search-based Refactoring for Software Maintenance. J. of Systems and Software 81(4), 502–516

    Google Scholar 

  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. 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)

    Article  Google Scholar 

  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. 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. Shukla, K.K.: Neuro-genetic prediction of software development effort. Information and Software Technology 42(10), 701–713 (2000)

    Article  Google Scholar 

  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. Mens, T., Tourwé, T.: A Survey of Software Refactoring. IEEE Trans. Software Eng. 30(2), 126–139 (2004)

    Article  Google Scholar 

  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. 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. 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)

    Article  Google Scholar 

  32. Holm, S.: A simple sequentially rejective multiple test procedure. Scandinavian Journal of Statistics 6, 65–70 (1979)

    MATH  MathSciNet  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2014 Springer International Publishing Switzerland

About this paper

Cite this paper

Amal, B., Kessentini, M., Bechikh, S., Dea, J., Said, L.B. (2014). On the Use of Machine Learning and Search-Based Software Engineering for Ill-Defined Fitness Function: A Case Study on Software Refactoring. In: Le Goues, C., Yoo, S. (eds) Search-Based Software Engineering. SSBSE 2014. Lecture Notes in Computer Science, vol 8636. Springer, Cham. https://doi.org/10.1007/978-3-319-09940-8_3

Download citation

  • DOI: https://doi.org/10.1007/978-3-319-09940-8_3

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-319-09939-2

  • Online ISBN: 978-3-319-09940-8

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics