System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及大数据,特别是涉及一种影响范围的确定方法、装置、计算机设备、存储介质和计算机程序产品。
技术介绍
1、在软件程序中,大多数代码都不是独立运行的,其相互之间可能存在嵌套的调用关系。当其中一个代码改动后,往往需要分析这个改动点对软件程序整体而言造成的影响范围,再根据改动点对影响范围内的所有代码进行适应修改。
2、目前在使用idea开发工具(一种应用于java语言的集成开发工具)时,通常使用人工手动搜索的方式来获取与代码改动点相关的被调用代码,进而根据被调用代码确定代码改动点的影响范围。但是在调用关系较为复杂的情况下,采用上述人工手动搜索的方式时,容易出现差错。
技术实现思路
1、基于此,有必要针对上述技术问题,提供一种准确率较高的影响范围的确定方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。
2、第一方面,本申请提供了一种影响范围的确定方法。所述方法包括:
3、获取代码改动点;
4、根据所述代码改动点的定义类别,在源文件中查询得到与所述代码改动点存在直接关联关系的第一查询结果;
5、根据所述第一查询结果在所述源文件中递归查询得到与所述代码改动点存在间接关联关系的第二查询结果;
6、根据所述第一查询结果和所述第二查询结果,确定所述代码改动点的影响范围。
7、在其中一个实施例中,所述根据所述第一查询结果和所述第二查询结果,确定所述代码改动点的影响范围,包括:
8、分别建立所
9、对所述第一调用链和所述第二调用链进行拼接,形成与所述代码改动点对应的目标调用链;
10、根据所述目标调用链,确定所述代码改动点的影响范围。
11、在其中一个实施例中,所述根据所述代码改动点的定义类别,在源文件中查询得到与所述代码改动点存在直接关联关系的第一查询结果,包括:
12、当所述代码改动点的定义类别为类时,在所述源文件中查询得到使用所述代码改动点的目标对象,将所述目标对象作为所述第一查询结果;
13、当所述代码改动点的定义类别为方法时,在所述源文件中查询得到调用所述代码改动点的目标方法,将所述目标方法作为所述第一查询结果。
14、在其中一个实施例中,所述根据所述第一查询结果在所述源文件中递归查询得到与所述代码改动点存在间接关联关系的第二查询结果,包括:
15、当所述代码改动点的定义类别为所述类时,以所述目标对象为查询主键在所述源文件中查询得到使用所述目标对象的定义方法;
16、以所述定义方法作为新的查询主键在所述源文件中查询得到调用所述定义方法的调用方法;
17、以所述调用方法作为新的查询主键在所述源文件中进行递归查询,直至所述源文件中不存在调用所述查询主键的调用方法时,得到递归查询结果;
18、根据所述定义方法、所述调用方法以及所述递归查询结果,确定所述第二查询结果。
19、在其中一个实施例中,所述根据所述第一查询结果在所述源文件中递归查询得到与所述代码改动点存在间接关联关系的第二查询结果,包括:
20、当所述代码改动点的定义类别为所述方法时,以所述目标方法作为查询主键在所述源文件中进行递归查询,直至所述源文件中不存在调用所述查询主键的调用方法时,得到递归查询结果;
21、根据所述递归查询结果,确定所述第二查询结果。
22、第二方面,本申请还提供了一种影响范围的确定方法。所述方法包括:
23、运行集成开发工具插件,通过所述集成开发工具插件响应于改动点选择操作,获取代码改动点;
24、通过所述集成开发工具插件根据所述代码改动点的定义类别,调用预设检索工具在源文件中查询得到与所述代码改动点存在直接关联关系的第一查询结果;
25、通过所述集成开发工具插件根据所述第一查询结果,调用所述预设检索工具在所述源文件中递归查询得到与所述代码改动点存在间接关联关系的第二查询结果;
26、通过所述集成开发工具插件根据所述第一查询结果和所述第二查询结果,确定所述代码改动点的影响范围。
27、第三方面,本申请还提供了一种影响范围的确定装置。所述装置包括:
28、改动点获取模块,用于获取代码改动点;
29、分类查询模块,用于根据所述代码改动点的定义类别,在源文件中查询得到与所述代码改动点存在直接关联关系的第一查询结果;
30、递归查询模块,用于根据所述第一查询结果在所述源文件中递归查询得到与所述代码改动点存在间接关联关系的第二查询结果;
31、范围确定模块,用于根据所述第一查询结果和所述第二查询结果,确定所述代码改动点的影响范围。
32、第四方面,本申请还提供了一种影响范围的确定装置。所述装置包括:
33、参数获取模块,用于运行集成开发工具插件,通过所述集成开发工具插件响应于改动点选择操作,获取代码改动点;
34、调用分析模块,用于通过所述集成开发工具插件根据所述代码改动点的定义类别,调用预设检索工具在源文件中查询得到与所述代码改动点存在直接关联关系的第一查询结果,通过所述集成开发工具插件根据所述第一查询结果,调用所述预设检索工具在所述源文件中递归查询得到与所述代码改动点存在间接关联关系的第二查询结果;
35、关系拼接模块,用于通过所述集成开发工具插件根据所述第一查询结果和所述第二查询结果,确定所述代码改动点的影响范围。
36、第五方面,本申请还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述第一方面任一项实施例所述的影响范围的确定方法。
37、第六方面,本申请还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面任一项实施例所述的影响范围的确定方法。
38、第七方面,本申请还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述第一方面任一项实施例的影响范围的确定方法。
39、上述影响范围的确定方法、装置、计算机设备、存储介质和计算机程序产品,通过获取代码改动点;根据代码改动点的定义类别,在源文件中查询得到与代码改动点存在直接关联关系的第一查询结果;根据第一查询结果在源文件中递归查询得到与代码改动点存在间接关联关系的第二查询结果;根据第一查询结果和第二查询结果,确定代码改动点的影响范围,能够降低影响范围的确定错误率。
本文档来自技高网...【技术保护点】
1.一种影响范围的确定方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述根据所述第一查询结果和所述第二查询结果,确定所述代码改动点的影响范围,包括:
3.根据权利要求1所述的方法,其特征在于,所述根据所述代码改动点的定义类别,在源文件中查询得到与所述代码改动点存在直接关联关系的第一查询结果,包括:
4.根据权利要求3所述的方法,其特征在于,所述根据所述第一查询结果在所述源文件中递归查询得到与所述代码改动点存在间接关联关系的第二查询结果,包括:
5.根据权利要求3所述的方法,其特征在于,所述根据所述第一查询结果在所述源文件中递归查询得到与所述代码改动点存在间接关联关系的第二查询结果,包括:
6.一种影响范围的确定方法,其特征在于,所述方法包括:
7.一种影响范围的确定装置,其特征在于,所述装置包括:
8.一种影响范围的确定装置,其特征在于,所述装置包括:
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。
11.一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。
...【技术特征摘要】
1.一种影响范围的确定方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述根据所述第一查询结果和所述第二查询结果,确定所述代码改动点的影响范围,包括:
3.根据权利要求1所述的方法,其特征在于,所述根据所述代码改动点的定义类别,在源文件中查询得到与所述代码改动点存在直接关联关系的第一查询结果,包括:
4.根据权利要求3所述的方法,其特征在于,所述根据所述第一查询结果在所述源文件中递归查询得到与所述代码改动点存在间接关联关系的第二查询结果,包括:
5.根据权利要求3所述的方法,其特征在于,所述根据所述第一查询结果在所述源文件中递归查询得到与所述代码改动点存在间接关联关系的第二查询结果,...
【专利技术属性】
技术研发人员:郑泽奇,张顺,陈颖,
申请(专利权)人:中国银行股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。