一句话:提出调用图演化分析,用演化规则与演化子图从版本序列中挖掘依赖变化,辅助依赖演化管理。
软件系统在版本演化中,调用图所刻画的依赖关系会随之变化。为辅助软件工程师维护和演化系统,本文提出调用图演化分析,从表示版本序列 VS={V1,...,VN} 的演化调用图集合 ECG={CG1,...,CGN} 中提取信息。方法包括调用图演化规则(CGER)与调用图演化子图(CGES):前者类似关联规则挖掘,用于捕获依赖的共现;后者类似调用图中的子图模式,用于捕获依赖模式在演化调用图中的变化。基于这些模式可识别可能受影响、需要关注的依赖或过程调用。作者在 10 个大型演化系统的调用图上进行实验,并以 Maven-Core 版本序列的演化调用图给出详细结果,支持依赖演化管理。
Software evolution analytics can be supported by generating and comparing call graph evolution information over versions of a software system. Call Graph evolution analytics can assist a software engineer when maintaining or evolving a software system. This paper proposes Call Graph Evolution Analytics to extract information from a set of Evolving Call Graphs ECG = {CG1, CG2,...CGN} representing a Version Series VS = {V1, V2,...VN} 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. This is demonstrated with detailed results for evolving call graphs of Maven-Core’s version series.