Descargar

Reingeniería de Software

Enviado por Pablo Turmero


Partes: 1, 2

    edu.red

    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

    edu.red

    ¿Si su software fuera un edificio, se parecería mas a uno de la izquierda o de la derecha? Reingeniería del Software

    edu.red

    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

    edu.red

    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

    edu.red

    Ejemplo de Reingeniería

    edu.red

    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

    edu.red

    Reingeniería del Software

    edu.red

    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

    edu.red

    Reingeniería del Software

    edu.red

    Reingeniería del Software

    edu.red

    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

    edu.red

    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

    edu.red

    Es correcto el siguiente modelo

    ¿Se puede mejorar?¿cómo? Ejemplo de Refactoring

    edu.red

    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

    Partes: 1, 2
    Página siguiente