[发明专利]基于模板的并发缺陷修复系统及方法在审
| 申请号: | 202111507043.5 | 申请日: | 2021-12-10 |
| 公开(公告)号: | CN114327575A | 公开(公告)日: | 2022-04-12 |
| 发明(设计)人: | 薄莉莉;袁砚池;孙小兵;李斌;吴潇雪 | 申请(专利权)人: | 扬州大学 |
| 主分类号: | G06F8/658 | 分类号: | G06F8/658;G06F9/52;G06F11/07 |
| 代理公司: | 南京苏高专利商标事务所(普通合伙) 32204 | 代理人: | 张弛 |
| 地址: | 225009 *** | 国省代码: | 江苏;32 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 基于 模板 并发 缺陷 修复 系统 方法 | ||
1.一种基于模板的并发缺陷修复系统,其特征在于,包括:
数据集采集模块,用以通过爬取开源缺陷跟踪系统中开源项目的缺陷报告,检索并筛选所有与并发相关的缺陷,并提取对应的补丁文件;
富编辑脚本计算模块,用以将所述补丁文件转化为特殊的变更树表示;
修复模板提取模块,用以通过比较变更树的相似度来提取修复模板;
并发缺陷修复模块,用以把所述修复模板和已知缺陷代码行号的待修复文件作为输入进行模板匹配,匹配成功后通过重构源码完成并发缺陷的修复。
2.根据权利要求1所述的基于模板的并发缺陷修复系统,其特征在于:在数据集采集模块中:
以类型为“缺陷”,状态为“已解决”、“已修复”和“已关闭”,爬取开源缺陷跟踪系统Bugzilla中开源项目的缺陷报告;
以“并发的”、“并发性”、“死锁”、“原子性违背”、“数据竞争”、“资源竞争”、“顺序违背”、“线程安全”、多线程”以及“同步”作为关键词检索所述缺陷报告,筛选所有与并发相关的缺陷,并提取对应的补丁文件。
3.根据权利要求2所述的基于模板的并发缺陷修复系统,其特征在于:在富编辑脚本计算模块中:
将所述补丁文件使用GumTree计算出该补丁文件的抽象语法树AST的编辑操作序列并重新映射到程序AST中的相关节点;
从GumTree编辑操作的节点开始,从下到上遍历已解析的程序AST,直到到达一个预定义的根节点,预定义的根节点类型如下:类型声明、域声明、方法声明、分支语句、抓取子句、构造器调用、父构造器调用或任何语句节点;
对到达的预定义的根节点,从根节点到映射到GumTree编辑操作的叶节点之间提取AST子树;
对提取的AST子树,创建有序序列,并将该有序序列存储为富编辑脚本;富编辑脚本描述了对一个给定的修复前的程序AST进行的操作,以将修复前的程序AST转换为修复后的程序AST,树中的每个节点都是受变更的代码影响的AST节点,富编辑脚本中的每个节点都包含三种不同类型的信息:形状、操作和令牌。
4.根据权利要求3所述的基于模板的并发缺陷修复系统,其特征在于:在修复模板提取模块中:
构建搜索索引,即一组比较子空间,为每次迭代分别定义一个搜索索引,依次得到形状索引、操作索引、令牌索引;其中,迭代的类型包括:形状、操作以及令牌;搜索索引的构建方法是将富编辑脚本按照标准进行分组,其中,这些标准依赖于不同迭代中所使用的变更树表示的嵌入信息;
形状索引的构建是将富编辑脚本的形状树表示为输入,并根据该形状树的结构按照AST节点类型进行分组,具有相同根节点和相同深度的富编辑脚本被分为一组,对于每个组,通过枚举组成员的成对组合来创建一个比较空间;形状索引通过存储每个组的标识符来构建,表示为根节点/深度;
操作索引的构建遵循与形状索引相同的原则,重新分组基于形状树的聚类输出,输入由富编辑脚本的操作树表示构成,每个比较空间的组标识符生成为根节点/深度/基于形状树的聚类生成的id;
令牌索引的构建遵循与操作索引相同的原则,重新分组基于操作树的聚类输出,输入由富编辑脚本的令牌树表示构成,每个比较空间的组标识符生成为根节点/深度/基于形状树的聚类生成的id/基于操作树的聚类生成的id;
分别计算富编辑脚本的前两种表示的树编辑距离,即将一棵树转换为另一棵树的编辑操作序列,对于前两次迭代,即形状与操作,利用GumTree的编辑脚本算法,将两棵树作为输入,并生成编辑脚本,编辑脚本的大小即表示两棵树之间的树编辑距离,当树编辑距离为零时,输入的两棵树被认为是相同的,两棵相同的树被称为相同树对;
为了提取修复模板,利用富编辑脚本的特殊的变更树表示的簇,从为每个迭代生成的相同树对开始,根据迭代提取相应的变更树表示,利用基于图中连接组件识别理论的聚类过程以找到一组相同的树,即簇;从树对集合中创建一个无向图,图中的节点表示树,边表示关联的树,即相同树对;在图中,将簇定义为子图,每个子图包含一组树,这组树彼此相同,互不关联,一个簇包含一个富编辑脚本集合,同一集合中的富编辑脚本共享一个公共的特殊树表示,当一个簇至少有两个成员时,该簇被限定为一个模板。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于扬州大学,未经扬州大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202111507043.5/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种基于转速加速度的风电机组转矩补偿控制方法及系统
- 下一篇:晶圆自动搬运机





