UC Santa Cruz
Understanding and Simulating Software Evolution
- Author(s): Lin, Zhongpeng
- Advisor(s): Whitehead, Emmet J
- et al.
The important roles of software in modern life have prompted people to study software evolution.
This dissertation takes a scientific perspective to model the dynamics of software evolution, and verify the model by simulation.
Empirical studies of software evolution have discovered many emergent phenomena, such as the power law distributions in different metrics of software systems and the complex network of relationships among software components.
By reviewing the literature, we found similar phenomena in other fields too, as well as generative mechanisms proposed to account for the phenomena.
A model of software evolution that incorporates preferential attachment and self-organized criticality (SOC) is proposed in this thesis research and the simulation runs using this model reproduce several emergent phenomena in software evolution.
To further explore how individual developers' local changes accumulate to produce high-level phenomena, and to explore the possible causes of log-normal behavior at the body of the commit size distribution, we propose another model based on agents to simulate the interaction between developers and a manager.
This simulation shows that power law distributions can emerge from low-level changes without explicit preferential attachment process, and the lower-end of commit size distribution may be shaped by log-normal task size.
This dissertation research reveals that large software changes are inevitable in software evolution, and the change size follows a heavy-tailed distribution, making it very difficult to estimate.
The simulations also show that large changes are not necessarily caused by significant external factors; the power law structure of software systems can also lead to large changes, as part of the power law change size.