Refactoring Support

If your code base has been continuously developed over time, it's likely that there is a great deal of replicated code due to branching, versioning, or developers using copy-paste techniques to simplify development. It's also likely that the code base size has exploded over time. It's typical for this type of situation to trigger a refactoring effort. The key goals of the refactoring effort would be to reduce the size of the code base, as well as ensure reuse by identifying similar code segments, and extracting them into reusable components, modules, or libraries.

If you've ever tried to refactor a large, replicated code base, you know that a manual approach to finding what to refactor isn't fast or effective. And unfortunately, there aren't many tools that can help with the task.

CP Miner can help jumpstart your refactoring effort in a way that wasn't possible before.

Code Pattern Listing
CP Miner Code Pattern Listing
Step 1: View the listing of code patterns for your project and sort the results by number of copies to identify functions that are candidates for refactoring.
Split View
CP Miner Split View
Step 2: View interesting patterns side by side in the split view for comparison. Switch between instances of the pattern using the drop down menus above each code view.