4.1 Article

Sound refactorings

Journal

SCIENCE OF COMPUTER PROGRAMMING
Volume 75, Issue 3, Pages 106-133

Publisher

ELSEVIER
DOI: 10.1016/j.scico.2009.10.001

Keywords

Refactoring; Formal methods; Refinement calculus; Object-oriented programming

Funding

  1. EPSRC [EP/H017461/1] Funding Source: UKRI
  2. Engineering and Physical Sciences Research Council [EP/H017461/1] Funding Source: researchfish

Ask authors/readers for more resources

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. (C) 2009 Elsevier B.V. All rights reserved.

Authors

I am an author on this paper
Click your name to claim this paper and add it to your profile.

Reviews

Primary Rating

4.1
Not enough ratings

Secondary Ratings

Novelty
-
Significance
-
Scientific rigor
-
Rate this paper

Recommended

No Data Available
No Data Available