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.
翻译:调用图表进化分析器可以帮助软件工程师维护或开发软件系统。本文件提议调用图表进化分析器,以便从正在演变的调用图 ECG = CG_1, CG_2,... CG_N 中提取信息。 VS = V_1, V_2,... V_N 用于版本的调用软件系统。这是使用调用图表进化规则和调用图表进化子集(CGES)来完成的。与联系规则的挖掘类似,CGER 用于捕捉系统中依赖性的共同发生。与调用图中的子图一样,CGIS 用于在演变调用图中捕捉依赖性模式的演变。调用图分析器可以识别这些模式演变中可能受影响的依赖性(或程序调用),需要注意。实验是在10个大型系统不断演变的调用图中进行,以支持对依赖性进化的演变管理。我们还考虑对马文-科尔版本序列调用图进行详细研究的结果。