Automated Identification of On-hold Self-admitted Technical Debt
Rungroj Maipradit, Bin Lin, Csaba Nagy, Gabriele Bavota, Michele, Lanza, Hideaki Hata, Kenichi Matsumoto

TL;DR
This paper presents a machine learning and regex-based approach to automatically identify and classify 'On-hold' self-admitted technical debt in code comments, and determine if such debt is still relevant or superfluous.
Contribution
It introduces a novel method combining regex and machine learning to detect, classify, and validate 'On-hold' SATD instances, including their relevance status.
Findings
Successfully identified 'On-hold' SATD instances in open source projects.
Effectively distinguished between 'On-hold' and 'cross-reference' comments.
Detected superfluous SATD that can be removed, confirmed by developers.
Abstract
Modern software is developed under considerable time pressure, which implies that developers more often than not have to resort to compromises when it comes to code that is well written and code that just does the job. This has led over the past decades to the concept of "technical debt", a short-term hack that potentially generates long-term maintenance problems. Self-admitted technical debt (SATD) is a particular form of technical debt: developers consciously perform the hack but also document it in the code by adding comments as a reminder (or as an admission of guilt). We focus on a specific type of SATD, namely "On-hold" SATD, in which developers document in their comments the need to halt an implementation task due to conditions outside of their scope of work (e.g., an open issue must be closed before a function can be implemented). We present an approach, based on regular…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsSoftware Engineering Research · Software Reliability and Analysis Research · Software Engineering Techniques and Practices
