Title
Sound refactorings
Abstract
Refactoring consists in restructuring an object-oriented program without changing its behaviour. In this paper, we present refactorings as transformation rules for programs written in a refinement language inspired on Java that allows reasoning about object-oriented programs and specifications. A set of programming laws is available for the imperative constructs of this language as well as for its object-oriented features; soundness of the laws is proved against a weakest precondition semantics. The proof that the refactoring rules preserve behaviour (semantics) is accomplished by the application of these programming laws and data simulation. As illustration of our approach to refactoring, we use our rules to restructure a program to be in accordance with a design pattern.
Year
DOI
Venue
2010
10.1016/j.scico.2009.10.001
Sci. Comput. Program.
Keywords
DocType
Volume
Object-oriented programming,Refinement calculus,Refactoring,Formal methods
Journal
75
Issue
ISSN
Citations 
3
Science of Computer Programming
4
PageRank 
References 
Authors
0.45
0
3
Name
Order
Citations
PageRank
Márcio Cornélio11239.43
Ana Cavalcanti266859.95
Augusto Sampaio350143.38