A refatoração é o processo de fazer melhorias em um programa para diminuir a degradação gradual resultante das mudanças (OPDYKE e JOHNSON, 1990). Isso significa modificar um programa para melhorar sua estrutura, para reduzir sua complexidade ou para torná-lo mais compreensível. No desenvolvimento orientado a objeto, a refatoração muitas vezes é considerada limitada, mas seus princípios podem ser aplicados a qualquer abordagem de desenvolvimento. Quando você refatorar um programa, não deve adicionar funcionalidade, mas concentrar-se na melhoria dele. Portanto, você pode pensar em refatoração como uma ‘manutenção preventiva’, que reduz os problemas de mudança no futuro.
Fonte: Engenharia de Software - Sommerville - 9. ed.