Refactoring Detection in C++ Programs with RefactoringMiner++

Commits often involve refactorings—behavior-preserving code modifications aiming at software design improvements. Refactoring operations pose a challenge to code reviewers, as distinguishing them from behavior-altering changes is often not a trivial task. Accordingly, research on automated refactoring detection tools has flourished over the past two decades, however, the majority of suggested tools is limited to Java projects. In this work, we present RefactoringMiner++, a refactoring detection tool based on the current state of the art: RefactoringMiner 3. While the latter focuses exclusively on Java, our tool is—to the best of our knowledge—the first publicly available refactoring detection tool for C++ projects. Being based on a refactoring detector for Java projects, our tool lacks support for many refactorings specific to C++. The most common language-independent refactoring types, however, are supported and even several language incompatibilities were reconciled. RefactoringMiner's thorough evaluation provides confidence in our tool's performance. In addition, we test RefactoringMiner++ on a small seeded dataset and demonstrate the tool's capability in a short demo involving both refactorings and behavior-altering changes. A screencast demonstrating our tool can be found at https://www.youtube.com/watch?v=tFTysQfGYSM.

Authors

Institutions

Publication Details

Published
2025-06-23
DOI
https://doi.org/10.1145/3696630.3728602
Primary Topic
Software Engineering Research
Type
article
Field-Weighted Citation Impact
0.00
Controls
|||
ALL TIME
JAN
FEB
MAR
APR
MAY
JUN
JUL
AUG
SEP
OCT
article

Refactoring Detection in C++ Programs with RefactoringMiner++

Denis Helić, Aleksandar Karakaš, Benjamin Ritz
Software Engineering Research
article

Refactoring Detection in C++ Programs with RefactoringMiner++

Denis Helić, Aleksandar Karakaš, Benjamin Ritz
article en

Abstract

Commits often involve refactorings—behavior-preserving code modifications aiming at software design improvements. Refactoring operations pose a challenge to code reviewers, as distinguishing them from behavior-altering changes is often not a trivial task. Accordingly, research on automated refactoring detection tools has flourished over the past two decades, however, the majority of suggested tools is limited to Java projects. In this work, we present RefactoringMiner++, a refactoring detection tool based on the current state of the art: RefactoringMiner 3. While the latter focuses exclusively on Java, our tool is—to the best of our knowledge—the first publicly available refactoring detection tool for C++ projects. Being based on a refactoring detector for Java projects, our tool lacks support for many refactorings specific to C++. The most common language-independent refactoring types, however, are supported and even several language incompatibilities were reconciled. RefactoringMiner's thorough evaluation provides confidence in our tool's performance. In addition, we test RefactoringMiner++ on a small seeded dataset and demonstrate the tool's capability in a short demo involving both refactorings and behavior-altering changes. A screencast demonstrating our tool can be found at https://www.youtube.com/watch?v=tFTysQfGYSM.

Graz University of Technology (AT), FH Kärnten (AT)
Openalex Percentile: Top 73%
Software Engineering Research
AI Navigator

Ask Laika to Summarize, Analyze, and Connect papers live on the map.

Summarize Papers & Methodologies

Extract key findings, datasets, and comparative methods across publications.

Benchmark Rankings & Visual Analytics

Rank top research institutions, authors, funders, topics, and journals by Field-Weighted Citation Impact (FWCI) and paper volume with instant charts.

Connect Distant Disciplines

Bridge topological clusters on the map to find hidden collaborative intersections.