A simulation model of self-organising evolvability in software systems
The evolvability of a software artifact is its capacity for producing heritable or reusable variants; the inverse quality is the artifact s inertia or resistance to volutionary change. Evolvability in software systems may arise from engineering and/or self-organising processes. We describe our Conditional Growth simulation model of software evolution and show how it can be used to investigate evolvability from a self-organisation perspective. The model is derived from the Bak-Sneppen family of self-organised criticality simulations. It shows good qualitative agreement with Lehman s laws of software evolution and reproduces phenomena that have been observed empirically. The model suggests interesting predictions about the dynamics of evolvability and implies that much of the observed variability in software evolution can be accounted for by comparatively simple self-organising processes.