Managing technical debt through software metrics, refactoring and traceability

Abstract

Technical Debt (TD) is a concept borrowed from the financial domain to express extra maintenancecosts caused by short-term solutions that compromise internal quality in order to meet urgent business demands. TD can occur throughout the life cycle of software development, and it can be relatedto different artifacts. Thus, different TD types exist, among which Code TD, Design TD andDocumentation TD are the most prevalent ones. To efficiently manage TD there are several activitiesthat can be performed, like the identification and prioritisation of TD instances, activities aimingat TD repayment, as well as activities aiming to prevent the further accumulation of TD.The research problem addressed in this thesis concerns the management of TD with respect to thethree aforementioned TD types (i.e., Code, Design and Documentation TD). Specifically, in termsof Code TD it concerns the lack of high accuracy in tooling that supports the identification, prioritisationand resolution of bad smells. In terms of Design TD, it concerns the lack of systematic supportfor identifying incorrectly instantiated design patterns, as well as the lack of guidance on howto refactor the design. In terms of Documentation TD, it concerns the lack of tools for preventingthe occurrence of insufficient, incomplete or outdated requirements documentation. The overallsolution consists of the application of software metrics, as well as refactoring and traceability techniquesto alleviate these shortcomings

    Similar works