Communications of the ACM
Refactoring object-oriented frameworks
Refactoring object-oriented frameworks
Programming from specifications (2nd ed.)
Programming from specifications (2nd ed.)
Design patterns: elements of reusable object-oriented software
Design patterns: elements of reusable object-oriented software
Software architecture: perspectives on an emerging discipline
Software architecture: perspectives on an emerging discipline
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
A Weakest Precondition Semantics for Refinement of Object-Oriented Programs
IEEE Transactions on Software Engineering
Software Construction by Stepwise Feature Introduction
ZB '02 Proceedings of the 2nd International Conference of B and Z Users on Formal Specification and Development in Z and B
Forward Simulation for Data Refinement of Classes
FME '02 Proceedings of the International Symposium of Formal Methods Europe on Formal Methods - Getting IT Right
A Methodology for the Automated Introduction of Design Patterns
ICSM '99 Proceedings of the IEEE International Conference on Software Maintenance
Evolving object-oriented designs with refactorings
Evolving object-oriented designs with refactorings
Algebraic reasoning for object-oriented programming
Science of Computer Programming - Special issue on program transformation
1FACS'96 Proceedings of the 1st BCS-FACS conference on Northern Formal Methods
Hi-index | 0.00 |
In this paper we present how refactoring of object-oriented programs can be accomplished by using formal refinement. Our approach is based on the use of refactoring rules designed for a sequential object-oriented language of refinement (rool) similar to Java. We define a strategy that aims at structuring programs according to a layered architecture that involves the application of refactoring rules, object-oriented programming laws, and data and algorithm refinement. As the laws are proved in a weakest precondition semantics of rool, correctness of refactoring is ensured by construction.