Debt Detection Tool
Debt Detection Tool
ABSTRACT
In software projects, technical debt metaphor is used to describe
the situation where developers and managers have to accept com- ACM Reference Format:
promises in long-term software quality to achieve short-term goals. Zhongxin Liu, Qiao Huang, Xin Xia, Emad Shihab, David Lo, and Shanping
There are many types of technical debt, and self-admitted technical Li. 2018. SATD Detector: A Text-Mining-Based Self-Admitted Technical
debt (SATD) was proposed recently to consider debt that is intro- Debt Detection Tool. In ICSE ’18 Companion: 40th International Conference
duced intentionally (e.g., through temporaryfi x) and admitted by on Software Engineering , May 27-June 3, 2018, Gothenburg, Sweden. ACM,
developers themselves. Previous work has shown that SATD can New York, NY, USA, 4 pages. https://doi.org/10.1145/3183440.3183478
be successfully detected using source code comments. However,
most current state-of-the-art approaches identify SATD comments 1 INTRODUCTION
through pattern matching, which achieve high precision but very In real-world software projects, developers and managers some-
low recall. That means they may miss many SATD comments and times have to make tradeoffs between long-term code quality and
are not practical enough. In this paper, we propose SATD Detector, short-term revenue due to various reasons (e.g., cost reduction,
a tool that is able to (i) automatically detect SATD comments using market pressure, and tight project schedule). Technical debt, which
text mining and (ii) highlight, list and manage detected comments is introduced by Cunningham [2], is a metaphor used to describe
in an integrated development environment (IDE). This tool consists this kind of situation. It has been shown by prior work that tech-
of a Java library and an Eclipse plug-in. The Java library is the nical debt is common, unavoidable and may degrade code quality
back-end, which provides command-line interfaces and Java APIs and increase software complexity in the future [5, 11]. Moreover,
to re-train the text mining model using users’ data and automati- technical debt is not always visible, i.e., it may only be known to
cally detect SATD comments using either the build-in model or a some specific people but not those who eventually pay for it. There-
user-specified model. The Eclipse plug-in, which is the front-end, fore, many studies have been conducted to enable the detection
first leverages our pre-trained composite classifier to detect SATD and management of technical debt.
comments, and then highlights and marks these detected comments The concept of self-admitted technical debt (SATD) is proposed
in the source code editor of Eclipse. In addition, the Eclipse plug-in by Potdar and Shihab [8], which considers the technical debt that is
provides a view in IDE which collects all detected comments for intentionally introduced (e.g., in the form of temporary workaround)
management. and admitted by developers themselves. In particular, self-admitted
Demo URL: https://youtu.be/sn4gU2qhGm0 technical debt is used to describe the situation where developers
Java library download: https://git.io/vNdnY know that current implementation is not optimal and record this
Eclipse plug-in download: https://goo.gl/ZzjBzp in source code comments. For example, one comment in the open
source project “JEdit” mentions that “Need some format checking
CCS CONCEPTS here”. This comment indicates that developers admitted that the
• Software and its engineering → Software maintenance tools; corresponding code is defective and requires format checking. A
previous study [11] shows that although the percentage of SATD in
KEYWORDS a project is not high, it can negatively impact the maintenance of a
Self-admitted technical debt, SATD detection, Eclipse plug-in project. Detecting and managing SATD can remind developers and
managers about the existence of SATD, help them plan to discharge
Permission to make digital or hard copies of part or all of this work for personal or it and hence result in software quality improvement.
classroom use is granted without fee provided that copies are not made or distributed Prior work also shows that SATD can be successfully detected
for profit or commercial advantage and that copies bear this notice and the full citation
on thefi rst page. Copyrights for third-party components of this work must be honored. using source code comments [8]. However, most of the previous
For all other uses, contact the owner/author(s). studies detected SATD by manually classifying comments [8] or
ICSE ’18 Companion, May 27-June 3, 2018, Gothenburg, Sweden using the 62 SATD comment patterns [1, 11] which are manually
© 2018 Copyright held by the owner/author(s).
ACM ISBN 978-1-4503-5663-3/18/05. derived by Potdar and Shihab [8]. Approaches that involve manual
https://doi.org/10.1145/3183440.3183478 classification of comments require much human effort, and thus
9
ICSE ’18 Companion, May 27-June 3, 2018, Gothenburg, Sweden Liu et al.
%&
* )
' (
!"# $
10
SATD Detector: A Text-Mining-Based SATD Tool ICSE ’18 Companion, May 27-June 3, 2018, Gothenburg, Sweden
11
ICSE ’18 Companion, May 27-June 3, 2018, Gothenburg, Sweden Liu et al.
12