The classes and amount of software repositories become rich and abundant with the maturing of software industry. The probability to repair software bugs through transplantation of patches mining from open-source software repositories are largely increased. This project intends to adopt the idea of the organ transplantation, and focuses on the matching technique of transplant code, the extraction method of the transplant code based on the degree of dependence, the adaptation technique for the transplant code in the target software, and analysis of interference effect and inhibition of transplant code, and etc. An automatic repair tool through transplantation from open-source software repositories will be developed. The effectiveness of these achievements will be illustrated by transplant experiments of automated repairing of bugs in the Kylin operating system and public vulnerabilities in CVE or NVD.
随着软件行业不断走向成熟,软件资源极大丰富,从开源软件资源中挖掘补丁并通过移植的方式实现软件缺陷修复的机会大大增加。项目拟借鉴器官移植的思想,重点研究移植型代码块配型技术、基于依存度的移植代码块剪切方法、移植代码块在目标软件中的适应性改造技术、移植代码块的干扰效应分析和抑制技术等等,研制基于开源软件资源的移植型软件缺陷自动修复工具,并通过麒麟操作系统缺陷和CVE、NVD公开漏洞的自动修复试验对移植型自动修复方法进行演示验证。
随着开源软件资源的极大丰富,从开源软件资源中挖掘补丁并通过移植的方式实现程序缺陷修复的机会大大增加。课题面向开源软件资源的移植型程序自动修复技术体系开展研究,通过大量实证研究系统性探索了移植型修复的规律特征,提出了:基于增强上下文和特征学习的缺陷代码标定方法;基于开源软件资源历史信息的移植型代码块配型与提取技术;基于复用的移植型程序自动修复技术;针对数值程序的移植型软件缺陷自动修复方法;动静态程序特征相结合的补丁正确性评估方法;程序修复技术测评误差分析。以上述研究成果为基础,课题设计并实现了:数值程序精度缺陷的移植型修复工具AutoRNP;基于上下文的缺陷代码标定工具Context-FL;基于深度学习的缺陷代码标定工具CNN-FL;基于词频-逆文件频率的缺陷代码标定工具TFIDF-FL;动静态结合的补丁正确性验证工具。课题研究成果在GNU Scientific Library科学计算库程序、GitHub大型开源项目、麒麟操作系统等进行了试验和验证,与相关工作的对比分析结果表明了研究成果的创新性和有效性。.课题在POPL、ICSE、ASE、《IET Software》、《软件学报》等会议和期刊上发表学术论文30篇,其中:CCF推荐A类论文6篇(含中文)、B类论文8篇、C类论文7篇,SCI/EI检索论文27篇。关于数值程序精度缺陷的移植型修复方法研究成果发表在程序语言顶级会议POPL 2019上,是该会议40多年历史上中国大陆独立发表的第5篇论文。获得APSEC 2017最佳论文奖。课题申请专利2项,获得软件著作权2项,出版译著1部,在开源社区发布软件自动修复工具1个(AutoRNP),成功修复了GNU科学计算库中的19个数值程序中的精度缺陷,以及软件开源社区的大量真实缺陷。课题支持13位研究生的培养,毕业博士生4人、硕士生5人。课题支持了国防科技大学软件自动修复研究团队的发展和成长,该研究团队已经成为该领域国际上关注度较高的研究团队。
{{i.achievement_title}}
数据更新时间:2023-05-31
玉米叶向值的全基因组关联分析
正交异性钢桥面板纵肋-面板疲劳开裂的CFRP加固研究
硬件木马:关键问题研究进展及新动向
基于SSVEP 直接脑控机器人方向和速度研究
小跨高比钢板- 混凝土组合连梁抗剪承载力计算方法研究
软件自动修复技术研究
软件自动修复关键技术研究
基于软件资源库挖掘的过程仿真技术研究
面向软件自动修复的错误定位技术研究