•How to prove behavior is preserved
•How to transform the source
Smalltalk Refactoring Browser
Dr. Jones
• When the refactoring shouldn’t be done
•
• How to show the user the results
•
• Suggested refactorings
•
• Where is the impact on the source
I’d like to compare Dr. Jones’ knowledge about refactoring to that of another research project, the Smalltalk Refactoring Browser developed at UIUC.
The Refactoring Browser was primarily concerned with giving the user a safe and reliable tool – the user could trust it to know when a refactoring is behavior-preserving, and if so to transform the source correctly.
Dr Jones on the other hand has knowledge that will give the user visual feedback on the new designs generated by refactoring, prevent bad refactorings, and suggest`follow-up’ refactorings.
These kinds of knowledge haven’t been explicitly considered before in a refactoring tool, and I believe my specifications of it represents a contribution to refactoring research.
I also believe these two bodies of knowledge are complementary, and a tool that integrates, for example, design diagnosis, design exploration and source transformation would be a more complete solution and a fruitful direction for future work.