Technical Debt (TD) is a powerful metaphor that represents shortcuts taken in a software development project, usually to meet business goals such as limited time or budget. TD concerns mostly invisible parts of the system (i.e. no visible features or defects) and has a detrimental effect on the maintainability and evolvability of software. TD manifests in both design and implementation constructs such as sub-optimal design decisions, design and code smells, use of impertinent technologies, lack of documentation etc.Technical Debt cannot realistically be eliminated but it does need to be proactively managed in order to be kept at a sustainable level. Managing Technical Debt is comprised of a number of activities. In this thesis, we focus on ...