首页 | 本学科首页   官方微博 | 高级检索  
     

一种结构信息增强的代码修改自动转换方法
引用本文:曹英魁,孙泽宇,邹艳珍,谢冰. 一种结构信息增强的代码修改自动转换方法[J]. 软件学报, 2021, 32(4): 1006-1022
作者姓名:曹英魁  孙泽宇  邹艳珍  谢冰
作者单位:北京大学信息科学技术学院,北京 100871;高可信软件技术教育部重点实验室(北京大学),北京 100871
基金项目::国家杰出青年科学基金(61525201);国家自然科学基金面上项目(61972006)
摘    要:在开发过程中,开发人员在进行缺陷修复、版本更新时,常常需要修改多处相似的代码.如何进行自动代码修改已成为软件工程领域的热点研究问题.一种行之有效的方式是:给定一组代码修改示例,通过抽取其中的代码修改模式,辅助相似代码进行自动转换.在现有工作中,基于深度学习的方法取得了一定进展,但在捕获代码间的长程信息依赖关系时,效果不...

关 键 词:代码变更  代码演化  软件维护  代码生成
收稿时间:2020-09-13
修稿时间:2020-10-26

Structurally-enhanced Approach for Automatic Code Change Transformation
CAO Ying-Kui,SUN Ze-Yu,ZOU Yan-Zhen,XIE Bing. Structurally-enhanced Approach for Automatic Code Change Transformation[J]. Journal of Software, 2021, 32(4): 1006-1022
Authors:CAO Ying-Kui  SUN Ze-Yu  ZOU Yan-Zhen  XIE Bing
Affiliation:Key Laboratory of High Confidence Software Technologies (Ministry of Education), Beijing, 100871, China;Computer Scicence Department, School of Electronics Engineering and Computer Science, Peking University, Beijing, 100871, China
Abstract: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 achived much progress, but they suffer from the problem of significant long-dependency among code. To address this challenge, we propose an automatic code change transformation method, ExpTrans, enhanced by code structure information. Based on graph-based representations of code changes, we enhance ExpTrans with structural information of code. ExpTrans 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 ExpTrans''s effectiveness, we compare it with existing learning-based approaches first, the results show that ExpTrans gains11.8%~30.8% precision incresment. Then we compare ExpTrans with some rule-based approaches, the results show that ExpTrans significantly improves the correct rate of the modified instances.
Keywords:Code Change  Software Evolution  Software Maintenance  Code Generation
本文献已被 万方数据 等数据库收录!
点击此处可从《软件学报》浏览原始摘要信息
点击此处可从《软件学报》下载全文
设为首页 | 免责声明 | 关于勤云 | 加入收藏

Copyright©北京勤云科技发展有限公司  京ICP备09084417号