Code Smells Enabled by Artificial Intelligence: A Systematic Mapping

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.

[1]  Audris Mockus,et al.  Quantifying the Effect of Code Smells on Maintenance Effort , 2013, IEEE Transactions on Software Engineering.

[2]  Hui Liu,et al.  Deep Learning Based Feature Envy Detection , 2018, 2018 33rd IEEE/ACM International Conference on Automated Software Engineering (ASE).

[3]  Rudolf Ferenc,et al.  Recognizing Antipatterns and Analyzing Their Effects on Software Maintainability , 2014, ICCSA.

[4]  John D. McGregor,et al.  Corrigendum to: "A systematic mapping study of software product lines testing" [Inf. Softw. Technology 53 (5) (2011) 407-423] , 2012, Information and Software Technology.

[5]  Foutse Khomh,et al.  A Bayesian Approach for the Detection of Code and Design Smells , 2009, 2009 Ninth International Conference on Quality Software.

[6]  Jochen Kreimer,et al.  Adaptive Detection of Design Flaws , 2005, LDTA@ETAPS.

[7]  Mauricio A. Saca Refactoring improving the design of existing code , 2017, 2017 IEEE 37th Central America and Panama Convention (CONCAPAN XXXVII).

[8]  Mika Mäntylä,et al.  Comparing and experimenting machine learning techniques for code smell detection , 2015, Empirical Software Engineering.

[9]  Houari A. Sahraoui,et al.  A Cooperative Parallel Search-Based Software Engineering Approach for Code-Smells Detection , 2014, IEEE Transactions on Software Engineering.

[10]  Andrea De Lucia,et al.  Detecting code smells using machine learning techniques: Are we there yet? , 2018, 2018 IEEE 25th International Conference on Software Analysis, Evolution and Reengineering (SANER).

[11]  Kanita Karađuzović-Hadžiabdić,et al.  Comparison of Machine Learning Methods for Code Smell Detection Using Reduced Features , 2018, 2018 3rd International Conference on Computer Science and Engineering (UBMK).

[12]  Yann-Gaël Guéhéneuc,et al.  A systematic literature review on the detection of smells and their evolution in object‐oriented and service‐oriented systems , 2018, Softw. Pract. Exp..

[13]  Esperanza Manso,et al.  Software Design Smell Detection: a systematic mapping study , 2018, Software Quality Journal.

[14]  Shinji Kusumoto,et al.  Filtering clones for individual user based on machine learning analysis , 2012, 2012 6th International Workshop on Software Clones (IWSC).

[15]  Ricardo Colomo Palacios,et al.  BMR: Benchmarking Metrics Recommender for Personnel issues in Software Development Projects , 2009, Int. J. Comput. Intell. Syst..

[16]  Zsuzsanna Marian,et al.  Detecting software design defects using relational association rule mining , 2013, Knowledge and Information Systems.

[17]  Kai Petersen,et al.  Guidelines for conducting systematic mapping studies in software engineering: An update , 2015, Inf. Softw. Technol..

[18]  Lin Shi,et al.  Machine learning techniques for code smell detection: A systematic literature review and meta-analysis , 2019, Inf. Softw. Technol..

[19]  Eduardo Figueiredo,et al.  A review-based comparative study of bad smell detection tools , 2016, EASE.

[20]  Weizhong Shao,et al.  Monitor-Based Instant Software Refactoring , 2013, IEEE Transactions on Software Engineering.

[21]  Ricardo Colomo Palacios,et al.  Human and Intellectual Capital Management in the Cloud: Software Vendor Perspective , 2012, J. Univers. Comput. Sci..

[22]  Carlos Soubervielle-Montalvo,et al.  Source code metrics: A systematic mapping study , 2017, J. Syst. Softw..

[23]  Sushma Jain,et al.  A Support Vector Machine Based Approach for Code Smell Detection , 2017, 2017 International Conference on Machine Learning and Data Science (MLDS).

[24]  Abbas Rasoolzadegan Barforoush,et al.  The state of the art on design patterns: A systematic mapping of the literature , 2017, J. Syst. Softw..

[25]  Foutse Khomh,et al.  BDTEX: A GQM-based Bayesian approach for the detection of antipatterns , 2011, J. Syst. Softw..

[26]  Francesca Arcelli Fontana,et al.  Code smells and their collocations: A large-scale experiment on open-source systems , 2018, J. Syst. Softw..

[27]  Gabriele Bavota,et al.  On the diffuseness and the impact on maintainability of code smells: a large scale empirical investigation , 2018, Empirical Software Engineering.

[28]  John D. McGregor,et al.  A systematic mapping study of software product lines testing , 2011, Inf. Softw. Technol..

[29]  Gabriele Bavota,et al.  A large-scale empirical study on the lifecycle of code smell co-occurrences , 2018, Inf. Softw. Technol..

[30]  Baldoino Fonseca dos Santos Neto,et al.  Are you smelling it? Investigating how similar developers detect code smells , 2018, Inf. Softw. Technol..

[31]  Xabier Larrucea,et al.  A case analysis of enabling continuous software deployment through knowledge management , 2017, Int. J. Inf. Manag..