Before concluding, I wanted to bring the talk back to the issues that got me started looking at refactoring, that of keeping the diagrams simple and relevant while redesigning software.
This is the goal of focus tracking, and I see it as one of Dr. Jones’ major payoffs to the user.
The KB I’ve described will be a major component of the focus tracking mechanism, since it knows what program elements are involved in the current refactoring and which ones are likely to be further refactored.
The focus tracking mechanism will use this information to render the elements at appropriate levels of detail, shown here.
For instance, it could show some historical context by showing elements refactored in the past at a low level of detail.
The currently refactored elements will get the highest level of detail.
Likely future refactorings will also get more detail, but since we can’t predict the user’s next actions exactly, the drop off is quick.
The specifics of this mechanism remain future work in my research.