CN112948478A - 基于链路的代码分析方法、装置、电子设备及存储介质 - Google Patents

基于链路的代码分析方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN112948478A
CN112948478A CN202110375018.XA CN202110375018A CN112948478A CN 112948478 A CN112948478 A CN 112948478A CN 202110375018 A CN202110375018 A CN 202110375018A CN 112948478 A CN112948478 A CN 112948478A
Authority
CN
China
Prior art keywords
link
database
code
change information
relation tree
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202110375018.XA
Other languages
English (en)
Inventor
焦学宁
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Eebochina Technology Co ltd
Original Assignee
Shenzhen Eebochina Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shenzhen Eebochina Technology Co ltd filed Critical Shenzhen Eebochina Technology Co ltd
Priority to CN202110375018.XA priority Critical patent/CN112948478A/zh
Publication of CN112948478A publication Critical patent/CN112948478A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/215Improving data quality; Data cleansing, e.g. de-duplication, removing invalid entries or correcting typographical errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/242Query formulation
    • G06F16/2433Query languages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/42Syntactic analysis
    • G06F8/427Parsing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请提供一种基于链路的代码分析方法、装置、电子设备及存储介质,其中,该方法包括:解析后端代码,生成后端链路;获取所述后端链路对应的数据库代码;解析所述数据库代码,生成数据库链路;根据所述后端链路和所述数据库链路判定原始代码的变化信息,获得链路关系树;将链路关系树与所述原始代码的链路关系树进行分析,获得分析结果。实施本发明实施例,能够将后端代码及数据库结合起来,通过采集程序接口的所有链路对代码进行分析检查,可以解析完整的程序,清晰全面地反映出代码的变化情况,同时通过一个程序接口能采集所有链路,能降低时间成本和使用成本,节省资源。

Description

基于链路的代码分析方法、装置、电子设备及存储介质
技术领域
本申请涉及计算机信息分析技术领域,具体而言,涉及一种基于链路的代码分析方法、装置、电子设备及存储介质。
背景技术
目前,在软件开发过程中,开发团队往往要花费大量的时间和精力发现并修改代码缺陷。静态代码分析(static code analysis)工具能够在代码构建过程中帮助开发人员快速、有效地定位代码缺陷并及时纠正这些问题,从而极大地提高软件可靠性并节省软件开发和测试成本。
现有的程序解析产品种类繁多,且都是基于代码输入的前提下,采集程序流经的链路,有且只能采集到这一条链路,不能够将一个程序接口的所有链路都采集到,这使得解析到的程序不够完整,往往会有很多缺漏,不能清晰全面地反映出程序变化情况;另外,若想将所有链路都采集出来的话,则会生成多个程序接口才可以实现,会增加时间成本和使用成本,浪费资源。
发明内容
本申请实施例的目的在于提供一种基于链路的代码分析方法、装置、电子设备及存储介质,能够将后端代码及数据库结合起来,通过采集程序接口的所有链路对代码进行分析检查,可以解析完整的程序,清晰全面地反映出代码的变化情况。
第一方面,本申请实施例提供了一种基于链路的代码分析方法,所述方法包括:
解析后端代码,生成后端链路;
获取所述后端链路对应的数据库代码;
解析所述数据库代码,生成数据库链路;
根据所述后端链路和所述数据库链路判定原始代码的变化信息,获得链路关系树;
将所述链路关系树与所述原始代码的链路关系树进行分析,获得分析结果。
在上述实现过程中,分别将后端代码以及数据库代码进行解析,进而获得程序及数据结构,并将解析到的节点组成链路作为输出;将链路的变化情况跟原始代码作为对比,并得出分析结果;能够将后端代码及数据库结合起来,通过采集程序接口的所有链路对代码进行分析检查,可以解析完整的程序,清晰全面地反映出代码的变化情况,同时通过一个程序接口能采集所有链路,能降低时间成本和使用成本,节省资源。另一方面,在获得分析结果的过程中,可以梳理出链路图,可以清楚地反映对所有代码进行了哪种操作与变动情况,且反映出与代码变化相关联的数据变化。
进一步地,获取所述后端链路对应的数据库代码的步骤,包括:
获取后端代码对应的数据库配置;
根据所述数据库配置抓取数据库代码。
在上述实现过程中,从后端代码获取相应的数据库配置,从而获得数据库的结构、表、字段等;数据库代码具体体现数据库结构内容。
进一步地,所述后端链路和所述数据库链路判定原始代码的变化信息,获得链路关系树的步骤,包括:
检测所述后端链路是否发生变化,获得所述后端链路的变化信息;
检测所述数据库链路是否发生变化,获得所述数据库链路的变化信息;
根据所述后端链路的变化信息与所述数据库链路的变化信息生成链路关系树。
在上述实现过程中,需要分别判断后端链路是否发生变化,以及数据库链路是否发生变化;根据两种链路变化情况生成链路关系树,链路关系树中包含了所有的链路信息,即可通过采集程序接口的所有链路对代码进行分析检查。
进一步地,所述检测所述数据库链路是否发生变化的步骤,包括:
判断所述数据库链路是否发生变化;
若是,则判定所述数据库链路是否包括以下操作中的任意一种或者多种:增加、删除、修改所述数据库代码。
在上述实现过程中,判断数据库链路发生何种变化,如果发生增加、删除、修改所述数据库代码,则归为一类变化,即维护型关系;如果数据库链路仅仅只发生查询变化,那么归类为查询型关系。
第二方面,本申请实施例还提供了一种基于链路的代码分析装置,包括:
后端代码解析模块,用于解析后端代码,生成后端链路;
数据库代码获取模块,用于获取所述后端链路对应的数据库代码;
数据库代码解析模块,用于解析所述数据库代码,生成数据库链路;
链路关系树生成模块,用于根据所述后端链路和所述数据库链路判定原始代码的变化信息,获得链路关系树;
分析模块,用于将所述链路关系树与所述原始代码的链路关系树进行分析,获得分析结果。
在上述实现过程中,分别将后端代码以及数据库代码进行解析,进而获得程序及数据结构,并将解析到的节点组成链路作为输出;将链路的变化情况跟原始代码作为对比,并得出分析结果;能够将后端代码及数据库结合起来,通过采集程序接口的所有链路对代码进行分析检查,可以解析完整的程序,清晰全面地反映出代码的变化情况,同时通过一个程序接口能采集所有链路,能降低时间成本和使用成本,节省资源。
进一步地,所述数据库代码获取模块包括:
数据库配置获取单元,用于获取后端代码对应的数据库配置;
数据库代码抓取单元,用于根据所述数据库配置抓取数据库代码。
在上述实现过程中,从后端代码获取相应的数据库配置,从而获得数据库的结构、表、字段等;数据库代码具体体现数据库结构内容。
进一步地,所述链路关系树生成模块包括:
后端链路检测单元,用于检测所述后端链路是否发生变化,获得所述后端链路的变化信息;
数据库链路检测单元,用于检测所述数据库链路是否发生变化,获得所述数据库链路的变化信息;
链路关系树生成单元,用于根据所述后端链路的变化信息与所述数据库链路的变化信息生成链路关系树。
在上述实现过程中,需要分别判断后端链路是否发生变化,以及数据库链路是否发生变化;根据两种链路变化情况生成链路关系树,链路关系树中包含了所有的链路信息,即可通过采集程序接口的所有链路对代码进行分析检查。
进一步地,所述数据库链路检测单元还用于判断所述数据库链路是否发生变化,若是,则判定所述数据库链路是否包括以下操作中的任意一种或者多种:增加、删除、修改所述数据库代码。
在上述实现过程中,判断数据库链路发生何种变化,如果发生增加、删除、修改所述数据库代码,则归为一类变化,即维护型关系;如果数据库链路仅仅只发生查询变化,那么归类为查询型关系。
第三方面,本申请实施例提供的一种电子设备,包括:存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如第一方面任一项所述的方法的步骤。
第四方面,本申请实施例提供的一种存储介质,所述存储介质上存储有指令,当所述指令在计算机上运行时,使得所述计算机执行如第一方面任一项所述的方法。
第五方面,本申请实施例提供的一种计算机程序产品,所述计算机程序产品在计算机上运行时,使得计算机执行如第一方面任一项所述的方法。
本公开的其他特征和优点将在随后的说明书中阐述,或者,部分特征和优点可以从说明书推知或毫无疑义地确定,或者通过实施本公开的上述技术即可得知。
为使本申请的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的基于链路的代码分析方法的流程示意图;
图2为本申请实施例提供的链路关系树的示意图;
图3为本申请实施例提供的基于链路的代码分析装置的结构组成示意图;
图4为本申请实施例提供的电子设备的结构组成示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
现有的程序解析产品种类繁多,且都是基于代码输入的前提下,采集程序流经的链路,有且只能采集到这一条链路,不能够将一个程序接口的所有链路都采集到,这使得解析到的程序不够完整,往往会有很多缺漏,不能清晰全面地反映出程序变化情况。
对上述现有技术中的问题,本申请提供了一种基于链路的代码分析方法、装置、电子设备及存储介质。
实施例一
本申请实施例中下述的基于链路的代码分析方法可应用于服务器。
如图1所示,本申请实施例的基于链路的代码分析方法,包括如下步骤:
S1,解析后端代码,生成后端链路;
S2,获取后端链路对应的数据库代码;
S3,解析数据库代码,生成数据库链路;
S4,根据后端链路和数据库链路判定原始代码的变化信息,获得链路关系树;
S5,将链路关系树与原始代码的链路关系树进行分析,获得分析结果。
在S1中,解析后端代码,生成后端链路。
示例性地,本实施例中解析的后端代码为Java代码;
将Java代码通过字节码翻译工具包进行编译;
对编译后的Java程序代码中的class文件进行解析;
程序解析的结果是链路,链路的基础结构是节点;
解析后端代码中的每个类生成节点,多个类节点生成链路。
如解析Java代码,解析结果为A.a()->B.b()->C.c(),其中A.a()、B.b()、C.c()表示类节点,大写字母表示类,小写字母表示方法函数;
读取程序中所有的代码块,生成后端链路。
在S2中,获取后端链路对应的数据库代码。
进一步地,S2包括:
获取后端代码对应的数据库配置;
根据数据库配置抓取数据库代码。
在具体实施中,获取后端代码对应的数据库配置;通过对后端程序代码的数据库配置,进行数据库连接,抓取指定数据库的所有数据模型描述。
以Java代码为例,Java程序与后端数据库加载驱动,加载驱动后连接数据库,获取资源,发送结构化查询语言(Structured Query Language,SQL)语句;根据数据库配置抓取数据库代码;当数据库接收到程序的命令后,对SQL语句进行解析并执行;执行后将结果返回给调用程序,应用程序对结果进一步处理。
在S3中,解析数据库代码,生成数据库链路。
本发明实施例中的节点分为代码节点、数据节点两种,代码节点代表着逻辑部分,数据节点代表着数据。
解析数据库代码,即对SQL语句进行解析。
通过对SQL语句的文本解析,利用正则校验以及SQL语句语法,解析出每个SQL语句的类型,使用到的数据表、表中的字段、区分查询使用的字段和数据维护使用的字段。
在S4中,根据后端链路和数据库链路判定原始代码的变化信息,获得链路关系树。
进一步地,S4包括:
检测后端链路是否发生变化,获得后端链路的变化信息;
检测数据库链路是否发生变化,获得数据库链路的变化信息;
根据后端链路的变化信息与数据库链路的变化信息生成链路关系树。
具体地,检测后端链路相较于原始代码是否发生变化,如果发生变化,则获取后端链路的变化信息;
检测数据库链路相较于原始代码是否发生变化;
如果发生变化,则进一步判断变化情况,变化情况包括:查询、增加、删除、修改数据库代码;
判断数据库链路是否发生增加、删除、修改数据库代码中的任意一种或多种。
后端链路的变化信息和数据库链路的变化信息包括以下内容:
确认代码变动引发的“链路关系与数据模型的关系”的直接影响;
直接变更结果类型1:链路发生变动,数据模型使用情况无变化;
直接变更结果类型2:链路发生变动,数据模型使用情况有变动,模型变更不包含‘维护’型关系;
直接变更结果类型3:链路发生变动,数据模型使用情况有变动,模型变更包含有‘维护’型关系;
直接变更结果类型4:链路无变化,数据模型使用情况有变动,模型变更不包含‘维护’型关系;
直接变更结果类型5:链路无变化,数据模型使用情况有变动,模型变更包含有‘维护’型关系。
类型1、2、4无间接影响,类型3、5存在间接影响;
进而,根据后端链路的变化信息与数据库链路的变化信息生成链路关系树。
图2示出了实施例述及的链路关系树,一个接口对应5种真是直接变更结果类型,其中API表示接口信息,下面column分别对应5种类型,table表示中间判断过程,如table2表示数据库链路未发生变化的一种情况,table1表示数据库链路发生包含‘维护’型关系变化的两种情况,table3表示数据库链路发生不包含‘维护’型关系变化的两种情况。
在S5中,将链路关系树与原始代码的链路关系树进行分析,获得分析结果。
示例性地,链路分析分别从“数据接口->数据表->数据字段”以及“数据字段->数据表->接口”两个方面进行分析;两条分析结果分别从正向、反向对链路的变化情况做分析,可以对应到具体发生变化的接口以及表、字段。
对两个版本的代码作对比,则可以得出分析结果,具体地,可以显示出发生变化的字段以及具体发生了何种变化,方便后续对新增接口数量、修改接口数量、删除接口数量、间接影响接口数量做概况统计。
本申请方法可以反映出某一时刻的代码变化,在代码、数据发生变化前的系统代码与发生变化后的代码都可以生成相应的链路关系图,基于链路关系图进行差异分析,并基于差异对比的结果,给出预期的版本迭代而带来的可能影响,进而生成差异统计报表以及影响边界统计报表。
本申请方法的适用范围较广,适用于所有包含后端代码和数据库代码编写而成的系统、子系统,不仅可以用于分析单一功能子系统,对于拥有多功能子系统的大系统也同样适用。
示例性地,现有项目管理系统A(大系统),其中项目管理系统A又包含考勤子系统B、财务子系统C、人事子系统D和技术子系统E。对人事子系统D进行代码分析,提取D对应的所有后端代码和数据库代码,将后端代码和数据库代码分别解析后生成链路关系树,最终呈现出人事子系统D的所有变化情况。
也可以对项目管理系统A进行代码分析,将项目管理系统A中的四个子系统A、B、C、D分别进行代码分析,将分析得到的四个链路关系树进行汇总,生成一个更大的关系树,此关系树可以清楚地表示项目管理系统A所有代码发生的变化,简单明了,可以方便全面展示出整个系统的代码变化情况,同时只需要通过一个程序接口,便可以采集整个系统的链路关系树,清晰明了,易于查看。
在本申请方法实施例中,大系统与小系统之间直接相互有影响,数据使用上相互交叉。在生成的链路关系树中,关系树以数据作为起点,清晰直观地展示出子系统、功能模块的变化情况,以及各个子系统、功能模块之间的关联,可以将各种关联变化直观地展示出来。
在本申请方法实施例中,分别将后端代码以及数据库代码进行解析,进而获得程序及数据结构,并将解析到的节点组成链路作为输出;将链路的变化情况跟原始代码作为对比,并得出分析结果;能够将后端代码及数据库结合起来,通过采集程序接口的所有链路对代码进行分析检查,可以解析完整的程序,清晰全面地反映出代码的变化情况,同时通过一个程序接口能采集所有链路,能降低时间成本和使用成本,节省资源。另一方面,在获得分析结果的过程中,可以梳理出链路图,可以清楚地反映对所有代码进行了哪种操作与变动情况,且反映出与代码变化相关联的数据变化。
实施例二
为了执行上述实施例一对应的方法,以实现相应的功能和技术效果,下面提供一种基于链路的代码分析装置。
参见图3,图3提供了一种基于链路的代码分析装置,包括:
后端代码解析模块1,用于解析后端代码,生成后端链路;
数据库代码获取模块2,用于获取后端链路对应的数据库代码;
数据库代码解析模块3,用于解析数据库代码,生成数据库链路;
链路关系树生成模块4,用于根据后端链路和数据库链路判定原始代码的变化信息,获得链路关系树;
分析模块5,用于将链路关系树与原始代码的链路关系树进行分析,获得分析结果。
可选地,数据库代码获取模块2包括:
数据库配置获取单元,用于获取后端代码对应的数据库配置;
数据库代码抓取单元,用于根据数据库配置抓取数据库代码。
可选地,链路关系树生成模块4包括:
后端链路检测单元,用于检测后端链路是否发生变化,获得后端链路的变化信息;
数据库链路检测单元,用于检测数据库链路是否发生变化,获得数据库链路的变化信息;
链路关系树生成单元,用于根据后端链路的变化信息与数据库链路的变化信息生成链路关系树。
数据库链路检测单元还用于判断数据库链路是否发生变化,若是,则判定数据库链路是否包括以下操作中的任意一种或者多种:增加、删除、修改数据库代码。
上述的基于链路的代码分析装置可实施上述实施例一的基于链路的代码分析方法。上述实施例一中的可选项也适用于本实施例,这里不再详述。
本申请装置实施例的其余内容可参照上述实施例一的内容,在本实施例中,不再进行赘述。
实施例三
本申请实施例提供一种电子设备,包括存储器及处理器,该存储器用于存储计算机程序,该处理器运行计算机程序以使电子设备执行实施例一的基于链路的代码分析方法。
可选地,上述电子设备可以是服务器。
请参见图4,图4为本申请实施例提供的电子设备的结构组成示意图。该电子设备可以包括处理器41、通信接口42、存储器43和至少一个通信总线44。其中,通信总线44用于实现这些组件直接的连接通信。其中,本申请实施例中设备的通信接口42用于与其他节点设备进行信令或数据的通信。处理器41可以是一种集成电路芯片,具有信号的处理能力。
上述的处理器41可以是通用处理器,包括中央处理器(Central ProcessingUnit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器41也可以是任何常规的处理器等。
存储器43可以是,但不限于,随机存取存储器(Random Access Memory,RAM),只读存储器(Read Only Memory,ROM),可编程只读存储器(Programmable Read-Only Memory,PROM),可擦除只读存储器(Erasable Programmable Read-Only Memory,EPROM),电可擦除只读存储器(Electric Erasable Programmable Read-Only Memory,EEPROM)等。存储器43中存储有计算机可读取指令,当计算机可读取指令由所述处理器41执行时,设备可以执行上述图1至图2方法实施例涉及的各个步骤。
可选地,电子设备还可以包括存储控制器、输入输出单元。存储器43、存储控制器、处理器41、外设接口、输入输出单元各元件相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通信总线44实现电性连接。处理器41用于执行存储器43中存储的可执行模块,例如设备包括的软件功能模块或计算机程序。
输入输出单元用于提供给用户创建任务以及为该任务创建启动可选时段或预设执行时间以实现用户与服务器的交互。输入输出单元可以是,但不限于,鼠标和键盘等。
可以理解,图4所示的结构仅为示意,电子设备还可包括比图4中所示更多或者更少的组件,或者具有与图4所示不同的配置。图4中所示的各组件可以采用硬件、软件或其组合实现。
另外,本申请实施例还提供一种计算机可读存储介质,其存储有计算机程序,该计算机程序被处理器执行时实现实施例一的基于链路的代码分析方法。
本申请实施例还提供一种计算机程序产品,该计算机程序产品在计算机上运行时,使得计算机执行方法实施例所述的方法。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

Claims (10)

1.一种基于链路的代码分析方法,其特征在于,包括:
解析后端代码,生成后端链路;
获取所述后端链路对应的数据库代码;
解析所述数据库代码,生成数据库链路;
根据所述后端链路和所述数据库链路判定原始代码的变化信息,获得链路关系树;
将所述链路关系树与所述原始代码的链路关系树进行分析,获得分析结果。
2.如权利要求1所述的基于链路的代码分析方法,其特征在于,所述获取所述后端链路对应的数据库代码的步骤,包括:
获取后端代码对应的数据库配置;
根据所述数据库配置抓取数据库代码。
3.如权利要求1所述的基于链路的代码分析方法,其特征在于,所述根据所述后端链路和所述数据库链路判定原始代码的变化信息,获得链路关系树的步骤,包括:
检测所述后端链路是否发生变化,获得所述后端链路的变化信息;
检测所述数据库链路是否发生变化,获得所述数据库链路的变化信息;
根据所述后端链路的变化信息与所述数据库链路的变化信息生成链路关系树。
4.如权利要求3所述的基于链路的代码分析方法,其特征在于,所述检测所述数据库链路是否发生变化的步骤,包括:
判断所述数据库链路是否发生变化;
若是,则判定所述数据库链路是否包括以下操作中的任意一种或者多种:增加、删除、修改所述数据库代码。
5.一种基于链路的代码分析装置,其特征在于,所述装置包括:
后端代码解析模块,用于解析后端代码,生成后端链路;
数据库代码获取模块,用于获取所述后端链路对应的数据库代码;
数据库代码解析模块,用于解析所述数据库代码,生成数据库链路;
链路关系树生成模块,用于根据所述后端链路和所述数据库链路判定原始代码的变化信息,获得链路关系树;
分析模块,用于将所述链路关系树与所述原始代码的链路关系树进行分析,获得分析结果。
6.如权利要求5所述的基于链路的代码分析装置,其特征在于,所述数据库代码获取模块包括:
数据库配置获取单元,用于获取后端代码对应的数据库配置;
数据库代码抓取单元,用于根据所述数据库配置抓取数据库代码。
7.如权利要求5所述的基于链路的代码分析装置,其特征在于,所述链路关系树生成模块包括:
后端链路检测单元,用于检测所述后端链路是否发生变化,获得所述后端链路的变化信息;
数据库链路检测单元,用于检测所述数据库链路是否发生变化,获得所述数据库链路的变化信息;
链路关系树生成单元,用于根据所述后端链路的变化信息与所述数据库链路的变化信息生成链路关系树。
8.如权利要求7所述的基于链路的代码分析装置,其特征在于,所述数据库链路检测单元还用于判断所述数据库链路是否发生变化,若是,则判定所述数据库链路是否包括以下操作中的任意一种或者多种:增加、删除、修改所述数据库代码。
9.一种电子设备,其特征在于,包括存储器及处理器,所述存储器用于存储计算机程序,所述处理器运行所述计算机程序以使所述电子设备执行根据权利要求1至4中任一项所述的基于链路的代码分析方法。
10.一种计算机可读存储介质,其特征在于,其存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至4中任一项所述的基于链路的代码分析方法。
CN202110375018.XA 2021-04-07 2021-04-07 基于链路的代码分析方法、装置、电子设备及存储介质 Pending CN112948478A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110375018.XA CN112948478A (zh) 2021-04-07 2021-04-07 基于链路的代码分析方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110375018.XA CN112948478A (zh) 2021-04-07 2021-04-07 基于链路的代码分析方法、装置、电子设备及存储介质

Publications (1)

Publication Number Publication Date
CN112948478A true CN112948478A (zh) 2021-06-11

Family

ID=76230873

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110375018.XA Pending CN112948478A (zh) 2021-04-07 2021-04-07 基于链路的代码分析方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN112948478A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116955504A (zh) * 2023-09-21 2023-10-27 太平金融科技服务(上海)有限公司 一种数据处理方法、装置、电子设备和存储介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109582300A (zh) * 2018-11-30 2019-04-05 阿里巴巴集团控股有限公司 基于路径的代码变更分析方法、装置及设备
CN109871319A (zh) * 2019-01-18 2019-06-11 深圳壹账通智能科技有限公司 项目代码扫描方法、装置、计算机设备及存储介质
CN110990425A (zh) * 2019-11-28 2020-04-10 中科驭数(北京)科技有限公司 硬件数据库的jdbc驱动方法及装置
CN111666206A (zh) * 2020-04-30 2020-09-15 北京百度网讯科技有限公司 变更代码的影响范围的获取方法、装置、设备及存储介质
CN112181430A (zh) * 2020-09-29 2021-01-05 北京云族佳科技有限公司 代码变更统计方法、装置、电子设备及存储介质
CN112486563A (zh) * 2020-12-02 2021-03-12 车智互联(北京)科技有限公司 一种代码管理方法、系统、计算设备及可读存储介质
CN112540930A (zh) * 2020-12-28 2021-03-23 北京百家科技集团有限公司 一种针对软件更新的评测方法、装置以及电子设备

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109582300A (zh) * 2018-11-30 2019-04-05 阿里巴巴集团控股有限公司 基于路径的代码变更分析方法、装置及设备
CN109871319A (zh) * 2019-01-18 2019-06-11 深圳壹账通智能科技有限公司 项目代码扫描方法、装置、计算机设备及存储介质
CN110990425A (zh) * 2019-11-28 2020-04-10 中科驭数(北京)科技有限公司 硬件数据库的jdbc驱动方法及装置
CN111666206A (zh) * 2020-04-30 2020-09-15 北京百度网讯科技有限公司 变更代码的影响范围的获取方法、装置、设备及存储介质
CN112181430A (zh) * 2020-09-29 2021-01-05 北京云族佳科技有限公司 代码变更统计方法、装置、电子设备及存储介质
CN112486563A (zh) * 2020-12-02 2021-03-12 车智互联(北京)科技有限公司 一种代码管理方法、系统、计算设备及可读存储介质
CN112540930A (zh) * 2020-12-28 2021-03-23 北京百家科技集团有限公司 一种针对软件更新的评测方法、装置以及电子设备

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116955504A (zh) * 2023-09-21 2023-10-27 太平金融科技服务(上海)有限公司 一种数据处理方法、装置、电子设备和存储介质
CN116955504B (zh) * 2023-09-21 2023-12-19 太平金融科技服务(上海)有限公司 一种数据处理方法、装置、电子设备和存储介质

Similar Documents

Publication Publication Date Title
US9535818B2 (en) Identifying high impact bugs
US8166348B1 (en) Method of debugging a software system
US8607198B2 (en) Cross-concern code coverage assessment
US9613074B2 (en) Data generation for performance evaluation
Stefan et al. Unit testing performance in java projects: Are we there yet?
US10496517B2 (en) System and method for providing runtime diagnostics of executing applications
US8904352B2 (en) Systems and methods for processing source code during debugging operations
CN102804147A (zh) 执行abap源代码的代码检查的代码检查执行系统
CN107045477B (zh) 一种可进行多维度检测的质量评估平台
CN113139192B (zh) 基于知识图谱的第三方库安全风险分析方法及系统
Chatzidimitriou et al. Npm-miner: An infrastructure for measuring the quality of the npm registry
KR101696694B1 (ko) 역추적을 이용한 소스 코드 취약점 분석 방법 및 장치
CN114385763A (zh) 数据血缘分析方法、装置、系统及可读存储介质
CN115033894A (zh) 一种基于知识图谱的软件组件供应链安全检测方法及装置
CN114579203B (zh) 脚本文件检查方法、装置、电子设备及存储介质
CN112948478A (zh) 基于链路的代码分析方法、装置、电子设备及存储介质
CN111258562A (zh) Java代码质量检查方法、装置、设备和存储介质
CN110580170A (zh) 软件性能风险的识别方法及装置
CN116483888A (zh) 程序评估方法及装置、电子设备和计算机可读存储介质
CN114880673A (zh) 针对小程序源代码进行隐私数据泄露检测的方法及系统
CN115113858A (zh) 一种类循环依赖的检测方法及系统
CN114691197A (zh) 代码分析方法、装置、电子设备和存储介质
Hammad et al. An approach to automatically enforce object-oriented constraints
CN113220586A (zh) 一种自动化的接口压力测试执行方法、装置和系统
CN116483735B (zh) 一种代码变更的影响分析方法、装置、存储介质及设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination