Refactoring object-oriented frameworks
Refactoring object-oriented frameworks
Programming from specifications (2nd ed.)
Programming from specifications (2nd ed.)
Object-oriented software construction (2nd ed.)
Object-oriented software construction (2nd ed.)
An inconsistency in procedures, parameters, and substitution in the refinement calculus
Science of Computer Programming
Refactoring: improving the design of existing code
Refactoring: improving the design of existing code
A Discipline of Programming
The Java Programming Language
A Weakest Precondition Semantics for Refinement of Object-Oriented Programs
IEEE Transactions on Software Engineering
Automated Application of Design Patterns to Legacy Code
Proceedings of the Workshop on Object-Oriented Technology
Evolving object-oriented designs with refactorings
Evolving object-oriented designs with refactorings
1FACS'96 Proceedings of the 1st BCS-FACS conference on Northern Formal Methods
Mechanical verification of refactorings
PEPM '08 Proceedings of the 2008 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
Refactoring and representation independence for class hierarchies
Theoretical Computer Science
Hi-index | 0.00 |
In this paper we show how rewriting systems, in particular CafeOBJ, can be used to automatically prove refactoring rules. In addition, a small case study that illustrates the application of a refactoring rule in an arbitrary program is also developed. Our approach is based on a sequential object-oriented language of refinement (rool) similar to Java. We have implemented the rool grammar in CafeOBJ, as well as the laws that define its semantics. Each refactoring rule is derived by the application of these laws, in a constructive way. The refactorings are also implemented in CafeOBJ, allowing the reduction of an arbitrary program.