传统software metrics处理软件质量问题。我正在寻找可用于通过代码识别开发人员的指标,与抄袭软件一样,stylometry可用于通过他们的写作风格来识别作者。我可以想象这里也可以使用某些现有指标,例如评论比率。我还可以设想从质量角度看无关紧要的指标,例如(过度)使用某些方法或设计模式,变量名称的平均长度等。
我对指向这些指标或研究的集合或个别指标感兴趣。它们可能与语言无关或与语言或编程范例相关。
我想用它来理解和分析不同的编码风格,而不是检测抄袭。
答案 0 :(得分:2)
我看到已经有一些研究调查了这一点。他们可能会帮忙。
Kothari,J.,Shevertalov,M.,Stehle,E.,Mancoridis,S。,“源代码作者识别的概率方法”,在国际会议论文集中信息技术,第24-23-248页,IEEE,2007年。
在线提供here
引自摘要:
我们首先计算一组指标,使用经验证为真实的代码样本为已知作者群体构建专业文件。然后,我们计算未确定源代码的度量标准,以确定最接近的匹配配置文件。 [...]在我们的案例研究中,我们能够 确定作者身份,选择单个最接近的匹配时准确率超过70%,选择前三个最接近的匹配项时准确度超过90%。
Shevertalov,M.,Kothari,J.,Stehle,E.,Mancoridis,S。,“关于使用离散化的源代码指标进行作者识别”,在会议论文集中第一届基于搜索的软件工程国际研讨会,第69-78页,IEEE,2009年。
在线提供here,这是之前研究的后续行动。
Lange,R.,Mancoridis,S。,“使用代码度量直方图和遗传算法为软件取证执行作者识别”,在第9届遗传与年度会议论文集中Evolutionary Computation,pp.2082-2089,ACM,2007。
在线提供here
这也与第一个参考(共同作者)有关,并且更详细地讨论了指标。再次引用摘要:
我们的方法涉及测量代码度量的直方图分布的差异。识别有效区分开发人员样式的指标组合是该技术实用性的关键。我们的案例研究涉及18个指标。
您还可以将Google Scholar用于其他参考,并根据上述文章查找其他论文(使用“引用者”选项)。
答案 1 :(得分:1)
如果您正在寻找潜在的指标,可以尝试查看一些编码标准。由于它们决定了一种特定的风格,因此它们所讨论的内容(间距,大括号的位置,标识符长度,强制性注释等)可能用于从代码中识别开发人员。
此外,如果您对.NET代码感兴趣,您可能会发现NDepend是一个有用的工具。它使您能够针对代码库运行查询,并支持82个指标。