Towards a better understanding of software evolution: an empirical study on open-source software

SUMMARY Software evolution is a fact of life. Over the past 30 years, researchers have proposed hypotheses on how software changes and provided evidence that both supports and refutes these hypotheses. To paint a clearer image of the software evolution process, we performed an empirical study on lon...

Ausführliche Beschreibung

Gespeichert in:
Bibliographische Detailangaben
Veröffentlicht in:Journal of software : evolution and process 2013-03, Vol.25 (3), p.193-218
Hauptverfasser: Neamtiu, Iulian, Xie, Guowu, Chen, Jianbo
Format: Artikel
Sprache:eng
Schlagworte:
Online-Zugang:Volltext
Tags: Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
Beschreibung
Zusammenfassung:SUMMARY Software evolution is a fact of life. Over the past 30 years, researchers have proposed hypotheses on how software changes and provided evidence that both supports and refutes these hypotheses. To paint a clearer image of the software evolution process, we performed an empirical study on long spans in the lifetime of nine open‐source projects. Our analysis covers 705 official releases and a combined 108 years of evolution. We first tried to confirm Lehman's eight laws of software evolution on these projects using statistical hypothesis testing. Our findings indicate that only the laws of continuing change and continuing growth are confirmed for all programs, whereas the other six laws are violated by some programs, or can be both confirmed and invalidated, depending on the laws' operational definitions. Second, we analyze the growth rate for projects' development and maintenance branches, and the distribution of software changes. We find similarities in the evolution patterns of the programs we studied, which brings us closer to constructing rigorous models for software evolution. Copyright © 2011 John Wiley & Sons, Ltd. This paper present the results of an empirical software evolution study on long spans of evolution for nine large, popular open source projects. The first contribution is an operationalization of Lehman's software evolution laws and the results of testing these laws on the nine open source projects; the findings suggest that only two laws—continuing change and continuing growth—are outright confirmed. The second contribution is an analysis of growth rate and change distribution for the nine projects, which reveals quantitative differences in growth rates for projects with multiple branches, as well as differences in change distribution across projects.
ISSN:2047-7473
2047-7481
DOI:10.1002/smr.564