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

Iulian Neamtiu, Guowu Xie, Jianbo Chen

Research output: Contribution to journalArticlepeer-review

35 Scopus citations


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.

Original languageEnglish (US)
Pages (from-to)193-218
Number of pages26
JournalJournal of software: Evolution and Process
Issue number3
StatePublished - Mar 2013
Externally publishedYes

All Science Journal Classification (ASJC) codes

  • Software


  • Empirical studies
  • Lehman's laws
  • Open source
  • Software evolution


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