A Generative Model of Software Dependency Graphs to Better Understand Software Evolution
This work addresses software engineering researchers by providing incremental insights into the topological properties of software systems.
The authors tackled the problem of modeling software dependency graphs to understand software evolution, showing that different Java systems can share the same degree distribution and proposing a generative model that produces graphs with distributions close to empirical data.
Software systems are composed of many interacting elements. A natural way to abstract over software systems is to model them as graphs. In this paper we consider software dependency graphs of object-oriented software and we study one topological property: the degree distribution. Based on the analysis of ten software systems written in Java, we show that there exists completely different systems that have the same degree distribution. Then, we propose a generative model of software dependency graphs which synthesizes graphs whose degree distribution is close to the empirical ones observed in real software systems. This model gives us novel insights on the potential fundamental rules of software evolution.