Change search
CiteExportLink to record
Permanent link

Direct link
Cite
Citation style
  • apa
  • ieee
  • modern-language-association-8th-edition
  • vancouver
  • Other style
More styles
Language
  • de-DE
  • en-GB
  • en-US
  • fi-FI
  • nn-NO
  • nn-NB
  • sv-SE
  • Other locale
More languages
Output format
  • html
  • text
  • asciidoc
  • rtf
Refactoring, Bug Fixing, and New Development Effect on Technical Debt: An Industrial Case Study
Blekinge Institute of Technology, Faculty of Computing, Department of Software Engineering.ORCID iD: 0000-0002-1729-5154
Blekinge Institute of Technology, Faculty of Computing, Department of Software Engineering.ORCID iD: 0000-0003-1350-7030
Blekinge Institute of Technology, Faculty of Computing, Department of Software Engineering.ORCID iD: 0000-0003-1744-3118
2020 (English)In: Proceedings - 46th Euromicro Conference on Software Engineering and Advanced Applications, SEAA 2020 / [ed] Martini A.,Wimmer M.,Skavhaug A., Institute of Electrical and Electronics Engineers Inc. , 2020, p. 376-384, article id 9226289Conference paper, Published paper (Refereed)
Abstract [en]

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. © 2020 IEEE.

Place, publisher, year, edition, pages
Institute of Electrical and Electronics Engineers Inc. , 2020. p. 376-384, article id 9226289
Keywords [en]
Bug Fixing, Case Study, Empirical Study, Industrial Study, New Development, Refactoring, Technical Debt, Engineering, Industrial engineering, Anti-patterns, Code changes, Development effect, Empirical studies, Industrial case study, Industrial projects, Sub-optimal designs, Technical debts, Application programs
National Category
Software Engineering
Identifiers
URN: urn:nbn:se:bth-20813DOI: 10.1109/SEAA51224.2020.00068ISI: 000702094100057Scopus ID: 2-s2.0-85096620525ISBN: 9781728195322 (print)OAI: oai:DiVA.org:bth-20813DiVA, id: diva2:1506876
Conference
46th Euromicro Conference on Software Engineering and Advanced Applications, SEAA 2020, Kranj, Slovenia, 26 August 2020 through 28 August 2020
Part of project
SERT- Software Engineering ReThought, Knowledge FoundationSHADE- A value-oriented strategy for managing the degradation of software assets, Knowledge FoundationAvailable from: 2020-12-04 Created: 2020-12-04 Last updated: 2023-04-11Bibliographically approved
In thesis
1. Towards Understanding Assets in Software Engineering
Open this publication in new window or tab >>Towards Understanding Assets in Software Engineering
2021 (English)Licentiate thesis, comprehensive summary (Other academic)
Abstract [en]

The development of software products is a massive undertaking, and organisations have to manage all artefacts involved in the process. Managing such artefacts that, in many cases, become crucial assets is important for success. Recognising assets and letting them (unintentionally) degrade can result in maintainability problems. Thus, there is a need to create a structured and organised body of knowledge that can guide practitioners and researchers to deal with the assets during the product/service life-cycle. This includes, but is not limited to, what steps are needed to understand the assets’ degradation, investigating and examining the existing methods and metrics on how to estimate degradation and understanding the implication of assets’ value and degradation.

This licentiate’s main objective is contributing to the software engineering field by providing a different perspective on assets focusing on assets’ value for the organisation. We have used literature reviews, focus groups, case study, and sample study to address this objective. The collected data is from peer-reviewed work, collaboration with five company partners, and 31 OSS from Apache Foundation.

First, we have defined the concept and terminology in a position paper. We havecreated an asset management taxonomy based on a literature review and focus groups– fours focus groups conducted in 2019 with 29 participants. The extracted assets represent not only the stages of software development, from requirements to verificationand validation, but also operational and organisational perspectives. The taxonomy wascreated to be extendable as the field evolves and matures.

Then, we have performed a more in-depth investigation of selected asset types. As a part of studying assets, in a case study, we present the impact of bug-fixing,refactorings, and new development to investigate how source code degrades. In anothersample study, we examine the longevity of specific source-code related issues in 31OSS from Apache Foundation using statistical analysis.

The work done in this licentiate includes: defining the asset concept and relatedterminology, identifying assets and creating a taxonomy of assets, presenting the preliminary investigation of tools and methods to understand source-code and architecturerelated asset degradation.

We conclude that a good understanding of the relevant assets for the inception,planning, development, evolution, and maintenance of software-intensive products andservices is necessary to study their value degradation. Our work builds on currentmethods and details the underlying concepts attempting to homogenise definitions andbring the areas of assets and degradation together. A natural progression of our workis to investigate the measurements to evaluate the degradation of assets. This licentiate thesis starts investigating the value degradation of source-code related assets. We planto continue investigating the degradation of architecture in our future work.

Place, publisher, year, edition, pages
Karlskrona: Blekinge Tekniska Högskola, 2021. p. 136
Series
Blekinge Institute of Technology Licentiate Dissertation Series, ISSN 1650-2140 ; 3
Keywords
Assets in Software Engineering, Asset Management, Asset Degradation
National Category
Software Engineering
Research subject
Software Engineering
Identifiers
urn:nbn:se:bth-21270 (URN)978-91-7295-418-2 (ISBN)
Presentation
2021-04-27, Zoom, 13:00 (English)
Opponent
Supervisors
Available from: 2021-03-19 Created: 2021-03-19 Last updated: 2021-04-28Bibliographically approved
2. Understanding Asset Degradation in Software Engineering
Open this publication in new window or tab >>Understanding Asset Degradation in Software Engineering
2023 (English)Doctoral thesis, comprehensive summary (Other academic)
Abstract [en]

Background: As software is everywhere, and almost every company has nowadays a dependency on software, designing and developing software-intensive products or services has become significantly challenging and time-consuming. The challenges are due to the continuous growth of the size and complexity of software and the fast pace of change. It is important that software-developing organisations’ engineering practices adapt to the rising challenges by adopting well-engineered development activities. Organisations deal with many software artefacts, some of which are more relevant for the organisation. We define Software Assets as artefacts intended to be used more than once. Given softwared evelopment’s continuous and evolutionary aspect, the assets involved degrade over time. Organisations need to understand what assets are relevant and how they degrade to exercise quality control over software assets. Asset degradation is inevitable, and it may manifest in different ways. 

Objective: The main objective of this thesis is: (i) to contribute to the software engineering body of knowledge by providing an understanding of what assets are and how they degrade; and (ii) to gather empirical evidence regarding asset degradation and different factors that might impact it on industrial settings. 

Method: To achieve the thesis goals, several studies have been conducted. The collected data is from peer-reviewed literature and collaboration with five companies that included extracting archival data from over 20 million LOC and archival data from open-source repositories. 

Results: The first contribution of this thesis is defining the concept of assets and asset degradation in a position paper. We aim to provide an understanding of software assets and asset degradation and its impact on software development.  Additionally, a taxonomy of assets is created using academic and industrial input. The taxonomy includes 57 assets and their categories. To further investigate the concept of asset degradation, we have conducted in-depth analyses of multiple industrial case studies on selected assets. This thesis presents results to provide evidence on the impact of different factors on asset degradation, including: (I) how the accumulation of technical debt is affected by different development activities; (ii) how degradation ‘survives’; and (iii) how working from home or the misalignment between ownership and contribution impacts the faster accumulation of asset degradation. Additionally, we created a model to calculate the degree of the alignment between ownership and contribution to code. 

Conclusion: The results can help organisations identify and understand the relevant software assets and characterize their quality degradation. Understanding how assets degrade and which factors might impact their faster accumulation is the first step to conducting sufficient and practical asset management activities. For example, by engaging (i) proactively in preventing uncontrolled growth of degradation (e.g., aligning ownership and contribution); and (ii) reactively in prioritizing mitigation strategies and activities (focusing on recently introducing TD items).

Place, publisher, year, edition, pages
Karlskrona: Blekinge Tekniska Högskola, 2023
Series
Blekinge Institute of Technology Doctoral Dissertation Series, ISSN 1653-2090 ; 5
Keywords
Assets in Software Engineering, Asset Management, Asset Degradation, Technical Debt
National Category
Software Engineering
Research subject
Software Engineering
Identifiers
urn:nbn:se:bth-24429 (URN)978-91-7295-455-7 (ISBN)
Public defence
2023-05-31, J1630 och Zoom, Campus Karlskrona, Karlskrona, 13:00 (English)
Opponent
Supervisors
Available from: 2023-04-12 Created: 2023-04-11 Last updated: 2023-06-07Bibliographically approved

Open Access in DiVA

fulltext(5423 kB)476 downloads
File information
File name FULLTEXT01.pdfFile size 5423 kBChecksum SHA-512
a349e919db84acfd846d7515f5a66bff42952ccf343a53ad9519154037064e04001ca0d8ba248529f50c4e293b414d30dd12c88e7f8a5d3dcd6bee30f9788751
Type fulltextMimetype application/pdf

Other links

Publisher's full textScopus

Authority records

Zabardast, EhsanGonzalez-Huerta, JavierŠmite, Darja

Search in DiVA

By author/editor
Zabardast, EhsanGonzalez-Huerta, JavierŠmite, Darja
By organisation
Department of Software Engineering
Software Engineering

Search outside of DiVA

GoogleGoogle Scholar
Total: 476 downloads
The number of downloads is the sum of all downloads of full texts. It may include eg previous versions that are now no longer available

doi
isbn
urn-nbn

Altmetric score

doi
isbn
urn-nbn
Total: 248 hits
CiteExportLink to record
Permanent link

Direct link
Cite
Citation style
  • apa
  • ieee
  • modern-language-association-8th-edition
  • vancouver
  • Other style
More styles
Language
  • de-DE
  • en-GB
  • en-US
  • fi-FI
  • nn-NO
  • nn-NB
  • sv-SE
  • Other locale
More languages
Output format
  • html
  • text
  • asciidoc
  • rtf