In Dr. Jones, I represent a refactoring by four pieces of knowledge.
First, what are the obvious reasons not to perform the refactoring (the guards).
Second, how does the refactoring change Dr. Jones’ representation of the program design and thus what is shown in its diagrams.
Third, does the refactoring suggest other refactorings that are likely to improve the program design.
And finally, where are the places in the source that might have to be changed to implement the refactoring.
I’ll now examine these four pieces of knowledge in detail for the move method refactoring.