一种数据处理方法和装置制造方法及图纸

技术编号:32362320 阅读:14 留言:0更新日期:2022-02-20 03:31
本申请公开一种数据处理方法,基于源代码项目文件提取第一结构数据,并根据第一结构数据与基于待比较代码文件生成的第二结构数据比较相似性,进而得到源代码项目文件和待比较代码文件的相似性。相较于现有技术,可以大大减少计算负担,提升数据处理效率。由于第一结构数据相较于源代码项目文件,具有占用存储空间较小的特点,因此有效节省运行上述数据处理方法的计算机的存储空间。方法的计算机的存储空间。方法的计算机的存储空间。

【技术实现步骤摘要】
一种数据处理方法和装置


[0001]本申请涉及软件开发
,尤其涉及一种数据处理方法和装置。

技术介绍

[0002]对待分析的软件进行溯源分析是评估计算软件项目自主可控程度的重要环节之一,其效率和准确程度对评估工作有重要影响。
[0003]目前,对软件项目进行快速溯源,在软件项目库中查找该软件项目最相似的项目,通常采用抽象结构树(abstract structure tree,AST)算法。具体的,对待分析的软件项目的代码文件中所有函数进行抽象语法树的生成处理,与项目库中每个项目的抽象语法树的对比,计算得到软件库中与该待分析的代码文件最为相似的项目。
[0004]然而,软件项目的代码本身规模较大,包含数万个代码文件;而软件项目库的规模更是海量,通常包含数以十亿的代码文件。所以在包含数以十亿文件的软件项目库中寻找与数万个文件最为相似的软件项目,需要耗费大量计算资源和占用大量处理时间。

技术实现思路

[0005]本申请第一方面提供一种数据处理方法,包括:
[0006]获取源代码项目文件,所述源代码项目文件包括一个或多个文件,所述文件包括所述文件的路径;
[0007]根据所述源代码项目文件,提取所述源代码项目文件中所述文件的名称和所述文件的路径,生成第一结构数据,所述第一结构数据包括所述文件的名称和所述文件的路径;
[0008]获取第二结构数据,所述第二结构数据为待比较的结构数据,所述第二结构数据包括待比较代码文件的文件名称和路径;
[0009]根据所述第一结构数据和所述第二结构数据,生成第一比较结果,所述第一比较结果指示所述源代码项目文件与所述待比较代码文件的相似性。
[0010]本申请第二方面提供一种数据处理装置,包括:
[0011]获取模块,用于获取源代码项目文件,所述源代码项目文件包括一个或多个文件,所述文件包括所述文件的路径;
[0012]处理模块,用于根据所述源代码项目文件,提取所述源代码项目文件中所述文件的名称和所述文件的路径,生成第一结构数据,所述第一结构数据包括所述文件的名称和所述文件的路径;
[0013]所述获取模块,还用于获取第二结构数据,所述第二结构数据为待比较的结构数据,所述第二结构数据包括待比较代码文件的文件名称和路径;
[0014]所述处理模块,还用于根据所述第一结构数据和所述第二结构数据,生成第一比较结果,所述第一比较结果指示所述源代码项目文件与所述待比较代码文件的相似性。
[0015]第三方面,本申请提供一种数据处理装置,数据处理装置可以包括一个或一个以上处理器、存储器以及通信接口。
[0016]处理器、存储器以及通信接口通过总线相接。
[0017]存储器用于存储程序指令,处理器调用存储器中存储的程序指令,以执行上述第一方面数据处理方法中的步骤。
[0018]第四方面、本申请还提供了一种计算机装置,包括处理器,该处理器在执行存储于存储器上的计算机程序时,用于实现本专利技术实施例第一方面提供的数据处理方法。
[0019]第五方面、本申请还提供了一种可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时,用于实现本专利技术实施例第一方面提供的数据处理方法。
[0020]从以上技术方案可以看出,本申请实施例具有以下优点:
[0021]基于源代码项目文件提取第一结构数据,并根据第一结构数据与基于待比较代码文件生成的第二结构数据比较相似性,进而得到源代码项目文件和待比较代码文件的相似性。相较于现有技术,可以大大减少计算负担,提升数据处理效率。由于第一结构数据相较于源代码项目文件,具有占用存储空间较小的特点,因此有效节省运行上述数据处理方法的计算机的存储空间。
附图说明
[0022]图1a为本申请提供的一种数据处理方法的实施例示意图;
[0023]图1b为源代码项目文件的数据示意图;
[0024]图2为本申请实施例提供的数据处理装置的一个实施例示意图;
[0025]图3为本申请实施例提供的数据处理装置的结构示意图。
具体实施方式
[0026]下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0027]本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或模块的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或模块,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或模块。在本申请中出现的对步骤进行的命名或者编号,并不意味着必须按照命名或者编号所指示的时间/逻辑先后顺序执行方法流程中的步骤,已经命名或者编号的流程步骤可以根据要实现的技术目的变更执行次序,只要能达到相同或者相类似的技术效果即可。本申请中所出现的模块的划分,是一种逻辑上的划分,实际应用中实现时可以有另外的划分方式,例如多个模块可以结合成或集成在另一个系统中,或一些特征可以忽略,或不执行,另外,所显示的或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,模块之间的间接耦合或通信连接可以是电性或其他类似的形式,本申请中均不作限定。并且,作为分离部件说明的模块或子模块可以是也可以不是物理上的分离,可以是也可以不是物理
模块,或者可以分布到多个电路模块中,可以根据实际的需要选择其中的部分或全部模块来实现本申请方案的目的。
[0028]本申请实施例提供一种数据处理方法,基于源代码项目文件提取第一结构数据,并根据第一结构数据与基于待比较代码文件生成的第二结构数据比较相似性,进而得到源代码项目文件和待比较代码文件的相似性。相较于现有技术,可以大大减少计算负担,提升数据处理效率。由于第一结构数据相较于源代码项目文件,具有占用存储空间较小的特点,因此有效节省运行上述数据处理方法的计算机的存储空间。
[0029]请参阅图1a,图1a为本申请提供的一种数据处理方法的实施例示意图,本申请提供的数据处理方法包括:
[0030]101、获取源代码项目文件。
[0031]本实施例中,运行本申请提出的数据处理方法的装置,称为数据处理装置。
[0032]具体的,数据处理装置获取源代码项目文件。该源代码项目文件可以包括一个或多个文件夹,其中,每个文件夹可以包括一个或多个文件,或者,该源代码项目文件所包括的部分文件夹中不包括文件(即该文件夹为空文件夹),本申请实施例对此不作限制。
[0033]可以理解的是,本申请本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据处理方法,其特征在于,包括:获取源代码项目文件,所述源代码项目文件包括一个或多个文件,所述文件包括所述文件的路径;根据所述源代码项目文件,提取所述源代码项目文件中所述文件的名称和所述文件的路径,生成第一结构数据,所述第一结构数据包括所述文件的名称和所述文件的路径;获取第二结构数据,所述第二结构数据为待比较的结构数据,所述第二结构数据包括待比较代码文件的文件名称和路径;根据所述第一结构数据和所述第二结构数据,生成第一比较结果,所述第一比较结果指示所述源代码项目文件与所述待比较代码文件的相似性。2.根据权利要求1所述的方法,其特征在于,所述第一结构数据为结构化数据,所述第一结构数据中所述源代码项目文件的所述文件的名称和所述文件的路径分别存储至指定存储区域。3.根据权利要求1

2中任一项所述的方法,其特征在于,根据所述第一结构数据和所述第二结构数据,生成所述第一比较结果,包括:采用树的相似性比对算法,计算所述第一结构数据和所述第二结构数据的相似性,生成所述第一比较结果。4.根据权利要求2

3中任一项所述的方法,其特征在于,当所述第一结构数据为结构化数据时,根据所述源代码项目文件,提取所述源代码项目文件中所述文件的名称和所述文件的路径,包括:遍历所述源代码项目文件,提取所述源代码项目文件中所述文件的名称和所述文件的路径。5.根据权利要求1所述的方法,其特征在于,所述第一结构数据为非结构化数据,所述第一结构数据中所述源代码项目文件的所述文件的名称和所述文件的路径以文本文件形式存储。6.根据权利要求1或者5所述的方法,其特征在于,根据所述第一结构数据和所述第二结构数据,生成所述第一比较结果,包括:采用文本相似性算法,计算所述第一结构数据和所述第二结构数据的相似性,生成所述第一比较结果。7.根据权利要求5

6中任一项所述的方法,其特征在于,当所述第一结构数据为非结构化数据时,根据所...

【专利技术属性】
技术研发人员:黄振桓
申请(专利权)人:北京迪力科技有限责任公司
类型:发明
国别省市:

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

1