Share:


Identification of software quality attributes from code defect prediction: a systematic literature review

    Lukas Rumbutis Affiliation
    ; Asta Slotkienė Affiliation
    ; Birutė Pliuskuvienė Affiliation

Abstract

Identifying and understanding reasons for deriving software development defects is crucial for ensuring software product quality attributes such as maintainability. This paper presents a systematic literature review and the objective is to analyze the suggestions of other authors regarding software code defect prediction using machine learning, deep learning, or other artificial intelligence methods for the identification of software quality. The systemic literature review reveals that many analyzed papers considered multiple software code defects, but they were analyzed individually. However, more is needed to identify software quality attributes. The more profound analysis of code smells indicates the significance when considering multiple detected code smells and their interconnectedness; it helps to identify the software quality sub-attributes of maintainability.

Keyword : code smell, machine learning, software quality attribute, systematic literature review

How to Cite
Rumbutis, L., Slotkienė, A., & Pliuskuvienė, B. (2024). Identification of software quality attributes from code defect prediction: a systematic literature review. New Trends in Computer Sciences, 2(1), 57–68. https://doi.org/10.3846/ntcs.2024.21305
Published in Issue
Jun 27, 2024
Abstract Views
153
PDF Downloads
120
Creative Commons License

This work is licensed under a Creative Commons Attribution 4.0 International License.

References

Agnihotri, M., & Chug, A. (2020). A systematic literature survey of software metrics, code smells, and refactoring techniques. Journal of Information Processing Systems, 16(4), 915–934. https://doi.org/10.3745/jips.04.0184

Albuquerque, D., Guimarães, E., Perkusich, M., Rique, T., Cunha, F., Almeida, H., & Perkusich, Â. (2023). On the assessment of interactive detection of code smells in practice: A controlled experiment. IEEE Access, 11, 84589–84606. https://doi.org/10.1109/access.2023.3302260

Al Hilmi, M. A., Puspaningrum, A., Darsih, Siahaan, D. O., Samosir, H. S., & Rahma, A. S. (2023). Research trends, detection methods, practices, and challenges in Code Smell: SLR. IEEE Access, 11, 129536–129551. https://doi.org/10.1109/access.2023.3334258

Alkharabsheh, K., Alawadi, S., Ignaim, K., Zanoon, N., Crespo, Y., Manso, E., & Taboada, J. A. F. (2022). Prioritization of god class design smell: A multi-criteria based approach. Journal of King Saud University – Computer and Information Sciences, 34(10), 9332–9342. https://doi.org/10.1016/j.jksuci.2022.09.011

Boutaib, S., Bechikh, S., Palomba, F., Elarbi, M., Makhlouf, M., & Saïd, L. B. (2021). Code smell detection and identification in imbalanced environments. Expert Systems with Applications, 166, Article 114076. https://doi.org/10.1016/j.eswa.2020.114076

Dewangan, S., Rao, R. S., Mishra, A., & Gupta, M. (2022). Code smell detection using ensemble machine learning algorithms. Applied Sciences, 12(20), Article 10321. https://doi.org/10.3390/app122010321

Di Nucci, D., Palomba, F., Tamburri, D. A., Serebrenik, A., & De Lucia, A. (2018). Detecting code smells using machine learning techniques: Are we there yet? In 2018 IEEE 25th International Conference on Software Analysis, Evolution and Reengineering (SANER). https://doi.org/10.1109/saner.2018.8330266

Draz, M. M., Salah, M., Abdulkader, S. N., & Gamal, M. (2021). Code smell detection using a whale optimization algorithm. Computers, Materials & Continua, 68(2), 1919–1935. https://doi.org/10.32604/cmc.2021.015586

Dybå, T., & Dingsøyr, T. (2008). Empirical studies of agile software development: A systematic review. Information & Software Technology, 50(9–10), 833–859. https://doi.org/10.1016/j.infsof.2008.01.006

Fontana, F. A., Mäntylä, M., Zanoni, M., & Marino, A. (2016). Comparing and experimenting machine learning techniques for code smell detection. Empirical Software Engineering, 21(3), 1143–1191. https://doi.org/10.1007/s10664-015-9378-4

Fowler, M., Beck, K., Brant, J., Opdyke, W., & Roberts, D. (1990). Refactoring: Improving the design of existing code. Addison Wesley.

Fowler, M. (2002). Refactoring: improving the design of existing code. In D. Wells & L. Williams (Eds.), Lecture notes in computer science (p. 256). Springer. https://doi.org/10.1007/3-540-45672-4_31

Guggulothu, T., & Moiz, S. A. (2020). Code smell detection using a multi-label classification approach. Software Quality Journal, 28(3), 1063–1086. https://doi.org/10.1007/s11219-020-09498-y

Hozano, M., Garcia, A., Fonseca, B., & De Barros Costa, E. (2018). Are you smelling it? Investigating how similar developers detect code smells. Information & Software Technology, 93, 130–146. https://doi.org/10.1016/j.infsof.2017.09.002

International Organization for Standardization. (2023). Systems and software engineering Systems and software Quality Requirements and Evaluation (ISO Standard No. ISO/IEC 25010:2023). https://www.iso.org/standard/78176.html

Ivarsson, M., & Gorschek, T. (2010). A method for evaluating rigor and industrial relevance of technology evaluations. Empirical Software Engineering, 16(3), 365–395. https://doi.org/10.1007/s10664-010-9146-4

Kaur, K., & Kaur, P. (2017). Evaluation of sampling techniques in software fault prediction using metrics and code smells. In International Conference on Advances in Computing, Communications, and Informatics, (pp. 1377–1387). IEEE. https://doi.org/10.1109/icacci.2017.8126033

Kaur, A., Kaur, K., & Jain, S. (2016). Predicting software change-proneness with code smells and class imbalance learning. International Conference on Advances in Computing, Communications and Informatics. IEEE. https://doi.org/10.1109/icacci.2016.7732136

Kessentini, W., Kessentini, M., Sahraoui, H., Bechikh, S., & Ouni, A. (2014). A cooperative parallel Search-Based software engineering approach for Code-Smells detection. IEEE Transactions on Software Engineering, 40(9), 841–861. https://doi.org/10.1109/tse.2014.2331057

Kitchenham, B., & Brereton, P. (2013). A systematic review of systematic review process research in software engineering. Information & Software Technology, 55(12), 2049–2075. https://doi.org/10.1016/j.infsof.2013.07.010

Kitchenham, B., Brereton, O. P., Budgen, D., Turner, M., Bailey, J., & Linkman, S. (2009). Systematic literature reviews in software engineering – A systematic literature review. Information & Software Technology, 51(1), 7–15. https://doi.org/10.1016/j.infsof.2008.09.009

Kovačević, A., Slivka, Ј., Vidaković, D., Grujić, K., Luburić, N., Prokić, S., & Sladić, G. (2022). Automatic detection of Long Method and God Class code smells through neural source code embeddings. Expert Systems with Applications, 204, Article 117607. https://doi.org/10.1016/j.eswa.2022.117607

Liu, H., Jin, J., Xu, Z., Zou, Y., Bu, Y., & Zhang, L. (2021). Deep learning-based code smell Detection. IEEE Transactions on Software Engineering, 1. https://doi.org/10.1109/tse.2019.2936376

Luburić, N., Prokić, S., Grujić, K., Slivka, Ј., Kovačević, A., Sladić, G., & Vidaković, D. (2023). Towards a systematic approach to manual annotation of code smells. Science of Computer Programming, 230, Article 102999. https://doi.org/10.36227/techrxiv.14159183

Mansoor, U., Kessentini, M., Maxim, B. R., & Deb, K. (2017). Multi-objective code-smells detection using good and bad design examples. Software Quality Journal, 25(2), 529–552. https://doi.org/10.1007/s11219-016-9309-7

Mhawish, M. Y., & Gupta, M. (2020). Predicting code smells and analysis of predictions: using machine learning techniques and software metrics. Journal of Computer Science and Technology, 35(6), 1428–1445. https://doi.org/10.1007/s11390-020-0323-7

Oliveira, D., Assunção, W. K. G., Garcia, A., Fonseca, B., & Ribeiro, M. (2022). Developers’ perception matters machine learning to detect developer-sensitive smells. Empirical Software Engineering, 27(7), Article 195. https://doi.org/10.1007/s10664-022-10234-2

Paiva, T., Damasceno, A., Figueiredo, E., & Sant’Anna, C. (2017). On the evaluation of code smells and detection tools. Journal of Software Engineering Research and Development, 5(1), Article 7. https://doi.org/10.1186/s40411-017-0041-1

Sae‐Lim, N., Hayashi, S., & Saeki, M. (2018). Context‐based approach to prioritize code smells for refactoring. Journal of Software: Evolution and Process, 30(6), Article e1886. https://doi.org/10.1002/smr.1886

Sahin, D., Kessentini, M., Bechikh, S., & Deb, K. (2014). Code-Smell detection as a bilevel problem. ACM Transactions on Software Engineering and Methodology, 24(1), 1–44. https://doi.org/10.1145/2675067

Sandouka, R., & Aljamaan, H. (2023). Python code smells detection using conventional machine learning models. PeerJ, 9, Article e1370. https://doi.org/10.7717/peerj-cs.1370

Singh, R., Bindal, A. K., & Kumar, A. (2019). A user feedback centric approach for detecting and mitigating god class code smell using frequent usage patterns. Journal of Communications Software and Systems, 15(3). https://doi.org/10.24138/jcomss.v15i3.720

Sousa, B. L., Bigonha, M. a. S., & Ferreira, K. a. M. (2019). An exploratory study on cooccurrence of design patterns and bad smells using software metrics. Software: Practice and Experience, 49(7), 1079–1113. https://doi.org/10.1002/spe.2697

Tufano, M., Palomba, F., Bavota, G., Oliveto, R., Di Penta, M., De Lucia, A., & Poshyvanyk, D. (2017). When and why your code starts to smell bad (and whether the smells go away). IEEE Transactions on Software Engineering, 43(11), 1063–1088. https://doi.org/10.1109/tse.2017.2653105