Phase 2: Understand Intentions
Vehicle
getHorsepower():int
getWeight():int
getOwner():Person
anEngine:Engine
aHorsepower:int
Engine
getCost():int
getCylinders():int
aCost:int
numCylinders:int
aHorsepower:int
!
Here, the programmer decides that ``horsepower’’ is really a property of an Engine, not a Vehicle, and indicates the Move Field refactoring.
I haven’t committed to a UI modality for this kind of interaction; a conventional WIMP technique like drag-and-drop would work, although I’d also like to explore gestural or multimodal techniques, keeping with the metaphor of interacting with a pen-and-paper diagram.
(Of course this brings up all the complexities of recognition-based user interfaces.)
Dr Jones records this intention and …