Go4ITAlight

software alightGo4IT Alight – Herramienta para el análisis del código legado y su transformación a un entorno moderno

Es el conjunto de herramientas más avanzado para la evaluación, documentación, transformación y optimización de sistemas legados.

Go4IT Alight está basado en tecnologías de compiladores y modelos de lenguaje, que permiten la implantación de proyectos de modernización totalmente automatizados, con mucha mayor garantía de éxito y con una inversión económica más ajustada, y todo ello con independencia de los lenguajes de programación y de las plataformas de ejecución.

Nuestra ventaja competitiva: El Modelo Intermedio – Lenguaje Pivote

Go4IT Alight es capaz de interpretar y transformar diferentes lenguajes de programación empleando gramáticas específicas para cada uno de ellos. Para conseguir gestionar lenguajes de programación diferentes, Go4IT Alight cuenta con un modelo intermedio o lenguaje pivote. Este lenguaje pivote nos permite obtener una representación de los programas independiente de la tecnología. A partir de este Lenguaje Pivote se realizan todos los procesos de análisis y traducción del código fuente:

  • Descubrimiento: comprensión de la arquitectura interna del código.
  • Análisis: extracción de la documentación del código, detección de código muerto, así como cualquier otra información relevante.
  • Optimización: optimización y refactorización del código basada en la arquitectura destino, así como de características propias del entorno legado.
  • Generación: transformación a un nuevo lenguaje objetivo.

El Lenguaje Pivote es un lenguaje completo, generado por el proceso de compilación de Go4IT Alight, que cuenta con todas las características de los lenguajes de programación (por ejemplo, variables, funciones, modelo de datos, interfaz de usuario...). Gracias a este lenguaje intermedio, la incorporación de un nuevo lenguaje se consigue en poco tiempo (entre 1 y 3 meses). Además, una vez realizada la conexión de un lenguaje con el lenguaje intermedio es posible emplear sobre el mismo todas las herramientas de análisis, optimización y traducción ya disponibles en Go4IT Alight.

software alight

Fases de modernización de Go4IT Alight

La fase de descubrimiento es la que permite a Go4IT Alight obtener el conocimiento de los programas legacy analizados. Este proceso se asemeja mucho al que realiza un compilador, pero llegando a un nivel de conocimiento mayor. Alight descubre en primer lugar la estructura del código fuente analizado, identificando variables, funciones y clases. Posteriormente se analiza el comportamiento de cada una de las funciones, llegando al mismo nivel de detalle al que llegaría un compilador. Finalmente, el proceso de descubrimiento obtiene información acerca del modelo de datos empleado por los programas (bases de datos y tablas accedidas, así como fichero de datos), y del interfaz de usuario de las ventanas del programa en cuestión (diálogos, controles, botones, etc.). El resultado de este proceso es una representación independiente de la tecnología, en base al Lenguaje Pivote de Alight.

Una de las características fundamentales de Alight es su flexibilidad. Esto nos permite personalizar el proceso de descubrimiento, introduciendo elementos propios de cada instalación (componentes específicos de UI, librerías especiales, etc.). Así es posible para nosotros desarrollar soluciones de modernización que mantengan de forma fiel la arquitectura de las aplicaciones, reduciendo la curva de aprendizaje del futuro equipo de mantenimiento.

La fase de análisis de Alight permite obtener información del código fuente origen. Esta información es crucial para realizar una modernización exitosa, puesto que permite identificar problemas de estructura, rendimiento, etc. de las aplicaciones y aplicar correcciones antes de su transformación a una nueva plataforma. En la actualidad Alight cuenta ya con multitud de herramientas de análisis disponibles para todos los lenguajes de programación:

  • detectores de código muerto y variables no utilizadas
  • generadores de informes de complejidad ciclomática
  • detectores de lógica de negocio en ventanas de interfaz de usuario,
  • extractores de dependencias entre programas
  • extractores de diagramas de flujo
  • analizadores del modelo de datos

Además, es posible desarrollar algoritmos de análisis estático a medida de los problemas de cada instalación.

Las últimas dos fases de Alight permiten a la herramienta generar de forma automática una réplica funcional de la aplicación origen en la tecnología de destino deseada. Esta obtención de la aplicación final está compuesta de dos fases. La primera tiene como objetivo la preparación del código para la nueva plataforma: es la fase de optimización.

La fase de optimización permite a Alight realizar una serie de modificaciones formales sobre el código que permitan su regeneración en una tecnología concreta. Por ejemplo, antes de realizar una generación de código Java es necesario asegurar que no existen instrucciones GOTO en el lenguaje de origen. Este proceso puede emplearse también para optimizar el proceso de generación en una tecnología concreta. Por ejemplo, al transformar una aplicación antigua Visual Basic en HTML5 + CSS, será necesario hacer cálculos de tamaño para obtener un interfaz responsive.

La fase de optimización está íntimamente ligada a la de generación y también a las características de la plataforma destino.

La herramienta Alight cuenta con generadores de código de última generación que permiten vincular los modelos de lenguaje intermedio con lenguajes modernos de destino, como Java, Shell script, HTML, Javascript o Python entre otros. Además, Alight permite la regeneración del código en el mismo lenguaje de origen para casos de corrección automática de código fuente (por ejemplo, eliminación de GOTOs en COBOL).

Gracias a su gran flexibilidad, es posible personalizar estos generadores para que tengan en cuenta elementos específicos de cada instalación, lo que nos permite alcanzar un 100% de automatización en todo el proceso de migración.