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

Guowu Xie, Jianbo Chen, Iulian Neamtiu

Research output: Chapter in Book/Report/Conference proceedingConference contribution

76 Scopus citations

Abstract

Software evolution is a fact of life. Over the past thirty 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 seven open source projects. Our analysis covers 653 official releases, and a combined 69 years of evolution. We first tried to verify Lehman's laws of software evolution. Our findings indicate that several of these laws are confirmed, while the rest can be either confirmed or infirmed 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.

Original languageEnglish (US)
Title of host publication2009 IEEE International Conference on Software Maintenance, ICSM 2009 - Proceedings of the Conference
Pages51-60
Number of pages10
DOIs
StatePublished - 2009
Externally publishedYes
Event2009 IEEE International Conference on Software Maintenance, ICSM 2009 - Edmonton, AB, Canada
Duration: Sep 20 2009Sep 26 2009

Publication series

NameIEEE International Conference on Software Maintenance, ICSM

Other

Other2009 IEEE International Conference on Software Maintenance, ICSM 2009
Country/TerritoryCanada
CityEdmonton, AB
Period9/20/099/26/09

All Science Journal Classification (ASJC) codes

  • Software

Fingerprint

Dive into the research topics of 'Towards a better understanding of software evolution: An empirical study on open source software'. Together they form a unique fingerprint.

Cite this