Skip to main content

A Review on Search-Based Tools and Techniques to Identify Bad Code Smells in Object-Oriented Systems

  • Conference paper
  • First Online:
Harmony Search and Nature Inspired Optimization Algorithms

Part of the book series: Advances in Intelligent Systems and Computing ((AISC,volume 741))

Abstract

Researchers have provided various techniques and tools in the past few years for identification of code smells. Due to their changing outcomes and features, the classification, comparison, and evaluation of this existing code smell detection techniques and tool are imperative. This paper presents the current state of the art in the area of approaches that use search-based techniques to identify code smell from the source code of object-oriented systems. The classification of code bad smells approaches is done on the basis of their detection and analysis method. The results of selected techniques were analyzed. The observations and recommendations were presented after critical analysis of existing code smell detection approaches. These observations and recommendations can help the researchers and practitioners working in the area of designing a tool/technique for code smell detection.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 169.00
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 219.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Notes

  1. 1.

    http://ganttproject.biz/index.php

  2. 2.

    http://ptolemy.cs.iastate.edu/design-study/#healthwatcher

  3. 3.

    http://jhotdraw.org

References

  1. Lehman, M.M., Belady, L.A. (eds.): Program Evolution: Processes of Software Change. Academic Press Professional Inc, San Diego, CA, USA (1985)

    Google Scholar 

  2. Eick, S.G., Graves, T.L., Karr, A.F., Marron, J.S., Mockus, A.: Does code decay? assessing the evidence from change management data. IEEE Trans. Softw. Eng. 27(1), 1–12 (2001)

    Article  Google Scholar 

  3. Sommerville, I. (ed.): Software Engineering, 7th edn. Addison-Wesley, Boston, Mass.; London (2004)

    MATH  Google Scholar 

  4. Olbrich, S., Cruzes, D.S., Basili, V., Zazworka, N.: The evolution and impact of code smells: A case study of two open source systems. In: Proceedings of the 2009 3rd International Symposium on Empirical Software Engineering and Measurement, ESEM ’09, 390–400, Washington, DC, USA, 2009. IEEE Computer Society

    Google Scholar 

  5. Fowler, M.: Refactoring: Improving the Design of Existing Code, pp. 256–256. Springer Berlin Heidelberg, Berlin, Heidelberg (2002)

    Google Scholar 

  6. Mäntylä, M., Vanhanen, J., Lassenius, C.: A taxonomy and an initial empirical study of bad smells in code. In: Proceedings of the International Conference on Software Maintenance, ICSM ’03, 381–384, Washington, DC, USA, 2003. IEEE Computer Society

    Google Scholar 

  7. Opdyke, W.F.: Refactoring Object-oriented Frameworks. Ph.D. thesis, Champaign, IL, USA, 1992. UMI Order No. GAX93-05645

    Google Scholar 

  8. Zhang, M., Hall, T., Baddoo, N.: Code bad smells: a review of current knowledge. J. Softw. Maint. Evol. 23(3), 179–202 (2011)

    Article  Google Scholar 

  9. Wangberg, R.: A literature review on code smells and refactoring. Ph.D. thesis, Norway, (2010)

    Google Scholar 

  10. Alves, N.S.R., Mendes, T.S., de Mendona, M.G., Spnola, R.O., Shull, F., Seaman, C.: Identification and management of technical debt: A systematic mapping study. Information and Software Technology, 70(Supplement C), 100–21 (2016)

    Google Scholar 

  11. Roy, C.K., Cordy, J.R., Koschke, Rainer: Comparison and evaluation of code clone detection techniques and tools: a qualitative approach. Sci. Comput. Program. 74(7), 470–495 (2009)

    Article  MathSciNet  Google Scholar 

  12. Rasool, G., Arshad, Zeeshan: A review of code smell mining techniques. J. Softw. Evol. Process 27(11), 867–895 (2015)

    Article  Google Scholar 

  13. Gupta, A., Suri, B., Misra, S.: A Systematic literature review: code bad smells in java source code, pp. 665–682. Springer International Publishing, Cham, (2017)

    Google Scholar 

  14. Kessentini, W., Kessentini, M., Sahraoui, H., Bechikh, S., Ouni, Ali: A cooperative parallel search-based software engineering approach for code-smells detection. IEEE Trans. Software Eng. 40(9), 841–861 (2014)

    Article  Google Scholar 

  15. Travassos, G., Shull, F., Fredericks, M., Basili, V.R.: Detecting defects in object-oriented designs: using reading techniques to increase software quality. In: ACM Sigplan Notices, vol. 34, pp. 47–56. ACM, 1999

    Google Scholar 

  16. Ganea, G., Verebi, I., Marinescu, Radu: Continuous quality assessment with incode. Sci. Comput. Program. 134, 19–36 (2017)

    Article  Google Scholar 

  17. Fard, A.M., Mesbah, A.: Jsnose: detecting javascript code smells. In: Source Code Analysis and Manipulation (SCAM), 2013 IEEE 13th International Working Conference on, 116–125. IEEE, 2013

    Google Scholar 

  18. Marinescu, R., Ratiu, D.: Quantifying the quality of object-oriented design: The factor-strategy model. In: Reverse Engineering, 2004. Proceedings. 11th Working Conference on, 192–201. IEEE, 2004

    Google Scholar 

  19. Mathur, N.: Java smell detector. (2011)

    Google Scholar 

  20. Simon, F., Steinbruckner, F., Lewerentz, C.: Metrics based refactoring. In: Software Maintenance and Reengineering, 2001. Fifth European Conference on, 30–38. IEEE, 2001

    Google Scholar 

  21. Abdelmoez, W., Kosba, E., Iesa, A.F.: Risk-based code smells detection tool. In: The International Conference on Computing Technology and Information Management (ICCTIM), 148. Society of Digital Information and Wireless Communication, 2014

    Google Scholar 

  22. Dhiman, G., Kumar, V.: Spotted hyena optimizer: a novel bio-inspired based metaheuristic technique for engineering applications. Adv. Eng. Software 114(Supplement C), 48 – 70 (2017)

    Google Scholar 

  23. Chandrawat, R.K. Kumar, R., Garg, B.P., Dhiman, G., Kumar, S.: An analysis of modeling and optimization production cost through fuzzy linear programming problem with symmetric and right angle triangular fuzzy number. In: Proceedings of Sixth International Conference on Soft Computing for Problem Solving, pp. 197–211. Springer, 2017

    Google Scholar 

  24. Dhiman, G, Kaur, A.: Spotted hyena optimizer for solving engineering design problems. In: International Conference on Machine Learning and Data Science, pp. 114–119. IEEE, In press

    Google Scholar 

  25. Dhiman, G., Amandeep, K.: A hybrid algorithm based on particle swarm and spotted hyena optimizer for global optimization. Springer, In: Advances in Intelligent Systems and Computing (2018). In press

    Google Scholar 

  26. Jancke, S., Speicher D.: Smell Detection in Context. University of Bonn, (2010)

    Google Scholar 

  27. Khomh, F., Vaucher, S., Guéhéneuc, Y.-G., Sahraoui, H.: Bdtex: a gqm-based bayesian approach for the detection of antipatterns. J. Syst. Software 84(4), 559–572 (2011)

    Article  Google Scholar 

  28. Maiga, A., Nasir Ali, Neelesh Bhattacharya, Aminata Sabane, Yann-Gael Gueheneuc, and Esma Aimeur. Smurf: A svm-based incremental anti-pattern detection approach. In Reverse engineering (WCRE), 2012 19th working conference on, 466–475. IEEE, 2012

    Google Scholar 

  29. Danphitsanuphan, P., Suwantada, T.: Code smell detecting tool and code smell-structure bug relationship. In: Engineering and Technology (S-CET), 2012 Spring Congress on, 1–5. IEEE, 2012

    Google Scholar 

  30. Palomba, F., Bavota, G., Di Penta, M., Oliveto, R., De Lucia, A., Poshyvanyk, D.: Detecting bad smells in source code using change history information. In: Automated software engineering (ASE), 2013 IEEE/ACM 28th international conference on, 268–278. IEEE, 2013

    Google Scholar 

  31. Fontana, F.A., Zanoni, M., Marino, A., Mantyla, M.V.: Code smell detection: towards a machine learning-based approach. In: Software Maintenance (ICSM), 2013 29th IEEE International Conference on, 396–399. IEEE, 2013

    Google Scholar 

  32. Ligu, E., Chatzigeorgiou, A., Chaikalis, T., Ygeionomakis, N.: Identification of refused bequest code smells. In: Software Maintenance (ICSM), 2013 29th IEEE International Conference on, 392–395. IEEE, 2013

    Google Scholar 

  33. Liu, H., Guo, X., Shao, W.: Monitor-based instant software refactoring. IEEE Trans. Software Eng. 39(8), 1112–1126 (2013)

    Article  Google Scholar 

  34. Kaur, A., Raperia, H.: Implementation and analysis of a refactoring tool for detecting code smells. Int. J. Comput. Technol. 6(1), 242–247 (2013)

    Article  Google Scholar 

  35. Sahin, D., Kessentini, M., Bechikh, S., Deb, K.: Code-smell detection as a bilevel problem. ACM Trans. Software Eng. Meth. (TOSEM) 24(1), 6 (2014)

    Article  Google Scholar 

  36. Palomba, F., Bavota, G., Di Penta, M., Oliveto, R., Poshyvanyk, Denys, De Lucia, A.: Mining version histories for detecting code smells. IEEE Transactions on Software Engineering 41(5), 462–489 (2015)

    Article  Google Scholar 

  37. Ouni, A., Kessentini, M., Sahraoui, H., Inoue, K., Hamdi, Mohamed Salah: Improving multi-objective code-smells correction using development history. J. Syst. Software 105, 18–39 (2015)

    Article  Google Scholar 

  38. Hozano, M., Ferreira, H., Silva, I., Fonseca, B., Costa, E.: Using developers’ feedback to improve code smell detection. In: Proceedings of the 30th Annual ACM Symposium on Applied Computing, 1661–1663. ACM, 2015

    Google Scholar 

  39. Fu, S., Shen, B.: Code bad smell detection through evolutionary data mining. In: Empirical Software Engineering and Measurement (ESEM), 2015 ACM/IEEE International Symposium on, 1–9. IEEE, 2015

    Google Scholar 

  40. Fontana, F.A., Mäntylä, M.V., Zanoni, M., Marino, A.: A comparing and experimenting machine learning techniques for code smell detection. Empirical Software Eng. 21(3), 1143–1191 (2016)

    Article  Google Scholar 

  41. Saranya, G., Nehemiah, H.K., Kannan, A., Nithya, V.: Model level code smell detection using egapso based on similarity measures. Alexandria Eng. J. (2017)

    Google Scholar 

  42. Kaur, A., Jain, S., Goel, S.: A support vector machine based approach for code smell detection. In: International Conference on Machine Learning and Data Science, 9–14. IEEE, In press

    Google Scholar 

  43. Fontana, F.A., Braione, P., Zanoni, M.: Automatic detection of bad smells in code: an experimental assessment. J. Object Technol. 11(2), 5–1 (2012)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Gaurav Dhiman .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2019 Springer Nature Singapore Pte Ltd.

About this paper

Check for updates. Verify currency and authenticity via CrossMark

Cite this paper

Kaur, A., Dhiman, G. (2019). A Review on Search-Based Tools and Techniques to Identify Bad Code Smells in Object-Oriented Systems. In: Yadav, N., Yadav, A., Bansal, J., Deep, K., Kim, J. (eds) Harmony Search and Nature Inspired Optimization Algorithms. Advances in Intelligent Systems and Computing, vol 741. Springer, Singapore. https://doi.org/10.1007/978-981-13-0761-4_86

Download citation

Publish with us

Policies and ethics