You are on page 1of 3

Refactorizacin

Refactorizacin
La refactorizacin (del ingls refactoring) es una tcnica de la ingeniera de software para reestructurar un cdigo
fuente, alterando su estructura interna sin cambiar su comportamiento externo.

Refactorizacin de cdigo
En ingeniera del software, el trmino refactorizacin se usa a menudo para describir la modificacin del cdigo
fuente sin cambiar su comportamiento, lo que se conoce informalmente por limpiar el cdigo. La refactorizacin se
realiza a menudo como parte del proceso de desarrollo del software: los desarrolladores alternan la insercin de
nuevas funcionalidades y casos de prueba con la refactorizacin del cdigo para mejorar su consistencia interna y su
claridad. Los tests aseguran que la refactorizacin no cambia el comportamiento del cdigo.
La refactorizacin es la parte del mantenimiento del cdigo que no arregla errores ni aade funcionalidad. El
objetivo, por el contrario, es mejorar la facilidad de comprensin del cdigo o cambiar su estructura y diseo y
eliminar cdigo muerto, para facilitar el mantenimiento en el futuro. Aadir nuevo comportamiento a un programa
puede ser difcil con la estructura dada del programa, as que un desarrollador puede refactorizarlo primero para
facilitar esta tarea y luego aadir el nuevo comportamiento.
El trmino se cre como analoga con la factorizacin de nmeros y polinomios. Por ejemplo,
factorizado como

puede ser

, revelando una estructura interna que no era visible previamente (como las dos

races en -1 y +1). De manera similar, en la refactorizacin del software, el cambio en la estructura visible puede
frecuentemente revelar la estructura interna "oculta" del cdigo original.
La refactorizacin debe ser realizada como un paso separado, para poder comprobar con mayor facilidad que no se
han introducido errores al llevarla a cabo. Al final de la refactorizacin, cualquier cambio en el comportamiento es
claramente un bug y puede ser arreglado de manera separada a la depuracin de la nueva funcionalidad.
Un ejemplo de una refactorizacin trivial es cambiar el nombre de una variable para que sea ms significativo, como
una sola letra 't' a 'tiempo'. Una refactorizacin ms compleja es transformar el trozo dentro de un bloque en una
subrutina. Una refactorizacin todava ms compleja es remplazar una sentencia condicional if por polimorfismo.
Aunque la limpieza de cdigo se lleva realizando desde hace dcadas, el factor clave de la refactorizacin es realizar
de manera intencionada la limpieza separndola de la adicin de funcionalidad nueva, usando un catlogo conocido
de mtodos tiles de refactorizacin, para despus comprobar el cdigo ejecutando las pruebas unitarias, sabiendo
que cualquier cambio en el comportamiento significa que se ha introducido un error.
La refactorizacin es un aspecto importante de la programacin extrema.
El libro de Martin Fowler Refactoring es la referencia clsica. Aunque la refactorizacin de cdigo se ha llevado a
cabo de manera informal durante aos, la tesis doctoral de William F. Opdyke (1993) es el primer trabajo conocido
que examina especficamente esta tcnica. Todos estos recursos proporcionan un catlogo de mtodos habituales de
refactorizacin. Un mtodo de refactorizacin tiene una descripcin de cmo aplicar el mtodo e indicaciones sobre
cundo debera (o no debera) aplicarse.
La refactorizacin es un concepto tan importante que ha sido identificado por David A. Wheeler como una de las
ms importantes innovaciones en el campo del software.[1]

Refactorizacin

Refactorizacin de otros textos


El trmino refactorizacin se origin en el mbito de la programacin de ordenadores, pero el concepto se ha
aplicado a la modificacin de cualquier texto.
En los sitios Wiki, la refactorizacin se refiere al proceso de reescribir y reorganizar el texto para abreviarlo
preservando su contenido. Se aplica en especial en las discusiones, que de esta manera pueden ser hechas accesibles
para personas que estn interesadas en los argumentos ofrecidos en la discusin y en la informacin que se obtiene
de ella, ms que en la propia historia de la discusin. Puede ser difcil refactorizar de tal manera que estn de acuerdo
todos los participantes de la discusin.

Etimologa
El primer uso conocido del trmino refactorizacin en la literatura publicada se encuentra en el artculo Refactoring:
An Aid in Designing Application Frameworks and Evolving Object-Oriented Systems, Proceedings of the Symposium
on Object Oriented Programming Emphasizing Practical Applications (SOOPPA) September, 1990, ACM por
William F. Opdyke y Ralph E. Johnson.[2] La tesis doctoral de William Opdyke titulada "Refactoring
Object-Oriented Framework" (Universidad de Illinois) se public en 1992.[3] Tanto el trmino refactorizacin como
la tcnica que define se usaban ya con toda seguridad antes.

Referencias
[1] (http:/ / www. dwheeler. com/ innovation/ innovation. html)
[2] (http:/ / www. cs. ucd. ie/ staff/ meloc/ home/ papers/ thesis/ Chapter2. pdf)
[3] (http:/ / martinfowler. com/ bliki/ EtymologyOfRefactoring. html)

Enlaces externos
Libro de Martin Fowler' sobre refactorizacin (http://www.refactoring.com/)

Fuentes y contribuyentes del artculo

Fuentes y contribuyentes del artculo


Refactorizacin Fuente: http://es.wikipedia.org/w/index.php?oldid=61603449 Contribuyentes: Calsbert, GermanX, Guille.hoardings, Pilaf, Platonides, Rsg, Sabbut, Taichi, Wikier, 2 ediciones
annimas

Licencia
Creative Commons Attribution-Share Alike 3.0 Unported
//creativecommons.org/licenses/by-sa/3.0/

You might also like