摘要

理解软件仓库中执行的软件维护活动,有助于确保高效的演化和开发活动.对代码提交(commit)进行准确地分类,能帮助软件管理人员更合理地进行资源分配,从而减少维护成本.然而,已有研究忽视了提交说明中关键词的上下文信息,或者未考虑变更代码的语义信息,导致不准确的提交分类.提出了基于预训练模型CodeBERT的代码提交分类模型(CBEC),该模型首先获取公开数据集中commits的code diff信息,准备提交说明和diff信息对,并进行词元化表示;接着使用CodeBERT模型学习提交说明和diff信息的语义深度表示,同时从多个维度提取提交相关的手工设计特征;最后,融合commit的语义特征和传统手工特征,构建提交分类模型.提出的模型与当前具有代表性的2个方法进行比较,从准确率、精准率和召回率来看,分别高出基线方法5.0%~26.8%、4.9%~27.2%、5.4%~27.3%.能帮助软件从业者更好地理解和识别代码提交的变更意图,有利于提高开发效益.