Identifying and Quantifying Architectural Debt

Author(s): L. Xiao, R. Kazman, R. M. Qiong Feng
Venue: 38th IEEE International Conference on Software Engineering
Date: 2016

Type of Experiement: Survey/Multi-Case Study
Sample Size: 7
Class/Experience Level: Professional
Data Collection Method: Code Metric


The authors of the paper noticed that the source files that cause the most errors and technical debt are linked together architecturally. They define the errors caused by these files as architectural debt, because flaws in the architecture of the software propagate through the involved source files, leading to significant and recurring bugs and technical debt. To address this problem, they developed a history coupling probability matrix, which is XXX. The matrix is based off of different known patterns in architectural flaws that have strong correlations with reduced quality of architecture.

One of the primary focuses of their research was in programmatically identifying sources of architectural debt. To accomplish this they likened technical debt to financial debt, and attempted to calculate a principal and interest rate. They did this by finding lined files compromising some architectural feature and calculating the cost of maintaining them, and creating prediction models based on these values. Their method was largely successful; testing across seven large projects, they identified that the majority of technical debt is derived from architectural debt, with less than a quarter of the code accounting for up to sixty percent of the effort spent debugging.