Skip to main content

A Robust Multi-objective Approach for Software Refactoring under Uncertainty

  • 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

Refactoring large systems involves several sources of uncertainty related to the severity levels of code smells to be corrected and the importance of the classes in which the smells are located. Due to the dynamic nature of software development, these values cannot be accurately determined in practice, leading to refactoring sequences that lack robustness. To address this problem, we introduced a multi-objective robust model, based on NSGA-II, for the software refactoring problem that tries to find the best trade-off between quality and robustness. We evaluated our approach using six open source systems and demonstrated that it is significantly better than state-of-the-art refactoring approaches in terms of robustness in 100% of experiments based on a variety of real-world scenarios. Our suggested refactoring solutions were found to be comparable in terms of quality to those suggested by existing approaches and to carry an acceptable robustness price. Our results also revealed an interesting feature about the trade-off between quality and robustness that demonstrates the practical value of taking robustness into account in software refactoring.

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. Antoniol, G., Di Penta, M., Harman, M.: A Robust Search-Based Approach to Project Management in the Presence of Abandonment, Rework, Error and Uncertainty. In: METRICS 2004, pp. 172–183 (2004)

    Google Scholar 

  2. Arcuri, A., Briand, L.C.: A practical guide for using statistical tests to assess randomized algorithms in software engineering. In: ICSE 2011, pp. 1–10 (2011)

    Google Scholar 

  3. Beyer, H.-G., Sendhoff, B.: Robust optimization – A comprehensive survey. Computer Methods in Applied Mechanics and Engineering 196(33-34), 3190–3218 (2007)

    Article  MATH  MathSciNet  Google Scholar 

  4. Chatzigeorgiou, A., Manakos, A.: Investigating the evolution of code smells in object-oriented systems, Innovations in Systems and Software Engineering. NASA Journal (2013)

    Google Scholar 

  5. Das, I.: Robustness optimization for constrained nonlinear programming problem. Engineering Optimization 32(5), 585–618 (2000)

    Article  Google Scholar 

  6. Deb, K., Gupta, H.: Introducing robustness in multi-objective optimization. Evolutionary Computation Journal 14(4), 463–494 (2006)

    Article  Google Scholar 

  7. Deb, K., Gupta, S.: Understanding knee points in bi-criteria problems and their implications as preferred solution principles. Engineering Optimization 43(11), 1175–1204 (2011)

    Article  MathSciNet  Google Scholar 

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

    Article  Google Scholar 

  9. Du Bois, B., Demeyer, S., Verelst, J.: Refactoring—Improving Coupling and Cohesion of Existing Code. In: WCRE 2004, pp. 144–151 (2004)

    Google Scholar 

  10. Esteves Paixao, M.-H., De Souza, J.-T.: A scenario-based robust model for the next release problem. In: GECCO 2013 (2013)

    Google Scholar 

  11. Ferrucci, F., Harman, M., Ren, J., Sarro, F.: Not going to take this anymore: Multi-objective overtime planning for software engineering projects. In: ICSE 2013, pp. 462–471. IEEE Press, Piscataway (2013)

    Google Scholar 

  12. Fowler, M., Beck, K., Brant, J., Opdyke, W., Roberts, D.: Refactoring – Improving the Design of Existing Code, 1st edn. Addison-Wesley (1999)

    Google Scholar 

  13. Gueorguiev, S., Harman, M., Antoniol, G.: Software project planning for robustness and completion time in the presence of uncertainty using multi objective search based software engineering. In: GECCO 2009, pp. 1673–1680 (2009)

    Google Scholar 

  14. Harman, M., Tratt, L.: Pareto optimal search based refactoring at the design level. In: GECCO 2007, pp. 1106–1113 (2007)

    Google Scholar 

  15. Harman, M., Mansouri, A., Zhang, Y.: Search-based software engineering: Trends, techniques and applications. ACM Comput. Surv. (2012)

    Google Scholar 

  16. Jin, Y., Branke, J.: Evolutionary optimization in uncertain environments – A survey. IEEE Transactions on Evolutionary Computation 9(3), 303–317 (2005)

    Article  Google Scholar 

  17. Kessentini, M., Kessentini, W., Sahraoui, H., Boukadoum, M., Ouni, A.: Design Defects Detection and Correction by Example. In: Proceedings of ICPC 2011, pp. 81–90 (2011)

    Google Scholar 

  18. Li, X.: A non-dominated sorting particle swarm optimizer for multiobjective optimization. In: GECCO 2003, pp. 37–48 (2003)

    Google Scholar 

  19. Ó Cinnéide, M., Tratt, L., Harman, M., Counsell, S., Moghadam, I. H.: Experimental Assessment of Software Metrics Using Automated Refactoring. In: Proceedings of the ESEM 2012, pp. 49–58 (2012)

    Google Scholar 

  20. O’Keeffe, M., Ó Cinnéide, M.: Search-based Refactoring for Software Maintenance. Journal of Systems and Software, 502–516 (2008)

    Google Scholar 

  21. Ouni, A., Kessentini, M., Sahraoui, H., Boukadoum, M.: Maintainability Defects Detection and Correction: A Multi-Objective Approach. Journal of Automated Software Engineering, 47–79 (2012)

    Google Scholar 

  22. Palomba, F., Bavota, G., Di Penta, M., Oliveto, R., De Lucia, A., Poshyvanyk, D.: Detecting Bad Smells in Source Code Using Change History Information. In: Proceedings of ASE 2013 (2013)

    Google Scholar 

  23. Seng, O., Stammel, J., Burkhart, D.: Search-based determination of refactorings for improving the class structure of object-oriented systems. In: Proceedings of GECCO 2006, pp. 1909–1916 (2006)

    Google Scholar 

  24. http://www.jdeodorant.com/

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

Mkaouer, M.W., Kessentini, M., Bechikh, S., Ó Cinnéide, M. (2014). A Robust Multi-objective Approach for Software Refactoring under Uncertainty. 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_12

Download citation

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

  • 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