Caravel

Caravel Express: Reingeniería asistida de sistemas legacy COBOL y RPG

Modernización de sistemas legacyIr al principio de la página

La modernización de un sistema Legacy implica una transformación destinada a beneficiarse de la nueva tecnología y a convertirse en una plataforma libre. En muchos casos, esto significa reescribir la funcionalidad original en un nuevo lenguaje.

Hoy en día, la transformación a Java de un sistema Legacy es probablemente el tipo de proyecto más común en el campo de la modernización de aplicaciones.

Una solución práctica, utilizada con éxito en muchos proyectos, es la reescritura manual “línea a línea”.

Este enfoque tiene sus ventajas: incluso en aquellos sistemas pobremente documentados se podrá comprender su núcleo al leer los fuentes, así como también reducir el esfuerzo para comprenderlo todo en su conjunto. El riesgo parece también controlado: ya que es fácil verificar los resultados desde el principio. Incluso si las pruebas de integración final revelan problemas inesperados, este método ofrece "alertas de etapa inicial".

Cuando se compara con la construcción de un sistema completamente nuevo, la conversión permite preservar la funcionalidad, que es el activo principal, ahorrando una gran cantidad de tiempo y esfuerzo.

Además, la metodología de Reescritura permite preservar la calidad del código y facilitar el mantenimiento futuro.

Estrategia “línea a línea”

El éxito de la estrategia de reescribir “línea a línea” depende de varios factores clave: Establecer los objetivos de la transformación, organizar eficazmente un equipo multidisciplinar y asegurar un mecanismo continuo de retroalimentación y verificación.

Estrategia línea a línea

Definir bien los objetivos del sistema convertido

En primer lugar, es conveniente considerar  la arquitectura de destino requerida por el cliente y analizar luego los fuentes en detalle. Ambos aspectos proporcionarán pautas precisas sobre cómo orientar todo el proceso.

Caravel Express

Organizar el equipo

Debemos trabajar con un equipo multidisciplinar y diverso: expertos en COBOL o RPG, arquitectos, técnicos de Java, etc., de diferentes culturas y sensibilidades. Conseguir una buena comprensión e intercambio de conocimientos es esencial.

Caravel Express

Activar los puntos de control

Controlar el desarrollo del proyecto es fundamental. Una retroalimentación continua entre los objetivos definidos y los logros debe ayudar a mantener el curso del proyecto.

Caravel Express

Caravel Express: Punto de partidaIr al principio de la página

La herramienta Caravel Express se desarrolló inicialmente para ayudar al proceso de reescritura “línea a línea”. Su objetivo principal era el de ayudar a generar líneas de Java.

Después de una fase de análisis, las líneas de origen se transformaban automáticamente en sus equivalentes Java, lo que reducía la carga de reescritura manual, así como también costes y riesgos.

Después de la experiencia de millones de líneas convertidas, el análisis se volvió más preciso, por lo que en lugar de “uno a uno”, la herramienta comenzó a identificar patrones, es decir, un grupo de líneas funcionalmente relacionadas, aconsejando la mejor forma de convertirlo a una estructura Java. Las herramientas de codificación se hicieron más flexibles, con diferentes modelos de conversión, por lo que se acercaron aún más a las necesidades específicas de los clientes.

Como resultado, la herramienta ha aumentado drásticamente su precisión y su capacidad de conversión automática, alcanzando baremos entre el 80% y el 95% de las líneas heredadas. La capacidad de establecer modelos de conversión específicos en cada nivel ofrece una forma similar a una reingeniería asistida.

Caravel Express: Punto de partida

Visión general de Caravel ExpressIr al principio de la página

Express proporciona una solución altamente automatizada para la reescritura de sistemas Legacy.

Basándose en herramientas automáticas, Express transforma los fuentes Legacy a Java, siguiendo un modelo (Contrato de conversión) que tiene en cuenta las especificaciones del cliente y que cubre todos los aspectos: tecnología, arquitectura o calidad del código.

Después de un análisis detallado de los fuentes, realizado por Caravel Express, se construye el árbol semántico para cada objeto. De este modo se reconocen las estructuras y los patrones originales y se definen claramente las reglas de transformación.

La elaboración del Contrato de Conversión es la primera tarea a conseguir, y probablemente la más importante. De acuerdo con dicho documento, se personalizará la herramienta Express y se generará automáticamente el Java EE Primario, produciendo un código Java bien estructurado y orientado a objetos.

En base a esto, un equipo de técnicos de Java logrará la Codificación Final Manual, lo que significa un porcentaje reducido del esfuerzo de conversión.

Visión general de Caravel Express

Caravel Express permite configurar: arquitectura de capas, frameworks, tecnología, métodos de persistencia, reglas de codificación, restricciones…

Como hemos mencionado anteriormente, el punto clave del proceso es el “Contrato de Conversión”, que contendrá todos los requisitos que regirán la transformación.

El proceso de prueba finalizará este proceso de 3 pasos:

I. . Análisis automático y generación de código. Entregable: Java EE Primario.
II. Código Final Manual. Entregable: Java EE Final del sistema convertido.
III. Herramientas de pruebas. Entregable: Java EE Final del sistema convertido y certificado.

Contrato de Conversión. Herramienta de personalización Caravel ExpressIr al principio de la página

En el Contrato de Conversión se especificarán todas las reglas de conversión.

La herramienta Express se personalizará utilizando el mecanismo de especificación de reglas de Json.

Caravel Express

Especificaciones del Contrato de Conversión

Organización de capas.
Compatibilidad con Frameworks.
Reglas del modelo de datos.
Reglas de Sección y Párrafo. Patrones definidos.
Métodos de acceso a datos.
Arquitectura de gestión de acceso al servicio.
Reglas del modelo de flujo.
Avisos del sistema Legacy.
Definición del modelo JUnit.
Especificaciones de calidad del código.
Formatos de documentación.
Reglas de optimización de rendimiento.

Equipo de gestión: el problema de la productividadIr al principio de la página

Hágase una pregunta: ¿Quién es el mejor técnico para estar a cargo de un proceso de reescritura de COBOL/RPG a Java?

  • ¿Experto en Java, más asesoramiento de  COBOL/RPG...?
  • ¿Expertos de COBOL/RPG y programadores de Java Junior...?
  • ¿Ambos?, ¿ninguno de los dos?

Conformar un equipo de reescritura significa: objetivos, saber hacer, directivas, supervisión, verificación, reuniones, comités, ...

El punto clave del proceso es la organización efectiva de un Equipo de Reescritura no homogéneo.

Java EE primario se sincroniza automáticamente con cada tarea individual.

Todo el mundo sabe qué hacer en cada momento.

Caravel Express

Java EE Primario: el mecanismo de alineaciónIr al principio de la página

Java EE Primario incluye toda la información que necesitan los miembros del Equipo de Reescritura.

En un entorno homogéneo, el progreso es fácil de medir y verificar. El proceso está bajo control efectivo en todo momento.

Actividades y entregablesIr al principio de la página

La reingeniería es ejecutada por un equipo de programadores que transforman y reescriben manualmente cada rutina de código en Java puro.

El código Java resultante seguirá las especificaciones del cliente.

BASE100 proporciona un conjunto de servicios orientados a reducir y simplificar las actividades de los programadores y ayudando a asegurar la fecha de entrega del proyecto. En total: 6 actividades, con 5 entregas relacionadas:

  1. Gestión y análisis de los fuentes Legacy.
  2. Construcción y entrega de árboles semánticos de cada rutina Legacy.
  3. Construcción y entrega del esquema de clases Java correspondientes a rutinas Legacy de acuerdo a la arquitectura de capas de la organización del cliente.
  4. Construcción y entrega de clases Java correspondientes a la estructura de datos incluida en cada rutina Legacy. En consecuencia, estas clases serán referenciadas en los esquemas proporcionados en el entregable III.
  5. Construcción y entrega de los métodos Java correspondientes a los párrafos COBOL y RPG originales. Cada método será el resultado de traducir el párrafo original Legacy a la nomenclatura de Java utilizando CamelCase. Estos métodos se colocarán en su clase de lógica de negocios.
  6. Construcción y entrega de las instrucciones de flujo. La instrucción Legacy original que representa el flujo lógico se traducirá a un código equivalente de Java apropiado (o pseudocódigo si es necesario). Creación y entrega de JUnits y documentación.

Estadísticas y metodologíaIr al principio de la página

Caravel Express produce:

La metodología Express garantiza una transformación uniforme, fácil de verificar y medir, manteniendo el equipo coordinado durante todo el proyecto, simplificando el proceso de reescritura y aumentando la productividad.

Cada miembro del equipo tiene objetivos claramente definidos, su trabajo está 100% especificado en el fuente Java Primario.

Caravel Express resuelve:

Una vía de conversión abierta a mejora continua. En cualquier momento, el Contrato de Conversión puede ser revisado y mejorado.

Incluso las partes convertidas ya implementadas en producción se pueden reconvertir para introducir nuevas características que cumplan con los nuevos requisitos.

Todos los componentes del equipo tienen la capacidad de verificar y dar una retroalimentación válida a lo largo de todas las etapas del proceso.

Todos los aspectos de la herramienta Express se pueden modificar y, después de producir una nueva conversión rápida, se vuelven a probar en un proceso de mejora continua y certificación.

El progreso del proyecto proporciona la experiencia operacional que Caravel Express está en disposición de utilizar.

Metodología Caravel Express

Certificación ISO 9001
Certificación ISO 15504
Pyme Innovadora