【技术实现步骤摘要】
【国外来华专利技术】用于评估软件开发者的代码贡献的系统和方法
[0001]本公开内容涉及微控制器,并且更具体地,涉及用于评估不同软件开发者对软件项目的相应代码贡献的系统和方法。
技术介绍
[0002]在典型的软件开发环境中,开发者将代码贡献给软件项目存储库。每个开发者的代码贡献通常通过简单的度量来表征,所述度量例如可归因于每个开发者的提交数量(NOC)或代码行(LOC)数。例如,GitHub使用NOC对软件项目的开发者进行排序。作为另一示例,Expertise Browser——用于识别开发者专业知识的经典工具——使用更改的LOC的数量作为每个开发者的贡献的指标。这样的度量衡量每个开发者的代码贡献量,而不是代码贡献的价值。例如,位于应用逻辑核心的函数通常比辅助脚本更有价值,但常规的代码贡献度量无法捕获这种区别。
[0003]在许多情况下,除了常规的基于数量的度量之外,识别和比较不同开发者的贡献的价值是有用的。虽然传统的基于价值的软件工程通常聚焦于创造经济价值作为优先考虑资源分配和调度的一种方式,但在某些情况下,其他价值衡量更为相关。例如 ...
【技术保护点】
【技术特征摘要】
【国外来华专利技术】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.根据前述权利要求中的一项所述的系统,其中,所述定义的代码影响类别的列表包括以下类别中的至...
【专利技术属性】
技术研发人员:任晶磊,殷和政,罗兰,
申请(专利权)人:码睿科技北京有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。