主页期刊介绍编委会编辑部服务介绍道德声明在线审稿编委办公English
2022年专刊出版计划 微信服务介绍 最新一期:2021年第2期
     
在线出版
各期目录
纸质出版
分辑系列
论文检索
论文排行
综述文章
专刊文章
美文分享
各期封面
E-mail Alerts
RSS
旧版入口
中国科学院软件研究所
  
投稿指南 问题解答 下载区 收费标准 在线投稿
曹英魁,孙泽宇,邹艳珍,谢冰.一种结构信息增强的代码修改自动转换方法.软件学报,2021,32(4):9-0
一种结构信息增强的代码修改自动转换方法
Structurally-enhanced Approach for Automatic Code Change Transformation
投稿时间:2020-09-13  修订日期:2020-10-26
DOI:10.13328/j.cnki.jos.006227
中文关键词:  代码变更  代码演化  软件维护  代码生成
英文关键词:Code Change  Software Evolution  Software Maintenance  Code Generation
基金项目::国家杰出青年科学基金(61525201);国家自然科学基金面上项目(61972006)
作者单位E-mail
曹英魁 北京大学 信息科学技术学院, 北京 100089
高可信软件技术教育部重点实验室(北京大学), 北京 100089 
 
孙泽宇 北京大学 信息科学技术学院, 北京 100089
高可信软件技术教育部重点实验室(北京大学), 北京 100089 
 
邹艳珍 北京大学 信息科学技术学院, 北京 100089
高可信软件技术教育部重点实验室(北京大学), 北京 100089 
 
谢冰 北京大学 信息科学技术学院, 北京 100089
高可信软件技术教育部重点实验室(北京大学), 北京 100089 
xiebing@sei.pku.edu.cn 
摘要点击次数: 127
全文下载次数: 59
中文摘要:
      在开发过程中,开发人员在进行缺陷修复、版本更新时,常常需要修改多处相似的代码.如何进行自动代码修改已成为软件工程领域的热点研究问题.一种行之有效的方式是:给定一组代码修改示例,通过抽取其中的代码修改模式,辅助相似代码进行自动转换.在现有工作中,基于深度学习的方法取得了一定进展,但在捕获代码间的长程信息依赖关系时,效果不佳.为此,本文提出了一种结构信息增强的代码修改自动转换方法ExpTrans.ExpTrans在解析代码时采用图的形式来表示修改示例,显式地指出了代码中变量之间的依赖关系,同时结合图卷积网络和Transformer架构,增强了模型对代码的结构信息和依赖信息的捕获能力,从而提升了代码修改自动转换的准确性.实验结果表明,对比同类型基于深度学习的方法,ExpTrans在准确率上提升了11.8%~30.8%;对比基于人工规则的方法,ExpTrans在修改实例的数量和准确率上均有显著提升.
英文摘要:
      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.
HTML  下载PDF全文  查看/发表评论  下载PDF阅读器
 

京公网安备 11040202500064号

主办单位:中国科学院软件研究所 中国计算机学会 京ICP备05046678号-4
编辑部电话:+86-10-62562563 E-mail: jos@iscas.ac.cn
Copyright 中国科学院软件研究所《软件学报》版权所有 All Rights Reserved
本刊全文数据库版权所有,未经许可,不得转载,本刊保留追究法律责任的权利