Skip to main content
Top
Published in: Software Quality Journal 2/2020

03-12-2019

Automatic software refactoring: a systematic literature review

Authors: Abdulrahman Ahmed Bobakr Baqais, Mohammad Alshayeb

Published in: Software Quality Journal | Issue 2/2020

Log in

Activate our intelligent search to find suitable subject content or patents.

search-config
loading …

Abstract

Refactoring a software artifact is an embedded task in the maintenance phase of the software life cycle. To reduce the time and effort required for this task, researchers proposed methods to automate the software refactoring process at the design and code levels. In this paper, we conducted a systematic literature review of papers that suggest, propose, or implement an automated refactoring process. Using different phases, setting several quality measures, and snowballing, only 41 papers passed to the last stage to be analyzed and reviewed. We observe an increase in the number of papers that propose automatic refactoring. The results show that while most of the papers discuss code refactoring, only a few recent papers are focused on model refactoring. Search-based refactoring is gaining more popularity, and several researchers have used it to perform refactoring in a quick and efficient manner.

Dont have a licence yet? Then find out more about our products and how to get one now:

Springer Professional "Wirtschaft"

Online-Abonnement

Mit Springer Professional "Wirtschaft" erhalten Sie Zugriff auf:

  • über 67.000 Bücher
  • über 340 Zeitschriften

aus folgenden Fachgebieten:

  • Bauwesen + Immobilien
  • Business IT + Informatik
  • Finance + Banking
  • Management + Führung
  • Marketing + Vertrieb
  • Versicherung + Risiko




Jetzt Wissensvorsprung sichern!

Springer Professional "Wirtschaft+Technik"

Online-Abonnement

Mit Springer Professional "Wirtschaft+Technik" erhalten Sie Zugriff auf:

  • über 102.000 Bücher
  • über 537 Zeitschriften

aus folgenden Fachgebieten:

  • Automobil + Motoren
  • Bauwesen + Immobilien
  • Business IT + Informatik
  • Elektrotechnik + Elektronik
  • Energie + Nachhaltigkeit
  • Finance + Banking
  • Management + Führung
  • Marketing + Vertrieb
  • Maschinenbau + Werkstoffe
  • Versicherung + Risiko

Jetzt Wissensvorsprung sichern!

Springer Professional "Technik"

Online-Abonnement

Mit Springer Professional "Technik" erhalten Sie Zugriff auf:

  • über 67.000 Bücher
  • über 390 Zeitschriften

aus folgenden Fachgebieten:

  • Automobil + Motoren
  • Bauwesen + Immobilien
  • Business IT + Informatik
  • Elektrotechnik + Elektronik
  • Energie + Nachhaltigkeit
  • Maschinenbau + Werkstoffe




 

Jetzt Wissensvorsprung sichern!

Appendix
Available only for authorised users
Literature
go back to reference Abebe, M., & Yoo, C.-J. (2014). Trends, opportunities and challenges of software refactoring: a systematic literature review. International Journal of Software Engineering & Its Applications, 8(6), 299–318. Abebe, M., & Yoo, C.-J. (2014). Trends, opportunities and challenges of software refactoring: a systematic literature review. International Journal of Software Engineering & Its Applications, 8(6), 299–318.
go back to reference Al Dallal, J. (2015). Identifying refactoring opportunities in object-oriented code: a systematic literature review. Information and Software Technology, 58, 231–249.CrossRef Al Dallal, J. (2015). Identifying refactoring opportunities in object-oriented code: a systematic literature review. Information and Software Technology, 58, 231–249.CrossRef
go back to reference Alkhalid, A., Alshayeb, M., & Mahmoud, S. A. (2011). Software refactoring at the class level using clustering techniques. Journal of Research and Practice in Information Technology, 43(4), 285–306. Alkhalid, A., Alshayeb, M., & Mahmoud, S. A. (2011). Software refactoring at the class level using clustering techniques. Journal of Research and Practice in Information Technology, 43(4), 285–306.
go back to reference Amal, B., Kessentini, M., Bechikh, S., Dea, J., & Said, L. (2014). On the use of machine learning and search-based software engineering for ill-defined fitness function: a case study on software refactoring. In C. Le Goues & S. Yoo (Eds.), Search-Based Software Engineering (Vol. 8636, pp. 31–45). Amal, B., Kessentini, M., Bechikh, S., Dea, J., & Said, L. (2014). On the use of machine learning and search-based software engineering for ill-defined fitness function: a case study on software refactoring. In C. Le Goues & S. Yoo (Eds.), Search-Based Software Engineering (Vol. 8636, pp. 31–45).
go back to reference Babar, M. A., & Zhang, H. (2009). Systematic literature reviews in software engineering: preliminary results from interviews with researchers. In 3rd International Symposium on Empirical Software Engineering and Measurement, ESEM (pp. 346–355). Babar, M. A., & Zhang, H. (2009). Systematic literature reviews in software engineering: preliminary results from interviews with researchers. In 3rd International Symposium on Empirical Software Engineering and Measurement, ESEM (pp. 346–355).
go back to reference Bavota, G., Di Penta, M., & Oliveto, R. (2014). Search based software maintenance: methods and tools. In Evolving Software Systems (pp. 103–137).CrossRef Bavota, G., Di Penta, M., & Oliveto, R. (2014). Search based software maintenance: methods and tools. In Evolving Software Systems (pp. 103–137).CrossRef
go back to reference Boussaïd, I., Siarry, P., & Ahmed-Nacer, M. (2017). A survey on search-based model-driven engineering. Automated Software Engineering, 24(2), 233–294.CrossRef Boussaïd, I., Siarry, P., & Ahmed-Nacer, M. (2017). A survey on search-based model-driven engineering. Automated Software Engineering, 24(2), 233–294.CrossRef
go back to reference Brereton, P., Kitchenham, B., Budgen, D., Turner, M., & Khalil, M. (2007). Lessons from applying the systematic literature review process within the software engineering domain. Journal of Systems and Software, 80(1), 571–583.CrossRef Brereton, P., Kitchenham, B., Budgen, D., Turner, M., & Khalil, M. (2007). Lessons from applying the systematic literature review process within the software engineering domain. Journal of Systems and Software, 80(1), 571–583.CrossRef
go back to reference Dermeval, D., Vilela, J., Bittencourt, I. I., Castro, J., Isotani, S., Brito, P., et al. (2016). Applications of ontologies in requirements engineering: a systematic review of the literature. Requirements Engineering, 21(4), 405–437.CrossRef Dermeval, D., Vilela, J., Bittencourt, I. I., Castro, J., Isotani, S., Brito, P., et al. (2016). Applications of ontologies in requirements engineering: a systematic review of the literature. Requirements Engineering, 21(4), 405–437.CrossRef
go back to reference Fowler, M. (2018). Refactoring: improving the design of existing code (2nd ed.): Addison-Wesley Signature Series (Fowler). Fowler, M. (2018). Refactoring: improving the design of existing code (2nd ed.): Addison-Wesley Signature Series (Fowler).
go back to reference Kamiya, T., Kusumoto, S., & Inoue, K. (2002). CCFinder: a multilinguistic token-based code clone detection system for large scale source code. IEEE Transactions on Software Engineering, 28(7), 654–670.CrossRef Kamiya, T., Kusumoto, S., & Inoue, K. (2002). CCFinder: a multilinguistic token-based code clone detection system for large scale source code. IEEE Transactions on Software Engineering, 28(7), 654–670.CrossRef
go back to reference Kessentini, M., Langer, P., & Wimmer, M. (2013). Searching models, modeling search: on the synergies of SBSE and MDE. In 1st International Workshop on Combining Modelling and Search-Based Software Engineering (CMSBSE) (pp. 51–54).CrossRef Kessentini, M., Langer, P., & Wimmer, M. (2013). Searching models, modeling search: on the synergies of SBSE and MDE. In 1st International Workshop on Combining Modelling and Search-Based Software Engineering (CMSBSE) (pp. 51–54).CrossRef
go back to reference Kessentini, W., Kessentini, M., Sahraoui, H., Bechikh, S., & Ouni, A. (2014). A cooperative parallel search-based software engineering approach for code-smells detection. IEEE Transactions on Software Engineering, 40(9), 841–861.CrossRef Kessentini, W., Kessentini, M., Sahraoui, H., Bechikh, S., & Ouni, A. (2014). A cooperative parallel search-based software engineering approach for code-smells detection. IEEE Transactions on Software Engineering, 40(9), 841–861.CrossRef
go back to reference Kitchenham, B., Brereton, P., Budgen, D., Turner, M., Bailey, J., & Linkman, S. (2009). Systematic literature reviews in software engineering: a systematic literature review. Information and Software Technology, 51(1), 7–15.CrossRef Kitchenham, B., Brereton, P., Budgen, D., Turner, M., Bailey, J., & Linkman, S. (2009). Systematic literature reviews in software engineering: a systematic literature review. Information and Software Technology, 51(1), 7–15.CrossRef
go back to reference Kitchenham, B., & Charters, C. (2007). Guidelines for performing Systematic Literature Reviews in Software Engineering. Keele University and Durham University Joint Report - EBSE 2007-001. Kitchenham, B., & Charters, C. (2007). Guidelines for performing Systematic Literature Reviews in Software Engineering. Keele University and Durham University Joint Report - EBSE 2007-001.
go back to reference Mahmood, S., Anwer, S., Niazi, M., Alshayeb, M., & Richardson, I. (2017). Key factors that influence task allocation in global software development. Information and Software Technology, 91, 102–122.CrossRef Mahmood, S., Anwer, S., Niazi, M., Alshayeb, M., & Richardson, I. (2017). Key factors that influence task allocation in global software development. Information and Software Technology, 91, 102–122.CrossRef
go back to reference Mahouachi, R., Kessentini, M., & Cinnéide, M.Ó. (2013a). Search-based refactoring detection. Paper presented at the Proceedings of the 15th annual conference companion on Genetic and evolutionary computation, Amsterdam, The Netherlands, Mahouachi, R., Kessentini, M., & Cinnéide, M.Ó. (2013a). Search-based refactoring detection. Paper presented at the Proceedings of the 15th annual conference companion on Genetic and evolutionary computation, Amsterdam, The Netherlands,
go back to reference Mahouachi, R., Kessentini, M., & Cinnéide, M. Ó. (2013b). Search-Based Refactoring Detection Using Software Metrics Variation. In Search Based Software Engineering (Vol. 8084, pp. 126–140).CrossRef Mahouachi, R., Kessentini, M., & Cinnéide, M. Ó. (2013b). Search-Based Refactoring Detection Using Software Metrics Variation. In Search Based Software Engineering (Vol. 8084, pp. 126–140).CrossRef
go back to reference Mariani, T., & Vergilio, S. R. (2017). A systematic review on search-based refactoring. Information and Software Technology, 83, 14–34.CrossRef Mariani, T., & Vergilio, S. R. (2017). A systematic review on search-based refactoring. Information and Software Technology, 83, 14–34.CrossRef
go back to reference Martin, R. (2003). Agile software development: principles, patterns and practices Prentice Hall. Martin, R. (2003). Agile software development: principles, patterns and practices Prentice Hall.
go back to reference Mens, T., & Tourwé, T. (2004). A survey of software refactoring. Software Engineering, IEEE Transactions on, 30(2), 126–139.CrossRef Mens, T., & Tourwé, T. (2004). A survey of software refactoring. Software Engineering, IEEE Transactions on, 30(2), 126–139.CrossRef
go back to reference Misbhauddin, M., & Alshayeb, M. (2015). UML model refactoring: a systematic literature review. Empirical Software Engineering, 20(1), 206–251.CrossRef Misbhauddin, M., & Alshayeb, M. (2015). UML model refactoring: a systematic literature review. Empirical Software Engineering, 20(1), 206–251.CrossRef
go back to reference Mkaouer, M. W., Kessentini, M., Bechikh, S., Cinnéide, M. Ó., & Deb, K. (2016). On the use of many quality attributes for software refactoring: a many-objective search-based software engineering approach. Empirical Software Engineering, 21(6), 2503–2545.CrossRef Mkaouer, M. W., Kessentini, M., Bechikh, S., Cinnéide, M. Ó., & Deb, K. (2016). On the use of many quality attributes for software refactoring: a many-objective search-based software engineering approach. Empirical Software Engineering, 21(6), 2503–2545.CrossRef
go back to reference Moha, N., Gueheneuc, Y.-G., Duchien, L., & Le Meur, A.-F. (2010). DECOR: a method for the specification and detection of code and design smells. IEEE Transactions on Software Engineering, 36(1), 20–36.CrossRef Moha, N., Gueheneuc, Y.-G., Duchien, L., & Le Meur, A.-F. (2010). DECOR: a method for the specification and detection of code and design smells. IEEE Transactions on Software Engineering, 36(1), 20–36.CrossRef
go back to reference Mohan, M., & Greer, D. (2018). A survey of search-based refactoring for software maintenance. Journal of Software Engineering Research Development, 6(1), 3.CrossRef Mohan, M., & Greer, D. (2018). A survey of search-based refactoring for software maintenance. Journal of Software Engineering Research Development, 6(1), 3.CrossRef
go back to reference Opdyke, W. (1992). Refactoring Object-Oriented Frameworks. PhD thesis, University of Illinois at Urbana Champaign, Opdyke, W. (1992). Refactoring Object-Oriented Frameworks. PhD thesis, University of Illinois at Urbana Champaign,
go back to reference Ouni, A., Kessentini, M., Bechikh, S., & Sahraoui, H. (2015). Prioritizing code-smells correction tasks using chemical reaction optimization. Software Quality Journal, 23(2), 323–361.CrossRef Ouni, A., Kessentini, M., Bechikh, S., & Sahraoui, H. (2015). Prioritizing code-smells correction tasks using chemical reaction optimization. Software Quality Journal, 23(2), 323–361.CrossRef
go back to reference Petticrew, M., & Roberts, H. (2005). Systematic reviews in the social sciences: a practical guide. Wiley-Blackwell. Petticrew, M., & Roberts, H. (2005). Systematic reviews in the social sciences: a practical guide. Wiley-Blackwell.
go back to reference Räihä, O. (2010). A survey on search-based software design. Computer Science Review, 4, 203–249.CrossRef Räihä, O. (2010). A survey on search-based software design. Computer Science Review, 4, 203–249.CrossRef
go back to reference Ramirez, A., Romero, J. R., & Simons, C. (2018). A Systematic Review of Interaction in Search-Based Software Engineering. IEEE Transactions on Software Engineering, 1-1. Ramirez, A., Romero, J. R., & Simons, C. (2018). A Systematic Review of Interaction in Search-Based Software Engineering. IEEE Transactions on Software Engineering, 1-1.
go back to reference Ramírez, A., Romero, J. R., & Ventura, S. (2019). A survey of many-objective optimisation in search-based software engineering. Journal of Systems and Software, 149, 382–395.CrossRef Ramírez, A., Romero, J. R., & Ventura, S. (2019). A survey of many-objective optimisation in search-based software engineering. Journal of Systems and Software, 149, 382–395.CrossRef
go back to reference Rochimah, S., Arifiani, S., & Insanittaqwa, V. F. (2015). Non-source code refactoring: a systematic literature review. International Journal of Software Engineering and Its Applications, 9(6), 197–214.CrossRef Rochimah, S., Arifiani, S., & Insanittaqwa, V. F. (2015). Non-source code refactoring: a systematic literature review. International Journal of Software Engineering and Its Applications, 9(6), 197–214.CrossRef
go back to reference Singh, S., & Kaur, S. (2018). A systematic literature review: refactoring for disclosing code smells in object oriented software. Ain Shams Engineering Journal, 9(4), 2129–2151.CrossRef Singh, S., & Kaur, S. (2018). A systematic literature review: refactoring for disclosing code smells in object oriented software. Ain Shams Engineering Journal, 9(4), 2129–2151.CrossRef
go back to reference Staples, M., & Niazi, M. (2007). Experiences Using Systematic Review Guidelines. Journal of Systems and Software, 80(9), 1425–1437.CrossRef Staples, M., & Niazi, M. (2007). Experiences Using Systematic Review Guidelines. Journal of Systems and Software, 80(9), 1425–1437.CrossRef
go back to reference Tsantalis, N., Chaikalis, T., & Chatzigeorgiou, A. (2008). JDeodorant: identification and removal of type-checking bad smells. In 2008 12th European Conference on Software Maintenance and Reengineering (pp. 329–331).CrossRef Tsantalis, N., Chaikalis, T., & Chatzigeorgiou, A. (2008). JDeodorant: identification and removal of type-checking bad smells. In 2008 12th European Conference on Software Maintenance and Reengineering (pp. 329–331).CrossRef
go back to reference Wohlin, C. (2014). Guidelines for snowballing in systematic literature studies and a replication in software engineering. Paper presented at the Proceedings of the 18th International Conference on Evaluation and Assessment in Software Engineering, London, United Kingdom, Wohlin, C. (2014). Guidelines for snowballing in systematic literature studies and a replication in software engineering. Paper presented at the Proceedings of the 18th International Conference on Evaluation and Assessment in Software Engineering, London, United Kingdom,
Metadata
Title
Automatic software refactoring: a systematic literature review
Authors
Abdulrahman Ahmed Bobakr Baqais
Mohammad Alshayeb
Publication date
03-12-2019
Publisher
Springer US
Published in
Software Quality Journal / Issue 2/2020
Print ISSN: 0963-9314
Electronic ISSN: 1573-1367
DOI
https://doi.org/10.1007/s11219-019-09477-y

Other articles of this Issue 2/2020

Software Quality Journal 2/2020 Go to the issue

Premium Partner