Dr. Jones
addresses the first and third roles listed here.
The metaphor is
that of a fellow programmer who knows the program you’re refactoring
(although not what it does), can draw accurate diagrams of it, and give the
programmer guidance while refactoring.
It innovates by
decoupling the steps of planning and implementing the refactorings-- current tools transform the source
immediately when the user makes a refactoring decision.