|
|
|
Stepping back
for a bit, a redesign tool could potentially support the user in a number of
roles, because refactoring is a multi step process.
|
|
First, the tool
can give the user a visual representation where it’s easy to spot
opportunities for refactoring.
|
|
Second, the tool
can diagnose design problems by looking for `bad smells’ or `antipatterns’,
known patterns of design weakness like code duplication.
|
|
Third, the tool
can show the user the results of proposed refactorings, allowing them to
chain together multiple refactorings to visualize new designs.
|
|
And finally the
tool can verify that the refactorings preserve behavior and implement them by
changing the source code.
|
|
Choosing the
actual refactorings – between steps two and three in this process – is the
most difficult step and remains up to the user.
|
|
|