In software development, the identification of source code file experts is an important task. Identifying these experts helps to improve software maintenance and evolution activities, such as developing new features, code reviews, and bug fixes. Although some studies have proposed repository mining techniques to automatically identify source code experts, there are still gaps in this area that can be explored. For example, investigating new variables related to source code knowledge and applying machine learning aiming to improve the performance of techniques to identify source code experts. The goal of this study is to investigate opportunities to improve the performance of existing techniques to recommend source code files experts. We built an oracle by collecting data from the development history and surveying developers of 113 software projects. Then, we use this oracle to: (i) analyze the correlation between measures extracted from the development history and the developers source code knowledge and (ii) investigate the use of machine learning classifiers by evaluating their performance in identifying source code files experts. First Authorship and Recency of Modification are the variables with the highest positive and negative correlations with source code knowledge, respectively. Machine learning classifiers outperformed the linear techniques (F-Measure = 71% to 73%) in the public dataset, but this advantage is not clear in the private dataset, with F-Measure ranging from 55% to 68% for the linear techniques and 58% to 67% for ML techniques. Overall, the linear techniques and the machine learning classifiers achieved similar performance, particularly if we analyze F-Measure. However, machine learning classifiers usually get higher precision while linear techniques obtained the highest recall values.
翻译:在软件开发中,确定源代码文件专家是一项重要任务。 确定这些专家有助于改进软件的维护和演化活动, 如开发新特性、代码审查和错误修正。 虽然有些研究提出了存储存储器采矿技术, 自动识别源代码专家, 但这一领域仍存在一些可以探索的差距。 例如, 调查源代码知识相关的新变量, 应用机器学习来提高技术的性能, 以识别源代码专家。 本研究的目的是调查改进现有技术绩效的机会, 推荐源代码文件专家。 我们通过从开发历史和113个软件项目的调查开发者那里收集数据, 来改进软件的维护和演化活动。 然后, 我们用这个标志来:(一) 分析从开发历史和开发者源代码知识知识知识中提取的措施之间的相互关系, 并(二) 通过评估在确定源代码文件专家的性能方面的表现来调查机器学习分类工具的使用。 第一次作者和修改是分别与源代码知识中最高正负关联的变量。 机器学习分类员超越了线性技术(通常为71%至73% ) 。 在公共数据设置中, 直线性分析技术中, 直径分析技术( ) 直径(如果为57%) 直径) 至直径分析技术中, 直径为55 直径分析技术, 直至直为57%,,,, 直径 直径 直为55 直 直 直, 直 直径 直, 直 直,, 直 直 直 直 直 直 直 直 直 直 直 直 直 直 直 直 直, 直 直 直 直 直 直 直 直 直 直 直 直 直 直 直 技术 直 直 直 直 直 直 技术 直 直 直 技术 直 直 直 直 直 直 直 直 直 直 直 直 直 直 等 直 直 直 直 直 直 直 直 直 等 直 直 直 直 直 直 直 直 直 直 直 直 直 直 直 直 直 直