Refactoring, Bug Fixing, and New Development Effect on Technical Debt: An Industrial Case Study

被引:11
|
作者
Zabardast, Ehsan [1 ]
Gonzalez-Huerta, Javier [1 ]
Smite, Darja [1 ]
机构
[1] Blekinge Inst Technol, Software Engn Res Lab SERL Sweden, Karlskrona, Sweden
关键词
Technical Debt; Empirical Study; Industrial Study; Case Study; Refactoring; Bug Fixing; New Development; SMELL BAD;
D O I
10.1109/SEAA51224.2020.00068
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Code evolution, whether related to the development of new features, bug fixing, or refactoring, inevitably changes the quality of the code. One particular type of such change is the accumulation of Technical Debt (TD) resulting from sub-optimal design decisions. Traditionally, refactoring is one of the means that has been acknowledged to help to keep TD under control. Developers refactor their code to improve its maintainability and to repay TD (e.g., by removing existing code smells and anti-patterns in the source code). While the accumulation of the TD and the effect of refactoring on TD have been studied before, there is a lack of empirical evidence from industrial projects on how the different types of code changes affect the TD and whether specific refactoring operations are more effective for repaying TD. To fill this gap, we conducted an empirical study on an industrial project and investigated how Refactoring, Bug Fixing, and New Development affect the TD. We have analyzed 2, 286 commits in total to identify which activities reduced, kept the same, or even increased the TD, further delving into specific refactoring operations to assess their impact. Our results suggest that TD in the studied project is mainly introduced in the development of new features (estimated in 72.8 hours). Counterintuitively, from the commits tagged as refactoring, only 22.90% repay TD (estimated to repay 8.30 hours of the TD). Moreover, while some types of refactoring operations (e.g., Extract Method), help repaying TD, other refactoring operations (e.g., Move Class) are highly prone to introduce more TD.
引用
收藏
页码:376 / 384
页数:9
相关论文
共 50 条
  • [1] Refactoring Debt: Myth or Reality? An Exploratory Study on the Relationship Between Technical Debt and Refactoring
    Peruma, Anthony
    AlOmar, Eman Abdullah
    Newman, Christian D.
    Mkaouer, Mohamed Wiem
    Ouni, Ali
    [J]. 2022 MINING SOFTWARE REPOSITORIES CONFERENCE (MSR 2022), 2022, : 127 - 131
  • [2] Managing Technical Debt: An Industrial Case Study
    Codabux, Zadia
    Williams, Byron
    [J]. 2013 4TH INTERNATIONAL WORKSHOP ON MANAGING TECHNICAL DEBT (MTD), 2013, : 8 - 15
  • [3] Evaluating Bug-Fixing in Software Product Lines: an Industrial Case Study
    Echeverria, Jorge
    Perez, Francisca
    Abellanas, Andres
    Ignacio Panach, Jose
    Cetina, Carlos
    Pastor, Oscar
    [J]. ESEM'16: PROCEEDINGS OF THE 10TH ACM/IEEE INTERNATIONAL SYMPOSIUM ON EMPIRICAL SOFTWARE ENGINEERING AND MEASUREMENT, 2016,
  • [4] Investigating Architectural Technical Debt accumulation and refactoring over time: A multiple-case study
    Martini, Antonio
    Bosch, Jan
    Chaudron, Michel
    [J]. INFORMATION AND SOFTWARE TECHNOLOGY, 2015, 67 : 237 - 253
  • [5] Business-Driven Technical Debt Prioritization: An Industrial Case Study
    de Almeida, Rodrigo Reboucas
    Ribeiro, Rafael do Nascimento
    Treude, Christoph
    Kulesza, Uira
    [J]. 2021 IEEE/ACM INTERNATIONAL CONFERENCE ON TECHNICAL DEBT (TECHDEBT 2021), 2021, : 74 - 83
  • [6] Architectural design decisions that incur technical debt - An industrial case study
    Soliman, Mohamed
    Avgeriou, Paris
    Li, Yikun
    [J]. INFORMATION AND SOFTWARE TECHNOLOGY, 2021, 139
  • [7] The Perception of Technical Debt in the Embedded Systems Domain: An Industrial Case Study
    Ampatzoglou, Areti
    Ampatzoglou, Apostolos
    Chatzigeorgiou, Alexander
    Avgeriou, Paris
    Abrahamsson, Pekka
    Martini, Antonio
    Zdun, Uwe
    Systa, Kari
    [J]. 2016 IEEE 8TH INTERNATIONAL WORKSHOP ON MANAGING TECHNICAL DEBT (MTD), 2016, : 9 - 16
  • [8] Advocating for Bug Fixing. A Case Study
    Chisalita-Cretu, Maria-Camelia
    [J]. PROCEEDINGS OF THE 12TH INTERNATIONAL CONFERENCE ON VIRTUAL LEARNING, ICVL 2017, 2017, : 358 - 364
  • [9] Validating and Prioritizing Quality Rules for Managing Technical Debt: An Industrial Case Study
    Falessi, Davide
    Voegele, Alexander
    [J]. 2015 IEEE 7TH INTERNATIONAL WORKSHOP ON MANAGING TECHNICAL DEBT (MTD) PROCEEDINGS, 2015, : 41 - 48
  • [10] Technical Debt in Large-Scale Distributed Projects: An Industrial Case Study
    Sousa, Armando
    Rocha, Lincoln
    Britto, Ricardo
    Gong, Zhixiong
    Lyu, Feng
    [J]. 2021 IEEE INTERNATIONAL CONFERENCE ON SOFTWARE ANALYSIS, EVOLUTION AND REENGINEERING (SANER 2021), 2021, : 590 - 594