一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

用于评估软件开发者的代码贡献的系统和方法与流程

2022-04-16 16:21:40 来源:中国专利 TAG:

技术特征:
1.一种用于评估多个软件开发者中的每一个对软件项目的代码贡献的系统,所述系统包括:至少一个存储器设备,存储:包括代码集合的代码存储库,所述代码集合包括由所述多个软件开发者中的每一个开发的代码部分,所述代码部分包括多个函数;定义的代码影响类别的列表,用于根据提交的影响对提交进行分类;至少一个处理器,通信地耦接至所述至少一个存储器设备并且被配置成:从所述代码存储库访问所述代码集合;在所述软件项目期间的多个不同时间处解析所述代码集合以生成表示所述代码集合或所述代码集合的部分的抽象语法树(ast);通过结构价值分析来针对每个软件开发者执行结构价值分析,包括:从所述ast生成至少一个调用-提交图表;对所述至少一个调用-提交图表执行调用-提交分析,以分析可归因于每个软件开发者的函数调用和提交;以及至少基于所述调用-提交分析来计算每个软件开发者的结构价值分数;通过结构价值分析来针对每个软件开发者执行非结构价值分析,包括:分析所述ast以识别可归因于每个软件开发者的提交;基于所述定义的代码影响类别的列表执行提交分类以对每个所识别的提交进行分类;以及至少基于对可归因于每个软件开发者的提交的所述提交分类来计算该软件开发者的非结构代码影响分数;以及基于多个开发价值分数输入来针对每个软件开发者计算开发价值分数,所述多个开发价值分数输入包括(a)每个软件开发者的所述结构价值分数和(b)每个软件开发者的所述非结构代码影响分数;以及显示针对每个软件开发者计算的所述开发价值分数的表示。2.根据权利要求1所述的系统,其中:所述至少一个存储器设备存储一组代码质量规则;以及通过结构价值分析来针对每个软件开发者执行所述非结构价值分析还包括:通过将所述一组代码质量规则应用于由每个软件开发者开发的所述代码部分来执行代码质量分析;以及至少基于所述代码质量分析来计算每个软件开发者的非结构代码质量分数;以及每个软件开发者的所述开发价值分数包括是基于开发价值分数输入计算的,所述开发价值分数输入包括(a)每个软件开发者的所述结构价值分数,(b)每个软件开发者的所述非结构代码影响分数,以及(c)每个软件开发者的所述结构代码质量分数。3.根据前述权利要求中的一项所述的系统,其中,从所述至少一个ast生成调用-提交图表包括:生成表示(a)所述代码集合中的所选函数之间的函数调用关系和(b)所选提交与受所述所选提交影响的函数之间的关系的调用-提交图表。4.根据前述权利要求中的一项所述的系统,其中,从所述至少一个ast生成调用-提交图表包括:生成包括(a)表示所述代码集合中的函数的第一节点和(b)表示提交的第二节点
的调用-提交图表。5.根据前述权利要求中的一项所述的系统,其中,基于多个开发价值分数输入来针对每个软件开发者计算所述开发价值分数包括:访问或确定所述多个开发价值分数输入的一组加权值;以及基于(a)所述多个开发价值分数输入和(b)所述一组加权值来针对每个软件开发者计算所述开发价值分数。6.根据前述权利要求中的一项所述的系统,其中,所述处理器被配置成基于关于提交的比较或排序的用户输入来随时间动态地调整所述一组加权值。7.根据前述权利要求中的一项所述的系统,其中,对所述至少一个调用-提交图表执行所述调用-提交分析以分析可归因于每个软件开发者的函数调用和提交包括:确定对可归因于每个软件开发者的函数的函数调用的次数或函数调用的概率。8.根据前述权利要求中的一项所述的系统,其中,分析ast以识别可归因于每个软件开发者的提交包括:比较表示不同时间处的代码快照的多个ast;基于多个比较的ast的差异来识别提交。9.根据前述权利要求中的一项所述的系统,其中,所述定义的代码影响类别的列表包括以下类别中的至少一个:特征、改进、错误修复和维护。10.一种用于评估多个软件开发者中的每一个对软件项目的代码贡献的方法,所述方法包括:存储包括代码集合的代码存储库,所述代码集合包括由所述多个软件开发者中的每一个开发的代码部分,所述代码部分包括多个函数;存储用于根据提交的影响对提交进行分类的定义的代码影响类别的列表;从所述代码存储库访问所述代码集合;在所述软件项目期间的多个不同时间处解析所述代码集合以生成表示所述代码集合或所述代码集合的部分的抽象语法树(ast);通过结构价值分析来针对每个软件开发者执行结构价值分析,包括:从所述ast生成至少一个调用-提交图表;对所述至少一个调用-提交图表执行调用-提交分析,以分析可归因于每个软件开发者的函数调用和提交;以及至少基于所述调用-提交分析来计算每个软件开发者的结构价值分数;通过结构价值分析来针对每个软件开发者执行非结构价值分析,包括:分析所述ast以识别可归因于每个软件开发者的提交;基于所述定义的代码影响类别的列表执行提交分类以对每个所识别的提交进行分类;以及至少基于对可归因于每个软件开发者的提交的所述提交分类来计算该软件开发者的非结构代码影响分数;以及基于多个开发价值分数输入来针对每个软件开发者计算开发价值分数,所述多个开发价值分数输入包括(a)每个软件开发者的所述结构价值分数和(b)每个软件开发者的所述非结构代码影响分数;以及
显示针对每个软件开发者计算的所述开发价值分数的表示。11.根据权利要求10所述的方法,其中:通过结构价值分析来针对每个软件开发者执行所述非结构价值分析还包括:通过向由每个软件开发者开发的所述代码部分应用一组存储的代码质量规则来执行代码质量分析;以及至少基于所述代码质量分析来计算每个软件开发者的非结构代码质量分数;并且每个软件开发者的所述开发价值分数包括是基于开发价值分数输入计算的,所述开发价值分数输入包括(a)每个软件开发者的所述结构价值分数,(b)每个软件开发者的所述非结构代码影响分数,以及(c)每个软件开发者的所述结构代码质量分数。12.根据权利要求10至11中的一项所述的方法,其中,从所述至少一个ast生成调用-提交图表包括:生成表示(a)所述代码集合中的所选函数之间的函数调用关系和(b)所选提交与受所述所选提交影响的函数之间的关系的调用-提交图表。13.根据权利要求10至12中的一项所述的方法,其中,从所述至少一个ast生成调用-提交图表包括:生成包括(a)表示所述代码集合中的函数的第一节点和(b)表示提交的第二节点的调用-提交图表。14.根据权利要求10至13中的一项所述的方法,其中,基于多个开发价值分数输入来针对每个软件开发者计算所述开发价值分数包括:访问或确定所述多个开发价值分数输入的一组加权值;以及基于(a)所述多个开发价值分数输入和(b)所述一组加权值来针对每个软件开发者计算所述开发价值分数。15.根据权利要求10至14中的一项所述的方法,还包括基于关于提交的比较或排序的用户输入来随时间动态地调整所述一组加权值。16.根据权利要求10至15中的一项所述的方法,其中,对所述至少一个调用-提交图表执行所述调用-提交分析以分析可归因于每个软件开发者的函数调用和提交包括:确定对可归因于每个软件开发者的函数的函数调用的次数或函数调用的概率。17.根据权利要求10至16中的一项所述的方法,其中,分析ast以识别可归因于每个软件开发者的提交包括:比较表示不同时间处的代码快照的多个ast;基于多个比较的ast的差异来识别提交。18.根据权利要求10至17中的一项所述的方法,其中,所述定义的代码影响类别的列表包括以下类别中的至少一个:特征、改进、错误修复和维护。

技术总结
提供了一种用于评估不同软件开发者对软件项目的贡献的工具,该工具考虑了每个开发者的贡献的结构价值和非结构价值二者。在项目期间的不同时间处解析项目的源代码以生成表示代码的抽象语法树(AST)。该工具可以对每个开发者的代码贡献执行结构价值分析和非结构价值分析二者。对每个开发者的结构价值分析可以包括对从AST生成的调用-提交图表进行调用-提交分析以分析可归因于每个开发者的函数调用和提交。对每个软件开发者的非结构价值分析可以包括基于可归因于每个开发者的提交对项目的影响来对这样的提交进行识别和分类。该工具然后可以基于对每个开发者的结构度量和非结构度量来针对每个开发者计算开发价值分数。构度量来针对每个开发者计算开发价值分数。构度量来针对每个开发者计算开发价值分数。


技术研发人员:任晶磊 殷和政 罗兰
受保护的技术使用者:码睿科技(北京)有限公司
技术研发日:2019.11.04
技术公布日:2022/4/15
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献