[发明专利]一种代码重构方法及装置在审
申请号: | 202011156119.X | 申请日: | 2020-10-26 |
公开(公告)号: | CN114489778A | 公开(公告)日: | 2022-05-13 |
发明(设计)人: | 梁广泰;王一凡;张晓东 | 申请(专利权)人: | 华为云计算技术有限公司 |
主分类号: | G06F8/72 | 分类号: | G06F8/72 |
代理公司: | 北京同达信恒知识产权代理有限公司 11291 | 代理人: | 朱琳琳 |
地址: | 550025 贵州省贵阳市*** | 国省代码: | 贵州;52 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 代码 方法 装置 | ||
1.一种代码重构方法,其特征在于,所述方法包括:
获取集成开发环境中代码的跳转信息,所述跳转信息用于指示所述代码中的代码跳转行为;
根据所述跳转信息确定所述代码中的目标关注范围;
检测所述目标关注范围内的代码的潜在风险,对存在所述潜在风险的代码进行重构。
2.如权利要求1所述的方法,其特征在于,所述根据所述跳转信息确定所述代码中的目标关注范围,包括:
根据所述跳转信息从所述代码中确定候选关注范围,所述候选关注范围为发生代码跳转行为的次数大于预设阈值的代码范围;
向用户展示所述候选关注范围;
根据所述用户的选择或确认操作,从所述候选关注范围中确定所述目标关注范围。
3.如权利要求1或2所述的方法,其特征在于,所述方法还包括:
根据所述跳转信息确定所述代码所在的软件代码架构中的函数的调用关系:
向所述用户展示所述函数的调用关系;
根据所述用户对所述函数的调用关系的选择,确定所述用户选择的所述函数的调用关系。
4.如权利要求3所述的方法,其特征在于,所述检测所述目标关注范围内的潜在风险,包括:
根据所述用户选择的所述函数的调用关系,在所述目标关注范围内检测所述潜在风险。
5.如权利要求1~4任一所述的方法,其特征在于,所述检测所述目标关注范围内的潜在风险,对存在所述潜在风险的代码进行重构,包括:
检测所述目标关注范围内的潜在风险,生成所述潜在风险的重构策略;
向所述用户展示基于所述重构策略对存在所述潜在风险的代码进行重构后的代码;
在所述用户对所述重构后的代码确认后,保存所述重构后的代码。
6.如权利要求1~5任一所述的方法,其特征在于,所述检测所述目标关注范围内的潜在风险之后,还包括;
向所述用户展示检测出的所述潜在风险。
7.如权利要求1~6任一所述的方法,其特征在于,所述跳转信息包括下列信息的部分或全部:
跳转的起始位置、跳转的终止位置、跳转前停留时长、跳转的起始位置处作用域类型、跳转的终止位置处作用域类型、跳转的起始位置处的对象类型、跳转的终止位置处的对象类型、跳转的起始位置处的对象标识、跳转的终止位置处的对象标识、跳转前代码是否有修改、是否为回退跳转、是否为前进跳转、跳转的起始位置与终止位置是否是由所述用户选择的、跳转的起始位置处的对象的跳转总次数、跳转的终止位置处的对象的跳转总次数。
8.一种代码重构装置,其特征在于,所述装置包括提取装置、识别模块以及重构策略模块:
所述提取模块,用于获取集成开发环境中代码的跳转信息,所述跳转信息用于指示所述代码中的代码跳转行为;
所述识别模块,用于根据所述跳转信息确定所述代码中的目标关注范围;
所述重构策略模块,用于检测所述目标关注范围内的代码的潜在风险,对存在所述潜在风险的代码进行重构。
9.如权利要求8所述的装置,其特征在于,所述识别模块在根据所述跳转信息确定所述代码中的目标关注范围时,具体用于:
根据所述跳转信息从所述代码中确定候选关注范围,所述候选关注范围为发生代码跳转行为的次数大于预设阈值的代码范围;
向用户展示所述候选关注范围;
根据所述用户的选择或确认操作,从所述候选关注范围中确定所述目标关注范围。
10.如权利要求8或9所述的装置,其特征在于,所述识别模块,还用于:
根据所述跳转信息确定所述代码所在的软件代码架构中的函数的调用关系:
向所述用户展示所述函数的调用关系;
根据所述用户对所述函数的调用关系的选择,确定所述用户选择的所述函数的调用关系。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为云计算技术有限公司,未经华为云计算技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011156119.X/1.html,转载请声明来源钻瓜专利网。