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.
All Science Journal Classification (ASJC) codes
- Empirical studies
- Lehman's laws
- Open source
- Software evolution