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

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


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.
Published in Issue
Jun 27, 2024
Abstract Views
PDF Downloads
Creative Commons License

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


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.

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.

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.

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.

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.

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

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).

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.

Dybå, T., & Dingsøyr, T. (2008). Empirical studies of agile software development: A systematic review. Information & Software Technology, 50(9–10), 833–859.

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.

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.

Guggulothu, T., & Moiz, S. A. (2020). Code smell detection using a multi-label classification approach. Software Quality Journal, 28(3), 1063–1086.

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.

International Organization for Standardization. (2023). Systems and software engineering Systems and software Quality Requirements and Evaluation (ISO Standard No. ISO/IEC 25010:2023).

Ivarsson, M., & Gorschek, T. (2010). A method for evaluating rigor and industrial relevance of technology evaluations. Empirical Software Engineering, 16(3), 365–395.

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.

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.

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.

Kitchenham, B., & Brereton, P. (2013). A systematic review of systematic review process research in software engineering. Information & Software Technology, 55(12), 2049–2075.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

Sandouka, R., & Aljamaan, H. (2023). Python code smells detection using conventional machine learning models. PeerJ, 9, Article e1370.

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).

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.

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.