Make The Tool Understand Refactoring
•Programmers draw task-relevant diagrams on pen and paper
•
•Many redesign moves are commonly used refactorings
•
•Thesis: If the tool understands refactorings, it can draw relevant diagrams, and help the programmer explore the program’s design
I’d like to bring the computer back into this process by starting with two observations.
 First, programmers’ pen and paper diagrams are task-relevant – they draw the parts of the program they want to change and the dependencies that are involved, and leave out the rest.
Second, there’s a growing body of commonly used design moves called refactorings – local, structural changes to the program that involve a few of its related parts.
These observations led me to the thesis that if a diagramming tool understood the refactorings the programmer wanted to make, it could
(1) draw relevant, task-specific diagrams and
(2) use those diagrams to help the programmer interactively explore the program’s design.