Abstract

AbstractContext: Technical debt (TD) discusses the negative impact of sub‐optimal decisions to cope with the need‐for‐speed in software development. Code technical debt items (TDI) are atomic elements of TD that can be observed in code artifacts. Empirical results on open‐source systems demonstrated how code‐smells, which are just one type of TDIs, are introduced and “survive” during release cycles. However, little is known about whether the results on the survivability of code‐smells hold for other types of code TDIs (i.e., bugs and vulnerabilities) and in industrial settings. Goal: Understanding the survivability of code TDIs by conducting an empirical study analyzing two industrial cases and 31 open‐source systems from Apache Foundation. Method: We analyzed 133,670 code TDIs (35,703 from the industrial systems) detected by SonarQube (in 193,196 commits) to assess their survivability using survivability models. Results: In general, code TDIs tend to remain and linger for long periods in open‐source systems, whereas they are removed faster in industrial systems. Code TDIs that survive over a certain threshold tend to remain much longer, which confirms previous results. Our results also suggest that bugs tend to be removed faster, while code smells and vulnerabilities tend to survive longer.

Highlights

  • There is an ever-increasing pace in the size and complexity of software systems as they evolve, as Lehman 1,2 formulated in his Laws of SoftwareEvolution, known as Lehman’s Laws

  • We focus on the three types of code Technical Debt Items (TDI), as done in 16

  • Given the fact that developers working on the Industrial system have been using Sonarqube during the last year of the development, we have examined if the use of such tools impacts the survivability of code TDIs by manually investigating the code TDIs that were created in the last year

Read more

Summary

Introduction

There is an ever-increasing pace in the size and complexity of software systems as they evolve, as Lehman 1,2 formulated in his Laws of SoftwareEvolution, known as Lehman’s Laws. There is an ever-increasing pace in the size and complexity of software systems as they evolve, as Lehman 1,2 formulated in his Laws of Software. As a consequence of this ever-increasing size and complexity, software systems accumulate Technical. Debt as they are developed and evolve 3. Sub-optimal design decisions are often not visible, they might manifest in the form Technical Debt Items (TDIs), which are the manifestations of TD 3. TDIs can take the form of vulnerabilities, and code smells 5,6,7 , whilst some of them might be visible and they might materialise in terms of bugs or defects 6. Code smells, and vulnerabilities are some examples of code Technical Debt

Objectives
Results
Discussion
Conclusion
Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call