Logo Studenta

Ingeniería inversa y reingeniería de software

¡Estudia con miles de materiales!

Vista previa del material en texto

1er semestre Ing. informática 2017 
Ingeniería inversa y reingeniería de software: Transformando y comprendiendo 
aplicaciones existentes 
 
Resumen: 
La ingeniería inversa y reingeniería de software son procesos utilizados para analizar, 
transformar y comprender aplicaciones existentes. La ingeniería inversa se enfoca en 
descomponer y comprender un sistema de software existente sin tener acceso a su 
documentación original o su diseño inicial. Por otro lado, la reingeniería de software 
implica la transformación y mejora de un sistema de software existente para 
actualizarlo, mejorar su rendimiento, escalabilidad o agregar nuevas funcionalidades. 
 
Ejemplo de uso en la vida real: 
 
Imaginemos que una empresa hereda un sistema de software crítico para su operación 
diaria, pero carece de documentación y comprensión completa del sistema. Para 
resolver este problema, utilizan ingeniería inversa para analizar el código fuente y 
comprender cómo está estructurado y funciona el sistema. 
 
El primer paso es utilizar herramientas de ingeniería inversa que analizan el código y 
generan diagramas de clases, diagramas de flujo de control y otras representaciones 
visuales del sistema. Estas representaciones permiten a los ingenieros de software 
entender la estructura del sistema, las interacciones entre los diferentes componentes y 
las dependencias existentes. 
 
Una vez que se obtiene una comprensión sólida del sistema, se puede pasar a la fase 
de reingeniería. En este punto, el equipo de desarrollo puede realizar mejoras y 
modificaciones en el sistema existente para cumplir con los requisitos actuales de la 
empresa. 
 
Por ejemplo, se pueden identificar partes del código que son obsoletas o ineficientes y 
reescribirlas utilizando mejores prácticas de programación. También se pueden agregar 
nuevas funcionalidades que el sistema original no tenía, como integración con nuevas 
tecnologías o capacidades de análisis de datos. 
 
1er semestre Ing. informática 2017 
La reingeniería de software también puede implicar la migración del sistema a una 
nueva plataforma o arquitectura, aprovechando las ventajas de tecnologías más 
modernas y eficientes. Por ejemplo, se podría migrar un sistema monolítico a una 
arquitectura basada en microservicios para mejorar la escalabilidad y la flexibilidad.

Más contenidos de este tema