代码间调用关系的分析方法技术

技术编号:39716931 阅读:8 留言:0更新日期:2023-12-17 23:24
本申请公开了一种代码间调用关系的分析方法

【技术实现步骤摘要】
代码间调用关系的分析方法、装置、设备及存储介质


[0001]本申请涉及金融科技及软件开发
,尤其涉及一种代码间调用关系的分析方法

装置

设备及存储介质


技术介绍

[0002]随着需求的迭代更新,应用软件的代码体量越来越大,尤其是在金融科技领域,例如银行

保险等行业

应用的业务流程复杂,业务形态多样,需要对接的外部关联系统较多,对外提供的服务也很多,不同的功能需要部署不同的代码模块

庞大的代码量,对于非原代码开发人员而言,熟悉每个应用的代码结构会非常吃力,难以在短时间内高效地梳理出应用所需要调取的其他应用接口有哪些,本地接口需要为谁提供服务等代码间调用关系等信息


技术实现思路

[0003]本申请的主要目的在于提供一种代码间调用关系的分析方法

装置

设备及存储介质,可以解决现有技术中难以梳理代码间调用关系的技术问题

[0004]为实现上述目的,本申请第一方面提供一种代码间调用关系的分析方法,该方法包括:
[0005]从存放代码的目标文件中读取待分析代码;
[0006]对待分析代码进行逐行代码分析,确定每行代码是否存在方法调用;
[0007]从存在方法调用的目标代码行中提取出被调用的第一方法的方法名;
[0008]确定在待分析代码中调用第一方法的第二方法的方法名;
[0009]根据方法名建立第一方法与第二方法之间的调用映射关系

[0010]为实现上述目的,本申请第二方面提供一种代码间调用关系的分析装置,该装置包括:
[0011]代码读取模块,用于从存放代码的目标文件中读取待分析代码;
[0012]代码行分析模块,用于对待分析代码进行逐行代码分析,确定每行代码是否存在方法调用;
[0013]方法名提取模块,用于从存在方法调用的目标代码行中提取出被调用的第一方法的方法名;
[0014]调用确定模块,用于确定在待分析代码中调用第一方法的第二方法的方法名;
[0015]映射构建模块,用于根据方法名建立第一方法与第二方法之间的调用映射关系

[0016]为实现上述目的,本申请第三方面提供一种计算机可读存储介质,存储有计算机程序,计算机程序被处理器执行时,使得处理器执行以下步骤:
[0017]从存放代码的目标文件中读取待分析代码;
[0018]对待分析代码进行逐行代码分析,确定每行代码是否存在方法调用;
[0019]从存在方法调用的目标代码行中提取出被调用的第一方法的方法名;
[0020]确定在待分析代码中调用第一方法的第二方法的方法名;
[0021]根据方法名建立第一方法与第二方法之间的调用映射关系

[0022]为实现上述目的,本申请第四方面提供一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,计算机程序被处理器执行时,使得处理器执行以下步骤:
[0023]从存放代码的目标文件中读取待分析代码;
[0024]对待分析代码进行逐行代码分析,确定每行代码是否存在方法调用;
[0025]从存在方法调用的目标代码行中提取出被调用的第一方法的方法名;
[0026]确定在待分析代码中调用第一方法的第二方法的方法名;
[0027]根据方法名建立第一方法与第二方法之间的调用映射关系

[0028]采用本申请实施例,具有如下有益效果:
[0029]本申请通过读取目标文件,逐行读取并分析代码行中的被调用方法,提取被调用方法的方法名,确定第一方法与第二方法之间的调用关系,实现了高效

快速

自动化地代码调用关系分析,使得代码之间的调用依赖关系一目了然,新手或非原代码开发人员也能快速了解每个功能的执行链路,进而提升工作效率,也可以用于快速定位代码问题

尤其可以解决金融科技领域,例如银行行

保险等行业中业务流程复杂

形态多样

调用外部系统较多

对外提供服务较多的大系统的代码梳理问题,使得代码梳理更加高效和全自动化,降低了人工成本,省时省力

附图说明
[0030]为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图

[0031]其中:
[0032]图1为本申请实施例中代码间调用关系的分析方法的应用环境图;
[0033]图2为本申请实施例中代码间调用关系的分析方法的流程图;
[0034]图3为本申请实施例中调用关系链路图的示意图;
[0035]图4为本申请实施例中代码间调用关系的分析装置的结构框图;
[0036]图5为本申请实施例中计算机设备的结构框图

具体实施方式
[0037]下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚

完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例

基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围

[0038]图1为一个实施例中代码间调用关系的分析方法的应用环境图

参照图1,该代码间调用关系的分析方法应用于代码间调用关系的分析系统

该代码间调用关系的分析系统包括终端
110
和服务器
120。
终端
110
和服务器
120
通过网络连接,终端
110
具体可以是台式终端或移动终端,移动终端具体可以是手机

平板电脑

笔记本电脑等中的至少一种

服务器
120
可以用独立的服务器或者是多个服务器组成的服务器集群来实现

终端
110
用于将待分析代码存放于目标文件中,服务器
120
用于从存放代码的目标文件中读取待分析代码;对待分析代码进行逐行代码分析,确定每行代码是否存在方法调用;从存在方法调用的目标代码行中提取出被调用的第一方法的方法名;确定在待分析代码中调用第一方法的第二方法的方法名;根据方法名建立第一方法与第二方法之间的调用映射关系

[0039]如图2所示,在一个实施例中,提供了一种代码间调用关系的分析方法

该代码间本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.
一种代码间调用关系的分析方法,其特征在于,所述方法包括:从存放代码的目标文件中读取待分析代码;对所述待分析代码进行逐行代码分析,确定每行代码是否存在方法调用;从存在方法调用的目标代码行中提取出被调用的第一方法的方法名;确定在所述待分析代码中调用所述第一方法的第二方法的方法名;根据所述方法名建立所述第一方法与所述第二方法之间的调用映射关系
。2.
根据权利要求1所述的方法,其特征在于,所述从存在方法调用的目标代码行中提取出被调用的第一方法的方法名,包括:从存在方法调用的目标代码行中

确定被调用的第一方法的方法名所在的子字符串的开始截取位置和终止截取位置;从所述目标代码行中截取从所述开始截取位置到所述终止截取位置之间的所有字符,得到所述被调用的第一方法的方法名
。3.
根据权利要求1所述的方法,其特征在于,所述根据所述方法名建立所述第一方法与所述第二方法之间的调用映射关系,包括:将所述第二方法的方法名作为
key、
所述第一方法的方法名作为
value
,将得到的目标键值对作为调用映射关系存入创建的
HashMap

。4.
根据权利要求1所述的方法,其特征在于,在根据所述方法名建立所述第一方法与所述第二方法之间的调用映射关系之后,所述方法还包括:根据从至少一个不同文件夹路径的所有目标文件中获取的所有调用映射关系,生成调用关系链路图,其中,不同文件夹路径所对应的目标文件夹用于存储不同代码仓库的代码
。5.
根据权利要求4所述的方法,其特征在于,所述根据从至少一个不同文件夹路径的所有目标文件中获取的所有调用映射关系,生成调用关系链路图,包括:根据从至少...

【专利技术属性】
技术研发人员:程丽华
申请(专利权)人:平安银行股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1