  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.
