código y reducir su complejidad; esto puede mejorar la mantenibilidad del código fuente y crear una estructura interna más expresiva o el modelado de los objetos para mejorar la extensibilidad. Típicamente, al refactorizar se aplican una seria de micro-refactorizaciones básicas estandarizadas, cada una de ellas es usualmente un pequeño cambio en el código que o preserva el comportamiento del software, o al menos no modifica su apego a los requerimientos funcionales.