miércoles, 30 de septiembre de 2009

INGENIERIA INVERSA

1. Definición
     Es un proceso que incluye:
  • Analizar un código o descripción física de un sistemas de software
  • Recuperar el nivel de abstracción anterior, con la ayuda de herramientas automáticas.
Es importante recalcar que la ingeniería inversa no cambia lo que hace el software. Sirve para extraer una perspectiva determinada, como por ejemplo: Datos o Funciones.
Lo que hace la ingeniería inversa es transformar la representacion del software a una forma más fácil de entender y más clara.


2. Proceso de la Ingeniería Inversa

Image Hosted by ImageShack.us

3. Elementos
Nivel de Abstracción:
Se refiere a la sotisficación de la información recuperda del codigo fuente. Aquí señalo los niveles de abstracción según su orden de menor a mayor, y son los siguientes:
- Representación del diseño procedimental
- Información de la estructura de datos
- Modelos de flujos de datos y flujos de control
- Modelos entidad-relación.


Completitud:
Se refiere al nivel de detalle que se proporciona en el nivel de abstracción.


4. Tipos
Ingeniería Inversa de Datos:
Se usa para modificar una base de datos. También para migrar a un nuevo sistema de gestión de base de datos y también para crear el modelo de datos del sistema del software.
Toda esta información extraída son: entidades, relaciones, atributos, etc. y se crean modelos de datos, como por ejemplo: Diagramas E-R.


Ingeniería Inversa de Lógica:
Se usa para entender mejor la aplicación y regenerar el código. También para migrar la aplicación a un nuevo sistema operativo. Además genera/complementa la documentación y comprueba que el código cumple con las especificaciones del diseño.
Toda la información extraída son las especificaciones de diseño y se crean modelos de flujo de control, diagramas de diseño, documentos de especificación de diseño, etc.




5. Cuando Aplicar la Ingeniería Inversa
  • Cuando la tecnología es obsoleta.
  • Cuando se hace un cambio de lenguaje de programación , sistema operativo , SGBD.
  • Cuando no hay especificaciones de diseño.
  • Cuando no hay cumplimiento de las especificaciones de diseño.
  • Cuando se integran dos sistemas en uno.


6. Aplicación en GNU/Linux
De la misma forma, pueden fabricarse y distribuirse legalmente los productos genéricos creados a partir de la información obtenida de la ingeniería inversa, como es el caso de algunos proyectos de Software Libre apliamente conocidos.
El programa SAMBA es un claro ejemplo de ingeniería inversa, dado que permite a sistemas operativos UNIX compartir archivos con sistemas Microsoft Windows. El proyecto SAMBA tuvo que investigar información confidencial (no liberada al pública en general por Microsoft) sobre los aspectos técnicos relacionado con el sistema de Archivos de Windows.

Comentarios en Facebook


0 comentarios:

Copyright © 2021 TRUJILLOSOFT