European Association of Software Science and Technology
Doi
Abstract
Refactoring tools include checking of an object-oriented program for the
fulfillment of preconditions, for ensuring correctness. However, program invariants
â semantic information about classes and fields assumed valid during program execution
â are not considered by this precondition checking. As a result, applicability
of automated refactorings is constrained in these cases, as refactorings that would be
applicable considering the invariants get rejected, usually requiring manual changes.
In this paper, we describe initial work on the use of program invariants (declared as
code annotations) to increase applicability of automated refactoring. We propose an
approach that uses primitive program transformations that employ the invariant to
make the program syntactically amenable to the desired refactoring, before applying
the refactoring itself