Cargando…

Software evolution: the lifetime of fine-grained elements

A model regarding the lifetime of individual source code lines or tokens can estimate maintenance effort, guide preventive maintenance, and, more broadly, identify factors that can improve the efficiency of software development. We present methods and tools that allow tracking of each line’s or toke...

Descripción completa

Detalles Bibliográficos
Autores principales: Spinellis, Diomidis, Louridas, Panos, Kechagia, Maria
Formato: Online Artículo Texto
Lenguaje:English
Publicado: PeerJ Inc. 2021
Materias:
Acceso en línea:https://www.ncbi.nlm.nih.gov/pmc/articles/PMC7959608/
https://www.ncbi.nlm.nih.gov/pubmed/33817021
http://dx.doi.org/10.7717/peerj-cs.372
_version_ 1783664986530250752
author Spinellis, Diomidis
Louridas, Panos
Kechagia, Maria
author_facet Spinellis, Diomidis
Louridas, Panos
Kechagia, Maria
author_sort Spinellis, Diomidis
collection PubMed
description A model regarding the lifetime of individual source code lines or tokens can estimate maintenance effort, guide preventive maintenance, and, more broadly, identify factors that can improve the efficiency of software development. We present methods and tools that allow tracking of each line’s or token’s birth and death. Through them, we analyze 3.3 billion source code element lifetime events in 89 revision control repositories. Statistical analysis shows that code lines are durable, with a median lifespan of about 2.4 years, and that young lines are more likely to be modified or deleted, following a Weibull distribution with the associated hazard rate decreasing over time. This behavior appears to be independent from specific characteristics of lines or tokens, as we could not determine factors that influence significantly their longevity across projects. The programing language, and developer tenure and experience were not found to be significantly correlated with line or token longevity, while project size and project age showed only a slight correlation.
format Online
Article
Text
id pubmed-7959608
institution National Center for Biotechnology Information
language English
publishDate 2021
publisher PeerJ Inc.
record_format MEDLINE/PubMed
spelling pubmed-79596082021-04-02 Software evolution: the lifetime of fine-grained elements Spinellis, Diomidis Louridas, Panos Kechagia, Maria PeerJ Comput Sci Programming Languages A model regarding the lifetime of individual source code lines or tokens can estimate maintenance effort, guide preventive maintenance, and, more broadly, identify factors that can improve the efficiency of software development. We present methods and tools that allow tracking of each line’s or token’s birth and death. Through them, we analyze 3.3 billion source code element lifetime events in 89 revision control repositories. Statistical analysis shows that code lines are durable, with a median lifespan of about 2.4 years, and that young lines are more likely to be modified or deleted, following a Weibull distribution with the associated hazard rate decreasing over time. This behavior appears to be independent from specific characteristics of lines or tokens, as we could not determine factors that influence significantly their longevity across projects. The programing language, and developer tenure and experience were not found to be significantly correlated with line or token longevity, while project size and project age showed only a slight correlation. PeerJ Inc. 2021-02-09 /pmc/articles/PMC7959608/ /pubmed/33817021 http://dx.doi.org/10.7717/peerj-cs.372 Text en © 2021 Spinellis et al. https://creativecommons.org/licenses/by/4.0/ This is an open access article distributed under the terms of the Creative Commons Attribution License (https://creativecommons.org/licenses/by/4.0/) , which permits unrestricted use, distribution, reproduction and adaptation in any medium and for any purpose provided that it is properly attributed. For attribution, the original author(s), title, publication source (PeerJ Computer Science) and either DOI or URL of the article must be cited.
spellingShingle Programming Languages
Spinellis, Diomidis
Louridas, Panos
Kechagia, Maria
Software evolution: the lifetime of fine-grained elements
title Software evolution: the lifetime of fine-grained elements
title_full Software evolution: the lifetime of fine-grained elements
title_fullStr Software evolution: the lifetime of fine-grained elements
title_full_unstemmed Software evolution: the lifetime of fine-grained elements
title_short Software evolution: the lifetime of fine-grained elements
title_sort software evolution: the lifetime of fine-grained elements
topic Programming Languages
url https://www.ncbi.nlm.nih.gov/pmc/articles/PMC7959608/
https://www.ncbi.nlm.nih.gov/pubmed/33817021
http://dx.doi.org/10.7717/peerj-cs.372
work_keys_str_mv AT spinellisdiomidis softwareevolutionthelifetimeoffinegrainedelements
AT louridaspanos softwareevolutionthelifetimeoffinegrainedelements
AT kechagiamaria softwareevolutionthelifetimeoffinegrainedelements