摘要

软件变更预测旨在识别出具有变更倾向的模块,可以帮助软件管理者和开发人员有效地分配资源,降低维护开销.从代码中提取有效的特征在构建准确的预测模型中起着重要作用.近年来,研究人员从利用传统的手工特征进行预测转向具有强大表示能力的语义特征,他们从抽象语法树(abstract syntax tree, AST)的节点序列中提取语义特征构建模型.但已有研究忽略了AST的结构信息以及代码中丰富的语义信息,如何提取代码的语义特征仍然是一个具有挑战性的问题.为此,提出一种基于混合图表示的变更预测方法.该模型首先结合AST、控制流图(control flow graph, CFG)、数据流图(data flow graph, DFG)等结构信息构建代码的程序图表示,接着利用图神经网络学习出程序图的语义特征,根据该特征预测变更倾向性.所提模型能够融合各种语义信息以更好地表征代码.在多组变更数据集上开展与最新变更预测方法的对比实验,验证了所提方法的有效性.

全文