金融行业标准网
(19)国家知识产权局 (12)发明 专利申请 (10)申请公布号 (43)申请公布日 (21)申请 号 202210880158.7 (22)申请日 2022.07.25 (71)申请人 交叉信息核心技 术研究院 (西安) 有 限公司 地址 710077 陕西省西安市高新区天谷八 路软件新城云汇谷15 6号B2座1 1层 (72)发明人 晋武侠 钟定洪 杨子江  (74)专利代理 机构 北京中巡通大知识产权代理 有限公司 1 1703 专利代理师 张晓凯 (51)Int.Cl. G06F 8/71(2018.01) G06F 8/73(2018.01) G06F 40/30(2020.01) (54)发明名称 软件代码的历史切片提取方法、 系统、 设备 及存储介质 (57)摘要 本发明属于程序分析领域, 公开了一种软件 代码的历史切片提取方法、 系统、 设备及存储介 质, 包括获取软件代码的当前版本的代码实体信 息和版本信息, 以及软件代码的各历史版本的代 码实体信息和版本信息, 以及软件代码的修订历 史; 根据软件代码的修订历史, 获取软件代码的 各历史版本的修改语义集合; 根据软件代码的当 前版本的代码实体信息和版本信息, 以及软件代 码的各历史版本的代码实体信息和版本信息, 以 及软件代码的各历史版本的修改语义集合, 得到 软件代码的各历史版本的历史切片并组合, 得到 软件代码的历史切片。 相比于基于代码的文本相 似度匹配的方法, 能够获取更高精度的历史切 片, 得到更有利于开发者进行缺陷定位和代码理 解的历史切片结果。 权利要求书2页 说明书12页 附图2页 CN 115098159 A 2022.09.23 CN 115098159 A 1.一种软件代码的历史切片提取 方法, 其特 征在于, 包括: 获取软件代码的当前版本的代码 实体信息和版本信 息, 以及软件代码的各历史版本的 代码实体信息和版本信息, 以及软件代码的修 订历史; 根据软件代码的修 订历史, 获取 软件代码的各历史版本的修改语义 集合; 根据软件代码的当前版本的代码 实体信息和版本信 息, 以及软件代码的各历史版本的 代码实体信息和版本信息, 以及软件代码的各历史版本的修改语义集合, 得到软件代码的 各历史版本的历史切片并组合, 得到软件代码的历史切片。 2.根据权利要求1所述的软件代码的历史切片提取方法, 其特征在于, 所述代码 实体信 息包括: 软件代码实体名、 软件代码实体唯一索引名、 软件代码所在文件路径、 软件代码实 体所在文件起始行号、 软件代码实体所在文件终止行号、 软件代码实体所在文件起始列号 以及软件代码实体所在终止列号。 3.根据权利要求1所述的软件代码的历史切片提取方法, 其特征在于, 所述根据 软件代 码的修订历史, 获取 软件代码的各历史版本的修改语义 集合包括: 根据软件代码的修 订历史, 获取 软件代码的各历史版本的修 订历史; 调用重构检测工具Re factoringMiner分析软件代码的各历史版本的修订历史, 得到软 件代码的各历史版本的修改语义 集合。 4.根据权利要求1所述的软件代码的历史切片提取方法, 其特征在于, 所述软件代码的 各历史版本的修改语义集合均包括若干修改语义; 所述修改语义包括修改语义对应源代 码、 修改语义内容以及修改语义对应目标代码。 5.根据权利要求4所述的软件代码的历史切片提取方法, 其特征在于, 所述修改语义内 容包括提取、 重命名、 移动、 上推、 下推和删除。 6.根据权利要求1所述的软件代码的历史切片提取方法, 其特征在于, 所述根据 软件代 码的当前版本的代码实体信息和版本信息, 以及软件代码的各历史版本的代码实体信息和 版本信息, 以及软件代码的各历史版本的修改语义集合, 得到软件代码的各历史版本的历 史切片包括: 初始化软件代码的各历史版本的历史切片; 根据软件代码的版本信 息以及软件代码的各历史版本的版本信 息, 遍历软件代码的当 前版本以及各历史版本: 当软件代码的当前版本存在父版本时: 获取软件代码的当前版本的父版本的修改语义 集合以及软件代码的当前版本的历史切片; 以及遍历软件代码的当前版本的父版本的修改 语义集合中的各修改语义: 当当前修改语义的修改语义对应源代码属于软件代码的当前版 本的历史切片时, 将当前修改语义的修改语义内容以及修改语义对应目标代码组合后得到 新的修改语义, 并添加至软件代码的当前版本的父版本的历史切片 中; 以及遍历软件代码 的当前版本的历史切片中的各修改语义: 当当前修改语义的修改语义对应目标代码不属于 软件代码的当前版本的父版本的修改语义集合时, 将当前修改语义的修改语义对应目标代 码组合无修改信息得到新的修改语义, 并添加至软件代码的当前版本的父版本的历史切片 中; 软件代码的当前版本以及各历史版本遍历完成后, 得到软件代码的各历史版本的历史 切片。权 利 要 求 书 1/2 页 2 CN 115098159 A 27.一种软件代码的历史切片提取系统, 其特 征在于, 包括: 信息获取模块, 用于获取软件代码的当前版本的代码实体信息和版本信息, 以及软件 代码的各历史版本的代码实体信息和版本信息, 以及软件代码的修 订历史; 修改语义提取模块, 用于根据软件代码的修订历史, 获取软件代码的各历史版本的修 改语义集合; 切片提取模块, 用于根据软件代码的当前版本的代码实体信息和版本信息, 以及软件 代码的各历史版本的代码实体信息和版本信息, 以及软件代码的各历史版本的修改语义集 合, 得到软件代码的各历史版本的历史切片并组合, 得到软件代码的历史切片。 8.根据权利要求7所述的软件代码的历史切片提取系统, 其特征在于, 所述切片提取模 块具体用于: 初始化软件代码的各历史版本的历史切片; 根据软件代码的版本信 息以及软件代码的各历史版本的版本信 息, 遍历软件代码的当 前版本以及各历史版本: 当软件代码的当前版本存在父版本时: 获取软件代码的当前版本的父版本的修改语义 集合以及软件代码的当前版本的历史切片; 以及遍历软件代码的当前版本的父版本的修改 语义集合中的各修改语义: 当当前修改语义的修改语义对应源代码属于软件代码的当前版 本的历史切片时, 将当前修改语义的修改语义内容以及修改语义对应目标代码组合后得到 新的修改语义, 并添加至软件代码的当前版本的父版本的历史切片 中; 以及遍历软件代码 的当前版本的历史切片中的各修改语义: 当当前修改语义的修改语义对应目标代码不属于 软件代码的当前版本的父版本的修改语义集合时, 将当前修改语义的修改语义对应目标代 码组合无修改信息得到新的修改语义, 并添加至软件代码的当前版本的父版本的历史切片 中; 软件代码的当前版本以及各历史版本遍历完成后, 得到软件代码的各历史版本的历史 切片; 组合软件代码的各历史版本的历史切片, 得到软件代码的历史切片。 9.一种计算机设备, 包括存储器、 处理器以及存储在所述存储器中并可在所述处理器 上运行的计算机程序, 其特征在于, 所述处理器执行所述计算机程序时实现如权利要求 1至 6任一项所述软件代码的历史切片提取 方法的步骤。 10.一种计算机可读存储介质, 所述计算机可读存储介质存储有计算机程序, 其特征在 于, 所述计算机程序被处理器执行时实现如权利要求 1至6任一项 所述软件代码的历史切片 提取方法的步骤。权 利 要 求 书 2/2 页 3 CN 115098159 A 3

PDF文档 专利 软件代码的历史切片提取方法、系统、设备及存储介质

文档预览
中文文档 17 页 50 下载 1000 浏览 0 评论 0 收藏 3.0分
温馨提示:本文档共17页,可预览 3 页,如浏览全部内容或当前文档出现乱码,可开通会员下载原始文档
专利 软件代码的历史切片提取方法、系统、设备及存储介质 第 1 页 专利 软件代码的历史切片提取方法、系统、设备及存储介质 第 2 页 专利 软件代码的历史切片提取方法、系统、设备及存储介质 第 3 页
下载文档到电脑,方便使用
本文档由 SC 于 2024-03-03 12:14:29上传分享
友情链接
站内资源均来自网友分享或网络收集整理,若无意中侵犯到您的权利,敬请联系我们微信(点击查看客服),我们将及时删除相关资源。