A Data Analysis Study of Code Smells within Java Repositories
Noah Lambaria, Tomas Cerny
Citation: Communication Papers of the 17th Conference on Computer Science and Intelligence Systems, M. Ganzha, L. Maciaszek, M. Paprzycki, D. Ślęzak (eds). ACSIS, Vol. 32, pages 313–318 (2022)
Abstract. Although code smells are not categorized as a bug, the results can be long-lasting and decrease both maintainability and scalability of software projects. This paper presents findings from both former and current industry individuals, aiming to detect tools that are commonly used as well as how long software developers spend on refactoring code. Based on the feedback from these individuals, a collection of smells were extracted from a small sample size of 100 Java repositories in order to validate some of the smells that are typically encountered. After analyzing these repositories, the smells typically encountered are Long Statement, Magic Number, and Unutilized Abstraction. The results of this study are applicable for developers and researchers who require insight in detecting prevalent code smells.
- M. Fowler, K. Beck, J. Brant, W. Opdyke, and D. Roberts, Refactoring: Improving the Design of Existing Code. USA: Addison-Wesley Longman Publishing Co., Inc., 1999.
- N. S. Alves, T. S. Mendes, M. G. de Mendonça, R. O. Spínola, F. Shull, and C. Seaman, “Identification and management of technical debt: A systematic mapping study,” Information and Software Technology, vol. 70, pp. 100–121, 2016. [Online]. Available: https://www.sciencedirect.com/science/article/pii/S0950584915001743
- F. A. Fontana, V. Ferme, and M. Zanoni, “Towards assessing software architecture quality by exploiting code smell relations,” in 2015 IEEE/ACM 2nd International Workshop on Software Architecture and Metrics, 2015, pp. 1–7.
- T. Paiva, A. Damasceno, E. Figueiredo, and C. Sant’Anna, “On the evaluation of code smells and detection tools,” Journal of Software Engineering Research and Development, vol. 5, p. 7, 12 2017.
- T. Sharma, “Designitejava,” Dec. 2018, https://github.com/tushartushar/DesigniteJava. [Online]. Available: https://doi.org/10.5281/zenodo.2566861
- T. Sharma, M. Fragkoulis, and D. Spinellis, “House of cards: Code smells in open-source c# repositories,” in Proceedings of the 11th ACM/IEEE International Symposium on Empirical Software Engineering and Measurement, ser. ESEM ’17. IEEE Press, 2017, p. 424–429. [Online]. Available: https://doi-org.ezproxy.baylor.edu/10.1109/ESEM.2017.57
- M. Fokaefs, N. Tsantalis, E. Stroulia, and A. Chatzigeorgiou, “Jdeodorant: identification and application of extract class refactorings,” in 2011 33rd International Conference on Software Engineering (ICSE), 2011, pp. 1037–1039.
- C. Marinescu, R. Marinescu, P. Mihancea, D. Ratiu, and R. Wettel, “iplasma: An integrated platform for quality assessment of object-oriented design.” 01 2005, pp. 77–80.
- “Sonargraph-quality: A tool for assessing and monitoring technical quality.” [Online]. Available: https://www.hello2morrow.com/products/sonargraph/quality
- G. Samarthyam, G. Suryanarayana, and T. Sharma, “Refactoring for software architecture smells,” in Proceedings of the 1st International Workshop on Software Refactoring, ser. IWoR 2016. New York, NY, USA: Association for Computing Machinery, 2016, p. 1–4. [Online]. Available: https://doi-org.ezproxy.baylor.edu/10.1145/2975945.2975946
- F. A. Fontana, V. Ferme, and M. Zanoni, “Filtering code smells detection results,” in Proceedings of the 37th International Conference on Software Engineering - Volume 2, ser. ICSE ’15. IEEE Press, 2015, p. 803–804.
- N. Munaiah, S. Kroh, C. Cabrey, and M. Nagappan, “Curating github for engineered software projects,” PeerJ Preprints 4:e2617v1, 2016.
- A. Yamashita and L. Moonen, “Do developers care about code smells? an exploratory survey,” in 2013 20th Working Conference on Reverse Engineering (WCRE), 2013, pp. 242–251.
- Y. Golubev, Z. Kurbatova, E. A. AlOmar, T. Bryksin, and M. W. Mkaouer, “One thousand and one stories: A large-scale survey of software refactoring,” in Proceedings of the 29th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering, ser. ESEC/FSE 2021. New York, NY, USA: Association for Computing Machinery, 2021, p. 1303–1313. [Online]. Available: https://doi-org.ezproxy.baylor.edu/10.1145/3468264.3473924
- V. Thakur, M. Kessentini, and T. Sharma, “Qscored: An open platform for code quality ranking and visualization,” in 2020 IEEE International Conference on Software Maintenance and Evolution (ICSME), 2020, pp. 818–821.