The detection of code smell on software development: a mapping study

Context: Although Code Smell can't cause problems with execution of project code, Code Smell can cause some potential problems of maintainability and understandability on the software projects. Meanwhile, as for the research of code smell, current research results pay attention to only several specific Code Smells, and then don't have a comprehensive detection on Code Smell. Objective: To investigate what the objective of Code Smell study is, and to find what kinds of code smells could the detection tools of code smell detect. Methods: According to the Guidelines of Kithenham, we carry out a mapping study about 22 code smells, searching the relevant papers till 2015. Results: Through the process of mapping study, 286 papers are finally included and then classified into our data records. Conclusion: Referring to detection tools, firstly they only take notice of several specific Code Smells, because these code smells can be easily measured in term of quantification. Secondly, experiment systems of these papers are almost lab projects and industrial open source not the industrial closed source projects. Thirdly, the size of most detected lab projects are under 30 KLOC. In the future, we will focus efforts on detection of Code Smells that can't be easily detected, what's more, we will put our studies under a comprehensive environment, using three types of project: lab project, open source industrial project and closed source industrial project.

[1]  Beijun Shen,et al.  Code Bad Smell Detection through Evolutionary Data Mining , 2015, 2015 ACM/IEEE International Symposium on Empirical Software Engineering and Measurement (ESEM).

[2]  C.J.H. Mann,et al.  Object-Oriented Metrics in Practice: Using Software Metrics to Characterize, Evaluate, and Improve the Design of Object-Oriented Systems , 2007 .

[3]  M.J. Munro,et al.  Product Metrics for Automatic Identification of "Bad Smell" Design Problems in Java Source-Code , 2005, 11th IEEE International Software Metrics Symposium (METRICS'05).

[4]  Daniela Cruzes,et al.  Are all code smells harmful? A study of God Classes and Brain Classes in the evolution of three open source systems , 2010, 2010 IEEE International Conference on Software Maintenance.

[5]  Eleni Stroulia,et al.  JDeodorant: identification and application of extract class refactorings , 2011, 2011 33rd International Conference on Software Engineering (ICSE).

[6]  Tore Dybå,et al.  Empirical studies of agile software development: A systematic review , 2008, Inf. Softw. Technol..

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

[8]  Francesca Arcelli Fontana,et al.  An Experience Report on Using Code Smells Detection Tools , 2011, 2011 IEEE Fourth International Conference on Software Testing, Verification and Validation Workshops.

[9]  Peng Liang,et al.  Application of knowledge-based approaches in software architecture: A systematic mapping study , 2013, Inf. Softw. Technol..

[10]  Yi Sun,et al.  Some Code Smells Have a Significant but Small Effect on Faults , 2014, TSEM.

[11]  P. Danphitsanuphan,et al.  Code Smell Detecting Tool and Code Smell-Structure Bug Relationship , 2012, 2012 Spring Congress on Engineering and Technology.

[12]  Mika Mäntylä,et al.  Bad smells - humans as code critics , 2004, 20th IEEE International Conference on Software Maintenance, 2004. Proceedings..

[13]  Pearl Brereton,et al.  Performing systematic literature reviews in software engineering , 2006, ICSE.

[14]  Alexander Chatzigeorgiou,et al.  JDeodorant: Identification and Removal of Feature Envy Bad Smells , 2007, ICSM.

[15]  Forrest Shull,et al.  Domain-specific tailoring of code smells: an empirical study , 2010, 2010 ACM/IEEE 32nd International Conference on Software Engineering.

[16]  Cristina Marinescu,et al.  iPlasma: An Integrated Platform for Quality Assessment of Object-Oriented Design , 2005, ICSM.

[17]  Forrest Shull,et al.  Building empirical support for automated code smell detection , 2010, ESEM '10.

[18]  Kalyanmoy Deb,et al.  Code-Smell Detection as a Bilevel Problem , 2014, TSEM.

[19]  Gabriele Bavota,et al.  Mining Version Histories for Detecting Code Smells , 2015, IEEE Transactions on Software Engineering.

[20]  Yann-Gaël Guéhéneuc,et al.  DECOR: A Method for the Specification and Detection of Code and Design Smells , 2010, IEEE Transactions on Software Engineering.