Code Smells Enabled by Artificial Intelligence: A Systematic Mapping

  • Moayid Ali Zaidi
  • Ricardo Colomo-PalaciosEmail author
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 11622)


Code smells are an indicator of poor design in software systems. Artificial intelligence techniques have been applied in several ways to improve soft-ware quality in code smells detection i.e. (detection rules or standards using a combination of object-oriented metrics and Bayesian inference graphs). Literature in the field has identified artificial intelligence techniques and compare different artificial intelligence algorithms, which are used in the detection of code smells. However, to the best of our knowledge, there is not a systematic literature review devoted to study in deep the interaction of these fields. In this paper, authors conduct a systematic mapping to get to know how artificial intelligence inter-acts with code smells. Results show the deep connection of Artificial Intelligence with code smells in a solid way, as well as, providing potential challenges and opportunities for future research.


Artificial intelligence Code smells Bad smells Systematic mapping 


  1. 1.
    Kessentini, W., Kessentini, M., Sahraoui, H., Bechikh, S., Ouni, A.: A cooperative parallel search-based software engineering approach for code-smells detection. IEEE Trans. Softw. Eng. 40, 841–861 (2014). Scholar
  2. 2.
    Sjøberg, D.I.K., Yamashita, A., Anda, B.C.D., Mockus, A., Dybå, T.: Quantifying the effect of code smells on maintenance effort. IEEE Trans. Softw. Eng. 39, 1144–1156 (2013). Scholar
  3. 3.
    Fowler, M.: Refactoring: Improving the Design of Existing Code. Addison-Wesley Professional, Boston (2018)zbMATHGoogle Scholar
  4. 4.
    Hozano, M., Garcia, A., Fonseca, B., Costa, E.: Are you smelling it? Investigating how similar developers detect code smells. Inf. Softw. Technol. 93, 130–146 (2018). Scholar
  5. 5.
    Palomba, F., Bavota, G., Penta, M.D., Fasano, F., Oliveto, R., Lucia, A.D.: On the diffuseness and the impact on maintainability of code smells: a large scale empirical investigation. Empir. Softw. Eng. 23, 1188–1221 (2018). Scholar
  6. 6.
    Walter, B., Fontana, F.A., Ferme, V.: Code smells and their collocations: a large-scale experiment on open-source systems. J. Syst. Softw. 144, 1–21 (2018). Scholar
  7. 7.
    Liu, H., Guo, X., Shao, W.: Monitor-based instant software refactoring. IEEE Trans. Softw. Eng. 39, 1112–1126 (2013). Scholar
  8. 8.
    Garcia-Crespo, A., Colomo-Palacios, R., Gomez-Berbis, J.M., Mencke, M.: BMR: benchmarking metrics recommender for personnel issues in software development projects. Int. J. Comput. Intell. Syst. 2, 257–267 (2009)Google Scholar
  9. 9.
    Colomo-Palacios, R., Fernandes, E., Soto-Acosta, P., Larrucea, X.: A case analysis of enabling continuous software deployment through knowledge management. Int. J. Inf. Manag. 40, 186–189 (2018). Scholar
  10. 10.
    Palomba, F., Bavota, G., Di Penta, M., Fasano, F., Oliveto, R., De Lucia, A.: A large-scale empirical study on the lifecycle of code smell co-occurrences. Inf. Softw. Technol. 99, 1–10 (2018). Scholar
  11. 11.
    Azeem, M.I., Palomba, F., Shi, L., Wang, Q.: Machine learning techniques for code smell detection: a systematic literature review and meta-analysis. Inf. Softw. Technol. 108, 115–138 (2019). Scholar
  12. 12.
    Fernandes, E., Oliveira, J., Vale, G., Paiva, T., Figueiredo, E.: A review-based comparative study of bad smell detection tools. In: Proceedings of the 20th International Conference on Evaluation and Assessment in Software Engineering - EASE 2016, Limerick, Ireland, pp. 1–12. ACM Press (2016).
  13. 13.
    Arcelli Fontana, F., Mäntylä, M.V., Zanoni, M., Marino, A.: Comparing and experimenting machine learning techniques for code smell detection. Empir. Softw. Eng. 21, 1143–1191 (2016). Scholar
  14. 14.
    Kreimer, J.: Adaptive detection of design flaws. Electron. Notes Theor. Comput. Sci. 141, 117–136 (2005). Scholar
  15. 15.
    Khomh, F., Vaucher, S., Guéhéneuc, Y., Sahraoui, H.: A Bayesian approach for the detection of code and design smells. In: 2009 Ninth International Conference on Quality Software, pp. 305–314 (2009).
  16. 16.
    Khomh, F., Vaucher, S., Guéhéneuc, Y.-G., Sahraoui, H.: BDTEX: a GQM-based Bayesian approach for the detection of antipatterns. J. Syst. Softw. 84, 559–572 (2011). Scholar
  17. 17.
    Yang, J., Hotta, K., Higo, Y., Igaki, H., Kusumoto, S.: Filtering clones for individual user based on machine learning analysis. In: 2012 6th International Workshop on Software Clones (IWSC), Zurich, Switzerland, pp. 76–77. IEEE (2012).
  18. 18.
    Petersen, K., Vakkalanka, S., Kuzniarz, L.: Guidelines for conducting systematic mapping studies in software engineering: an update. Inf. Softw. Technol. 64, 1–18 (2015). Scholar
  19. 19.
    da Mota Silveira Neto, P.A., do Carmo Machado, I., McGregor, J.D., de Almeida, E.S., de Lemos Meira, S.R.: A systematic mapping study of software product lines testing. Inf. Softw. Technol. 53, 407–423 (2011). Scholar
  20. 20.
    Czibula, G., Marian, Z., Czibula, I.G.: Detecting software design defects using relational association rule mining. Knowl. Inf. Syst. 42, 545–577 (2015). Scholar
  21. 21.
    Sabir, F., Palma, F., Rasool, G., Guéhéneuc, Y.-G., Moha, N.: A systematic literature review on the detection of smells and their evolution in object-oriented and service-oriented systems. Softw. Pract. Exp. 49, 3–39 (2019). Scholar
  22. 22.
    Kaur, A., Jain, S., Goel, S.: A support vector machine based approach for code smell detection. In: 2017 International Conference on Machine Learning and Data Science (MLDS), pp. 9–14 (2017).
  23. 23.
    Liu, H., Xu, Z., Zou, Y.: Deep learning based feature envy detection. In: Proceedings of the 33rd ACM/IEEE International Conference on Automated Software Engineering - ASE 2018, Montpellier, France, pp. 385–396. ACM Press (2018).
  24. 24.
    Nucci, D.D., Palomba, F., Tamburri, D.A., Serebrenik, A., Lucia, A.D.: Detecting code smells using machine learning techniques: are we there yet? In: 2018 IEEE 25th International Conference on Software Analysis, Evolution and Reengineering (SANER), pp. 612–621 (2018).
  25. 25.
    Alkharabsheh, K., Crespo, Y., Manso, E., Taboada, J.A.: Software Design Smell Detection: a systematic mapping study. Softw. Qual. J. (2018).
  26. 26.
    Bán, D., Ferenc, R.: Recognizing antipatterns and analyzing their effects on software maintainability. In: Murgante, B., et al. (eds.) ICCSA 2014. LNCS, vol. 8583, pp. 337–352. Springer, Cham (2014). Scholar
  27. 27.
    Karađuzović-Hadžiabdić, K., Spahić, R.: Comparison of machine learning methods for code smell detection using reduced features. In: 2018 3rd International Conference on Computer Science and Engineering (UBMK), pp. 670–672 (2018).
  28. 28.
    Nuñez-Varela, A.S., Pérez-Gonzalez, H.G., Martínez-Perez, F.E., Soubervielle-Montalvo, C.: Source code metrics: a systematic mapping study. J. Syst. Softw. 128, 164–197 (2017). Scholar
  29. 29.
    Bafandeh Mayvan, B., Rasoolzadegan, A., Ghavidel Yazdi, Z.: The state of the art on design patterns: a systematic mapping of the literature. J. Syst. Softw. 125, 93–118 (2017). Scholar
  30. 30.
    Colomo-Palacios, R., Fernandes, E., Sabbagh, M., de Amescua Seco, A.: Human and intellectual capital management in the cloud: software vendor perspective. J. Univers. Comput. Sci. 18, 1544–1557 (2012)Google Scholar

Copyright information

© Springer Nature Switzerland AG 2019

Authors and Affiliations

  1. 1.Faculty of Computer SciencesØstfold University CollegeHaldenNorway

Personalised recommendations