RUP: Para desarrollos COBOL,JCL,DB2,CICS de alta calidad y asistido por IA.

USO DE RUP EN DESARROLLOS MAINFRAME (COBOL,JCL,CICS,DB2) ONLINE Y BATCH CON ASISTENCIA DE IA. PARA OBTENER APLICACIONES DE ALTA CALIDAD.

Una de las carencias que es frecuente encontrarse en los proyectos y desarrollos en entornos Mainframe con tecnología COBOL, JCL,DB2, CICS… es el uso de metodologías bien aplicadas. 

RUP: Proceso de Desarrollo Unificado (Rational Unified Process) aunque orientado a objetos es una muy buena metodología a aplicar, al menos hasta la fase de diseño, para proyectos en entorno host con COBOL, JCL,DB2,CICS.

En mis años de programador y analista me he encontrado desde proyectos “minimamente” bien tratados con su documentación (yo diria que con metodología orientada a la documentación, porque a parte de los documentos la metodología no la ves por ningún lado) un diseño funcional con diseño tecnico, documentacion de pruebas… 

Y auténticas aplicaciones caóticas donde entras en un mundo de cientos de programas y cadenas batch, transacciones, etc.. donde encontrar un rumbo es casi tarea imposible.

RUP bien aplicado genera software como “sota, caballo y rey”  de alta calidad. Es decir cumple funcionalidades acordadas,  plazos , costes y es altamente mantenible.

No me voy a detener mucho en RUP (quien quiera saber más, que estudie, y recomiendo la visión de mi profe Luis Fernández Luis Fernández Muñoz – Formación de Gestión de Proyectos Ágiles – Universidad Politécnica de Madrid | LinkedIn que creo es de los mejores docentes de este país, este es el master online que imparte y del que soy alumno: Máster de Desarrollo de Software (escuela.it) ).

Voy a centrarme en cómo aplicar sobre todo la fase de modelo del dominio y análisis para a partir de ahí poder desarrollar un proyecto con toda la garantía de RUP. Y como la IA nos puede ayudar en esta tarea. Cómo nos puede asistir en estas disciplinas.

Una de las características de RUP es que es un proceso dirigido por casos de uso, siendo este como la “unidad” que facilita el requisitar bien, establecer el comportamiento adecuado de la aplicación o sistema y de ahí tener una trazabilidad en todo el proceso fundamental para un software de calidad. Esta disciplina se puede aplicar sin ningúna restricción a proyectos en entornos mainframe como en cualquier otro, ya que no interviene para nada la tecnología ni la arquitectura en esta disciplina.

En la disciplina de Análisis, separandola del Diseño, se puede aplicar perfectamente la concepción de analizar en base al modelo MVC (modelo vista controlador) que para el que no lo sepa va más allá de los Framework para la web y es que todo proceso informático sea el que sea se puede organizar con esta metodología y de hecho es que no hay más: Tengo datos que me das o me muestras y los proceso. MODELO VISTA CONTROLADOR.

Y ya es a partir de aquí donde la cosa cambia al entrar en la fase de diseño ya que entrando en el mundo del Mainframe no hay clases ni métodos, ni herencias, etc… y todas esas cosas tan chulas de la programación orientada a objetos. Pero si tenemos PÁRRAFOS y SUBPROGRAMAS y COPYS .. y con eso nos basta.

La clave aquí sería hacer ese “traslado” de la fase de Análisis con nuestros MODELO VISTA CONTROLADOR definido, al diseño del  mundo Mainframe.

Este traslado no es sólo sencillo sino divertido. Por ejemplo:

Las VISTAS en procesos batch serán normalmente ficheros. (de entrada y de salida) o en online pueden ser nuestras pantallas de 3270 o commareas o una cola ts. Todo lo que pueda verse como punto de entrada y salida de información se puede considerar una vista.

Nuestro MODELO son nuestras estructuras de datos que pueden venir en ficheros, o en una tabla o en una cola ts. Los datos en sí (otra cosa es donde se almacenan tablas DB2, ficheros..)

y nuestros CONTROLADORES serán nuestros PROCESOS que manejen los modelos y se comuniquen con las vistas.

Así que se puede aplicar perfectamente RUP a estos desarrollos con una auténtica metodología más allá de documentaciones variadas.

Es evidente que esta tecnología tiene unas diferencias claras que hay que tener en cuenta una vez ya en la fase de diseño, pero veo una gran ventaja en usar esta metodología por mucho que esté pensada para el mundo orientado a objetos.

Es más, como el software de gestión que se suele implementar y desarrollar en estas áreas tecnológicas, realmente no tiene una complejidad excesiva. Es muy factible conseguir un alto grado de experiencia y especialización en los equipos que, una vez teniendo una buena base y experiencia en RUP se pueda incluso migrar al Extreme Programming o XP pero adaptado al COBOL, JCL, DB2,CICS.. 

COMO ME AYUDA LA IA

La IA nos puede ayudar mucho dándonos soporte para definir CASOS DE USO y para aclararnos en nuestro análisis a detectar los MODELOS LAS VISTAS Y LOS CONTROLADORES.

Y como ejemplo os pongo aqui algunas capturas con Chat GPT, echando un cable en definir los casos de uso de un sistema que recibe ficheros de alumnos y sus matriculaciones y en base a una tabla de tutores por asignatura y trimestre entrega un informe al alumno de que tutores tiene para este trimestre actual por asignatura en la que este matriculado.