… transforms the diagram to show the effect of the refactoring, updates the focus set, and diagrams this new focus set.  The focus set now includes the participants in the refactoring and its indirect effects, which are program elements that may require further changes to produce a valid program.  Here, moving horsepower to Engine causes getHorsepower() in Vehicle to refer to a missing field, and in turn clients that depend on getHorsepower() may need further change.  (The likely solution is to delegate getHorsepower() to the anEngine object, so clients won’t have to change.)

It’s important to note is that Dr. Jones doing `virtual refactoring.’  It’s transforming the diagram, not the program – it’s a design exploration tool, not a software transformation tool.   That’s because that actually doing the transformation may involve asking the programmer lots of questions he doesn’t want to worry about when thinking about design.