Refactoring is changing the structure of the souce code of your software, without changing its behaviour. It was first defined by Extreme Programming
Simple examples are rename a class or rename a feature (and any references to them in the universe).
Some (most?) refactorings can be fully automated. That's what SmartFactor is about.
Some links: