|
|
|
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.
|