SEAILGOct 15, 2022

Call Graph Evolution Analytics over a Version Series of an Evolving Software System

arXiv:2210.08316v16 citationsh-index: 9
Originality Incremental advance
AI Analysis

This addresses software engineers managing dependency evolution in large systems, but it is incremental as it builds on existing graph and rule-mining techniques.

The paper tackles the problem of analyzing call graph evolution in software systems to aid maintenance, proposing methods to extract information from evolving call graphs using rules and subgraphs, with experiments on 10 large systems and a detailed study on Maven-Core.

Call Graph evolution analytics can aid a software engineer when maintaining or evolving a software system. This paper proposes Call Graph Evolution Analytics to extract information from an evolving call graph ECG = CG_1, CG_2,... CG_N for their version series VS = V_1, V_2, ... V_N of an evolving software system. This is done using Call Graph Evolution Rules (CGERs) and Call Graph Evolution Subgraphs (CGESs). Similar to association rule mining, the CGERs are used to capture co-occurrences of dependencies in the system. Like subgraph patterns in a call graph, the CGESs are used to capture evolution of dependency patterns in evolving call graphs. Call graph analytics on the evolution in these patterns can identify potentially affected dependencies (or procedure calls) that need attention. The experiments are done on the evolving call graphs of 10 large evolving systems to support dependency evolution management. We also consider results from a detailed study for evolving call graphs of Maven-Core's version series.

Code Implementations1 repo
Foundations

The foundational work for this paper's niche, ranked by how specifically the neighbourhood builds on it — not by global fame.

Your Notes