Managing technical debt: prioritising and quantifying architectural smells
|PhD ceremony:||Mr D.D. (Darius) Sas|
|When:||December 19, 2022|
|Supervisors:||P. (Paris) Avgeriou, Prof, prof. dr. F. Arcelli Fontana|
|Where:||Academy building RUG|
|Faculty:||Science and Engineering|
Building software that works is a costly activity. Keeping that software working while also meeting the ever changing requirements is even costlier. In fact, software maintenance amounts to up to 75% of the cost of ownership of software. So how does one ensure that the software written today is cost-efficient tomorrow?
Technical debt is a metaphor that allows us to think about the inefficiencies that make maintaining software costlier as a debt that we can repay. Identifying, prioritising and managing technical debt allows us to reduce the cost of maintaining software in the future.In this thesis, we focus on how software practitioners can prioritise and quantify the amount of technical debt present in their software. We do so by detecting a type of issue called architectural smells, which indicate parts of the software where the principles of good software design were violated.
Studying architectural smells allowed us to: (1) understand how they evolve over the course of the years (e.g. how long do they persist?, do they get bigger?, etc.), (2) learn how they correlate with the changes made in a system (e.g. do affected parts of a system change more often than non-affected ones?), and (3) talk to developers and learn how they are affected by smells first-hand.
This allowed us to develop what is the main outcome of our research: an approach to automatically prioritise architectural smell instances using machine learning, and then quantify the amount of technical debt generated by each one of them.