Skip to main content
Log in

Machine Learning for Software Technical Debt Detection

  • ARTIFICIAL INTELLIGENCE
  • Published:
Journal of Computer and Systems Sciences International Aims and scope

Abstract

The problem of technical debt arises when part of software source code is upgrading not directly, but is fixed in the second place as outdated. Three corresponding models are presented. Machine learning is used to find code smells. The effectiveness of the approach for specific data is established and the prospect of expanding to a greater number of different cases is outlined.

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

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

Notes

  1. https://www.sonarsource.com/.

  2. https://www.designite-tools.com/.

  3. https://github.com/tushartushar/DesigniteJava/.

  4. https://doi.org/10.5281/zenodo.7612725/.

  5. https://radon.readthedocs.io/en/latest/intro.html#cyclomatic-complexity/.

  6. https://github.com/heartexlabs/label-studio/.

  7. https://github.com/apache/ant.git, f61ac1296.

  8. https://github.com/apache/drill.git, 85d270f3.

  9. https://github.com/google/error-prone.git, 54fa3f38.

  10. https://github.com/apache/giraph.git, 2c63aa23.

  11. https://github.com/apache/hive.git, de0a7ecb.

  12. https://github.com/google/truth.git, eaddc49f.

REFERENCES

  1. M. Fowler, Refactoring: Improving the Design of Existing Code (Addison-Wesley, Boston, Mass., 1999).

    Google Scholar 

  2. V. V. Kachanov, M. K. Ermakov, G. A. Pankratenko, A. V. Spiridonov, A. S. Volkov, and S. I. Markov, “Technical debt in the software development lifecycle: Code smells,” Tr. Inst. Sist. Program. Ross. Akad. Nauk 33 (6), 95–110 (2021).

    Google Scholar 

  3. M. Tufano, F. Palomba, G. Bavota, et al., “When and why your code starts to smell bad,” in IEEE/ACM 37th Int. Conf. on Software Engineering (Florence, Italy, 2015), pp. 403–414.

  4. P. Kokol, M. Kokol, and S. Zagoranski, “Code smells: A synthetic narrative review,” 2021. https://arxiv.org/abs/2103.01088. Accessed January 25, 2023.

  5. F. A. Fontana and M. Zanoni, “Code smell severity classification using machine learning techniques,” Knowledge-Based Syst. 128, 43–58 (2017).

    Article  Google Scholar 

  6. A. Barbez, F. Khomh, and Y. G. Guéhéneuc, “A machine-learning based ensemble method for anti-patterns detection,” J. Syst. Software 161, 110486 (2020).

  7. T. Sharma, V. Efstathiou, P. Louridas, et al., “On the feasibility of transfer-learning code smells using deep learning,” 2019. https://arxiv.org/abs/1904.03031. Accessed January 25, 2023.

  8. L. Madeyski and T. Lewowski, “MLCQ: Industry-relevant code smell data set,” in Proc. Evaluation and Assessment in Software Engineering (ACM, New York, 2020), pp. 342–347.

    Google Scholar 

  9. F. Palomba, G. Bavota, M. Di Pentaet, et al., “A large-scale empirical study on the lifecycle of code smell co-occurrences,” Inf. Software Technol. 99, 1–10 (2018).

    Article  Google Scholar 

  10. F. Arcelli Fontana, M. Mantyla, M. Zanoniet, et al., “Comparing and experimenting machine learning techniques for code smell detection,” Empirical Software Eng. 21, 1143–1191 (2016).

    Article  Google Scholar 

  11. V. Lenarduzzi, N. Saarimäki,D. Taibi, “The technical debt dataset,” in Proc. 15th Int. Conf. on Predictive Models and Data Analytics in Software Engineering (Recife, Brazil, 2019), pp. 2–11.

  12. Y. Wang, H. Yu, and Zh. Zhu, et al., “Automatic software refactoring via weighted clustering in method-level networks,” IEEE Trans. Software Eng. 44 (3), 202–236 (2017).

    Article  Google Scholar 

  13. R. M. Karampatsis and C. Sutton, “How often do single-statement bugs occur? The ManySStuBs4J Dataset,” in Proc. 17th Int. Conf. on Mining Software Repositories (Online), 2020, pp. 573–577.

  14. F. Palomba, D. Di Nucci, M. Tufano, et al., “Landfill: An open dataset of code smells with public evaluation,” in IEEE/ACM 12th Working Conf. on Mining Software Repositories (IEEE, Florence, Italy, 2015), pp. 482–485.

  15. F. Palomba, G. Bavota, M. Di Pentaet, et al., “On the diffuseness and the impact on maintainability of code smells: A large scale empirical investigation,” in Proc. 40th Int. Conf. on Software Engineering (Gothenburg, Sweden, 2018), pp. 482–482.

  16. Qualitas Corpus. http://qualitascorpus.com/docs/history/20120401.html. Accessed January 25, 2023.

Download references

Author information

Authors and Affiliations

Authors

Corresponding authors

Correspondence to V. V. Kachanov, S. I. Markov or V. I. Tsurkov.

Ethics declarations

The authors declare that they have no conflicts of interest.

Additional information

Translated by V. V. Kachanov

Publisher’s Note.

Pleiades Publishing remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Kachanov, V.V., Markov, S.I. & Tsurkov, V.I. Machine Learning for Software Technical Debt Detection. J. Comput. Syst. Sci. Int. 62, 689–694 (2023). https://doi.org/10.1134/S106423072304007X

Download citation

  • Received:

  • Revised:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1134/S106423072304007X

Navigation