martes, 26 de julio de 2011

6. Explique ejemplificando las técnicas de reingeniería e Ingeniería de reverso.

Reingeniería del software se puede definir como: “modificación de un producto software, o de ciertos componentes, usando para el análisis del sistema existente técnicas de Ingeniería Inversa y, para la etapa de reconstrucción, herramientas de Ingeniería Directa, de tal manera que se oriente este cambio hacia mayores niveles de facilidad en cuanto a mantenimiento, reutilización, comprensión o evaluación.”

Entre la tecnicas de Reingenieria tenemos:

Reestructuracion de Datos: Esto es reversar el modelo fisico al modelo logico para obtener el modelo de E-R de la base de datos, recuperando el diccionario de datos, atributos, entidades, dominios, cardinalidad etc, la mayoria de las herramientas CASE del mercado cumplen con esta funcion.

Reestructuracion de Codigo: Llevar a cabo esta actividad requiere analizar el código fuente empleando una herramienta de reestructuración, de no tener el codigo fuente disponible puede aplicarse ingenieria inversa sobre el compilado para obtener el codigo fuente original siempre y cuando la licencia del software lo permita, inmediatamente se indican las violaciones de las estructuras de programación estructurada u orientada a objetos, y entonces se reestructura el código (esto se puede hacer automáticamente). El código reestructurado resultante se revisa y se comprueba para asegurar que no se hayan introducido anomalías. Se actualiza la documentación interna del código.

1 comentario: