Proceedings of the 19th Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications 2004
DOI: 10.1145/1028976.1029003
|View full text |Cite
|
Sign up to set email alerts
|

Refactoring class hierarchies with KABA

Abstract: KABA is an innovative system for refactoring Java class hierarchies. It uses the Snelting/Tip algorithm [13] 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 ma… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

0
19
0

Year Published

2006
2006
2019
2019

Publication Types

Select...
4
3
2

Relationship

0
9

Authors

Journals

citations
Cited by 40 publications
(19 citation statements)
references
References 16 publications
0
19
0
Order By: Relevance
“…As a result, they propose a new class hierarchy that is behaviorally equivalent to the original one. The implementation of this approach for refactoring Java class hierarchies is proposed by Streckenback et al, [73] using KABA. Additionally, the transformed hierarchy can then be subject to further manual refactorings, while the semantics are guaranteed to be preserved.…”
Section: Understanding (And Evolution) Of Class Hierarchiesmentioning
confidence: 99%
“…As a result, they propose a new class hierarchy that is behaviorally equivalent to the original one. The implementation of this approach for refactoring Java class hierarchies is proposed by Streckenback et al, [73] using KABA. Additionally, the transformed hierarchy can then be subject to further manual refactorings, while the semantics are guaranteed to be preserved.…”
Section: Understanding (And Evolution) Of Class Hierarchiesmentioning
confidence: 99%
“…KABA [24] uses static and dynamic analysis about the clients of classes to refactor class hierarchies. For each object creation site, a new class is created.…”
Section: Related Workmentioning
confidence: 99%
“…Its effect appears to be roughly the same as that of global type inference in the spirit of [12]. Streckenbach & Snelting have only recently applied this algorithm to the refactoring of JAVA programs, automatically changing all type references (including instantiations) in a program (the KABA system) [17]. KABA also offers a refactoring tool for collapsing and manually reorganizing the produced type hierarchy, but this operates on (compiled) byte code of an application.…”
Section: Refactoring and Type Inferencementioning
confidence: 99%
“…For this, new subclasses must be introduced, which is why the work is also referred to as program [17] or class hierarchy specialization [19]. KABA uses points-to analysis to identify specialization candidates; due to its approximating nature, this introduces certain artifacts [17].…”
Section: Refactoring and Type Inferencementioning
confidence: 99%