Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
Modelización y diseño interactivo de interfaces con estructura dinámica P. Castells, F. Saiz, R. Moriyón, F. García E.T.S. Informática, Universidad Autónoma de Madrid { pablo.castells | roberto.moriyon | francisco.saiz | federico.garcia } @ii.uam.es Resumen El actual panorama tecnológico demanda aplicaciones interactivas cada vez más flexibles y complejas, capaces de responder a una creciente dispersión y hetero- geneidad de la información, de las plataformas y de los usuarios. En esta ponencia se describe el desarrollo de nuevas herramientas de diseño y soporte de interfaces de usuario capaces de definir y ajustar su propia estructura en función de diferen- cias en la información, los usuarios u otros factores, que no se conocen hasta el momento de la ejecución del software. Nuestro trabajo incluye el desarrollo de dos sistemas de modelización y soporte de presentaciones y tareas de usuario, una herramienta de autor interactiva para presentaciones avanzadas, así como la aplicación de las técnicas desarrolladas a la construcción de tutores interactivos. Palabras clave: interfaces de usuario, diseño de sistemas interactivos, herramien- tas de diseño, interfaces basadas en modelos, programación mediante ejemplos. 1 Introducción La rápida expansión de las tecnologías de la información plantea nuevas demandas para el software que ha de mediar entre las aplicaciones y las personas. Las nuevas aplicaciones tienen que manejar una información sujeta a variaciones, dispersa y heterogénea, y responder a la creciente diversificación de usuarios y plataformas. A nivel de las interfaces de usuario, esto significa que en muchos casos no es posible concebir de antemano soluciones satisfactorias en términos de una presentación gráfica fija y una estructura predeterminada de diálogo con el usuario. Las herramientas de desarrollo de interfaces de usuario de uso común hoy en día no dan un soporte adecuado para este tipo de necesidades, por lo que o bien se producen soluciones obsoletas, o bien una gran parte del desarrollo se lleva a cabo con lenguajes programación de propósito general y frameworks de bajo nivel, dando lugar a un desarrollo difícil, costoso, y propenso a errores. La creación de herramientas de alto nivel para el desarrollo de interfaces que soporten expresamente los aspectos dinámicos es un problema difícil en general, por lo que sigue siendo un campo activo de investigación. En este artículo se describe el trabajo realizado por nuestro grupo en la línea del desarrollo de nuevas herramientas de diseño y soporte de interfaces que, en uno u otro aspecto, son capaces de definir, ajustar o ampliar su propia estructura y funcionalidad en función de diferencias en la información, los usuarios, sus acciones, el estado del programa u otros factores que se concretan y pueden cambiar en el momento de la ejecución del software. Nuestro trabajo en esta dirección se ha centrado en los siguientes aspectos (ver figura 1): § Un sistema de presentación, para la modelización y generación de la componente visual de las interfaces, que soporta el flujo dinámico de datos, así como la construcción de presentaciones iterativas, recursivas y condicionales. § Una herramienta de autor complementaria al sistema de presentación, para el diseño interactivo de modelos de la presentación mediante manipulación directa y programación basada en ejemplos. § Un sistema de representación de tareas de usuario para una descripción de alto nivel de la funcionalidad de las interfaces, que permite el análisis de la actividad del usuario en tiempo de ejecución. § Una herramienta basada en el modelo anterior, para la generación de tutoriales de aplicaciones arbitrarias a partir de la modelización de tareas. 2 Interfaces basadas en modelos Una interfaz con capacidad para ajustarse automáticamente a un entorno cambiante requiere una representación adecuada de sus propias componentes, tanto para razonar sobre ellas como para construirlas o modificarlas. Frente a la realización de las interfaces como una suma de componentes estándar y eventos de bajo nivel, a partir de la cual las características del diseño resultan difícilmente reconocibles, el llamado paradigma basado en modelos [1] propone la modelización las interfaces mediante descripciones declarativas (modelos) que incluyan explícitamente información semántica de alto nivel sobre el diseño, y relativa, en particular, a los aspectos que han de ser objeto de actualización y construcción dinámica. Siguiendo esta filosofía, hemos desarrollado un sistema de presentación [2], a partir de los sistemas de presentación de Humanoid [3] y Mastermind [4], para la modelización, generación y ejecución de la componente visual (presentación) de las interfaces. En nuestro sistema, el diseñador construye modelos de las interfaces en un lenguaje textual de alto nivel, a partir del cual el sistema genera código C++ basado en Amulet [5], una toolkit que incorpora un sistema de programación con restricciones sobre campos de objetos. El sistema de presentación incluye así mismo un módulo propio de soporte a la ejecución para las interfaces generadas. Nuestro modelo de la presentación permite la especificación de interfaces en las que el número, aspecto, y tipo de las componentes varían en función del espacio disponible, las capacidades del hardware, o las características de los datos que afectan a la interfaz. Concretamente, permite establecer dependencias en las propiedades de los objetos gráficos respecto de cualquier dato de la aplicación, así como la definición de componentes basadas en iteraciones, recursión y condicionales, de tal forma que estas estructuras de control se recomputan automáticamente cuando cambian los datos de los que dependen. Todo ello permite reflejar en el diseño datos de distinto tipo con un alto grado de libertad. Con este sistema es posible diseñar, por ejemplo, un plano dinámico del metro que refleje la posición de los trenes y otro tipo de información en tiempo real, mostrando mayor o menor cantidad de información y detalle en función de la resolución de la pantalla del dispositivo desde el que se está operando. Figura 1. Componentes para la construcción de interfaces dinámicas Así mismo hemos desarrollado una versión del sistema de presentación para la visualización de datos relacionales a través de la web [6], con capacidades similares a las descritas, añadiendo además la posibilidad de adaptar la presentación de la información a las preferencias y perfil de los usuarios. Este sistema genera páginas HTML dinámicamente a partir de a) los datos almacenados en una base de datos, b) un metamodelo de datos que permite extender el modelo relacional con nuevas propiedades y descripciones asociadas a las estructuras de datos, c) una descripción de la presentación, mediante una extensión del lenguaje HTML que permite expresar distintos tipos de selección y procesamiento de los datos, d) un perfil de usuario en función del cual se personaliza automáticamente la presentación de los datos y e) un conjunto de reglas de estilo para definir presentaciones condicionales. El sistema permite establecer, por ejemplo, que los valores de un campo de texto ocupen una columna de una tabla, o por el contrario se muestren como una lista HTML, dependiendo de la extensión del texto visualizado, utilizando al mismo tiempo distintos colores de fondo para destacar o agrupar visualmente los datos que cumplen ciertas propiedades o relaciones. 3 Modelización de tareas Junto con el sistema de modelización de la presentación, hemos desarrollado un sistema para la modelización del diálogo con el usuario, basado en una descripción de las tareas que el usuario final puede llevar a cabo con la interfaz. Este modelo es similar al que utilizan otras herramientas como Mastermind [4] y MOBI-D [1], y consiste en una descomposición jerárquica que pone en relación las tareas abstractas del dominio de aplicación (emitir una factura, dar de alta a un paciente, planificar calendarios laborales),con subtareas y acciones elementales de interac- ción básica propias de la interfaz (pulsar botones, escribir texto, arrastrar iconos). En nuestro sistema, el modelo de tareas no se utiliza para generar las interfaces. La capacidad expresiva del modelo funcional descendente, propio de las tareas, resulta limitada para describir por completo la funcionalidad de una interfaz, definida me- diante programación basada en eventos, por poco compleja que sea. El modelo de tareas desempeña en nuestro sistema un papel descriptivo, con vistas a su utiliza- ción por otras herramientas que generan servicios añadidos en tiempo de ejecución, y que requieren un análisis del diálogo que lleva a cabo el usuario con la interfaz. A partir de este modelo, hemos desarrollado una herramienta, CACTUS [7], para el diseño de tutores de aplicaciones, que basan la enseñanza en a) unos contenidos explicativos transmitidos en forma de hipertexto mediante una metáfora de libro de texto, y b) la instrucción práctica utilizando la propia interfaz de la aplicación, bajo el control del programa tutor. En el segundo caso, el tutor utiliza el modelo de ta- reas para el seguimiento automático de las actividades de los usuarios, permitiendo proporcionar feedback a los usuarios y evaluar sus conocimientos de manera con- tinua. CACTUS incorpora además la capacidad de emular, esto es, ejecutar por sí mismo, tareas abstractas de alto nivel de la interfaz sin la intervención del usuario. 4 Herramientas de autor Los sistemas descritos en los apartados anteriores permiten la construcción de un amplio rango de interfaces, presentaciones dinámicas y servicios en tiempo de ejecución, utilizando un conjunto relativamente pequeño de primitivas de alto nivel. No obstante, la utilización de estas herramientas sigue requiriendo un esfuerzo importante por parte del diseñador, ya que éste tiene que aprender un lenguaje de especificación, comprender el funcionamiento del sistema soporte y la forma en que se generan las interfaces en tiempo de ejecución. Por este motivo, hemos complementado el sistema de presentación descrito en el apartado 2 con una herramienta de autor interactiva, HandsOn [8], más intuitiva y ergonómica, de una facilidad de uso comparable a la de los constructores de inter- faces como los que integran Visual Basic o Delphi. Con HandsOn el diseñador tra- baja en un entorno gráfico similar al de estas herramientas. La salida de HandsOn es un modelo de la interfaz que sirve de input para el sistema de presentación. En general las herramientas de autor son más fáciles de usar cuanto menor es la diferencia entre la representación manipulada por el diseñador y el resultado final. La dificultad estriba, en nuestro caso, en que la interfaz como tal no existe en tiempo de diseño, puesto que depende de condiciones que no se conocen hasta el momento de la ejecución. Para resolver este problema HandsOn, utilizando técnicas de programación mediante ejemplos [9], permite que el diseñador construya, en lugar de presentaciones genéricas y abstractas, ejemplos concretos de la interfaz utilizando ejemplos concretos de los datos, creados por él mismo en el propio entorno de edición. La herramienta examina las acciones del diseñador, analiza los ejemplos creados, infiere la intención del autor, y generaliza los ejemplos, generando un modelo abstracto listo para ser procesado por el sistema de presentación, que genera y gestiona la interfaz ejecutable. Las técnicas de programación mediante ejemplos han sido aplicadas también para la construcción de modelos de tareas. En concreto, hemos completado el sistema CACTUS, descrito en el apartado anterior, con un entorno de edición para los diseñadores, en el que tanto los libros de texto como las prácticas se pueden diseñar bien con un lenguaje textual, o bien de forma interactiva mediante técnicas de programación mediante ejemplos. Este entorno se ha utilizado para la enseñanza de sistemas de simulación digital continua, como el sistema solar o las ecuaciones de Volterra. También se ha usado para generar cursos tutores para un entorno de diseño orientado a objetos asistido por ordenador. Además, se han hecho pruebas con una agenda electrónica y, finalmente, hemos generado cursos acerca de Schoodule, una aplicación que utiliza una base de datos y un resolvedor de res- tricciones para planificar horarios de centros docentes. Nuestros planes de trabajo para el futuro próximo incluyen la ampliación de estas ideas para manejar en este tipo de entornos una representación gráfica de un modelo del usuario. Actualmente estamos desarrollando una herramienta de autor para la construcción de cursos adaptativos, que integra en un mismo entorno un modelo de tareas que describe las actividades de aprendizaje del curso, un modelo de la presentación de los cursos, y un modelo del usuario, de tal forma que el dise- ñador, mediante la manipulación gráfica de estos tres modelos, puede establecer dependencias entre la interfaz del curso y las características de los estudiantes. Referencias [1] A. R. Puerta, “A Model-Based Interface Development Environment”, IEEE Software, v. 14, nº 4, 1997, pp. 40-47. [2] P. Castells, P. Szekely and E. Salcher, “Declarative Models of Presentation”, proc. International Conference on Intelligent User Interfaces (IUI'97), Orlando (Florida), 1997, pp. 137-144. [3] P. Szekely, P. Luo, and R. Neches, “Beyond Interface Builders: Model-Based Interface Tools”, proc. Conference on Human Factors in Computing Systems (INTERCHI’93), Amsterdam, 1993, pp. 383-390. [4] P. Szekely, P. Sukaviriya, P. Castells, J. Muthukumarasamy and E. Salcher, “Declarative Interface Models for User Interface Construction: The Mastermind Approach”, en “Engineering for Human-Computer Interaction”, L. Bass and C. Unger (eds), Chapman & Hall, 1996, pp. 120-150. [5] B. A. Myers et al, “The Amulet Environment: New Models for Effective User Interface Software Development”, IEEE Transactions on Software Engineering, v. 23, nº 6, 1997, pp. 347-365. [6] F. Saiz, P. Szekely, D. Devang, “Customized Web-based Data Presentation”, proc. World Conference on the WWW, Internet and Intranet (WebNet’98), Orlando (Florida), 1998, pp. 792-798. [7] F. García, “CACTUS: Automated Tutorial Course Generation for Software Applications”, proc. International Conference on Intelligent User Interfaces (IUI’2000), New Orleans (Louisiana), 2000. [8] P. Castells and P. Szekely, “Presentation Models by Example”, en “Design, Specification and Verification of Interactive Systems '99”, D.J. Duke and A. Puerta (eds), Springer-Verlag, Viena, 1999, pp. 100-116. [9] A. Cypher (ed.), “Watch What I Do: Programming by Demonstration”, the MIT Press, 1993.
Compartir