Phase 2: Understand Intentions
Vehicle
getHorsepower():int
getWeight():int
getOwner():Person
anEngine:Engine
aHorsepower:int
Engine
getCost():int
getCylinders():int
aCost:int
numCylinders:int
!
Dr. Jones then diagrams the focus set in a variant of a UML object model.  These diagrams contain the structural elements the programmer
might want to manipulate, like classes, methods and properties, as well as dependencies among them, in this case a has-a relation between Vehicle and Engine.
The next phase of the interaction is for the programmer to tell Dr. Jones what he wants to do to the program.
This is the crucial step in the interaction, because how well Dr. Jones understands these intentions will determine how well it can diagram the software.
Fortunately, there is a common way emerging for describing how to change programs (I.e. fowler’s refactorings).
Dr. Jones will be able to interpret intentions based on a vocabulary of these refactorings (to be described later).