: Lu Xiao, Yuanfang Cai, Rick Kazman, Ran Mo, Qiong FengVenue
: International Conference on Software EngineeringDate
: 2016Type of Experiement
: Survey/Multi-Case StudySample Size
: 7Class/Experience Level
: OtherParticipant Selection
: Open-source projects different in scale, application domain, length of history, and other project characteristics were randomly selectedData Collection Method
: Observation, Code Metric
This paper investigates the relationship between architectural debt and error-prone source files. The authors looked at 7 large open source projects, identified areas of architectural debt, and measured the amount of maintenance spent on them. They identified architectural debt using novel history model—the History Coupling Probability (HCP) matrix—to approximate the probabilities of change propagation among files, and defined 4 patterns based on the HCP matrix to capture problematic architectural connections among files. They found that architectural debts consume 85% of the total project maintenance effort, and the top 5 architectural debts in each of the 7 projects consume 20% to 61% of each project’s maintenance effort. However, these architectural debts only contain a small portion of each project’s error-prone files (8% to 25%). This means that investing in refactoring small groups of files could reap large benefits.
Finally, the authors quantified the growing trend of maintenance costs for each debt. They found that half of the debts grow linearly, meaning that developers pay a consistently increasing penalty on these debts in every release. The authors qualitatively illustrate how architectural issues incur more maintenance costs and evolve into debts over time.