Program-Transformation.Org: The Program Transformation Wiki
We can distinguish between two kinds of refactoring:

- ProgramRefactoring deals with the refactoring of source code (i.e., programs). It is a specific kind of ProgramTransformation that preserves the external behaviour of the program.

- ModelRefactoring deals with the refactoring of models (e.g. design models). In a certain sense, ModelRefactoring encompasses ProgramRefactoring, at least for those who take the view that a program is nothing but a special kind of (very detailed) model. ModelRefactoring is a special kind of ModelTransformation, namely a model transformation that preserves the behaviour of the model, however behaviour is defined.

-- TomMens - 04 Oct 2004