Software evolves in response to changes in its operating environment and the needs of its users. Studying this phenomenon requires us to characterise it – or better, measure it. Software metrics, which are conventionally employed for this purpose, have a long and venerable heritage but still present problems to both theoreticians and practitioners.
In this presentation, we instead describe a new method of measuring software evolution, which has mathematical underpinnings and justifications in information theory. In essence, we perform pairwise comparisons of similarity between software artefacts interpreted as binary objects, calculating the quantity of information shared between them. We verify the method by empirically examining the evolutions of the open source projects udev, git and ArgoUML as case studies. We also validate it against published results from other researchers. Finally, we conclude with some discussion pertaining to the nature of software measurement.