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
Towards Understanding Assets in Software Engineering
Blekinge Institute of Technology, Faculty of Computing, Department of Software Engineering.ORCID iD: 0000-0002-1729-5154
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 [en]
Assets in Software Engineering, Asset Management, Asset Degradation
National Category
Software Engineering
Research subject
Software Engineering
Identifiers
URN: urn:nbn:se:bth-21270ISBN: 978-91-7295-418-2 (print)OAI: oai:DiVA.org:bth-21270DiVA, id: diva2:1538417
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
List of papers
1. Asset Management in Software Engineering: What is it after all?
Open this publication in new window or tab >>Asset Management in Software Engineering: What is it after all?
Show others...
2021 (English)Manuscript (preprint) (Other academic)
Abstract [en]

When developing and maintaining software-intensive products or services, we often depend on various "assets", denoting the inherent value to selected artefacts when carrying out development and maintenance activities. When exploring various areas in Software Engineering, such as Technical Debt and our work with industry partners, we soon realised that many terms and concepts are frequently intermixed and used inconsistently. Despite the central role of assets to software engineering, management, and evolution, little thoughts are yet invested into what assets eventually are. A clear terminology of "assets" and related concepts, such as "value" or "value degradation", just to name two, are crucial for setting up effective software engineering practices.

As a starting point for our own work, we had to define the terminology and concepts, and extend the reasoning around the concepts. In this position paper, we critically reflect upon the resulting notion of Assets in Software Engineering. We explore various types of assets, their main characteristics, such as providing inherent value. We discuss various types of value degradation and the possible implications of this on the planning, realisation, and evolution of software-intensive products and services over time. 

National Category
Software Engineering
Identifiers
urn:nbn:se:bth-21267 (URN)
Note

Published with title: Assets in Software Engineering: What are they after all? in Journal of System and Software

Available from: 2021-03-19 Created: 2021-03-19 Last updated: 2022-11-21Bibliographically approved
2. Asset Management Taxonomy: A Roadmap
Open this publication in new window or tab >>Asset Management Taxonomy: A Roadmap
Show others...
2021 (English)Manuscript (preprint) (Other academic)
Abstract [en]

Developing a software-intensive product or service can be a significant undertaking, associated with unique challenges in each project stage, from inception to development, delivery, maintenance, and evolution. Each step results in artefacts that are crucial for the project outcome, such as source-code and supporting deliverables, e.g., documentation.

Artefacts which have inherent value for the organisation are assets, and as assets, they are subject to degradation. This degradation occurs over time, as artefacts age, and can be more immediate or slowly over a period of time, similar to the concept of technical debt. One challenge with the concept of assets is that it seems not to be well-understood and generally delimited to a few types of assets (often code-based), overlooking other equally important assets. 

To bridge this gap, we have performed a study to formulate a structured taxonomy of assets. We use empirical data collected through industrial workshops and a literature review to ground the taxonomy. The taxonomy serves as foundations for concepts like asset degradation and asset management. The taxonomy can help contextualise, homogenise, extend the concept of technical debt, and serves as a conceptual framework for better identification, discussion, and utilisation of assets.

National Category
Software Engineering
Identifiers
urn:nbn:se:bth-21268 (URN)
Available from: 2021-03-19 Created: 2021-03-19 Last updated: 2024-01-31Bibliographically approved
3. Refactoring, Bug Fixing, and New Development Effect on Technical Debt: An Industrial Case Study
Open this publication in new window or tab >>Refactoring, Bug Fixing, and New Development Effect on Technical Debt: An Industrial Case Study
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
Keywords
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:nbn:se:bth-20813 (URN)10.1109/SEAA51224.2020.00068 (DOI)000702094100057 ()2-s2.0-85096620525 (Scopus ID)9781728195322 (ISBN)
Conference
46th Euromicro Conference on Software Engineering and Advanced Applications, SEAA 2020, Kranj, Slovenia, 26 August 2020 through 28 August 2020
Available from: 2020-12-04 Created: 2020-12-04 Last updated: 2023-04-11Bibliographically approved
4. Further Investigation of the Survivability of Code Technical Debt Items
Open this publication in new window or tab >>Further Investigation of the Survivability of Code Technical Debt Items
2022 (English)In: JOURNAL OF SOFTWARE-EVOLUTION AND PROCESS, ISSN 2047-7473, Vol. 34, no 2, article id e2425Article in journal (Refereed) Published
Abstract [en]

Context: 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 144,476 code TDIs (35,372 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.

Place, publisher, year, edition, pages
John Wiley & Sons, 2022
Keywords
bugs, code smells, code technical debt items, survivability, vulnerabilities
National Category
Software Engineering
Identifiers
urn:nbn:se:bth-21269 (URN)10.1002/smr.2425 (DOI)000740993400001 ()2-s2.0-85122929311 (Scopus ID)
Funder
Knowledge Foundation, 2017/0176Knowledge Foundation, 2018/010
Note

open access

Available from: 2021-03-19 Created: 2021-03-19 Last updated: 2023-04-11Bibliographically approved

Open Access in DiVA

fulltext(19212 kB)243 downloads
File information
File name FULLTEXT02.pdfFile size 19212 kBChecksum SHA-512
1c1cbac2e7f04bf379ee2d80c91b899ae7cab33ab793c5fbe44990c29cd7c4f8c3b13df4700507c582d0ed35be1a16a001a1398089d3dc1567d352df70e6dfc7
Type fulltextMimetype application/pdf

Authority records

Zabardast, Ehsan

Search in DiVA

By author/editor
Zabardast, Ehsan
By organisation
Department of Software Engineering
Software Engineering

Search outside of DiVA

GoogleGoogle Scholar
Total: 255 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

isbn
urn-nbn

Altmetric score

isbn
urn-nbn
Total: 1289 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