Advertisement

Code Smells Enabled by Artificial Intelligence: A Systematic Mapping

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

Abstract

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.

Keywords

Artificial intelligence Code smells Bad smells Systematic mapping 

References

  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).  https://doi.org/10.1109/TSE.2014.2331057CrossRefGoogle 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).  https://doi.org/10.1109/TSE.2012.89CrossRefGoogle 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).  https://doi.org/10.1016/j.infsof.2017.09.002CrossRefGoogle 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).  https://doi.org/10.1007/s10664-017-9535-zCrossRefGoogle 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).  https://doi.org/10.1016/j.jss.2018.05.057CrossRefGoogle Scholar
  7. 7.
    Liu, H., Guo, X., Shao, W.: Monitor-based instant software refactoring. IEEE Trans. Softw. Eng. 39, 1112–1126 (2013).  https://doi.org/10.1109/TSE.2013.4CrossRefGoogle 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).  https://doi.org/10.1016/j.ijinfomgt.2017.11.005CrossRefGoogle 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).  https://doi.org/10.1016/j.infsof.2018.02.004CrossRefGoogle 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).  https://doi.org/10.1016/j.infsof.2018.12.009CrossRefGoogle 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).  https://doi.org/10.1145/2915970.2915984
  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).  https://doi.org/10.1007/s10664-015-9378-4CrossRefGoogle Scholar
  14. 14.
    Kreimer, J.: Adaptive detection of design flaws. Electron. Notes Theor. Comput. Sci. 141, 117–136 (2005).  https://doi.org/10.1016/j.entcs.2005.02.059CrossRefGoogle 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).  https://doi.org/10.1109/QSIC.2009.47
  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).  https://doi.org/10.1016/j.jss.2010.11.921CrossRefGoogle 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).  https://doi.org/10.1109/IWSC.2012.6227872
  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).  https://doi.org/10.1016/j.infsof.2015.03.007CrossRefGoogle 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).  https://doi.org/10.1016/j.infsof.2010.12.003CrossRefGoogle 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).  https://doi.org/10.1007/s10115-013-0721-zCrossRefGoogle 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).  https://doi.org/10.1002/spe.2639CrossRefGoogle 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).  https://doi.org/10.1109/MLDS.2017.8
  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).  https://doi.org/10.1145/3238147.3238166
  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).  https://doi.org/10.1109/SANER.2018.8330266
  25. 25.
    Alkharabsheh, K., Crespo, Y., Manso, E., Taboada, J.A.: Software Design Smell Detection: a systematic mapping study. Softw. Qual. J. (2018).  https://doi.org/10.1007/s11219-018-9424-8
  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).  https://doi.org/10.1007/978-3-319-09156-3_25CrossRefGoogle 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).  https://doi.org/10.1109/UBMK.2018.8566561
  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).  https://doi.org/10.1016/j.jss.2017.03.044CrossRefGoogle 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).  https://doi.org/10.1016/j.jss.2016.11.030CrossRefGoogle 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