Software Hoy en Día Mito: los programadores de ahora ya no programan como los de antes.
Herramientas más fáciles y productivas El software es cada día más complejo
¿Si su software fuera un edificio, se parecería mas a uno de la izquierda o de la derecha? Reingeniería del Software
Reducir
Reusar
Reciclar
80% Desarrollo de Software es para mantenimiento. Por lo tanto se necesita de un código simple, legible y bien diseñado para que en un futuro pueda ser extensible. Software Sustentable
Se originó a finales de la década de 1980 aunque se popularizó en la década de 1990.
La reingeniería es un proceso que trata de dar respuesta a una interrogante: ¿Estamos acaso haciendo las cosas bien o podríamos hacerlas mejor?
Es el rediseño o cambio drastico de un proceso en un negocio (deriva hacia el producto). Es comenzar de cero, cambio de todo o nada.
Reingeniería
Ejemplo de Reingeniería
La reingeniería de software es costosa y consumidora de tiempo.
La reingeniería es una actividad de reconstrucción, preferible de realizar antes de que se “derrumbe” la obra.
Antes de derribar una casa, quizás se necesita corroborar que está mal.
Reingeniería del Software
Reingeniería del Software
La reingeniería es un proceso que altera los elementos internos de toda obra, no es una sola remodelación de la fallada.
La reingeniería ayuda a la evolución y mantenimiento del software
Generalmente se siguen los siguientes pasos para aplicar reingeniería:
Reingeniería del Software
Reingeniería del Software
Reingeniería del Software
Refactoring (Reestructuración) es modificar el comportamiento interno (generalmente código fuente) sin modificar su comportamiento externo (apariencia, funcionalidad).
Un cambio al sistema que deja su comportamiento inalterable (sin cambios), pero aumenta alguna cualidad no funcional como simplicidad, flexibilidad, comprensión, … [Beck, 1999] Refactoring
El término se creó como analogía con la factorización de números y polinomios. Por ejemplo, x² – 1 puede ser factorizado como (x + 1)(x – 1), revelando una estructura interna que no era visible previamente (como las dos raíces en -1 y +1)
El libro de Martin Fowler Refactoring es la referencia clásica (1999). Definición
Es correcto el siguiente modelo
¿Se puede mejorar?¿cómo? Ejemplo de Refactoring
Si. Subiendo el método a la clase padre
¿En qué casos no sería conveniente esta refactorización? Cuando los métodos difieren en su implementación. ¿Pero aun así es mala? Ejemplo de Refactoring
Página siguiente |