Identifying and Quantifying Architectural Debt

被引:56
|
作者
Xiao, Lu [1 ]
Cai, Yuanfang [1 ]
Kazman, Rick [2 ,3 ]
Mo, Ran [1 ]
Feng, Qiong [1 ]
机构
[1] Drexel Univ, Philadelphia, PA 19104 USA
[2] Univ Hawaii, Honolulu, HI 96822 USA
[3] SEI CMU, Honolulu, HI USA
基金
美国国家科学基金会; 美国安德鲁·梅隆基金会;
关键词
Software Architecture; Software Quality; Technical Debt;
D O I
10.1145/2884781.2884822
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
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 de fine architectural debt, and show how to automatically identify debts, quantify their maintenance costs, and model these costs over time. We describe a novel hi story 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.
引用
收藏
页码:488 / 498
页数:11
相关论文
共 50 条
  • [1] Detecting and Quantifying Architectural Debt: Theory and Practice
    Cai, Yuanfang
    Kazman, Rick
    [J]. PROCEEDINGS OF THE 2017 IEEE/ACM 39TH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING COMPANION (ICSE-C 2017), 2017, : 503 - 504
  • [2] Methods for Identifying Architectural Debt: A Systematic Mapping Study
    Macit, Yagup
    Giray, Gorkem
    Tuzun, Eray
    [J]. 2020 TURKISH NATIONAL SOFTWARE ENGINEERING SYMPOSIUM (UYMS), 2020, : 110 - 114
  • [3] Identifying and Prioritizing Architectural Debt Through Architectural Smells: A Case Study in a Large Software Company
    Martini, Antonio
    Fontana, Francesca Arcelli
    Biaggi, Andrea
    Roveda, Riccardo
    [J]. SOFTWARE ARCHITECTURE (ECSA 2018), 2018, 11048 : 320 - 335
  • [4] Identifying Architectural Technical Debt in Android Applications through Automated Compliance Checking
    Verdecchia, Roberto
    [J]. 2018 IEEE/ACM 5TH INTERNATIONAL CONFERENCE ON MOBILE SOFTWARE ENGINEERING AND SYSTEMS (MOBILESOFT), 2018, : 35 - 36
  • [5] Identifying and Visualizing Architectural Debt and Its Efficiency Interest in the Automotive Domain: A Case Study
    Eliasson, Ulf
    Martini, Antonio
    Kaufmann, Robert
    Odeh, Sam
    [J]. 2015 IEEE 7TH INTERNATIONAL WORKSHOP ON MANAGING TECHNICAL DEBT (MTD) PROCEEDINGS, 2015, : 33 - 40
  • [6] Identifying architectural technical debt, principal, and interest in microservices: A multiple-case study
    de Toledo, Saulo S.
    Martini, Antonio
    Sjoberg, Dag I. K.
    [J]. JOURNAL OF SYSTEMS AND SOFTWARE, 2021, 177
  • [7] Quantifying Architectural Debts
    Xiao, Lu
    [J]. 2015 10TH JOINT MEETING OF THE EUROPEAN SOFTWARE ENGINEERING CONFERENCE AND THE ACM SIGSOFT SYMPOSIUM ON THE FOUNDATIONS OF SOFTWARE ENGINEERING (ESEC/FSE 2015) PROCEEDINGS, 2015, : 1030 - 1033
  • [8] Towards an Architectural Debt Index
    Roveda, Riccardo
    Fontana, Francesca Arcelli
    Pigazzini, Ilaria
    Zanoni, Marco
    [J]. 44TH EUROMICRO CONFERENCE ON SOFTWARE ENGINEERING AND ADVANCED APPLICATIONS (SEAA 2018), 2018, : 408 - 416
  • [9] Revealing Social Debt with the CAFFEA Framework: an Antidote to Architectural Debt
    Martini, Antonio
    Bosch, Jan
    [J]. 2017 IEEE INTERNATIONAL CONFERENCE ON SOFTWARE ARCHITECTURE WORKSHOPS (ICSAW), 2017, : 179 - 181
  • [10] On the interest of architectural technical debt: Uncovering the contagious debt phenomenon
    Martini, Antonio
    Bosch, Jan
    [J]. JOURNAL OF SOFTWARE-EVOLUTION AND PROCESS, 2017, 29 (10)