Creating abstract superclasses by refactoring
CSC '93 Proceedings of the 1993 ACM conference on Computer science
Automatic inheritance hierarchy restructuring and method refactoring
Proceedings of the 11th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Fast static analysis of C++ virtual function calls
Proceedings of the 11th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Supporting the restructuring of data abstractions through manipulation of a program visualization
ACM Transactions on Software Engineering and Methodology (TOSEM)
Extreme programming explained: embrace change
Extreme programming explained: embrace change
Class hierarchy specialization
Acta Informatica
Understanding class hierarchies using concept analysis
ACM Transactions on Programming Languages and Systems (TOPLAS)
Points-to analysis for Java using annotated constraints
OOPSLA '01 Proceedings of the 16th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Formal Concept Analysis: Mathematical Foundations
Formal Concept Analysis: Mathematical Foundations
Practical extraction techniques for Java
ACM Transactions on Programming Languages and Systems (TOPLAS)
Automated Support for Program Refactoring using Invariants
ICSM '01 Proceedings of the IEEE International Conference on Software Maintenance (ICSM'01)
Refactoring for generalization using type constraints
OOPSLA '03 Proceedings of the 18th annual ACM SIGPLAN conference on Object-oriented programing, systems, languages, and applications
Scaling Java points-to analysis using SPARK
CC'03 Proceedings of the 12th international conference on Compiler construction
Binary refactoring: improving code behind the scenes
Proceedings of the 27th international conference on Software engineering
Refactoring gcc using structure field access traces and concept analysis
WODA '05 Proceedings of the third international workshop on Dynamic analysis
Identifying traits with formal concept analysis
Proceedings of the 20th IEEE/ACM international Conference on Automated software engineering
Decoupling classes with inferred interfaces
Proceedings of the 2006 ACM symposium on Applied computing
An operational semantics and type safety prooffor multiple inheritance in C++
Proceedings of the 21st annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications
A software metric for coherence of class roles in Java programs
Proceedings of the 5th international symposium on Principles and practice of programming in Java
Redesigning with traits: the Nile stream trait-based library
ICDL '07 Proceedings of the 2007 international conference on Dynamic languages: in conjunction with the 15th International Smalltalk Joint Conference 2007
Systematically refactoring inheritance to delegation in java
Proceedings of the 30th international conference on Software engineering
Traits at work: The design of a new trait-based stream library
Computer Languages, Systems and Structures
Client-based cohesion metrics for Java programs
Science of Computer Programming
Generating a catalog of unanticipated schemas in class hierarchies using Formal Concept Analysis
Information and Software Technology
Refactoring using type constraints
ACM Transactions on Programming Languages and Systems (TOPLAS)
Identifying method friendships to remove the feature envy bad smell (NIER track)
Proceedings of the 33rd International Conference on Software Engineering
Semantic hierarchy refactoring by abstract interpretation
VMCAI'06 Proceedings of the 7th international conference on Verification, Model Checking, and Abstract Interpretation
Changing programs correctly: refactoring with specifications
FM'06 Proceedings of the 14th international conference on Formal Methods
On the automated modularisation of java programs using service locators
SC'12 Proceedings of the 11th international conference on Software Composition
Refactoring using type constraints
SAS'07 Proceedings of the 14th international conference on Static Analysis
Identification of generalization refactoring opportunities
Automated Software Engineering
A novel obfuscation: class hierarchy flattening
FPS'12 Proceedings of the 5th international conference on Foundations and Practice of Security
Granularity of attributes in formal concept analysis
Information Sciences: an International Journal
Hi-index | 0.00 |
KABA is an innovative system for refactoring Java class hierar-chies. 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 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.