HistoryFinder: Advancing Method-Level Source Code History Generation with Accurate Oracles and Enhanced Algorithm

📅 2025-07-19
📈 Citations: 0
✨ Influential: 0
📄 PDF
🤖 AI Summary
Existing method-level change history generation tools (e.g., CodeShovel, CodeTracker) suffer from evaluation distortion due to inaccurate ground-truth annotations. To address this, we propose HistoryFinder: first, we construct two expert-validated, high-precision reference standards by integrating automated program analysis with rigorous manual verification; second, we design a lightweight, efficient algorithm that jointly leverages Git history parsing and semantics-aware method matching to enable cross-commit, multi-version traceability. Evaluated on 400 methods across 40 open-source projects, HistoryFinder achieves significantly higher F1 scores than state-of-the-art baselines, while also attaining the best average and median execution times. The tool is delivered as a web interface, command-line interface, and Java library, comprehensively supporting software maintenance, refactoring, and program comprehension tasks.

Technology Category

Natural Language Processing: Code Generation / Program Synthesis from Natural LanguageConstraint Satisfaction and Optimization: Solvers and ToolsSearch and Optimization: Distributed Search

Application Category

Web Mining and Content Analysis: Robustness and generalizability of Web mining methodsSearch and Retrieval-Augmented AI: Web evaluation methodologies and metricsGraph Algorithms and Modeling for the Web: Efficient manipulation of static and dynamic Web-related graphs
📝 Abstract
Reconstructing a method's change history efficiently and accurately is critical for many software engineering tasks, including maintenance, refactoring, and comprehension. Despite the availability of method history generation tools such as CodeShovel and CodeTracker, existing evaluations of their effectiveness are limited by inaccuracies in the ground truth oracles used. In this study, we systematically construct two new oracles -- the corrected CodeShovel oracle and a newly developed HistoryFinder oracle -- by combining automated analysis with expert-guided manual validation. We also introduce HistoryFinder, a new method history generation tool designed to improve not only the accuracy and completeness of method change histories but also to offer competitive runtime performance. Through extensive evaluation across 400 methods from 40 open-source repositories, we show that HistoryFinder consistently outperforms CodeShovel, CodeTracker, IntelliJ, and Git-based baselines in terms of precision, recall, and F1 score. Moreover, HistoryFinder achieves competitive runtime performance, offering the lowest mean and median execution times among all the research-based tools. While Git-based tools exhibit the fastest runtimes, this efficiency comes at the cost of significantly lower precision and recall -- leaving HistoryFinder as the best overall choice when both accuracy and efficiency are important. To facilitate adoption, we provide a web interface, CLI, and Java library for flexible usage.
Problem

Research questions and friction points this paper is trying to address.

Improving accuracy of method-level code history generation
Enhancing completeness of method change histories
Balancing runtime performance with precision and recall
Innovation

Methods, ideas, or system contributions that make the work stand out.

Constructs accurate oracles with expert validation
Enhances method history accuracy and completeness
Achieves competitive runtime performance efficiently
🔎 Similar Papers
No similar papers found.
💼 Related Jobs
No related jobs found.
S
Shahidul Islam
SQM Research Lab, University of Manitoba
A
Ashik Aowal
American International University-Bangladesh
Md Sharif Uddin
Md Sharif Uddin
M.Sc. Student, University of Saskatchewan
Software Engineering
S
Shaiful Chowdhury
SQM Research Lab, University of Manitoba