Skip to main content

Technical Debt Forecasting from Source Code Using Temporal Convolutional Networks

  • Conference paper
  • First Online:
Product-Focused Software Process Improvement (PROFES 2022)

Abstract

Technical Debt describes a deficit in terms of functions, architecture, or integration, which must subsequently be filled to allow a homogeneous functioning of the product itself or its dependencies. It is predominantly caused by pursuing rapid development versus a correct development procedure. Technical Debt is therefore the result of a non-optimal software development process, which if not managed promptly can compromise the quality of the software. This study presents a technical debt trend forecasting approach based on the use of a temporal convolutional network and a broad set of product and process metrics, collected commit by commit. The model was tested on the entire evolutionary history of two open-source Java software systems available on Github: Commons-codec and Commons-net. The results are excellent and demonstrate the effectiveness of the model, which could be a pioneer in developing a TD reimbursement strategy recommendation tool that can predict when a software product might become too difficult to maintain.

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 84.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 109.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.

    https://www.castsoftware.com.

  2. 2.

    https://www.sonarqube.org.

  3. 3.

    https://github.com/mauricioaniche/ck.git.

  4. 4.

    https://github.com/apache/commons-codec.

  5. 5.

    https://github.com/apache/commons-net.

  6. 6.

    https://keras.io.

  7. 7.

    https://www.tensorflow.org.

References

  1. Albawi, S., Mohammed, T.A., Al-Zawi, S.: Understanding of a convolutional neural network. In: 2017 International Conference on Engineering and Technology (ICET), pp. 1–6 (2017). https://doi.org/10.1109/ICEngTechnol.2017.8308186

  2. Alves, N.S., Mendes, T.S., de Mendonça, M.G., Spínola, R.O., Shull, F., Seaman, C.: Identification and management of technical debt: A systematic mapping study. Inf. Softw. Technol. 70, 100–121 (2016). https://doi.org/10.1016/j.infsof.2015.10.008, https://www.sciencedirect.com/science/article/pii/S0950584915001743

  3. Alves, N.S., Mendes, T.S., de Mendonça, M.G., Spínola, R.O., Shull, F., Seaman, C.: Identification and management of technical debt: a systematic mapping study. Inf. Softw. Technol. 70, 100–121 (2016)

    Article  Google Scholar 

  4. Amanatidis, T., Mittas, N., Moschou, A., Chatzigeorgiou, A., Ampatzoglou, A., Angelis, L.: Evaluating the agreement among technical debt measurement tools: building an empirical benchmark of technical debt liabilities. Empir. Softw. Eng. 25(5), 4161–4204 (2020). https://doi.org/10.1007/s10664-020-09869-w

    Article  Google Scholar 

  5. Ardimento, P., Aversano, L., Bernardi, M.L., Cimitile, M., Iammarino, M.: Using deep temporal convolutional networks to just-in-time forecast technical debt principal. J. Syst. Softw. 194, 111481 (2022). https://doi.org/10.1016/j.jss.2022.111481, https://www.sciencedirect.com/science/article/pii/S0164121222001649

  6. Aversano, L., Bernardi, M.L., Cimitile, M., Iammarino, M.: Technical debt predictive model through temporal convolutional network. In: 2021 International Joint Conference on Neural Networks (IJCNN), pp. 1–8 (2021). https://doi.org/10.1109/IJCNN52387.2021.9534423

  7. Aversano, L., Bernardi, M.L., Cimitile, M., Iammarino, M., Romanyuk, K.: Investigating on the relationships between design smells removals and refactorings. In: 15th International Conference on Software Technologiesp, pp. 212–219 (2020)

    Google Scholar 

  8. Aversano, L., Bruno, M., Di Penta, M., Falanga, A., Scognamiglio, R.: Visualizing the evolution of web services using formal concept analysis. In: Eighth International Workshop on Principles of Software Evolution (IWPSE’05), pp. 57–60 (2005). https://doi.org/10.1109/IWPSE.2005.33

  9. Aversano, L., Cerulo, L., Palumbo, C.: Mining candidate web services from legacy code. In:10th International Symposium on Web Site Evolution, 2008. WSE 2008, pp. 37–40 (2008). https://doi.org/10.1109/WSE.2008.4655393

  10. Aversano, L., Iammarino, M., Carapella, M., Vecchio, A.D., Nardi, L.: On the relationship between self-admitted technical debt removals and technical debt measures. Algorithms 13(7) (2020)). https://www.mdpi.com/1999-4893/13/7/168

  11. Avgeriou, P.C., et al.: An overview and comparison of technical debt measurement tools. IEEE Softw. 38(3), 61–71 (2021). https://doi.org/10.1109/MS.2020.3024958

    Article  Google Scholar 

  12. Chidamber, S.R., Kemerer, C.F.: A metrics suite for object oriented design. IEEE Trans. Softw. Eng. 20(6), 476–493 (1994). https://doi.org/10.1109/32.295895

    Article  Google Scholar 

  13. Cunningham, W.: The WyCash portfolio management system. In: Addendum to the Proceedings on Object-oriented Programming Systems, Languages, and Applications. ACM (1992)

    Google Scholar 

  14. de Freitas Farias, M.A., de Mendonça Neto, M.G., d. Silva, A.B., Spínola, R.O.: A contextualized vocabulary model for identifying technical debt on code comments. In: 2015 IEEE 7th International Workshop on Managing Technical Debt (MTD), pp. 25–32 (2015). https://doi.org/10.1109/MTD.2015.7332621

  15. Iammarino, M., Zampetti, F., Aversano, L., Di Penta, M.: An empirical study on the co-occurrence between refactoring actions and self-admitted technical debt removal. J. Syst. Softw. 178, 110976 (2021). https://doi.org/10.1016/j.jss.2021.110976, https://www.sciencedirect.com/science/article/pii/S016412122100073X

  16. Iammarino, M., Zampetti, F., Aversano, L., Di Penta, M.: An empirical study on the co-occurrence between refactoring actions and self-admitted technical debt removal. J. Syst. Softw. 178 (2021). https://doi.org/10.1016/j.jss.2021.110976

  17. Köhn, H.F., Hubert, L.J.: Hierarchical Cluster Analysis, pp. 1–13 Wiley StatsRef: Statistics Reference Online (2014)

    Google Scholar 

  18. Letouzey, J.: The sqale method for evaluating technical debt. In: 2012 Third International Workshop on Managing Technical Debt (MTD), pp. 31–36 (2012). https://doi.org/10.1109/MTD.2012.6225997

  19. Li, Z., Avgeriou, P., Liang, P.: A systematic mapping study on technical debt and its management. J. Syst. Softw. 101, 193–220 (2015). https://doi.org/10.1016/j.jss.2014.12.027, https://www.sciencedirect.com/science/article/pii/S0164121214002854

  20. Li, Z., Liang, P., Avgeriou, P., Guelfi, N., Ampatzoglou, A.: An empirical investigation of modularity metrics for indicating architectural technical debt. In: Proceedings of the 10th International ACM Sigsoft Conference on Quality of Software Architectures, pp. 119–128. Association for Computing Machinery, New York, NY, USA (2014). https://doi.org/10.1145/2602576.2602581, https://doi.org/10.1145/2602576.2602581

  21. Skourletopoulos, G., Mavromoustakis, C.X., Bahsoon, R., Mastorakis, G., Pallis, E.: Predicting and quantifying the technical debt in cloud software engineering. In: 2014 IEEE 19th International Workshop on Computer Aided Modeling and Design of Communication Links and Networks (CAMAD), pp. 36–40 (2014). https://doi.org/10.1109/CAMAD.2014.7033201

  22. Tsoukalas, D., Jankovic, M., Siavvas, M., Kehagias, D., Chatzigeorgiou, A., Tzovaras, D.: On the applicability of time series models for technical debt forecasting. In: 15th China-Europe International Symposium on Software Engineering Education (2019)

    Google Scholar 

  23. Tsoukalas, D., Kehagias, D., Siavvas, M., Chatzigeorgiou, A.: Technical debt forecasting: an empirical study on open-source repositories. J. Syst. Softw. 170, 110777 (2020). https://doi.org/10.1016/j.jss.2020.110777, https://www.sciencedirect.com/science/article/pii/S0164121220301904

  24. Tsoukalas, D., Mathioudaki, M., Siavvas, M., Kehagias, D., Chatzigeorgiou, A.: A clustering approach towards cross-project technical debt forecasting. SN Comput. Sci. 2(1), 1–30 (2021). https://doi.org/10.1007/s42979-020-00408-4

    Article  Google Scholar 

  25. Wehaibi, S., Shihab, E., Guerrouj, L.: Examining the impact of self-admitted technical debt on software quality. In: 2016 IEEE 23rd International Conference on Software Analysis, Evolution, and Reengineering (SANER), vol. 1, pp. 179–188 (2016). https://doi.org/10.1109/SANER.2016.72

  26. Yang, Z., Yang, D., Dyer, C., He, X., Smola, A., Hovy, E.: Hierarchical attention networks for document classification. In: Proceedings of the 2016 Conference of the North American Chapter of the Association for Computational Linguistics: Human Language Technologies, pp. 1480–1489. Association for Computational Linguistics, San Diego, California (Jun 2016). https://doi.org/10.18653/v1/N16-1174, https://www.aclweb.org/anthology/N16-1174

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Martina Iammarino .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2022 The Author(s), under exclusive license to Springer Nature Switzerland AG

About this paper

Check for updates. Verify currency and authenticity via CrossMark

Cite this paper

Lerina, A., Bernardi, M.L., Cimitile, M., Iammarino, M. (2022). Technical Debt Forecasting from Source Code Using Temporal Convolutional Networks. In: Taibi, D., Kuhrmann, M., Mikkonen, T., Klünder, J., Abrahamsson, P. (eds) Product-Focused Software Process Improvement. PROFES 2022. Lecture Notes in Computer Science, vol 13709. Springer, Cham. https://doi.org/10.1007/978-3-031-21388-5_43

Download citation

  • DOI: https://doi.org/10.1007/978-3-031-21388-5_43

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-031-21387-8

  • Online ISBN: 978-3-031-21388-5

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics