代码开源贡献度的确定方法、装置、计算机设备及介质

文档序号:152863 发布日期:2021-10-26 浏览:39次 >En<

阅读说明:本技术 代码开源贡献度的确定方法、装置、计算机设备及介质 (Method and device for determining contribution degree of open source of code, computer equipment and medium ) 是由 杨占栋 李昱 王全礼 张晨 张美伟 范钟艺 于 2021-07-30 设计创作,主要内容包括:本发明公开了一种代码开源贡献度的确定方法、装置、计算机设备及介质,涉及自动程序设计技术领域,其中该方法包括:提取代码的基本贡献特征;提取代码重用影响的特征;提取代码对于开发影响的特征;根据所述代码的基本贡献特征,代码重用影响的特征,以及代码对于开发影响的特征,确定代码开源贡献度。本发明可以高效准确地确定代码开源贡献度。(The invention discloses a method, a device, computer equipment and a medium for determining the contribution degree of code open source, and relates to the technical field of automatic program design, wherein the method comprises the following steps: extracting basic contribution features of the code; extracting the characteristics of the code reuse influence; extracting the characteristics of the code on development influence; and determining the open source contribution degree of the code according to the basic contribution characteristics of the code, the characteristics of the code reuse influence and the characteristics of the code on the development influence. The invention can efficiently and accurately determine the contribution degree of the code open source.)

代码开源贡献度的确定方法、装置、计算机设备及介质

技术领域

本发明涉及自动程序设计技术领域,尤其涉及一种代码开源贡献度的确定方法、装置、计算机设备及介质。

背景技术

本部分旨在为权利要求书中陈述的本发明实施例提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。

开发人员向软件项目存储库贡献代码,这些代码贡献通常以简单的度量为特征,例如提交数、代码行数等等。目前,最流行的开源软件托管平台之一的GitHub,就是简单的使用提交数对项目的开发人员进行排名。专业知识浏览器是一种用于识别开发人员技能的经典工具,它使用了已更改的代码行数作为指标衡量的是代码的贡献数量,而并不是贡献的价值量。例如,应用程序逻辑核心功能可能比辅助的脚本更有价值,而代码数量可能远远少于辅助的脚本代码数量。

在许多情况下,需要比较不同开发人员的贡献价值。传统的基于价值的软件工程着重于创造的经济价值,以此作为对资源分配和调度作为优先排序的一种方式,其实价值的其他衡量指标在某些情况下可能更为相关。对于开源软件的项目,开发人员的贡献会极大的影响协作、协调以及领导力,而目前对开源软件项目的开发人员贡献的价值的衡量,还都是一些最简单、最基本的方式,例如上述所说的提交的次数、提交的代码行数以及项目创造的经济价值等等。

发明内容

本发明实施例提供一种开源贡献度的确定方法,用以高效准确地确定代码开源贡献度,该方法包括:

提取代码的基本贡献特征;

提取代码重用影响的特征;

提取代码对于开发影响的特征;

根据所述代码的基本贡献特征,代码重用影响的特征,以及代码对于开发影响的特征,确定代码开源贡献度。

在一个实施例中,提取代码的基本贡献特征,可以包括:根据提交的代码总行数和提交代码的次数,确定代码的基本贡献特征。

在一个实施例中,根据提交的代码总行数和提交代码的次数,确定代码的基本贡献特征,可以包括按照如下公式确定代码的基本贡献特征:

C1=α×LoC(d)+β×NoC(d)+γ;

其中,C1为代码的基本贡献特征,LoC(d)为提交的代码总行数,NoC(d)为提交代码的次数,α,β,γ为已知参数值。

在一个实施例中,提取代码重用影响的特征,可以包括:

基于PageRank的方法确定代码中每个函数的排名;

根据每个函数的排名,确定代码重用影响的特征。

在一个实施例中,基于PageRank的方法确定代码中每个函数的排名,可以包括按照如下公式确定每个函数的排名:

其中,Fi表示代码中的第i个函数,PR(Fi)为代码中第i个函数的排名,S(Fji)表示调用函数Fi的所有函数的集合,Fj为S(Fji)集合中的第j个函数,PR(Fj)为S(Fji)集合中第j个函数的排名,nj表示调用函数Fi的函数数量,N表示所有的函数数量,α为已知参数值。

在一个实施例中,根据每个函数的排名,确定代码重用影响的特征,可以包括:

其中,C2为代码重用影响的特征,SD(Fi)为开发人员提交代码的所有函数的集合,Fi表示代码中的一个函数,PR(Fi)为代码中每个函数的排名。

在一个实施例中,提取代码对于开发影响的特征,可以包括:

获取每次代码提交时提交的日志文本数据向量;

对所述日志文本数据向量进行文本编码;

对所述日志文本数据向量进行知识编码;

将文本编码和知识编码合并,得到合并的编码,对合并的编码使用softmax回归进行分类,识别出文本类别作为代码对于开发影响的特征。

在一个实施例中,将文本编码和知识编码合并,得到合并的编码,对合并的编码使用softmax回归进行分类,识别出文本类别作为代码对于开发影响的特征,可以包括按照如下公式确定代码对于开发影响的特征:

C3=softmax(e);

其中,C3为代码对于开发影响的特征,e=[p;q],e为合并的编码,p为知识编码,q为文本编码。

在一个实施例中,根据所述代码的基本贡献特征,代码重用影响的特征,以及代码对于开发影响的特征,确定代码开源贡献度,可以包括按照如下公式确定代码开源贡献度:

其中,Sd为代码开源贡献度,wi、b为已知的参数值,Ci包括基本贡献特征,代码重用影响的特征和代码对于开发影响的特征。

本发明实施例还提供一种开源贡献度的确定装置,用以高效准确地确定代码开源贡献度,该装置包括:

第一提取单元,用于提取代码的基本贡献特征;

第二提取单元,用于提取代码重用影响的特征;

第三提取单元,用于提取代码对于开发影响的特征;

确定单元,用于根据所述代码的基本贡献特征,代码重用影响的特征,以及代码对于开发影响的特征,确定代码开源贡献度。

在一个实施例中,所述第一提取单元具体用于:根据提交的代码总行数和提交代码的次数,确定代码的基本贡献特征。

在一个实施例中,所述第一提取单元具体用于按照如下公式确定代码的基本贡献特征:

C1=α×LoC(d)+β×NoC(d)+γ;

其中,C1为代码的基本贡献特征,LoC(d)为提交的代码总行数,NoC(d)为提交代码的次数,α,β,γ为已知参数值。

在一个实施例中,所述第二提取单元具体用于:

基于PageRank的方法确定代码中每个函数的排名;

根据每个函数的排名,确定代码重用影响的特征。

在一个实施例中,所述第二提取单元具体用于按照如下公式确定每个函数的排名:

其中,Fi表示代码中的第i个函数,PR(Fi)为代码中第i个函数的排名,S(Fji)表示调用函数Fi的所有函数的集合,Fj为S(Fji)集合中的第j个函数,PR(Fj)为S(Fji)集合中第j个函数的排名,nj表示调用函数Fi的函数数量,N表示所有的函数数量,α为已知参数值。

在一个实施例中,所述第二提取单元具体用于按照如下公式确定每个函数的排名:

其中,C2为代码重用影响的特征,SD(Fi)为开发人员提交代码的所有函数的集合,Fi表示代码中的一个函数,PR(Fi)为代码中每个函数的排名。

在一个实施例中,所述第三提取单元具体用于按照如下公式确定代码重用影响的特征:

获取每次代码提交时提交的日志文本数据向量;

对所述日志文本数据向量进行文本编码;

对所述日志文本数据向量进行知识编码;

将文本编码和知识编码合并,得到合并的编码,对合并的编码使用softmax回归进行分类,识别出文本类别作为代码对于开发影响的特征。

在一个实施例中,所述第三提取单元具体用于按照如下公式确定代码重用影响的特征:

C3=softmax(e);

其中,C3为代码对于开发影响的特征,e=[p;q],e为合并的编码,p为知识编码,q为文本编码。

所述确定单元具体用于按照如下公式确定代码开源贡献度:

其中,Sd为代码开源贡献度,wi、b为已知的参数值,Ci包括基本贡献特征,代码重用影响的特征和代码对于开发影响的特征。

本发明实施例还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述代码开源贡献度的确定方法。

本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有执行上述代码开源贡献度的确定方法的计算机程序。

本发明实施例中,代码开源贡献度的确定方案,通过:提取代码的基本贡献特征;提取代码重用影响的特征;提取代码对于开发影响的特征;根据所述代码的基本贡献特征,代码重用影响的特征,以及代码对于开发影响的特征,确定代码开源贡献度,可以实现高效准确地确定代码开源贡献度。

附图说明

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

图1为本发明实施例中开源贡献度的确定方法的流程示意图;

图2为本发明实施例中提取代码重用影响的特征的流程示意图;

图3为本发明实施例中提取代码对于开发影响的特征的流程示意图;

图4为本发明实施例中开源贡献度的确定装置的结构示意图;

图5为本发明实施例中计算机设备的结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本发明实施例做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。

在介绍本发明实施例之前,首先介绍本发明实施例涉及的名词。

1.代码是程序员用开发工具所支持的语言写出来的源文件,是一组由字符、符号或信号码元以离散形式表示信息的明确的规则体系。代码设计的原则包括唯一确定性、标准化和通用性、可扩充性与稳定性、便于识别与记忆、力求短小与格式统一以及容易修改等。

2.开源(Open Source)全称为开放源代码。开源就是要用户利用源代码在其基础上修改和学习的,但开源系统同样也有版权,同样也受到法律保护。市场上开源软件层出不穷,很多人可能认为开源软件最明显的特点是免费,但实际上并不是这样的,开源软件最大的特点应该是开放,也就是任何人都可以得到软件的源代码,加以修改学习,甚至重新发放,当然是在版权限制范围之内。

开源系统其实面向的用户有两个群体,一是程序员,他们最关心源代码,能不能进行二次开发利用;二是普通终端用户,他们只关心软件功能够不够强。开源系统的重点应该是在“开放”,是接纳、包容和发展,求同存异,互利共赢,才是开源的本质。

用户在使用开源产品时,不但需表明产品来自开源软件和注明源代码编写者姓名,而且还应把所修改产品返回给开源软件,否则所修改产品就可视为侵权。现在,国内的盗版很泛滥,即便闭源的软件,都会被肆意盗版甚至篡改版权,开源软件就更别说了,篡改版权就是个查找替换的简单操作而已。版权意识的淡漠才是国内开源发展的最大障碍。

开源系统在国内起步晚,但发展很快,将来肯定是业内主流。那些打着开源的幌子貌似开源,将其核心代码加密的软件必将引起公愤。开源真实含义应是利用其源代码加以修改和学习,在理解开源真正含义后,那些造假、侵权、违法的行为和事件必定减少。开源不仅仅表示开放程序源代码。

随着电子商务的进展,网络购物越来越普及,三亿的网民有近四分之一有过网购经验,这很大的网购消费市场,也让越来越多的中小公司及大的私人网商着手进展自己的网上店铺,尤其是独立网上店铺及公司电子商业上的事务平台,因此达到进展自己的独立网店品牌,管理拓展网上宣传及销行渠道的目标。

3.贡献度,也称贡献率,其是分析经济效益的一个指标。它是指有效或有用成果数量与资源消耗及占用量之比,即产出量与投入量之比,或所得量与所费量之比。

本发明实施例提出一种代码开源贡献度的确定(评价)方案,该方案包括:(1)、提取代码基本的特征;(2)、提取代码重用影响的特征;(3)、提取代码对于开发影响的特征;(4)、融合代码基本贡献特征、代码重用影响特征、代码开发影响特征,使用多元线性回归,计算出开源贡献度的分数值。该方法与通过人工评估或者简单的计算方法获得的结果相比,会得出更准确的开源代码贡献度评估结果。下面对该代码开源贡献度的确定方案进行详细介绍。

图1为本发明实施例中开源贡献度的确定方法的流程示意图,如图1所示,该方法包括如下步骤:

步骤101:提取代码的基本贡献特征;

步骤102:提取代码重用影响的特征;

步骤103:提取代码对于开发影响的特征;

步骤104:根据所述代码的基本贡献特征,代码重用影响的特征,以及代码对于开发影响的特征,确定代码开源贡献度。

本发明实施例中,代码开源贡献度的确定方案,通过:提取代码的基本贡献特征;提取代码重用影响的特征;提取代码对于开发影响的特征;根据所述代码的基本贡献特征,代码重用影响的特征,以及代码对于开发影响的特征,确定代码开源贡献度,可以实现高效准确地确定代码开源贡献度。下面对该方法涉及的各个步骤进行详细介绍。

一、首先,介绍上述步骤101,提取代码的基本贡献特征。

对一个开发人员,定义为d,基本的特征定义为C1,是由两部分组成,第一部分为提交的代码总行数,即LoC(d),第二部分为提交代码的次数,即NoC(d)。

即,在一个实施例中,提取代码的基本贡献特征,可以包括:根据提交的代码总行数和提交代码的次数,确定代码的基本贡献特征。

在一个实施例中,根据提交的代码总行数和提交代码的次数,确定代码的基本贡献特征,可以包括按照如下公式确定代码的基本贡献特征:

C1=α×LoC(d)+β×NoC(d)+γ;

其中,C1为代码的基本贡献特征,LoC(d)为提交的代码总行数,NoC(d)为提交代码的次数,α,β,γ为已知参数值。

具体实施时,上述确定代码的基本贡献特征的方法可以高效准确地确定代码的基本贡献特征,进而可以高效准确地确定代码开源贡献度。

二、接着,介绍上述步骤102,提取代码重用的影响特征。

在一个实施例中,如图2所示,提取代码重用影响的特征,可以包括:

步骤1021:基于PageRank的方法确定代码中每个函数的排名;

步骤1022:根据每个函数的排名,确定代码重用影响的特征。

通过已有的工具获取到代码的函数(方法)调用图谱数据,基于PageRank的方法计算每个函数的排名,即在一个实施例中,基于PageRank的方法确定代码中每个函数的排名,可以包括按照如下公式确定每个函数的排名:

其中,Fi表示代码中的第i个函数,PR(Fi)为代码中第i个函数的排名,S(Fji)表示调用函数Fi的所有函数的集合,Fj为S(Fji)集合中的第j个函数,PR(Fj)为S(Fji)集合中第jj个函数的排名,nj表示调用函数Fi的函数数量,N表示所有的函数数量,α为已知参数值。

那么,对于开发人员d,所提交代码的所有函数的分数值的累加值,则为他的最终得分,即代码重用的影响特征,具体地,在一个实施例中,根据每个函数的排名,确定代码重用影响的特征,可以包括:

其中,C2为代码重用影响的特征,SD(Fi)为开发人员提交代码的所有函数的集合,Fi表示代码中的一个函数,PR(Fi)为代码中每个函数的排名。

具体实施时,上述每个函数的排名的方法、确定代码重用影响的特征的方法可以高效准确地确定代码重用影响的特征,进而可以高效准确地确定代码开源贡献度。

三、接着,介绍上述步骤103,提取代码对于开发影响的特征。

对每次代码提交时候,都会进行提交日志,对该文本数据进行编码,然后进行分类。主要有输入层、文本编码、知识编码以及最后对文本类别进行预测。

1)输入层Input Embedding

输入层包含两部分:长度为n的短文本序列和长度为m的实体序列,使用的向量包括:character embedding,word embedding,and concept embedding,字符级别用的是CNN,词语和concept级别用的是预训练词向量。

2)文本编码Text Encoding

此模块的作用在于计算文本x=(x1,x2,…,xn)的句子表示q。在使用自注意力之前,添加BiLSTM来转换底层的输入。注意力机制使用加权和来生成输出矢量,因此其表示能力受到限制。同时,BiLSTM擅长捕获序列的上下文信息,可以进一步提高注意力网络的表达能力。

BiLSTM输出之后,经过一个自注意力机制self-attention,注意力机制使用缩放点积注意力机制(scaled dot-product attention)

自注意力机制输出的矩阵表示为A,然后使用一层max pooling去获取句子的表示q,目的是在向量的每个维度上选择最大值以捕获最重要的特征。

3)知识编码knowledge Encoding

给定大小为m的概念集C,表示为c1,c2,…,cm,其中ci是第i个概念向量,需要得到其向量表示p。使用C-ST(Concept towards Short Text)、C-CS(Concept towards ConceptSet)这两种注意力机制,以更多地关注重要的概念。

C-ST(Concept towards Short Text)用于计算文本和对应的概念集合的语义相关性,减少由于实体的歧义或KB(Knowledge Retrieve)噪声而引入的一些不正确概念的不良影响。

αi代表第i个概念ci对文本的attention的权重,αi越大说明这个概念和短文本的语义越相关。f(·)是一种非线性激活函数,例如双曲线正切变换tanh、softmax用于归一化每个概念的注意力权重。W1是权重矩阵,w1是权重矢量,b1是偏移量。

C-CS(Concept towards Concept Set)用于计算概念集合中的每一个概念的重要性.

βi代表第i个概念ci在整个概念集合的注意力权重,W2是权重矩阵,w2是权重矢量,b2是偏移量。C-CS注意力的效果类似于特征选择的效果。这是一个“软”特征选择,它将较大的权重分配给重要的概念,将较小的权重(接近零)分配给普通的概念。αi和βi的结合如下:

αi代表第i个概念对于文本的最终的注意力权重,γ∈{0,1}是用于调节αi和βi两者权重的“软开关”,γ的值的设置方法有两种:把γ当做超参数,人工调整以达到最优;γ参与神经网络的训练,自动调节。

目前采用了第二种方法,γ的计算方法为:

γ=σ(wT[α;β]+b)

其中,w和b是需要学习的参数,σ为sigmoid函数。

最后,计算概念向量的加权和,从而得到表示概念的语义向量p,即在一个实施例中,按照如下公式确定知识编码:

ci代表第i个概念,m代表共有m个概念。

4)文本类别预测

将文本编码和知识编码合并,生成新的编码e,即:

e=[p;q]

对合并的编码使用softmax回归进行分类,最后识别出具体的类别,即在一个实施例中,将文本编码和知识编码合并,得到合并的编码,对合并的编码使用softmax回归进行分类,识别出文本类别作为代码对于开发影响的特征,可以包括按照如下公式确定代码对于开发影响的特征:

C3=softmax(e)

其中,C3为代码对于开发影响的特征,e=[p;q],e为合并的编码,p为知识编码,q为文本编码。

例如修复错误、进行改进、创建新功能、维护文档类别等等。

通过上述可知,在一个实施例中,如图3所示,提取代码对于开发影响的特征,可以包括:

步骤1031:获取每次代码提交时提交的日志文本数据向量;

步骤1032:对所述日志文本数据向量进行文本编码;

步骤1033:对所述日志文本数据向量进行知识编码;

步骤1034:将文本编码和知识编码合并,得到合并的编码,对合并的编码使用softmax回归进行分类,识别出文本类别作为代码对于开发影响的特征。

具体实施时,上述每个函数的排名的方法、确定代码重用影响的特征的方法可以高效准确地确定代码对于开发影响的特征,进而可以高效准确地确定代码开源贡献度。

四、接着,介绍上述步骤104,融合代码基本特征、代码重用影响特征、代码开发影响特征,使用多元线性回归,计算出开源贡献度的分数值。

在一个实施例中,根据所述代码的基本贡献特征,代码重用影响的特征,以及代码对于开发影响的特征,确定代码开源贡献度,可以包括按照如下公式确定代码开源贡献度:

其中,Sd为代码开源贡献度,wi、b为已知的参数值,Ci包括基本贡献特征,代码重用影响的特征和代码对于开发影响的特征。

具体实施时,上述根据所述代码的基本贡献特征,代码重用影响的特征,以及代码对于开发影响的特征,确定代码开源贡献度的详细实施方式可以高效准确地确定代码开源贡献度。

本发明施例中还提供了一种代码开源贡献度的确定装置,如下面的实施例所述。由于该装置解决问题的原理与代码开源贡献度的确定方法相似,因此该装置的实施可以参见代码开源贡献度的确定方法的实施,重复之处不再赘述。

图4为本发明实施例中开源贡献度的确定装置的结构示意图,如图4所示,该装置包括:

第一提取单元01,用于提取代码的基本贡献特征;

第二提取单元02,用于提取代码重用影响的特征;

第三提取单元03,用于提取代码对于开发影响的特征;

确定单元04,用于根据所述代码的基本贡献特征,代码重用影响的特征,以及代码对于开发影响的特征,确定代码开源贡献度。

在一个实施例中,所述第一提取单元具体用于:根据提交的代码总行数和提交代码的次数,确定代码的基本贡献特征。

在一个实施例中,所述第一提取单元具体用于按照如下公式确定代码的基本贡献特征:

C1=α×LoC(d)+β×NoC(d)+γ;

其中,C1为代码的基本贡献特征,LoC(d)为提交的代码总行数,NoC(d)为提交代码的次数,α,β,γ为已知参数值。

在一个实施例中,所述第二提取单元具体用于:

基于PageRank的方法确定代码中每个函数的排名;

根据每个函数的排名,确定代码重用影响的特征。

在一个实施例中,所述第二提取单元具体用于按照如下公式确定每个函数的排名:

其中,Fi表示代码中的第i个函数,PR(Fi)为代码中第i个函数的排名,S(Fji)表示调用函数Fi的所有函数的集合,Fj为S(Fji)集合中的第j个函数,PR(Fj)为S(Fji)集合中第j个函数的排名,nj表示调用函数Fi的函数数量,N表示所有的函数数量,α为已知参数值。

在一个实施例中,所述第二提取单元具体用于按照如下公式确定每个函数的排名:

其中,C2为代码重用影响的特征,SD(Fi)为开发人员提交代码的所有函数的集合,Fi表示代码中的一个函数,PR(Fi)为代码中每个函数的排名。

在一个实施例中,所述第三提取单元具体用于按照如下公式确定代码重用影响的特征:

获取每次代码提交时提交的日志文本数据向量;

对所述日志文本数据向量进行文本编码;

对所述日志文本数据向量进行知识编码;

将文本编码和知识编码合并,得到合并的编码,对合并的编码使用softmax回归进行分类,识别出文本类别作为代码对于开发影响的特征。

在一个实施例中,所述第三提取单元具体用于按照如下公式确定代码重用影响的特征:

C3=softmax(e);

其中,C3为代码对于开发影响的特征,e=[p;q],e为合并的编码,p为知识编码,q为文本编码。

所述确定单元具体用于按照如下公式确定代码开源贡献度:

其中,Sd为代码开源贡献度,wi、b为已知的参数值,Ci包括基本贡献特征,代码重用影响的特征和代码对于开发影响的特征。

本发明实施例还提供了一种计算机设备,如图5所示,包括存储器302、处理器304及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述任意的代码开源贡献度的确定方法。

具体的,该计算机设备可以是计算机终端、服务器或者类似的运算装置。

本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有执行上述任意的代码开源贡献度的确定方法的计算机程序。

具体的,计算机可读存储介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机可读存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读存储介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。

本发明实施例中,代码开源贡献度的确定方案,通过:提取代码的基本贡献特征;提取代码重用影响的特征;提取代码对于开发影响的特征;根据所述代码的基本贡献特征,代码重用影响的特征,以及代码对于开发影响的特征,确定代码开源贡献度,可以实现高效准确地确定代码开源贡献度。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

17页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种web前端代码转换方法

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!