Self-Admitted Technical Debt (SATD) is a metaphorical concept which describes the self-documented contribution of technical debt to a software project in the manner of source-code comments.

SATD can linger in projects and degrade source-code quality, but its palpable visibility draws a peculiar sort of attention from developers.

There is a need to understand the significance of engineering SATD within a software project, as these debts may have lurking repercussions.

While the oft-performed action of refactoring may work against a generalized volume of source code degradation, there exists only slight evidence suggesting that the act of refactoring has a distinct impact on SATD.

In fact, refactoring is better understood to convalesce the measurable quality of source code which may very well remain unimpressed by the preponderance of SATD instances.

In observation of the cross-section of these two concepts, it would seem logical to presume some magnitude of correlation between refactorings and SATD removals.

In this thesis, we will address the extent of such concurrence, while also seeking to develop a dependable tool to promote the empirical studies of SATD.

Using this tool, we mined data from 5 open source Java projects, from which associations between SATD removals and refactoring actions were drawn to show that developers tend to refactor SATD-containing code differently than they do code elsewhere in their projects.

We also concluded that design-related SATD is more likely to entail a refactoring than non-design SATD.

Library of Congress Subject Headings

Software failures--Research; Software refactoring; Software documentation

Publication Date


Document Type


Student Type


Degree Name

Software Engineering (MS)

Department, Program, or Center

Software Engineering (GCCIS)


Mohamed Wiem Mkaouer

Advisor/Committee Member

Christian D. Newman

Advisor/Committee Member

Ali Ouni


RIT – Main Campus

Plan Codes