RefactorHub: A Commit Annotator for Refactoring Ryo Kuramoto Shinpei Hayashi Motoshi Saeki TokyoTech. Japan github.com/ salab/RefactorHub
Empirical studies on refactoring We need refactoring data
How to collect refactoring data Using detection tools (e.g.. RefactoringMiner, RefDiff) Using self-affirmed commits (commit message filtering) f6f7e4d refactor: extract printing name and outstanding f6f7e4d Extract Method ✓ Accuracy ✗ Type coverage ✓ Detail information ✗ Accuracy ✓ Type coverage ✗ Detail information
RefactorHub: A Commit Annotator for Refactoring
Annotation Approach f6f7e4d refactor: extract printing name and outstanding Input (Commit) RefactorHub extracted code invocation extracted method { "type": "ExtractMethod", ~ "extracted method": { "type": "MethodDeclaration", ~ "path": "src/main/Printer.java", "range": { "startLine": 6, "startColumn": 2, "endLine": 9, "endColumn": 3 ~ Output (JSON) ✓ Accuracy ✓ Detail information ✗ Accuracy ✗ Detail information
Refactoring info. Code difference Modified files Refactoring parameters (before refactoring) Refactoring parameters (after refactoring)
Annotating Extract Method Before: • extracted code • target method After: • extracted code • invocation • extracted method • target method
Annotating Extract Method Before: • extracted code • target method After: • extracted code • invocation • extracted method • target method
Annotating Extract Method Before: • extracted code • target method After: • extracted code • invocation • extracted method • target method
RefactorHub: A Commit Annotator for Refactoring Ryo Kuramoto Shinpei Hayashi Motoshi Saeki TokyoTech. Japan github.com/ salab/RefactorHub

RefactorHub: A Commit Annotator for Refactoring