[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

WO2022047623A1 - 一种软件信息组织方法、装置和计算机可读介质 - Google Patents

一种软件信息组织方法、装置和计算机可读介质 Download PDF

Info

Publication number
WO2022047623A1
WO2022047623A1 PCT/CN2020/112861 CN2020112861W WO2022047623A1 WO 2022047623 A1 WO2022047623 A1 WO 2022047623A1 CN 2020112861 W CN2020112861 W CN 2020112861W WO 2022047623 A1 WO2022047623 A1 WO 2022047623A1
Authority
WO
WIPO (PCT)
Prior art keywords
information
software
knowledge graph
code
data
Prior art date
Application number
PCT/CN2020/112861
Other languages
English (en)
French (fr)
Inventor
王文科
翁畅维
高亮
李强
Original Assignee
西门子(中国)有限公司
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 西门子(中国)有限公司 filed Critical 西门子(中国)有限公司
Priority to CN202080103659.3A priority Critical patent/CN116113939A/zh
Priority to PCT/CN2020/112861 priority patent/WO2022047623A1/zh
Priority to EP20951871.1A priority patent/EP4191438A4/en
Publication of WO2022047623A1 publication Critical patent/WO2022047623A1/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/75Structural analysis for program understanding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/43Checking; Contextual analysis
    • G06F8/433Dependency analysis; Data or control flow analysis

Definitions

  • Embodiments of the present invention provide a software information organization method, device, and computer-readable medium, which generate a knowledge graph of software, so that the rich information contained in the software can be effectively organized, and the similarity between software can be determined based on the knowledge graph.
  • a first information acquisition module configured to acquire first information from the code of the first software, and generate a first knowledge graph based on the first information
  • FIG. 4 is another flowchart of a software information organization method provided by an embodiment of the present invention.
  • the term “including” and variations thereof represent open-ended terms meaning “including but not limited to”.
  • the term “based on” means “based at least in part on”.
  • the terms “one embodiment” and “an embodiment” mean “at least one embodiment.”
  • the term “another embodiment” means “at least one other embodiment.”
  • the terms “first”, “second”, etc. may refer to different or the same objects. Other definitions, whether explicit or implicit, may be included below. The definition of a term is consistent throughout the specification unless the context clearly dictates otherwise.
  • embodiments of the present invention may include apparatuses having architectures different from those shown in FIG. 1 .
  • the above architecture is only exemplary, and is used to explain the method 200 provided by the embodiment of the present invention.
  • the device 10 can also be implemented as the structure shown in FIG. 3 .
  • AST Abstract Syntax Tree
  • Figure 6 shows the knowledge graph obtained based on AST data.
  • a software includes code, and each code file has its corresponding AST node.
  • the AST node defines the subnodes of PACKAGE, TYPES, and IMPORTS.
  • the AST node "type" defines class-level attributes, and it has child nodes that define each method.
  • the "INCLUDE_METHOD” relationship is provided between the AST node corresponding to the class and the AST node corresponding to the method.
  • Code-specific values are also included in the aforementioned knowledge graph.
  • the first information includes control flow information
  • step S202 when step S202 is performed to obtain the first information from the code of the first software 31, and the first knowledge graph is generated based on the first information, specifically, as shown in FIG. 2 , can perform sub-step S2023, use AST tool to generate AST data based on the code of the first software 31 (here, if the AST data has been generated in the previous step, then the control flow information can also be directly determined based on the generated AST data) , based on the calling relationship between the AST nodes in the AST data and the method marked as the starting method, determine the control flow information, and generate the first knowledge graph based on the control flow information.
  • the calling relationship between AST nodes can be collected to enrich the knowledge graph.
  • the AST node corresponding to the method has a calling relationship.
  • the start method is usually marked with "Start_Method". With the control flow information, the execution flow and calling relationship of the software can be established.
  • sub-step S2024 can be executed, adding data calculation points to each execution scenario in the code of the first software 31, acquiring data flow information according to each data calculation point, and generating a first knowledge graph based on the data flow information.
  • an execution scenario is a task with a starting point and an ending point, such as uploading data to a database.
  • various program execution declaration data can be added to the knowledge graph.
  • the method 200 may further include the following steps:
  • the software loading module 201 standardizes and preprocesses the received first software 31.
  • the rule manager 2044 generates rules according to the instructions, and configures the rules used by the second information acquisition module 203 when acquiring the second information, such as: natural language processing algorithm parameters (for unstructured data from software documents, data, and resources)
  • the above-mentioned second information is obtained from the content of the software
  • document information acquisition rules used to obtain the above-mentioned second information from the semi-structured content of documents, data, and resources of the software.
  • the rule manager 2044 generates a rule according to the instruction, and configures the rules used when the first information acquisition module 202 acquires the first information from the code of the software, so as to control the behavior and process of acquiring the information from the code by the first information acquisition module 202 .
  • the rule manager 2044 generates a rule according to the instruction, and configures the rule used by the knowledge manager 2043 when comparing the software similarity, such as algorithm parameters.
  • the knowledge graph library 2042 responds to the message and returns the third knowledge graph to the knowledge manager 2043.
  • the software similarity comparison module 205 compares the fourth knowledge graph and the fifth knowledge graph with the third knowledge graph, and has determined that software similar to the second software 32 (for example, software whose similarity is greater than a preset similarity threshold) ). Similar software or information about the software determined by the software similarity comparison module 205 is returned to the query/configuration API 2045 .

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

一种软件信息组织方法、装置和计算机可读介质,涉及计算机软件分析技术,通过知识图谱有效组织软件中包含的丰富信息,并可基于知识图谱确定软件相似度。其中,一种软件信息组织方法包括:加载(S201)第一软件(31),所述第一软件(31)包括代码、数据、资源和文档;从所述第一软件(31)的代码中获取(S202)第一信息,并基于所述第一信息生成第一知识图谱;从所述第一软件(31)的数据、资源和文档中获取(S203)第二信息,并基于所述第二信息生成第二知识图谱;将所述第一知识图谱和所述第二知识图谱合并入(S204)第三知识图谱。

Description

一种软件信息组织方法、装置和计算机可读介质 技术领域
本发明实施例涉及计算机软件分析技术领域,尤其涉及一种软件信息组织方法、装置和计算机可读介质。
背景技术
软件通常包括如下组成部分:
1)代码:按照程序设计语言编写的文件,包括计算机可读指令,用于执行一系列步骤,以实现预设的功能。
2)数据:代码执行过程需要的数据,可包括输入数据、输出数据、代码执行过程中产生的临时数据等。
3)资源:包括软件执行过程中所用的资源信息,比如:对话框、菜单栏、字符串表等。
4)文档:可包括用户文档、开发文档和管理文档等。其中,用户文档可包括用户手册、操作手册等;开发文档可包括软件需求说明书、数据要求说明书、概要设计说明书等;管理文档可包括项目开发计划、测试报告、开发进度报告等。
软件的上述各个组成部分中包括大量的信息,这些信息需要进行有效的组织,以便基于这些有效组织的信息进行诸如代码自动生成、体系重构、代码质量检测等。
发明内容
本发明实施例提供了一种软件信息组织方法、装置和计算机可读介质,生成软件的知识图谱,使得软件中包含的丰富信息得以有效组织,并且可基于知识图谱确定软件之间的相似度。
第一方面,提供一种软件信息组织方法。该方法可包括:加载第一软件,所述第一软件包括代码、数据、资源和文档;从所述第一软件的代码中获取第一信息,并基于所述第一信息生成第一知识图谱;从所述第一软件的数据、资源和文档中获取第二信息,并基于所述第二信息生成第二知识图谱;将所述第一知识图谱和所述第二知识图谱合并入第三知识图谱。
第二方面,提供一种软件信息组织装置,该装置可包括:
-软件加载模块,被配置为加载第一软件,所述第一软件包括代码、数据、资源和文档;
-第一信息获取模块,被配置为从所述第一软件的代码中获取第一信息,并基于所述第 一信息生成第一知识图谱;
-第二信息获取模块,被配置为从所述第一软件的数据、资源和文档中获取第二信息,并基于所述第二信息生成第二知识图谱;
-知识收集模块,被配置为将所述第一知识图谱和所述第二知识图谱合并入第三知识图谱。
第三方面,提供一种软件信息组织装置,包括:至少一个存储器,被配置为存储计算机可读代码;至少一个处理器,被配置为调用所述计算机可读代码,执行第一方面所提供的步骤。
第四方面,一种计算机可读介质,所述计算机可读介质上存储有计算机可读指令,所述计算机可读指令在被处理器执行时,使所述处理器执行第一方面所提供的步骤。
在生成软件的知识图谱时,考虑到代码和非代码数据中均包括软件相关的信息,且代码和非代码数据的特征不同,因此选择不同的方法进行信息提取,分别生成知识图谱,这样可最大限度且准确地提取信息并生成知识图谱。并且选择将各个软件的信息合并生成一个知识图谱,可以将不同软件之间相同或相似的结构和内容加以合并,减少整个知识图谱的冗余信息,在后续相似软件的查找时,搜索效率更高。
对于上述任一方面,可选地,所述第一信息包括下列信息中的至少一项:代码静态信息、抽象语法树AST数据、控制流信息和数据流信息。
若所述第一信息包括所述代码静态信息,从所述第一软件的代码中获取第一信息,并基于所述第一信息生成第一知识图谱时,可采用静态分析方法从所述第一软件的代码中获取至少两项代码静态信息,以及获取所述至少两项代码静态信息之间的关系,并基于所述至少两项代码静态信息和所述至少两项代码静态信息之间的关系,生成所述第一知识图谱。
若所述第一信息包括所述AST数据,从所述第一软件的代码中获取第一信息,并基于所述第一信息生成第一知识图谱时,可使用AST工具基于所述第一软件的代码生成所述AST数据,以及基于所述AST数据中的AST节点之间的关系、AST节点中类节点和方法节点之间的关系,以及AST节点的值生成所述第一知识图谱。
若所述第一信息包括所述控制流信息,从所述第一软的代码中获取第一信息,并基于所述第一信息生成第一知识图谱时,可使用AST工具基于所述第一软件的代码生成所述AST数据,以及基于所述AST数据中的AST节点之间的调用关系,以及标记为起始方法的方法,确定所述控制流信息;基于所述控制流信息生成所述第一知识图谱。
若所述第一信息包括所述数据流信息,从所述第一软件的代码中获取第一信息,并基于所述第一信息生成第一知识图谱时,可在所述第一软件的代码中各执行场景中增加数据计算 点;根据各数据计算点获取所述数据流信息;基于所述数据流信息生成所述第一知识图谱。
在提取第一信息时,可采用不同的方法从代码中提取各种类型的信息,比如:数据流信息、控制流信息、AST数据和代码静态信息,并基于提供的信息生成知识图谱,生成的知识图谱中可有效组织并呈现这些丰富的信息,具有可视性好,便于搜索等优点。
对于上述任一方面,可选地,在从所述第一软件的数据、资源和文档中获取第二信息时,对于所述第一软件的数据、资源和文档三项内容中的半结构化内容,可采用预先定义的规则获取所述第二信息;而对于所述第一软件的数据、资源和文档三项内容中的非结构化内容,采用自然语言处理的方法获取所述第二信息。
其中,针对半结构化内容和非结构化内容的不同特点,采用不同的方法提取信息。
对于上述任一方面,可选地,可采用下面的方式获取相似软件:
加载第二软件,所述第二软件包括代码、数据、资源和文档;从所述第二软件的代码中获取第三信息,并基于所述第三信息生成第四知识图谱;从所述第二软件的数据、资源和文档中获取第四信息,并基于所述第四信息生成第五知识图谱;将所述第四知识图谱和所述第五知识图谱与所述第三知识图谱进行比较,以确定与所述第二软件相似的软件。
或者,可加载第三软件,所述第三软件包括代码、数据、资源和文档;从所述第三软件的代码中获取第三信息和/或从所述第三软件的数据、资源和文档中获取第四信息;从获取的信息中确定进行软件相似度比较所使用的第一关键信息;基于所述第一关键信息在所述第三知识图谱中搜索,以确符合所述关键信息的软件。
再或者,确定用于描述软件特征的第二关键信息;基于所述第二关键信息在所述第三知识图谱中搜索,以确定符合所述第二关键信息的软件。
在确定软件之间相似度时,提供了多种可选的实现方式,可将一个指定软件和知识图谱进行比较,确定知识图谱所标记的软件中与该指定软件相似的软件。也可指定关键信息,在知识图谱中查找与关键信息相符的软件。实现更灵活,查询结果更符合用户需要。
附图说明
图1为本发明实施例提供的软件信息组织装置的结构示意图。
图2为本发明实施例提供的软件信息组织方法的流程图。
图3为本发明实施例提供的软件信息组织装置的又一结构的示意图。
图4为本发明实施例提供的软件信息组织方法的又一流程图。
图5为基于静态代码分析得到的知识图谱的示意图。
图6为基于AST数据得到的知识图谱的示意图。
附图标记列表:
Figure PCTCN2020112861-appb-000001
具体实施方式
现在将参考示例实施方式讨论本文描述的主题。应该理解,讨论这些实施方式只是为了使得本领域技术人员能够更好地理解从而实现本文描述的主题,并非是对权利要求书中所阐述的保护范围、适用性或者示例的限制。可以在不脱离本发明实施例内容的保护范围的情况下,对所讨论的元素的功能和排列进行改变。各个示例可以根据需要,省略、替代或者添加各种过程或组件。例如,所描述的方法可以按照与所描述的顺序不同的顺序来执行,以及各个步骤可以被添加、省略或者组合。另外,相对一些示例所描述的特征在其它例子中也可以进行组合。
如本文中使用的,术语“包括”及其变型表示开放的术语,含义是“包括但不限于”。术语“基于”表示“至少部分地基于”。术语“一个实施例”和“一实施例”表示“至少一个实施例”。术语“另一个实施例”表示“至少一个其他实施例”。术语“第一”、“第二”等可以指代不同的或相同的对象。下面可以包括其他的定义,无论是明确的还是隐含的。除非上下文中明确地指明,否则一个术语的定义在整个说明书中是一致的。
下面结合附图对本发明实施例进行详细说明。
图1示出了软件信息组织装置10的结构示意图。
本发明实施例提供的软件信息组织装置10可以实现为计算机处理器的网络,以执行本发明实施例中的软件信息组织方法200。软件信息组织装置10也可以是如图1所示的单台计算机,包括至少一个存储器101,其包括计算机可读介质,例如随机存取存储器(RAM)。装置10还包括与至少一个存储器101耦合的至少一个处理器102。计算机可执行指令存储在至少一个存储器101中,并且当由至少一个处理器102执行时,可以使至少一个处理器102执行本文所述的步骤。至少一个处理器102可以包括微处理器、专用集成电路(ASIC)、数字信号处理器(DSP)、中央处理单元(CPU)、图形处理单元(GPU)、状态机等。计算机可读介质的实施例包括但不限于软盘、CD-ROM、磁盘,存储器芯片、ROM、RAM、ASIC、配置的处理器、全光介质、所有磁带或其他磁性介质,或计算机处理器可以从中读取指令的任何其他介质。此外,各种其它形式的计算机可读介质可以向计算机发送或携带指令,包括路由器、专用或公用网络、或其它有线和无线传输设备或信道。指令可以包括任何计算机编程语言的代码,包括C、C++、C语言、Visual Basic、java和JavaScript。
当由至少一个处理器102执行时,图1中所示的至少一个存储器101可以包含软件信息组织程序20,使得至少一个处理器102执行本发明实施例中所述的用于软件信息组织方法200。软件信息组织程序20可以包括:
-软件加载模块201,被配置为加载第一软件31,第一软件31包括代码、数据、资源和文档;
-第一信息获取模块202,被配置为从第一软件31的代码中获取第一信息,并基于第一信息生成第一知识图谱;
-第二信息获取模块203,被配置为从第一软件31的数据、资源和文档中获取第二信息,并基于第二信息生成第二知识图谱;
-知识收集模块204,被配置为将第一知识图谱和第二知识图谱合并入第三知识图谱。
可选地,装置10还可包括软件相似度比较模块205,被配置为比较第一软件和另一个软件之间的相似度或者从第三知识图谱中搜索符合关键信息的软件。
应当提及的是,本发明实施例可以包括具有不同于图1所示架构的装置。上述架构仅仅是示例性的,用于解释本发明实施例提供的方法200。比如,装置10还可实现为图3所示的结构。
此外,上述各模块还也可视为由硬件实现的各个功能模块,用于实现软件信息组织装置10在执行软件信息组织方法时涉及的各种功能,比如预先将该方法中涉及的各流程的控制逻 辑烧制到诸如现场可编程门阵列(Field-Programmable Gate Array,FPGA)芯片或复杂可编程逻辑器件(Complex Programmable Logic Device,CPLD)中,而由这些芯片或器件执行上述各模块的功能,具体实现方式可依工程实践而定。
如图2所示,根据本发明实施例的一个示例性方法200包括以下步骤:
-S201:加载第一软件31,第一软件31包括代码、数据、资源和文档;
-S202:从第一软件31的代码中获取第一信息,并基于第一信息生成第一知识图谱;
-S203:从第一软件31的数据、资源和文档中获取第二信息,并基于第二信息生成第二知识图谱;
-S204:将第一知识图谱和第二知识图谱合并入第三知识图谱。
其中,第一信息可包括下列信息中的至少一项:
-代码静态信息;
-抽象语法树AST数据;
-控制流信息;
-数据流信息。
比如,第一信息包括代码静态信息,那么,在执行步骤S202从第一软件31的代码中获取第一信息,并基于第一信息生成第一知识图谱时,具体地,如图2所示,可执行子步骤S2021,采用静态分析方法从代码中获取至少两项代码静态信息,并获取该至少两项代码静态信息之间的关系,并基于至少两项代码静态信息和至少两项代码静态信息之间的关系,生成第一知识图谱。
静态代码分析通过扫描软件的源代码来收集软件的特征数据。软件特征数据可包括程序名称、程序描述、代码文件名称、包结构,每个文件代码行数等。除此之外,静态代码分析可用于建立的源代码的索引,该索引可用于辅助数据流分析和控制流分析。
知识图谱是实体,实体的语义类型、属性、实体间关系的网络。知识图谱采用图结构的方式来呈现知识,存储实体和实体之间的关系。知识图谱中,实体用节点表示,实体之间的关系用节点之间的边来表示。图5示出了基于静态代码分析得到的知识图谱。其中,节点52“NGINX”和节点53“KAFKA”均为程序,因此它们均与节点51“程序”连接,节点52到节点51的边501为“是一种”,节点53到节点51的边502也为“是一种”,表示节点52和节点53均为节点51的一个例子。节点52“NGINX”“包括”503节点54“NGINX项目信息”,节点54“NGINX项目信息”包括504节点55“根目录”,而节点55“根目录”包括子目录505,506,分别为节点56“子目录src”和节点57“子目录conf”。节点56“子目录src” 进一步包括子目录508,节点58“子目录core”。节点58“子目录core”包括子文件509,“子文件nginx.c”,而节点57“子目录conf”包括子文件508,节点59“子文件fastcgi.c”。
在生成知识图谱的过程中,知识图谱被存储在知识图谱库中,并根据需要可能在不同的设备、装置或模块间传递。本发明实施例中,可使用JS对象简谱(JavaScript Object Notation)格式来作为中间数据格式来表示知识图谱,定义可如下:
Figure PCTCN2020112861-appb-000002
其中,node表示知识图谱中的节点,link表示知识图谱中的边,source表示知识图谱的一条边中的起始节点,target表示知识图谱的一条边中的终止节点,weight表示该边的加权,group表示节点类型。
再比如,第一信息包括AST数据,那么,在执行步骤S202从第一软件31的代码中获取第一信息,并基于第一信息生成第一知识图谱时,具体地,如图2所示,可执行子步骤S2022,使用AST工具基于第一软件31的代码生成AST数据,并基于AST数据中的AST节点之间的关系、AST节点中类节点和方法节点之间的关系,以及AST节点的值生成第一知识图谱。
抽象语法树(Abstract Syntax Tree,AST)以树的方式表示用编程语言撰写的源代码的抽象句法结构。树的每一个节点表示源代码中出现的一个结构(construct)。AST数据结构在表示源代码的抽象句法结构时并不考虑其所使用的编程语言。其中,程序元素被表示为包定义或导入、变量赋值、条件、逻辑分支等。基于AST产生的知识可用于软件代码的相似度匹配,由于AST数据是源代码的逻辑或句法的抽象,因此几乎不受代码模糊处理的影响。图6示出了基于AST数据得到的知识图谱。
其中,节点72“NGINX”、节点73“BinaryC”和节点74“KAFKA”均为节点71“程序”的例子,因此,它们到节点74的边701、702、703均为“是一种”。节点73“BinaryC”包括节点75“AST”,节点73到节点75的边704为“包括”。节点75“AST”分别连接到节点76“包”、节点80“类型”和节点77“导入”,并且与这些节点的边705、706和707均为“包括”。节点76“包”连接到节点78“astsample”和节点79“com.sie”,并且与这两个节点的 边708、709均为“包括”。节点80“类型”连接到节点81“类型定义”,边710为“包括”。节点81“类型定义”连接到节点82“二进制代码”,边711为“包括”。节点81“类型定义”还连接到节点83“程序体定义”,边712为“包括”。节点83“程序体定义”分别连接到节点84“二进制文件”和节点85“主程序体”,边713和边714均为“包括方法”。节点84“二进制文件”分别连接到节点86“字符串”、88“块”、89“静态”和87“公共”,边715、716、717和718分别为“返回值类型”、“程序体”、“修改器”和“修改器”。节点85“主程序体”分别连接到节点87“公共”、89“静态”、90“块”、91“无类型”,边719、720、721和722分别为“修改器”、“修改器”、“程序体”和“返回值类型”。节点88“块”分别连接到节点92“变量”、93“表达式”和94“返回值”,边723、724和725均为“声明”。节点92“变量”连接到节点93“表达式”,边728为“程序体下一步”,节点93“表达式”连接到节点94“返回值”,边727为“程序体下一步”。节点90“块”连接到节点95“针对状态”,边726为“声明”。
简言之,一个软件包括代码,每个代码文件有其对应的AST节点。AST节点定义了包(PACKAGE)、类型(TYPES)和导入(IMPORTS)这些子节点。AST节点“类型”定义了类级别的属性,且其具有定义每一个方法的子节点。类所对应的AST节点和方法对应的AST节点之间提供过“包括方法(INCLUDE_METHOD)”关系来连接。代码特定值也被包括在上述知识图谱中。
再比如,第一信息包括控制流信息,那么,在执行步骤S202从第一软件31的代码中获取第一信息,并基于第一信息生成第一知识图谱时,具体地,如图2所示,可执行子步骤S2023,使用AST工具基于第一软件31的代码生成AST数据(这里,如果在之前的步骤中已经生成了AST数据,那么也可直接基于已生成的AST数据确定控制流信息),基于AST数据中的AST节点之间的调用关系,以及标记为起始方法的方法,确定控制流信息,并基于控制流信息生成第一知识图谱。比如:在子步骤S2023中,可收集AST节点之间的调用关系,以丰富知识图谱。基于AST数据,方法对应的AST节点具有调用关系,除此之外,起始方法通常会加以标记“Start_Method”。有了控制流信息,软件的执行流程和调用关系就能被建立起来。
再比如,第一信息包括数据流信息,那么,在执行步骤S202从第一软件31的代码中获取第一信息,并基于第一信息生成第一知识图谱时,具体地,如图2所示,可执行子步骤S2024,在第一软件31的代码中各执行场景中增加数据计算点,根据各数据计算点获取数据流信息,并基于数据流信息生成第一知识图谱。其中,执行场景是具有起始点和终止点的任务,比如:将数据上传到数据库中。通过子步骤S2024,可将各种程序执行声明数据增加到知识图谱中。
可选地,在步骤S203从第一软件31的数据、资源和文档中获取第二信息时,具体地,可区分半结构化内容和结构化内容,分别处理。比如:对于第一软件31的数据、资源和文档三项内容中的半结构化内容,采用预先定义的规则获取第二信息;而对于第一软件31的数据、资源和文档三项内容中的非结构化内容,采用自然语言处理的方法获取第二信息,其中,可采用文档理解算法来理解文档的内容;然后可采用自然语言处理的算法来分析、理解并导出实体和关系。
在步骤S204中,将第一软件31的第一知识图谱和第二知识图谱合并入一个总的知识图谱中,这样,当有新的软件时,可以不断地扩充和丰富第三知识图谱中的知识点和知识点之间的关系,可以深入挖掘知识点。在第三知识图谱的各个组成部分中标记有对应的软件标识,这样在后续确定某一新的软件与已知软件之间的相似度时,可以确定对应的相似的软件。与各个软件分别生成一个独立的知识图谱相比,生成一个具有丰富信息和知识点关联关系的总的知识图谱便于深入挖掘软件之间的关系和联系,使得整个知识图谱的体系信息更加完整。
上述步骤S201~S204生成和完善了第三知识图谱。下面的步骤中,还可基于知识图谱确定软件之间的相似度。可实现的方式有多种,包括但不限于:
方式一、输入待比较的软件,分别基于代码和非代码信息生成知识图谱,并基于生成的知识图谱在第三知识图谱中查找相似的软件。
方式二、输入待比较的软件,获取代码和非代码信息中的信息,基于获取的信息确定用于软件相似度比较的关键信息,在第三知识图谱中查找符合该关键信息的软件。
方式三、由操作员41配置关键信息,或者采用其他方式确定关键信息,比如:根据操作员41以往的若干步操作,采用大数据分析的方法预测操作员41想要查找的软件所具备的关键信息等。进而在第三知识图谱中查找符合该关键信息的软件。
对于方式一,具体地,方法200还可包括如下步骤:
-S205:加载第二软件32,第二软件32包括代码、数据、资源和文档;
-S206:从第二软件32的代码中获取第三信息,并基于第三信息生成第四知识图谱;
-S207:从第二软件32的数据、资源和文档中获取第四信息,并基于第四信息生成第五知识图谱;
-S208:将第四知识图谱和第五知识图谱与前述的总的第三知识图谱进行比较,以确定与第二软件32相似的软件。
对于方式二,具体地,方法200还可包括如下步骤:
-S209:加载第三软件33,第三软件包括代码、数据、资源和文档;
-S210:从第三软件33的代码中获取第三信息;
-S211:从第三软件33的数据、资源和文档中获取第四信息;
其中,步骤S210和S211可仅执行其中一步或者执行其中两步,具体可依据软件查找需求而定。
-S212:从前面获取的信息中确定进行软件相似度比较所使用的第一关键信息,比如:可弹出对话框供操作员41选择;或者采用预先定义的规则,从获取的诸多信息中选择需要的信息;再或者可以将获取的诸多信息采用与的方式构成查找的条件,即第一关键信息。
-S213:基于第一关键信息在第三知识图谱中查找符合第一关键信息的软件。
对于方式三,具体地,方法200可还包括如下步骤:
-S214:确定用于描述软件特征的第二关键信息;
-S215:基于第二关键信息在第三知识图谱中搜索,以确定符合第二关键信息的软件。
上述过程中,在第三知识图谱中搜索具有关键信息的软件时,可根据知识图谱中的各个节点和节点之间的边的信息,进行关键信息的匹配,以找到目标软件。由于在生成第三知识图谱时,标记了各个组成部分对应的软件标识,因此,根据关键信息匹配可以找到对应的软件。
图3示出了本发明实施例提供的软件信息组织装置10的又一结构。该结构可视为图1所示结构的进一步细化。
如图3所示,软件加载模块201加载第一软件31。如前所述,第一软件中可包括代码311、数据312、资源313和文档314。一方面,软件加载模块201将代码311发送至第一信息获取模块202,第一信息获取模块202中的静态代码分析器2021基于代码311进行静态分析,获取代码静态信息;第一信息获取模块202中的AST构建器2022基于代码311生成AST数据;第一信息获取模块202中控制流分析器2023基于AST数据确定控制流信息;而第一信息获取模块202中的数据流分析器2024基于代码311获取数据流信息。第一信息获取模块202基于这些信息生成第一知识图谱,并发送至知识收集模块204。另一方面,软件加载模块201将数据312、资源313和文档314发送至第二信息获取模块203,第二信息获取模块203从中获取第二信息,并基于第二信息生成第二知识图谱并发送至知识收集模块204。其中,第二信息获取模块203对于第一软件31中的数据312、资源313和文档314中的半结构化内容,可采用预先定义的规则获取第二信息,而对于第一软件31中的数据312、资源313和文档314中的非结构化内容,可采用自然语言处理的方法获取第二信息。
知识收集模块204中的知识收集器2041接收第一知识图谱和第二知识图谱,并将第一知识图谱和第二知识图谱合并入第三知识图谱并存储在知识图谱库2042中。装置10还可提供 查询/配置API2045,作为和操作员41之间的接口,供操作员41配置规则并进行软件相似度查询,配置的规则可用于生成软件的知识图谱以及进行软件的相似度比较。查询/配置API2045接收操作员41的命令并发送至规则管理器2044,由规则管理器2044分别配置第一信息获取模块202、第二信息获取模块203和知识管理器2043。
比如:操作员41可配置第一信息获取模块202,以改变其从代码311中获取第一信息的行为。此外,操作员41还可配置第一信息获取模块202使用不同的方法来获取第一信息。再比如:操作员41可配置第二信息获取模块203从文档中获取第二信息的规则,以及其所使用的自然语言处理算法的参数。再比如:操作员41可配置规则管理器2044,以改变软件相似度确定的算法。
下面,结合图4说明图3所示的装置生成知识图谱以及确定确定相似软件的流程400。如图4所示,该流程可包括如下步骤:
S401:操作员41将第一软件31加载到软件加载模块201。
S402:软件加载模块201将收到的第一软件31进行标准化和预处理。
S403:软件加载模块201将第一软件31中的数据312、资源313和文档314发送至第二信息获取模块203。
S404:第二信息获取模块203基于收到的数据312、资源313和文档314进行信息提取,生成第二知识图谱,并发送至知识收集器2041。具体实现可参见前述的步骤S203。
S405:知识收集器2041将第二知识图谱存储至知识图谱库2042中。
S406:软件加载模块201将第一软件31中的代码311发送至第一信息获取模块202。
S407~S410:第一信息获取模块202基于收到的代码311进行信息提取,生成第一知识图谱。
其中,在步骤S407,第一信息获取模块202中的静态代码分析器2021采用静态分析犯法从代码31中获取静态代码信息,并获取静态代码信息之间的关系,基于这两项内容生成第一知识图谱,具体可参见前述的步骤S2021。
在步骤S408,第一信息获取模块202中的AST构建器2022使用AST工具基于代码311生成AST数据,并基于AST数据中的AST节点之间的关系、AST节点中类节点和方法节点之间关系,以及AST节点的值生成第一知识图谱,具体可参见前述的步骤S2022。
在步骤S409,第一信息获取模块202中的控制流分析器2023可使用AST工具基于代码311生成AST数据,并基于AST数据中的AST节点之间调用关系,以及标记为起始方法的方法,确定控制流信息,并基于控制流信息生成第一知识图谱,具体可参见前述的步骤S2023。
在步骤S410,第一信息获取模块202中的数据流分析器2024可在代码311中各执行场景中增加数据计算点,根据各数据计算点获取数据流信息,并基于数据流信息生成第一知识图谱,具体可参见前述的步骤S2024。
其中,静态代码分析器2021、AST构建器2022、控制流分析器2023和数据流分析器2024可分别基于代码311生成知识图谱,再最终合成第一知识图谱。也可将各自生成的知识图谱发送至知识收集器2041,由知识收集器2041或后续装置完成知识图谱合成的操作。
S411:第一信息获取模块202将第一知识图谱发送至知识收集器2041。
S412:知识收集器2041将第一知识图谱存储至知识图谱库2042中。
S413:软件加载模块201向知识管理器2043发送消息,触发知识管理器2043从知识图谱库2042中加载第一知识图谱和第二知识图谱,并将第一知识图谱和第二知识图谱合并入第三知识图谱。其中,知识图谱的合并可以将具有相同或相近的方法或类的知识合并到一起。不同软件的相同或相近的方法合并到相同的节点中,这可以改善软件相似度判断时的性能和准确性。
S414:知识管理器2043向知识图谱库2042发送消息,从知识图谱库2042中获取第一知识图谱和第二知识图谱。
S415:知识图谱库2042响应知识管理器2043发送的消息,向知识管理器2043返回第一知识图谱和第二知识图谱。
S416:知识管理器2043将第一知识图谱和第二知识图谱合并入第三知识图谱库2042。
S417:知识图谱库2042将合并后的第三知识图谱存储在知识图谱库2042中。
操作员41可以通过下面的步骤S418~S426来配置软件信息获取、知识图谱生成以及知识图谱合并的规则,具体地:
S418:操作员41向查询/配置API2045发送指令,请求配置第二信息获取模块203。
S419:查询/配置API2045向规则管理器2044转发指令,请求配置第二信息获取模块203。
S420:规则管理器2044根据指令生成规则,配置第二信息获取模块203在获取第二信息时所使用的规则,比如:自然语言处理算法参数(用于从软件的文档、数据、资源的非结构化内容中获取前述的第二信息)、文档信息获取规则(用于从软件的文档、数据、资源的半结构化内容中获取前述的第二信息)。
S421:操作员41向查询/配置API2045发送指令,请求配置第一信息获取模块202。
S422:查询/配置API2045向规则管理器2044转发指令,请求配置第一信息获取模块202。
S423:规则管理器2044根据指令生成规则,配置第一信息获取模块202从软件的代码中获取第一信息时所使用的规则,以控制第一信息获取模块202从代码中获取信息的行为和流 程。
S424:操作员41向查询/配置API2045发送指令,请求配置知识管理器2043。
S425:查询/配置API2045向规则管理器2044转发指令,请求配置知识管理器2043。
S426:规则管理器2044根据指令生成规则,配置知识管理器2043在进行软件相似度比较时所使用的规则,比如算法参数等。
其中,步骤S418~S426可以在步骤S401之前执行,或者在步骤S401~S417执行过程中执行,还可以在步骤S417之后执行,以便灵活修改规则。
下面的步骤S427~S438中,用户42利用本发明实施例提供的软件信息组织装置10,查询与第二软件42相似的软件。下面的步骤采用了前述的确定软件之间相似度的方式一。
S427:用户42向查询/配置API2045发送指令,请求查询与第二软件32相似的软件。
S428:查询/配置API2045向软件相似度比较模块205转发指令,请求查询与第二软件32相似的软件。
S429:软件相似度比较模块205向第二信息获取模块203发送第二软件32,或者也可以仅发送第二软件32中的数据、资源和文档。
S430:第二信息获取模块203从收到的第二软件32中的数据、资源和文档中提取第四信息,基于第四信息生成第五知识图谱(与第一软件31的信息获取或知识图谱生成过程同理,这里不再赘述),并返回软件相似度比较模块205。
S431:软件相似度比较模块205向第一信息获取模块202发送第二软件32,或者也可以仅发送第二软件32中的代码。
S432:第一信息获取模块202从收到的第二软件32中的代码中提取第三信息,基于第三信息生成第四知识图谱(与第一软件31的信息获取或知识图谱生成过程同理,这里不再赘述),并返回软件相似度比较模块205。
S433:软件相似度比较模块205向知识管理器2043发送消息,请求获取第三知识图谱,即知识图谱库2042中存储的已经合成的总的知识图谱。
S434:知识管理器2043向知识图谱库2042发送消息,请求获取第三知识图谱。
S435:知识图谱库2042响应消息,向知识管理器2043返回第三知识图谱。
S436:知识管理器2043向软件相似度比较模块205返回第三知识图谱。
S437:软件相似度比较模块205将第四知识图谱和第五知识图谱与第三知识图谱进行比较,已确定与第二软件32相似的软件(比如:相似度大于预设的相似度阈值的软件)。软件相似度比较模块205确定的相似软件或该软件的信息返回至查询/配置API2045。
S438:查询/配置API2045将受到的相似软件或软件信息返回至用户42。
此外,本发明实施例实施例还提供一种计算机可读介质,该计算机可读介质上存储有计算机可读指令,计算机可读指令在被处理器执行时,使处理器执行前述的软件信息组织方法。计算机可读介质的实施例包括软盘、硬盘、磁光盘、光盘(如CD-ROM、CD-R、CD-RW、DVD-ROM、DVD-RAM、DVD-RW、DVD+RW)、磁带、非易失性存储卡和ROM。可选地,可以由通信网络从服务器计算机上或云上下载计算机可读指令。
综上,本发明实施例提供了一种软件信息组织方法、装置和计算机可读介质,生成软件的知识图谱,使得软件中包含的丰富信息得以有效组织,并且可基于知识图谱确定软件之间的相似度。
在生成软件的知识图谱时,选择将各个软件的信息合并生成一个知识图谱,并在知识图谱对应的部分标记软件标识,这样既可以将不同软件之间相同或相似的结构和内容加以合并,减少整个知识图谱的冗余信息,又能够在知识图谱中标记软件标识,便于后续相似软件的查找,并且使得软件相似度的计算更高效(去掉了知识图谱中的冗余信息,且只在一个知识图谱中查找,搜索效率更高)。
在确定软件之间相似度时,提供了多种可选的实现方式,可将一个指定软件和知识图谱进行比较,确定知识图谱所标记的软件中与该指定软件相似的软件。也可指定关键信息,在知识图谱中查找与关键信息相符的软件。实现更灵活,查询结果更符合用户需要。
需要说明的是,上述各流程和各系统结构图中不是所有的步骤和模块都是必须的,可以根据实际的需要忽略某些步骤或模块。各步骤的执行顺序不是固定的,可以根据需要进行调整。上述各实施例中描述的系统结构可以是物理结构,也可以是逻辑结构,即,有些模块可能由同一物理实体实现,或者,有些模块可能分由多个物理实体实现,或者,可以由多个独立设备中的某些部件共同实现。

Claims (13)

  1. 软件信息组织方法(200),其特征在于,包括:
    -加载(S201)第一软件(31),所述第一软件(31)包括代码、数据、资源和文档;
    -从所述第一软件(31)的代码中获取(S202)第一信息,并基于所述第一信息生成第一知识图谱;
    -从所述第一软件(31)的数据、资源和文档中获取(S203)第二信息,并基于所述第二信息生成第二知识图谱;
    -将所述第一知识图谱和所述第二知识图谱合并入(S204)第三知识图谱。
  2. 如权利要求1所述的方法,其特征在于,所述第一信息包括下列信息中的至少一项:
    -代码静态信息;
    -抽象语法树AST数据;
    -控制流信息;
    -数据流信息。
  3. 如权利要求2所述的方法,其特征在于,所述第一信息包括所述代码静态信息,从所述第一软件(31)的代码中获取(S202)第一信息,并基于所述第一信息生成第一知识图谱,包括:
    -采用静态分析方法从所述第一软件(31)的代码中获取(S2021)至少两项代码静态信息,以及
    -获取所述至少两项代码静态信息之间的关系,并基于所述至少两项代码静态信息和所述至少两项代码静态信息之间的关系,生成所述第一知识图谱。
  4. 如权利要求2所述的方法,其特征在于,所述第一信息包括所述AST数据,从所述第一软件(31)的代码中获取(S202)第一信息,并基于所述第一信息生成第一知识图谱,包括:
    -使用AST工具基于所述第一软件(31)的代码生成(S2022)所述AST数据,以及
    -基于所述AST数据中的AST节点之间的关系、AST节点中类节点和方法节点之间的关系,以及AST节点的值生成所述第一知识图谱。
  5. 如权利要求2所述的方法,其特征在于,所述第一信息包括所述控制流信息,从所述第一软(31)的代码中获取(S202)第一信息,并基于所述第一信息生成第一知识图谱,包 括:
    -使用AST工具基于所述第一软件(31)的代码生成(S2023)所述AST数据,以及
    -基于所述AST数据中的AST节点之间的调用关系,以及标记为起始方法的方法,确定所述控制流信息;
    -基于所述控制流信息生成所述第一知识图谱。
  6. 如权利要求2所述的方法,其特征在于,所述第一信息包括所述数据流信息,从所述第一软件(31)的代码中获取(S202)第一信息,并基于所述第一信息生成第一知识图谱,包括:
    -在所述第一软件(31)的代码中各执行场景中增加(S2024)数据计算点;
    -根据各数据计算点获取所述数据流信息;
    -基于所述数据流信息生成所述第一知识图谱。
  7. 如权利要求1所述的方法,其特征在于,从所述第一软件(31)的数据、资源和文档中获取(S203)第二信息,包括:
    -对于所述第一软件(31)的数据、资源和文档三项内容中的半结构化内容,采用预先定义的规则获取所述第二信息;
    -对于所述第一软件(31)的数据、资源和文档三项内容中的非结构化内容,采用自然语言处理的方法获取所述第二信息。
  8. 如权利要求1所述的方法,其特征在于,还包括:
    -加载(S205)第二软件(32),所述第二软件(32)包括代码、数据、资源和文档;
    -从所述第二软件(32)的代码中获取(S206)第三信息,并基于所述第三信息生成第四知识图谱;
    -从所述第二软件(32)的数据、资源和文档中获取(S207)第四信息,并基于所述第四信息生成第五知识图谱;
    -将所述第四知识图谱和所述第五知识图谱与所述第三知识图谱进行比较(S208),以确定与所述第二软件(32)相似的软件。
  9. 如权利要求1所述的方法,其特征在于,还包括:
    -加载(S209)第三软件(33),所述第三软件(33)包括代码、数据、资源和文档;
    -从所述第三软件(33)的代码中获取(S210)第三信息和/或从所述第三软件(33)的数据、资源和文档中获取(S211)第四信息;
    -从获取的信息中确定(S212)进行软件相似度比较所使用的第一关键信息;
    -基于所述第一关键信息在所述第三知识图谱中搜索(S213),以确符合所述关键信息的软件。
  10. 如权利要求1所述的方法,其特征在于,还包括:
    -确定(S214)用于描述软件特征的第二关键信息;
    -基于所述第二关键信息在所述第三知识图谱中搜索(S215),以确定符合所述第二关键信息的软件。
  11. 一种软件信息组织装置(10),其特征在于,包括:
    -软件加载模块(201),被配置为加载第一软件(31),所述第一软件(31)包括代码、数据、资源和文档;
    -第一信息获取模块(202),被配置为从所述第一软件(31)的代码中获取第一信息,并基于所述第一信息生成第一知识图谱;
    -第二信息获取模块(203),被配置为从所述第一软件(31)的数据、资源和文档中获取第二信息,并基于所述第二信息生成第二知识图谱;
    -知识收集模块(204),被配置为将所述第一知识图谱和所述第二知识图谱合并入第三知识图谱。
  12. 一种软件信息组织装置(10),其特征在于,包括:
    至少一个存储器(101),被配置为存储计算机可读代码;
    至少一个处理器(102),被配置为调用所述计算机可读代码,执行如权利要求1~10任一项所述的方法。
  13. 一种计算机可读介质,其特征在于,所述计算机可读介质上存储有计算机可读指令,所述计算机可读指令在被处理器执行时,使所述处理器执行如权利要求1~10任一项所述的方法。
PCT/CN2020/112861 2020-09-01 2020-09-01 一种软件信息组织方法、装置和计算机可读介质 WO2022047623A1 (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN202080103659.3A CN116113939A (zh) 2020-09-01 2020-09-01 一种软件信息组织方法、装置和计算机可读介质
PCT/CN2020/112861 WO2022047623A1 (zh) 2020-09-01 2020-09-01 一种软件信息组织方法、装置和计算机可读介质
EP20951871.1A EP4191438A4 (en) 2020-09-01 2020-09-01 METHOD AND APPARATUS FOR ORGANISING SOFTWARE INFORMATION AND COMPUTER-READABLE MEDIUM

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2020/112861 WO2022047623A1 (zh) 2020-09-01 2020-09-01 一种软件信息组织方法、装置和计算机可读介质

Publications (1)

Publication Number Publication Date
WO2022047623A1 true WO2022047623A1 (zh) 2022-03-10

Family

ID=80492095

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2020/112861 WO2022047623A1 (zh) 2020-09-01 2020-09-01 一种软件信息组织方法、装置和计算机可读介质

Country Status (3)

Country Link
EP (1) EP4191438A4 (zh)
CN (1) CN116113939A (zh)
WO (1) WO2022047623A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116661768A (zh) * 2023-07-25 2023-08-29 苏州浮木云科技有限公司 基于知识图谱的页面代码生成方法、系统、装置和介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008113682A1 (de) * 2007-03-20 2008-09-25 Siemens Aktiengesellschaft Verfahren zum rechnergestützten ermitteln der abhängigkeiten einer vielzahl von modulen eines technischen systems, insbesondere eines softwaresystems
CN110609903A (zh) * 2019-08-01 2019-12-24 华为技术有限公司 信息表示方法及装置
CN110716970A (zh) * 2018-06-27 2020-01-21 百度在线网络技术(北京)有限公司 异构数据同构化处理方法、装置、计算机设备及存储介质
US20200118010A1 (en) * 2018-10-16 2020-04-16 Samsung Electronics Co., Ltd. System and method for providing content based on knowledge graph
CN111191050A (zh) * 2020-01-03 2020-05-22 中国建设银行股份有限公司 知识图谱本体模型构建的方法和装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10169208B1 (en) * 2014-11-03 2019-01-01 Charles W Moyes Similarity scoring of programs
US11334692B2 (en) * 2017-06-29 2022-05-17 International Business Machines Corporation Extracting a knowledge graph from program source code

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008113682A1 (de) * 2007-03-20 2008-09-25 Siemens Aktiengesellschaft Verfahren zum rechnergestützten ermitteln der abhängigkeiten einer vielzahl von modulen eines technischen systems, insbesondere eines softwaresystems
CN110716970A (zh) * 2018-06-27 2020-01-21 百度在线网络技术(北京)有限公司 异构数据同构化处理方法、装置、计算机设备及存储介质
US20200118010A1 (en) * 2018-10-16 2020-04-16 Samsung Electronics Co., Ltd. System and method for providing content based on knowledge graph
CN110609903A (zh) * 2019-08-01 2019-12-24 华为技术有限公司 信息表示方法及装置
CN111191050A (zh) * 2020-01-03 2020-05-22 中国建设银行股份有限公司 知识图谱本体模型构建的方法和装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
LI, WENPENG ET AL.: "Software Knowledge Graph Building Method for Open Source Project", JOURNAL OF FRONTIERS OF COMPUTER SCIENCE AND TECHNOLOGY, vol. 11, no. 6, 30 June 2017 (2017-06-30), pages 851 - 862, XP055907560, ISSN: 1673-9418, DOI: 10.3778/j.issn.1673-9418.1609026 *
See also references of EP4191438A4 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116661768A (zh) * 2023-07-25 2023-08-29 苏州浮木云科技有限公司 基于知识图谱的页面代码生成方法、系统、装置和介质
CN116661768B (zh) * 2023-07-25 2023-12-29 苏州浮木云科技有限公司 基于知识图谱的页面代码生成方法、系统、装置和介质

Also Published As

Publication number Publication date
EP4191438A1 (en) 2023-06-07
CN116113939A (zh) 2023-05-12
EP4191438A4 (en) 2024-04-03

Similar Documents

Publication Publication Date Title
EP4202644A1 (en) Automated dependency analyzer for heterogeneously programmed data processing system
US7487174B2 (en) Method for storing text annotations with associated type information in a structured data store
US20090049080A1 (en) Relationship management for data modeling in an integrated development environment
KR101933953B1 (ko) 페이지랭크와 토픽 모델링을 이용한 소프트웨어 도메인 토픽 추출 시스템
CN113672628A (zh) 数据血缘分析方法、终端设备及介质
CN111221852A (zh) 基于大数据的混合查询处理方法及装置
WO2022047623A1 (zh) 一种软件信息组织方法、装置和计算机可读介质
CN110209699B (zh) 一种基于openEHR Composition模板的数据接口动态生成与执行方法
CN113568604B (zh) 风控策略的更新方法、装置及计算机可读存储介质
CN112799673B (zh) 一种网络协议数据的校核方法及装置
US8136094B2 (en) Relationship management for data modeling in an integrated development environment
JP2010250449A (ja) 情報処理装置、情報処理方法
CN112799638B (zh) 无侵入式快速开发方法、平台、终端及存储介质
CN110990648A (zh) 一种病毒查询方法、服务器及计算机可读存储介质
JP2016051367A (ja) データ解析装置、データ解析方法、および、プログラム。
Malik et al. Technology of identifying antipatterns in Android projects written in Kotlin language
CN111291373A (zh) 用于分析数据污染传播的方法、设备和计算机可读存储介质
CN112286800B (zh) 一种功能测试点辅助分析方法与系统
García-Díaz et al. MCTest: towards an improvement of match algorithms for models
JP7513116B2 (ja) コールグラフ作成装置、コールグラフ作成方法及びプログラム
CN114003234A (zh) 小程序局部编译方法、装置、设备及计算机可读存储介质
US20230214506A1 (en) Auto generating build time policies from run time policies for shift left security
EP4350506A1 (en) Information processing program, information processing method and information processing device
JP3584204B2 (ja) 原始プログラム自動変換装置
JP4403754B2 (ja) ソフトウェアコンポーネント情報検索システム,方法,およびプログラム

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 20951871

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2020951871

Country of ref document: EP

Effective date: 20230301

NENP Non-entry into the national phase

Ref country code: DE