Hi, Camel Community. My name is Igor Wiese, phd Student from Brazil. I am investigating two important questions: What makes two files change together? Can we predict when they are going to co-change again?
I've tried to investigate this question on the Camel project. I've collected data from issue reports, discussions and commits and using some machine learning techniques to build a prediction model. I collected a total of 1543 commits in which a pair of files changed together and could correctly predict 79% commits. These were the most useful information for predicting co-changes of files: - number of lines of code added, - number of lines of code removed, - sum of number of lines of code added, modified and removed, - number of words used to describe and discuss the issues, and - number of comments in each issue. To illustrate, consider the following example from our analysis. For release 2.1, the files "component/jms/JmsComponent.java" and "component/jms/JmsConfiguration.java" changed together in 10 commits. In another 5 commits, only the first file changed, but not the second. Collecting contextual information for each commit made to first file in release 2.0, we were able to predict all 10 commits in which both files changed together in release 2.1, and we only issued one false positive. For this pair of files, the most important contextual information was the number of lines of code added in each commit and the number of words used to describe and discuss the issues. - Do these results surprise you? Can you think in any explanation for the results? - Do you think that our rate of prediction is good enough to be used for building tool support for the software community? - Do you have any suggestion on what can be done to improve the change recommendation? You can visit our webpage to inspect the results in details: http://flosscoach.com/index.php/17-cochanges/65-camel All the best, Igor Wiese Phd Candidate -- View this message in context: http://camel.465427.n5.nabble.com/Feedback-of-my-Phd-work-in-Camel-Project-tp5774882.html Sent from the Camel Development mailing list archive at Nabble.com.