国内刊号:11-2560/TP
国际刊号:1000-9825
发布日期:
作者:刘忠鑫,唐郅杰,夏鑫,李善平
单位:刘忠鑫,浙江大学 计算机科学与技术学院, 浙江 杭州 31002711,唐郅杰,浙江大学 计算机科学与技术学院, 浙江 杭州 31002702,夏鑫,华为公司 软件工程应用技术实验室, 浙江 杭州 31000703,李善平,浙江大学 计算机科学与技术学院, 浙江 杭州 31002704
关键词:代码变更;表示学习;代码变更表示;软件演化;软件维护
基金:浙江大学教育基金会启真人才基金
代码变更是软件演化过程中的关键行为, 其质量与软件质量密切相关. 对代码变更进行建模和表示是众多软件工程任务的基础, 例如即时缺陷预测、软件制品可追溯性恢复等. 近年来, 代码变更表示学习技术得到了广泛的关注与应用. 该类技术旨在学习将代码变更的语义信息表示为稠密低维实值向量, 即学习代码变更的分布式表示, 相比于传统的人工设计代码变更特征的方法具有自动学习、端到端训练和表示准确等优点. 但同时该领域目前也存在如结构信息利用困难、基准数据集缺失等挑战. 对近期代码变更表示学习技术的研究及应用进展进行了梳理和总结, 主要内容包括: (1)介绍了代码变更表示学习及其应用的一般框架. (2)梳理了现有的代码变更表示学习技术, 总结了不同技术的优缺点. (3)总结并归类了代码变更表示学习技术的下游应用. (4)归纳了代码变更表示学习技术现存的挑战和潜在的机遇, 展望了该类技术的未来发展方向.
来源:2023年第12期
《软件学报》期刊编辑部