ALWEHAIBI, SULTAN (2017) On the Relationship Between Self-Admitted Technical Debt and Software Quality. Masters thesis, Concordia University.
Preview |
Text (application/pdf)
8MBWehaibi_MASc_S2017.pdf - Accepted Version Available under License Spectrum Terms of Access. |
Abstract
Developers settle for a non-optimal solution under pressure to meet deadlines and quotas despite the potential pitfalls that might ensue at later stages in development, which has been referred to as “technical debt.” And like its financial analogue, if not carefully monitored and mediated, technical debt can compromise the very project it was intended to expedite. Several approaches have been proposed to aid developers in tracking the technical debt they incur. Traditionally, developers have relied on metric-based approaches, which use static analysis tools to identify technical debt based on thresholds defined on object-oriented metrics, e.g. code smells. Another technique, pioneered in a recent study, leverages source code comments to detect (self-admitted) technical debt. Therefore, in this thesis we use empirical studies to examine how self-admitted technical debt and code smells (God Classes) relate to software quality.
Preliminarily, we examine the relationship between self-admitted technical debt and software quality for five open-source projects. To measure this, we take into account three criteria commonly associated with quality: (i) on the file level, the relationship between defects and self-admitted technical debt (SATD); (ii) on the change level, the potential of SATD to introduce future defects and (iii) the complexity SATD changes impose on the system. The results of our study indicate that: (i) SATD files tend to have less defects than non-SATD files and (ii) SATD changes make the system less susceptible to future defects than non-SATD changes do, though (iii) SATD changes are more difficult to execute.
Until the advent of SATD, god classes were used to detect technical debt, and though others have studied the impact of metric-based approaches on software quality, this work has been limited to a small number of systems. Therefore, we conduct an extensive investigation that compares the relationship between both approaches and software quality on a larger number of projects. We assess how code smells—in particular, god classes (metric-based approach)—and SATD (comment-based approach) are associated with software quality by determining: (i) whether god and SATD files have more defects than non-god and non-SATD files, (ii) whether god and SATD changes induce future defects at a higher rate than non-god and non-SATD changes, (iii) whether god and SATD changes are more difficult to perform than non-god and non-SATD changes and (iv) how much the metric- and comment-based approaches to technical debt file identification overlap. Our results indicate that: (i) neither god nor SATD files are correlated with defects, (ii) introduction of future defects is higher for god- and SATD-related changes, (iii) god- and SATD-related changes are more difficult to perform and (iv) the metric-comment technical debt file overlap ranges from 11% to 34%.
Overall, our study indicates that although technical debt—whether measured by the SATD or god classes—may have negative effects, these do not include file-level defects. Rather, the detriments of technical debt are its tendencies to introduce future defects at an elevated rate and to make the system more difficult to change in the future. In terms of detection methods, our work advocates implementing both the comment- and metric-based approaches to maximize the sources of technical debt identified.
Divisions: | Concordia University > Gina Cody School of Engineering and Computer Science > Computer Science and Software Engineering |
---|---|
Item Type: | Thesis (Masters) |
Authors: | ALWEHAIBI, SULTAN |
Institution: | Concordia University |
Degree Name: | M.A. Sc. |
Program: | Software Engineering |
Date: | 28 April 2017 |
Thesis Supervisor(s): | Shihab, Emad |
Keywords: | self-admitted technical debt, technical debt, TD, software quality, quality, SATD, bugs, defects, complexity, SZZ |
ID Code: | 982522 |
Deposited By: | SULTAN ALWEHAIBI |
Deposited On: | 09 Jun 2017 14:51 |
Last Modified: | 18 Jan 2018 17:55 |
Repository Staff Only: item control page