Logo Studenta

Modelización y diseño interactivo de interfaces con Estructura Dinamica

¡Estudia con miles de materiales!

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.

Continuar navegando