TicXML: Generando diferentes interfaces de usuario finales a partir de una única especificación declarativa

Para lograr que los humanos interactuaran con las máquinas se han venido desarrollando Interfaces de Usuario como punto de contacto y diálogo entre ambos. Con el desarrollo de la tecnología y la implantación de sistemas en múltiples escenarios, surge una gran diversidad de Interfaces de Usuarios diferentes.

En el contexto en el que se sitúa este proyecto final de carrera, el de la informática, cuenta con multitud de interfaces ya que cualquier interacción realizada entre usuario y ordenador se ha de realizar mediante una Interfaz de Usuario. En ocasiones el usuario se encuentra con gran cantidad de interfaces diferentes que intentan expresar lo mismo, pero cada una con un estilo determinado. Esta circunstancia unida a la faraónica tarea de tener que desarrollar un mismo sistema cada vez que se quiere implantar en una nueva plataforma, ha llevado a la investigación de una solución que resuelva la problemática presentada.

La solución pasa por utilizar modelos que puedan recoger los aspectos más relevantes de las Interfaces de Usuario. En este sentido, la arquitectura dirigida por modelos (MDA, Model Driven Architecture) resulta ser un respaldo a la idea presentada, donde se aboga por que los modelos dejen de ocupar el papel de meras representaciones con pretensiones de documentación para pasar a ser elementos activos en el proceso de desarrollo del software. Estos modelos servirán como base para realizar transformaciones sobre ellos con el objetivo de obtener implementaciones o ejecuciones de forma automática.

Para obtener un modelo de la Interfaz de Usuario se estudian las propuestas existentes en este sentido, optando por escoger los modelos presentados por la propuesta de UsiXML. El proyecto final de carrera tiene como punto de partida el modelo de interfaz de usuario a nivel concreto de la propuesta anteriormente citada.

Comúnmente las Interfaces de Usuario son implementadas sobre alguno de los lenguajes de programación, se opta por escoger dos que se consideran representativos; en primer lugar se tratará con el lenguaje orientado a objetos Java, que pasa por ser uno de los más populares en la época en la que se trata el proyecto; en segundo lugar se tratará con el lenguaje etiquetado HTML, que puede considerarse como el más utilizado para soportar páginas web en Internet.

Para transformar el modelo de la interfaz en alguno de los lenguajes de programación es necesario definir una serie de ideas y técnicas que permitan transformar el modelo en código. Para su puesta en práctica se usa el lenguaje de transformación XSLT que sirve como soporte para realizar las transformaciones mediante plantillas.

El proyecto final de carrera lleva asociado la construcción de la herramienta TicXML, que se encarga de dar soporte a la metodología
presentada, ofreciendo al usuario la posibilidad de realizar las transformaciones de una forma sencilla y transparente. Esta herramienta contribuye al desarrollo de UsiXML integrándose en el organigrama de las herramientas disponibles para la citada propuesta.

Las principales conclusiones que se obtienen de la realización del Proyecto Fin de Carrera pasan por señalar la necesidad de utilizar el modelado, considerándolo especialmente interesante como parte activa del proceso de ingeniería del software. El seguimiento de la filosofía presentada, así como la implantación del sistema desarrollado (o alguno similar a él, adaptado y/o ampliado a cada necesidad), facilitaría enormemente la construcción en multitud de plataformas, así como la migración entre ellas, consiguiendo algo muy importante en cualquier industria, ahorro en tiempo y costes.
M.Sc. thesis
University of Castilla-La Mancha, Albacete, Spain, September 2007
2007