Вы находитесь на странице: 1из 6

INGENIERA INVERSA.

Que es La ingeniera inversa para software es Abstraccin El nivel de abstraccin de un proceso de


el proceso de analizar un programa con ingeniera inversa y las herramientas usadas
la intencin de crear una representacin para efectuarla tienen que ver con la
del mismo en un nivel superior de sofisticacin de la informacin de diseo
abstraccin que el cdigo fuente. que puede extraerse del cdigo fuente.

De manera ideal, el nivel de abstraccin debe ser


La ingeniera inversa es un proceso de
tan alto como sea posible, es decir, el proceso de
recuperacin de diseo. Las
ingeniera inversa debe ser capaz de inferir
herramientas de ingeniera inversa
representaciones de diseo procedimental,
extraen informacin de diseo de datos,
informacin de estructura de programa y datos,
arquitectnico y procedimental de un modelos de objeto, modelos de datos y/o flujo de
programa existente. control y modelos de relacin de entidad.
Antes de poder comenzar las actividades de ingeniera inversa, el cdigo fuente no
estructurado (sucio) se reestructura de modo que slo contenga los constructos de
programacin estructurados. Esto hace que el cdigo fuente sea ms fcil de leer y que
proporcione la base para todas las actividades de ingeniera inversa posteriores.

Ejemplo:
Una compaa desensambla un producto de hardware de otra empresa con la intencin
de entender los secretos de diseo y fabricacin de su competidor. Dichos secretos
podran entenderse fcilmente si se obtuvieran las especificaciones de diseo y
fabricacin. Pero esos documentos son propiedad de la empresa competidora y no estn
disponibles para la compaa que hace la ingeniera inversa. En esencia, la ingeniera
inversa exitosa deriva en una o ms especificaciones de diseo y fabricacin para un
producto al examinar especmenes reales del mismo.
Ventajas de la Ingeniera Inversa

Reducir la complejidad del sistema: al intentar comprender el software se facilita su mantenimiento y la


complejidad existente disminuye.
Generar diferentes alternativas: del punto de partida del proceso, principalmente cdigo fuente, se
generan representaciones grficas lo que facilita su comprensin.
Recuperar y/o actualizar la informacin perdida (cambios que no se documentaron en su momento): en
la evolucin del sistema se realizan cambios que no se suele actualizar en las representaciones de
nivel de abstraccin ms alto, para lo cual se utiliza la recuperacin de diseo.
Detectar efectos laterales: los cambios que se puedan realizar en un sistema puede conducirnos a que
surjan efectos no deseados, esta serie de anomalas puede ser detectados por la ingeniera inversa.
Facilitar la reutilizacin: por medio de la ingeniera inversa se pueden detectar componentes de posible
reutilizacin de sistemas existentes, pudiendo aumentar la productividad, reducir los costes y los
riesgos de mantenimiento..
Restructuracin del cdigo

La reestructuracin de cdigo se realiza para producir un diseo que produzca la misma funcin pero con
mayor calidad que el programa original.

Algunos sistemas heredados tienen una arquitectura de programa relativamente slida, pero los mdulos
individuales fueron codificados en una forma que los hace difciles de entender, poner a prueba y
mantener. En tales casos, el cdigo dentro de los mdulos sospechosos puede reestructurarse.

La reestructuracin de software modifica el cdigo fuente y/o los datos con la intencin de hacerlos
sensibles a cambios futuros. En general, la reestructuracin no modifica la arquitectura global del
programa. Tiende a enfocarse sobre detalles de diseo de mdulos individuales y sobre estructuras de
datos locales definidas dentro de mdulos.

Para realizar esta actividad se analiza el cdigo fuente con una herramienta de reestructuracin. Las
violaciones a los constructos de programacin estructurada se anotan y luego el cdigo se reestructura
(esto puede hacerse automticamente) o incluso se reescribe en un lenguaje de programacin ms
moderno. El cdigo reestructurado resultante se revisa y pone a prueba para garantizar que no se
introdujeron anomalas. La documentacin de cdigo interna se actualiza.
Reestructuracin de datos

A diferencia de la reestructuracin
Cuando la estructura de datos es
Un programa con arquitectura de
de cdigo, que ocurre en un nivel
dbil (por ejemplo, si se
datos dbil ser difcil de adaptar y
de abstraccin relativamente bajo,
implementan archivos planos,
mejorar. De hecho, para muchas
la reestructuracin de datos es
cuando un enfoque relacional
aplicaciones, la arquitectura de
una actividad de reingeniera a
simplificara enormemente el
informacin tiene ms que ver con
gran escala. En la mayora de los
procesamiento), los datos se
la viabilidad a largo plazo de un
casos, la reestructuracin de los
someten a reingeniera.
programa que con el cdigo fuente
datos comienza con una actividad
en s.
de ingeniera inversa. Se
identifican los objetos y atributos
de datos, y se revisa la calidad de
las estructuras de datos
existentes.
INGENIERA HACIA ADELANTE

Aplica los principios, conceptos y mtodos de la reingeniera de


software para volver a crear una aplicacin existente. (Nueva Versin).

Ingeniera hacia adelante para arquitecturas orientadas a Ingeniera hacia adelante para arquitecturas orientadas
Cliente - Servidor a objetos

En esta arquitectura los recursos de computo centralizados Primero, el software existente se somete a ingeniera inversa
(incluido el software) se distribuyen entre muchas para que puedan crearse modelos adecuados de datos,
plataformas clientes. funciones y comportamientos. Si el sistema sometido a
reingeniera extiende la funcionalidad o comportamiento de la
La funcionalidad de la aplicacin migra a cada aplicacin original, se crean casos de uso. Los modelos de
computadora cliente. datos creados durante la ingeniera inversa se usan entonces
Se implementan nuevas interfaces GUI en los sitios en conjuncin con el modelado CRC para establecer la base
clientes. para la definicin de clases. Se definen entonces las
Las funciones de la base de datos se ubican en el jerarquas de clase, modelos objeto-relacional, modelos
servidor. objeto- comportamiento y subsistemas, y se comienza el
La funcionalidad especializada puede permanecer en el diseo orientado a objetos.
sitio servidor.
Deben establecerse en nuevos requisitos de
comunicaciones, seguridad, archivado y control en los
sitios cliente y servidor.

Вам также может понравиться