Analyzing Static Analysis Metric Trends towards Early Identification of Non-Maintainable Software Components

Nowadays, agile software development is considered a mainstream approach for software with fast release cycles and frequent changes in requirements. Most of the time, high velocity in software development implies poor software quality, especially when it comes to maintainability. In this work, we ar...

Descripción completa

Guardado en:
Detalles Bibliográficos
Autores principales: Thomas Karanikiotis, Michail D. Papamichail, Andreas L. Symeonidis
Formato: article
Lenguaje:EN
Publicado: MDPI AG 2021
Materias:
Acceso en línea:https://doaj.org/article/d7296517372a48a99a4f49f11513b16d
Etiquetas: Agregar Etiqueta
Sin Etiquetas, Sea el primero en etiquetar este registro!
id oai:doaj.org-article:d7296517372a48a99a4f49f11513b16d
record_format dspace
spelling oai:doaj.org-article:d7296517372a48a99a4f49f11513b16d2021-11-25T19:04:54ZAnalyzing Static Analysis Metric Trends towards Early Identification of Non-Maintainable Software Components10.3390/su1322128482071-1050https://doaj.org/article/d7296517372a48a99a4f49f11513b16d2021-11-01T00:00:00Zhttps://www.mdpi.com/2071-1050/13/22/12848https://doaj.org/toc/2071-1050Nowadays, agile software development is considered a mainstream approach for software with fast release cycles and frequent changes in requirements. Most of the time, high velocity in software development implies poor software quality, especially when it comes to maintainability. In this work, we argue that ensuring the maintainability of a software component is not the result of a one-time only (or few-times only) set of fixes that eliminate technical debt, but the result of a continuous process across the software’s life cycle. We propose a maintainability evaluation methodology, where data residing in code hosting platforms are being used in order to identify non-maintainable software classes. Upon detecting classes that have been dropped from their project, we examine the progressing behavior of their static analysis metrics and evaluate maintainability upon the four primary source code properties: complexity, cohesion, inheritance and coupling. The evaluation of our methodology upon various axes, both qualitative and quantitative, indicates that our approach can provide actionable and interpretable maintainability evaluation at class level and identify non-maintainable components around 50% ahead of the software life cycle. Based on these results, we argue that the progressing behavior of static analysis metrics at a class level can provide valuable information about the maintainability degree of the component in time.Thomas KaranikiotisMichail D. PapamichailAndreas L. SymeonidisMDPI AGarticlesoftware maintainabilitysoftware qualitysoftware evolutiontrend analysisstatic analysis metricsEnvironmental effects of industries and plantsTD194-195Renewable energy sourcesTJ807-830Environmental sciencesGE1-350ENSustainability, Vol 13, Iss 12848, p 12848 (2021)
institution DOAJ
collection DOAJ
language EN
topic software maintainability
software quality
software evolution
trend analysis
static analysis metrics
Environmental effects of industries and plants
TD194-195
Renewable energy sources
TJ807-830
Environmental sciences
GE1-350
spellingShingle software maintainability
software quality
software evolution
trend analysis
static analysis metrics
Environmental effects of industries and plants
TD194-195
Renewable energy sources
TJ807-830
Environmental sciences
GE1-350
Thomas Karanikiotis
Michail D. Papamichail
Andreas L. Symeonidis
Analyzing Static Analysis Metric Trends towards Early Identification of Non-Maintainable Software Components
description Nowadays, agile software development is considered a mainstream approach for software with fast release cycles and frequent changes in requirements. Most of the time, high velocity in software development implies poor software quality, especially when it comes to maintainability. In this work, we argue that ensuring the maintainability of a software component is not the result of a one-time only (or few-times only) set of fixes that eliminate technical debt, but the result of a continuous process across the software’s life cycle. We propose a maintainability evaluation methodology, where data residing in code hosting platforms are being used in order to identify non-maintainable software classes. Upon detecting classes that have been dropped from their project, we examine the progressing behavior of their static analysis metrics and evaluate maintainability upon the four primary source code properties: complexity, cohesion, inheritance and coupling. The evaluation of our methodology upon various axes, both qualitative and quantitative, indicates that our approach can provide actionable and interpretable maintainability evaluation at class level and identify non-maintainable components around 50% ahead of the software life cycle. Based on these results, we argue that the progressing behavior of static analysis metrics at a class level can provide valuable information about the maintainability degree of the component in time.
format article
author Thomas Karanikiotis
Michail D. Papamichail
Andreas L. Symeonidis
author_facet Thomas Karanikiotis
Michail D. Papamichail
Andreas L. Symeonidis
author_sort Thomas Karanikiotis
title Analyzing Static Analysis Metric Trends towards Early Identification of Non-Maintainable Software Components
title_short Analyzing Static Analysis Metric Trends towards Early Identification of Non-Maintainable Software Components
title_full Analyzing Static Analysis Metric Trends towards Early Identification of Non-Maintainable Software Components
title_fullStr Analyzing Static Analysis Metric Trends towards Early Identification of Non-Maintainable Software Components
title_full_unstemmed Analyzing Static Analysis Metric Trends towards Early Identification of Non-Maintainable Software Components
title_sort analyzing static analysis metric trends towards early identification of non-maintainable software components
publisher MDPI AG
publishDate 2021
url https://doaj.org/article/d7296517372a48a99a4f49f11513b16d
work_keys_str_mv AT thomaskaranikiotis analyzingstaticanalysismetrictrendstowardsearlyidentificationofnonmaintainablesoftwarecomponents
AT michaildpapamichail analyzingstaticanalysismetrictrendstowardsearlyidentificationofnonmaintainablesoftwarecomponents
AT andreaslsymeonidis analyzingstaticanalysismetrictrendstowardsearlyidentificationofnonmaintainablesoftwarecomponents
_version_ 1718410367096324096