Formalizing Refactorings with Graph Transformations

TitleFormalizing Refactorings with Graph Transformations
Publication TypeJournal Article
Year of Publication2005
AuthorsMens, T, Van Eetvelde N, Demeyer S, Janssens D
JournalInternational Journal on Software Maintenance: Research and Practice
Date Publishedjul

The widespread interest in refactoring - transforming the source-code of an object-oriented program without changing its external behaviour - has increased the need for a precise definition of refactoring transformations and their properties. In this paper we explore the use of graph rewriting for specifying refactorings and their effect on programs. We introduce a graph representation for programs and show how two representative refactorings can be expressed by graph productions. Then we demonstrate that it is possible to prove that refactorings preserve certain program properties, and that graph rewriting is a suitable formalism for such proofs.