Publication | Closed Access
Predicting source code changes by mining change history
564
Citations
29
References
2004
Year
Software MaintenanceEngineeringChange Impact AnalysisSoftware EngineeringSource Code AnalysisSoftware AnalysisText MiningEmpirical Software Engineering ResearchData ScienceData MiningSoftware MiningSource CodeRelevant Source CodeKnowledge DiscoveryComputer ScienceValuable DependenciesStatic Program AnalysisSoftware DesignSource Code ChangesCode RefactoringProgram AnalysisSoftware Testing
Software developers often face modification tasks involving code spread across a code base, and existing static and dynamic analyses struggle to determine cross‑language dependencies. The authors propose mining historical change logs to identify frequent co‑change patterns of files, hypothesizing that these patterns can recommend relevant source code during modification tasks. The approach extracts frequent co‑change file sets from change history and uses them to suggest related code when developers perform modifications. Evaluations on Eclipse and Mozilla projects show that the mined patterns reveal valuable dependencies and yield predictive, interesting recommendations for real modification tasks.
Software developers are often faced with modification tasks that involve source which is spread across a code base. Some dependencies between source code, such as those between source code written in different languages, are difficult to determine using existing static and dynamic analyses. To augment existing analyses and to help developers identify relevant source code during a modification task, we have developed an approach that applies data mining techniques to determine change patterns - sets of files that were changed together frequently in the past - from the change history of the code base. Our hypothesis is that the change patterns can be used to recommend potentially relevant source code to a developer performing a modification task. We show that this approach can reveal valuable dependencies by applying the approach to the Eclipse and Mozilla open source projects and by evaluating the predictability and interestingness of the recommendations produced for actual modification tasks on these systems.
| Year | Citations | |
|---|---|---|
Page 1
Page 1