The single most important reference on software refactoring is the book “Refactoring: Improving the Design of Existing Code” by Martin Fowler, et al (1999). There have been many excellent publications since then but Fowler’s book was one of the first to define the entire process and is the most often referenced. We cannot replicate the entire work here, nor should we attempt to take anything away from it; we will simply start with some realistic code in need of some help, demonstrate the power of refactoring, discuss the merits of the process, and demonstrate how modern tools can help.
First of all, what is refactoring? ...