Guizmo: un framework para modernización basada en modelos de interfaces de usuario
Este proyecto se enmarca dentro del área de modernización de software dirigida por modelos y se apoya sobre los resultados obtenidos previamente por el grupo Modelum, en concreto en los obtenidos en el anterior proyecto Seneca: el desarrollo del lenguaje Gra2MoL para la extracción de modelos de código fuente y la definición de un proceso para aplicar ADM, una iniciativa del OMG que ha propuesto metamodelos estándar para promover la interoperabilidad entre herramientas de modernización. Además se aprovechó la colaboración el grupo Onekin para crear un DSL para extraer modelos de tuplas en una base de datos relacional, aprovechando la experiencia con Gra2MoL y RubyTL.
En este contexto, el presente proyecto se ha planteado para abrir una nueva línea de trabajo en modernización de aplicaciones centrada aprovechar el potencial de los modelos en la ingeniería inversa aplicaciones, y que se soportará en las herramientas y procesos creados con anterioridad por el grupo.
El objetivo de este proyecto es construir un framework de modernización de interfaces gráficas de usuario (Graphical User Interfaces, GUI) de aplicaciones legacy. Por ejemplo, la modernización de antiguas interfaces de aplicaciones RAD (Rapid Application Developement) a nuevas plataformas como Java o .Net. El proceso de modernización soportado por este framework considerará las tres etapas fundamentales de los procesos de reingeniería: ingeniería inversa para obtener una representación de alto nivel del sistema heredado, reestructuración para adaptar el sistema existente a las características de la tecnología destino, e ingeniería directa para generar código para un lenguaje, tecnología o plataforma concreta.
Además, dado que queremos trabajar con modelos, pues se trata de una aproximación DSDM, es necesario establecer un puente entre el espacio tecnológico de las gramáticas y el de los modelos, y por este motivo también se soportará una etapa inicial de inyección que tiene como objetivo la obtención de modelos a partir de artefactos fuente. El framework se centrará en la etapa de ingeniería inversa, que es la más compleja del proceso, y permitirá la generación automática de una representación de alto nivel del sistema original. A partir de esta representación, el sistema ofrecerá módulos de reestructuración e ingeniería directa para generar código para distintas plataformas, como por ejemplo aplicaciones para dispositivos móviles o aplicaciones web.
Se continuará la colaboración con el grupo Onekin que ha dado lugar a varios trabajos publicados en revistas JCR. En esta ocasión la colaboración aprovechara la amplia experiencia que Onekin tiene en el ámbito de las tecnologías web, y que necesitamos para abordar la migración de sistemas web heredados, o bien de modernizaciones en las que se desea migrar a la plataforma web.