Refactoring Class Hierarchies with KABA
Meeting Rooms 1-3 Wednesday, 16:00, 30 minutes | 7 | · | 8 | · | 9 | · | 10 | · | 11 | · | 12 | · | 13 | · | 14 | · | 15 | · | 16 | · | 17 | · | 18 | · | 19 | · | 20 | · | 21 |
Mirko Streckenbach, Universit?t Passau Gregor Snelting, Universit?t Passau
KABA is an innovative system for refactoring Java class
hierarchies. It uses the Snelting/Tip algorithm in order to determine
a behavior-preserving refactoring which is optimal with respect to
a given set of client programs. KABA can be based on dynamic as well
as static program analysis. The static variant will preserve program
behavior for all possible input values; the dynamic version guarantees
preservation of behavior for all runs in a given test suite. KABA
offers automatic refactoring as well as manual refactoring using a
dedicated editor.
In this contribution, we recapitulate the Snelting/Tip algorithm,
present the new dynamic version, and explain new extensions which
allow to handle full Java. We then present five case studies which
discuss the KABA refactoring proposals for programs such as javac and
antlr. KABA proved that javac does not need refactoring, but generated
semantics-based refactoring proposals for antlr.
|