Software graphs and programmer awareness
G. J. Baxter, M. R. Frean

TL;DR
This paper investigates the structure of dependency graphs in object-oriented software, revealing distinct degree distributions and proposing a model that attributes these patterns to programmer awareness of type relationships.
Contribution
It introduces a simple generative model explaining the differing in-degree and out-degree distributions based on programmer awareness, validated across multiple Java applications.
Findings
In-degree distribution resembles a power-law.
Out-degree distribution resembles an exponential.
Model aligns well with observed data across diverse applications.
Abstract
Dependencies between types in object-oriented software can be viewed as directed graphs, with types as nodes and dependencies as edges. The in-degree and out-degree distributions of such graphs have quite different forms, with the former resembling a power-law distribution and the latter an exponential distribution. This effect appears to be independent of application or type relationship. A simple generative model is proposed to explore the proposition that the difference arises because the programmer is aware of the out-degree of a type but not of its in-degree. The model reproduces the two distributions, and compares reasonably well to those observed in 14 different type relationships across 12 different Java applications.
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsSoftware Engineering Research · Complex Network Analysis Techniques · Open Source Software Innovations
