Anda di halaman 1dari 23

INGENIER A INVERSA

Ingeniera Inversa

El trmino ingeniera inversa tiene sus orgenes en el mundo del hardware. Una cierta compaa desensambla un producto de hardware competitivo un esfuerzo por comprender los-secretos del diseo y fabricacin de su competidor.

Ingeniera Inversa

La ingeniera inversa del software es algo bastante similar. Sin embargo, en la mayora de los casos, el programa del cual hay que hacer una ingeniera inversa no es el de un rival, sino, ms bien, el propio trabajo de la compaa (con frecuencia efectuado hace muchos aos).

Ingeniera Inversa

La ingeniera inversa del software es el proceso de anlisis de un programa con el fin de crear una representacin de programa con un nivel de abstraccin ms elevado que el cdigo fuente. La ingeniera inversa es un proceso de recuperacin de diseo. Con las herramientas de la ingeniera inversa se extraer del programa existente informacin del diseo arquitectnico y de proceso, e informacin de los datos. Cmo Funciona?

Ingeniera Inversa

Se deben afrontar tres enfoques de ingeniera inversa: nivel de abstraccin, completitud y direccionalidad.

Ingeniera Inversa

Antes de que puedan comenzar las actividades de ingeniera inversa, el cdigo fuente no estructurado (sucio) se reestructura para que solamente contenga construcciones de programacin estructurada.

Esto hace que el cdigo fuente sea ms fcil de leer, y es lo que proporciona la base para todas las actividades subsiguientes de ingeniera inversa.

Ingeniera Inversa

El ncleo de la ingeniera inversa es una actividad denominada extraccin de abstracciones. El ingeniero tiene que evaluar el viejo programa y a partir del cdigo fuente (que no suele estar documentado) tiene que extraer una especificacin significativa del procesamiento que se realiza, la interfaz de usuario que se aplica, y las estructuras de datos de programa o de base de datos que se utiliza.

Ingeniera Inversa Para Comprender

La primera actividad real de la ingeniera inversa comienza con un intento de comprender y extraer despus abstracciones de procedimientos representadas por el cdigo fuente. Para comprender las abstracciones de procedimientos, se analiza el cdigo en distintos niveles de abstraccin: sistema, programa, componente, configuracin y sentencia.

Ingeniera Inversa Para Comprender

La funcionalidad general de todo el sistema de aplicaciones deber ser algo perfectamente comprendido antes de que tenga lugar un trabajo de ingeniera inversa ms detallado. Esto es lo que establece un contexto para un anlisis posterior, y se proporcionan ideas generales acerca de los problemas de interoperabilidad entre aplicaciones dentro del sistema. Cada uno de los programas de que consta el sistema de aplicaciones representar una abstraccin funcional con un elevado nivel de detalle.

Ingeniera inversa para comprender los datos.

La ingeniera inversa de datos se aplica sobre algn cdigo de bases de datos (aplicacin, cdigo SQL, etc.) para obtener los modelos relacionales o sobre el modelo relacional para obtener el diagrama entidad-relacin. Hay que tener en cuenta que la ingeniera inversa se puede dar entre distintos productos del ciclo de vida de una aplicacin.

Ingeniera inversa para comprender los datos.

Ingeniera inversa para comprender los datos. Se divide en dos partes:

Una corresponde al anlisis de los datos internos. Otra al estudio de las estructuras globales de datos (archivos, bases de datos, etc.).

Estructura de datos internos

Las tcnicas de ingeniera inversa para datos de programa internos se centran en la definicin de clases de objetos5. Esto se logra examinando el cdigo del programa en un intento de agrupar variables de programa que estn relacionadas. En muchos casos, la organizacin de datos en el seno el cdigo identifica los tipos abstractos de datos. Por ejemplo, las estructuras de registros, los archivos, las listas y otras estructuras de datos que suelen proporcionar una indicacin inicial de las clases.

Estructuras Globales de Datos

Independientemente de su organizacin lgica y de su estructura fsica, las bases de datos permiten definir objetos de datos, y apoyan los mtodos de establecer relaciones entre objetos. Para definir el modelo de datos existente como precursor para una reingeniera que producir un nuevo modelo de base de datos se pueden emplear los pasos siguientes:

Construccin de un modelo de objetos inicial. Las claves definidas como parte del modelo se podrn conseguir mediante la revisin de registros de una base de datos de archivos planos o de tablas de un esquema relacional. Los elementos de esos registros o tablas pasarn a ser atributos de una clase. Determinacin de los candidatos a claves. Los atributos se examinan para determinar si se van a utilizar o no para sealar a otro registro o tabla. Aquellos que sirvan como punteros pasarn a ser candidatos a claves.

Refinamiento de las clases provisionales. Se determina si ciertas clases similares pueden o no combinarse dentro de una nica clase. Definicin de las generalizaciones. Para determinar si se debe o no construir una jerarqua de clases con una clase Descubrimiento de las asociaciones. Mediante el uso de tcnicas anlogas al enfoque de CRC se establecen las asociaciones entre clases.

Ingeniera inversa de interfaces

El nuevo desarrollo de interfaces de usuario ha pasado a ser uno de los tipos ms comunes de las actividades de reingeniera

Ingeniera inversa de interfaces


Merlo y sus colaboradores sugieren tres preguntas bsicas a las cuales hay que responder cuando comienza la ingeniera inversa de la IU: Cules son las acciones bsicas que deber procesar la interfaz, por ejemplo, acciones de teclado y clics de ratn? Cul es la descripcin compacta de la respuesta de comportamiento del sistema a estas acciones? Qu queremos decir con sustitucin, o ms exactamente, qu concepto de equivalencia de interfaces es relevante en este caso?

La notacin de modelado de comportamiento puede proporcionar una forma de desarrollar las respuestas de las dos primeras preguntas indicadas anteriormente. Gran parte de la informacin necesaria para crear un modelo de comportamiento se puede obtener mediante la observacin de la manifestacin extema de la interfaz existente.

Es preciso extraer del cdigo la informacin adicional necesaria para crear el modelo de comportamiento. Es importante indicar que una IGU de sustitucin puede que no refleje la interfaz antigua de forma exacta (de hecho, puede ser totalmente diferente). Con frecuencia, merece la pena desarrollar metforas de interaccin nuevas.

La reestructuracin

La reestructuracin del software modifica el cdigo fuente y/o los datos en un intento de adecuar10 a futuros cambios.

Qu beneficios se derivan de la reestructuracin?

Programas de mayor calidad. Reduce la frustracin entre ingenieros del software. que deban trabajar con el programa. Reduce el esfuerzo requerido para llevar a cabo las actividades de mantenimiento. Hace que el software sea ms sencillo de comprobar y de depurar.

Reestructuracin del cdigo

La reestructuracin del cdigo se lleva a cabo para conseguir un diseo que produzca la misma funcin pero con mayor calidad que el programa original.

Reestructuracin de los datos


Anlisis del cdigo fuente: Evaluarn todas las sentencias del lenguaje de programacin con definiciones de datos. descripciones de archivos de E/S. descripciones de interfaz. Rediseo de datos. Estandarizacin de rediseo de datos. Racionalizacin de nombres de datos.

Anda mungkin juga menyukai