一句话:提出 CodeShovel,快速准确构建方法级源码历史,性能优于现有研究与实践工具。
开发者常通过源码历史理解软件演化,但现有工具提供的输出与开发者完成历史分析任务的需求存在明显错配。通过对42名专业开发者的调查,作者提出 CodeShovel,用于揭示方法级源码变更历史,帮助开发者导航方法的完整演化过程。评估表明,CodeShovel 能为90%的方法(覆盖97%的方法变更)快速生成完整且准确的历史,优于研究工具 FinerGit 以及实践工具 IntelliJ/git log。此外,在工业代码库上对16名工业开发者开展的现场研究,验证了其正确性与低运行时开销,并表明该方法可支持多种工业开发任务。
Source code histories are commonly used by developers and researchers to reason about how software evolves. Through a survey with 42 professional software developers, we learned that developers face significant mismatches between the output provided by developers' existing tools for examining source code histories and what they need to successfully complete their historical analysis tasks. To address these shortcomings, we propose CodeShovel, a tool for uncovering method histories that quickly produces complete and accurate change histories for 90% methods (including 97% of all method changes) outperforming leading tools from both research (e.g, FinerGit) and practice (e.g., IntelliJ / git log). CodeShovel helps developers to navigate the entire history of source code methods so they can better understand how the method evolved. A field study on industrial code bases with 16 industrial developers confirmed our empirical findings of CodeShovel's correctness, low runtime overheads, and additionally showed that the approach can be useful for a wide range of industrial development tasks.
@inproceedings{GrundCBHH21,
title = {CodeShovel: Constructing Method-Level Source Code Histories},
author = {Felix Grund and Shaiful Alam Chowdhury and Nick C. Bradley and Braxton Hall and Reid Holmes},
booktitle = {ICSE},
year = {2021},
doi = {10.1109/icse43902.2021.00135}
}