2. REINGENIERÍA
De acuerdo a Michel Hammer (1993), la reingeniería es
empezar de cero, en una hoja en blanco, porque se
considera que prácticamente todo lo que hacíamos antes,
como empresas, parecería estar mal hecho, considerando
los resultados obtenidos.
Fuente: Hammer y Champy (1993). Re-engineering the corporation: A manifesto for business
revolution
3. REINGENIERÍA DEL SOFTWARE
El Instituto de Ingeniería de software (SEI) define la
Reingeniería como:
“Es la transformación sistemática de un sistema
existente dentro de una nueva forma de realizar
mejoramientos de calidad en unas operaciones,
capacidad del sistema, funcionabilidad, rendimiento
o evolucionabilidad a bajo costo, agendas o riesgos
para el cliente.”
Fuente: Tilley (1995). Perspectives on Legacy Systems Reengineering
4. Por qué aplicar Reingeniería del
Software?
Cuando una aplicación ha servido para las
necesidades del negocio de una compañía durante varios
años, se vuelve inestable, debido a las correcciones,
adaptaciones y mejoras que se realizaron. Esto deriva
en que cada vez que se intenta efectuar un cambio se
produzcan efectos colaterales graves e inesperados. Por
esta razón es importante realizar Reingeniería del
Software.
5. Objetivos de la
Reingeniería del Software
Proporcionar asistencia automatizada para el mantenimiento.
Reducir los errores y costos del mantenimiento.
Incrementar la intercambiabilidad del grupo de mantenimiento.
Hacer sistemas fáciles de entender, cambiar y probar.
Habilitar la conversión y migración de sistemas.
Reforzar el apego a estándares.
Mejorar la respuesta a peticiones de mantenimiento.
Mejorar el estado de ánimo del grupo de mantenimiento.
6. Objetivos de la
Reingeniería del Software (cont.)
Proteger y extender la vida del sistema.
Usar CASE para apoyar sistemas existentes.
Re-usar componentes de sistema existentes.
7. Métodos y Modelos de
Reingeniería del Software
Método de análisis de opciones para reingeniería (OAR)
El Análisis de Opciones para Reingeniería (OAR) es un
método sistemático, de arquitectura central y de toma de
decisiones para la identificación y extracción de componentes
dentro de grandes y complejos sistemas de software.
8. Métodos y Modelos de
Reingeniería del Software
Método de análisis de opciones para reingeniería (OAR)
Tareas de Tareas de Tareas de Tareas de
ejecución ejecución ejecución ejecución
especializadas especializadas especializadas especializadas
Establecimiento Inventario de Analizar Plan de Selección de
del Contexto de Componentes Componentes Opciones de Opciones de
Extracción Candidatos Extracción Extracción
9. Métodos y Modelos de
Reingeniería del Software
El Modelo Herradura
Los tres procesos básicos: Análisis de un sistema
existente, transformación lógica y desarrollo de un nuevo
sistema. Conforman la base del modelo de herradura. La
riqueza del modelo de herradura son los tres niveles de
abstracción que pueden ser adoptados para las descripciones
lógicas. Conceptualmente, este puede ser a través de un
conjunto de herraduras anidadas. Las descripciones lógicas
pueden ser artefactos tan concretos y simples como el código
fuente del sistema o tan complejos y abstractos como la
arquitectura del sistema.
10. Métodos y Modelos de
Reingeniería del Software
El Modelo Herradura
Figura 3.2 Modelo herradura
11. Métodos y Modelos de
Reingeniería del Software
El Modelo Cíclico
Este modelo define seis actividades. En algunas
ocasiones, estas actividades se producen de forma
secuencial y lineal, pero esto no siempre es así.
12. Métodos y Modelos de
Reingeniería del Software
El Modelo Cíclico
Análisis de
inventario
Ingeniería
directa
Reestructuración
de documentos
Reestructuración
de datos
Ingeniería
Inversa
Reestructuración
del código
Figura 3.3 Modelo cíclico