CN112241262A - 一种面向软件定义卫星的可复用代码提取、分析与检索方法与装置 - Google Patents
一种面向软件定义卫星的可复用代码提取、分析与检索方法与装置 Download PDFInfo
- Publication number
- CN112241262A CN112241262A CN202011413643.0A CN202011413643A CN112241262A CN 112241262 A CN112241262 A CN 112241262A CN 202011413643 A CN202011413643 A CN 202011413643A CN 112241262 A CN112241262 A CN 112241262A
- Authority
- CN
- China
- Prior art keywords
- code
- code elements
- elements
- reusable
- screened
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/36—Software reuse
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/90335—Query processing
- G06F16/90344—Query processing by using string matching techniques
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Stored Programmes (AREA)
Abstract
本申请实施例提供一种面向软件定义卫星的可复用代码提取、分析与检索方法与装置,该面向软件定义卫星的可复用代码提取和分析方法包括:获取开源代码,其中,开源代码包括第一类代码元素,第一类代码元素包括多个检索必要的代码元素;从开源代码中提取第一类代码元素;对第一类代码元素中相同功能的代码元素进行筛除,获得筛选后的代码元素,其中,筛选后的代码元素中不同代码元素的功能不同;将筛选后的代码元素存储到公共代码库中。本申请实施例使得相同功能的代码元素只保留一个,以及还可将筛选后的代码元素存储到公共代码库中,从而不仅可以提高对开源代码的可控程度,还可为代码的查询提供了便利。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种面向软件定义卫星的可复用代码提取、分析与检索方法与装置。
背景技术
软件定义卫星是指以计算为中心,以软件为手段,通过软件定义无线电、软件定义载荷、软件定义数据处理计算机、软件定义网络等手段,将传统上由分系统实现的通信、载荷等功能以软件方式实现,总体上将各类敏感器和执行机构通过软件连接为一个整体,最终实现大部分卫星功能的软件化。软件定义卫星解除了卫星产品软硬件之间的耦合关系,使得卫星软件可以独立演化、按需加载、动态重构,从而可以在不改变硬件的情况下实现更多的功能,完成更多的任务。
软件定义卫星研制中,至今尚没有进行软件复用的系统研究,也没有开发出一个现代意义上的可复用库,在工程研究和应用两方面,可以说仍然是一片空白。
发明内容
本申请实施例的目的在于提供一种面向软件定义卫星的可复用代码提取、分析与检索方法与装置,以解决现有技术中存在的从大规模的开源代码中找到相关开源代码是比较困难的问题。
第一方面,本申请实施例提供了一种面向软件定义卫星的可复用代码提取和分析方法,该可复用代码提取和分析方法包括:获取开源代码,其中,开源代码包括第一类代码元素和第二类代码元素,第一类代码元素包括多个检索必要的代码元素,第二类代码元素包括多个检索非必要的代码元素;从开源代码中提取第一类代码元素;对第一类代码元素中相同功能的代码元素进行筛除,获得筛选后的代码元素,其中,筛选后的代码元素中不同代码元素的功能不同;将筛选后的代码元素存储到公共代码库中。
因此,本申请实施例通过从开源代码中提取第一类开源代码,以及对第一类开源代码中相同功能的代码元素进行筛除,以使得相同功能的代码元素只保留一个,从而提高了对开源代码的可控程度,以及还可将筛选后的代码元素存储到公共代码库中,且该公共代码库可为可复用库,从而为代码的查询提供了便利。
也就是说,借助于上述技术方案,可基于地面众多成熟的开源项目代码为软件定义卫星开发提供可复用库。以及,可辅助软件定义卫星开发者快速检索到经过分析、筛选的、可复用的、高质量代码元素,降低学习软件定义卫星软件的成本,提高其开发效率。
在一个可能的实施例中,第一类代码元素包括变量、函数和数据类型中的一种或多种。
因此,本申请实施例中的第一类代码元素是包括有多类的,从而能够满足后续检索的需求。
在一个可能的实施例中,相同功能的代码元素是指名称相似度大于预设相似度且取值相同的代码元素。
因此,本申请实施例中相同功能的代码元素可以是相同功能的变量。
在一个可能的实施例中,相同功能的代码元素是指名称相似度大于预设相似度且相关参数相同的代码元素。
因此,本申请实施例中相同功能的代码元素可以是相同功能的函数。
在一个可能的实施例中,相关参数包括输入参数、输出参数、测试参数和全局变量。
在一个可能的实施例中,相同功能的代码元素是指名称相似度大于预设相似度且数据结构相同的代码元素。
因此,本申请实施例中相同功能的代码元素可以是相同功能的数据类型。
在一个可能的实施例中,筛选后的代码元素包括第一代码元素,公共代码库存储有经筛选后的第二代码元素,且第二代码元素的功能和第一代码元素的功能相同,将筛选后的代码元素存储到公共代码库中,包括:分别获取第一代码元素相关的第一参考信息和第二代码元素相关的第二参考信息;根据第一参考信息和第二参考信息,从第一代码元素和第二代码元素中选取出一个代码元素进行保留。
因此,借助于上述技术方案,本申请实施例中的公共代码库关于同一功能的代码元素只保存有一个较优的代码元素,从而后续检索阶段可直接为用户提供较优的代码元素。
在一个可能的实施例中,公共代码库中的代码元素的属性信息包括第一标识信息和第二标识信息,第一标识信息用于标识公共代码库中的代码元素的使用频率,第二标识信息用于标识公共代码库中的代码元素的应用领域。
因此,本申请实施例可借助于第一标识信息为用户推荐代码元素,以及还可借助于第二标识信息实现代码元素的快速查找。
在一个可能的实施例中,第一标识信息包括高频标识信息和低频标识信息,高频标识信息用于表示公共代码库中的代码元素的使用频率大于等于预设频率,低频标识信息用于表示公共代码库中的代码元素的使用频率小于预设频率。
第二方面,本申请实施例提供了一种面向软件定义卫星的可复用代码检索方法,该可复用代码检索方法包括:获取检索请求;根据检索请求,从公共代码库中检索与检索请求匹配的目标代码元素,其中,公共代码库中存储的代码元素是通过对开源代码中的第一类代码元素中相同功能的代码元素进行筛除后获得的筛选后的代码元素,第一类代码元素包括多个检索必要的代码元素,筛选后的代码元素中不同代码元素的功能不同;返回与检索请求匹配的目标代码元素。
第三方面,本申请实施例提供了一种面向软件定义卫星的可复用代码提取和分析装置,该可复用代码提取和分析装置包括:第一获取模块,用于获取开源代码,其中,开源代码包括第一类代码元素和第二类代码元素,第一类代码元素包括多个检索必要的代码元素,第二类代码元素包括多个检索非必要的代码元素;提取模块,用于从开源代码中提取第一类代码元素;筛除模块,用于对第一类代码元素中相同功能的代码元素进行筛除,获得筛选后的代码元素,其中,筛选后的代码元素中不同代码元素的功能不同;存储模块,用于将筛选后的代码元素存储到公共代码库中。
在一个可能的实施例中,第一类代码元素包括变量、函数和数据类型中的一种或多种。
在一个可能的实施例中,相同功能的代码元素是指名称相似度大于预设相似度且取值相同的代码元素。
在一个可能的实施例中,相同功能的代码元素是指名称相似度大于预设相似度且相关参数相同的代码元素。
在一个可能的实施例中,相关参数包括输入参数、输出参数、测试参数和全局变量。
在一个可能的实施例中,相同功能的代码元素是指名称相似度大于预设相似度且数据结构相同的代码元素。
在一个可能的实施例中,筛选后的代码元素包括第一代码元素,公共代码库存储有经筛选后的第二代码元素,且第二代码元素的功能和第一代码元素的功能相同,存储模块,用于:分别获取第一代码元素相关的第一参考信息和第二代码元素相关的第二参考信息;根据第一参考信息和第二参考信息,从第一代码元素和第二代码元素中选取出一个代码元素进行保留。
在一个可能的实施例中,公共代码库中的代码元素的属性信息包括第一标识信息和第二标识信息,第一标识信息用于标识公共代码库中的代码元素的使用频率,第二标识信息用于标识公共代码库中的代码元素的应用领域。
在一个可能的实施例中,第一标识信息包括高频标识信息和低频标识信息,高频标识信息用于表示公共代码库中的代码元素的使用频率大于等于预设频率,低频标识信息用于表示公共代码库中的代码元素的使用频率小于预设频率。
第四方面,本申请实施例提供了一种面向软件定义卫星的可复用代码检索装置,该可复用代码检索装置包括:第二获取模块,用于获取检索请求;检索模块,用于根据检索请求,从公共代码库中检索与检索请求匹配的目标代码元素,其中,公共代码库中存储的代码元素是通过对开源代码中的第一类代码元素中相同功能的代码元素进行筛除后获得的筛选后的代码元素,第一类代码元素包括多个检索必要的代码元素,筛选后的代码元素中不同代码元素的功能不同;返回模块,用于返回与检索请求匹配的目标代码元素。
第五方面,本申请实施例提供了一种存储介质,该存储介质上存储有计算机程序,该计算机程序被处理器运行时执行第一方面或第一方面的任一可选的实现方式所述的方法。
第六方面,本申请实施例提供了一种存储介质,该存储介质上存储有计算机程序,该计算机程序被处理器运行时执行第二方面或第二方面的任一可选的实现方式所述的方法。
第七方面,本申请实施例提供了一种电子设备,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当所述电子设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行第一方面或第一方面的任一可选的实现方式所述的方法。
第八方面,本申请实施例提供了一种电子设备,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当所述电子设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行第二方面或第二方面的任一可选的实现方式所述的方法。
第九方面,本申请提供一种计算机程序产品,所述计算机程序产品在计算机上运行时,使得计算机执行第一方面或第一方面的任意可能的实现方式中的方法。
第十方面,本申请提供一种计算机程序产品,所述计算机程序产品在计算机上运行时,使得计算机执行第二方面或第二方面的任意可能的实现方式中的方法。
为使本申请实施例所要实现的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本申请实施例提供的一种面向软件定义卫星的可复用代码提取和分析方法的流程图;
图2示出了本申请实施例提供的一种面向软件定义卫星的可复用代码检索方法的流程图;
图3示出了本申请实施例的一种面向软件定义卫星的可复用代码提取、分析与检索方法的流程示意图;
图4示出了本申请实施例提供的一种面向软件定义卫星的可复用代码提取和分析装置的结构框图;
图5示出了本申请实施例提供的一种面向软件定义卫星的可复用代码检索装置的结构框图;
图6示出了本申请实施例提供的一种电子设备的结构框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
据不完全统计,互联网上的开源项目有1000多万个,总代码规模超过了1000亿行,且这些开源项目所使用的编程语言、开发环境、构建环境和面向的目标平台多种多种,以及这些开源代码的编程语言有2500多种。
从而,在当前的技术条件下,在开发一个新的软件项目或者产品的时候,大多数用户希望可以找到类似的可供参考的开源代码,甚至是可以复用的开源代码,以加快工程进度。
然而,目前还没有专门的针对开源代码的高质量的搜索引擎可以使用,并且现有的开源代码的指令良莠不齐,差别很大,因此,从大规模的开源代码中找到高质量的开源代码是十分困难的。
此外,现有的软件项目或者产品的开源代码均是以文本格式保存在多个源文件中的,并且往往是以源码树的形式存在着的。以及,这些源文件之间互相依赖,彼此交织,导致代码检索和抽取十分困难。
另外,开源软件项目一般都会依赖很多其他的开源软件项目,一环套一环,不仅版本众多,而且不同的开源软件往往有不同的许可证规定,从而以开源代码为基础进行软件研发,还可能会面临着侵权的风险。
总之,虽然互联网上有着大量的高质量的开源代码存在,然而找到它们和复用其代码是比较困难的。
基于此,本申请实施例巧妙地提供了一种面向软件定义卫星的可复用代码提取和分析方案,通过获取开源代码,开源代码包括第一类开源代码和第二类开源代码,第一类开源代码包括多个检索必要的代码元素,第二类开源代码包括多个检索非必要的代码元素,以及从开源代码中提取第一类开源代码,以及对第一类开源代码中相同功能的代码元素进行筛除,获得筛选后的代码元素,筛选后的代码元素中不同代码元素的功能不同,以及将筛选后的代码元素存储到公共代码库中。
因此,本申请实施例通过从开源代码中提取第一类开源代码,以及对第一类开源代码中相同功能的代码元素进行筛除,以使得相同功能的代码元素只保留一个,从而提高了对开源代码的可控程度,以及还可将筛选后的代码元素存储到公共代码库中,从而为代码的查询提供了便利。
为了便于理解本申请实施例,首先在此对本申请实施例中的一些术语进行解释如下:
名词“有价值的代码元素”:它是指满足以下条件的代码元素:非无用代码、非调试代码和不包含非有效注释的代码。
其中,非无用代码是指通过分析确定,相关代码实际是被调用的,或者作为接口供外部使用的;非调试代码是指通过分析确定,相关代码不是用于测试的,即由于在软件运行的过程中,相关测试代码是不运行的,故可把测试代码看作无价值的代码元素;非有效注释可以是指相关代码的注释与对应的代码是对应不上的,故这里可把包含这类注释的代码看作无价值的代码元素。
这里需要说明的是,虽然上面对满足有价值的代码元素的条件进行了举例,但本领域的技术人员应当理解,满足有价值的代码元素的条件也可根据实际需求来进行设置,本申请实施例并不局限于此。
请参见图1,图1示出了本申请实施例提供的一种面向软件定义卫星的可复用代码提取和分析方法的流程图,应理解,图1所示的可复用代码提取和分析方法可以由面向软件定义卫星的可复用代码提取和分析装置执行,该可复用代码提取和分析装置可以与下文中的图4所示的面向软件定义卫星的可复用代码提取和分析装置对应,该可复用代码提取和分析装置可以是能够执行该可复用代码提取和分析方法的各种设备,例如,单个计算机或计算机系统(例如,图1中的一个步骤可由一个不同的计算机来执行)等,本申请对此不作限定。如图1的所示的面向软件定义卫星的可复用代码提取和分析方法包括如下步骤:
步骤S110,获取开源代码。其中,开源代码包括第一类代码元素和第二类代码元素,第一类代码元素包括多个检索必要的代码元素,第二类代码元素包括多个检索非必要的代码元素。
应理解,开源代码可以为与软件定义卫星相关的开源项目代码。
还应理解,第一类代码元素可以是包含满足有价值的代码元素的条件的相关代码。也就是说,检索必要的条件的代码元素是指满足有价值的代码元素的条件的代码元素。
对应地,第二类代码元素可以是指开源代码中不满足有价值的代码元素的条件的相关代码。也就是说,检索非必要的条件的代码元素是指不满足有价值的代码元素的条件的代码元素。
还应理解,第一类代码元素的具体类型可根据实际需求来进行设置,本申请实施例并不局限于此。
例如,第一类代码元素可以包括变量、函数和数据类型中的一种或多种。其中,数据类型可以是指用于声明不同类型的变量和函数的一个广泛的系统。
对应地,第二类代码元素也可以包括变量、函数和数据类型中的一种或多种。
也就是说,本申请实施例可将开源代码中的代码元素看作若干个函数、变量和数据类型的集合。以及,函数、变量和数据类型是具有不同属性的对象。其中,函数的属性可包括参数值(或者默认值)、函数名称、函数描述、函数标签、参数描述、参数次序、参数数据类型、输入参数成员名称和函数返回值的类型中的一个或者多个;变量的属性可包括变量值(可能是默认值)、变量描述、变量名称、变量标签(变量的分类,供检索使用的,便于分组和使用)和变量的数据类型中的一个或者多个;数据类型的属性可包括数据类型类别、数据类型名称、数据类型描述、数据类型成员属性(例如,成员值(例如,默认值)、成员名称、成员类型、成员描述和成员次序等)。
应理解,获取开源代码的具体方式可根据实际需求来进行设置,本申请实施例并不局限于此。
为了便于理解本申请实施例,下面通过具体的实施例来进行描述。
具体地,可通过数据爬取方法来爬取网络上的开源代码,并可将开源代码存储到原始文件存储库中。
步骤S120,从开源代码中提取第一类代码元素。
应理解,从开源代码中提取第一类代码元素的具体过程可根据实际需求来进行设置,本申请实施例并不局限于此。
为了便于理解本申请实施例,下面通过具体的实施例来进行描述。
具体地,可从原始文件存储库中读取开源代码,并可从开源代码中提取出第一类代码元素,并且可对第一类代码元素的代码语言类型进行标注,以及还可以结构化的方式将其存储到原始源码库中。
因此,由于开源代码具备结构清晰和容易拆分的特点,可清晰方便地从开源代码中提取第一类代码元素,从而提高了开源代码使用的可控度。
步骤S130,对第一类代码元素中相同功能的代码元素进行筛除,获得筛选后的代码元素。其中,筛选后的代码元素中不同代码元素的功能不同。
也就是说,本申请实施例通过对至少两个功能相同的代码元素进行筛除,最终从至少两个功能相同的代码元素中选取出其中一个代码元素进行保留即可。
应理解,相同功能对应的具体功能可根据实际需求来进行设置,本申请实施例并不局限于此。
例如,相同功能可以为求和功能等。
还应理解,对第一类代码元素中相同功能的代码元素进行筛除的具体过程可根据实际需求来进行设置,本申请实施例并不局限于此。
例如,可自动识别开源代码中名称相似度大于预设相似度(即名称相同或者相近)的变量,并判断不同的变量的取值是否相同,若相同,则判断其具有相同功能。也就是说,在代码元素为常量的情况下,相同功能的代码元素是指名称相似度大于预设相似度且取值相同的代码元素。随后,可从至少两个具有相同功能的变量中挑选出一个目标变量进行保留,并可将目标变量的名称作为目标变量对应的代码的名称。
再例如,可自动识别开源代码中名称相似度大于预设相似度的函数,并判断不同的函数的相关参数是否相同,若相同,则判断其具有相同功能。也就是说,在代码元素为函数的情况下,相同功能的代码元素是指名称相似度大于预设相似度且相关参数相同的代码元素。随后,可从至少两个具有相同功能的函数中挑选出一个目标函数进行保留,并可将目标函数的名称作为目标函数对应的代码的名称。
这里需要说明的是,对于函数来说,本申请实施例还可在对第一类代码元素中相同功能的函数进行筛除中添加评价函数对应的代码质量(例如,人工评价函数的代码质量)的过程,从而可根据代码质量的评价结果,来选择评价质量较优的函数作为目标函数。
应理解,函数的相关参数所包含的具体参数可根据实际需求来进行设置,本申请实施例并不局限于此。
例如,在函数的相关参数包括输入参数、输出参数、测试参数和全局变量的情况下,若不同函数的输入参数和输出参数的数据类型及数量是一致的,且使用一致的全部变量,以及单元测试结果一致(即对于给定的输入,有相同的输出),则可判定不同的函数具有相同的功能。
再例如,可自动识别开源代码中名称相似度大于预设相似度的自定义的数据类型,并判断不同的数据类型是否具有相同的结构定义,若具有,则判断其属于相同功能的数据类型,也就是说,在代码元素为数据结构的情况下,相同功能的代码元素是指名称相似度大于预设相似度且数据结构相同的代码元素。随后,可从至少两个具有相同功能的数据类型中挑选出一个目标数据类型进行保留,并可将目标数据类型的名称作为目标数据类型对应的代码的名称。
这里需要说的是,从具有相同功能的至少两个代码元素中选取出一个目标代码元素进行保留的过程可根据实际需求来进行设置,本申请实施例并不局限于此。
例如,可获取具有相同功能的至少两个代码元素中每个代码元素的评价信息,并选取评价信息最优的代码元素作为目标代码元素。
为了便于理解本申请实施例,下面通过具体的实施例来进行描述。
具体地,可从原始源码库中读取第一类代码元素,并可将不同代码语言类型的第一类代码元素的格式转换为同一预设代码语言类型,并可对语言格式转换后的第一类代码元素中相同功能的代码元素进行筛除,以获得筛选后的代码元素,即实现了对语言格式转换后的第一类代码元素的优化整合。
应理解,预设代码语言类型对应的具体代码语言类型可根据实际需求来进行设置,本申请实施例并不局限于此。
这里需要说明的是,虽然上面是以先对第一类代码元素进行语言格式转换,然后再对格式转换后的第一类代码元素进行筛除为例来进行描述的,但本领域的技术人员应当理解,也可先对第一类代码元素进行筛除,然后再对筛选后的代码元素进行语言格式转换,本申请实施例并不局限于此。
步骤S140,将筛选后的代码元素存储到公共代码库中。
这里需要说明的是,对于本申请实施例中的公共代码库里存储的代码元素来说,公共代码库里存储的不同代码元素的功能不同。
也就是说,对于代码元素的第一功能来说,公共代码库也是只保留与第一功能对应的一个代码元素,即同一功能只有一个代码元素。其中,第一功能为代码元素的任意一个功能。从而,在后续检索的时候,对于同一功能的代码元素对应的代码检索,其避免了反馈多个同一功能的代码元素让用户难以选择的情况,即本申请实施例可按照预设方法,预先对欲存储到公共代码库中的代码元素进行筛除,使得公共数据库中任意两个代码元素的功能互不相同。
可选地,在获得的筛选后的代码元素包括第一代码元素,且公共代码库存储有经筛选后的第二代码元素(第二代码元素的筛选过程可参见步骤S130和步骤S140的相关描述),且第二代码元素的功能和第一代码元素的功能相同的情况下,可分别获取第一代码元素相关的第一参考信息和第二代码元素相关的第二参考信息,并可根据根据第一参考信息和第二参考信息,从第一代码元素和第二代码元素中选取出一个参考信息较选的代码元素进行保留。
例如,在第一参考信息优于第二参考信息的情况下,可将公共代码库中的第二代码元素进行删除,并将第一代码元素存储到公共代码库中。
应理解,第一参考信息对应的具体信息和第二参考信息对应的具体信息均可根据实际需求来进行设置,本申请实施例并不局限于此。
例如,第一参考信息可为对应的代码的使用频率,对应地,第二参考信息也可以为对应的代码的使用频率。
再例如,第一参考信息可为对应的代码的代码质量的评价信息(例如,人工评价信息等),对应地,第二参考信息也可以为对应的代码的代码质量的评价信息(例如,人工评价信息等)。
此外,公共代码库中的代码元素的属性信息所包含的信息也可根据实际需求来进行设置,本申请实施例并不局限于此。
这里需要说明的是,在获得的筛选后的代码元素包括第三代码元素,且公共代码库并未存储有与第三代码元素功能相同的代码元素的情况下,可直接将第三代码元素存储到公共代码库中即可。
可选地,公共代码库中的代码元素的属性信息可包括第一标识信息和第二标识信息,第一标识信息用于标识公共代码库中的代码元素的使用频率,第二标识信息用于标识公共代码库中的代码元素的应用领域。
这里还需要说明的,设置第一标识信息的目的是为了便于后续代码元素对应的代码的推荐。
例如,在输入的检索请求是为了获取图像处理相关的代码的情况下,可根据第一标识信息,按照使用频率从高至低的方式推荐与图像处理相关的代码元素。
应理解,第一标识信息所包含的具体信息也可根据实际需求来进行设置,本申请实施例并不局限于此。
例如,可统计公共代码库中代码元素的使用频率,以及在公共代码库中的代码元素的使用频率大于等于预设频率的情况下,将对应的代码元素的第一标识信息设置为高频标识信息;在公共代码库中的代码元素的使用频率大于等于预设频率的情况下,将对应的代码元素的第一标识信息设置为低频标识信息。
还应理解,预设频率对应的具体频率可根据实际需求来进行设置,本申请实施例并不局限于此。
这里还需要说明的,设置第二标识信息的目的是为了便于后续检索。
例如,在输入的检索请求是为了获取图像处理领域相关的代码的情况下,可根据代码元素的第二标识信息来快速选取图像处理相关的代码。
应理解,第二标识信息的设置过程也可根据实际需求来进行设置,本申请实施例并不局限于此。
例如,可自动通过代码元素中的注释和源代码包说明来设置第二标识信息,即可通过自动设置的方式来设置第二标识信息。
再例如,可通过人工的设置的方式来设置第二标识信息。
这里还需要说明的,公共代码库中的代码元素的属性信息还可包括第三标识信息,第三标识信息用于标识公共代码库中的代码元素的作用。
因此,本申请实施例通过从开源代码中提取第一类开源代码,以及对第一类开源代码中相同功能的代码元素进行筛除,以使得相同功能的代码元素只保留一个,从而提高了对开源代码的可控程度,以及还可将筛选后的代码元素存储到公共代码库中,从而为代码的查询提供了便利。
此外,借助于上述技术方案,本申请实施例还可为开发者按照特定领域推荐更有效的、使用频率更高的代码元素提供基础,同时有效降低开源代码学习代价。
以及,借助于上述技术方案,可基于地面众多成熟的开源项目代码为软件定义卫星开发提供可复用库。以及,可辅助软件定义卫星开发者快速检索到经过分析、筛选的、可复用的、高质量代码元素,降低学习软件定义卫星软件的成本,提高其开发效率。
应理解,上述面向软件定义卫星的可复用代码提取和分析方法仅是示例性的,本领域技术人员根据上述的方法可以进行各种变形,该变形之后的方案也属于本申请的保护范围。
请参见图2,图2示出了本申请实施例提供的一种面向软件定义卫星的可复用代码检索方法的流程图,应理解,图2所示的可复用代码检索方法可以由面向软件定义卫星的可复用代码检索装置执行,该可复用代码检索装置可以与下文中的图5所示的面向软件定义卫星的可复用代码检索装置对应,该面向软件定义卫星的可复用代码检索装置可以是能够执行该可复用代码检索方法的各种设备,例如,单个计算机等,本申请对此不作限定。如图2的所示的可复用代码检索方法包括如下步骤:
步骤S210,获取检索请求。
应理解,检索请求可以是携带有检索条件的请求。其中,检索条件可包括检索领域或者具体代码功能等。
步骤S220,根据检索请求,从公共代码库中检索与检索请求匹配的目标代码元素。其中,公共代码库中存储的代码元素是通过对开源代码中的第一类代码元素中相同功能的代码元素进行筛除后获得的筛选后的代码元素,第一类代码元素包括多个检索必要的代码元素,筛选后的代码元素中不同代码元素的功能不同。
应理解,公共代码库中存储的代码元素的相关过程与图1所示的过程是相同的,具体可参见图1的相关描述。
为了便于理解本申请实施例,下面通过具体的实施例来进行描述。
具体地,可根据检索请求和公共代码库中代码元素的属性信息,从公共代码库中查询与检索请求匹配的目标代码元素。
例如,在输入的检索请求是为了获取图像处理相关的代码的情况下,可根据第一标识信息,按照使用频率从高至低的方式推荐与图像处理相关的代码元素。
步骤S230,返回与检索请求匹配的目标代码元素。
例如,可向用户设备侧发送目标代码元素,也可通过自身的显示器来展示目标代码元素。
因此,由于公共代码库可存储有通过参考信息(例如,第一参考信息和第二参考信息)确定出的比较优选的代码元素(例如,使用频率较高的代码元素),本申请实施例可通过从公共代码库中检索的方式来获取优选的代码元素,从而无需降低了获取代码元素对应的代码的难度。
此外,本申请实施例还可为开发者按照特定领域推荐更有效的、使用频率更高的代码元素,同时有效降低开源代码学习代价。
应理解,上述面向软件定义卫星的可复用代码检索方法仅是示例性的,本领域技术人员根据上述的方法可以进行各种变形,该变形之后的方案也属于本申请的保护范围。
为了便于理解本申请实施例,下面通过具体的实施例来进行描述。
如图3所示,图3示出了本申请实施例的一种面向软件定义卫星的可复用代码提取、分析与检索方法的流程示意图。如图3所示的可复用代码提取、分析与检索方法包括面向软件定义卫星的可复用代码提取和分析方法和面向软件定义卫星的可复用代码检索方法。
其中,面向软件定义卫星的可复用代码提取和分析方法具体包括:从互联网数据中采集开源代码;将开源代码存储到原始文件存储库中;从原始文件存储库中存储的开源代码中提取第一类代码元素;将第一类代码元素存储到原始源码库中;将原始源码库中存储的第一类代码元素的语言代码格式转换为统一语言代码格式,并对代码格式转换后的第一类代码元素进行筛除,以获得筛选后的代码元素;将筛选后的代码元素存储到公共代码库中。
此外,还可统计公共代码库中的代码元素的使用频率,并根据使用频率设置第一标识信息。以及,还可获取公共代码库中的代码元素的应用领域,并根据应用领域设置第二标识信息(或者说,为代码元素打应用领域相关的标签)。
另外,面向软件定义卫星的可复用代码检索方法具体包括:根据携带有检索条件的检索请求,从公共代码库中匹配出与检索请求对应的目标代码元素。
应理解,上述相关方法仅是示例性的,本领域技术人员根据上述的方法可以进行各种变形,该变形之后的方案也属于本申请的保护范围。
请参见图4,图4示出了本申请实施例提供的一种面向软件定义卫星的可复用代码提取和分析装置400的结构框图,应理解,该可复用代码提取和分析装置400能够执行图1对应的方法实施例中的各个步骤,该可复用代码提取和分析装置400具体的功能可以参见上文中的描述,为避免重复,此处适当省略详细描述。可复用代码提取和分析装置400包括至少一个能以软件或固件(firmware)的形式存储于存储器中或固化在可复用代码提取和分析装置400的操作系统(operating system,OS)中的软件功能模块。具体地,该可复用代码提取和分析装置400包括:
第一获取模块410,用于获取开源代码,其中,开源代码包括第一类代码元素和第二类代码元素,第一类代码元素包括多个检索必要的代码元素,第二类代码元素包括多个检索非必要的代码元素;提取模块420,用于从开源代码中提取第一类代码元素;筛除模块430,用于对第一类代码元素中相同功能的代码元素进行筛除,获得筛选后的代码元素,其中,筛选后的代码元素中不同代码元素的功能不同;存储模块440,用于将筛选后的代码元素存储到公共代码库中。
在一个可能的实施例中,第一类代码元素包括变量、函数和数据类型中的一种或多种。
在一个可能的实施例中,相同功能的代码元素是指名称相似度大于预设相似度且取值相同的代码元素。
在一个可能的实施例中,相同功能的代码元素是指名称相似度大于预设相似度且相关参数相同的代码元素。
在一个可能的实施例中,相关参数包括输入参数、输出参数、测试参数和全局变量。
在一个可能的实施例中,相同功能的代码元素是指名称相似度大于预设相似度且数据结构相同的代码元素。
在一个可能的实施例中,筛选后的代码元素包括第一代码元素,公共代码库存储有经筛选后的第二代码元素,且第二代码元素的功能和第一代码元素的功能相同,存储模块440,用于:分别获取第一代码元素相关的第一参考信息和第二代码元素相关的第二参考信息;根据第一参考信息和第二参考信息,从第一代码元素和第二代码元素中选取出一个代码元素进行保留。
在一个可能的实施例中,公共代码库中的代码元素的属性信息包括第一标识信息和第二标识信息,第一标识信息用于标识公共代码库中的代码元素的使用频率,第二标识信息用于标识公共代码库中的代码元素的应用领域。
在一个可能的实施例中,第一标识信息包括高频标识信息和低频标识信息,高频标识信息用于表示公共代码库中的代码元素的使用频率大于等于预设频率,低频标识信息用于表示公共代码库中的代码元素的使用频率小于预设频率。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置的具体工作过程,可以参考前述方法中的对应过程,在此不再过多赘述。
请参见图5,图5示出了本申请实施例提供的一种面向软件定义卫星的可复用代码检索装置500的结构框图,应理解,该可复用代码检索装置500能够执行上述图2对应的方法实施例中的各个步骤,该可复用代码检索装置500具体的功能可以参见上文中的描述,为避免重复,此处适当省略详细描述。可复用代码检索装置500包括至少一个能以软件或固件(firmware)的形式存储于存储器中或固化在可复用代码检索装置500的操作系统(operating system,OS)中的软件功能模块。具体地,该可复用代码检索装置500包括:
第二获取模块510,用于获取检索请求;检索模块520,用于根据检索请求,从公共代码库中检索与检索请求匹配的目标代码元素,其中,公共代码库中存储的代码元素是通过对开源代码中的第一类代码元素中相同功能的代码元素进行筛除后获得的筛选后的代码元素,第一类代码元素包括多个检索必要的代码元素,筛选后的代码元素中不同代码元素的功能不同;返回模块530,用于返回与检索请求匹配的目标代码元素。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置的具体工作过程,可以参考前述方法中的对应过程,在此不再过多赘述。
本申请还提供一种电子设备,该电子设备可设置在代码处理装置中或者查询代码元素的装置中。
图6示出了本申请实施例提供的一种电子设备600的结构框图,如图6所示。电子设备600可以包括处理器610、通信接口620、存储器630和至少一个通信总线640。其中,通信总线640用于实现这些组件直接的连接通信。其中,本申请实施例中设备的通信接口620用于与其他节点设备进行信令或数据的通信。处理器610可以是一种集成电路芯片,具有信号的处理能力。上述的处理器610可以是通用处理器,包括中央处理器(Central ProcessingUnit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器610也可以是任何常规的处理器等。
存储器630可以是,但不限于,随机存取存储器(Random Access Memory,RAM),只读存储器(Read Only Memory,ROM),可编程只读存储器(Programmable Read-OnlyMemory,PROM),可擦除只读存储器(Erasable Programmable Read-Only Memory,EPROM),电可擦除只读存储器(Electric Erasable Programmable Read-Only Memory,EEPROM)等。存储器630中存储有计算机可读取指令,当所述计算机可读取指令由所述处理器610执行时,电子设备600可以执行上述方法实施例中对应装置侧的各个步骤。例如,在电子设备600设置在面向软件定义卫星的可复用代码提取和分析装置中的情况下,存储器630中存储有计算机可读取指令,当所述计算机可读取指令由所述处理器610执行时,电子设备600可以执行上述图1的各个步骤。
电子设备600还可以包括存储控制器、输入输出单元、音频单元、显示单元。
所述存储器630、存储控制器、处理器610、外设接口、输入输出单元、音频单元、显示单元各元件相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通信总线640实现电性连接。所述处理器610用于执行存储器630中存储的可执行模块,例如电子设备600包括的软件功能模块或计算机程序。
输入输出单元用于提供给用户输入数据实现用户与所述服务器(或本地终端)的交互。所述输入输出单元可以是,但不限于,鼠标和键盘等。
音频单元向用户提供音频接口,其可包括一个或多个麦克风、一个或者多个扬声器以及音频电路。
显示单元在所述电子设备与用户之间提供一个交互界面(例如用户操作界面)或用于显示图像数据给用户参考。在本实施例中,所述显示单元可以是液晶显示器或触控显示器。若为触控显示器,其可为支持单点和多点触控操作的电容式触控屏或电阻式触控屏等。支持单点和多点触控操作是指触控显示器能感应到来自该触控显示器上一个或多个位置处同时产生的触控操作,并将该感应到的触控操作交由处理器进行计算和处理。
输入输出单元用于提供给用户输入数据实现用户与处理终端的交互。所述输入输出单元可以是,但不限于,鼠标和键盘等。
可以理解,图6所示的结构仅为示意,所述电子设备600还可包括比图6中所示更多或者更少的组件,或者具有与图6所示不同的配置。图6中所示的各组件可以采用硬件、软件或其组合实现。
本申请提供一种存储介质,该存储介质上存储有计算机程序,该计算机程序被处理器运行时执行图1中任一可选的实现方式所述的方法。
本申请提供一种存储介质,该存储介质上存储有计算机程序,该计算机程序被处理器运行时执行图2中任一可选的实现方式所述的方法。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统的具体工作过程,可以参考前述方法中的对应过程,在此不再过多赘述。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。
Claims (24)
1.一种面向软件定义卫星的可复用代码提取和分析方法,其特征在于,包括:
获取开源代码,其中,所述开源代码包括第一类代码元素和第二类代码元素,所述第一类代码元素包括多个检索必要的代码元素,所述第二类代码元素包括多个检索非必要的代码元素;
从所述开源代码中提取所述第一类代码元素;
对所述第一类代码元素中相同功能的代码元素进行筛除,获得筛选后的代码元素,其中,所述筛选后的代码元素中不同代码元素的功能不同;
将所述筛选后的代码元素存储到公共代码库中。
2.根据权利要求1所述的可复用代码提取和分析方法,其特征在于,所述第一类代码元素包括变量、函数和数据类型中的一种或多种。
3.根据权利要求1所述的可复用代码提取和分析方法,其特征在于,所述相同功能的代码元素是指名称相似度大于预设相似度且取值相同的代码元素。
4.根据权利要求1所述的可复用代码提取和分析方法,其特征在于,所述相同功能的代码元素是指名称相似度大于预设相似度且相关参数相同的代码元素。
5.根据权利要求4所述的可复用代码提取和分析方法,其特征在于,所述相关参数包括输入参数、输出参数、测试参数和全局变量。
6.根据权利要求1所述的可复用代码提取和分析方法,其特征在于,所述相同功能的代码元素是指名称相似度大于预设相似度且数据结构相同的代码元素。
7.根据权利要求1所述的可复用代码提取和分析方法,其特征在于,所述筛选后的代码元素包括第一代码元素,所述公共代码库存储有经筛选后的第二代码元素,且第二代码元素的功能和所述第一代码元素的功能相同,所述将所述筛选后的代码元素存储到公共代码库中,包括:
分别获取第一代码元素相关的第一参考信息和所述第二代码元素相关的第二参考信息;
根据所述第一参考信息和所述第二参考信息,从所述第一代码元素和所述第二代码元素中选取出一个代码元素进行保留。
8.根据权利要求1所述的可复用代码提取和分析方法,其特征在于,所述公共代码库中的代码元素的属性信息包括第一标识信息和第二标识信息,所述第一标识信息用于标识所述公共代码库中的代码元素的使用频率,所述第二标识信息用于标识所述公共代码库中的代码元素的应用领域。
9.根据权利要求8所述的可复用代码提取和分析方法,其特征在于,所述第一标识信息包括高频标识信息和低频标识信息,所述高频标识信息用于表示所述公共代码库中的代码元素的使用频率大于等于预设频率,所述低频标识信息用于表示所述公共代码库中的代码元素的使用频率小于预设频率。
10.一种面向软件定义卫星的可复用代码检索方法,其特征在于,包括:
获取检索请求;
根据所述检索请求,从公共代码库中检索与所述检索请求匹配的目标代码元素,其中,所述公共代码库中存储的代码元素是通过对开源代码中的第一类代码元素中相同功能的代码元素进行筛除后获得的筛选后的代码元素,所述第一类代码元素包括多个检索必要的代码元素,所述筛选后的代码元素中不同代码元素的功能不同;
返回与所述检索请求匹配的所述目标代码元素。
11.一种面向软件定义卫星的可复用代码提取和分析装置,其特征在于,包括:
第一获取模块,用于获取开源代码,其中,所述开源代码包括第一类代码元素和第二类代码元素,所述第一类代码元素包括多个检索必要的代码元素,所述第二类代码元素包括多个检索非必要的代码元素;
提取模块,用于从所述开源代码中提取所述第一类代码元素;
筛除模块,用于对所述第一类代码元素中相同功能的代码元素进行筛除,获得筛选后的代码元素,其中,所述筛选后的代码元素中不同代码元素的功能不同;
存储模块,用于将所述筛选后的代码元素存储到公共代码库中。
12.根据权利要求11所述的可复用代码提取和分析装置,其特征在于,所述第一类代码元素包括变量、函数和数据类型中的一种或多种。
13.根据权利要求11所述的可复用代码提取和分析装置,其特征在于,所述相同功能的代码元素是指名称相似度大于预设相似度且取值相同的代码元素。
14.根据权利要求11所述的可复用代码提取和分析装置,其特征在于,所述相同功能的代码元素是指名称相似度大于预设相似度且相关参数相同的代码元素。
15.根据权利要求14所述的可复用代码提取和分析装置,其特征在于,所述相关参数包括输入参数、输出参数、测试参数和全局变量。
16.根据权利要求11所述的可复用代码提取和分析装置,其特征在于,所述相同功能的代码元素是指名称相似度大于预设相似度且数据结构相同的代码元素。
17.根据权利要求11所述的可复用代码提取和分析装置,其特征在于,所述筛选后的代码元素包括第一代码元素,所述公共代码库存储有经筛选后的第二代码元素,且第二代码元素的功能和所述第一代码元素的功能相同,所述存储模块,用于:分别获取第一代码元素相关的第一参考信息和所述第二代码元素相关的第二参考信息;根据所述第一参考信息和所述第二参考信息,从所述第一代码元素和所述第二代码元素中选取出一个代码元素进行保留。
18.根据权利要求11所述的可复用代码提取和分析装置,其特征在于,所述公共代码库中的代码元素的属性信息包括第一标识信息和第二标识信息,所述第一标识信息用于标识所述公共代码库中的代码元素的使用频率,所述第二标识信息用于标识所述公共代码库中的代码元素的应用领域。
19.根据权利要求18所述的可复用代码提取和分析装置,其特征在于,所述第一标识信息包括高频标识信息和低频标识信息,所述高频标识信息用于表示所述公共代码库中的代码元素的使用频率大于等于预设频率,所述低频标识信息用于表示所述公共代码库中的代码元素的使用频率小于预设频率。
20.一种面向软件定义卫星的可复用代码检索装置,其特征在于,包括:
第二获取模块,用于获取检索请求;
检索模块,用于根据所述检索请求,从公共代码库中检索与所述检索请求匹配的目标代码元素,其中,所述公共代码库中存储的代码元素是通过对开源代码中的第一类代码元素中相同功能的代码元素进行筛除后获得的筛选后的代码元素,所述第一类代码元素包括多个检索必要的代码元素,所述筛选后的代码元素中不同代码元素的功能不同;
返回模块,用于返回与所述检索请求匹配的所述目标代码元素。
21.一种存储介质,其特征在于,所述存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行如权利要求1至9任一所述的面向软件定义卫星的可复用代码提取和分析方法。
22.一种存储介质,其特征在于,所述存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行如权利要求10所述的面向软件定义卫星的可复用代码检索方法。
23.一种电子设备,其特征在于,所述电子设备包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当所述电子设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行如权利要求1至9任一所述的面向软件定义卫星的可复用代码提取和分析方法。
24.一种电子设备,其特征在于,所述电子设备包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当所述电子设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行如权利要求10所述的面向软件定义卫星的可复用代码检索方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011413643.0A CN112241262A (zh) | 2020-12-07 | 2020-12-07 | 一种面向软件定义卫星的可复用代码提取、分析与检索方法与装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011413643.0A CN112241262A (zh) | 2020-12-07 | 2020-12-07 | 一种面向软件定义卫星的可复用代码提取、分析与检索方法与装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112241262A true CN112241262A (zh) | 2021-01-19 |
Family
ID=74175474
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011413643.0A Pending CN112241262A (zh) | 2020-12-07 | 2020-12-07 | 一种面向软件定义卫星的可复用代码提取、分析与检索方法与装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112241262A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112631653A (zh) * | 2021-03-09 | 2021-04-09 | 广州欧赛斯信息科技有限公司 | 一种教学评价指标库代码适配方法及系统 |
CN114115855A (zh) * | 2021-03-26 | 2022-03-01 | 北京京东拓先科技有限公司 | 代码复用方法及装置、计算机可读存储介质、电子设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104077147A (zh) * | 2014-07-11 | 2014-10-01 | 东南大学 | 一种基于代码克隆自动检测和及时提醒的软件复用方法 |
CN110750240A (zh) * | 2019-08-28 | 2020-02-04 | 南京航空航天大学 | 一种基于序列到序列模型的代码片段推荐方法 |
-
2020
- 2020-12-07 CN CN202011413643.0A patent/CN112241262A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104077147A (zh) * | 2014-07-11 | 2014-10-01 | 东南大学 | 一种基于代码克隆自动检测和及时提醒的软件复用方法 |
CN110750240A (zh) * | 2019-08-28 | 2020-02-04 | 南京航空航天大学 | 一种基于序列到序列模型的代码片段推荐方法 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112631653A (zh) * | 2021-03-09 | 2021-04-09 | 广州欧赛斯信息科技有限公司 | 一种教学评价指标库代码适配方法及系统 |
CN112631653B (zh) * | 2021-03-09 | 2021-06-15 | 广州欧赛斯信息科技有限公司 | 一种指标库代码适配方法及系统 |
CN114115855A (zh) * | 2021-03-26 | 2022-03-01 | 北京京东拓先科技有限公司 | 代码复用方法及装置、计算机可读存储介质、电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2527991B1 (en) | Analysis method, analysis device, and analysis program | |
US20100082697A1 (en) | Data model enrichment and classification using multi-model approach | |
US20130346412A1 (en) | System and method of detecting common patterns within unstructured data elements retrieved from big data sources | |
WO2012129149A2 (en) | Aggregating search results based on associating data instances with knowledge base entities | |
US20130097134A1 (en) | System and method for subject identification from free format data sources | |
CN106844638B (zh) | 信息检索方法、装置及电子设备 | |
Skluzacek et al. | Skluma: An extensible metadata extraction pipeline for disorganized data | |
US20080147631A1 (en) | Method and system for collecting and retrieving information from web sites | |
CN112241262A (zh) | 一种面向软件定义卫星的可复用代码提取、分析与检索方法与装置 | |
JP2019200449A (ja) | 案件振分支援システム、案件振分支援装置、及び案件振分支援方法 | |
Kanellopoulos et al. | Mining source code elements for comprehending object-oriented systems and evaluating their maintainability | |
JP5976209B2 (ja) | プログラム解析装置、プログラム解析方法およびプログラム解析プログラム | |
CN112732763A (zh) | 数据的聚合方法、装置、电子设备及介质 | |
JP4855080B2 (ja) | スキーマ統合支援装置、スキーマ統合支援装置のスキーマ統合支援方法およびスキーマ統合支援プログラム | |
CN107451280A (zh) | 数据打通方法、装置及电子设备 | |
JP2006323517A (ja) | テキスト分類装置およびプログラム | |
US8903754B2 (en) | Programmatically identifying branding within assets | |
CN110781211B (zh) | 一种数据的解析方法及装置 | |
JP2014102625A (ja) | 情報検索システム、プログラム、および方法 | |
JP2020064482A (ja) | 属性抽出装置および属性抽出方法 | |
US20220327162A1 (en) | Information search system | |
CN112131215B (zh) | 自底向上的数据库信息获取方法及装置 | |
US9251253B2 (en) | Expeditious citation indexing | |
CN113076396A (zh) | 一种面向人机协同的实体关系处理方法及系统 | |
JP6557959B2 (ja) | 情報提示プログラム、情報提示方法及び情報提示装置 |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210119 |
|
RJ01 | Rejection of invention patent application after publication |