Reingeniería del software se puede definir como: "modificación de un producto software, o de ciertos componentes, usando para el análisis del sistema existente técnicas de Ingeniería Inversa y, para la etapa de reconstrucción, herramientas de Ingeniería Directa, de tal manera que se oriente este cambio hacia mayores niveles de facilidad en cuanto a mantenimiento, reutilización, comprensión o evaluación.
Entre los beneficios de aplicar reingeniería a un producto existente se puede incluir:
Pueden reducir los riegos evolutivos de una organización. Puede ayudar a las organizaciones a recuperar sus inversiones en software. Puede hacer el software más fácilmente modificable Amplía las capacidades de las herramientas CASE Es un catalizador para la automatización del mantenimiento del software Puede actuar como catalizador para la aplicación de técnicas de inteligencia artificial para resolver problemas de reingeniería La reingeniería del software involucra diferentes actividades como son:
análisis de inventarios reestructuración de documentos ingeniería inversa reestructuración de programas y datos ingeniería directa
Entre los beneficios de aplicar reingeniería a un producto existente se puede incluir:
Pueden reducir los riegos evolutivos de una organización.
Puede ayudar a las organizaciones a recuperar sus inversiones en software.
Puede hacer el software más fácilmente modificable
Amplía las capacidades de las herramientas CASE
Es un catalizador para la automatización del mantenimiento del software
Puede actuar como catalizador para la aplicación de técnicas de inteligencia artificial para resolver problemas de reingeniería
La reingeniería del software involucra diferentes actividades como son:
análisis de inventarios
reestructuración de documentos
ingeniería inversa
reestructuración de programas y datos
ingeniería directa