skip to main content
10.1145/3196398.3196423acmconferencesArticle/Chapter ViewAbstractPublication PagesicseConference Proceedingsconference-collections
research-article

Was self-admitted technical debt removal a real removal?: an in-depth perspective

Published:28 May 2018Publication History

ABSTRACT

Technical Debt (TD) has been defined as "code being not quite right yet", and its presence is often self-admitted by developers through comments. The purpose of such comments is to keep track of TD and appropriately address it when possible. Building on a previous quantitative investigation by Maldonado et al. on the removal of self-admitted technical debt (SATD), in this paper we perform an in-depth quantitative and qualitative study of how SATD is addressed in five Java open source projects. On the one hand, we look at whether SATD is "accidentally" removed, and the extent to which the SATD removal is being documented. We found that that (i) between 20% and 50% of SATD comments are accidentally removed while entire classes or methods are dropped, (ii) 8% of the SATD removal is acknowledged in commit messages, and (iii) while most of the changes addressing SATD require complex source code changes, very often SATD is addressed by specific changes to method calls or conditionals. Our results can be used to better plan TD management or learn patterns for addressing certain kinds of TD and provide recommendations to developers.

References

  1. Nicolli SR Alves, Leilane F Ribeiro, Vivyane Caires, Thiago S Mendes, and Rodrigo O Spínola. 2014. Towards an ontology of terms on technical debt. In Managing Technical Debt (MTD), 2014 Sixth International Workshop on. IEEE. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Francesca Arcelli Fontana, Mika V. Mäntylä, Marco Zanoni, and Alessandro Marino. 2016. Comparing and experimenting machine learning techniques for code smell detection. Empirical Software Engineering 21, 3 (2016), 1143--1191. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Vipin Balachandran. 2013. Reducing human effort and improving quality in peer code reviews using automatic static analysis and reviewer recommendation. In International Conference on Software Engineering. IEEE. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Gabriele Bavota, Andrea De Lucia, Massimiliano Di Penta, Rocco Oliveto, and Fabio Palomba. 2015. An experimental investigation on the innate relationship between quality and refactoring. Journal of Systems and Software (2015). Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Gabriele Bavota and Barbara Russo. 2016. A large-scale empirical study on self-admitted technical debt. In International Conference on Mining Software Repositories. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Christian Bird, Peter C Rigby, Earl T Barr, David J Hamilton, Daniel M German, and Prem Devanbu. 2009. The promises and perils of mining git. In Mining Software Repositories, 2009. MSR'09. 6th IEEE International Working Conference on. IEEE. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Nanette Brown, Yuanfang Cai, Yuepu Guo, Rick Kazman, Miryung Kim, Philippe Kruchten, Erin Lim, Alan MacCormack, Robert Nord, Ipek Ozkaya, and others. 2010. Managing technical debt in software-reliant systems. In Proceedings of the FSE/SDP workshop on Future of software engineering research. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. John Businge, Alexander Serebrenik, and Mark G. J. van den Brand. 2015. Eclipse API usage: the good and the bad. Software Quality Journal (2015). Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Michael L Collard, Huzefa H Kagdi, and Jonathan I Maletic. 2003. An XML-based lightweight C++ fact extractor. In Program Comprehension, 2003. 11th IEEE International Workshop on. IEEE. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Ward Cunningham. 1992. The WyCash Portfolio Management System. In Addendum to the Proceedings on Object-oriented Programming Systems, Languages, and Applications. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Everton da S. Maldonado, Rabe Abdalkareem, Emad Shihab, and Alexander Serebrenik. 2017. An Empirical Study on the Removal of Self-Admitted Technical Debt. In 2017 IEEE International Conference on Software Maintenance and Evolution. IEEE.Google ScholarGoogle Scholar
  12. Dario Di Nucci, Fabio Palomba, Damian A. Tamburri, Alexander Serebrenik, and Andrea De Lucia. 2018. Detecting Code Smells using Machine Learning Techniques: Are We There Yet?. In International Conference on Software Analysis, Evolution, and Reengineering. IEEE.Google ScholarGoogle ScholarCross RefCross Ref
  13. Neil A Ernst, Stephany Bellomo, Ipek Ozkaya, Robert L Nord, and Ian Gorton. 2015. Measure it? manage it? ignore it? software practitioners and technical debt. In Proceedings of the 2015 10th Joint Meeting on Foundations of Software Engineering. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Jean-Rémy Falleri, Floréal Morandat, Xavier Blanc, Matias Martinez, and Martin Monperrus. 2014. Fine-grained and accurate source code differencing. In Proceedings of the 29th ACM/IEEE international conference on Automated software engineering. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Michael Fischer, Martin Pinzger, and Harald Gall. 2003. Populating a release history database from version control and bug tracking systems. In Software Maintenance, 2003. ICSM 2003. Proceedings. International Conference on. IEEE. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Beat Fluri, Emanuel Giger, and Harald C. Gall. 2008. Discovering Patterns of Change Types. In 2008 23rd IEEE/ACM International Conference on Automated Software Engineering. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Hideaki Hata, Osamu Mizuno, and Tohru Kikuno. 2011. Historage: fine-grained version control system for java. In Proceedings of the 12th International Workshop on Principles of Software Evolution and the 7th annual ERCIM Workshop on Software Evolution. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Klaus Krippendorff. 2012. Content analysis: An introduction to its methodology. Sage.Google ScholarGoogle Scholar
  19. Philippe Kruchten, Robert L Nord, Ipek Ozkaya, and Davide Falessi. 2013. Technical debt: towards a crisper definition report on the 4th international workshop on managing technical debt. ACM SIGSOFT Software Engineering Notes (2013). Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. Erin Lim, Nitin Taksande, and Carolyn Seaman. 2012. A balancing act: what software practitioners have to say about technical debt. IEEE software (2012). Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. Everton Maldonado, Emad Shihab, and Nikolaos Tsantalis. 2017. Using natural language processing to automatically detect self-admitted technical debt. IEEE Transactions on Software Engineering (2017).Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. Everton da S Maldonado and Emad Shihab. 2015. Detecting and quantifying different types of self-admitted technical debt. In Managing Technical Debt (MTD), 2015 IEEE 7th International Workshop on. IEEE.Google ScholarGoogle ScholarCross RefCross Ref
  23. Solomon Mensah, Jacky Keung, Jeffrey Svajlenko, Kwabena Ebo Bennin, and Qing Mi. 2018. On the value of a prioritization scheme for resolving Self-admitted technical debt. Journal of Systems and Software (2018). Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. Naouel Moha, Yann-Gaël Guéhéneuc, Laurence Duchien, and Anne-Françoise Le Meur. 2010. DECOR: A Method for the Specification and Detection of Code and Design Smells. IEEE Trans. Software Eng. (2010). Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. Kai Pan, Sunghun Kim, and E. James Whitehead Jr. 2009. Toward an understanding of bug fix patterns. Empirical Software Engineering (2009). Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. Martin F. Porter. 2001. Snowball: A language for stemming algorithms. Published online. (October 2001).Google ScholarGoogle Scholar
  27. Aniket Potdar and Emad Shihab. 2014. An Exploratory Study on Self-Admitted Technical Debt. In International Conference on Software Maintenance and Evolution. IEEE Computer Society. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. Aniket Potdar and Emad Shihab. 2014. An exploratory study on self-admitted technical debt. In Software Maintenance and Evolution (ICSME), 2014 IEEE International Conference on. IEEE. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. Carolyn Seaman and Yuepu Guo. 2011. Measuring and monitoring technical debt. Advances in Computers (2011).Google ScholarGoogle Scholar
  30. Donna Spencer. 2009. Card sorting: Designing usable categories. Rosenfeld Media.Google ScholarGoogle Scholar
  31. Michele Tufano, Fabio Palomba, Gabriele Bavota, Massimiliano Di Penta, Rocco Oliveto, Andrea De Lucia, and Denys Poshyvanyk. 2016. An empirical investigation into the nature of test smells. In Proceedings of the 31st IEEE/ACM International Conference on Automated Software Engineering. Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. Michele Tufano, Fabio Palomba, Gabriele Bavota, Rocco Oliveto, Massimiliano Di Penta, Andrea De Lucia, and Denys Poshyvanyk. 2017. When and Why Your Code Starts to Smell Bad (and Whether the Smells Go Away). IEEE Trans. Software Eng. (2017). Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. Arie van Deursen, Leon Moonen, Alex Bergh, and Gerard Kok. 2001. Refactoring Test Code. In Proceedings of the 2nd International Conference on Extreme Programming and Flexible Processes in Software Engineering (XP).Google ScholarGoogle Scholar
  34. Sultan Wehaibi, Emad Shihab, and Latifa Guerrouj. 2016. Examining the impact of self-admitted technical debt on software quality. In Software Analysis, Evolution, and Reengineering (SANER), 2016 IEEE 23rd International Conference on. IEEE.Google ScholarGoogle Scholar
  35. Ruru Yue, Na Meng, and Qianxiang Wang. 2017. A Characterization Study of Repeated Bug Fixes. In 2017 IEEE International Conference on Software Maintenance and Evolution.Google ScholarGoogle ScholarCross RefCross Ref
  36. Fiorella Zampetti, Cedric Noiseux, Giuliano Antoniol, Foutse Khomh, and Massimiliano Di Penta. 2017. Recommending when Design Technical Debt Should be Self-Admitted. In 2017 IEEE International Conference on Software Maintenance and Evolution.Google ScholarGoogle ScholarCross RefCross Ref
  37. Nico Zazworka, Michele A Shaw, Forrest Shull, and Carolyn Seaman. 2011. Investigating the impact of design debt on software quality. In Proceedings of the 2nd Workshop on Managing Technical Debt. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Was self-admitted technical debt removal a real removal?: an in-depth perspective

    Recommendations

    Comments

    Login options

    Check if you have access through your login credentials or your institution to get full access on this article.

    Sign in
    • Published in

      cover image ACM Conferences
      MSR '18: Proceedings of the 15th International Conference on Mining Software Repositories
      May 2018
      627 pages
      ISBN:9781450357166
      DOI:10.1145/3196398

      Copyright © 2018 ACM

      Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      • Published: 28 May 2018

      Permissions

      Request permissions about this article.

      Request Permissions

      Check for updates

      Qualifiers

      • research-article

      Upcoming Conference

      ICSE 2025

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader