Resultados generados en el proyecto GEMA - Enxenio 

 
[Página de resultados en la web de Enxenio]

Como ya se indicó, el trabajo de investigación debía dar como resultado 3 prototipos de aplicaciones de gestión de trabajadores móviles para cada una de las tres empresas no tecnológicas del consorcio. Estos prototipos constituyeron los objetivos tecnológicos del proyecto. 

Los resultados generales de la investigación se describen en el sitio web del CITIC, ya que los investigadores de ese centro fueron los responsables de ellos. Del mismo modo, el sitio web de cada empresa describe el prototipo realizado para ella. Por tanto, aquí solo describimos el trabajo realizado por y para Enxenio. 

Cabe señalar que la pandemia, con confinamiento primero y restricciones de contacto después que llevaron al personal de Enxenio al teletrabajo, ha obstaculizado el desarrollo del trabajo. Sin embargo, a pesar de estos retrasos, hemos logrado alcanzar todos los objetivos del proyecto y hemos desarrollado todas las aplicaciones hasta su actual fase de prototipo que, tras un proceso de pruebas de campo y los consiguientes ajustes, será plenamente funcional en el futuro. 

Como resultado del proyecto, Enxenio ha desarrollado una herramienta para la generación automatizada del código fuente de aplicaciones de gestión de trabajadores móviles (HGAGTM). Para esta herramienta hemos extraído componentes y funcionalidades de estos los tres prototipos de aplicaciones GTM desarrollados en las aplicaciones GTM de los objetivos tecnológicos verticales, generalizándonos y adaptándolos a un uso más general. Esto es necesario ya que los productos generados por HGAGTM no pueden ser específicos a ninguna empresa o dominio concreto, si no que han de ser suficientemente genéricos como para poder ser usados por cualquier empresa con necesidades de GTM. 

Los componentes o core assets extraídos de cada prototipo se han modificado para adaptarlos a una arquitectura común, diseñada también teniendo en cuenta las particularidades del dominio, de forma que pueden ser ensamblados cuando se genera un producto que los usa. El enfoque seguido para la construcción de la herramienta es el de Líneas de Producto Software (LPS), un campo de investigación que goza cada vez de más popularidad. En el camino para poder hacer productos genéricos, hemos tenido que ir más allá de lo que nos propone una LPS pura, incluyendo en nuestro motor de derivación, la pieza que se encarga de ensamblar los componentes, capacidades de transformación de código a partir de modelos. Para llevar a cabo esas transformaciones ha sido necesario contar con plantillas con anotaciones de una forma específica que encajen que con el resto de los componentes del producto. Para este proceso nos hemos basado en lo que en la industria se conoce como scaffolding. 

Además del motor de derivación (y scaffolding) y de los componentes (y plantillas de transformación), es necesario contar con una forma de confeccionar o configurar los productos. Para esto hemos diseñado un lenguaje específico de dominio que se representa en formato JSON, y que es interpretable por el motor de derivación. Evidentemente, no podemos pedir a los usuarios de la herramienta que escriban en JSON directamente, por lo que hemos diseñado una interfaz web para nuestra HGAGTM. En esta interfaz de especificación permitimos al analista diseñar el modelo de datos de la aplicación resultantes utilizando un diagrama de clases UML (Figura 1), y seleccionar las funcionalidades que desea para una aplicación concreta (Figura 2). La lista de funcionalidades está relacionada con los componentes GTM, aunque también hemos incluido funcionalidades clásicas necesarias en cualquier página web empresarial, como gestión de usuarios y autenticación, o listados y formularios para las entidades definidas.  

Figura 1: Interfaz de HGAGTM para la definición del modelo de datos de un producto utilizando un diagrama de clases UML

Figura 2: Interfaz de HGAGTM para la selección de funcionalidades de un producto

Una vez el analista termina la especificación de un producto, puede generar el código fuente del mismo con un simple click. También tiene la opción de almacenar la especificación diseñada en la base de datos de la herramienta, de forma que puede volver a generarlo o modificarlo posteriormente. 

Las interfaces de los componentes GTM del producto generado, extraídos de los prototipos desarrollados por las otras empresas del consorcio, son totalmente funcionales. Podemos ver un ejemplo de la planificación de un empleado en la imagen de la Figura 3. Vemos que tiene aspecto de tablero o dashboard, y cuenta con un mapa que muestra tanto la posición del empleado como de los clientes que tiene que visitar, así como una lista de los mismos ordenados cronológicamente y con enlaces a sus fichas individuales, donde se pueden ver más detalles de los mismos. Además, en esa misma imagen vemos la lista de componentes de análisis de movilidad incluidos en el producto.

Figura 3: Planificación de un empleado en un producto generado por HGAGTM.

Sin ánimo de ser exhaustivos, el producto generado por la LPS incluye un planificador, funcionalidad para recibir las trayectorias de los trabajadores desde un app móvil, los algoritmos para identificar las actividades semánticas realizadas por los trabajadores, la funcionalidad para almacenar las trayectorias semánticas de modo comprimido en una estructura compacta, la funcionalidad para explotar las trayectorias semánticas, y una interfaz amigable que facilite a la gerencia de la empresa la explotación de las trayectorias facilitándole analizar el seguimiento real de las planificaciones.