期刊文献+

一种结构信息增强的代码修改自动转换方法 被引量:3

Structurally-enhanced Approach for Automatic Code Change Transformation
下载PDF
导出
摘要 在开发过程中,开发人员在进行缺陷修复、版本更新时,常常需要修改多处相似的代码.如何进行自动代码修改已成为软件工程领域的热点研究问题.一种行之有效的方式是:给定一组代码修改示例,通过抽取其中的代码修改模式,辅助相似代码进行自动转换.在现有工作中,基于深度学习的方法取得了一定进展,但在捕获代码间的长程信息依赖关系时,效果不佳.为此,提出了一种结构信息增强的代码修改自动转换方法 Exp Trans.Exp Trans在解析代码时采用图的形式来表示修改示例,显式地指出了代码中变量之间的依赖关系,同时结合图卷积网络和Transformer架构,增强了模型对代码的结构信息和依赖信息的捕获能力,从而提升了代码修改自动转换的准确性.实验结果表明,对比同类型基于深度学习的方法,Exp Trans在准确率上提升了11.8%~30.8%;对比基于人工规则的方法,Exp Trans在修改实例的数量和准确率上均有显著提升. In software development, developers often need to change or update lots of similar codes. How to perform code transformation automatically has become a research hotspot in software engineering. An effective way is: Extracting the change pattern from a set of similar code changes and apply it to automatic code change transformation. In the related work, deep-learning-based approaches have achieved much progress, but they suffer from the problem of significant long-dependency among code. To address this challenge, an automatic code change transformation method is proposed, namely Exp Trans, enhanced by code structure information. Based on graph-based representations of code changes, Exp Trans is enhanced with structural information of code. Exp Trans labels the dependency among variables in code parsing, adopts the graph-convolution network and transformer structure, so as to capture the long-dependency among code. To evaluate Exp Trans’ s effectiveness, it is compared with existing learning-based approaches first, the results show that Exp Trans gains 11.8%~30.8% precision increment. Then, Exp Trans is compared with rule-based the approaches, the results show that Exp Trans significantly improves the correct rate of the modified instances.
作者 曹英魁 孙泽宇 邹艳珍 谢冰 CAO Ying-Kui;SUN Ze-Yu;ZOU Yan-Zhen;XIE Bing(School of Electronics Engineering and Computer Science,Peking University,Beijing 100871,China;Key Laboratory of High Confidence Software Technologies of Ministry of Education(Peking University),Beijing 100871,China)
出处 《软件学报》 EI CSCD 北大核心 2021年第4期1006-1022,共17页 Journal of Software
基金 国家杰出青年科学基金(61525201) 国家自然科学基金(61972006)。
关键词 代码变更 代码演化 软件维护 代码生成 code change software evolution software maintenance code generation
  • 相关文献

同被引文献32

引证文献3

二级引证文献1

相关作者

内容加载中请稍等...

相关机构

内容加载中请稍等...

相关主题

内容加载中请稍等...

浏览历史

内容加载中请稍等...
;
使用帮助 返回顶部