Publication | Open Access
Identifying and quantifying architectural debt
103
Citations
23
References
2016
Year
Unknown Venue
Software MaintenanceArchitectural DebtsEngineeringFlawed Architectural RelationsSoftware EngineeringSoftware AnalysisSoftware ArchitectureEmpirical Software Engineering ResearchData ScienceManagementExternal DebtSystem SoftwareSoftware Engineering EconomicsData ManagementSoftware MiningComputer ScienceTechnical DebtFinanceSoftware DesignSoftware EvolutionArchitectural DesignMaintenance CostsProgram AnalysisSoftware TestingArchitectural DebtData ModelingBankruptcy
Our prior work showed that the majority of error-prone source files in a software system are architecturally connected. Flawed architectural relations propagate defects among these files and accumulate high maintenance costs over time, just like debts accumulate interest. We model groups of architecturally connected files that accumulate high maintenance costs as architectural debts. To quantify such debts, we formally define architectural debt, and show how to automatically identify debts, quantify their maintenance costs, and model these costs over time. We describe a novel history coupling probability matrix for this purpose, and identify architecture debts using 4 patterns of architectural flaws shown to correlate with reduced software quality. We evaluate our approach on 7 large-scale open source projects, and show that a significant portion of total project maintenance effort is consumed by paying interest on architectural debts. The top 5 architectural debts, covering a small portion (8% to 25%) of each project's error-prone files, capture a significant portion (20% to 61%) of each project's maintenance effort. Finally, we show that our approach reveals how architectural issues evolve into debts over time.
| Year | Citations | |
|---|---|---|
Page 1
Page 1