Ingeniería de Software | Ingeniería inversa

La ingeniería inversa de software es un proceso de recuperación del diseño, las especificaciones de requisitos y las funciones de un producto a partir de un análisis de su código. Construye una base de datos del programa y genera información a partir de esto. 

El propósito de la ingeniería inversa es facilitar el trabajo de mantenimiento al mejorar la comprensión de un sistema y producir los documentos necesarios para un sistema heredado. 

Objetivos de ingeniería inversa: 
 

  • Hacer frente a la complejidad.
  • Recuperar información perdida.
  • Detectar efectos secundarios.
  • Sintetizar mayor abstracción.
  • Facilitar la reutilización.

Pasos de la ingeniería inversa de software: 

  1. Información de recopilación: 
    este paso se enfoca en recopilar toda la información posible (es decir, documentos de diseño fuente, etc.) sobre el software. 

     

  2. Examen de la información: 
    La información recopilada en el paso 1 se estudió para familiarizarse con el sistema. 

     

  3. Extracción de la estructura: 
    este paso se refiere a la identificación de la estructura del programa en forma de diagrama de estructura donde cada Node corresponde a alguna rutina. 

     

  4. Registro de la funcionalidad: 
    durante este paso, se procesan los detalles de cada módulo de la estructura, los gráficos se registran utilizando un lenguaje estructurado como la tabla de decisiones, etc. 

     

  5. Registro del flujo de datos: a 
    partir de la información extraída en los pasos 3 y 4, se deriva un conjunto de diagramas de flujo de datos para mostrar el flujo de datos entre los procesos. 

     

  6. Flujo de control de grabación: 
    se registra la estructura de control de alto nivel del software. 

     

  7. Revisar el diseño extraído: el 
    documento de diseño extraído se revisa varias veces para garantizar la coherencia y la corrección. También asegura que el diseño represente el programa. 

     

  8. Generar documentación: 
    finalmente, en este paso, la documentación completa, incluido el SRS, el documento de diseño, el historial, la descripción general, etc., se registra para uso futuro. 

     

Herramientas de ingeniería inversa:

La ingeniería inversa, si se realiza manualmente, consumiría mucho tiempo y mano de obra humana y, por lo tanto, debe estar respaldada por herramientas automatizadas. Algunas de las herramientas se dan a continuación:

  • CIAO y CIA:  un navegador gráfico para software y repositorios web junto con una colección de herramientas de ingeniería inversa.
  • Rigi: una herramienta de comprensión de software visual.
  • Bunch: una herramienta de agrupación/modularización de software.
  • GEN++: Un generador de aplicaciones para soportar el desarrollo de herramientas de análisis para el lenguaje C++.
  • PBS: herramientas de biblioteca de software para extraer y visualizar la arquitectura de los programas.

Publicación traducida automáticamente

Artículo escrito por anonymous007 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *