Breve introducción a la Refactorización (Refactoring) (1/3). Definición
Archivado en diseño, refactoring en Feb.28, 2011 por jgarzas
Refactorizar (o Refactoring) es realizar una transformación al software preservando su comportamiento, modificando sólo su estructura interna para mejorarlo. El término es de Opdyke, quien lo introdujo por primera vez en 1992, en su tesis doctoral. Más definiciones, en 2001 Tokuda y Batory las definieron como una transformación parametrizada a un programa preservando su comportamiento, modificando automáticamente el diseño de la aplicación y el código fuente subyacente. Decía Fowler que eran cambios realizados en el software para hacerlo más fácil de modificar y comprender, por lo que no son una optimización del código, ya que esto en ocasiones lo hace menos comprensible, ni solucionar errores o mejorar algoritmos. Las refactorizaciones pueden verse como un tipo de mantenimiento preventivo, cuyo objetivo es disminuir la complejidad del software en anticipación a los incrementos de complejidad que los cambios pudieran traer.
Aunque hay varios catálogos de refactorizaciones el más famoso es el de Fowler, que se mantiene en la página www.refactoring.com. Algunos ejemplos de las refactorizaciones que podéis encontrar en este catálogo: Add Parameter, Change Bidirectional Association to Unidirectional, Consolidate Conditional Expression, Extract Class, Introduce Null Object, Move Method, etc.
Y para terminar de definir el concepto, os dejo más abajo el diseño UML de algunas refactorizaciones…
Fig. Replace Method With Method Object
Fig. Replace Type Code With StateStrategy
Otras entradas relacionadas con esta:
- Breve introducción a la Refactorización (Refactoring) (2/3). Justificación
- Breve introducción a la Refactorización (Refactoring) (3/3). Aplicación
- Estimación software, una breve introducción (1/4)
- Una breve introducción a la estimación software. El proceso (3/4)
- Los puntos función. Una breve introducción a la estimación software (2/4)















Javier Garzás trabaja en la empresa
[...] de cambiar la estructura del software preservando su comportamiento externo. Aquí encontraréis más información. Y claro, tiene un poco que ver con el rejuvenecimiento del código [...]
[...] de cambiar la estructura del software preservando su comportamiento externo. Aquí encontraréis más información. Y claro, tiene un poco que ver con el rejuvenecimiento del código [...]
[...] generación de Test unitarios, etc. Mira las excepciones, refactorizaciones potenciales (te dejo un post de refactorización), convenios de JavaDoc, métricas, etc. Disponible como plugin de Eclipse. Página oficial: [...]
[...] (Enlace a la parte 1 de este artículo: Breve introducción a la Refactorización (Refactoring) (1/3… [...]
[...] del código (te recomiendo aquí leer este post sobre qué es la refactorización): Esta tarea se debe incluir para cada historia con el fin de evitar una complejidad excesiva del [...]