XARE: Marco de desarrollo para sistemas colaborativos conscientes
Transcripción
XARE: Marco de desarrollo para sistemas colaborativos conscientes
CENTRO DE INVESTIGACIÓN Y DE ESTUDIOS AVANZADOS DEL INSTITUTO POLITÉCNICO NACIONAL UNIDAD ZACATENCO DEPARTAMENTO DE COMPUTACIÓN XARE: Marco de desarrollo para sistemas colaborativos conscientes de contexto Tesis que presenta Gabriela Sánchez Morales para obtener el Grado de Doctora en Ciencias en Computación Directores de la Tesis Dra. Sonia Guadalupe Mendoza Chapa Dr. Dominique Decouchant México, D.F. Diciembre 2013 ii iii Resumen Actualmente, la mayorı́a de las aplicaciones suponen que la interacción humano-computadora está confinada en un solo dispositivo de cómputo (e.g., una PC) donde el usuario emplea dispositivos de entrada/salida tradicionales (e.g., monitor, teclado y ratón). Sin embargo, la creciente proliferación de dispositivos de cómputo y el progreso de las redes de comunicación potencialmente transforman al usuario en un ente que se desenvuelve en un ambiente variable y que utiliza simultáneamente varios dispositivos de cómputo, con el fin de satisfacer sus necesidades. Esta variedad de dispositivos fijos y móviles (e.g., pizarrones electrónicos, tablets digitales, PDAs y teléfonos inteligentes) impone nuevos requerimientos a las aplicaciones, como la propiedad de adaptarse a cambios contextuales. Esta propiedad ha sido principalmente explorada en sistemas mono-usuario, generando la identificación de siete dimensiones entre las que destaca el contexto de uso definido en términos del usuario, de la plataforma y del entorno. Es sabido que la creación de aplicaciones mediante un marco de desarrollo permite que dichas aplicaciones adquieran “fácilmente” algunas de las caracterı́sticas definidas en el marco. Los pocos marcos de desarrollo, enfocados en adaptar a los sistemas colaborativos a cambios contextuales, han tomado algunas de las siete dimensiones diseñadas para los sistemas mono-usuarios sin realizar ninguna modificación sobre estas. La contribución de este trabajo de investigación se enfoca en dos aspectos principales. El primero provee la definición de contexto de uso de los sistemas colaborativos, la cual incluye el grupo de colaboradores, el conjunto de dispositivos en uso, ası́ como el entorno compartido, el cual puede ser fı́sico o virtual, e.g., documentos electrónicos. El segundo aspecto involucra la creación de un marco de desarrollo llamado XARE (conteXt-Aware groupwaRE) que facilita la creación de sistemas colaborativos sensibles al contexto, considerando cinco de las siete dimensiones previamente mencionadas. Este marco está acompañado por un conjunto de clases y mecanismos y fue creado a partir de un conjunto de escenarios y aplicaciones que nos permitieron expresar diversos tipos de adaptaciones. Palabras claves: Plasticidad de las interfaces de usuario, contexto de uso, remodelación de las interfaces de usuario, Interacción Humano-Computadora, sistemas colaborativos, marcos plásticos. iv Abstract Currently, most of the applications assume that human-computer interaction is confined to a single computing device (e.g., a PC) where the user employs traditional input/output devices (e.g, monitor, keyboard and mouse). However, the increasing proliferation of computing devices and the progress of communication networks potentially transform the user into an entity that operates in a changing environment and simultaneously uses various computer devices in order to satisfy his needs. This variety of stationary and mobile devices (e.g., electronic whiteboards, tablets, PDAs and smartphones) imposes new requirements on applications such as the capacity to adapt themselves to contextual changes. Adaptability has been mainly explored in single-user systems, leading to the identification of seven dimensions, among which the context of use defined in terms of the user, platform and environment is highlighted. It is known that the creation of applications using a development framework allows such applications to acquire some of the features defined in the framework. The few development frameworks focused on adapting groupware systems to contextual changes have taken some of the seven dimensions designed for single-user systems without applying any modification on them. The contribution of this research work is focused on two main aspects. The former one provides the definition of the context of use for groupware systems by including the group of collaborators, the set of devices in use and the shared environment, which can be physical or virtual, e.g, electronic documents. The latter aspect refers to the creation of a development framework called XARE (conteXt-Aware groupwaRE) that facilitates the creation of context-aware groupware systems by considering five of the seven dimensions previously mentioned. This framework is accompanied by a set of classes and mechanisms and was created from a set scenarios and applications that allowed us to express several types of adaptations. Key words: plasticity of user interfaces, context of use, remodelation of user interfaces, human-interaction computer, collaborative systems, plastic frameworks. v Agradecimientos CONACYT y CINVESTAV: Gracias por su apoyo para la realización de esta tesis. Dra. Sonia G. Mendoza y Dr. Dominique Decouchant: Gracias por su confianza, paciencia, apoyo y comprensión en el desarrollo de esta tesis. Mami: Gracias por ser la mamá que eres, gracias por dedicarnos tu vida a mi y a mis hermanos. Gracias por ser fuerte como un padre y cariñosa como una madre. Gracias por continuar luchando dı́a a dı́a. Te amo Chinitos. A mis hermanos: Rosy y Dany gracias por cuidarme desde los primeros dı́as de mi vida. Rebe, Aby y Maru gracias por apoyarme en todo momento. Gracias Pedro Miranda, Ivan M. Romero, Laura Granados y Sandra B y a los chicos de colima (Alex, y Gris) por su apoyo en la realización de está tesis. vi Gracias Sofia, Erica y Felipa por brindarme su comprensión, por ser mis amigas cuando más las necesite. Gracias José Luis, y Dr. Santiago por su apoyo. Creo que he visto un Baquero, gracias por tus consejos Rafa. Gracias Amilcar por todos los consejos profesionales y personales que me has brindado todo este tiempo. Gracias Kim, Ivone, Cheche, Dr. Guadalupe y mis compañeros del CINVESTAV. Gracias Gabriel, Lobatos y Ernesto por escucharme, apoyarme y hacerme reir en todo momento. Gracias Saad por todo. Gracias a todas las pesonas que en algún momento compartieron conmigo parte de está aventura en el CINVESTAV. vii Dedicatoria † Marı́a Eugenia Morales Aguilar Esta tesis se la quiero dedicar a mi mamá, Marı́a Eugenia Morales Aguilar, por que ella fué y ha sido un ejemplo a seguir, por que cada una de tus lecciones las llevaste a cabo, por ejemplo: seguir en pie frente a la vida sin importar las adversidades, ya que hasta el último dı́a de tu vida tú luchaste. Recuerdo que cuando eramos pequeños mis hermanos y yo solias contarnos cuentos antes de dormir, la mayorı́a train moraleja, incluso muchos de esos cuentos los cambiabas tú para que nos dieras una lección de vida. Se que si hubieses vivido más tiempo me hubieses enseñado más cosas, pero era tiempo que te fueras y te agradezco todo el tiempo que me diste, espero yo algún dı́a ser como tú. Tú sabes el esfuerzo que hubo detrás de está tesis, por eso quiero dedicartela. Te amo mamá, yo sé que estas palabras las escuchaste muchas veces, pero no me cansaré de decirlas aún cuando ya no estes aquı́. viii Índice general Índice de figuras ix Índice de tablas xi 1 Introducción 1 1.1 Trabajo Cooperativo Asistido por Computadora . . . . . . . . . . . . . . . . . . 1 1.2 Interacción Humano-Computadora . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.3 Contexto de investigación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 1.4 Planteamiento del problema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 1.5 Objetivos del proyecto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 1.6 Organización del documento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 2 Interfaces de usuario plásticas en sistemas interactivos 13 2.1 Problemas encontrados en las interfaces de usuario plásticas multi-modales . . . 13 2.2 Percutores de plasticidad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 2.2.1 Remodelación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 2.2.2 Redistribución . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 2.2.3 Migración . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 2.3 Granularidad de adaptación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 2.4 Granularidad de recuperación del estado . . . . . . . . . . . . . . . . . . . . . . 29 2.5 Despliegue de la interfaz de usuario . . . . . . . . . . . . . . . . . . . . . . . . . 30 ix x ÍNDICE GENERAL 2.6 Cobertura del contexto de uso . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 2.7 Cobertura de espacio tecnológico . . . . . . . . . . . . . . . . . . . . . . . . . . 35 2.8 Meta-interfaz de usuario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 2.9 Otras dimensiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 2.9.1 Tipo de adaptación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 2.9.2 Sistemas mono-entidad o multi-entidad . . . . . . . . . . . . . . . . . . . 39 2.9.3 Variables contextuales . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 2.10 Sı́ntesis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 3 Marcos de desarrollo de sistemas plásticos 43 3.1 Marco de Referencia Unificado para Interfaces de Usuario Multi-Objetivo . . . . 44 3.1.1 Modelos ontológicos, arquetı́picos y observadores . . . . . . . . . . . . . . 44 3.1.2 Implementación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 3.2 CAMELEON-RT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 3.2.1 Capas de sistemas interactivos, DMP y plataforma . . . . . . . . . . . . 49 3.2.2 Implementación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 3.3 Marco de Plasticidad Implı́cita . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 3.4 Marco de Plasticidad Explı́cita Colaborativa . . . . . . . . . . . . . . . . . . . . 53 3.4.1 Fases ARP, CRP, IMP y PIM . . . . . . . . . . . . . . . . . . . . . . . . 54 3.4.2 Implementación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 3.5 Marco para la Adaptación de la Conciencia de Contexto en Despliegues Públicos 56 3.6 Marco y Arquitectura para Recomendaciones de Conciencia de Contexto Grupal 59 3.7 Marco Genérico de Contexto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 3.7.1 Capas de conocimiento, estado, contextualización y adaptación . . . . . . 61 3.7.2 Implementación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 3.8 Análisis comparativo de los marcos analizados . . . . . . . . . . . . . . . . . . . 65 3.9 Sı́ntesis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 ÍNDICE GENERAL 4 Análisis de requerimientos del marco XARE xi 73 4.1 Contexto de uso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 4.1.1 Contexto de uso de los sistemas mono-usuario . . . . . . . . . . . . . . . 74 4.1.2 Contexto de uso de los sistemas colaborativos . . . . . . . . . . . . . . . 75 4.2 Relación entre escenarios y aplicaciones . . . . . . . . . . . . . . . . . . . . . . . 76 4.3 Escenario 1: Mejoramiento del trabajo colaborativo . . . . . . . . . . . . . . . . 79 4.3.1 Preámbulo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 4.3.2 Descripción del escenario . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 4.3.3 Desktop enriquecido . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 4.4 Escenario 2: Remodelación de la interfaz de usuario . . . . . . . . . . . . . . . . 89 4.4.1 Preámbulo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 4.4.2 Descripción del escenario . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 4.4.3 Editor de mapas mentales . . . . . . . . . . . . . . . . . . . . . . . . . . 93 4.5 Escenario 3: Redistribución de una aplicación colaborativa . . . . . . . . . . . . 97 4.5.1 Preámbulo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 4.5.2 Descripción del escenario . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 4.5.3 Herramienta de votación . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 4.6 Escenario 4: Mejoramiento de la conciencia grupal . . . . . . . . . . . . . . . . . 106 4.6.1 Preámbulo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 4.6.2 Descripción del escenario . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 4.6.3 Herramienta disponibilidad y medios de contacto . . . . . . . . . . . . . 111 4.7 Escenario 5: Manejo de intromisiones . . . . . . . . . . . . . . . . . . . . . . . . 113 4.7.1 Preámbulo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 4.7.2 Descripción del escenario . . . . . . . . . . . . . . . . . . . . . . . . . . . 114 4.8 Escenario 6: Suministro de información relevante . . . . . . . . . . . . . . . . . 115 4.8.1 Preámbulo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 4.8.2 Descripción del escenario . . . . . . . . . . . . . . . . . . . . . . . . . . . 116 xii ÍNDICE GENERAL 4.8.3 Herramienta administrador de contenidos vı́a NFC . . . . . . . . . . . . 118 4.9 Escenario 7: Notificaciones multi-modales . . . . . . . . . . . . . . . . . . . . . 120 4.9.1 Preámbulo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120 4.9.2 Descripción del escenario . . . . . . . . . . . . . . . . . . . . . . . . . . . 121 4.10 Sı́ntesis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122 5 Diseño del marco XARE 125 5.1 Diagramas de clases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125 5.1.1 Contexto de uso de los sistemas colaborativos . . . . . . . . . . . . . . . 126 5.1.2 Componente observador . . . . . . . . . . . . . . . . . . . . . . . . . . . 130 5.2 Mecanismos del marco XARE . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134 5.2.1 Mecanismo de similitud de actividades . . . . . . . . . . . . . . . . . . . 134 5.2.2 Mecanismo de disponibilidad de un colaborador . . . . . . . . . . . . . . 136 5.2.3 Mecanismo de medios de contacto . . . . . . . . . . . . . . . . . . . . . . 138 5.2.4 Mecanismo de ocultar, sustituir y mostrar componentes . . . . . . . . . . 140 5.2.5 Mecanismo para la creación de referencias deı́cticas . . . . . . . . . . . . 141 5.2.6 Mecanismo de proximidad lógica . . . . . . . . . . . . . . . . . . . . . . 143 5.2.7 Mecanismo ubicación fı́sica . . . . . . . . . . . . . . . . . . . . . . . . . . 145 5.3 Marco XARE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146 5.4 Sı́ntesis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150 6 Funcionamiento del marco XARE 153 6.1 Instancias del marco XARE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153 6.2 API de comunicación entre las capas . . . . . . . . . . . . . . . . . . . . . . . . 155 6.3 Sı́ntesis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162 7 Conclusiones y trabajo a futuro 163 7.1 Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164 7.2 Trabajo a futuro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168 ÍNDICE GENERAL xiii A Publicaciones 171 Referencias 173 xiv ÍNDICE GENERAL Índice de figuras 1.1 Visión general de la interacción multimodal mediante un enfoque centrado en el usuario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 1.2 Contexto de investigación de este proyecto doctoral . . . . . . . . . . . . . . . . 7 1.3 Organización del documento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 2.1 Espacio del problema de las interfaces de usuario plásticas multimodales . . . . 15 2.2 Remodelación en el sistema de control de calefacción . . . . . . . . . . . . . . . 18 2.3 Todos los niveles de redistribución en el sitio Web de Sedan-Bouillon . . . . . . 20 2.4 Niveles de redistribución de Roomware: de centralizada a centralizada (desde “c” hacia “a”), de centralizada a distribuida (desde “a” hacia “b”) y de distribuida a centralizada (desde “b” hacia “c”) . . . . . . . . . . . . . . . . . . . . . . . . . 21 2.5 Niveles de redistribución de CamNote: de centralizada (en una PC) a distribuida (entre una PC y una pocket PC) y viceversa . . . . . . . . . . . . . . . . . . . . 22 2.6 Niveles de redistribución de ConnecTables: de centralizada a distribuida y viceversa 22 2.7 Niveles de redistribución de MindMap: de centralizada a distribuida y viceversa 23 2.8 Grano de adaptación en otros sistemas interactivos . . . . . . . . . . . . . . . . 24 2.9 Grano de adaptación a nivel de tarea en FlexClock . . . . . . . . . . . . . . . . 25 2.10 Granos de adaptación a nivel total y de interactor en el sistema de control de calefacción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 2.11 Grano de adaptación a nivel de espacio de trabajo en el sitio Web de Sedan-Bouillon 27 2.12 Grano de adaptación a nivel de espacio de trabajo en el sistema Ubidraw . . . . 27 2.13 Grano de adaptación a nivel de espacio de trabajo en el sistema CamNote . . . 28 2.14 Grano de adaptación a nivel de pı́xel en el sistema Roomware . . . . . . . . . . 28 xv xvi ÍNDICE DE FIGURAS 2.15 Grano de adaptación a nivel de pı́xel en el sistema ConnecTables . . . . . . . . . 29 2.16 Grano de adaptación a nivel de pı́xel en el sistema MindMap . . . . . . . . . . . 29 2.17 Grano de recuperación a nivel de tarea en el sitio Web de Sedan-Bouillon . . . . 30 2.18 Grano de recuperación a nivel de acción fı́sica en el sistema MindMap . . . . . . 31 2.19 Adaptación a la plataforma y al usuario en el sitio Web de Sedan-Bouillon . . . 33 2.20 Adaptación a la plataforma y al usuario en el sistema Ubidraw . . . . . . . . . . 33 2.21 Adaptación a la plataforma en el sistema de control de calefacción . . . . . . . . 34 2.22 Adaptación a la plataforma en el sistema CamNote . . . . . . . . . . . . . . . . 34 2.23 Adaptación a la plataforma en el sistema Roomware . . . . . . . . . . . . . . . . 35 2.24 Adaptación a la plataforma en el sistema ConnecTables . . . . . . . . . . . . . . 35 2.25 Adaptación a la plataforma en el sistema MindMap . . . . . . . . . . . . . . . . 36 2.26 Meta-IU con negociación en el sitio Web de Sedan-Bouillon . . . . . . . . . . . . 37 3.1 Marco de Referencia Unificado para Interfaces de Usuario Multi-Objetivo . . . . 44 3.2 Estructura del modelo arquitectural de referencia CAMELEON-RT . . . . . . . 50 3.3 Marco conceptual de Plasticidad Explicita Colaborativa . . . . . . . . . . . . . . 55 3.4 Marco para la Adaptación de la Conciencia de Contexto en Despliegues Públicos 57 3.5 Diagrama de clases de la arquitectura Vistas de Contexto Hybreed . . . . . . . . 59 3.6 Marco Genérico de Contexto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 3.7 Arquitectura conceptual del Marco Genérico de Contexto . . . . . . . . . . . . . 64 4.1 Relación entre escenarios y aplicaciones colaborativas . . . . . . . . . . . . . . . 77 4.2 Uso de las palabras deı́cticas “in this paragraph” (en la forma de una liga de hipertexto) por parte de Isaac en la mensajerı́a instantánea para referirse a un párrafo mostrado en el editor colaborativo . . . . . . . . . . . . . . . . . . . . . 82 4.3 Uso de las palabras deı́cticas “in this diagram” (en la forma de una liga de hipertexto) por parte de Alice en la mensajerı́a instantánea para referirse a una figura mostrada en el editor colaborativo . . . . . . . . . . . . . . . . . . . . . . . . . . 83 4.4 Se sugiere a Sandy e Isaac seguir la conversación de Alice y Jenny porque ellas están modificando la figura referenciada por el párrafo que ellos están modificando 84 ÍNDICE DE FIGURAS xvii 4.5 Se sugiere a Alice y Jenny seguir la conversación de Sandy e Isaac porque ellos están reescribiendo el párrafo que refiere a la figura que ellas están modificando . 85 4.6 Pantalla principal donde se muestran las aplicaciones disponibles y una barra de colaboradores que exhibe a los miembros ausentes y virtualmente presentes . . . 91 4.7 Pantalla para elegir a los participantes en la creación del mapa mental y sus roles 92 4.8 Vista del mapa mental cuando un colaborador asume el rol de revisor . . . . . . 93 4.9 Vista del mapa mental cuando un colaborador asume el rol de autor . . . . . . . 94 4.10 Adaptabilidad de la interfaz de usuario del editor colaborativo de mapas mentales con base en la configuración del grupo, las dimensiones de la pantalla y el rol del usuario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 4.11 Datos de la votación en curso ingresados por el proponente en el pizarrón interactivo 99 4.12 Adaptabilidad de la interfaz de usuario de la herramienta de votación con base en la configuración del grupo y el rol del usuario . . . . . . . . . . . . . . . . . . 101 4.13 Resultados de la votación mostrados a los participantes co-localizados en el pizarrón interactivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 4.14 Resultados de la votación mostrados en los dispositivos de los participantes distribuidos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 4.15 Disponibilidad y medios de contacto al inicio de la sesión colaborativa. . . . . . 109 4.16 Disponibilidad y medios de contacto de Sandy, Isaac y Alice una vez que Sandy ha cambiado su actividad. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110 5.1 Contexto de uso de los sistemas colaborativos . . . . . . . . . . . . . . . . . . . 127 5.2 Diagrama de clases del componente observador . . . . . . . . . . . . . . . . . . . 131 5.3 Mecanismo para determinar los medios de contacto de un colaborador . . . . . . 139 5.4 Mecanismo para ocultar, sustituir o mostrar componentes y/o funcionalidades . 141 5.5 Mecanismo de referencias deı́ticas . . . . . . . . . . . . . . . . . . . . . . . . . . 142 5.6 Visualización de documentos en forma de árbol . . . . . . . . . . . . . . . . . . 144 5.7 Mecanismo de ubicación fı́sica . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146 5.8 Capas del marco XARE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147 6.1 Instancias del marco XARE en los dispositivos móviles . . . . . . . . . . . . . . 154 xviii ÍNDICE DE FIGURAS Lista de Tablas 2.1 Entidades contempladas por los sistemas analizados . . . . . . . . . . . . . . . . 40 2.2 Variables contextuales de los sistemas analizados . . . . . . . . . . . . . . . . . . 41 3.1 Herramientas de ejemplo para el marco RUIUM-O . . . . . . . . . . . . . . . . . 48 3.2 Modelos conceptuales e implementación de los marcos estudiados . . . . . . . . 66 3.3 Análisis de los marcos con relación al contexto de uso . . . . . . . . . . . . . . 68 3.4 Análisis de adaptación y contexto en los marcos presentados . . . . . . . . . . . 71 5.1 Similitud entre las actividades de dos colaboradores . . . . . . . . . . . . . . . . 135 5.2 Estados de disponibilidad de un colaborador percibidos por sus colegas . . . . . 137 5.3 Proximidad lógica entre dos colaboradores en un espacio de trabajo compartido 145 5.4 Sugerencias de mecanismos para implementar las aplicaciones de algunos escenarios analizados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151 6.1 API de la comunicación entre instancias del marco XARE . . . . . . . . . . . . 155 6.2 API de la capa de espacio de trabajo . . . . . . . . . . . . . . . . . . . . . . . . 156 6.3 API de la capa de adaptación . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159 6.4 API de la capa de detección . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161 xix xx LISTA DE TABLAS Capı́tulo 1 Introducción 1.1 Trabajo Cooperativo Asistido por Computadora En 1984, el Trabajo Cooperativo Asistido por Computadora (TCAC) se vuelve un campo de investigación durante un taller (workshop) organizado en Massachussets Institute of Technology. Este campo de investigación busca comprender las caracterı́sticas del trabajo cooperativo, con el fin de diseñar tecnologı́a computacional adecuada para soportarlo. Para lograr este fin, TCAC reagrupa el conocimiento de una amplia gama de disciplinas, e.g., la psicologı́a, la sociologı́a, la informática y las comunicaciones, que tienen diferentes intereses de acuerdo con su campo de estudio. Un análisis histórico muestra que estas disciplinas evolucionaron separadamente durante la primera década de la existencia de TCAC. Ası́, los computólogos se centraron en los principios de diseño y en las estrategias de implementación de sistemas colaborativos, mientras que los psicólogos y sociólogos se interesaron en el estudio de grupos de colaboración sin importar si disponı́an o no de soporte tecnológico. Sin embargo, estas disciplinas son más conexas de lo que parecen [Dourish, 1996]. De hecho, los principios de diseño y las estrategias de implementación tienen un impacto significativo en la forma de trabajo adoptada por los colaboradores. Dentro de una organización, se puede distinguir tres tipos de procesos cooperativos conforme a los cuales se han diseñado [Yongwu and Haake, 1999] diferentes tipos de aplicaciones y herramientas colaborativas: • la coordinación se refiere a que una acción individual da significado a las acciones de otros, las cuales a su vez contribuyen a la realización de dicha acción individual para lograr una meta final. La coordinación requiere de la sincronización de las personas y acciones, ası́ como de la coherencia de las acciones individuales con respecto al proceso completo; • la colaboración es un proceso donde las personas trabajan conjuntamente en la eje1 2 Introducción cución de una cierta actividad para crear un producto final. Al término del proceso, la contribución individual no queda aislada, ya que el resultado final es mayor que la suma de todas las contribuciones individuales (sinergia). Por lo tanto, la comprensión colectiva de los objetivos y del conocimiento compartido es un factor fundamental; • la decisión conjunta se refiere a que las personas contribuyen a tomar colectivamente una decisión. La consideración del estatus en el contexto de la decisión conjunta es relevante, i.e., todos los participantes pueden tener la misma posición social en el proceso de decisión o pueden hacer sus contribuciones con base en su rol especı́fico. La credibilidad, el conocimiento compartido y la comprensión colectiva también son factores crı́ticos en este contexto. Para efectuar una tarea especı́fica (e.g., producción conjunta de documentos) es necesario realizar algunas combinaciones de estos procesos cooperativos, requiriendo un mayor o menor grado de conocimiento compartido o de sincronización. Las situaciones más frecuentes en un trabajo cooperativo corresponden a la co-localización, co-acceso, co-recomendación y co-depedencia. Por ejemplo, mientras los miembros de un grupo trabajan en una sala de juntas (co-localización), ellos pueden acceder y manipular los mismos documentos (co-acceso) y señalar información relevante (co-recomendación), de manera que las tareas en las que estos colaboradores estén inmersos son dependientes de dichos documentos (co-dependencia). La co-localización ocurre cuando dos o más personas, objetos o dispositivos están fı́sica o virtualmente cercanos unos de otros. El co-acceso denota la situación en donde varias personas accedan al mismo objeto (un documento o un dibujo); la co-recomendación denota la situación en la que las acciones explicitas o implı́citas de los colaboradores son usadas para sugerir información útil en la realización de sus tareas comunes. Finalmente, la co-dependencia se refiere a la relación existente entre varias tareas, objetos y usuarios [Haake et al., 2010]. Durante la última década, se han realizado grandes inversiones en aplicaciones cooperativas tanto en el sector público como en el sector privado. Muchas de estas aplicaciones han sido exitosas, e.g., Lotus Notes de IBM y PoliTeam [Sohlenkamp et al., 2000], pero algunas han sido totalmente lo contrario. Existen varias razones que han conducido al fracaso de algunas de estas aplicaciones, sin embargo se pueden mencionar al menos tres causas principales [Grudin, 1988]: 1) la disparidad entre las personas que hacen el trabajo y aquellas que obtienen los beneficios; 2) la falta de intuición para administrar aplicaciones cooperativas; y 3) la dificultad extrema para evaluar estas aplicaciones. Tradicionalmente, el campo del TCAC ha dado lugar a aplicaciones costosas que han sido implantadas en el Intranet de una compañı́a o en Internet. La tendencia actual de muchas aplicaciones colaborativas es hacia Internet, ya que es un medio relativamente accesible en cualquier lugar y en cualquier momento. De esta manera, resulta más fácil para las personas comunicar, coordinar y realizar tareas colaborativas independientemente de las fronteras globales. Sin embargo, la principal desventaja de Internet como medio para implantar aplicaciones Capı́tulo 1 3 colaborativas es el riesgo de seguridad, razón por la cual muchas compañı́as prefieren las soluciones en Intranet. A pesar de esta desventaja, Internet ofrece masivas oportunidades a nuevos vendedores de aplicaciones colaborativas para comercializar y poner a disposición de la gente sus versiones libres (e.g., Dropbox). 1.2 Interacción Humano-Computadora Este campo de investigación se interesa en el diseño, la evaluación y la implementación de sistemas de cómputo interactivos para uso humano, ası́ como en el estudio de los fenómenos principales que los rodean [Raskin, 1994]. Los principales objetivos del campo de Interacción Humano-Computadora (IHM) son: 1) mejorar las interacciones entre usuarios y computadoras, y 2) lograr que éstas últimas se vuelvan cada vez más usables y receptivas a las necesidades del usuario. Particularmente, este campo de investigación se centra en el estudio y desarrollo de: 1) metodologı́as y procesos para diseñar interfaces bajo restricciones dadas (usuarios y tareas), pero que aseguren una caracterı́stica deseada, e.g., facilidad de aprendizaje o eficiencia de uso; 2) métodos para implementar interfaces, e.g., cajas de herramientas, librerı́as y algoritmos eficientes; 3) técnicas para evaluar y comparar interfaces; 4) nuevas interfaces y técnicas de interacción, ası́ como 5) modelos de descripción/predicción y teorı́as de interacción. Un objetivo a largo plazo de IHM es diseñar sistemas que minimicen la barrera entre el modelo cognitivo humano de lo que el usuario quiere realizar y la comprensión de la tarea del usuario por parte de la computadora. A este respecto, las investigaciones en IHM se centran en desarrollar nuevas metodologı́as de diseño, en experimentar con nuevos dispositivos de hardware, en crear prototipos de sistemas de software nuevos, en explorar nuevos paradigmas de interacción y en desarrollar modelos y teorı́as de interacción. Diversas metodologı́as que resumen técnicas para el diseño de interfaces de usuarios han emergido desde la identificación de este campo de investigación en 1980. La mayorı́a de las metodologı́as de diseño provienen de un modelo que describe cómo interactúan usuarios, diseñadores y sistemas. Las primeras metodologı́as trataron los procesos cognitivos de los usuarios como predecibles y cuantificables. Asimismo, estas metodologı́as motivaron a los diseñadores de interfaces de usuario a observar los resultados de la ciencia cognitiva en áreas como “memoria” y “atención”. Por el contrario, los modelos modernos se enfocan en una constante realimentación y conversación entre usuarios, diseñadores e ingenieros y promueven que los sistemas estén a la merced de los tipos de experiencias que los usuarios quieren tener, en vez de poner las experiencias del usuario a la merced del sistema. El diseño centrado en el usuario es una filosofı́a de diseño moderna y ampliamente practicada, cuya base se centra en la idea de que los usuarios deben ser el “centro del escenario” en el diseño de cualquier sistema de cómputo. Usuarios, diseñadores y técnicos trabajan conjuntamente para articular las preferencias, necesidades y limitaciones de los usuarios y para desarrollar 4 Introducción sistemas que satisfagan sus requerimientos. Con frecuencia, los proyectos de diseño centrados en el usuario son influenciados por estudios etnográficos de los entornos donde tendrá lugar la interacción usuario-sistema. Modalidad y multimodalidad El término multimodalidad proviene de la palabra modalidad. En psicologı́a cognitiva, la modalidad [Vanderdonckt, et al., 2008] denota un sentido humano (vista, tacto, oı́do, olfato y gusto). Otros autores definen la modalidad como un modo de comunicación dependiente de los sentidos humanos o de los dispositivos de entrada. Existen algunas modalidades que intentan ser parecidas a los sentidos humanos, e.g., cámara-vista, sensor táctil-tacto, micrófono-oı́do, olfativos-olor e incluso el gusto [Legin et al., 2005, Jaimes and Sebe, 2005]. Otras corresponden a los dispositivos de entrada tradicionales, e.g., teclado, ratón y pantalla táctil. En el ámbito computacional, el término de modalidad permite representar información usando un medio fı́sico y una forma de representación. En particular, la forma de representación admite que las personas utilicen diferentes modalidades para representar la información en el mismo medio fı́sico, por lo tanto se usa el mismo sentido humano, e.g., considere la luz como un medio fı́sico y la visión como un sentido. Se usa la visión para percibir diferentes modalidades de información, e.g., texto, imágenes y expresiones faciales [Vanderdonckt, et al., 2008]. Una definición formal de modalidad se muestra en la expresión (1.1), en donde la modalidad (M) es la pareja integrada por un lenguaje de interacción (L) y un dispositivo fı́sico (d) [Vanderdonckt, et al., 2008]: M ::=< L, d > (1.1) Un lenguaje de interacción (L) define un conjunto de expresiones bien formadas (i.e., una cadena de sı́mbolos) que transmiten un significado . La generación de uno o varios sı́mbolos resulta de las acciones efectuadas sobre los dispositivos fı́sicos. Un dispositivo fı́sico (d) es un elemento de la plataforma anfitriona del sistema interactivo que se comporta como un recurso de interacción, ya que adquiere (dispositivo de entrada) o entrega (dispositivo de salida) información. Algunos ejemplos de modalidad se presentan a continuación: • discurso=<pseudo-lenguaje natural NL, micrófono> (cf. Expresión 1.1), donde discurso es una modalidad compuesta por un pseudo-lenguaje natural NL (lenguaje de interacción) y un micrófono (dispositivo); • escrito a máquina=<pseudo-lenguaje natural NL, teclado>, donde escrito a máquina representa una modalidad conformada por un pseudo-lenguaje natural NL (lenguaje de interacción) y un teclado (dispositivo); • discurso=<pseudo-lenguaje natural NL, altavoz>, donde discurso es una modalidad que contiene un pseudo-lenguaje natural NL (lenguaje de interacción) y un altavoz (dispositivo); Capı́tulo 1 5 • gráfico=<lenguaje gráfico GL, pantalla>, donde gráfico representa una modalidad, lenguaje gráfico GL corresponde al lenguaje de interacción y pantalla concierne al dispositivo. • manipulación directa=<lenguaje de manipulación ML, ratón>, donde manipulación directa corresponde a una modalidad, lenguaje de manipulación ML representa el lenguaje de interacción y finalmente, ratón denota al dispositivo. Una modalidad puede desempeñar el papel de un dispositivo de entrada para producir frases de un lenguaje de interacción. Por ejemplo, las palabras de una frase de un pseudo-lenguaje natural pueden ser producidas por la selección de palabras desde un menú flotante utilizando un ratón. En este caso, el teclado es remplazado por la modalidad <selección desde menú flotante, ratón>. La definición general de una modalidad se refleja en la expresión (1.2), en donde L es un lenguaje de interacción, d es un dispositivo y M es una modalidad [Vanderdonckt, et al., 2008]: M ::=< L, d > | < L, M > (1.2) La comunidad cientı́fica ha debatido por varios años la definición de multimodalidad, ası́ como sus usos, sin llegar a un consenso. En el ámbito de IHM, la multimodalidad ha sido definida de varias maneras, algunas de ellas se citan a continuación: • es la interacción de múltiples técnicas que involucran varios sentidos humanos simultáneamente [Vanderdonckt, et al., 2008]; • responde a las entradas de más de una modalidad o canal de comunicación, e.g., discursos, gestos y escritura [Jaimes and Sebe, 2005]; • coordina el proceso de entradas multimodales (e.g., el habla, el tacto, las gesticulaciones manuales, la mirada, los movimientos de cabeza y el cuerpo) con sistemas multimedia de salida [Oviatt, 1999]. Los sistemas multimodales se diferencian en la forma de combinar las modalidades, de manera que existen dos tipos de sistemas multimodales: de entrada o de salida. Un sistema multimodal de entrada combina de manera coordinada dos o más modos de entradas con un sistema multimedia de salida. Por ejemplo, el sistema MultimodaliXML [Stanciulescu et al., 2005] permite que el usuario ingrese información al sistema a través de una interacción gráfica, vocal y/o táctil. Un sistema multimodal de salida presenta la información combinando dos o más modalidades de comunicación, e.g., el sistema de neurocirugı́a llamado The Assisted Neuro-surgery System utiliza gráficos y audio [Vanderdonckt, et al., 2008]. Las modalidades de entrada se dividen en dos grupos (cf. Figura 1.1): el primero está basado en los sentidos humanos (e.g., vista, tacto y oı́do) y el segundo corresponde a los dispositivos 6 Introducción de entrada (e.g., ratón y teclado). La multimodalidad sirve como entrada a las aplicaciones por medio de las interfaces de usuario. Las aplicaciones que utilizan la multimodalidad conciernen principalmente a las de colaboración remota, reuniones, entre otras [Jaimes and Sebe, 2005]. Figura 1.1: Visión general de la interacción multimodal mediante un enfoque centrado en el usuario 1.3 Contexto de investigación Este tema de tesis doctoral se inscribe en el campo de investigación del Trabajo Cooperativo Asistido por Computadora (TCAC). Como se mencioná en la sección 1.1, este campo multidisciplinario estudia tanto los aspectos sociales de las actividades individuales y colectivas, como los aspectos tecnológicos de la información y de las comunicaciones, con el fin de asistir la colaboración entre personas potencialmente distribuidas [Dourish, 1996]. En relación con el carácter multidisciplinario de TCAC, este proyecto de investigación toma principalmente la perspectiva de la informática y de las comunicaciones, con el objeto de modelar, diseñar e implementar una infraestructura que facilite el desarrollo de sistemas cooperativos (cf. Figura 1.2). Estos sistemas proveen espacios de trabajo que permiten a los colaboradores comunicarse entre si, producir conjuntamente información compartida y coordinar sus actividades, aún cuando no puedan reunirse fı́sicamente en el mismo lugar y/o al mismo tiempo. TCAC contempla varios dominios de aplicación. Particularmente, este proyecto de tesis abordará el dominio de aplicación de la producción cooperativa de documentos. Aún si numerosos trabajos de investigación se han consagrado al estudio de este dominio de aplicación, e.g., [Buzzi et al., 2010], [Pinelle et al, 2008], [Secretan et al., 2008], [Cerratto and Rodrı́guez, 2002], [Paredes and Fonseca, 2010] y [Wei et al., 2009], la producción Capı́tulo 1 7 Figura 1.2: Contexto de investigación de este proyecto doctoral cooperativa de documentos es un problema recurrente. Los sistemas cooperativos que soportan este dominio de aplicación deben permitir a grupos de coautores planificar sus tareas, ası́ como producir, revisar y comentar sus contribuciones. Aunque este dominio de aplicación haga intervenir grupos consecuentes de coautores, algunos estudios sociológicos muestran que se trata de pequeños grupos que varı́an entre dos y cinco individuos [Beck, 1993]. El fenómeno de la globalización no solamente ha dado lugar a la distribución de organizaciones, sino también a la colaboración entre organizaciones localizadas en diferentes partes del mundo. En consecuencia, las personas necesitan trabajar conjuntamente a pesar de la distancia y de la eventual restricción de poder reunirse al mismo tiempo a causa de las diferencias horarias [Gall and Hauck, 1997]. En respuesta a este requerimiento, este proyecto de investigación pretende proveer soportes para la interacción distribuida mediante dispositivos de cómputo diversos, e.g., pizarrones digitales, PCs, PDAs y smartphones. Por otra parte, la mayorı́a de las herramientas actuales implı́citamente asumen que su interfaz de usuario se confina en un solo dispositivo de cómputo, lo cual implica que el usuario se vuelva sedentario cuando interactúa con su PC, mediante dispositivos de E/S tradicionales, e.g., teclado, ratón y monitor. Sin embargo, la creciente proliferación de dispositivos heterogéneos y el progreso de las redes de comunicación permiten imaginar al usuario como un “ente que evoluciona en un entorno variado y que utiliza, de manera oportunista, dispositivos fijos y móviles con el fin de satisfacer sus necesidades en cualquier lugar donde se encuentre” [Calvary et al., 2006]. Un sistema interactivo evidentemente no puede ofrecer la misma presentación en todo tipo de dispositivo. Sin embargo, el desarrollo separado de sistemas adaptados a cada contexto de uso no sólo es extremadamente costoso, en términos de desarrollo y mantenimiento, sino también puede dar lugar a comportamientos incoherentes. Algunas posibles consecuencias podrı́an ser la sub-utilización de los sistemas y el costo requerido para mantener la consistencia de versiones en múltiples dispositivos heterogéneos. La propiedad de “plasticidad” pretende hacer frente a 8 Introducción estos problemas (cf. Figura 1.2). La plasticidad es la capacidad de los sistemas interactivos para adaptarse a un conjunto de contextos de uso, garantizando en todo momento un conjunto de criterios de calidad, e.g., la usabilidad y la continuidad de interacción [Calvary et al., 2004]. El término de plasticidad [Thevenin and Coutaz, 1999] fue introducido, a finales de los noventas, en el dominio de los sistemas interactivos mono-usuario, en respuesta a la creciente diversidad de dispositivos de cómputo. Este término se inspira en la propiedad de los materiales que les permite expandirse y contraerse, sin romperse, bajo restricciones naturales. La plasticidad puede repercutir tanto en los componentes de la interfaz de usuario como en el núcleo funcional del sistema, tal como sucede con el descubrimiento de servicios, e.g., si un usuario se movió hacia un lugar donde está disponible un nuevo servicio, éste aparecerá en su PDA. En este ejemplo, la interfaz de usuario se remodela, con el fin de incorporar este nuevo servicio y de soportar una interacción oportunista. 1.4 Planteamiento del problema Vanderdonckt et al. caracterizan el espacio del problema de las interfaces de usuario plásticas mediante siete dimensiones [Vanderdonckt et al., 2008]: 1) percutores de plasticidad, 2) granularidad de los componentes de la interfaz de usuario, 3) granularidad del estado de recuperación, 4) despliegue de la interfaz de usuario, 5) contexto de uso, 6) meta-interfaz de usuario y 7) espacio tecnológico. Sin embargo, hoy en dı́a, no existen sistemas mono-usuario ni colaborativos que comprendan estas siete dimensiones (cf. Capı́tulo 2). A pesar de que las compañı́as tecnológicas han puesto a disposición de los usuarios una variedad cada vez más amplia de dispositivos, los cuales difieren en sus caracterı́sticas fı́sicas (e.g., tamaño de pantalla, capacidad de memoria e inclusión de cámaras, altavoz y teclado) y lógicas (e.g., diferentes plataformas y librerı́as), en la actualidad no existen sistemas colaborativos plásticos que hagan frente a esta heterogeneidad. Los pocos sistemas colaborativos plásticos del estado del arte, e.g., ConnecTables [Tandler et al., 2001] y MindMap [Lucero et al., 2010], han sido desarrolldos “a la medida”, i.e., funcionan para dispositivos con caracterı́sticas idénticas o similares. Aunque, dichos sistemas ofrecen algunas propiedades plásticas, e.g., adaptar el área de trabajo al detectar dos tablets unidas fı́sicamente, el problema de desarrollar sistemas “a la medida” aparece al momento de querer agregar una nueva propiedad plástica, ya que esta puede requerir modificaciones en gran parte de dichos sistemas. La mejor opción para crear un sistema colaborativo plástico serı́a el uso de un marco de desarrollo (framework) que ofrezca una gama de opciones de adaptación pre-definidas, pero extensibles. Si se hace un recuento de los marcos para sistemas mono-usuario plásticos, que están disponibles a los desarrolladores, podemos observar que aunque todos adordan los elementos del contexto de uso (i.e., usuario, entorno y plataforma), sólo unos cuantos consideran alguna Capı́tulo 1 9 forma de adaptación (i.e., remodelación, migración o redistribución). Por lo tanto, se puede constatar que estos marcos no solo están limitados en cuanto al número ofertado, sino también respecto a las dimensiones plásticas consideradas. Los marcos que pretenden facilitar el desarrollo de Sistemas Colaborativos Plásticos (SCP) sólo se preocupan por cubrir algunos elementos del contexto de uso. Sin embargo, una de las principales limitaciones de dichos marcos reside en el uso del concepto de “contexto de uso”, tal como fue definido para sistemas mono-usuario. Por obvias razones, dicho concepto no considera los requerimientos propios de los sistemas colaborativos como, por ejemplo, la intervención de múltiples usuarios, el uso compartido de recursos fı́sicos y virtuales y la provisión de información de conciencia de grupo para conformar un entorno común. Asimismo, la mayorı́a de los marcos SCP ofrecen únicamente un soporte conceptual, el cual resulta difı́cil de entender y aplicar durante las fases de diseño e implementación. Los pocos marcos que proveen un soporte de implementación sólo abordan de manera muy limitada la dimensión del contexto de uso, dejando completamente de lado las otras seis dimensiones del espacio del problema de las interfaces de usuario plásticas. Ninguno de los marcos SCP satisface la necesidad ineludible de recuperación de información, cuando esta se pierde al momento de pasar de un contexto de uso a otro. La información no recuperada es de vital importancia, puesto que puede ser el resultado de varias horas de trabajo. La mayorı́a de los marcos SCP sólo ofrece un percutor de plasticidad que actúa de manera estática sobre una granularidad fija de la interfaz de usuario. Este único percutor permite que algunos componentes de la interfaz de usuario se remodelen, se redistribuyan en varios dispositivos o bien migren de un dispositivo a otro para adaptarse al nuevo contexto de uso. Además, dicho percutor actúa sobre una granularidad fija de la interfaz de usuario, i.e., a nivel de interactor (e.g., icono), a nivel de tarea (e.g., una ventana de impresión) o bien a nivel de la interfaz de usuario completa (e.g., transformación de una forma textual a una gráfica). Dado que dichos marcos SCP no ofrecen todas las opciones resultantes de la combinación de estas dos dimensiones (i.e., percutores de plasticidad y granularidades de la interfaz de usuario), las posibles interfaces de usuario son generadas de manera estática. Finalmente, algunos marcos SCP exploran la meta-interfaz de usuario de manera muy limitada ya que dejan, como cuestiones abiertas, las meta-interfaces de usuario plásticas y sin negociación, i.e., aquellas en las que no se requiere la intervención del usuario en el proceso de adaptación, dado que el sistema es capaz de adaptarse de manera autónoma. Dado el planteamiento del problema podemos generar la siguiente hipótesis: Es posible definir un contexto de uso para los sistemas colaborativos que considere las caracterı́sticas propias de los entornos colaborativos, ası́ como crear un marco que facilite la creación de sistemas colaborativos capaces de adaptarse a cambios contextuales. 10 Introducción 1.5 Objetivos del proyecto Objetivo general Analizar los requerimientos y los posibles enfoques de solución propuestos en el estado del arte para dotar a los sistemas cooperativos de propiedades plásticas. A partir de este análisis se proponen soluciones, tanto a nivel teórico como a nivel práctico, que faciliten el desarrollo de sistemas capaces de solucionar algunos problemas de las interfaces de usuario plásticas multimodales. Objetivos particulares 1. Redefinir el concepto de “contexto de uso” propuesto en el dominio de los sistemas monousuario para adaptarlo al dominio de los sistemas cooperativos. 2. Desarrollar un modelo conceptual de plasticidad que sirva como instrumento de referencia para ayudar a los desarrolladores en el proceso de construcción de sistemas cooperativos plásticos. 3. Con base en los conceptos, principios y mecanismos propuestos en el modelo conceptual de plasticidad, se pretende diseñar un marco de desarrollo (framework) que facilite: (a) la adaptación de sistemas cooperativos a diferentes contextos de uso que contemplen todos o algunos elementos (usuario, entorno y plataforma); (b) la creación de meta-interfaces que involucren a los usuarios en el proceso de adaptación como observadores o como entes activos, según convenga; (c) la remodelación y redistribución de la interfaz de usuario de estos sistemas; (d) el uso de diferentes granularidades de adaptación (total, espacio de trabajo, interactor y pixel), y (e) la recuperación del estado de dichos sistemas a nivel sesión, tarea y acción. 4. Validar el marco propuesto mediante el desarrollo de algunas aplicaciones de edición cooperativa para poner en evidencia sus alcances y limitaciones. 1.6 Organización del documento La organización de este documento se resume en la figura 1.3. El capı́tulo 1 corresponde a esta introducción en donde se dio un panorama general de la problemática a resolver, ası́ como los objetivos a cumplir en este proyecto de investigación. Capı́tulo 1 11 Introducción Capítulo 1 Estado del arte Capítulo 2 Capítulo 3 Contribuciones Capítulo 5 Capítulo 4 Validación Capítulo 6 Conclusiones Capítulo 7 Figura 1.3: Organización del documento Tanto el capı́tulo 2 como el capı́tulo 3 presentan el estado del arte. En particular, el capı́tulo 2 describe las dimensiones del espacio del problema de las interfaces de usuario plásticas, las cuales han sido ejemplificadas mediante ocho aplicaciones representativas. Dado que dichas dimensiones fueron identificadas en el dominio de los sistemas mono-usuario, en el capı́tulo 3 se detallan los marcos más relevantes para el desarrollo de este tipo de sistemas. Asimismo, en el capı́tulo 3, se describen los principales marcos de desarrollo para sistemas colaborativos plásticos, con la finalidad de analizar los avances logrados en ambas vertientes. El marco XARE (conteXt-Aware groupwaRE), propuesto en tesis, pretende orientar a los desarrolladores en la creación de sistemas cooperativos plásticos. El análisis de este marco se describe en el capı́tulo 4, el cual inicia presentando una definición de los elementos que conforman el contexto de uso en sistemas cooperativos. A continuación, se proponen varios escenarios que ponen en evidencia algunas dimensiones del espacio del problema de las interfaces de usuario plásticas. La mayorı́a de estos escenarios son ejemplificados mediante aplicaciones. 12 Introducción Algunas de estas son prototipos que sirvieron de base para diseñar e implementar el marco propuesto. En el capı́tulo 5, se expone primeramente la reconceptualización del contexto de uso para el dominio de los sistemas cooperativos. Para realizar dicha reconceptualización, se hizo uso del patrón de diseño Decorador, el cual permite a los desarrolladores añadir y suprimir dinámicamente contextos de uso en un sistema cooperativo. También se incluyen los diagramas de clases generados a partir de algunos escenarios. La mayorı́a de las propuestas de adaptación al contexto, que se ponen en evidencia en dichos escenarios, han sido concretizadas en forma de mecanismos. Finalmente, se describen las capas que conforman el marco XARE. El capı́tulo 6 presenta la validación del marco XARE. En particular, se define la API que permite la comunicación entre las capas de dicho marco y entre los componentes de cada capa. Para hacer más claro el funcionamiento de dicho marco, se muestra el flujo de información para algunos de los escenarios analizados, en especı́fico para aquellos que han sido explorados con mayor profundidad. En el capı́tulo 7, se presentan las conclusiones derivadas del trabajo desarrollado, ası́ como algunas ideas de trabajo a futuro que ayudarı́an a mejorar el marco XARE. Capı́tulo 2 Interfaces de usuario plásticas en sistemas interactivos En el presente capı́tulo se estudian las interfaces de usuario plásticas, las cuales tienen origen en el área de Interacción Humano-Computadora. El análisis realizado en este apartado considera varias dimensiones que podrı́an ser tratadas cuando se implementa la propiedad de plasticidad en sistemas interactivos, e.g., informar o consultar al usuario acerca de los cambios necesarios para adaptarse al nuevo contexto de uso. Las dimensiones a considerar se han dividido en dos grandes partes que se consideran relevantes para este trabajo de investigación. La primera parte estudia las siete dimensiones de las interfaces plásticas propuestas en el dominio de los sistemas interactivos mono-usuario (cf. sección 2.1-2.8). La segunda parte analiza las dimensiones desarrolladas en el ámbito de los sistemas conscientes de contexto (cf. sección 2.9). Para ejemplificar dichas dimensiones, se consideran varios sistemas interactivos, los cuales están enfocados en apoyar el trabajo individual o el grupal. Finalmente, se presentan una sı́ntesis de este capı́tulo (cf. sección 2.10). 2.1 Problemas encontrados en las interfaces de usuario plásticas multi-modales Como se mencionó en el capı́tulo 1, la interfaz de usuario de un sistema interactivo no puede ser la misma para un dispositivo pequeño (e.g., una PDA) que para uno grande (e.g., un pizarrón electrónico); el problema se agudiza si se consideran las demás caracterı́sticas de hardware (e.g., capacidades de procesamiento, almacenamiento y comunicación) y software (e.g., sistema operativo y lenguajes de programación soportados) de dicho dispositivo. Por lo tanto, la ejecución de un sistema interactivo en diferentes dispositivos genera varios inconvenientes que pueden convertirse en un problema de grandes dimensiones al agregar otras variantes, e.g., habilitar o deshabilitar funcionalidades a un usuario, dependiendo de su ubicación virtual dentro de un 13 14 Interfaces de usuario plásticas en sistemas interactivos documento. Vanderdonckt et al. han identificado las siguientes siete dimensiones para adaptar una interfaz de usuario (IU) a cambios en el contexto de uso (cf. Figura 2.1) [Vanderdonckt, et al., 2008]: • Percutores de plasticidad: permiten cambiar la presentación de la IU mediante remodelación, redistribución y migración de componentes; • Granularidad de la IU: representa la unidad más pequeña de la IU que puede ser adaptada; la granularidad puede ser a nivel de pı́xel, de interactor (e.g., un ı́cono), de espacio de trabajo o de aplicación; • Granularidad de recuperación del estado: se refiere al estado del sistema, después de la adaptación; la recuperación del sistema puede ser a nivel de sesión, de tarea o de acción; • Despliegue de la IU: indica la forma en que la IU lleva a acabo la adaptación; esta dimensión contempla dos formas: estática o dinámica; • Contexto de uso: plantea las causas que provocan la adaptación del sistema; los factores para realizar la adaptación son provocados por cambios en el usuario, en el entorno o en la plataforma; • Espacio tecnológico (ET): caracteriza el grado de heterogeneidad técnica soportada por el sistema; el espacio puede ser intra-ET, inter-ET y multi-ET; • Meta-Interfaz de Usuario (Meta-IU): permite a los usuarios controlar y evaluar el proceso de adaptación; la meta-IU puede ser implementada con negociación o sin negociación; otra cuestión importante, la cual sigue abierta, es aplicar plasticidad a una meta-IU para que pueda adaptarse a los cambios contextuales. Las dimensiones de la Figura 2.1 serán ejemplificadas mediante ocho sistemas interactivos, los cuales serán descritos de forma concisa a continuación. El sitio Web Sedan-Bouillon, que promueve las ciudades de Sedan y Bouillon, tiene como caracterı́stica primordial permitir a los usuarios participar en la redistribución entre una PC y una PDA de la página principal para facilitar la navegación [Balme et al., 2005]. El sistema de control de calefacción permite al usuario controlar la temperatura de algunos cuartos de su casa, usando dispositivos heterogéneos, e.g., PDA, PC, teléfono móvil y reloj de pulso [Coutaz and Calvary, 2008]. El sistema FlexClock no solo provee diecisiete configuraciones predefinidas de los componentes de la fecha y de la hora, sino también permite adaptar tales componentes al tamaño de la ventana [Grolaux et al,. 2002]. Capı́tulo 2 15 Figura 2.1: Espacio del problema de las interfaces de usuario plásticas multimodales El sistema Ubidraw permite tanto crear dibujos vectoriales como adaptar su IU al tamaño de la ventana dependiendo de la tarea actual (e.g., el último icono que fue seleccionado), la frecuencia de la tarea (e.g., la cantidad de clics sobre cada ı́cono) y la preferencia del usuario por una tarea (e.g., la posición del icono dentro de las preferencias/necesidades del usuario) [Vanderdonckt and González-Calleros, 2008]. El sistema CamNote está compuesto de dos espacios de trabajo: uno contiene un visor de diapositivas y el otro comprende tanto un panel de control para navegar entre las diapositivas como un editor de notas. Ambos espacios de trabajo despliegan como fondo el video del usuario en tiempo real. La caracterı́stica principal de CamNote es dividir dinámicamente su IU entre dispositivos heterogéneos (PC y pocket PC) al detectar la presencia de una pocket PC) [Demeure et al., 2005]. A diferencia de los anteriores sistemas interactivos mono-usuario, los siguientes sistemas se enfocan en el trabajo grupal, cuyos miembros están colocalizados. El sistema Roomware agrega capacidades de cómputo y comunicación a objetos reales, e.g., paredes, mesas y sillones, con la finalidad de explorar nuevas formas de interacción entre los colaboradores [Prante et al., 2004]. Los componentes de interacción de Roomware son tres: 1) Dynawall, 2) InteracTable y 3) CommChair. Dynawall está compuesto por tres pizarrones electrónicos, empotrados en la pared, que forman un dispositivo largo y sensible al contacto. InteracTable es una pantalla 16 Interfaces de usuario plásticas en sistemas interactivos sensible al contacto colocada en la parte superior de una mesa. Finalmente, CommChair combina la movilidad y el confort de una silla con la funcionalidad de una computadora. El sistema ConnecTables facilita la transición del trabajo individual al trabajo grupal (y viceversa). Dicha transición se lleva a cabo cuando dos colaboradores unen sus tablets PC para crear dinámicamente un espacio de trabajo compartido, donde los colaboradores pueden arrastrar las imágenes desde una tablet hacia la otra [Tandler et al., 2001]. El último sistema a considerar es MindMap que sirve para crear, editar y visualizar mapas mentales usando teléfonos celulares. La manera de utilizar estos dispositivos rompe con el paradigma de uso personal. Los aparatos telefónicos pueden ser conectados de manera vertical (alineados entre ellos) o de manera perpendicular (en forma de T). Una caracterı́stica importante de este sistema es el escalamiento del mapa mental mostrado en pantalla, i.e., cuando el dispositivo está sobre la mesa, el mapa mental tiene una escala de 1:1; en cambio cuando está en la mano del colaborador, la escala es menor de 1:1 con el objetivo de que el mapa sea visualizado completamente en una única pantalla [Lucero et al., 2010]. 2.2 Percutores de plasticidad La adaptación del sistema al contexto de uso (plataforma, entorno o usuario) puede tomar múltiples formas. En está sección se explica cómo percibe un usuario la adaptación del sistema. La adaptación puede llevarse a cabo al aplicar uno o varios de los siguientes percutores de plasticidad: remodelación, redistribución y migración de la IU [Coutaz and Calvary, 2008]. 2.2.1 Remodelación La remodelación de la IU denota cualquier reconfiguración que es perceptible al usuario y que resulta de la aplicación de una o más transformaciones sobre toda o una parte de la IU. Las transformaciones incluyen [Vanderdonckt, et al., 2008, Coutaz and Calvary, 2008]: • Inserción de nuevos componentes: proporciona acceso a los nuevos servicios relevantes en el nuevo contexto de uso o situación, e.g., si existe más espacio disponible en la pantalla se podrá exhibir más información útil; • Eliminación de componentes: suprime componentes que sean irrelevantes en el nuevo contexto de uso o situación, e.g., remover los componentes innecesarios de la IU para un determinado rol; • Sustitución de componentes: reemplaza algunos componentes por otros. La sustitución puede verse como la combinación de inserción y eliminación, e.g., conversión de un menú fijo en uno flotante; Capı́tulo 2 17 • Reorganización de los componentes: revisa la disposición y las dependencias temporales de los componentes. La reorganización puede resultar de la inserción, eliminación o sustitución de componentes de la IU, e.g, la sustitución de un componente puede verse al reducir una lista completa en una lista desplegable, si el usuario cambia de una PC a una PDA. La reorganización puede afectar diversas partes de la IU, e.g., la reorganización de una página Web puede afectar de manera independiente al estilo, a la disposición, al contenido, a la estructura, a la navegación, ası́ como a la modalidad inicial de la página; • Degradación: debido a un cambio de plataforma computacional se reorganiza la IU, la cual pasa de una plataforma limitada a una aún más limitada, e.g., de una PC a un PDA o de un screen phone tomada de un video1 a un teléfono móvil. La gradación ascendente es el proceso inverso que consiste en mejorar la IU cuando el usuario cambia de una plataforma limitada a una menos limitada. La remodelación de una IU puede implicar cambios en el sistema de modalidades y/o cambios en las caracterı́sticas CARE (Complementarity, Assignament, Redundancy and Equivalence) [Vanderdonckt, et al., 2008] que son soportadas. Las transformaciones pueden ser aplicadas a diferentes niveles de abstracción, los cuales se describen a continuación [Vanderdonckt, et al., 2008, Calvary et al., 2006]: • Intra-modal: los componentes de la IU que necesitan ser remodelados (IU fuente) se redefinen en la misma modalidad, e.g., si la IU fuente es multi-modal, entonces la IU objetivo también será multi-modal, i.e., la remodelación intra-modal no provoca ninguna pérdida en las modalidades establecidas. En este caso, la modalidad se preserva, e.g., de gráfico a gráfico; • Inter-modal: los componentes de la IU fuente se redefinen en una modalidad diferente. Esta transformación puede engendrar la pérdida o el aumento de una modalidad. Ası́, una IU multi-modal puede ser convertida en una IU mono-modal o de manera inversa (una IU mono-modal puede ser transformada en una IU multi-modal); • Multi-modal: permite la combinación de transformaciones (intra- e inter- modal), e.g., la herramienta TERESA [Paterno et. al., 2008] utiliza la modalidad gráfica y vocal. Dado que una modalidad está definida como M:= ≪ L, d ≫|≪ L, M ≫, en donde M es la modalidad, L lenguaje de interacción y d un dispositivo fı́sico (cf. Sección 1.2), un cambio de la modalidad puede resultar de [Vanderdonckt, et al., 2008]: • Una substitución del dispositivo (a condición de que el nuevo dispositivo soporte el lenguaje de interacción original); 1 Screen phone es un teléfono ubicado en una terminal. http://www.comtek-intl.com/screenphone.htm 18 Interfaces de usuario plásticas en sistemas interactivos • Una substitución del lenguaje de interacción (a condición de que el dispositivo original permita el nuevo lenguaje de interacción); • Un cambio radical del dispositivo y del lenguaje de interacción. Analizando la remodelación en los sistemas de ejemplo, se puede observar que el sistema de control de calefacción se reconfigura a nivel inter-modal, ya que la IU tanto de la PC como de la PDA se clasifican en la modalidad gráfica (cf. Figura 2.2 a y b tomadas de [Coutaz and Calvary, 2008]), mientras que la IU del teléfono móvil y del reloj pertenecen a la modalidad textual (cf. Figura 2.2 c y d tomadas de [Coutaz and Calvary, 2008]). Todos los demás sistemas son intra-modales porque sus componentes fuente se reconfiguran dentro de la misma modalidad gráfica. a) PC b) PDA d) Reloj digital c) Teléfono móvil Modalidad: gráfica Modalidad: textual Figura 2.2: Remodelación en el sistema de control de calefacción 2.2.2 Redistribución La redistribución denota la reasignación de los componentes de la IU de un sistema a diversos dispositivos de interacción. Cuatro tipos de redistribución han sido identificados [Calvary et al., 2006]: 1. De centralizada a centralizada: conserva el estado centralizado de la IU, e.g., migración total de la IU de una PC a una PDA; Capı́tulo 2 19 2. De centralizada a distribuida: desmiembra la IU, e.g., repartición entre una PC y un PDA; 3. De distribuida a centralizada: reconcentra la IU en una sola plataforma; 4. De distribuida a distribuida: cambia el estado de distribución de la IU. Puesto que la IU puede estar distribuida, cada plataforma juega un rol especı́fico: • Plataformas complementarias: cada una está encargada de un subconjunto de tareas del usuario, y • Plataformas totalmente equivalentes: permiten al usuario realizar una tarea en diferentes plataformas, e.g., tanto en una PC como en una PDA, según su conveniencia. Coutaz y Calvary [Coutaz and Calvary, 2008] definen la redistribución estática y dinámica. La primera se realiza fuera de lı́nea entre dos sesiones. Por el contrario, la redistribución dinámica se produce en tiempo de ejecución. Retomando los sistemas de ejemplo, podemos decir que el sitio Web de Sedan-Bouillon soporta todos los tipos de redistribución, i.e., distribución parcial o completa de sus espacios de trabajo (tı́tulo del sitio Web, contenido y menú) entre diferentes dispositivos (cf. Figura 2.3 tomada de [Balme et al., 2005]). Cuando el sitio Web se ejecuta por completo en una PC o una PDA, este permanece centralizado (cf. Figura 2.3.a); el sitio Web puede pasar de un estado centralizado a uno distribuido cuando se divide entre ambos dispositivos, e.g., el menú en la PDA y el contenido en la PC (cf. Figura 2.3.b); posteriormente el sitio Web puede volverse a redistribuir al cambiar los componentes de lugar, e.g., el menú en la PC y el contenido en la PDA (cf. Figura 2.3.d). Finalmente, el sitio Web también se puede concentrar en un solo dispositivo, e.g., en la PC (cf. Figura 2.3.c). Roomware soporta tres tipos de redistribución (cf. Figura 2.4 tomada de [Prante et al., 2004]). La IU de este sistema se encuentra centralizada en InteracTable y en CommChair (cf. Figura 2.4.a), pero puede pasar a un estado distribuido cuando la IU es desplegada en los tres pizarrones electrónicos que conforman DynaWall (cf. Figura 2.4.b). Asimismo, Roomware puede pasar de un estado distribuido a uno centralizado cuando concentra su IU, que fue previamente desplegada en DynaWall, en InteracTable o CommChair (cf. Figura 2.4.c). CamNote soporta la redistribución de centralizada a distribuida y viceversa. Como se mencionó anteriormente, dicho sistema está compuesto de dos espacios de trabajo: uno contiene el visor de diapositivas, mientras que el otro comprende un panel de control para navegar entre las diapositivas y un editor de notas (cf. Figura 2.5 tomada de [Demeure et al., 2005]). Ambos espacios de trabajo despliegan como fondo un visor que muestra video en tiempo real del 20 Interfaces de usuario plásticas en sistemas interactivos a) Centralizada (PC o PDA) b) Distribuida (PC y PDA) Título Menú Contenido c) Centralizada (PC) Contenido Menú d) Distribuida (PC y PDA) Título Título Menú Contenido Menú Contenido Figura 2.3: Todos los niveles de redistribución en el sitio Web de Sedan-Bouillon usuario (cf. Figura 2.5.a). Cuando CamNote detecta una pocket PC, el espacio de trabajo que contiene el panel de control migra de la PC a la pocket PC, mientras que el espacio que contiene Capı́tulo 2 21 b) Distribuida a) Centralizada CommChair InteracTable DynaWall: tres pizarrones electrónicos c) Centralizada InteracTable Figura 2.4: Niveles de redistribución de Roomware: de centralizada a centralizada (desde “c” hacia “a”), de centralizada a distribuida (desde “a” hacia “b”) y de distribuida a centralizada (desde “b” hacia “c”) las diapositivas se mantiene en la PC (cf. Figura 2.5.b). CamNote regresa al estado inicial de redistribución de la IU (i.e., organización centralizada) cuando la PC detecta la ausencia de la pocket PC (cf. Figura 2.5.a). Tanto ConnecTables [Tandler et al., 2001] como MindMap [Lucero et al., 2010] poseen la caracterı́stica de ejecutarse sobre dispositivos del mismo tipo. El primero se ejecuta sobre tablets y el segundo funciona sobre teléfonos celulares. Aún con la peculiaridad anterior, ambos soportan dos tipos de distribución: a) de centralizada a distribuida y b) de distribuida a centralizada. Dichas distribuciones son implementadas al momento de acoplar o desacoplar los dispositivos manipulados por cada sistema. Durante el acoplamiento se crea una sola área de trabajo entre los dispositivos participantes, pero al separarlos el área de trabajo se concentra en cada dispositivo (cf. Figuras 2.6 y 2.7 tomadas de [Tandler et al., 2001] y de un video2 , respectivamente). 2 Lucero, A., Keranen, J., and Hannu, K., MindMap: Collaborative Use of Mobile Phones for Brainstorming (MobileHCI ’10), Extraı́das del video URL: http://www.youtube.com/watch?v=-I6kEii03wo, 2010 22 Interfaces de usuario plásticas en sistemas interactivos b) Distribuida (PC y pocket PC) a) Centralizada (PC) Panel de control Editor de notas Visor de diapositivas Visor de diapositivas Panel de control Figura 2.5: Niveles de redistribución de CamNote: de centralizada (en una PC) a distribuida (entre una PC y una pocket PC) y viceversa a) Centralizada ConnecTable b) Distribuida Acoplamiento de dos ConnecTables Figura 2.6: Niveles de redistribución de ConnecTables: de centralizada a distribuida y viceversa Finalmente, FlexClock, el sistema de control de calefacción y Ubidraw solo se ejecutan en una PC. 2.2.3 Migración La migración de la IU de un sistema se refiere a la transferencia total o parcial de sus componentes a los diferentes dispositivos de interacción activos, sin importar si estos dispositivos pertenecen o no a la plataforma actual. La migración es total si la IU se mueve por completo a una plataforma diferente. Por otra parte, la migración es parcial cuando sólo un subconjunto Capı́tulo 2 a) Centralizada 23 b) Distribuida Un teléfono celular Acoplamiento de tres teléfonos celulares Figura 2.7: Niveles de redistribución de MindMap: de centralizada a distribuida y viceversa de la IU (a nivel de espacio de trabajo, interactor o pı́xel) se mueve a diferentes dispositivos de interacción, e.g., cuando se incorpora una PDA, los paneles de control de un editor de gráficos migran a la PDA (migración a nivel de espacio de trabajo). La migración es de dos tipos [Coutaz and Calvary, 2008]: 1. Estática: cuando se realiza fuera de lı́nea entre dos sesiones; 2. Dinámica: cuando se produce en tiempo de ejecución. Las técnicas de migración y redistribución son diferentes, e.g., una IU centralizada puede ser redistribuida, pero no migrable (redistribución estática) o una IU centralizada puede migrar, pero si la migración es total seguirá estando centralizada en un dispositivo. 2.3 Granularidad de adaptación La granularidad de los componentes de la IU de un sistema denota la unidad más pequeña de software que puede ser afectada por la remodelación y/o redistribución, las cuales pueden ser totales o parciales [Vanderdonckt, et al., 2008]. Cuando es parcial, la remodelación y/o la redistribución se pueden llevar a cabo a nivel de espacio de trabajo, interactor y pı́xel. A continuación, se describen los diferentes niveles de la granularidad [Coutaz and Calvary, 2008]: • Total: implica modificar completamente la IU; • Espacio de trabajo: se refiere a distribuir la IU a nivel de espacio de trabajo, el cual se define como un espacio que apoya la ejecución de un conjunto de tareas lógicamente 24 Interfaces de usuario plásticas en sistemas interactivos conectadas. Los proyectos Pick and Drop y PebblesDraw ofrecen ejemplos de distribución de la IU a nivel de espacio de trabajo, el cual está concretizado por la paleta de colores, el teclado y las imágenes de Pick and Drop y por las notas, los tı́tulos y los horarios de PebblesDraw (cf. Figuras 2.8 a y b tomadas de [Rekimoto, 1997, Myers, 2001], respectivamente); • Interactor: es un caso especial del espacio de trabajo, donde la unidad de distribución es un interactor elemental, e.g., en las superficies aumentadas de Rekimoto (cf. Figura 2.8.c tomada de [Rekimoto and Saitoh, 1999]) los conceptos del dominio, e.g., las mesas y sillas de una herramienta de diseño de interiores pueden ser desplegadas entre computadoras personales, superficies horizontales (e.g., mesas) y verticales (e.g., pantallas); • Pı́xel: se refiere a cualquier componente de la IU que puede ser dividido en múltiples superficies, e.g., en las superficies aumentadas de Rekimoto, una ventana se despliega sobre dos mesas juntas, como si estas fueran controladas por una sola computadora (cf. Figura 2.8.c). Es importante hacer notar que esta granularidad solo concierne a la redistribución de la IU. a) Pick and drop b) PebblesDraw c) Superficies aumentadas Figura 2.8: Grano de adaptación en otros sistemas interactivos Capı́tulo 2 25 Retomando los sistemas de ejemplo, se puede categorizar el sistema FlexClock a nivel de interactor, en cuanto a la granularidad de la adaptación, debido a que sus componentes (hora y fecha) son tareas independientes, pero su presentación (tamaño, forma y alineación) depende del tamaño de la ventana (cf. Figura 2.9 tomada de [Grolaux et al,. 2002]). Tarea: hora Tarea: fecha Figura 2.9: Grano de adaptación a nivel de tarea en FlexClock El sistema de control de calefacción transforma su IU en dos granularidades: total e interactor (cf. Figura 2.10 tomada de [Coutaz and Calvary, 2008]). En el primer caso, aunque la IU gráfica no cambia de manera significativa cuando el sistema es accedido desde una PC o una PDA, la IU se convierte en textual cuando el sistema se ejecuta en un teléfono móvil o un reloj (cf. Figura 2.10.a). En el caso de la adaptación a nivel de interactor, la IU desplegada en una PC presenta una sola vista, mientras que en una PDA la IU es estructurada en tres vistas (una por cuarto) a través de las cuales el usuario puede navegar usando pestañas (cf. Figura 2.10.b). El sitio Web de Sedan-Bouillon remodela su IU a nivel de espacio de trabajo porque la presentación (tamaño, posición y alineación) de los componentes de la página (tı́tulo, contenido y menú) es modificada cuando esta es cargada en una PDA (cf. Figura 2.11 tomada de [Balme et al., 2005]). El sistema Ubidraw también transforma su IU a nivel de espacio de trabajo, el cual está representado por cada una de sus cinco barras de herramientas (i.e., File, Drawing, Option, Retouch e Information) las cuales organizan sus ı́conos de acuerdo a la tarea que está realizando el usuario. Ubidraw se adapta al nuevo contexto de uso al cambiar el tamaño (e.g., ocultando o 26 Interfaces de usuario plásticas en sistemas interactivos a) Grano de adaptación: Total Interfaz gráfica Interfaz textual b) Grano de adaptación: Interactor Despliegue en una sola vista Despliegue en tres vistas Figura 2.10: Granos de adaptación a nivel total y de interactor en el sistema de control de calefacción mostrando algunos iconos) y la alineación (e.g., vertical u horizontal) de las barras dependiendo de la actual tarea, la frecuencia de la tarea y la preferencia del usuario por alguna tarea (cf. Figura 2.12 tomada de [Vanderdonckt and González-Calleros, 2008]). Ası́ como Sedan-Bouillon y Ubidraw, CamNote adapta su IU a nivel de espacio de trabajo, particularmente cuando el panel de control migra desde una PC hacia una PDA. Dicha transfor- Capı́tulo 2 27 Diferente forma de presentar el contenido Menú diferente en tamaño y posición Figura 2.11: Grano de adaptación a nivel de espacio de trabajo en el sitio Web de SedanBouillon La barra Options ocultó sus iconos La barra Retoucher cambió de posición y de alineación Figura 2.12: Grano de adaptación a nivel de espacio de trabajo en el sistema Ubidraw mación causa la desaparición tanto del editor de notas como del visor de video para adaptarse al reducido espacio del dispositivo destino (cf. Figura 2.13 tomada de [Demeure et al., 2005]). Roomware usa un grano de adaptación a nivel de pı́xel cuando la IU es distribuida en los tres pizarrones electrónicos de DynaWall (cf. Figura 2.14 tomada de [Prante et al., 2004]). 28 Interfaces de usuario plásticas en sistemas interactivos a) Panel de control sobre una PC b) Panel de control sobre una Pocket PC Video Panel de control Mismo espacio de trabajo, menos componentes y diferentes dispositivos Editor de texto Figura 2.13: Grano de adaptación a nivel de espacio de trabajo en el sistema CamNote ConnecTables también se adapta a nivel de pı́xel, porque permite a los usuarios tanto duplicar como tomar y soltar una imagen desde una tablet PC hacia otra cuando trabajan de manera colaborativa (cf. Figura 2.15 tomada de [Tandler et al., 2001]). Otro sistema que se adapta a nivel de pı́xel es MindMap, el cual soporta la división de un mapa mental entre varios teléfonos celulares (cf. Figura 2.16 tomada de [Lucero et al., 2010]). Imagen dividida DynaWall: tres pizarrones electrónicos Figura 2.14: Grano de adaptación a nivel de pı́xel en el sistema Roomware Capı́tulo 2 29 La imagen está siendo arrastrada desde un dispositivo a otro Figura 2.15: Grano de adaptación a nivel de pı́xel en el sistema ConnecTables El mapa mental está dividido entre dos teléfonos celulares Figura 2.16: Grano de adaptación a nivel de pı́xel en el sistema MindMap 2.4 Granularidad de recuperación del estado La granularidad del estado de recuperación [Vanderdonckt, et al., 2008] caracteriza el esfuerzo de los usuarios que deben realizar para continuar su actividad después de ocurrida la adaptación. Existen diversos niveles de recuperación, los cuales se mencionan a continuación: • Nivel de sesión: el usuario tiene que reiniciar su actividad desde el estado inicial del sistema, i.e., el estado en el que el sistema inicia cuando es lanzado; • Nivel de tarea: el usuario puede continuar el trabajo desde el inicio de la tarea interrumpida (a condición de que la tarea es realizable en la IU); • Nivel de acción fı́sica: el usuario puede continuar la tarea actual en el punto exacto donde la interrumpió (a condición de que la tarea es realizable en la nueva versión de la IU). 30 Interfaces de usuario plásticas en sistemas interactivos El sitio Web de Sedan-Bouillon soporta una recuperación de estado a nivel de tarea porque solo se pierde la tarea actual del usuario, e.g., si ocurre la redistribución de la IU mientras el usuario está llenando una forma, él tendrá que comenzar nuevamente a llenarla (cf. Figura 2.17 tomada de [Balme et al., 2005]), pero los resultados de las tareas previas no se verán afectados. Por otro lado, CamNote [Coutaz and Calvary, 2008] soporta la recuperación a nivel de acción fı́sica, ya que conserva la diapositiva actual cuando el panel de control migra desde la PC a la PDA. El sistema MindMap [Lucero et al., 2010] soporta una recuperación a nivel de acción fı́sica porque al unir o separar los teléfonos celulares, el mapa mental se conserva sin cambios, e.g., suponga que en un arreglo de tres teléfonos celulares se muestra un mapa en escala 1:1 (cf. Figura 2.18.a tomada de un video3 ); si uno de los colaboradores toma alguno de estos dispositivos, el mapa mental será escalado hasta desplegarse por completo en la pantalla de dicho teléfono; además, el mapa continúa mostrándose sin alteración alguna en los otros dos dispositivos (cf. Figura 2.18.b tomada de un video3 ). El resto de los sistemas no proveen suficiente información para inferir el estado de recuperación que implementan. a) Antes de la adaptación (PC) b) Después de la adaptación (PC y PDA) restaurants anglais x Perdida de información Figura 2.17: Grano de recuperación a nivel de tarea en el sitio Web de Sedan-Bouillon 2.5 Despliegue de la interfaz de usuario El despliegue de la IU puede ser estático o dinámico. Un despliegue estático significa que la adaptación de la IU se realiza cuando el sistema es lanzado en ejecución. En este tipo de despliegue no puede efectuarse remodelación ni redistribución de la IU, e.g., el sistema Pick and Drop [Rekimoto, 1997] realiza un despliegue estático porque muestra una versión prediseñada y precalculada del sistema para una plataforma particular. Por el contrario, un despliegue dinámico significa que la remodelación y la redistribución se pueden realizar en tiempo de ejecución [Vanderdonckt, et al., 2008]. 3 Lucero, A., Keranen, J., and Hannu, K., MindMap: Collaborative Use of Mobile Phones for Brainstorming (MobileHCI ’10), Extraı́das del video URL: http://www.youtube.com/watch?v=-I6kEii03wo, 2010 Capı́tulo 2 31 a) Antes de la adaptación b) Después de la adaptación El mapa conceptual se conserva ántes y despuésde la adaptación Figura 2.18: Grano de recuperación a nivel de acción fı́sica en el sistema MindMap Observe que un despliegue dinámico que soporta recuperación a nivel de sesión es diferente de un despliegue estático. En el primer caso, la remodelación y/o la redistribución ocurren durante la ejecución del sistema, provocando que el usuario regrese al estado de inicio. En el caso del despliegue estático se fuerza al usuario a salir de la sesión y a lanzar la versión apropiada del sistema. Analizando el despliegue de la IU en los sistema de ejemplo, podemos decir que el sitio Web de Sedan-Bouillon provee un despliegue dinámico cuando redistribuye su espacio de trabajo. De la misma manera, FlexClock remodela dinámicamente la ventana de interactores (e.g., alarga el reloj analógico y centra el reloj digital) cuando el usuario redimensiona la ventana. Ubidraw también adapta su espacio de trabajo dinámicamente cuando el usuario lo redimensiona, e.g., si el espacio disponible es relativamente pequeño, solo los iconos relacionados con la tarea actual son accesibles. Por otro lado, ConnecTables crea dinámicamente el espacio de trabajo compartido (vs. personal) cuando dos usuarios acoplan (vs. desacoplar) sus tablets. De la misma manera que ConnecTables, MindMap ofrece un despliegue dinámico al permitir a los colaboradores desplegar a su gusto los mapas metales sobre varios teléfonos celulares. Sin embargo, el sistema de control de calefacción, CamNote y Roomware proveen despliegue estático. 2.6 Cobertura del contexto de uso El contexto de uso hace referencia a los espacios de información que sirven al proceso de adaptación cuando el contexto cambia. Un cambio en el contexto se define como la modificación del valor de cualquier elemento del espacio de información contextual [Coutaz and Calvary, 2008]. Por contexto de uso se entiende la terna ≪usuario, plataforma, 32 Interfaces de usuario plásticas en sistemas interactivos entorno≫ [Calvary et al., 2004, Calvary et al., 2001] donde: • El usuario denota el arquetipo humano que tiene por objeto utilizar el sistema interactivo. • La plataforma se refiere a los dispositivos de hardware y software disponibles para llevar a cabo la interacción del usuario con el sistema. La plataforma puede ser modelada en términos de los recursos computacionales que determinan la forma en que se procesa, se transmite y se presenta la información, ası́ como la manera en que el usuario manipula la información. Comúnmente el tamaño de la memoria, el ancho de banda de la red y los dispositivos de interacción motivan la selección de un conjunto de modalidades de E/S y la cantidad de información disponible. Un cluster de dispositivos computacionales conectados puede ser considerado como parte de la plataforma. Alternativamente, el cluster puede ser estático o dinámico, i.e., los dispositivos computacionales pueden aparecer y desaparecer automáticamente; la cardinalidad del cluster es un factor importante a considerar en lo referente a la escalabilidad y la usabilidad. Los dispositivos computacionales también están caracterizados por los dispositivos de E/S que soportan [Vanderdonckt, et al., 2008], e.g., ratón, teclado, pantalla táctil, stylus y voz. • El entorno describe las condiciones fı́sicas y sociales donde tiene lugar la interacción, e.g., los objetos, las personas y los eventos que son periféricos a la tarea que se está desarrollando, en un momento dado, pero que pueden tener un impacto en el comportamiento: a) del sistema, e.g., un entorno ruidoso puede eliminar la realimentación por audio, y/o b) del usuario, e.g., su localización provee un contexto para la relevancia de la información. Analizando los sistemas interactivos mono-usuarios se puede observar que el sitio Web de Sedan-Bouillon pueden ser accedido desde una PC y una PDA (adaptación a la plataforma). Además, este sitio identifica al usuario cuando está trabajando desde diferentes dispositivos (adaptación al usuario, cf. Figuras 2.19 a y b tomadas de [Balme et al., 2005]). Ubidraw no solo se adapta a una PC y una pocket PC (adaptación a la plataforma), sino también adapta su IU al tamaño de la ventana de acuerdo a la tarea actual (e.g., el último icono que fue seleccionado), la frecuencia de la tarea (e.g., la cantidad de clics sobre cada ı́cono) y la preferencia del usuario por una tarea (e.g., la posición del ı́cono en las preferencias/necesidades de dicho usuario). La adaptación a la tarea propuesta por Ubidraw es parte del elemento “usuario” del contexto de uso (cf. Figura 2.20 tomada de [Vanderdonckt and González-Calleros, 2008]). El sistema de control de calefacción se adapta al hardware y al software (adaptación a la plataforma) porque se ejecuta en aplicaciones Web o independientes; este sistema también permite consultar la temperatura de los cuartos desde dispositivos diferentes, e.g., PDA, PC, teléfono móvil y reloj (cf. Figura 2.21 tomada de [Vanderdonckt and González-Calleros, 2008]). En cambio, FlexClock solo puede ser ejecutado sobre una PC, pero adapta su IU al tamaño de la ventana (simula la adaptación a la plataforma). Capı́tulo 2 33 a) Plataforma b) Usuario Dispositivo: PC Dispositivo: PDA Mismo usuario, Lionel, en dos dispositivos (0 y 1) Figura 2.19: Adaptación a la plataforma y al usuario en el sitio Web de Sedan-Bouillon a) Pocket PC b) PC Adaptación al usuario Figura 2.20: Adaptación a la plataforma y al usuario en el sistema Ubidraw CamNote se adapta a la plataforma debido a que puede ejecutar el panel de control sobre una PDA. Cuando este componente es transferido a dicho dispositivo, se pierde el video en tiempo real del usuario, ası́ como el editor de notas (cf. Figura 2.22 tomada de [Demeure et al., 2005]). Por otro lado, Roomware está habilitado para ejecutarse en tres diferentes dispositivos: DynaWall, InteracTable y CommChair (cf. Figura 2.23 tomada de [Prante et al., 2004]). Dos ejemplos de plataforma diferentes a los anteriores son ConnecTables y MindMap. Para crear un espacio compartido, el primer sistema permite acoplar dos tablets (cf. Figura 2.24 tomada de [Tandler et al., 2001]) y el segundo facilita la formación de un arreglo de dos o más teléfonos celulares (cf. Figura 2.25 tomada de [Lucero et al., 2010]). Del lado derecho de la figura 2.25 se muestran las posibles opciones para acoplar teléfonos celulares en MindMap. En los sistemas analizados podemos observar que ninguno se adapta al entorno. 34 Interfaces de usuario plásticas en sistemas interactivos a) PC b) PDA c) Teléfono móvil d) Reloj digital Figura 2.21: Adaptación a la plataforma en el sistema de control de calefacción a) PC b) Pocket PC Figura 2.22: Adaptación a la plataforma en el sistema CamNote Capı́tulo 2 35 a) Plataforma b) Usuario Dispositivo: PC Dispositivo: PDA Mismo usuario, Lionel, en dos dispositivos (0 y 1) Figura 2.23: Adaptación a la plataforma en el sistema Roomware Detección física para crear un espacio compartido Figura 2.24: Adaptación a la plataforma en el sistema ConnecTables 2.7 Cobertura de espacio tecnológico Un espacio tecnológico es un contexto de trabajo que incorpora un conjunto de conceptos asociados, bases de conocimientos, herramientas, habilidades requeridas y posibilidades. Algunos espacios incluyen herramientas de documentos expresados en XML (documentware), herramientas de datos relacionadas con los sistemas de base de datos y herramientas de ontologı́as (dataware). La mayorı́a de las interfaces de usuario se ejecuta dentro de un solo espacio tecnológico, e.g., Tcl/Tk, swing, o HTML. Esta homogeneidad no es conveniente en las interfaces de usuario plásticas multi-modales, puesto que la redistribución a diversos dispositivos computacionales puede requerir atravesar varios espacios tecnológicos, e.g., una IU 36 Interfaces de usuario plásticas en sistemas interactivos Dos o mas teléfonos celulares forman un espacio Figura 2.25: Adaptación a la plataforma en el sistema MindMap en Java se debe transformar en una IU en WML 2.0 (Wireless Markup Language) al emigrar de una PDA a un teléfono móvil WAP (Wireless Application Protocol) [Vanderdonckt, et al., 2008]. La cobertura del espacio tecnológico denota la capacidad de permitir la plasticidad de la IU en los espacios tecnológicos, los cuales se dividen de la siguiente manera: • intra-Espacio tecnológico: corresponde a la IU que se ejecuta y se adapta a un solo espacio tecnológico; • inter-Espacio tecnológico: se refiere a la IU que es transformada en un espacio tecnológico diferente al actual; • multi-Espacio tecnológico: concierne a las interfaces de usuario fuente y/o destino compuestas de componentes expresados en espacios tecnológicos distintos. Analizando el espacio tecnológico en los sistemas interactivos de ejemplo, podemos observar que el sitio Web Sedan-Bouillon —HTML/PHP [Balme et al., 2005]—, Ubidraw —Mozart/QTk/Oz [Vanderdonckt and González-Calleros, 2008]—, FlexClock —Qtk [Grolaux et al,. 2002]— y MindMap —C++/Qt [Lucero et al., 2010]— permanecen dentro del mismo espacio tecnológico antes y después de la adaptación plástica (i.e., intra-TS). El resto de los sistemas no ofrecen alguna información relacionada. 2.8 Meta-interfaz de usuario El concepto de Meta-Interfaz de Usuario (Meta-IU) se define como la simplificación de un entorno de desarrollo de usuario final. Una meta-IU completa debe permitir a los usuarios Capı́tulo 2 37 finales programar (configurar y controlar) sus espacios interactivos, eliminar errores (evaluar), además de mantener y reutilizar programas. Dicha meta-IU determina las actividades que pueden ejecutarse en un espacio interactivo. La meta-IU considera diversos niveles, los cuales se presentan a continuación [Vanderdonckt, et al., 2008]: • plasticidad en la propia meta-IU: es un tema en exploración, puesto que cada meta-IU se encuentra en un entorno cambiante; • sin negociación: permite que el usuario observe el proceso de adaptación, pero no le permite que intervenga; en este caso el sistema es autónomo; • con negociación: es recomendable cuando la meta-IU no puede tomar decisiones entre las múltiples formas de adaptación, o cuando el usuario debe controlar por completo el resultado del proceso. En este tipo de meta-IU, se presenta el problema de equilibrar la autonomı́a del sistema y la negociación con el usuario; • inexistente: se refiere la carencia de un entorno de desarrollo de usuario final. La dimensión recurrente de la meta-IU requiere definir una meta-IU autosuficiente, capaz de instanciar la apropiada meta-IU cuando el sistema es lanzado en ejecución. Examinando los sistemas de prueba, el sitio Web Sedan-Bouillon [Balme et al., 2005] es el único que provee una meta-IU con negociación, porque el usuario coopera con el sistema para la redistribución de los espacios de trabajo de la IU, i.e., el tı́tulo de la página principal, el contenido y el menú (cf. Figura 2.26 tomada de [Balme et al., 2005]). Finamente, CamNote implementa una meta-IU sin negociación porque no permite que el usuario participe en el proceso de adaptación, pero este sistema provee conciencia de adaptación cuando el panel de control migra desde una PC a una PDA. Meta-IU Figura 2.26: Meta-IU con negociación en el sitio Web de Sedan-Bouillon 38 Interfaces de usuario plásticas en sistemas interactivos 2.9 Otras dimensiones Otras dimensiones importantes corresponden a tipo de adaptación, contexto monoentidad o multi-entidad y variables contextuales. 2.9.1 Tipo de adaptación El tipo de adaptación comprende las siguientes maneras [Abowd et al., 1999]: • presentación de información y servicios al usuario: se refiere a una técnica de interacción en donde se presenta una lista de objetos (e.g., impresoras) o lugares (e.g., oficinas) cuyos elementos más relevantes, de acuerdo al contexto de uso, son enfatizados o más fáciles de escoger. • ejecución automática de un servicio: en este caso no solo se presenta información relevante sino que, dada la correcta combinación de condiciones contextuales, se ejecuta automáticamente una acción. • información aumentada: algunos datos contextuales pueden ayudar a comprender mejor el entorno colaborativo en el que se trabaja, e.g., se puede identificar bajo qué situaciones las personas son más activas. El sistema de control de calefacción, Ubidraw, FlexClock y Sedan-Bouillon se enfocan en la presentación de información y servicios. Dependiendo del tamaño de la pantalla disponible, el sistema de control de calefacción puede mostrar simultáneamente todos los cuartos o enfatizar el preferido por el usuario. Las herramientas de Ubidraw son reordenadas y resaltadas dependiendo su frecuencia de uso. Por otro lado, FlexClock presenta la hora y/o la fecha, dependiendo del espacio disponible de la ventana. Cuando detecta dos dispositivos cercanos que acceden al sitio Web de Sedan-Bouillon, este sistema provee al usuario de una meta-IU para seleccionar los componentes de la IU que pueden ser desplegados en cada dispositivo. Varios de los sistemas de ejemplo se enfocan en ejecutar automáticamente un servicio, como es el caso de CamNote, Roomware, MindMap y ConnecTables. CamNote permite la ejecución automática de un servicio, ya que transfiere instantáneamente el panel de control hacia una pocket PC cuando detecta este dispositivo. Roomware está centrado en la ejecución automática de servicios, pues es capaz de desplegar los espacios de trabajo privados y compartidos en dispositivos personales y públicos, respectivamente. ConnecTables también está en la categorı́a de ejecución automática de un servicio porque este convierte dos espacios de trabajo privados en uno compartido cuando dos tablets se acoplan y viceversa. Al unir las tablets, el espacio de trabajo provee a los colaboradores con funciones que permiten copiar y mover objetos desde una tablet hacia otra. Capı́tulo 2 39 MindMap realiza la ejecución automática de dos servicios, los cuales corresponden a: 1) crear un espacio común entre los teléfonos y 2) escalar el mapa mental. El primer servicio se ejecuta cuando los colaboradores unen dos o más teléfonos celulares por medio de gesticulaciones manuales. El segundo servicio se refiere a dos tipos de escalamiento automático de los mapas mentales. El primero concierne al escalamiento 1:1, el cual se realiza cuando dos o más teléfonos forman un arreglo. El otro tipo de escalamiento requiere que el mapa mental sea ajustado a la pantalla de un dispositivo cuando este deja de formar parte del arreglo. 2.9.2 Sistemas mono-entidad o multi-entidad Los sistemas mono-entidad consideran la situación de una sola entidad que participa a lo largo de la ejecución del sistema, e.g., un usuario en particular puede cambiar varias veces el tamaño de su ventana o expresar sus preferencias en un sistema, el cual es mono-entidad porque en todo momento atiende a un solo usuario. Mientras que los sistemas multi-entidad consideran la situación de varias entidades de forma simultánea, e.g., los miembros de una organización [Olivares, 2011]. En la tabla 2.1 se muestra el análisis de los sistemas de ejemplo respecto al carácter mono y multi -entidad. Dada la naturaleza cooperativa de ConnecTables, Roomware y MindMap, estos sistemas son multi-entidades porque ellos consideran la presencia de múltiples colaboradores y el estado de sus respectivos dispositivos (e.g., si ellos están acoplados/desacoplados o si son de ámbito personal o público). Aún cuando Sedan-Bouillon solo soporta un usuario, este sitio Web corresponde a la categorı́a multi-entidad porque su ejecución puede ser compartida entre dos dispositivos cercanos cuando es requerido. Por el contrario, Ubidraw es un sistema mono-entidad porque solo considera el estado de un solo usuario, el cual es expresado por la tarea actual y las preferencias, la frecuencia de uso de la herramienta y el tamaño de la ventana. El sistema de control de calefacción también es mono-entidad porque solo considera el estado de una plataforma de ejecución a la vez, en particular el tamaño de la pantalla. Otro sistema mono-entidad es FlexClock, ya que solo toma en cuenta el tamaño de la ventana disponible. Aún cuando el sistema CamNote es monousuario, este sistema es multi-entidad, puesto que puede reconocer la presencia de una PDA a cierta distancia de una PC. 2.9.3 Variables contextuales Las variables contextuales se refieren a las variables relevantes que los sistemas consideran para llevar a cabo la adaptación [Ghiani et al., 2009]. La tabla 2.2 muestra las variables contextuales consideradas para la adaptación de los propios sistemas. La mayorı́a de los sistemas analizados usan variables fı́sicas, e.g., localización, tamaño de la pantalla, proximidad, tipo de dispositivo, hora y fecha. Como la mayorı́a de los sistemas 40 Interfaces de usuario plásticas en sistemas interactivos Sistema Soporte multi-entidad Entidades Sedan-Bouillon Sı́ Usuario y dispositivos Control de calefacción No Dispositivo FlexClock No Tamaño de la ventana Ubidraw No Usuario CamNote Sı́ Dispositivos ConnecTables Sı́ Colaboradores y dispositivos Roomware Sı́ Colaboradores y dispositivos MindMap Sı́ Colaboradores y dispositivos Tabla 2.1: Entidades contempladas por los sistemas analizados cooperativos, ConnecTables y Roomware soportan variables tı́picamente lógicas, tales como la presencia de los colaboradores en el espacio de trabajo compartido. En cambio, el sistema UbiDraw toma en cuenta variables lógicas más sofisticadas, e.g., preferencias del usuario y la frecuencia de uso de las herramientas. En el caso de ConnecTables, los sensores detectan cuando dos de estos dispositivos están acoplados. En cambio en MindMap, la adaptación se lleva a acabo cuando se detecta los gestos con las manos de los colaboradores para indicar la unión de dispositivos, ası́ como cuando un colaborador toma en su mano el dispositivo; dicha acción es registrada por el acelerómetro incluido en el teléfono. 2.10 Sı́ntesis Este capı́tulo muestra una subárea del campo de Interacción Humano-Computadora (IHM) llamada “Plasticidad de las Interfaces de Usuario”; dicha subárea es importante para el desarrollo del presente trabajo de investigación porque propone considerar varios puntos relevantes para crear una interfaz de usuario plástica en la etapa de diseño o en tiempo de ejecución. También, sistemas plásticos deben informar al usuario final acerca de la nueva adaptación, ya sea que el Capı́tulo 2 41 Sistema Variables contextuales Sedan-Bouillon Preferencia de los usuarios y sensores de proximidad de los dispositivos Control de calefacción Tamaño de la pantalla del dispositivo FlexClock Tamaño de la ventana Ubidraw Tarea actual, tamaño de la ventana y frecuencia de uso de las herramientas CamNote Sensores de proximidad de los dispositivos ConnecTables Presencia de los colaboradores y sensores de proximidad de los dispositivos Roomware Presencia de los colaboradores y carácter público o personal de los dispositivos MindMap Gesticulaciones manuales y si un dispositivo forma parte o no de un arreglo Tabla 2.2: Variables contextuales de los sistemas analizados usuario intervenga en el proceso de adaptación o solo sea un observador pasivo. Varios de los sistemas de ejemplo permiten expresar de manera visual la plasticidad, e.g., cambiar de modalidad gráfica a textual cuando el dispositivo no lo soporte; redistribuir la IU entre dispositivos heterogéneos (e.g., pizarrones electrónicos, PDA, PC y mesas) y adaptarse a la tarea del colaborador. En los ejemplos presentados, se observa que la mayorı́a de los sistemas se adaptan a la plataforma, principalmente estos sistemas se ejecutan sobre PDAs, tablets PC y computadoras portátiles; otras plataformas menos usadas son pizarrones electrónicos, teléfonos inteligentes o relojes. Muy pocos de estos sistemas consideran al usuario. La tendencia respecto al usuario es considerar las tareas (frecuencia y preferencia) o reconocer cuando un mismo usuario está usando dos o más dispositivos. 42 Interfaces de usuario plásticas en sistemas interactivos Capı́tulo 3 Marcos de desarrollo de sistemas plásticos En este capı́tulo se presentan siete marcos (frameworks) que fueron seleccionados por ser los más representativos del tema de investigación. Por cada marco se proporciona una breve descripción con la finalidad de resaltar sus caracterı́sticas más importantes. Los dos primeros, RUIUM-O y CAMELEON-RT, facilitan el desarrollo de sistemas mono-usuario, mientras que los restantes están enfocados en el desarrollo de sistemas colaborativos. A nuestro saber, el marco RUIUM-O es el primero en considerar el contexto de uso, y la meta interfaz de usuario y algunos percutores de plasticidad en la creación de interfaces de usuario (cf. Sección 3.1). El marco CAMELEON-RT también considera el contexto de uso, ası́ como la redistribución y la migración de la interfaz de usuario (cf. Sección 3.2). El marco PI es el primero en hacer converger aspectos de las interfaces de usuario plásticas de los sistemas mono-usuario y aspectos del trabajo colaborativo, e.g., conciencia de grupo (cf. Sección 3.3). El marco PEC contempla el contexto de uso, la conciencia de grupo e implı́citamente la Meta-IU (cf. Sección 3.4). Mientras que los marcos ACCDP (cf. Sección 3.5), RCCG (cf. Sección 3.6) y GC (cf. Sección 3.7) se enfocan sólo en el contexto de uso, dejando de lado las demás dimensiones de la plasticidad. En la sección 3.8 del presente capı́tulo se incluye un análisis comparativo de los marcos analizados, con el fin de destacar sus ventajas y carencias. Finalmente, la sección 3.9 presenta una sı́ntesis del presente capı́tulo, las cuales exhiben las posibles tendencias de dichos marcos. 43 44 Marcos de desarrollo de sistemas plásticos 3.1 Marco de Referencia Unificado para Interfaces de Usuario Multi-Objetivo El marco de Referencia Unificado para Interfaces de Usuario Multi-Objetivo (RUIUM-O) pretende servir como referencia para ayudar a diseñadores y desarrolladores a estructurar y desarrollar interfaces de usuario multi-objetivo en la etapa de diseño y en tiempo de ejecución. Antes de empezar a describir dicho marco es importante mencionar que una interfaz de usuario multi-objetivo es capaz de soportar múltiples contextos de uso sin considerar la usabilidad [Calvary et al., 2003, Calvary et al., 2001]. 3.1.1 Modelos ontológicos, arquetı́picos y observadores El modelo general de RUIUM-O se compone de tres grandes partes: la primera corresponde a los modelos ontológicos, la segunda a los modelos arquetı́picos y la tercera a los modelos observadores (cf. Figura 3.1). Modelos Arquetípicos Modelo Ontológico Configuración 1 Dominio Conceptos (I1) Conceptos (O1) Tareas (O2) Contexto de Uso Usuario (O3) Entorno (O5) Entorno (I5) Transición (O7) (T1) (I1) (I2) Interfaz Abstracta (T2) Usuario (I3) Plataforma (O4) Evolución (O6) Configuración 2 Tareas (I2) Plataforma (I4) Adaptación Modelo de Conceptos y Tareas (T1) (I3) (I4) Interfaz Concreta (T3) Evolución (I6) S Interfaz de C Usuario Final Configuración E Transición (I7) Modelos Observadores (T2) (T3) (T4) 1 (T4) S C E (I5) S C E (I6) (I7) Infraestructura en tiempo de ejecución Figura 3.1: Marco de Referencia Unificado para Interfaces de Usuario Multi-Objetivo Los modelos ontológicos son meta-modelos independientes tanto del dominio como de los sistemas interactivos. Dichos modelos tienen como objetivo identificar las dimensiones clave Capı́tulo 3 45 para dar una solución al problema en cuestión. Los modelos ontológicos están representados por la letra O dentro del marco RUIUM-O (cf. Figura 3.1). Dichos modelos se dividen en: 1. El modelo de dominio contiene tanto la descripción de los conceptos (modelo de conceptos) como la de las tareas (modelo de tareas) relacionadas a un cierto dominio. El modelo de conceptos (O1) describe los conceptos que el usuario emplea en cualquier contexto de uso y puede ser representado mediante diagramas de clases UML. El modelo de tareas (O2) describe las tareas que el usuario manipula en cualquier contexto de uso y es representado mediante una estructura ConcurTaskTree 1 , en donde las hojas corresponden a las tareas de interacción (e.g., leer y seleccionar), los nodos son tareas abstractas y los vértices representan tanto relaciones temporales como la lógica de las tareas. 2. El modelo de contexto de uso se refiere a caracterizar el usuario, la plataforma y el entorno. El modelo de usuario (O3) se basa en hacer aproximaciones acerca del usuario, mientras que el modelo de plataforma (O4) provee herramientas para describir los recursos cercanos, los cuales están clasificados en dos categorı́as: a) plataforma básica para referirse tanto a recursos fı́sicos como lógicos que funcionan como una unidad, cuyo estado puede ser observado o modificado por un usuario humano y b) clusters compuestos de la plataforma básica que pueden ser homogéneos o heterogéneos. El modelo de entorno (O5) identifica dimensiones genéricas para describir el entorno cercano. 3. El modelo de adaptación especı́fica tanto la reacción ante un cambio de contexto como el camino para conmutar entre contextos. El modelo de adaptación funciona a partir de los modelos de evolución y transición. El modelo de evolución (O6) indica a los sistemas interactivos cuándo deben adaptarse a cambios de contexto, mientras que el modelo de transición (O7) tiene como objetivo suavizar discontinuidades entre dichos cambios. Los modelos arquetı́picos son modelos predecibles que sirven como entrada en el proceso de diseño. Dichos modelos combinan una serie de operaciones para generar un sistema interactivo sensible al contexto, mediante la transformación de modelos iniciales en modelos transitorios. Los modelos iniciales son descritos por los desarrolladores, mientras que los transitorios son inferidos por los desarrolladores y/o el sistema a través del proceso de desarrollo. Los modelos iniciales y transitorios están representados respectivamente por las letras I y T en el marco RUIUM-O (cf. Figura 3.1). Un modelo transitorio contiene tanto los modelos de tareas y conceptos (T1), como las interfaces de usuario abstractas (T2) y concretas (T3) necesarias para la producción de la interfaz de usuario final (T4) [Calvary et al., 2003]. La interfaz de usuario abstracta (IU abstracta) es una expresión canónica de los conceptos y funciones, e.g., en la herramienta ARTStudio [Calvary et al., 2001] la interfaz de usuario es modelada como un conjunto de espacios de trabajos isomorfos al modelo de tareas. 1 Es una notación gráfica que sirve para describir el modelo de tareas [Paterno and Mancini, 1997]. 46 Marcos de desarrollo de sistemas plásticos Los espacios de trabajo, e.g., la temperatura de los cuartos de una casa, son inferidos a partir de las relaciones de las tareas que fueron previamente expresadas en los modelos de conceptos (I1) y tareas (I2). Los espacios anteriores, los cuartos de una casa, son representaciones de una tarea abstracta, e.g., actualizar la temperatura. La interfaz de usuario concreta (IU concreta) convierte una IU abstracta en una expresión dependiente del interactor. Por ejemplo, la herramienta ARTStudio convierte el espacio de trabajo principal en una ventana, mientras que los demás espacios pueden ser ventanas o canvas; la IU concreta generada por ARTStudio se ejecuta dentro de la misma herramienta. Los modelos transitorios son producidos por dos tipos de operaciones: 1) transformación vertical y 2) transformación horizontal. La transformación vertical se refiere a procesar los modelos transitorios (tareas y conceptos, IU abstractas y concretas) de abajo hacia arriba o viceversa. Dentro de está transformación se encuentra la reification, la cual cubre el proceso de derivación desde el modelo de tareas hasta la interfaz de usuario final (IU Final). La transformación horizontal corresponde a la translación entre modelos del mismo nivel, en donde la “translación” significa una operación que transforma la descripción de un objetivo particular en otra descripción de la misma clase, pero con diferente objetivo. Una operación cruzada significa tanto trasladarse a otro contexto de uso como cambiar el nivel de reification. Todas las operaciones de transformación pueden ser ejecutadas de manera automática o manual. La IU final es generada a partir de la IU concreta y es expresada en código fuente, e.g., Java o HTML. Dicha IU final soporta adaptación dinámica multi-objetivo. El modelo de evolución (I6) sugiere estructurar la adaptación multi-objetivo en tres etapas: 1) reconocimiento de la situación, 2) procesamiento de la reacción y 3) ejecución de la reacción. El reconocimiento de la situación registra el contexto (e.g., la temperatura actual es de 22◦ C) detecta cambios contextuales (e.g., la temperatura ha incrementado de 18◦ C a 22◦ C) y finalmente identifica cambios de contexto (e.g., cambiar la temperatura de “regular” a “confortable”). El procesamiento de la reacción involucra tanto la identificación de las soluciones candidatas como la selección de una solución; esta reacción puede involucrar cambios de plataforma (e.g., pasar de una PC a una PDA), cambios de entorno (e.g., encender la luz porque el cuarto está muy obscuro) o cambiar de código ejecutable debido a que el código actual no soporta el cambio de contexto. Finalmente, la ejecución de la reacción involucra la realización de las siguientes acciones: • prólogo: se encarga de preparar la reacción al completar, suspender o abortar la tarea actual; • reacción: implica cambiar hacia la nueva versión (e.g., mostrar una nueva secuencia de diálogo o ejecutar una tarea especı́fica); • epı́logo: se encarga de finalizar la reacción al restaurar el contexto de ejecución (e.g., restablecer la tarea interrumpida). Los modelos observadores conducen la adaptación en tiempo de ejecución. Tanto los mod- Capı́tulo 3 47 elos ontológicos Oj como los arquetı́picos Ij pueden ser referenciados por la infraestructura en tiempo de ejecución o por la IU final (ver Figura 3.1), los cuales están encargados de la etapa de adaptación (reconocimiento de la adaptación, cálculo y ejecución de la reacción). 3.1.2 Implementación Bajo el marco RUIUM-O no se creó ninguna herramienta o caso de estudio, pero los autores de este marco seleccionaron algunas herramientas dedicadas al diseño de interfaces de usuario para dar una idea de cómo funciona el marco. Las herramientas seleccionadas son PetShop [Bastide et al., 2003], SEESCOA [Luyten et al., 2003] y TERESA [Paterno et. al., 2008]. PetShop se basa en redes de Petri con la finalidad de editar, verificar y ejecutar modelos formales. El caso de estudio que se reporta con dicha herramienta es un simulador de control de tráfico aéreo que consta de un radar, en el cual se pueden agregar y manipular aviones. SEESCOA es un conjunto de modelos y mecanismos que genera la IU final en tiempo de ejecución. Dicha herramienta considera varias plataformas, ası́ como diferentes modalidades. Finalmente, TERESA ofrece tanto una metodologı́a para diseñar interfaces de usuario multimodales sobre varias plataformas, como una herramienta que sigue dicha metodologı́a. Las modalidades que soporta esta herramienta son gráfica, vocal, gestos, etc. Las tres herramientas analizadas agregan tanto un modelo de presentación como un modelo de diálogo, los cuales no son considerados en el marco analizado. El modelo de presentación especifica aspectos de la presentación de la IU en términos abstractos, ası́ como la invocación de ellos, e.g., en un método se especifica cómo presentar gráficamente las propiedades de un avión. El modelo de diálogo contiene la descripción del comportamiento y la interacción de las clases. Existe cierta coincidencia entre los modelos del marco RUIUM-O y las herramientas analizadas, e.g., dichas herramientas cubren completamente los modelos ontológicos, la IU final (T4) y algunos modelos arquetı́picos (cf. Tabla 3.1). Los modelos arquetı́picos se componen de modelos iniciales y transitorios, ası́ como de la IU final. Como se mencionó en la sección 3.1.1, los modelos iniciales corresponden a los siguientes modelos: conceptos (I1), tareas (I2), usuario (I3), plataforma (I4), entorno (I5), evolución (I6) y transición (I7). Del conjunto de modelos iniciales, PetShop solo utiliza el modelo de conceptos (I1) ya que el desarrollador realiza una descripción de lo que debe hacer el sistema, e.g., cada avión que forma parte del simulador puede desplegar un menú al dar clic derecho sobre éste. PetShop no sólo agrega los modelos de presentación y diálogo, sino también incluye el modelo de aplicación. Este modelo sirve para dar acceso a los métodos de las clases contenidas en el modelo de conceptos, e.g., la clase PlaneManager simula un radar para administrar los aviones y la clase Plane permite crear aviones dentro del radar. El modelo de presentación 48 Marcos de desarrollo de sistemas plásticos Modelos Herramienta PetShop Ontológicos O1-O7, ractoresa Inte- Arquetı́picos I1, T8, tareasb , T9-T11, aplicacióna , presentación y diálogo Generación Manual/ Automática Diseño/ Ejecución Ambos Etapa de diseño Ambos Tiempo de ejecución Ambos Etapa de diseño Contexto de uso: no aplica SEESCOA O1-O7, ractoresa Inte- I4, T2-T4, presentacióna , diálogo y dispositivos Contexto de uso: plataforma TERESA O1-O7, ractoresa Inte- I1, I2, I4, T1-T4, presentacióna y diálogo Contexto de uso: plataforma Tabla 3.1: Herramientas de ejemplo para el marco RUIUM-O a b El marco no considera este componente, pero la herramienta sı́ El marco si considera esta componente, pero la herramienta no que implementa PetShop permite enriquecer la interfaz de usuario mediante tres aspectos: a) la interpretación de los métodos necesarios para mostrar información en la pantalla, e.g., show() o hide(), b) la asociación de los métodos con los eventos, e.g., despliegue de un menú mediante un clic derecho sobre un avión y c) la respuesta a los métodos invocados. De los modelos iniciales propuestos por el marco RUIUM-O, SEESCOA retoma el modelo de plataforma (I4), mientras que TERESA se interesa en los modelos de conceptos (I1), tareas (I2) y plataforma (I4). La metodologı́a TERESA recomienda empezar por hacer descripciones de las tareas, e.g., “apagar la luz”. Los modelos transitorios corresponden al modelo de tareas y conceptos (T1), IU abstracta (T2) e IU concreta (T3). En el caso de PetShop, este sólo implementa el modelo de conceptos, el cual es generado a partir de los modelos de conceptos (I1) y aplicación. La IU abstracta es generada mediante los modelos de presentación y diálogo. SEESCOA incluye sólo las interfaces de usuario (T2-T4) en la etapa de modelos transitorios; la IU abstracta (T2) es generada a partir de los modelos de presentación, diálogo, plataforma y dispositivos. En esta herramienta no se incluye el modelo de tareas debido Capı́tulo 3 49 a que las tareas de un usuario no cambian durante el proceso de adaptación. TERESA genera modelo de conceptos y tareas (T1) mediante los modelos de conceptos (I1) y tareas (I1) pertenecientes a los modelos iniciales. La IU abstracta (T2) es generada a partir de los modelos de presentación, diálogo y plataforma, e.g., para la tarea de “apagar la luz”, la selección del objeto de interacción (comando de voz o interacción gráfica) se lleva a cabo la IU abstracta (T2), mientras que la selección tanto de la plataforma como de la modalidad, se lleva a cabo en la IU concreta (T3). La generación de la interfaz de usuario (abstracta, concreta o final) del marco RUIUMO puede ser automática (sin que intervenga un humano), manual (el humano realiza dicha actividad) o semi-automática (generada tanto por la herramienta como por el humano). Las tres herramienta presentadas permiten la intervención tanto del sistema como del humano en la creación de algunas de las interfaces de usuario, en especı́fico en la IU abstracta (T2). Tanto SEESCOA como TERESA ofrecen diferentes vistas de la misma interfaz de usuario, permitiendo que el desarrollador elija la más apropiada. Dos de las herramientas analizadas, PetShop y TERESA, proponen analizar y estructurar la IU final (T4) en la etapa de diseño. Por otro lado, SEESCOA es la única herramienta que implementa la generación de interfaces de usuario en tiempo de ejecución. Es importante destacar que tanto SEESCOA como TERESA consideran la adaptación del contexto de uso a nivel de la plataforma en la etapa de diseño, además de considerar la multimodalidad. 3.2 CAMELEON-RT CAMELEON-RT es un módulo arquitectural de referencia conceptual que soporta la redistribución y la migración de la interfaz de usuario en grupos dinámicos heterogéneos, los cuales se refieren a conjuntos de computadoras que soportan la incorporación y el retiro de dispositivos sin afectar a la tarea en curso del usuario [Balme et al., 2004]. 3.2.1 Capas de sistemas interactivos, DMP y plataforma CAMELEON-RT está estructurado en tres niveles de abstracción (cf. Figura 3.2): en la parte superior se encuentra la capa de sistemas interactivos; en la parte media se observa el núcleo de la arquitectura, la cual contiene el middleware Distribución-Migración-Plasticidad (middleware DMP) y, finalmente, en la parte inferior está la capa de plataforma. La capa de plataforma incluye tanto el hardware como el sistema operativo. El hardware 50 Marcos de desarrollo de sistemas plásticos Capa de sistemas interactivos Sistema interactivo Meta- IU Infraestructura de contexto Capa DMP Herramientas de interacción Administrador de plataforma Observador de sistema interactivo Observador de usuario Observador de plataforma Configurador Sintetizador de situación Motor de evolución Observador de lugar físico Identificador de situación Administrador de componente Herramientas para abstracción, traslación y concretización Espacio de almacenamiento Productor de adaptación SO 4 SO 5 Administrador de adaptación-abierta Capa plataforma Sistema operativo SO 1 SO 2 SO 3 Hardware (sensores, actuadores, superficies, ...) Figura 3.2: Estructura del modelo arquitectural de referencia CAMELEON-RT se refiere a una variedad de entidades fı́sicas, e.g., superficies e instrumentos, capacidad de procesamiento y servicios de comunicación, ası́ como sensores y actuadores. La capa de sistemas interactivos incluye los sistemas interactivos (e.g., una aplicación CamNote y una meta-interfaz de usuario) que los usuarios ejecutan en un espacio interactivo. La Meta-Interfaz de Usuario (Meta-IU) vincula las actividades que se pueden realizar en el espacio interactivo y proporciona a los usuarios los medios para configurar, controlar y evaluar el estado de dicho espacio. La capa middleware DMP satisface tres requisitos: el modelado del espacio fı́sico, los grupos dinámicos heterogéneos y la adaptación de la interfaz de usuario (cuando ocurre la redistribución o la migración). A cada requisito mencionado le corresponde un servicio de la capa DMP: una infraestructura de contexto, un administrador de plataforma, herramientas de interacción y un administrador de adaptación-abierta (se dice que una interfaz de usuario es adaptativa-abierta si provee un mecanismo de administración). La infraestructura de contexto permite al espacio interactivo crear y mantener un modelo del lugar fı́sico. Está infraestructura genera información contextual en el apropiado nivel de Capı́tulo 3 51 abstracción, a partir de los sensores de datos y de los eventos del sistema operativo. Tanto el administrador de plataforma como las herramientas de interacción tienen el mismo papel funcional del entorno de X-Windows 2 , con la diferencia de que amplı́an los grupos heterogéneos dinámicos. La ampliación de dichos grupos incluye: a) apoyar el descubrimiento de dispositivos, b) ocultar la heterogeneidad de los sistemas operativos y del hardware y c) apoyar la redistribución y la migración de las interfaces de usuario. El administrador de adaptación-abierta incluye observadores que proporcionan información contextual apropiada a un sintetizador de situación, cuyo rol es informar al motor de evolución sobre la aparición de una nueva situación que puede requerir una adaptación abierta. En caso de que se requiera tal adaptación, el motor de evolución utiliza los componentes recuperados del espacio de almacenamiento, además de un configurador para producir una nueva interfaz de usuario. Los observadores sirven como puertas entre el entorno y el sintetizador de situación. El observador de plataforma reúne información relacionada con los dispositivos (e.g., llegada y salida de una PDA o acoplamiento de dos superficies) mediante la suscripción de los componentes del contexto para conocer la evolución de la plataforma. El observador de lugar fı́sico mantiene un modelo del lugar fı́sico (e.g., ubicación de un usuario en la sala R o en la calle S). Por otro lado, el observador de usuario se enfoca en los usuarios, e.g., su perfil o su posición relativa a una superficie vertical. El observador de sistemas interactivos se suscribe a información relevante para la plastificación de sistemas interactivos. El sintetizador de situación recopila información de la situación actual, la cual es proporcionada por los observadores. Una situación se define por un conjunto de observadores que satisface un conjunto de predicados. El motor de evolución genera una reacción en respuesta a una nueva situación mediante un grafo de situaciones. La reacción puede ser una combinación de las especificaciones indicadas por los desarrolladores y/o los usuarios (mediante una Meta-IU) o adquirida por dicho motor de evolución. El configurador ejecuta la reacción expresada por los desarrolladores; si se necesitan nuevos componentes, estos son recuperados del espacio de almacenamiento por el administrador de componentes. 2 X-Windows está enfocada en dotar a los sistemas UNIX de interfaces de usuario, dicho planteamiento surgió alrededor del año 1984. Este sistema permitı́a a las aplicaciones un despliegue mediante la red sobre dispositivos independientes, haciendo transparente la red. X-Windows tiene tres principales componentes: 1) el administrador de ventanas se encarga de controlar el tamaño y los atributos de las ventanas y de remplazar la ventana de una aplicación, 2) el administrador de entradas implementa el resto de la interfaz, i.e., este controla qué aplicación ve la entrada de cierto dispositivo y 3) el sistema windows base se encarga de construir y pasar los parámetros necesarios a las aplicaciones, al administrador de ventanas y al administrador de entradas [Gettys and Packard]. 52 3.2.2 Marcos de desarrollo de sistemas plásticos Implementación Por medio de CAMELEON-RT se crearon dos casos de estudio, los cuales son CamNote (por CAMELEON Note) y I-AM (Interaction Abstract Machine). Como se mencionó en el capı́tulo 2, el primero es un visualizador de diapositivas que se ejecuta en plataformas heterogéneas dinámicas, pocket PC y PC. La aplicación CamNote puede ejecutarse por completo en una PC o bien puede dividirse entre los dispositivos mencionados. I-AM es un administrador de plataforma que en esencia es similar a X-Windows, pero soporta grupos dinámicos heterogéneos. A continuación se describen los componentes de las capas de CAMELEON-RT que se utilizaron estos casos de estudio: Respecto a la capa de plataforma, CamNote considera diferente dispositivos PC y pocket PC (hardware), en tanto que I-AM considera diferentes sistemas operativos (software); En cuanto a la capa de sistemas interactivos, CamNote implementa una Meta-IU, la cual permite al usuario evaluar la migración y el proceso de adaptación del panel de control; Como se mencionó en la sección 3.2.1, la capa middleware DMP está formada de tres grupos de componentes: 1) la infraestructura de contexto, 2) el administrador de plataforma y un conjunto de herramientas de interacción, y 3) un administrador de adaptación-abierta. Respecto a esta capa, I-AM sólo implementa el segundo grupo de componentes, ya que posee una infraestructura para descubrir cambios en la plataforma, oculta la heterogeneidad del hardware (PC y PDA) y soporta la migración de la interfaz de usuario. Por otro lado, CamNote implementa los siguientes componentes del tercer grupo: el motor de evolución mediante reglas determinadas por el desarrollador y el configurador de situación a través de una técnica de recuperación de datos. Además, CamNote crea una nueva situación (a partir del sintetizador de situación) en respuesta a la llegada o salida de una pocket PC. 3.3 Marco de Plasticidad Implı́cita El marco de Plasticidad Implı́cita (PI) [Sendı́n and Collazos, 2006] tiene como objetivo incorporar plasticidad y conciencia de grupo en sistemas colaborativos, a partir del desarrollo de una plantilla genérica y adaptable denominada IPE (Implicit Plasticity Engine). El concepto de “plasticidad implı́cita” se refiere a la adaptación dinámica de la interfaz de usuario de un sistema colaborativo cuando un usuario cambia a un nuevo contexto de uso, e.g., cambios en el nivel de la luz de dı́a, en el ancho de banda de la red o en la localización del usuario. Los cambios en la interfaz de usuario se pueden resolver mediante un reajuste automático en el lado del cliente, sin requerir ninguna petición dirigida al servidor [Sendı́n and Lorés, 2004]. La plantilla IPE ofrece un mecanismo en tiempo de ejecución con la capacidad de: 1) detectar el contexto y 2) adaptar la interfaz de usuario a cambios contextuales. De esta forma, IPE provee una adaptación pro-activa del lado del cliente. Capı́tulo 3 53 El objetivo del marco es proporcionar una retro-alimentación sin discontinuidades durante el proceso de adaptación plástica, manteniendo ambos lados (cliente y servidor) en continua actualización. Bajo este enfoque, el cliente sólo recurre al servidor cuando necesita reconfigurar una interfaz de usuario no resuelta localmente por IPE. Para realizar dicha reconfiguración, el cliente envı́a al servidor los cambios contextuales que requieren adaptaciones a la nueva situación. La platilla IPE se divide en tres capas: 1. la capa lógica contiene el núcleo funcional de la aplicación; 2. la capa de aspectos es una capa intermedia responsable de aplicar la adaptación sobre el núcleo funcional según el modelo contextual (capa de conciencia de contexto). Desde el punto de vista de la colaboración, la capa de aspectos debe comunicar eventos y acciones para mejorar las actividades de grupales; 3. la capa de conciencia de contexto permite controlar y modelar condiciones en tiempo real (modelo contextual); en el caso de los sistemas colaborativos, esta capa es responsable de administrar toda la información relacionada con la comunicación y la coordinación que afectan al grupo. Hasta el dı́a de la publicación del artı́culo, los autores reportan que están desarrollando el soporte colaborativo del lado del servidor, por lo tanto no existe ninguna implementación de este marco. 3.4 Marco de Plasticidad Explı́cita Colaborativa Sendin et al. proponen un marco conceptual llamado Plasticidad Explı́cita Colaborativa (PEC) [Sendı́n and Lorés, 2004]. El término de “plasticidad explı́cita” se refiere a la capacidad de generar automáticamente una interfaz de usuario especı́fica para un contexto de uso, empezando de una especificación abstracta. Para lograr la generación automática de dicha interfaz se requiere de una máquina EPE (Explicity Plasticity Engine) en la etapa de diseño [Sendı́n and Collazos, 2006]. El marco PEC se ubica del lado del servidor para llevar a cabo las adaptaciones necesarias cuando un cliente haya iniciado una sesión o solicite una nueva adaptación. Dicho marco aborda tres puntos: 1) conciencia de grupo como un parámetro de la plasticidad, 2) integración de un mecanismo de conciencia tanto del lado del cliente como del lado del servidor y 3) integración de una vista general del conocimiento compartido. Este último se refiere a todos los aspectos del trabajo colaborativo que pueden ser usados en el desarrollo de una actividad 54 Marcos de desarrollo de sistemas plásticos grupal [Sendin et al., 2008]. 3.4.1 Fases ARP, CRP, IMP y PIM El marco PEC se divide en cuatro fases: 1) Abstract Rendering Process (ARP), 2) Concrete Rendering Process (CRP), 3) Implementation (IMP) y Preparation of the Initial Models (PIM). La fase PIM contiene los repositorios necesarios para llevar a cabo la adaptación, e.g., dialogo, tarea, dominio y espacial. La fase ARP genera la Interfaz de Usuario Abstracta (IU abstracta) usando los siguientes modelos: tarea, dominio, espacial, usuario, dialogo y grupo. La fase CRP obtiene la Interfaz de Usuario Concreta (IU concreta) a partir de la IU abstracta; ésta fase selecciona los componentes concretos de la interfaz de usuario que mejor representa la funcionalidad descrita por los componentes abstractos. Finalmente, la fase IMP genera la Interfaz de Usuario Final (IU final) a partir de la IU concreta y regresa la IU final como código ejecutable o interpretable. Las fases ARP, CRP e IMP se componen de varios modelos, los más representativos se mencionan a continuación (cf. Figura 3.3): • Modelo de tarea: es una representación estructurada de las tareas que un usuario puede llevar a cabo mediante una interfaz de usuario; • Modelo de dominio: denota los objetos relacionados con la tarea de un usuario; • Modelo de usuario: representa las caracterı́sticas y los aspectos relacionados con un usuario, tales como el nivel de conocimiento, preferencias, objetivos, situación, necesidades, etc.; • Modelo de dialogo: se utiliza para describir la conversación entre una persona y una computadora. El modelo de diálogo permite establecer el estilo de navegación; • Modelo espacial: es una descripción detallada del mundo real que proporciona conciencia de ubicación; • Modelo de plataforma: se refiere a una expresión explı́cita de la plataforma de interacción en términos de recursos fı́sicos y caracterı́sticas de software (e.g., sistema operativo, versión de la máquina virtual de Java y configuración); • Modelo de entorno: considera el tiempo (e.g., hora y dı́a de la semana) y las condiciones ambientales (e.g., luz del dı́a, nivel de ruido ambiental y condiciones meteorológicas) que son especı́ficos para cada dominio de aplicación y que influyen en la adaptación; • Modelo de grupo: es una representación del conocimiento compartido; en este modelo se considera una memoria de grupo, la cual se puede conceptualizar como una colección de percepciones individuales (conciencia de grupo). Capı́tulo 3 55 Figura 3.3: Marco conceptual de Plasticidad Explicita Colaborativa El marco PEC se compone de los modelos previamente mencionados y de los niveles de abstracción enlistados a continuación [Calvary et al., 2003, Sendin et al., 2008]: 1. IU abstracta : es la interpretación de los conceptos de domino y funciones, los cuales son independientes de los interactores. Esta interfaz de usuario es generada en la fase ARP; 2. IU concreta: hace explı́cita la interfaz de usuario final, aunque esta solo se ejecute dentro del entorno de desarrollo en el que fue creada, e.g., para visualizar una interfaz de usuario que no es ejecutable. La fase CRP obtiene esta interfaz de usuario a partir de la 56 Marcos de desarrollo de sistemas plásticos IU abstracta; 3. IU final: es generada a partir de la IU concreta, la cual es expresada en código fuente, e.g., Java y HTML. Esta interfaz de usuario puede ser interpretada o compilada como una interfaz de usuario pre-calculada, además de que es lanzada en ejecución en el entorno de desarrollo en donde fue creada. La fase que se encarga de generar la IU final es IMP (cf. Figura 3.3) ya que transforma el aspecto visual y dinámico de la IU concreta en código ejecutable. El marco PEC no solamente utiliza modelos y niveles de abstracción, sino también emplea componentes, e.g., el modelo repositorio permite compartir conceptos, en tanto que el modelo de transformación describe la conversión de la IU abstracta a la IU concreta . Asimismo, este marco maneja reglas de colaboración para informar cuando el servidor recibe una solicitud de un miembro del grupo. 3.4.2 Implementación Una implementación del marco PEC es la herramienta AB-UIED que soporta casi todos los componentes del marco, excepto los relacionados con el soporte de la colaboración (e.g., modelo de grupo) [Sendin et al., 2008]. Algunos de los modelos implementados en AB-UIED son los siguientes: • Modelo de tarea: usa tres diferentes notaciones, tales como diagrama de estado, modelo CTT, además de una herramienta de interacción abstracta; • IU abstracta: usa UMLi (Unified Modeling Language for Interactive Applications); • IU concreta: usa UsiXML (User Interface eXtensible Markup Language); • IU final : es realizada por un traductor; • Criterio de usabilidad: describe el peso y la importancia de cada criterio de usabilidad. 3.5 Marco para la Adaptación de la Conciencia de Contexto en Despliegues Públicos El propósito de este marco [Cardoso and José, 2009] es orientar a los diseñadores en la creación de despliegues públicos que ofrezcan la información correcta en el momento adecuado. Dentro de las organizaciones, los despliegues públicos se han utilizado para facilitar las tareas, la Capı́tulo 3 57 sincronización grupal, el trabajo cooperativo, la construcción de una memoria individual y grupal, etc. [Churchill et al., 2004]. Este marco pretende lograr su objetivo mediante la relación de tres fases: huellas digitales, datos y adaptación. La adaptación contextual comienza por la fase huellas digitales (cf. componentes Hd1.1-Hd4 de la Figura 3.4), la cual se puede expresar como un conjunto de datos en la fase de datos (cf. componentes D1-D4 de la Figura 3.4) que sirven para realizar la adaptación en la fase de adaptación (cf. componentes A1-A4 de la Figura 3.4). En particular, los componentes A1-A4 del proceso de adaptación son sólo sugerencias que pueden ser remplazadas por los diseñadores. Huellas digitales Caracterización de la presencia (Hd1.1) Identificación de la presencia (Hd1.2) Enriquecimiento de la presencia (H2) Datos Patrón de presencia (D1) Patrón de presencia individual (D2) Adaptación Adaptación dependiendo ciertas características, e.g., género y edad. (A1) Adaptación individual, e.g., no mostrar el contenido previamente visto por el usuario. (A2) Sugerencia de contenido (Hd3) Palabras claves (D3) Adaptación combinando la presencia individual y palabras claves, e.g., mostrar deportes cuando la mayoría de usuarios estén interesados. (A3) Detección de reacción (Hd4) Popularidad de los elementos (D4) Adaptación al mostrar automáticamente contenido de interés en cierto lugar. (A4) Figura 3.4: Marco para la Adaptación de la Conciencia de Contexto en Despliegues Públicos Particularmente, la fase huellas digitales hace referencia al historial generado de las interacciones implı́citas o explı́citas de un usuario con un despliegue público. Dichas interacciones pueden ser de diferentes tipos, e.g., palabras claves, presencia, contenido, retro-alimentación de contenido y perfiles personales. Cordoso y José se enfocan en los siguientes cuatro componentes de la fase de huellas digitales (Hd): presencia (Hd1.1 y Hd1.2), enriquecimiento de la presencia (Hd2), sugerencia de contenido (Hd3) y detección de reacción (Hd4). Tanto la caracterización de presencia (Hd1.1) como la identificación de presencia (Hd1.2) pertenecen a la huella digital de presencia. En este marco, la presencia se refiere a la habilidad de colectar información relacionada con las personas cercanas a un despliegue, ası́ que el componente Hd1.1 considera varios aspectos, e.g., la cantidad de personas, la edad y el género de dichas personas, periodos de alta y baja actividad en el lugar y la presencia de personas con ciertas caracterı́sticas. El mecanismo de interacción que puede usarse para generar el componente Hd1.1 es el de detección facial. Una vez obtenida la caracterización, se puede aplicar algún patrón de 58 Marcos de desarrollo de sistemas plásticos presencia (D1) para realizar algún tipo de adaptación A1, e.g., suponiendo que la audiencia se caracteriza por género, se puede desplegar información relevante para mujeres cuando la mayorı́a de la audiencia sea del género femenino. La identificación de presencia (Hd1.2) es la habilidad de detectar quién está presente, ya que esto permite asignar una única identidad. El enriquecimiento de la presencia (Hd2) se refiere a la habilidad de obtener información acerca de los intereses, preferencias y actividades de las personas cercanas a un despliegue. Los posibles mecanismos de interacción que generan tanto la identificación como la presencia son los de detección por Bluetooth o RFID (Identificación por Radio Frecuencia), con la diferencia de que el componente Hd2 requiere que ambas detecciones proporcionen adicionalmente el perfil del usuario, en cambio el componente Hd1.2 no requiere dicho perfil. Otra forma de generar el componente Hd2 es mediante software, e.g., obtener dicha información de páginas personales o de un conjunto de intereses previamente establecidos en algún sitio de Internet. Una vez obtenida la identificación de la presencia se puede implementar el patrón individual de presencia (D2), el cual permite a los sistemas de despliegue minimizar la repetición del contenido visto por cada usuario o identificar en qué periodos de tiempo se encuentra la misma persona, ası́ como establecer una correlación entre diferentes personas o grupos (cf. componente de adaptación A2). En este marco, la sugerencia de contenido (Hd3) permite que los usuarios intervengan de manera implı́cita, ya que ellos clasifican el contenido dependiendo del lugar. Dicho contenido lo provee el usuario de manera directa al enviarlo (e.g, imágenes o audio) o de manera indirecta mediante un URL. La detección de reacción (Hd4) se refiere a la habilidad de detectar la reacción de los usuarios hacia cualquier acción sugerida por un despliegue. Los mecanismos de interacción para los componentes Hd3 y Hd4 pueden ser el correo electrónico, el servicio de mensajes cortos (SMS por su siglas en inglés) y la tecnologı́a Bluetooth. Ambos componentes (Hd3 y Hd4) utilizan los mismos mecanismos, solo que el primero los utiliza para proveer el contenido y el segundo para enviar comandos de texto. Otra diferencia radica en que el componente Hd4 puede utilizar otros mecanismos, e.g., una pantalla táctil para proveer la reacción mediante una interfaz gráfica de usuario y RFID para detectar la reacción mediante la proximidad a un despliegue. Las palabras claves (D3) se pueden obtener a partir del enriquecimiento de la presencia (Hd2), de la sugerencia de contenido (Hd3) y de la detección de reacción (Hd4), mientras que la popularidad de elementos (D4) puede ser generada a partir de la detección de reacción (Hd4). El componente de adaptación (A3) puede ejecutarse al combinar el patrón individual de presencia (D2) con las palabras claves (D3) para que el sistema de despliegue pueda seleccionar el mejor contenido para una preferencia individual, e.g., si algunas personas expresan su interés respecto a un deporte, entonces el sistema podrı́a mostrar el contenido relacionado Capı́tulo 3 59 con ese deporte en un momento dado. El componente de adaptación (A4) tiene como objetivo proporcionar elementos similares en las personas. Esta adaptación permite al sistema encontrar intereses de contenido, sin necesidad de que los usuarios los expresen de manera explı́cita. Hasta la fecha no se han implementado casos de prueba para este marco. 3.6 Marco y Arquitectura para Recomendaciones de Conciencia de Contexto Grupal El marco para Recomendaciones de Conciencia de Contexto Grupal (RCCG) provee sugerencias de contexto para modo tanto individual como grupal. Este marco está implementado mediante una arquitectura cliente-servidor [Hussein et al., 2010]. La arquitectura propuesta se denomina Vistas de Contexto Hybreed. Hussein et al. utilizan el término “vista de contexto” para referirse a un estado virtual que se genera a partir de una secuencia de operaciones de contextualización. El contexto considera información externa a las circunstancias (e.g, tiempo y lugar) e información derivada de la interacción de los usuarios con el sistema (e.g., descargas e historial de navegación). La arquitectura Vistas de Contexto Hybreed está representada mediante un diagrama de clases que contiene los siguientes elementos: AgenteDeContexto, AdministradorDeEstado, MecanismoDeSensado, MecanismoDeVista, Vista, RepositorioDeEstado y AdaptadorFinal, de las cuales MecanismoDeSensado, FlujoDeTrabajo y AdaptadorFinal son interfaces (cf. Figura 3.5). AdaptadorDePuntoFinal 0..* MecanismoDeVista 0..* Vista 1 FlujoDeTrabajo 1 0..* AgenteDeContexto AdministradorDeEstado RepositorioDeEstado 1 MecanismoDeSensado Figura 3.5: Diagrama de clases de la arquitectura Vistas de Contexto Hybreed La clase AgenteDeContexto es responsable de procesar las peticiones del usuario. La clase AdministradorDeEstado tiene como responsabilidad administrar el estado individual o grupal de los usuarios, e.g., si la ubicación de un usuario ha cambiado o si un usuario dio 60 Marcos de desarrollo de sistemas plásticos clic sobre un ı́cono. Esta clase está ubicada en el servidor y recibe notificaciones, por parte de cada cliente, acerca de algún cambio en el estado actual del usuario correspondiente, lo cual implica la actualización de dicho estado. La clase AdministradorDeEstado también puede recibir la petición del estado global de un grupo, lo cual implica que el servidor solicite información de estado a cada cliente. Debido a que el estado global es la suma de los estados individuales, Hussein et al. sugieren un mecanismo de bloqueo para evitar un problema de concurrencia. Dependiendo de la configuración realizada por los desarrolladores, el evento de actualización podrı́a desencadenar algunas operaciones de inferencia en el servidor . La clase MecanismoDeSensado infiere información de estado, e.g., determina la localización geográfica de un usuario a partir de la dirección IP proporcionada por el cliente. La clase RepositorioDeEstado se encarga de almacenar estados individuales y globales y opcionalmente guarda el contexto del grupo. En el caso de los estados globales, el repositorio podrı́a usar sentencias para representar el estado de un grupo. Dichos datos se guardan en un servidor central. La clase MecanismoDeVista habilita un proceso de contextualización cuando un cliente realiza la búsqueda de un estado virtual. La implementación de la interfaz FlujoDeTrabajo describe cómo un estado cambia dentro de una contextualización. Hussein et al. proporcionan un ejemplo de flujo de trabajo para ilustrar algunas recomendaciones. Dicho ejemplo puede ser reemplazado por algoritmos de contextualización, ya que estos no están incluidos en el marco. Los algoritmos de recomendación que se implementaron para la arquitectura propuesta corresponden a: • la denotación de elementos relevantes mediante reglas; • la propagación de la activación se refiere al intercambio de información entre nodos, ya que al activarse uno o más nodos se pueden activar nodos adyacentes que tienen cierto grado de relación semántica con los primeros nodos; • el filtro colaborativo considera varios métodos para transferir tanto la vista de contexto como el trabajo a los colaboradores que forman parte de un grupo, considerando caracterı́sticas en común; • las aproximaciones hı́bridas se refieren a la utilización de algunos de los algoritmos mencionados, e.g., el uso de un filtro colaborativo para obtener ciertos elementos, los cuales pueden utilizarse como mecanismos de activación en el algoritmo de propagación de la activación. Bajo este marco se implementó la arquitectura propuesta, ası́ como la librerı́a Hybreed RecFlow. Dicha librerı́a es una implementación de la interfaz FlujoDeTrabajo, pero no se reporta el desarrollo de alguna aplicación especı́fica. Capı́tulo 3 3.7 61 Marco Genérico de Contexto El marco Genérico de Contexto (GC) es un marco conceptual para aplicaciones adaptativas al contexto que considera aspectos internos y externos al sistema. También este marco cubre aspectos individuales como grupales. Este modelo abarca la conciencia de contexto y la adaptación al contexto [Haake et al., 2010]. Haake et al. sugieren que antes de utilizar el marco GC se debe definir dos puntos: 1) la situación en donde la adaptación es necesaria, y 2) las acciones de adaptación que deben ejecutarse para mejorar la colaboración. 3.7.1 Capas de adaptación conocimiento, estado, contextualización y El marco GC está dividido en cuatro capas: conocimiento, estado, contextualización y adaptación (cf. Figura 3.6). Capa de adaptación Reglas de adaptación Estado de adaptación Capa de contextualización Reglas de contextualización Estado contextualizado Capa de estado Reglas de sensado Estado Capa de conocimiento Reglas de inferencia Conocimiento concreto preConocimiento abstracto predefinido Modelo de dominio Figura 3.6: Marco Genérico de Contexto La capa de conocimiento es la base principal de este marco, cuyo objetivo es proveer los fundamentos necesarios para representar tanto el modelo del dominio como los diferentes 62 Marcos de desarrollo de sistemas plásticos aspectos del contexto, e.g., entorno fı́sico, dispositivos de cómputo y modelo del usuario. Esta capa requiere de los siguientes componentes para lograr su propósito: modelo de dominio, reglas de inferencia, conocimiento concreto y abstracto. El conocimiento abstracto puede ser inferido del conocimiento concreto, e.g., la idea de que una persona está en un cuarto (conocimiento abstracto), se deriva del hecho que Paúl está en el cuarto LF283 (conocimiento concreto). Las reglas de inferencia se encargan de hacer la extracción de un conocimiento a partir de otro. El modelo de dominio tiene como función almacenar tanto el conocimiento abstracto como el concreto, ası́ como enviar y recibir información de la capa de estado. A este nivel, la información obtenida puede ser de varios tipos: de un usuario, de una situación independiente, información neutral, información del sistema o información externa estática, e.g., la capital de un paı́s. Este modelo contiene varias clases para el manejo de la comunicación sı́ncrona y ası́ncrona por medio de audio, video y chat, conciencia sı́ncrona y ası́ncrona, administración (e.g., sesión, concurrencia y usuario), ası́ como editores compartidos (e.g., texto, imagen y calendario). La capa de estado contiene información de la situación actual, del entorno fı́sico y computacional, de los recursos y del usuario, e.g., ¿En dónde está el usuario? ¿Qué hora es? y ¿Cuál es la circunstancia actual? A este nivel se obtiene un modelo del estado actual, mediante grafos de estado. Los componentes de esta capa corresponden a las reglas de sensado y el modelo de estado. Las reglas de sensado toman información interna y externa al sistema, ası́ como el conocimiento concreto mediante el modelo de dominio (ambos ubicados en la capa de conocimiento) para reflejar el estado individual y sus propiedades. La capa de contextualización provee técnicas que definen un subconjunto de un estado que es relevante para cierto enfoque, el cual es un subconjunto no vació de objetos del modelo de estado que representa en cierto momento, i. e., el centro de atención del sistema. El enfoque sirve como entrada inicial para ejecutar las técnicas de contextualización. Los componentes en esta capa corresponden a las reglas de contextualización y al estado de contextualización. Las reglas de contextualización seleccionan aquellas partes de todo el estado que son relevantes para el enfoque actual. La sentencia SI-ENTONCES se utilizó en esta capa, e.g., SI (?Person 1 works on ?ProyectY) Y (?Person 2 works on ?ProyectY) Y (?Person 1 has pref com channel ?Com c) Y (?Person 2 has pref com channel ?Com c) ENTONCES ?Com c. La regla de contextualización infiere que ambos colaboradores tienen preferencia por el mismo canal de comunicación (?Com c), el cual es agregado al estado de contextualización. El estado de contextualización puede verse como un filtro, cuyo resultado es un grafo por cada enfoque (e.g., usuario o grupo) que sirve para la adaptación. Finalmente, la capa de adaptación contiene las reglas de adaptación que describen qué Capı́tulo 3 63 acción de adaptación se ejecuta en qué caso. Las reglas de adaptación incluyen operaciones para cambiar propiedades del entorno colaborativo o variables de estado (e.g., mostrar o iniciar alguna aplicación). Como resultado de esta capa, la adaptación se refleja en la interfaz de usuario. 3.7.2 Implementación Haake et al. proponen algunos dominios de aplicación de los sistemas colaborativos, ası́ como una serie de escenarios en donde puede aplicarse el marco propuesto. Los dominios de los sistemas colaborativos están representados mediante diagramas de bloques. Los dominios considerados son: artefactos compartidos (imagen, documento, etc.), roles, espacios de trabajo, tareas a resolver, actividades de los colaboradores y aplicaciones colaborativas. Por otro lado los escenarios, representados por medio del lenguaje OWL (Web Ontology Language), están divididos respecto a situaciones colaborativas tales como co-localización, coacceso, co-recomendación y co-dependencia. Cada escenario ejemplifica la situación de dos personas que colaboran en la redacción de un documento. A continuación se exponen los puntos importantes a considerar en cada escenario: la detección tanto de los participantes que están co-localizados como los dispositivos en uso (co-localización); la habilitación de funcionalidades en un sistema colaborativo con base en el rol de un colaborador (co-acceso); la recomendación de información dada una solicitud previa (co-recomendación) y la manipulación de tareas, e.g., la asignación automática o manual, las prioridades entre ellas, la fecha lı́mite y la dependencia entre ellas (co-dependencia). El proceso de adaptación de este marco sigue el ciclo tradicional de adaptación, el cual consiste de las fases siguientes: acción del usuario, sensado, selección de la adaptación y ejecución de la adaptación. En particular, el proceso de adaptación del marco CG se puede representar de la siguiente manera: • el sensado tiene como entrada la información proveniente del exterior e interior del sistema y del modelo de dominio (capa de conocimiento). Las entradas anteriores son procesadas mediante reglas de sensado para generar o modificar el modelo de estado (capa de estado); • la selección de la adaptación tiene como entrada el modelo de estado (capa de estado), el cual es procesado por las reglas de contextualización, cuya tarea es establecer el estado de contextualización (capa de contextualización); • la adaptación tiene como entrada el estado de contextualización (capa de contextualización), el cual es procesado por las reglas de adaptación (capa de adaptación). Esta fase tiene como objetivo ejecutar la adaptación correspondiente, e.g., mostrar información relacionada o encender/apagar un proyector. 64 Marcos de desarrollo de sistemas plásticos El marco GC permite extender las aplicaciones colaborativas con propiedades adaptativas. La extensión se logra mediante una arquitectura conceptual (cf. Figura 3.7), la cual pretende dar una opción para unir una aplicación colaborativa con un soporte de adaptación a cambios contextuales. En el lado derecho de dicha arquitectura, se muestran los componentes del marco CG, mientras que en el lado izquierdo se representan los componentes de la aplicación a extender. El marco GC está compuesto por el servidor de adaptación, el cual incluye tres mecanismos (sensado, adaptación y contextualización) que representan el proceso de adaptación mencionado en el párrafo anterior. Capa de IU IU de la aplicación IU de la aplicación 1 IU de la aplicación 2 Componente de adaptación Capa de lógica Servidor de adaptación Lógica de la aplicación Lógica de la aplicación 1 Servicios básicos Lógica de la aplicación 2 Notificador Mecanismo de sensado Mecanismo de adaptación Mecanismo de contextualización Capa de servicio Servicios Servicios de contexto Servicios de aplicación Servicios de colaboración Servicios del MGC Capa de modelo Modelo de contexto Repositorio compartido Artefacto 1 Artefacto 2 Artefacto 3 Modelo del MGC Figura 3.7: Arquitectura conceptual del Marco Genérico de Contexto Otro módulo importante es el servicio de contexto, el cual accede y manipula el módulo modelo de contexto. Este está conformado por los diferentes modelos del marco, e.g., modelo de dominio, reglas de sensado y el modelo de estado. En la arquitectura propuesta se debe habilitar primero el mecanismo de adaptación para Capı́tulo 3 65 permitir cambios en las IU de la aplicación por medio del componente de adaptación. Dicho componente llama a las funciones de adaptación, las cuales son proporcionadas por los desarrolladores de la aplicación. Después de habilitar el mecanismo de adaptación, se activa el mecanismo de sensado para monitorear la interacción entre el usuario y la aplicación y los cambios en el entorno de cómputo mediante los servicios básicos, los cuales interceptan a las llamadas de las interfaces desarrolladas y registradas previamente por los desarrolladores. La notificación informa tanto a la lógica de la aplicación como al servidor de aplicación acerca de los cambios relevantes en la configuración. El componente de adaptación se encarga de iniciar o detener las IU de la aplicación, ası́ como de usar una interfaz especı́fica para realizar la adaptación. Las interfaces mencionadas permiten trabajar sobre los componentes de la interfaz gráfica de usuario, e.g., mostrar, ocultar y modificar los componentes. Los desarrolladores del marco GC implementaron la arquitectura conceptual propuesta, en donde la IU de la aplicación funciona como plugin para el entorno de desarrollo Eclipse. El prototipo reportado une la aplicación CURE (Collaborative Universal Remote Education) y R-OSGi 3 para administrar tanto espacios de trabajo como documentos, además de proveer conciencia ası́ncrona y comunicación. Los servicios básicos se refieren al acceso del usuario, a la administración de la sesión, a la autenticación, al acceso a la base de datos y al sensado. Mediante la implementación de la arquitectura, Haake et al. consideran que su marco GC puede ser operacional. Aunque no crearon una aplicación especı́fica, realizaron pruebas funcionales a partir de cuatro escenarios relevantes que denotan situaciones tı́picas del trabajo colaborativo (co-localización, co-acceso, co-recomendación y co-dependencia). 3.8 Análisis comparativo de los marcos analizados En la Tabla 3.2 se analizan dos caracterı́sticas importantes de los marcos revisados. La primera es conocer si los marcos están diseñados para desarrollar sistemas mono-usuario o colaborativos. En este caso se aprecia que tanto el marco RUIUM-O4 como CAMELEON-RT se enfocan en sistemas mono-usuario. En cambio, los marcos restantes (PI5 , PEC6 , ACCDP7 , RCCG8 y GC9 ) se especializan en sistemas colaborativos; el marco PI tiene como objetivo ofrecer plasticidad y conciencia de grupo a los sistemas colaborativos, mientras que el marco PEC combina la conciencia de grupo con la plasticidad. Por otro lado, el marco ACCDP pretende proveer de adaptación de conciencia de contexto en despliegues públicos, lo cuales dan soporte al trabajo 3 http://r-osgi.sourceforge.net/ Referencia Unificado para Interfaces de Usuario Multi-Objetivo 5 Plasticidad Implı́cita 6 Plasticidad Explicita Cooperativa 7 Adaptación de Conciencia de Contexto en Despliegues Públicos 8 Recomendaciones de Conciencia de Contexto de Grupo 9 Genérico de Contexto 4 66 Marcos de desarrollo de sistemas plásticos colaborativo. Marco conceptual Colaborativo Implementación RUIUM-O X --- CAMELEON-RT X CamNote y I-AM PI V --- PEC V AB-UIED ACCDP V --- RCCG V librerı́as GC V arquitectura Tabla 3.2: Modelos conceptuales e implementación de los marcos estudiados Es importante hacer notar que tanto el marco RCCG como el GC tienen la caracterı́stica de abordar el trabajo tanto individual como grupal, ya que el primero tiene como objetivo proveer recomendaciones en ambos ámbitos, en tanto que el marco GC puede ayudar a formar un contexto grupal a partir de aspectos individuales, e.g., determinar la ubicación de cada usuario. La segunda caracterı́stica importante mostrada en la Tabla 3.2 se refiere a conocer si los marcos ofrecen algún tipo de implementación. El marco RUIUM-O no implementa ningún ejemplo de prueba, sino que se probó al compararse con algunas herramientas, que siguen una metodologı́a similar la sugerida en dicho marco. Por otro lado, CamNote y I-AM son aplicaciones creadas con base en el marco CAMELEON-RT. Dentro de los marcos para sistemas colaborativos, el marco PI se encuentra en vı́as de implementación, hasta el momento se encuentra en desarrollo la parte del servidor. Bajo el marco PEC se reporta la herramienta AB-UIED que permite la producción automática de interfaces plásticas, para entornos mono-usuario ya que no se implementaron los módulos concernientes al soporte de la colaboración, e.g., el modelo de grupo. Es importante hacer notar que no se reporta ninguna aplicación desarrollada mediante la herramienta AB-UIED. El marco RCCG ofrece librerı́as y algunos algoritmos para proveer la recomendación de conciencia de contexto, solo que no se reporta ninguna aplicación que haga uso de dichas librerı́as. Por otro lado, Haake et al., autores del marco GC, implementaron la arquitectura Capı́tulo 3 67 propuesta para unir el marco GC con aplicaciones colaborativas. A partir de los escenarios reportados, obtienen pruebas funcionales, las cuales son usadas para probar la implementación de la arquitectura. Por otra parte, como se mencionó en el capı́tulo 2, la implementación de interfaces de usuario plásticas multimodales generan un espacio del problema, e.g., adaptación al contexto de uso, percutores de plasticidad, granularidad de la interfaz de usuario, granularidad del estado de recuperación, etc. Hasta el momento, se consideran siete dimensiones que conforman dicho espacio del problema. Una de las siete dimesiones de mayor relevancia para este trabajo de investigación es la dimensión contexto de uso, la cual considera la adaptación al usuario, al entorno y a la plataforma sin perder un conjunto de criterios de calidad, e.g., la usabilidad. Dicha dimensión se analiza en la tabla 3.3. El marco RUIUM-O considera por completo la dimensión contexto de uso tanto en los modelos ontológicos como en los arquetı́picos; en este marco se considera al usuario de manera general en sus modelos de usuario, ubicado en los modelos ontológicos y arquetı́picos; además podemos observar que existe el modelo de tareas para referirse a la tarea del usuario. En cambio, el modelo de plataforma permite hacer la descripción de los dispositivos disponibles, ası́ como clasificarlos en plataforma básica, e.g, computadora personal, o en clusters. El modelo de entorno contiene caracterı́sticas genéricas para describir los entornos adyacentes. El marco CAMELEON-RT abarca por completo el contexto de uso, i.e., considera al usuario, al entorno y a la plataforma. Dicho marco considera la plataforma, la cual está compuesta por hardware (e.g., sensores y superficies de despliegue) y software (e.g., sistema operativo y aplicaciones en ejecución), mediante varios componentes del marco, e.g., la capa de plataforma y el administrador, para anunciar la llegada o salida de algún dispositivo o informar qué sistema interactivo está ejecutando el usuario. Este marco también abarca el entorno a partir de la infraestructura de contexto y el observador del lugar fı́sico para proveer un modelo del lugar fı́sico; por último abarca al usuario por medio del observador de usuario, el cual provee información relevante, e.g., perfil del usuario, su ubicación y su posición relativa. El marco PEC considera por completo el contexto de uso, ya que representa al usuario mediante varios modelos, e.g., usuario, dominio y tarea, para tener conocimiento de sus caracterı́sticas, e.g., conjunto de tareas que puede llevar a cabo, preferencias, objetivos, nivel de conocimiento, situaciones y necesidades. El marco PEC aborda la plataforma por medio del modelo de plataforma para contabilizar los recursos fı́sicos, ası́ como las caracterı́sticas de software. Finalmente, el marco mencionado contempla al entorno mediante el modelo espacial y el de ambiente para obtener la descripción del exterior, de tal manera que se pueda crear una conciencia de ubicación, tiempo (hora y dı́a de la semana) y condiciones ambientales (luz del dı́a, nivel de ruido ambiental y condiciones meteorológicas). El marco GC también aborda totalmente la adaptación al contexto de uso mediante las capas de conocimiento y estado; en la primera capa se infiere y se almacena los componentes del contexto de uso (entorno, usuario, y plataforma); mientras que en la capa de estado se modela el contexto de uso tomando información interna y externa al sistema ası́ como información de 68 Marcos de desarrollo de sistemas plásticos Marco ceptual con- Usuario Plataforma Entorno tareas básica o clusters caracterı́sticas genéricas del lugar perfil y ubicación fı́sica software y hardware modelo del lugar PI no especifica no especifica no especifica PEC tareas, preferencias, nivel de conocimiento, objetivos y situaciones software y contabiliza los recursos fı́sicos tiempo, condiciones ambientales y meteorológicas identifica y enriquece la presencia no especifica detección de participantes no especifica proporcionar trabajo a miembros aplicaciones y dispositivos de cómputo artefacto, detección de participantes, tiempo, co-localización, espacio de trabajo, recomendación de información RUIUM-O CAMELEONRT ACCDP RCCG GC estado grupal o individual preferencias, grupos, tarea, rol, acciones y actividades Tabla 3.3: Análisis de los marcos con relación al contexto de uso la capa de conocimiento. Las capas anteriores, conocimiento y estado, detectan los cambios en el contexto de uso. Este marco aborda de diferentes maneras la dimensión usuario, e.g, las preferencias de los colaboradores con relación al canal de comunicación, como se menciona en Capı́tulo 3 69 las reglas de contextualización (capa de contextualización); el artefacto que los colaboradores están manipulando en un momento dado, la formación de grupos, varios aspectos de la tarea, tales como la tarea a resolver, las prioridades entre ellas, el tiempo lı́mite, la dependencia entre ellas y la asignación automática o manual; el rol y aspectos dependientes del rol, como los permisos de acceso, y las actividades de los colaboradores. En el caso de la dimensión plataforma se considera las aplicaciones y el uso de diferentes dispositivos. Finalmente, este marco considera varios aspectos de la dimensión entorno compartido, e.g., consideración del artefacto, detección de los participantes, tiempo (hora actual), co-localización, y las acciones permitidas en las aplicaciones con base en el rol. Tanto el marco ACCDP como el marco RCCG abordan parcialmente el contexto de uso, ya que no incluyen a la plataforma. El marco ACCDP se centra en el usuario, ya que detecta la presencia de los usuarios, e.g., edad, género y preferencias, mediante las huellas digitales, la identificación y el enriquecimiento de la presencia. Por su parte, el marco RCCG considera el estado del usuario mediante las clases AdministradorDeEstado, MecanismoDeSensado, entre otras para inferir la ubicación o conocer el elemento de la interfaz de usuario que ha sido seleccionado. El entorno es abordado por el marco ACCDP, ya que puede detectar la cantidad de personas en un lugar, el género, etc, ası́ como la sugerencia de contenido de un grupo mediante la caracterización de huellas digitales y sugerencia de contenido. El marco ACCDP aborda el entorno cuando proporciona el trabajo a miembros de un grupo por medio de los algoritmos de recomendaciones. Por último, el marco PI aborda la adaptación al contexto de uso basándose en IPE (Implicit Plasticity Engine); en particular, la adaptación se calcula en la capa de conciencia de contexto, sin especificar a detalle a qué se adapta la interfaz de usuario, e.g., nivel de luz. El resto de las dimensiones del espacio del problema corresponden a percutores de plasticidad, granularidad de adaptación, granularidad del estado de recuperación, despliegue, espacio tecnológico y Meta-IU. El percutor de plasticidad considera la remodelación, la redistribución y la migración. El marco RUIUM-O permite cambios de una plataforma a otra, e.g., de una PC hacia una PDA, por medio del módulo procesamiento de la reacción ubicado en el modelo de evolución; por lo tanto podemos decir que este marco implementa la migración, pero no especifica si implementa la remodelación o la redistribución. Por otro lado, el marco CAMELEON-RT implementa parcialmente el percutor de plasticidad mediante su capa middleware, la cual soporta la redistribución y la migración de la interfaz de usuario. En cambio, los marcos PI, PEC, ACCDP, RCCG y GC solo mencionan la adaptación de la interfaz de usuario a cambios contextuales cuando sea necesario, pero no indican si esta adaptación se hace mediante remodelación, redistribución o migración. La granularidad de la interfaz de usuario señala el grado en el que la interfaz de usuario ha sido modificada después de la adaptación. Dicha granularidad se clasifica en: nivel aplicación, espacio de trabajo, interactor o pı́xel. En este caso todos los marcos analizados modifican la interfaz de usuario, solo que no mencionan a qué nivel de granularidad cambian. 70 Marcos de desarrollo de sistemas plásticos La granularidad del estado de recuperación se refiere al grado de preservación del trabajo realizado por el usuario en el sistema antes de la adaptación plástica. Tres tipos de granularidad del estado de recuperación son posibles: acción, tarea y sesión. El marco RUIUM-O considera la recuperación del estado mediante el epı́logo, perteneciente al modelo de evolución, al restaurar el contexto de ejecución; ası́ que este marco considera la recuperación sin especificar a qué nivel, solo ejemplifica a nivel de tarea. Aún cuando el marco PEC no especı́fica la implementación de dicha granularidad, considera almacenar información de cada miembro. El resto de los marcos, CAMELEON-RT, PI, ACCDP, RCCG y GC, no proporcionan indicios de soportar la granularidad del estado de recuperación. El despliegue indica el momento en que se realiza la adaptación de la interfaz de usuario, i.e., la adaptación se realiza de manera estática (al momento de lanzar la aplicación) o de manera dinámica (en tiempo de ejecución). Tanto el marco RUIUM-O como PI implementan un despliegue dinámico; el primero lleva a cabo dicho despliegue mediante sus modelos observadores que se encargan de describir la realidad, la cual puede ser usada para llevar a cabo la adaptación; el marco PI implementa el despliegue dinámico gracias a su plantilla IPE. Los demás marcos, CAMELEON-RT, PEC, ACCDP, RCCG y GC, no proveen la información necesaria para determinar el tipo de despliegue implementado. El espacio tecnológico se refiere a la Ingenierı́a Dirigida por Modelos, que puede clasificarse en: intra-espacio, inter-espacios y multi-espacios. La mayorı́a de los marcos conceptuales (RUIUM-O, CAMELEON-RT, PI, PEC, ACCDP, RCCG y GC) no ofrecen suposición alguna de permitir la implementación del espacio tecnológico; el marco RUIUM-O considera el cambio de código ejecutable cuando este no sea soportado por el nuevo contexto, solo que no indica si cambia o permanece en el mismo espacio tecnológico. La Meta-interfaz de usuario (Meta-IU) muestra al usuario el proceso de plasticidad y comprende las siguientes categorı́as: con negociación, sin negociación, plástica e inexistente. En el caso del marco RUIUM-O, este considera la Meta-IU con negociación, ya que el desarrollador puede intervenir en la adaptación de cualquiera de las interfaces de usuario (abstracta, concreta y final) generadas por el marco. Mientras que el marco CAMELEON-RT toma en cuenta la Meta-IU con negociación en la capa de sistemas interactivos, ya que los usuarios pueden manipular el espacio interactivo. Por otro lado, el marco PEC contempla el modelo de diálogo para establecer el estilo de navegación; dicho modelo puede considerarse como una Meta-IU con diálogo. Finalmente, los marcos PI, PEC, ACCDP, RCCG y GC no proporcionan suficiente información para determinar algún tipo de implementación de la Meta-IU. La sección de análisis termina con la tabla 3.4 para mostrar caracterı́sticas como tipo de adaptación, tipo de contexto y variables contextuales. El tipo de adaptación está conformado por la presentación de información, la ejecución automática de un servicio y la información aumentada. Los marcos RUIUM-O, PI, PEC, RCCG y GC no especifican qué tipo de adaptación llevan a acabo, ya que esta tarea queda a cargo del desarrollador. En cambio, el marco CAMELEON-RT lleva a cabo un tipo de adaptación catalogada como ejecución automática al llevar a cabo la redistribución o migración Capı́tulo 3 71 Marco ceptual con- Tipo de contexto Variables textuales mono-entidad contexto CAMELEONejecución RT mono-entidad plataforma PI no especifica multi-entidad contexto PEC no especifica multi-entidad IU inicial y por petición del cliente ACCDP presentación aumentación multi-entidad huellas digitales RCCG no especifica multi-entidad notificar o solicitar el estado GC no especifica multi-entidad contexto RUIUM-O Tipo adaptación de no especifica y con- Tabla 3.4: Análisis de adaptación y contexto en los marcos presentados de la interfaz de usuario. El marco ACCDP proporciona ejemplos de adaptaciones, los cuales cubren dos tipos de adaptación, la primera corresponde a la presentación de información cuando se siguiere mostrar información relevante a un grupo; la segunda se refiere a la información aumentada al mostrar información de interés en un lugar especı́fico. El tipo de contexto se refiere a considerar una sola entidad, mono-entidad, o a considerar varias entidades de forma simultanea, multi-entidad. Aún cuando los marcos RUIUM-O y CAMELEON-RT consideran múltiples variables contextuales, e.g., plataforma, entorno y tareas, dichos marcos son mono-entidad, ya que se centran en satisfacer un solo usuario. Los marcos restantes pertenecen a la clasificación multi-entidad, ya que los marcos PI y CG tienen como objetivo mostrar la conciencia de grupo, mientras que el marco GC pretende proveer conciencia de contexto individual y grupal. Por su parte, el marco ACCDP es multi-entidad porque considera tanto las reacciones como las sugerencias de los usuarios presentes en un lugar para proveer algún tipo de adaptación. Finalmente, el marco RCCG implementan un contexto a nivel multi-objetivo, ya que considera los estados individuales de los usuarios para después generar un estado grupal. 72 Marcos de desarrollo de sistemas plásticos Las variables contextuales son las variables relevantes consideradas para llevar a cabo la adaptación. Los marcos RUIUM-O, PI y GC tienen una variable general, ya que ante cualquier cambio en el contexto, la adaptación tiene que llevarse a cabo. Por otro lado, el marco CAMELEON-RT tiene como variable contextual a la plataforma, pues a partir de la detección de una plataforma la interfaz de usuario puede migrar o redistribuirse. En cambio, el marco PEC realiza la adaptación de dos manera; la primera ocurre al genera la IU inicial y la segunda adaptación ocurre cuando el cliente solicita la adaptación. El marco ACCDP lleva a cabo la adaptación cuando ocurre un cambio en algunas de las huellas digitales siguientes: presencia, enriquecimiento de la presencia, sugerencia de contenido y detección de reacción. Por último, el marco RCCG tiene como variables contextuales la actualización del estado de un usuario o la solicitud del estado global. 3.9 Sı́ntesis Los marcos descritos en esta sección fueron seleccionados, debido a que implementan algunas de los caracterı́sticas de las interfaces de usuario plásticas multimodales. Dado el análisis de los marcos con respecto al contexto de uso se puede observar que existe una tendencia en considerar varias peculiaridades del usuario, e.g., el perfil y las preferencias, con la finalidad de proveer una mejor adaptación de la interfaz de usuario. Estas caracterı́sticas contemplan ciertas acciones en especı́fico, e.g., detectar las preferencias respecto a un tema. Por otro lado, la adaptación a la plataforma se centra en acoplarse a las caracterı́sticas que ofrece cada dispositivo de cómputo, pero la tendencia en este aspecto es utiliza sensores para permitir la conciencia del entorno fı́sico, además de crear clusters de manera dinámica con los dispositivos al alcance de los usuarios. En cuanto la adaptación al entorno, los marcos están tendiendo a modelar el entorno fı́sico, e.g., detectar a las personas en un lugar, ası́ como proporcionar información relevante a cada usuario. Retomando los puntos relevantes de las interfaces de usuario plásticas, se observa que los marcos se inclinan por permitir que los usuarios finales intervengan en la adaptación mediante una meta-interfaz de usuario, ası́ como llevar a cabo la adaptación del sistema en tiempo de ejecución, dejando de lado las dimensiones. Capı́tulo 4 Análisis de requerimientos del marco XARE En este capı́tulo se presenta una recapitulación del contexto de uso de los sistemas mono-usuario que sirve de base para definir el contexto de uso de los sistemas colaborativos (cf. Sección 4.1). Una vez definido este último concepto se puede hacer uso de términos como grupo de colaboradores, conjunto de plataformas y entorno común, los cuales serán mencionados en varios escenarios que involucran procesos adaptativos. Dichas adaptaciones no han sido consideradas en el estado del arte analizado en los capı́tulos 2 y 3. Para dar una idea más clara de los requerimientos evidenciados por estos procesos adaptativos, se proponen varias aplicaciones, algunas de las cuales son reutilizadas en varios de dichos escenarios (cf. Sección 4.2). Cada escenario está estructurado en dos partes: 1) un preámbulo y 2) una descripción detallada. La primera parte explica brevemente las posibles adaptaciones contextuales de las aplicaciones encargadas de automatizar parcial o completamente algún proceso de trabajo colaborativo, mientras que la segunda parte ejemplifica el ámbito del escenario y pone en evidencia los diferentes contextos de uso de las aplicaciones colaborativas involucradas, las cuales fueron generadas a partir de un conjunto de requerimientos funcionales y no funcionales (cf. Sección 4.3-4.9). Finalmente, se presentan una sı́ntesis derivada de este capı́tulo (cf. Sección 6.3). 4.1 Contexto de uso La movilidad de las personas junto con el desarrollo de una amplia variedad de dispositivos de acceso han engendrado nuevos requerimientos en el campo de investigación de la Interacción Humano-Computadora (IHM), tales como la capacidad de los sistemas interactivos para ejecutarse en diferentes contextos de uso. Probablemente la definición de contexto más referenciada 73 74 Análisis de requerimientos del marco XARE es la que proponen Dey et. al, la cual dice [Dey et al., 2001]: “Contexto es cualquier información que puede ser usada para caracterizar la situación de una entidad. Una entidad es un usuario, un lugar, un objeto fı́sico o de cómputo que es considerado relevante para la interacción entre un usuario y una aplicación, incluyendo al propio usuario y a dicha aplicación.” 4.1.1 Contexto de uso de los sistemas mono-usuario Como se mencionó en el capı́tulo 1, la plasticidad de interfaces de usuario en el dominio de los sistemas mono-usuario [Calvary et al., 2006] se define como: “La capacidad de las interfaces de usuario de adaptarse a cambios en el contexto de uso, preservando un conjunto de criterios de calidad, como la usabilidad y la continuidad de interacción”. Por contexto de uso se entiende la terna <usuario, plataforma, entorno> donde el componente usuario denota el arquetipo humano que tiene por objeto utilizar el sistema interactivo [Vanderdonckt, et al., 2008]. Este componente comprende varios elementos: perfil, actividad [Coutaz and Calvary, 2008] y rol, los cuales actúan como factores externos al sistema que depende del usuario y que pueden llegar a modificar el conjunto de funcionalidades que ofrece el sistema. En el ámbito de los sistemas mono-usuario, los factores anteriores (perfiles, actividades y roles) han sido analizados en conjunto. Algunos estudios se han limitado a adaptar las funcionalidades de un sistema a diferentes perfiles de usuario. La adaptación se lleva a cabo de manera personalizada, ya que las necesidades y preferencias del usuario solo afectan a la instancia del sistema que él está ocupando, sin afectar a las instancias de los demás usuarios. Algunos ejemplos de este tipo de adaptación serı́an informar a los usuarios de una librerı́a sobre la llegada de nuevo material, según el perfil de cada uno de ellos [Amato and Straccia, 1999], o permitir a los usuarios decidir la manera en que desean ser contactados, dada una situación determinada [Stan et al., 2008]. El componente plataforma se refiere a los dispositivos de hardware y software disponibles para sostener la interacción del usuario con el sistema. La plataforma puede ser modelada en términos de los recursos computacionales que determinan la forma en que se procesa, se transmite y se presenta la información, ası́ como la manera en que el usuario manipula la información. Comúnmente el tamaño de la memoria, el ancho de banda de la red y los medios de interacción motivan la selección de un conjunto de modalidades de E/S y la cantidad de información disponible [Calvary et al., 2001, Calvary et al., 2004]. El componente entorno describe las condiciones fı́sicas y sociales donde tiene lugar la interacción, e.g., los objetos, las personas y los eventos que son periféricos a la tarea que se Capı́tulo 4 75 está desarrollando en un momento dado, pero que pueden tener un impacto en el comportamiento: a) del sistema, e.g., un entorno ruidoso puede eliminar la realimentación por audio, y/o b) del usuario, e.g., su localización provee un contexto para la relevancia de la información [Calvary et al., 2001, Calvary et al., 2004]. 4.1.2 Contexto de uso de los sistemas colaborativos El desarrollo de un espacio de interacción colaborativo puede resultar complejo, ya que se deben considerar varios aspectos, e.g., las actividades de los colaboradores y la conciencia de grupo. Dourish y Bellotti definen la conciencia de grupo como un conocimiento de las actividades de otros que provee un contexto para las actividades propias. Algunos investigadores consideran que la conciencia puede clasificarse en cuatro tipos [Dourish and Bellotti, 1992, Gutwin et al., 1995]: • conciencia informal: permite conocer tanto la ubicación de los colaboradores como su estado de disponibilidad; • conciencia de grupo estructural: proporciona información de roles, responsabilidades, posición social o profesional de los miembros de un grupo; • conciencia social: permite el entendimiento del contexto tanto social como conversacional de los colaboradores, y • conciencia de espacio del trabajo: ofrece información sobre la interacción de los miembros de un grupo en el espacio de trabajo compartido. Considerando las definiciones previas de conciencia de grupo y de contexto de uso, se propone utilizar la terna siguiente <grupo de colaboradores, conjunto de plataformas, entorno común> para denotar el contexto de uso de los sistemas colaborativos. La terna propuesta considera la conciencia de grupo, e.g., durante la asignación de una tarea se debe considerar el dispositivo de cómputo del colaborador, ya que este puede tener limitaciones que podrı́an impedir la realización de alguna actividad. El componente grupo de colaboradores denota los arquetipos humanos que utilizan el sistema colaborativo para llevar a cabo un proyecto común. El componente conjunto de plataformas se refiere a las caracterı́sticas de hardware y software de los dispositivos de cómputo que alojan al sistema colaborativo y que son usados de manera individual por cada colaborador (e.g., una computadora portátil o un teléfono inteligente) o de forma compartida por algunos miembros del grupo (e.g., un pizarrón interactivo). Este componente también incluye los dispositivos que permiten un mejor funcionamiento del sistema colaborativo (e.g., impresoras y servidores). 76 Análisis de requerimientos del marco XARE El componente entorno común se refiere a las condiciones fı́sicas y sociales, e.g., personas, objetos y eventos, que son externos al grupo de trabajo, pero que tienen una influencia tanto en los miembros del grupo como en el sistema colaborativo. Este componente también incluye un entorno virtual, e.g., un desktop, los espacios de trabajo públicos y privados de aplicaciones colaborativas y objetos compartidos. Un desktop se define como un conjunto de aplicaciones disponibles para un colaborador dependiendo su rol [Haake et al., 2010]. Los objetos compartidos se refieren al texto, a las imágenes, al audio y al video que son compartidos por los colaboradores a través del espacio de trabajo público de una aplicación colaborativa. 4.2 Relación entre escenarios y aplicaciones La técnica usada para crear el marco XARE es la de bottom-up. Por consiguiente, se partió de un conjunto de escenarios que nos sirvieron para identificar los requerimientos de algunas aplicaciones colaborativas adaptables a cambios contextuales. A partir de estos requerimientos, se crearon los diagramas de clase del marco XARE, los cuales serán presentadas en el capı́tulo 5. Los cambios contextuales abordados en esta tesis se ponen en evidencia en siete escenarios propuestos (cf. Figura 4.1). Algunos de ellos hacen referencia a aplicaciones computacionales, cuyo objetivo es facilitar la colaboración entre los miembros de un grupo. En la figura 4.1, los rectángulos que representan a los escenarios muestran diferentes colores (verde oliva, amarillo y rosa) con el fin de denotar el grado de aportación al diseño del marco XARE. El color verde oliva indica que se detectaron suficientes aplicaciones para automatizar el proceso colaborativo descrito en el escenario; el color amarillo indica que las aplicaciones identificadas no aseguran una automatización completa y finalmente, el color rosa significa que hasta el momento no se han identificado aplicaciones especı́ficas. Asimismo en la Figura 4.1, las aplicaciones también han sido representadas con diferentes colores (azul, naranja y rojo) para denotar su estado de avance. El color azul representa a las aplicaciones implementadas; el color verde denota a las aplicaciones en proceso de desarrollo y por último el color rojo representa a las aplicaciones que no han sido implementadas. Para lograr un mejor entendimiento de la Figura 4.1, primero se describen brevemente las aplicaciones identificadas: 1. la barra de colaboradores [Romero et al., 2013] expresa la conciencia de grupo mediante la foto y el nombre de los colaboradores pertenecientes a un equipo de trabajo. Dicha barra organiza a los colaboradores, dependiendo su ubicación fı́sica, como: presentes, virtualmente presentes y ausentes; 2. la herramienta de votación [Romero et al., 2013] permite a un grupo de colaboradores participar en una votación electrónica de manera anónima o conocida; Capı́tulo 4 77 Escenario 2: Remodelación de la interfaz de usuario Desktop enriquecido Herramienta de votación Editor de mapas mentales Escenario 3: Redistribución de una aplicación colaborativa Barra de colaboradores Aplicación implementada Escenario 1: Mejoramiento del trabajo colaborativo Editor de dibujos Escenario 7: Notificaciones multimodales Administrador de contenidos vía NFC Escenario 6: Suministro de información relevante Herramienta de medios de contacto y disponibilidad Escenario 4: Mejoramiento de la conciencia grupal Editor de textos Escenario 5: Manejo de intromisiones Aplicación en proceso de desarrollo Aplicación identificada pero no implementada Escenario con suficientes aplicaciones para automatizar un proceso colaborativo Escenario con insuficientes aplicaciones para automatizar un proceso colaborativo Escenario carente de aplicaciones Figura 4.1: Relación entre escenarios y aplicaciones colaborativas 3. el editor de mapas mentales [Romero et al., 2013] facilita la creación de diagramas para organizar ideas; 4. el editor de dibujos tiene como objetivo permitir la creación de imágenes vectoriales y tiene la caracterı́stica de soportar transiciones del trabajo individual al trabajo colaborativo y viceversa. Los colaboradores pueden pasar de su respectivo espacio privado a un espacio común donde pueden interactuar mediante un dispositivo con una pantalla grande (e.g., un pizarrón interactivo) o un arreglo de tablets. Estas transiciones originan que las funcionalidades de la aplicación se adapten para dar soporte a la interacción de múltiples usuarios, considerando sus roles y sus jerarquı́as; 5. la herramienta de medios de contacto y disponibilidad [Decouchant, et al., 2013] presenta de manera visual tanto la disponibilidad como los medios de contacto accesibles de un 78 Análisis de requerimientos del marco XARE colaborador, considerando varios parámetros, tanto del colaborador a contactar como del que desea contactarlo; 6. la desktop enriquecido [Decouchant, et al., 2013] permite relacionar objetos manipulados entre diferentes aplicaciones mediante referencias deı́cticas, las cuales son capaces de mantener, en todo momento, el contexto de dichos objetos, con el fin de mejorar el trabajo de los colaboradores que los comparten; 7. el administrador de contenidos vı́a NFC [Romero et al., 2013] enriquece las reuniones co-localizadas al proveer a los colaboradores información relevante en el tiempo y lugar indicado, mediante la tecnologı́a NFC (Near Field Communication); 8. el editor de textos permite ocultar información restringida ante personas no autorizadas que están cerca del área de despliegue de dicha información. Es importante mencionar que la herramienta de votación y el editor de mapas mentales permiten tanto la interacción co-localizada como la distribuida. Ambas aplicaciones muestran las funcionalidades relacionadas al rol de cada colaborador en su respectiva instancia. Finalmente, ambas aplicaciones usan la barra de colaboradores para proveer conciencia de grupo. Después de haber descrito brevemente las aplicaciones identificadas durante la fase de análisis, a continuación se describen los escenarios representados en la Figura 4.1: 1. El escenario “Mejoramiento de trabajo colaborativo” pretende enriquecer la colaboración entre los miembros de un grupo al mantener, en todo momento, el contexto de los objetos compartidos en el espacio de trabajo y al encontrar algunas relaciones entre los colaboradores, en función de su interacción con dichos objetos. A partir de las relaciones encontradas, se hacen sugerencias pro-activas, tales como poner a disposición de los colaboradores aplicaciones adecuadas para manipular un objeto dado, dependiendo de su rol, o asociar diferentes conversaciones textuales en curso que hacen referencia a dicho objeto. La herramienta relacionada con este escenario es la de desktop enriquecido. 2. El escenario “Remodelación de la interfaz de usuario” permite la modificación de componentes mediante las siguientes acciones: ocultar, sustituir o agregar; en particular, la modificación incluye referenciar a otro dispositivo de hardware que proporcione la misma funcionalidad del componente modificado. Este escenario es importante, ya que sus especializaciones se representan en los escenarios del tres al seis. Aún cuando existen particularidades en estos escenarios es importante recalcar que este segundo escenario permite adaptar los ı́conos (e.g., en la herramienta de mapas mentales los iconos relacionados con el rol de autor son mostrados, solo para los colaboradores que tienen asignado dicho rol) y las aplicaciones (e.g., desktop enriquecido) en función del rol de los colaboradores y del tamaño de la pantalla del dispositivo. 3. El escenario “Redistribución de una aplicación colaborativa” adapta los componentes que son afectados por el trabajo co-localizado y redistribuido. Algunos de los componentes Capı́tulo 4 79 detectados que son susceptibles de dichas modificaciones corresponden a los espacios compartidos y públicos, a la conciencia de grupo y al uso de dispositivos con pantallas grandes y de buena resolución para una mejor interacción (e.g., un pizarrón interactivo). Las herramientas asociadas a este escenario corresponden a: herramienta de votación, editor de mapas mentales, editor de dibujos y barra de colaboradores. 4. El escenario “Mejoramiento de la conciencia grupal” modifica los componentes relacionados con la disponibilidad y los medios de contacto dependiendo de algunos parámetros relacionados con los colaboradores. La herramienta relacionada con este escenario es la de medios de contacto y disponibilidad. 5. El escenario “Manejo de intromisiones” adapta la información desplegada en un dispositivo, e.g., pizarrón interactivo o una computadora portátil, al detectar a una persona que no pertenece al equipo de trabajo. En este caso, la información es cambiada por otra de menos relevancia para que no pueda ser visualizada por dicha persona. En este escenario, se envı́a una notificación al resto del grupo de colaboradores acerca de la presencia de alguien ajeno al equipo para que no envı́en mensajes u otro tipo de información importante en ese momento. La herramienta relacionada a este escenario corresponde al editor de textos. 6. El escenario “Suministro de información relevante” permite proveer información que puede ser útil a los colaboradores, considerando el lugar, la fecha y el rol de estos. Este escenario tiene asociada la herramienta administrador de contenidos vı́a NFC. 7. El escenario “Notificaciones multi-modales” ofrece una gama de posibilidades para notificar a los colaboradores acerca de un evento en especı́fico, considerando la actividad en curso de cada uno de ellos, ası́ como la importancia de dicho evento. Este escenario hasta al momento no tiene asociada una aplicación. 4.3 Escenario 1: Mejoramiento del trabajo colaborativo Este escenario describe un entorno virtual cuya finalidad es mejorar la colaboración entre los miembros de un grupo. Para lograr este fin, dicho entorno ofrece aplicaciones colaborativas adecuadas, dependiendo del rol de cada colaborador, y permite asociar objetos de diferentes aplicaciones mediante referencias deı́cticas, las cuales mantienen en todo momento el contexto de dichos objetos. Antes de describir el escenario, se presenta una introducción acerca de las aplicaciones colaborativas adaptativas que han sido identificadas en este escenario, ası́ como de los roles y la granularidad de los objetos compartidos soportados por estas aplicaciones. 80 Análisis de requerimientos del marco XARE 4.3.1 Preámbulo Para relacionar y mantener el contexto de los objetos producidos durante una sesión de trabajo, un grupo de colaboradores utiliza un desktop enriquecido que provee varias aplicaciones colaborativas diseñadas para trabajar en conjunto. Una instancia del desktop enriquecido es ejecutada automáticamente al momento de que cada uno de los colaboradores ingresa a la sesión para trabajar en las tareas asignadas. En este caso de estudio, el desktop enriquecido ofrece tres aplicaciones, cuyos objetivos pueden estar relacionados entre sı́ mediante referencias deı́cticas para enriquecer la interacción. Las aplicaciones son las siguientes: 1. Un pizarrón multi-usuario que permite a los colaboradores llevar a cabo sesiones de lluvia de ideas y dibujar diagramas con extensión JPG. 2. Un editor colaborativo que permite la fragmentación de documentos HTML para facilitar la producción concurrente. Una imagen que está siendo desplegada por este editor puede ser arrastrada hacia el pizarrón multi-usuario donde puede ser modificada. De esta manera, no hay necesidad de realizar las tradicionales operaciones de copiar/pegar o abrir archivo para acceder a dicha imagen desde el pizarrón multi-usuario. Además, la actualización de la imagen desplegada por el editor colaborativo se hace de manera automática, ya que éste mantiene un identificador de dicha imagen mientras ésta permanece abierta en el pizarrón multi-usuario. 3. Un servicio de mensajerı́a que soporta la comunicación directa entre los miembros de un grupo y que es capaz de relacionar diferentes conversaciones que hacen referencias deı́cticas a un mismo objeto compartido que está siendo manipulado mediante el editor colaborativo o el pizarrón multi-usuario. La granularidad de los objetos compartidos soportada por el editor colaborativo va desde una palabra, una frase, un párrafo o una sección hasta todo el documento. De manera similar, el pizarrón multi-usuario permite la manipulación de diferentes granularidades, las cuales van desde figuras básicas (e.g., lı́neas, cuadrados, cı́rculos y rectángulos) hasta un diagrama completo. La tercera aplicación soporta grupos no estratificados, mientras las dos primeras soportan tres roles: 1. el rol de coautor permite a los colaboradores escribir texto y dibujar diagramas; 2. el rol de lector da la posibilidad a los colaboradores de leer texto y visualizar imágenes; 3. el rol de revisor permite a los colaboradores hacer comentarios respecto a la forma y al contenido de documentos y diagramas. Capı́tulo 4 81 Es importante mencionar que no todas las aplicaciones colaborativas adaptativas contenidas en el desktop enriquecido están visibles en todo momento para evitar que el usuario se sature con aplicaciones que no son de utilidad para la actividad en curso. Con el objetivo de proveer a los colaboradores con un entorno colaborativo apropiado, las herramientas están disponibles dependiendo del rol actual del colaborador. De este modo, un colaborador con el rol de escritor, podrı́a requerir ejecutar en su desktop enriquecido tanto el editor colaborativo como el pizarrón multi-usuario. En el caso de un colaborador con el rol de revisor, éste podrı́a necesitar que la mensajerı́a instantánea trabaje de manera coordinada con el editor colaborativo y el pizarrón multi-usuario para hacer comentarios acerca del texto o de los diagramas del documento. 4.3.2 Descripción del escenario Suponga que un grupo compuesto por cuatro miembros, Alice, Isaac, Jenny y Sandy, está preparando un reporte técnico de manera distribuida. Aunque los miembros del grupo utilizan dispositivos heterogéneos, estos tienen caracterı́sticas técnicas suficientes (e.g., buen tamaño y alta definición de pantalla, ası́ como alto poder de procesamiento y capacidades de comunicación). Dadas las caracterı́sticas de los dispositivos, la adaptabilidad de las aplicaciones colaborativas no se expresa mediante la remodelación de su interfaz de usuario, sino por las funcionalidades que dichas aplicaciones proveen para que los miembros del grupo puedan llevar a cabo sus actividades. El equipo de trabajo ha dividido el documento en secciones, ası́ que cada miembro está encargado de escribir una sección, mientras sus colegas son responsables de revisarla. De esta manera, los colaboradores pueden escribir el documento de manera concurrente. En particular, Sandy e Isaac han estado trabajando juntos porque sus secciones respectivas están relacionadas. El mismo caso ocurre con Alice y Jenny, ya que ambas están encargadas de dibujar todas las figuras del reporte técnico. Cuando Sandy termina de redactar la primera versión de su sección, le pide a Isaac que la revisen conjuntamente dicha sección, ya que ella tiene algunos problemas para expresar sus ideas. En consecuencia, estos colaboradores deciden entablar una comunicación directa mediante la mensajerı́a instantánea, mientras que el editor colaborativo está a cargo de mostrarles los párrafos sujetos a revisión. El desktop enriquecido provee una funcionalidad de deixis, la cual permite a los colaboradores crear referencias deı́cticas, en forma de ligas de hipertexto, entre objetos de la herramienta de la mensajerı́a instantánea (e.g., palabras deı́cticas como this figure, the next section, this paragraph, those references o here) y objetos del editor colaborativo (e.g., un tı́tulo, un párrafo, una frase, una palabra, una referencia bibliográfica, una figura o una sección). Gracias a ésta funcionalidad, los colaboradores no necesitan copiar los objetos referenciados desde el editor colaborativo hacia la mensajerı́a instantánea cuando están revisando. De este modo, los objetos referenciados siempre mantienen su contexto en el editor colaborativo, i.e., párrafos anteriores y siguientes, figuras asociadas y referencias bibliográficas. 82 Análisis de requerimientos del marco XARE 4.1 MVC-based Design The design of the plastic collaborative whiteboard is based on the architectural style Model-View-Controller (MVC) [8]. We prefer it to other styles (e.g., PAC* [10]) as, from our point of view, the MVC principles (several views for a model) match better with the plasticity principles (several user interfaces for an application). Thus, MVC simply?es the application structural representation before and after applying any plastic adaptation. MVC also facilitates software reutilization by modeling the application as independent interrelated components. The basic MVC architecture consists of a model, which represents the application data; a controller, which interprets user input; and a view, which handles output. Like many MVC variants, our plastic collaborative whiteboard implements view-controller pairs as combined components. More particularly, as shown in Fig. 1, the MVC tree of our plastic collaborative whiteboard contains the root node, R, and three child nodes, H1, H2 and H3. At runtime, the R node view-controller is in charge of: 1) creating an instance of the application, 2) coordinating its children, and 3) communicating with other distributed instances of the application. Hello Isaac Hi Sandy As you know, I have some problems to express some ideas concerning the MVC model… What do you think of section 4.1? I think in this paragraph you are using the concept “view-controller pair” without defining it…. You should define this concept before using it! Fig. 1. The MVC-Based Architecture of the Plastic Collaborative Whiteboard The R node model stores information about these tasks (e.g., remote instance identifiers or active children). The children of the R node are: Figura 4.2: Uso de las palabras deı́cticas “in this paragraph” (en la forma de una liga de hipertexto) por parte de Isaac en la mensajerı́a instantánea para referirse a un párrafo mostrado en el editor colaborativo Mediante la funcionalidad deixis, Isaac escribe en la mensajerı́a instantánea: “. . . in this paragraph, you are using the concept “view-controller pair” without defining it . . . ”. Como puede observarse en la Figura 4.2, las palabras deı́cticas “this paragraph” de la frase previa tienen una liga de hipertexto que apunta a un párrafo del documento abierto en el editor colaborativo. Cuando Sandy da clic en la liga creada por Isaac, el editor colaborativo muestra el párrafo correspondiente a la mitad de la vista y lo resalta con letra de color roja, en este caso. Como el párrafo en cuestión mantiene su contexto, i.e., referencias bibliográficas, párrafos circundantes y figuras referenciadas, Sandy puede darse cuenta que el comentario de Isaac es correcto, ya que ella pueda fácilmente verificar que el concepto “view-controller pair” no está definido en párrafos previos de la sección. Mientras Sandy e Isaac están produciendo una nueva versión del párrafo, Alice y Jenny también decidieron usar la mensajerı́a instantánea para hablar acerca de los diagramas que han creado. Como se ilustra en la Figura 4.3, la mensajerı́a instantánea muestra que Alice escribió Capı́tulo 4 83 “. . . I’d like to highlight H1 in this diagram”. Al igual que Isaac, Alice creó una referencia deı́ctica a la figura 1 del reporte técnico. De este modo, cuando Jenny da clic en las palabras deı́cticas “in this diagram”, el editor colaborativo muestra el diagrama correspondiente a la mitad de la vista resaltándolo mediante un borde color azul. Este diagrama referenciado también mantiene su contexto, i.e., sección contenedora, tı́tulo de la figura y párrafos circundantes. 4.1 MVC-based Design The design of the plastic collaborative whiteboard is based on the architectural style Model-View-Controller (MVC) [8]. We prefer it to other styles (e.g., PAC* [10]) as, from our point of view, the MVC principles (several views for a model) match better with the plasticity principles (several user interfaces for an application). Thus, MVC simply?es the application structural representation before and after applying any plastic adaptation. MVC also facilitates software reutilization by modeling the application as independent interrelated components. The basic MVC architecture consists of a model, which represents the application data; a controller, which interprets user input; and a view, which handles output. Like many MVC variants, our plastic collaborative whiteboard implements view-controller pairs as combined components. More particularly, as shown in Fig. 1, the MVC tree of our plastic collaborative whiteboard contains the root node, R, and three child nodes, H1, H2 and H3. At runtime, the R node view-controller is in charge of: 1) creating an instance of the application, 2) coordinating its children, and 3) communicating with other distributed instances of the application. Hi Jenny! I’d like to highlight H1 in this diagram as it’s the key node… Hello Alice! I agree with you, so shoulders to the wheel! Jenny Alice Fig. 1. The MVC-Based Architecture of the Plastic Collaborative Whiteboard The R node model stores information about these tasks (e.g., remote instance identifiers or active children). The children of the R node are: Figura 4.3: Uso de las palabras deı́cticas “in this diagram” (en la forma de una liga de hipertexto) por parte de Alice en la mensajerı́a instantánea para referirse a una figura mostrada en el editor colaborativo Como no es posible modificar este diagrama desde el editor colaborativo, el desktop enriquecido provee una funcionalidad que permite a los colaboradores hacer una réplica de tal diagrama en el pizarrón multi-usuario, donde este puede ser modificado. Esta réplica mantiene una referencia contextual al diagrama mostrado en el editor colaborativo (en este caso, un identificador de objeto interno y la localización del objeto en el documento). Por lo tanto, gracias a esta referencia contextual, el desktop enriquecido permite a los colaboradores reemplazar la versión caducada del diagrama mostrado en el editor colaborativo, por la nueva versión creada en el pizarrón multi-usuario. 84 Análisis de requerimientos del marco XARE Como Alice y Jenny decidieron modificar tal diagrama, una réplica es automáticamente creada en el pizarrón multi-usuario. En ese momento, el desktop enriquecido deduce que Sandy e Isaac están escribiendo un párrafo que hace referencia a la figura que está siendo modificada por Alice y Jenny. En consecuencia, el desktop enriquecido sugiere a Sandy e Isaac seguir la conversación de Alice y Jenny porque puede ser de interés, ya que ellas están modificando la figura asociada al párrafo que ellos están redactando. Esta sugerencia también es hecha a Alice y Jenny. En caso de que Sandy e Isaac estén interesados en seguir la conversación de Alice y Jenny (cf. Figura 4.4) y viceversa (cf. Figura 4.5), ellos pueden acceder a estas conversaciones por medio de una nueva pestaña agregada en sus respectivos mensajeros instantáneos. 4.1 MVC-based Design The design of the plastic collaborative whiteboard is based on the architectural style Model-View-Controller (MVC) [8]. We prefer it to other styles (e.g., PAC* [10]) as, from our point of view, the MVC principles (several views for a model) match better with the plasticity principles (several user interfaces for an application). Thus, MVC simply?es the application structural representation before and after applying any plastic adaptation. MVC also facilitates software reutilization by modeling the application as independent interrelated components. The basic MVC architecture consists of a model, which represents the application data; a controller, which interprets user input; and a view, which handles output. Like many MVC variants, our plastic collaborative whiteboard implements view-controller pairs as combined components. More particularly, as shown in Fig. 1, the MVC tree of our plastic collaborative whiteboard contains the root node, R, and three child nodes, H1, H2 and H3. At runtime, the R node view-controller is in charge of: 1) creating an instance of the application, 2) coordinating its children, and 3) communicating with other distributed instances of the application. Hello Isaac Hello Sandy As you know, I have some problems to express some ideas concerning the MVC model… What do you think of section 4.1? I think in this paragraph you are using the concept “view-controller pair” without defining it…. You should define this concept before using it! You’re right! May I define it after this phrase? Fig. 1. The MVC-Based Architecture of the Plastic Collaborative Whiteboard The R node model stores information about these tasks (e.g., remote instance identifiers or active children). The children of the R node are: Figura 4.4: Se sugiere a Sandy e Isaac seguir la conversación de Alice y Jenny porque ellas están modificando la figura referenciada por el párrafo que ellos están modificando El desktop enriquecido pretende hacer más eficiente el trabajo grupal, adaptándose a las actividades de los colaboradores. Gracias a estas funcionalidades adaptativas, los cuatro colaboradores pueden coordinar fácilmente su trabajo al evitar errores, duplicaciones innecesarias y malos entendidos. Si es necesario, estos colaboradores pueden comunicarse directamente para coordinar sus respectivos trabajos, sin perder el contexto de los objetos creados conjuntamente. Capı́tulo 4 85 4.1 MVC-based Design The design of the plastic collaborative whiteboard is based on the architectural style Model-View-Controller (MVC) [8]. We prefer it to other styles (e.g., PAC* [10]) as, from our point of view, the MVC principles (several views for a model) match better with the plasticity principles (several user interfaces for an application). Thus, MVC simply?es the application structural representation before and after applying any plastic adaptation. MVC also facilitates software reutilization by modeling the application as independent interrelated components. The basic MVC architecture consists of a model, which represents the application data; a controller, which interprets user input; and a view, which handles output. Like many MVC variants, our plastic collaborative whiteboard implements view-controller pairs as combined components. More particularly, as shown in Fig. 1, the MVC tree of our plastic collaborative whiteboard contains the root node, R, and three child nodes, H1, H2 and H3. At runtime, the R node view-controller is in charge of: 1) creating an instance of the application, 2) coordinating its children, and 3) communicating with other distributed instances of the application. Hi Jenny! I’d like to highlight H1 in this diagram as it’s the key node… Hello Alice! I agree with you, so shoulders to the wheel! Fonts for H1 should be in red…. Alice Jenny Fig. 1. The MVC-Based Architecture of the Plastic Collaborative Whiteboard The R node model stores information about these tasks (e.g., remote instance identifiers or active children). The children of the R node are: Figura 4.5: Se sugiere a Alice y Jenny seguir la conversación de Sandy e Isaac porque ellos están reescribiendo el párrafo que refiere a la figura que ellas están modificando Adaptación al contexto de uso de los sistemas colaborativos En este escenario, la adaptación al contexto de uso se aborda de dos maneras. La primera permite la adaptación al grupo de colaboradores, ya que el desktop enriquecido considera el rol del colaborador para ofrecer solo las aplicaciones relevantes para ese rol. La segunda forma de adaptación considera al entorno compartido ya que, por un lado, el desktop enriquecido permite relacionar objetos de diferentes aplicaciones mediante referencias deı́cticas. Por otro lado, la mensajerı́a instantánea es capaz de detectar diferentes conversaciones en curso que hacen referencia a un mismo objeto compartido, con el fin de hacer sugerencias pro-activas a los colaboradores, e.g., seguir la conversación de sus colegas para conocer sus intenciones de cambios respecto a un objeto compartido dado. 86 Análisis de requerimientos del marco XARE 4.3.3 Desktop enriquecido Este desktop enriquecido permite la interacción de tres aplicaciones que son: mensajerı́a instantánea, editor colaborativo de documentos y pizarrón multi-usuario. Una caracterı́stica importante del desktop enriquecido es que dentro de una conversación realizada desde la mensajerı́a instantánea, se puede hacer referencia a objetos compartidos desplegados en el editor. Además, el desktop enriquecido permite identificar cuando dos conversaciones hacen referencia al mismo objeto compartido o a objetos relacionados. Requerimientos funcionales y no funcionales Los requerimientos funcionales del desktop enriquecido se listan a continuación: • Autentificar a cada colaborador al ingresar a una sesión. • Adaptar la interfaz de usuario dependiendo cada colaborador, i.e., mostrar los ı́conos de acceso rápido a las aplicaciones relacionadas con el rol asignado. • Permitir que los colaboradores puedan usar la función Deixis a partir de la mensajerı́a instantánea para crear referencias deı́cticas que referencien diferentes objetos compartidos, los cuales pueden ser párrafos, palabras o imágenes, que sean desplegados por el editor colaborativo. La creación de referencias deı́cticas requieren los siguientes pasos: 1) seleccionar el ı́cono de deixis para desplegar la ventana llamada “New Deixis”; 2) seleccionar las palabras que servirán de referencia deı́ctica, e.g., this paragraph, dentro de la ventana abierta, 3) seleccionar en el editor colaborativo el objeto compartido al que se hará referencia y 4) aceptar para terminar de crear la nueva deixis. • Permitir el acceso a la referencia deı́ctica al seleccionar con el cursor la palabra deı́ctica. En consecuencia, el desktop enriquecido podrá mostrar la referencia al objeto. En caso de que el objeto referenciado sea un párrafo, este cambiará el color de la letra a rojo para indicar que se está haciendo referencia a ese párrafo. En caso de que el objeto referencie a una imagen, esta estará enmarcada con un recuadro de color azul. • Crear una réplica de la imagen referenciada del editor colaborativo en el pizarrón multiusuario para hacer modificaciones sobre dicha imagen. Una vez terminadas las modificaciones, el objeto será actualizado automáticamente en el documento, donde ha sido referenciado. • Sugerir seguir una conversación al detectar que dos conversaciones hacen referencia a un objeto compartido o a objetos relacionados. Los requerimientos no funcionales del desktop enriquecido corresponden a: Capı́tulo 4 87 1. Mostrar en medio de la vista del editor colaborativo el objeto compartido al que se está haciendo referencia. 2. Permitir la creación de varias referencias deı́cticas en una conversación, ası́ como mantener las ligas a dichos objetos en forma de hipertexto. 3. Mostrar las palabras deı́cticas, e.g., in this paragraph, en la mensajerı́a instantánea en color azul y subrayada. 4. Abrir el pizarrón multi-usuario cuando los colaboradores deseen crear una réplica de una imagen referenciada, la cual posteriormente será modificada y actualizada. Interfaces de usuario El desktop enriquecido proporciona información aumentada de tres maneras: 1) muestra las aplicaciones relacionadas con los roles asignados; 2) localiza fácilmente textos o figuras creados en un editor colaborativo desde un mensajero instantáneo (cf. Figuras 4.2 y 4.3) y 3) sugiere a los colaboradores seguir las conversaciones públicas de sus colegas que están relacionadas con el trabajo en desarrollo (cf. Figura 4.4 y 4.5). Las variables que son consideradas para la adaptación contextual corresponden a: 1) rol del colaborador, 2) referencia deı́ctica, 3) objetos compartidos en uso y 4) conversaciones actuales. Una de las variables contextuales se refiere al rol que puede tener asignado el colaborador. Cuando el colaborador juega el rol de coautor, de lector o de revisor, él tendrá accesible las aplicaciones del editor colaborativo y el pizarrón multi-usuario, con la variante de que el rol de revisor tendrá también acceso a la mensajerı́a instantánea. La variable de referencia deı́ctica contiene las figuras o el texto al que se hace referencia sin que estos pierdan su contexto. La variable de objetos compartidos en uso almacena los objetos en uso de todos los colaboradores que interactúan en un momento dado. Dicha variable permite identificar el grado de relación entre dichos objetos compartidos para proveer sugerencias pro-activas. La variable de conversaciones actuales registrará las conversaciones de los colaboradores en un momento dado. Esta variable permitirá que dichas conversaciones sean visualizadas por otros colaboradores como resultado de una sugerencia pro-activa. Proceso de adaptación contextual En los siguientes párrafos se describen los eventos que provocan adaptaciones contextuales: 1. Un colaborador inicia sesión en el desktop enriquecido. Después de que el desktop enriquecido autentifica al colaborador solicita a una base de datos los roles de dicho 88 Análisis de requerimientos del marco XARE usuario, para determinar las aplicaciones relacionadas con los roles obtenidos, con la finalidad de ponerlas accesibles al colaborador, e.g., un revisor requiere acceder al editor colaborativo, a la mensajerı́a instantánea y posiblemente al pizarrón multi-usuario. 2. Un colaborador crea una referencia deı́ctica. La creación de referencias deı́cticas es posible cuando los colaboradores están llevando a cabo una conversación por medio de la mensajerı́a instantánea. Para crear una referencia, ellos tiene que seleccionar la opción deixis en la mensajerı́a, ası́ como alguna de las palabras deı́cticas, tales como: this figure, the next section, this paragraph, those references o here. Como consecuencia, la mensajerı́a convierte la palabra seleccionada en una hiperliga con estilo bold y color azul marino (cf. Figura 4.3). 3. Un colaborador selecciona una referencia deı́ctica desde la herramienta de mensajerı́a. Posterior a la selección de la referencia deı́ctica, el objeto ligado a dicha referencia (e.g., una figura o un texto como una palabra, un párrafo o una sección) es mostrado y resaltado en el editor colaborativo, con la finalidad de que dicho objeto no pierda su contexto dentro del documento, i.e. conserve su página y ubicación. Dependiendo del tipo de objeto seleccionado, algunas de las siguiente adaptaciones pueden ocurrir: (a) el editor colaborativo cambia a la página que contiene la figura a mostrar. La figura es centrada en el área de trabajo y circundada por un cuadro coloreado. Por otra parte, el editor permite el acceso a la opción ”Make a copy“; (b) el editor colaborativo cambia a la página que contiene el texto a mostrar, cuya fuente presenta un color diferente al resto del texto. 4. El colaborador selecciona la opción ”Make a copy”. Esta opción es activada después de que una figura fue seleccionada desde el editor colaborativo. Al seleccionar “Make a copy”, el desktop enriquecido muestra a los colaboradores involucrados la figura en el pizarrón multi-usuario para que puedan modificarla. Internamente, el pizarrón multiusuario crea una referencia (un identificador de objeto y la localización en el documento) al diagrama mostrado en el editor colaborativo. 5. Actualización de la copia de una figura en el editor colaborativo. El evento de actualizar una copia es generado por un colaborador que solicitó dicha copia, desde el editor colaborativo. Al momento de solicitar dicha actualización, el pizarrón multi-usuario remplaza la figura del editor colaborativo por la figura que tiene el pizarrón. 6. El desktop enriquecido propone seguir una conversación. Este evento sucede cuando el desktop enriquecido detecta que varios colaboradores hacen referencia a un objeto compartido o bien a objetos relacionados. En consecuencia, mediante una ventana, el desktop enriquecido, propone a los colaboradores en cuestión seguir la conversación actual que llevan a cabo sus colegas por mensajerı́a instantánea para facilitar su trabajo, ya que todos estos colaboradores hacen referencia al mismo objeto o a objetos relacionados. Capı́tulo 4 89 7. Los colaboradores aceptan la recomendación de seguir una conversación. Si los colaboradores seleccionan el botón Ok de la ventana que sugiere seguir otras conversaciones, la mensajerı́a crea una nueva pestaña por cada grupo que hace referencia al objeto compartido que ellos están usando. En esta nueva pestaña, ellos pueden ver la conversación en curso de otros colaboradores (cf. Figura 4.2). 4.4 Escenario 2: Remodelación de la interfaz de usuario El objetivo de esta propuesta es ocultar, sustituir o agregar componentes de los sistemas colaborativos. Dichos componentes pueden ser el espacio compartido o privado, los ı́conos de acceso de una aplicación, un archivo de texto o de imágenes, parte del contenido de archivos, un ı́cono, etc. 4.4.1 Preámbulo En ocasiones los sistemas cubren una amplia gama de funcionalidades, las cuales frecuentemente se ven reflejadas en componentes de la interfaz de usuario, e.g., menús o ı́conos. La mayorı́a de las veces los usuarios no utilizan algunos de estos componentes por muchas razones. Algunos motivos para ocultar o sustituir los componentes o funcionalidades se mencionan a continuación: • mostrar solo los iconos relacionados con la actividad en curso, e.g., si un revisor de un artı́culo ingresa al editor colaborativo, esta aplicación debe ocultar los ı́conos no relacionados a sus actividades, e.g., el ı́cono de insertar imagen; • ocultar componentes cuando: – se detecte que algunos de los ı́conos relacionados con el rol no sean utilizados por el colaborador que esté usando la instancia de una aplicación; – estos no tengan funcionalidad debido a que el recurso humano o fı́sico asociado no está disponible, e.g., el ı́cono de una impresora debe ocultarse cuando está descompuesta o el avatar de un colaborador fuera de lı́nea puede ser agregado a una lista de colaboradores ausentes; • sustituir la funcionalidad de un dispositivo que no está disponible, e.g., el espacio de memoria local es insuficiente para almacenar el trabajo actual, ası́ que la funcionalidad de guardar información localmente puede ser cambiada por guardar información en el dispositivo de un colaborador conectado al sistema o en algún servidor. Una vez que el sistema reduzca el número de componentes se puede aplicar alguna forma de remodelación descrita por Calvary et al. [Calvary et al., 2006] para adaptar la interfaz de usuario a diferentes situaciones contextuales. 90 Análisis de requerimientos del marco XARE La herramienta que ejemplifica el presente escenario es un editor de mapas mentales que permite que los colaboradores puedan asumir los siguientes roles: • administrador, el cual permite crear un nuevo mapa mental, elegir a los participantes y asignarles un rol; • autor, el cual da la posibilidad de agregar, modificar, mover o eliminar elementos en el mapa mental, y • revisor, el cual permite agregar, modificar o eliminar comentarios sobre los elementos del mapa mental. Además dicha herramienta soporta las siguientes configuraciones del grupo: 1) co-localizado (fı́sicamente presente), cuando todo el grupo se encuentra en el mismo lugar de reunión y 2) distribuido (virtualmente presente), cuando algún usuario se encuentra en un lugar diferente al de reunión. Otra caracterı́stica importante de mencionar acerca de la herramienta de mapas mentales se refiere a la dimensiones de la pantalla del dispositivo en uso. Dichas dimensiones son clasificadas en: 1) pantalla pequeña, cuando la pantalla del dispositivo es de un tamaño menor a siete pulgadas y 2) pantalla grande, cuando la pantalla del dispositivo es de siete pulgadas o más. 4.4.2 Descripción del escenario Supongamos que un grupo de colaboradores, compuesto por Coello, Mejia, Fraga, Chakraboborty y Morales, necesita realizar un mapa mental sobre software libre. Dichos colaboradores planearon formalmente una cita que fue registrada en la agenda de la sala de reuniones. Coello y Fraga asisten a la reunión llevando consigo cada uno un teléfono inteligente, mientras que Morales acude con su tablet PC. Cuando Coello, Fraga y Morales entran a la sala de reuniones son autenticados automáticamente por medio de una etiqueta NFC que se encuentra en la entrada de la sala. Mientras tanto, Mejia y Chakraborty entran al sistema manualmente introduciendo su nombre de usuario y contraseña mediante su tablet PC, ya que ellos han decidido interactuar con sus colegas de manera remota. Cuando Coello se aproxima al pizarrón interactivo de la sala de juntas y toca la etiqueta NFC asociada a dicho pizarrón, se muestra la pantalla principal que contiene las aplicaciones disponibles y un mensaje que indica que su sesión ha iniciado (cf. Figura 4.6). Además, se visualiza una barra de colaboradores donde se muestran los colaboradores virtualmente presentes, en este caso el nombre y la foto de Mejia y Chakraborty. Desde la pantalla principal, Coello ejecuta el editor colaborativo de mapas mentales, el cual le asigna el rol de administrador que le permitirá seleccionar a los coautores y asignarles sus respectivos roles. Coello decide Capı́tulo 4 91 dar el rol de revisor a Mejia y Chakraborty, en tanto el rol de autor es asignado a Coello, Fraga y Morales (cf. Figura 4.7). En particular, el rol de autor permite la adición, eliminación y modificación de los elementos del mapa mental, mientras que el rol de revisor permite la adición, modificación y eliminación de comentarios asociados a dichos elementos. Una vez que Coello concluyó la asignación de roles a los coautores, el editor de mapas mentales se ejecuta automáticamente en los dispositivos móviles de sus colegas. Figura 4.6: Pantalla principal donde se muestran las aplicaciones disponibles y una barra de colaboradores que exhibe a los miembros ausentes y virtualmente presentes La interfaz de usuario del editor de mapas mentales se adapta a las dimensiones de la pantalla del dispositivo, a la configuración del grupo y al rol del usuario (administrador, autor y revisor). Por lo tanto, la interfaz de usuario desplegada en el pizarrón interactivo muestra a detalle el mapa metal ası́ como las funcionalidades relacionadas con el rol de revisor y autor (cf. Figuras 4.8 y 4.9 respectivamente). Por otro lado, la interfaz de usuario de Morales muestra una vista detallada del mapa mental (cf. Figura 4.10a). En tanto que la interfaz de usuario que puede visualizar Mejia muestra una vista detallada del mapa mental, ası́ como un barra de colaboradores que contiene el nombre y la foto de los participantes virtual y fı́sicamente presentes (cf. Figura 4.10b). Por el contrario, 92 Análisis de requerimientos del marco XARE Figura 4.7: Pantalla para elegir a los participantes en la creación del mapa mental y sus roles en el dispositivos de Fraga, la interfaz de usuario de esta herramienta muestra una vista radar interactiva [Utwin et al., 1996] donde se presenta únicamente la estructura del mapa mental (cf. Figura 4.10c). A través de la vista radar interactiva mostrada en el dispositivo móvil de Fraga puede añadir, modificar, mover y eliminar elementos, mientras observan una vista detallada del mapa mental en el pizarrón interactivo. Mejia puede agregar, modificar y eliminar comentarios desde la vista detallada del mapa mental mostrada en su tablet, i.e., el editor de mapas metales ofrece solo las funcionalidades autorizadas al rol del colaborador. Después de que Fraga trabaja un largo rato en el mapa mental, él decide guardar su trabajo en su teléfono inteligente. Entonces Fraga selecciona el ı́cono de guardar, el cual despliega un letrero indicando que su dispositivo no tiene suficiente espacio para almacenar el diagrama, ası́ que el editor de mapas mentales propone utilizar el disco duro de la tablet PC de Morales o el de un servidor. Es importante mencionar que el editor no ofrece el disco duro de Jenny porque ella está fuera de lı́nea. Adaptación al contexto de uso de los sistemas colaborativos La adaptación de este escenario al contexto de uso de los sistemas colaborativos comprende dos de las tres dimensiones propuestas: grupo de colaboradores y conjunto de plataformas. La adaptación al grupo de colaboradores se logra ya que a partir del rol del colaborador, el editor de mapas mentales decide ocultar los iconos no utilizados. En el caso de Mejia, el editor de mapas mentales solo ofrece las funcionalidades que le permiten manipular (agregar, modificar Capı́tulo 4 93 Figura 4.8: Vista del mapa mental cuando un colaborador asume el rol de revisor y eliminar) comentarios. Por otra parte, el sistema considera el conjunto de plataformas de dos maneras: 1) el mapa mental es mostrado mediante una vista radar interactiva o una detallada dependiendo de las dimensiones de la pantalla del dispositivo en uso, y 2) la funcionalidad “guardar localmente” es sustituida por guardar en otro dispositivo, e.g., un servidor o el dispositivo que está usando Morales. 4.4.3 Editor de mapas mentales El editor de mapas mentales ofrece principalmente tres caracterı́sticas: 1) permite que el grupo de colaboradores trabaje de manera co-localizada y distribuida, 2) adapta las funcionalidades ofrecidas dependiendo del rol del colaborador y 3) adapta la vista del mapa mental al tamaño y a la resolución de la pantalla del dispositivo en uso. Requerimientos funcionales y no funcionales Los requerimientos funcionales del editor de mapas mentales se presentan a continuación: 1. Identificar al administrador del mapa mental. 94 Análisis de requerimientos del marco XARE Figura 4.9: Vista del mapa mental cuando un colaborador asume el rol de autor 2. Permitir que el administrador pueda crear un nuevo mapa mental, seleccionar a los participantes y asignar un rol a cada uno. 3. Adaptar su interfaz de usuario de acuerdo al rol del usuario, a las dimensiones de la pantalla de su dispositivo y a la configuración del grupo, i.e., si se encuentra trabajando co-localizadamente o de manera remota. 4. Permitir agregar, modificar y eliminar elementos o comentarios desde una vista detallada mostrada en un pizarrón interactivo o una tableta. 5. Permitir agregar, modificar y eliminar elementos o comentarios desde una vista radar interactiva mostrada en un dispositivo móvil. 6. Mostrar una barra de desplazamiento horizontal y una vertical cuando las dimensiones del mapa mental sobrepasen a las del pizarrón interactivo. Los requerimientos no funcionales del mapa mental son los siguientes: 1. Permitir que dos o más usuarios puedan agregar elementos al mapa mental simultáneamente. 2. Maximizar la eficiencia mediante la navegación con un lápiz (en caso de utilizar un pizarrón interactivo) o una pantalla táctil (en caso de utilizar dispositivos móviles). Capı́tulo 4 95 (a) Vista detallada en la tablet de un autor co-localizado (b) Vista detallada en la tablet de un revisor distribuido (c) Vista radar interactiva en el teléfono de un autor colocalizado Figura 4.10: Adaptabilidad de la interfaz de usuario del editor colaborativo de mapas mentales con base en la configuración del grupo, las dimensiones de la pantalla y el rol del usuario 96 Análisis de requerimientos del marco XARE 3. Tanto en el pizarrón interactivo como en una tableta, se deben distinguir claramente los detalles del mapa mental a una distancia considerable. 4. Reflejar inmediatamente, en todos los dispositivos, las modificaciones hechas por un usuario sobre el área de dibujo del mapa mental. 5. Permitir exportar el mapa mental a una imagen en formato PNG. Interfaz de usuario Para llevar a cabo la adaptación al contexto, la aplicación editor de mapas mentales considera las siguientes variables contextuales: 1) el rol del colaborador, 2) la configuración del grupo y 3) las dimensiones de la pantalla de despliegue. Los roles que puede asumir un usuario son: 1) administrador, 2) autor y 3) revisor. En el caso del administrador , la interfaz de usuario solo muestra las opciones necesarias para asignar los roles y establecer el nombre del mapa mental (cf. Figura 4.7). En el caso del autor, la interfaz de usuario muestra las funcionalidades necesarias para agregar, modificar, mover o eliminar elementos (cf. Figura 4.9). Finalmente, la interfaz de usuario de un revisor ofrece las mismas funcionalidades que para un autor, con la diferencia de que el autor manipula elementos y el revisor manipula comentarios (cf. Figura 4.8). La configuración del grupo puede ser: 1) co-localizado (fı́sicamente presente), cuando todo el grupo se encuentra en el mismo lugar de reunión y 2) distribuido (virtualmente presente), cuando algún usuario se encuentra en un lugar diferente al de la reunión. La dimensiones de la pantalla de un dispositivo son clasificadas en: 1) pantalla pequeña, cuando la pantalla del dispositivo es de un tamaño menor a siete pulgadas y 2) pantalla grande, cuando la pantalla del dispositivo es de siete pulgadas o más (cf. Figura 4.10). Proceso de adaptación contextual Con el fin de mostrar la manera en que el editor colaborativo de mapas mentales se adapta a los cambios contextuales, se describe una lista de eventos que provocan la adaptación de dicho editor: 1. Un administrador crea un nuevo mapa mental: la aplicación envı́a una notificación a los dispositivos móviles de los participantes presentes y virtualmente presentes, donde se solicita su participación. 2. Un colaborador selecciona la notificación de participación en la creación de un mapa mental: se ejecuta el editor colaborativo de mapas mentales en su dispositivo y la interfaz de usuario de dicho editor se adapta de tal manera que despliega únicamente las opciones disponibles para el rol del colaborador (autor o revisor). En las Figuras Capı́tulo 4 97 4.9 y 4.8 se muestra la interfaz de usuario del editor colaborativo de mapas mentales desplegada en el pizarrón interactivo, cuando dos usuarios juegan los roles de revisor y autor. De igual manera, la interfaz de usuario se adapta de acuerdo a la combinación de las siguientes variables contextuales: a) configuración del grupo y b) dimensiones de la pantalla de despliegue. Tanto para los colaboradores co-localizados como para los distribuidos que utilizan dispositivos con pantalla grande, la vista detallada muestra toda la información del mapa mental, i.e., la etiqueta de cada nodo y la etiqueta de cada conexión entre un par de nodos, si existen (cf. Figura 4.10a). Para los participantes distribuidos, se muestra adicionalmente una barra de los colaboradores fı́sicamente presentes en el lugar de reunión, virtualmente presentes y ausentes (cf. Figura 4.10b). En la vista radar interactiva únicamente se puede observar la estructura del mapa mental, ya que las dimensiones de la pantalla del dispositivo no permiten una buena visibilidad de los detalles del mismo (cf. Figura 4.10c). En el caso del pizarrón interactivo, también se presenta una vista donde se puede observar con detalle el mapa mental y una barra que muestra únicamente a los colaboradores ausentes y virtualmente presentes. 3. Un colaborador agrega, modifica o elimina elementos o comentarios: los cambios realizados por un colaborador, ya sea autor o revisor, se ven reflejados en el pizarrón interactivo y en los dispositivos de todos sus colegas. 4. El mapa mental sobrepasa las dimensiones del pizarrón interactivo: la vista del mapa mental presentada en dicho pizarrón muestra una barra de desplazamiento horizontal y una vertical. 4.5 Escenario 3: Redistribución de una aplicación colaborativa Este escenario pretende ilustrar funcionalidades necesarias cuando los colaboradores están trabajando co-localizadamente (cara a cara) o distribuidamente. Una caracterı́stica importante es redistribuir la IU en los dispositivos de los colaboradores colocalizados; mientras que se centraliza la IU de los colaboradores reditribuidos, ası́ como proveerlos de la conciencia de grupo. 4.5.1 Preámbulo Los colaboradores no siempre trabajan de manera meramente co-localizada o distribuida, en algunas ocasiones trabajan de manera hı́brida, i.e., algunos de manera co-localizada y otros 98 Análisis de requerimientos del marco XARE de manera distribuida en una misma sesión colaborativa. Algunos de los componentes que se muestran en la sesión actual de cada colaborador son susceptibles a ser modificados, por ejemplo: • la barra de colaboradores puede sufrir algunos de estos cambios; 1. eliminar la foto y el nombre de los colaboradores que integran en ese momento el subgrupo co-localizado, ya que dichos integrantes están conscientes de los participantes presentes; 2. informar a los colaboradores que trabajan de manera distribuida acerca de los miembros del grupo que están trabajando de manera co-localizada y distribuida; • el espacio de trabajo compartido en una sesión co-localizada podrı́a ser desplegado en un dispositivo con una pantalla lo suficientemente grande para que la información sea visible a todos los integrantes. Por otra parte, el espacio de trabajo privado podrı́a ser mostrado en el dispositivo personal de cada integrante; • en una sesión co-localizada, las funcionalidades de un sistema colaborativo son mostradas dependiendo los roles de los colaboradores. Para ejemplificar este escenario se usará la herramienta de votación, la cual intenta facilitar y agilizar el proceso de una sesión de votación, permitiendo a los votantes sufragar de manera electrónica, mediante sus dispositivos móviles, sin importar si se encuentran juntos en el lugar de reunión (co-localizados) o en un cualquier otro lugar (distribuidos). En dicha aplicación se utiliza el término “presente” para referirse a los colaboradores co-localizados y el termino “virtualmente presente” para referirse a los colaboradores distribuidos Los roles que puede asumir un usuario en la herramienta de votación son: 1) proponente, el cual le permite plantear una pregunta hacia un grupo de colaboradores y establecer las reglas de la sesión de votación en curso y 2) votante, el cual le autoriza la emisión de su voto durante dicha sesión. 4.5.2 Descripción del escenario Supongamos que Coello, el jefe del Departamento de Computación de una universidad, organizó una reunión en una sala de juntas que cuenta con un pizarrón interactivo. El objetivo de la reunión es elegir al nuevo coordinador académico. Al llegar a la sala de juntas, cada participante es autenticado en el sistema ya sea: 1) de manera automática a través de NFC (Near Field Communication) o 2) por medio de una ventana que le solicita su nombre de usuario y contraseña. Al inicio de la reunión, sólo algunos de los participantes están fı́sicamente presentes. La información de consciencia sobre la presencia de los miembros no sólo puede ser inferida de manera natural, sino que también es mostrada en el pizarrón interactivo por medio de una barra que presenta a los miembros ausentes y virtualmente presentes. Capı́tulo 4 99 Después de unos minutos, dos de los miembros ausentes ingresan al sistema a través de Internet desde el lugar donde se encuentran. En consecuencia, la barra de colaboradores se actualiza automáticamente, quitando su foto y nombre de la sección de miembros ausentes y colocándolos en la sección de miembros virtualmente presentes. Después, Coello decide que la reunión dé inicio y pasa a la zona donde se encuentran el pizarrón interactivo para introducir la información correspondiente. Al acercarse a dicha zona, una etiqueta NFC detecta su presencia y, en respuesta, el sistema inicia automáticamente una nueva sesión. En el pizarrón interactivo se muestra un mensaje que informa dicho evento y una ventana con las aplicaciones disponibles. Desde dicha ventana, Coello inicia la herramienta de votación, la cual le asigna el rol de proponente. Por medio del pizarrón interactivo, Coello puede plantear a todos los profesores presentes la pregunta principal por la cual se organizó la reunión, las opciones de respuesta y las reglas de la sesión de votación. Coello escribe la pregunta en el pizarrón interactivo y establece que la votación puede ser anónima, i.e. los votantes pueden elegir si hacen público o no su nombre de usuario al votar. Coello además determina que la votación será válida siempre y cuando haya votado al menos el 90% del total de los profesores del departamento (cf. Figura 4.11). Una vez que Coello ha confirmado la información sobre la votación en el pizarrón interactivo, cada dispositivo móvil de los miembros fı́sica y virtualmente presentes recibe una notificación de votación. Cuando un miembro selecciona dicha notificación, la herramienta de votación se inicia automáticamente en su dispositivo móvil y le asigna el rol de votante. Figura 4.11: Datos de la votación en curso ingresados por el proponente en el pizarrón interactivo 100 Análisis de requerimientos del marco XARE La interfaz de usuario de dicha aplicación es capaz de adaptarse a la configuración del grupo (distribuido o co-localizado) y al rol de cada participante (proponente o votante). Para los miembros presentes en la sala, dicha adaptación consiste en mostrar en su dispositivo móvil únicamente las posibles opciones de respuesta para la pregunta actual (cf. Figura 4.12b), ya que la descripción de la misma es mostrada en el pizarrón interactivo (cf. Figura 4.12a). En el caso de los miembros virtualmente presentes, la adaptación consiste en mostrar en su dispositivo móvil la pregunta, las opciones de respuesta y tres listas de consciencia de grupo: 1) miembros ausentes, 2) miembros virtualmente presentes y 3) miembros fı́sicamente presentes en la sala (cf. Figura 4.12c). En ambos casos, la aplicación proporciona una opción de abstención y un botón para emitir un voto anónimo, debido a que Coello ası́ lo estableció. La aplicación da un tiempo de espera para que los profesores analicen las opciones disponibles y emitan su voto. Al finalizar dicho tiempo, la aplicación detecta que el porcentaje mı́nimo para validar la votación no ha sido alcanzado, ası́ que decide mostrar en el pizarrón interactivo un mensaje de aviso que proporciona las siguientes opciones: 1) validar la votación con el porcentaje actual, 2) posponer la votación (con el fin de alcanzar el porcentaje requerido en otro momento) y 3) cancelar la votación. Coello selecciona la primera opción. Como resultado, la aplicación muestra los resultados en el pizarrón interactivo para que los presentes puedan visualizarlos (cf. Figura 4.13) y los envı́a a los dispositivos móviles de los colaboradores virtualmente presentes (cf. Figura 4.14). Tanto en el pizarrón interactivo, como en los dispositivos móviles de los miembros virtualmente presentes, los profesores pueden visualizar el porcentaje de votación de cada opción, ası́ como los nombres de quienes votaron por cada una de ellas. En el caso de los que votaron como incógnito, la palabra “anónimo” es mostrada en lugar del nombre de usuario. De esta manera, termina la sesión de votación. Adaptación del contexto de uso de los sistemas colaborativos Este escenario se adapta al grupo de colaboradores, al conjunto de plataformas y al entorno común. La adaptación al grupo de colaboradores se lleva a cabo cuando la herramienta de votación distingue entre un rol de proponente y un rol de votante puesto que la interfaz de usuario es diferente para cada uno. La adaptación al conjunto de plataformas ocurre cuando el sistema sugiere a Coello usar el pizarrón interactivo, ya que detecta que él está cerca del dispositivo mencionado. Otra forma de adaptación a la plataforma consiste cuando la herramienta adapta su interfaz de usuario a los dispositivos móviles que están usando los votantes. La adaptación al entorno común se logra cuando la herramienta muestra quiénes trabajan de manera co-localizada (presentes) y de manera distribuida (virtualmente presentes) en la barra de colaboradores. Capı́tulo 4 101 (a) Pregunta sujeta a votación y opciones detalladas de respuesta mostradas a los participantes co-localizados en el pizarrón interactivo (b) Opciones simplificadas de respuesta en el dispositivo móvil de un votante co-localizado (c) Opciones detalladas de respuesta en el dispositivo móvil de un votante distribuido Figura 4.12: Adaptabilidad de la interfaz de usuario de la herramienta de votación con base en la configuración del grupo y el rol del usuario 102 Análisis de requerimientos del marco XARE Figura 4.13: Resultados de la votación mostrados a los participantes co-localizados en el pizarrón interactivo Figura 4.14: Resultados de la votación mostrados en los dispositivos de los participantes distribuidos Capı́tulo 4 4.5.3 103 Herramienta de votación Como se mencionó, esta herramienta permite crear votaciones electrónicas aún cuando la ubicación de los colaboradores sea distinta, i.e., co-localizada o distribuida, o los dispositivos en uso sean heterogéneos, e.g., pizarrón interactivo y dispositivo móvil. Además, dicha herramienta ofrece las funcionalidades necesarias dependiendo de dos variables: 1) el rol (votante o proponente) de cada participante y 2) el tiempo establecido para generar el voto. Requerimientos funcionales y no funcionales A continuación se presentan los requerimientos de la herramienta de votación, con el fin de expresar las caracterı́sticas y restricciones de la misma. Los requerimientos funcionales de la herramienta de votación son los siguientes: • Identificar y asignar un rol a cada usuario con base en el tipo de dispositivo desde el cual accede a la aplicación. • Adaptar su interfaz de usuario de acuerdo al rol y a la ubicación fı́sica del usuario (i.e., si está presente o no en la sala de reunión). • Permitir que el proponente organice una nueva votación. En particular, se le debe permitir plantear una pregunta hacia un grupo de colaboradores mediante un pizarrón interactivo, determinar las posibles opciones de respuesta para la pregunta, establecer si la votación puede ser anónima o no, definir el porcentaje mı́nimo para hacer válida la votación y establecer un tiempo de espera para que los usuarios emitan su voto. • Mostrar en los dispositivos móviles de los miembros virtual y fı́sicamente presentes, las posibles opciones de respuesta a la pregunta de votación, una opción de abstención y, si la votación lo permite, una opción de voto anónimo. • Mostrar en los dispositivos móviles de los miembros virtualmente presentes la pregunta que fue sometida a votación e información detallada sobre cada opción de respuesta. • Garantizar, siempre que sea posible, la igualdad entre las opciones de respuesta, sin favorecer a ninguna. • Mostrar en el pizarrón interactivo la pregunta sometida a votación, ası́ como la información adicional sobre la misma, i.e., si la votación puede ser anónima o no, las posibles opciones de respuesta para la pregunta, el porcentaje mı́nimo para hacer válida la votación y el tiempo de espera para que los usuarios emitan su voto. • Brindar al proponente la posibilidad de iniciar la votación, lo cual hará posible que se pueda recibir y registrar los votos de los electores. 104 Análisis de requerimientos del marco XARE • Mostrar un tiempo de espera en el pizarrón interactivo para que los miembros fı́sica y virtualmente presentes emitan su voto. • Solicitar al votante la confirmación de su voto. • Contabilizar los votos de los usuarios y calcular el porcentaje de votación. • Si no se alcanzó el porcentaje mı́nimo de votación, la aplicación debe mostrar opciones para: 1) validar la votación con el porcentaje actual, 2) posponerla o 3) cancelarla. • Si se alcanzó el porcentaje mı́nimo o se validó la votación manualmente, la aplicación debe mostrar los resultados en el pizarrón interactivo y enviarlos a los dispositivos móviles de los miembros virtualmente presentes. • Recuperar una sesión de votación establecida como pospuesta. • Eliminar toda la información de una sesión de votación establecida como cancelada. Los requerimientos no funcionales de la herramienta de votación son en listados a continuación: • Almacenar los votos de tal manera que se garantice la privacidad de los mismos. No se puede tener acceso a los votos almacenados, hasta que se produzca el cierre de la votación. • Transmitir la información de forma que se garantice la integridad y autenticidad de la misma. Interfaz de usuario La adaptación de la aplicación al contexto de uso considera las siguientes variables contextuales: 1) detección de un colaborador, 2) aplicación en ejecución, 3) rol del colaborador y 4) configuración del grupo. La variable “detección de un colaborador” almacena el nombre del colaborador que está cerca al pizarrón interactivo que ofrece las aplicaciones disponibles. En el caso de que dicho colaborador ejecute la herramienta de votación (variable “aplicación en ejecición”) desde el pizarrón, la herramienta de votación le asigna el rol de proponente. Por consiguiente, el resto de los colaboradores tendrán el rol de votante. La variable “rol de colaborador” sirve para desplegar la interfaz de usuario relacionada al rol. En el caso del rol de proponente, la interfaz de usuario contiene varios campos a llenar, e.g., tema, tiempo lı́mite para la votación y porcentaje mı́nimo (cf. Figura 4.11). En el caso del rol de votante, se puede mostrar dos tipos de interfaces de usuario dependiendo de la variable “configuración de grupo” que puede tener una de las siguientes opciones: co-localizado o distribuido. Capı́tulo 4 105 La interfaz de usuario de los votantes co-localizados tendrá como opciones los nombres de los candidatos (cf. Figura 4.12b). Otra interfaz de usuario que visualizan estos votantes es la de resultados, la cual es desplegada en el pizarrón interactivo (cf. Figura 4.13). Mientras que los votantes distribuidos tendrán dos interfaces de usuario, las cuales son las siguientes: 1) interfaz de usuario de votación, la cual tiene los nombres de los candidatos, una barra de colaboradores que muestra la conciencia de grupo (presente, virtualmente presente y ausente) y una breve descripción de cada candidato (cf. Figura 4.12c) y 2) interfaz de usuario de resultados, la cual muestra de manera resumida el porcentaje que obtuvo cada candidato y de ser posible indica quién voto por dicho candidato (cf. Figura 4.14). Es importante notar que las interfaces de usuario de los votantes distribuidos tienen más información debido a que requieren tener la información completa respecto a la votación y conciencia de grupo. Proceso de adaptación contextual Por otro lado, para mostrar la manera en que la herramienta de votación puede adaptarse a cambios contextuales, se describe una lista de eventos que provocan la adaptación de dicha aplicación: 1. Un proponente inicia una nueva sesión de votación: después de que el proponente selecciona la herramienta de votación desde el pizarrón interactivo (cf. Figura 4.6), se muestra una ventana donde puede ingresar la información referente a la votación (cf. Figura 4.11). Una vez confirmada dicha información, los usuarios reciben en sus dispositivos una notificación de votación. En el pizarrón interactivo (cf. Figura 4.12a), los usuarios co-localizados pueden observar la pregunta, las opciones de respuesta, el tiempo de espera y las reglas de la votación, i.e., debe participar al menos el 90 % del total de usuarios registrados y los votantes pueden sufragar de manera anónima, pero no pueden abstenerse de votar. 2. Un votante fı́sicamente presente participa en la sesión de votación en curso: cuando un participante fı́sicamente presente selecciona la notificación de votación, se ejecuta la herramienta de votación en su dispositivo. La interfaz de usuario de esta herramienta se adapta a fin de desplegar únicamente las posibles opciones de respuesta para la pregunta actual, y, si es el caso, una opción para votar como anónimo y un botón de abstención (cf. Figura 4.12b). En el pizarrón interactivo, los votantes pueden observar información de consciencia de grupo, i.e., los colaboradores ausentes y virtualmente presentes en la reunión (cf. Figura 4.6). 3. Un votante virtualmente presente participa en la sesión de votación en curso: cuando un participante virtualmente presente selecciona la notificación de votación, se ejecuta la herramienta de votación en su dispositivo. La interfaz de usuario de la herramienta se adapta de manera que muestra tres listas de consciencia de grupo: 1) ausentes, 106 Análisis de requerimientos del marco XARE 2) virtualmente presentes y 3) fı́sicamente presentes en la reunión; además, muestra la pregunta, sus opciones de respuesta e información adicional, e.g., si la votación puede ser anónima o no. Cuando un participante presiona durante 1 o 2 segundos una de las opciones de respuesta, se muestra un mensaje emergente que proporciona información adicional sobre la opción seleccionada (cf. Figura 4.12c). 4. El tiempo de espera para emitir los votos termina: si la aplicación detecta que se alcanzó el porcentaje mı́nimo de participación, la votación es establecida como validada. En caso de que no se haya alcanzado el porcentaje mı́nimo de votación, la aplicación muestra un mensaje de aviso en el pizarrón interactivo que proporciona las siguientes opciones: 1) validar la votación con el porcentaje actual de votación, 2) posponerla o 3) cancelarla. 4.6 Escenario 4: Mejoramiento de la conciencia grupal Esta propuesta modifica el medio de contacto y la disponibilidad de dos colaboradores dependiendo de sus actividades, preferencias y dispositivos en uso. 4.6.1 Preámbulo Los sistemas colaborativos permiten diferentes medios de contacto, e.g., el sistema de mensajerı́a instantánea permite la comunicación mediante texto, audio o video en tiempo real. Dichos sistemas, e.g, la mensajerı́a instantánea, no cambian de manera automática los medios de comunicación, i.e., no consideran la actividad, el dispositivo o la aplicación en uso, lo cual obliga a los colaboradores tener que usar diferentes sistemas para llevar a cabo la comunicación. De igual manera podrı́a establecerse de manera automática el estado de disponibilidad de los colaboradores al considerar su actividad. Sin dejar de lado la opción que permita a los colaboradores establecer manualmente dicha disponibilidad o el medio de contacto. 4.6.2 Descripción del escenario Un grupo de colaboradores, cuyos nombres corresponden a Isaac, Alicia y Jenny, se encuentra trabajando a distancia en la redacción de un reporte técnico para un nuevo producto de software. En particular, Isaac y Sandy tienen que redactar la sección de desarrollo, aunque Isaac también es responsable de escribir la sección de introducción. Finalmente, Alice y Sandy están encargadas respectivamente de escribir y revisar la sección de conclusiones, pero Alice tiene asignado la revisión de la sección de introducción y de desarrollo. Capı́tulo 4 107 Isaac ingresa al espacio de trabajo para terminar algunas subsecciones de la sección de desarrollo, ya que la fecha lı́mite de esta actividad está relativamente cercana. Con base en las preferencias de Isaac, el espacio de trabajo determina su disponibilidad como sigue: 1. Ocupado para los colegas: a) cuya actividad actual es muy poco similar o no similar a la suya, aún si una de sus actividades potenciales es más o menos similar o poco similar a su actividad actual, y b) cuya actividad actual o potencial es muy poco o no similares a su actual actividad. 2. Alcanzable si es posible para los colegas: a) cuya actividad es más o menos o poco similar a la suya y b) cuya actividad actual es muy poco o no es similar a la suya, pero una de sus actividades potenciales es similar o muy similar a su actual actividad. 3. Accesible para los colegas cuya actividad es similar o muy similar a la suya. Entonces, Isaac define sus propios medios de contacto con base en sus sub-estados de disponibilidad (primer parámetro de entrada): 1. Cuando está ocupado, Isaac puede ser contactado por correo electrónico, ası́ que temas no relacionados a su actividad actual serán tratados cuando él pueda/quiera. 2. En el caso de estar contactable si es posible, él podrá ser contactado solo por mensajerı́a instantánea para ser informado inmediatamente de algún tema y retrasar su respuesta en caso de ser necesario. 3. Cuando está accesible, Isaac podrá ser contactado por video-conferencia, voz o mensajerı́a instantánea porque, desde su punto de vista, los medios de comunicación directa en tiempo real hacen entendible las ideas y sugerencias relacionadas con su actividad actual. Cuando Alice y Sandy ingresan al espacio de trabajo, ellas prefieren que este infiera su disponibilidad y sus medios de contacto. Tanto Alice como Sandy deciden trabajar en la sección de conclusiones, ası́ que ellas colocan su cursor en dicha sección para empezar a escribir y redactar respectivamente. Dado que la fecha lı́mite de dicha actividad es relativamente distante, el espacio de trabajo determina los siguientes sub-estado de su disponibilidad: 1. Ocupadas para colegas, cuyas actividades actuales y potenciales sean poco o no similares a sus actuales actividades. 2. Contactable si es posible para colegas, cuya actual actividad es muy poco similar o no similar a la suya, pero una de sus actividades potenciales es muy similar, similar, más o menos similar o poco similar a su actividad actual. 3. Accesibles para colegas, cuya actual actividad es muy similar, similar, más o menos similar, o poco similar a la suya. 108 Análisis de requerimientos del marco XARE Además, el espacio de trabajo establece el medio de contacto de Sandy con base en la similitud entre sus actividades y las de sus colegas, considerando las preferencias de Sandy. De esta manera, ella puede ser contactada a través de: 1. Anotaciones privadas en el texto o correo electrónico por colegas, cuya actividad actual o potencial es muy similar o similar a su actividada actual o potencial. En este caso, Sandy ha seleccionado esos medios de contacto, ya que estos aseguran la persistencia de datos. 2. Sus medios de contacto preferidos, mensajerı́a instantánea o voz, de otra manera. El espacio de trabajo de Alice también determina sus medios de contacto en función de la proximidad lógica entre ella y sus colegas dentro del espacio. Ası́, ella puede ser contactada a través de: 1. Anotaciones privadas en el texto por colegas que están trabajando en el mismo objeto compartido que está siendo accedido por ella. 2. Video-conferencia, voz y mensajerı́a instantánea de otra manera. En todos los casos, la disponibilidad de los medios de contacto dependen del hardware y software de los dispositivos de Isaac, Sandy y Alice. Suponga que Sandy revisa la sección de conclusiones durante un rato y después detiene su actividad para contactar a Isaac. Ella coloca su cursor en la foto de Isaac (localizado en la barra de colaboradores) y como resultado, un ı́cono desplegable aparece para mostrar la disponibilidad de Isaac y los medios de contacto para comunicarse con él (cf. Figura 4.15a). Sandy nota que la disponibilidad de Isaac es contactable si es posible, ya que la fecha lı́mite de su actividad es cercana y aún cuando sus actividades en curso no son similares, ella también es responsable de escribir la sección de desarrollo. Por consiguiente, el medio de contacto de Sandy para comunicarse con Isaac es la mensajerı́a instantánea. Sin embargo, ella decide terminar de revisar un párrafo de la sección de conclusiones, antes de contactarlo. Cuando Sandy pone su cursor sobre la foto de Alice (cf. Figura 4.15a), ella observa que la disponibilidad de su colega es accesible ya que aunque sus actividades actuales son poco similares, la fecha lı́mite de la actividad de Alice es distante. El medio de contacto que tiene Sandy para comunicarse con Alice es mediante anotaciones privadas sobre el texto porque ambas están trabajando sobre la misma sección (cf. Figura 4.15a). Isaac percibe que la disponibilidad de Sandy es ocupado (cf. Figura 4.15b), ya que aunque la fecha lı́mite de la actividad de ella es distante, sus actividades actuales no son similares y la actividad potencial de él (i.e., escribir la sección de introducción) tampoco es similar a la actividad actual de ella. Los medios de contacto de Sandy son las anotaciones privadas sobre el texto y el correo electrónico porque la actividad potencial de ella (i.e, escribir la sección de desarrollo) es muy similar a la actividad actual de Isaac. La vista de Isaac muestra que Alice Capı́tulo 4 109 (a) Sandy’s view (b) Isaac’s view (c) Alice’s view Collaborators Collaborators Collaborators Isaac Isaac WriterReachable if possible Development Instant Messenger Sandy Isaac WriterReachable if possible Development Instant Messenger Writer Development Sandy Reviewer Conclusions Sandy Reviewing Busy Conclusions Private Annotations Reviewer Accessible Conclusions Voice E-mail Alice Alice WriterAccessible Conclusions Private Annotations Instant Messenger Alice WriterAccessible Conclusions Video-conference Writing Conclusions Voice Instant Messenger Figura 4.15: Disponibilidad y medios de contacto al inicio de la sesión colaborativa. es accesible (cf. Figura 4.15b), ya que la fecha lı́mite de la actividad de ella es distante y sus actividades actuales son más o menos similares. Los medios de contacto disponibles para que Isaac contacte a Alice son video-conferencia, voz y mensajerı́a instantánea porque ellos están trabajando en diferentes secciones. Al igual que Sandy, Alice puede ver que la disponibilidad de Isaac es contactable si es posible (cf. Figura 4.15c), ya que la fecha lı́mite de la actividad de él es cercana y sus actividades actuales son más o menos similares. Por lo tanto, los medios de contacto disponibles para que Alice establezca comunicación con Isaac corresponden a la mensajerı́a instantánea. A diferencia de la vista de Isaac, la vista de Alice (cf. Figura 4.15c) muestra que Sandy es accesible, ya que aunque sus actividades actuales son poco similares, la fecha lı́mite de la actividad de Sandy es distante. Los medios de comunicación disponibles para que Alice contacte a Sandy son la mensajerı́a instantánea y voz porque sus actividades actuales y potenciales son más o menos similares en el mejor de los casos. Después, Sandy deja la sección de conclusiones para trabajar en la sección de desarrollo. Ası́, ella pone su cursor en esta última sección y empieza a leer lo que escribió Isaac. Cuando el espacio de trabajo detecta esta acción, no solo los sub-estados de la disponibilidad de Sandy cambian sino también los de sus colegas cono se explica a continuación. Para llegar a un acuerdo acerca de la estructura de esta sección, Sandy pone su cursor en la foto de Isaac otra vez y observa que su estado de disponibilidad se volvió accesible (cf. Figura 4.16a). Ella también nota 110 Análisis de requerimientos del marco XARE que tiene medios de contacto adicionales para comunicarse con él. De hecho, la instancia del espacio de trabajo alojado en el dispositivo de Sandy provee esos medios de contacto adicionales porque este ha detectado que Sandy e Isaac están compartiendo la misma actividad. (a) Sandy’s view (b) Isaac’s view (c) Alice’s view Collaborators Collaborators Collaborators Isaac Isaac Accessible Writing Development Video-conference Isaac WriterReachable if possible Development Instant Messenger Writer Development Voice Sandy Instant Messenger Sandy Sandy Writing Accessible Development Private Annotations Writer Development WriterReachable if possible Development Voice E-mail Alice Alice WriterAccessible Conclusions Video-conference Instant Messenger Alice WriterAccessible Conclusions Video-conference Voice Voice Instant Messenger Instant Messenger Writing Conclusions Figura 4.16: Disponibilidad y medios de contacto de Sandy, Isaac y Alice una vez que Sandy ha cambiado su actividad. De esta manera, los medios de contacto disponibles para que Sandy establezca comunicación con Isaac son voz y mensajerı́a instantánea, ya que aún cuando Isaac también estableció la herramienta de video-conferencia como uno de sus medios de contacto preferidos y su dispositivo es capaz de soportarlo, el dispositivo de Sandy no tiene cámara. En consecuencia, una sesión de video conferencia no puede llevarse a acabo. En la vista de Sandy (cf. Figura 4.16a), Alice permanece accesible, ya que la fecha lı́mite de la actividad de Alice es distante y sus actividades actuales son más o menos similares. Sin embargo, los medios de contacto de Alice han cambiado a mensajerı́a instantánea y voz porque ellas están trabajando en diferentes secciones. Es importante mencionar que la herramienta de video-conferencia ha sido seleccionada por Alice, pero no está disponible para Sandy ya que como se mencionó previamente, el dispositivo de Sandy no tiene cámara. En la vista de Isaac (cf. Figura 4.16b), Sandy se volvió accesible, ya que sus actividades actuales son muy similares. Por este motivo, los medios de comunicación disponibles para que Isaac contacte a Sandy permanecen sin cambios. La disponibilidad y los medios de contacto de Alice son los mismos. Por otro lado, en la vista de Alice (cf. Figura 4.16c), los medios de contacto y la disponibilidad de Isaac permanecen sin cambios, pero Sandy se volvió contactable Capı́tulo 4 111 si es posible ya que las actividades actuales de Alice y Sandy son más o menos similares y la fecha lı́mite de la actividad de Sandy es cercana. Es importante mencionar que los medios de contacto de Sandy no cambiaron, porque sus actividades actuales y potenciales son más o menos similares en el mejor de los casos. Adaptación del contexto de uso de los sistemas colaborativos Este escenario aborda dos dimensiones del contexto de uso de los sistemas colaborativos. Dichas dimensiones corresponden a: grupo de colaboradores y conjunto de plataformas. La adaptación al grupo de colaboradores ocurre cuando cambia la disponibilidad o los medios de contacto disponibles dependiendo de la actividad actual o potencial de los colaboradores. La adaptación al conjunto de plataformas se logra cuando se consideran los dispositivos necesarios para proveer el servicio de medios de contacto. En el caso de Isaac, él si contaba con una cámara Web para realizar una video-conferencia, pero Sandy no tenı́a cámara, por tal motivo el sistema no ofreció dicho servicio. 4.6.3 Herramienta disponibilidad y medios de contacto Esta herramienta tiene como finalidad adaptar la disponibilidad y los medios de contacto dependiendo del colaborador a contactar (colaborador observado) y el que desea hacer el contacto (colaborador observador). Tanto la disponibilidad como el medio de contacto pueden ser calculados de manera automática, dependiendo de las actividades, roles y la disponibilidad de los colaboradores involucrados o de manera manual por parte del colaborador. Requerimientos funcionales y no funcionales Los requerimientos funcionales de la herramienta de disponibilidad y medios de contacto se enlistan a continuación: 1. Autenticar a los colaboradores. 2. Permitir que los colaboradores establezcan manualmente su disponibilidad desde la ventana de configuración de disponibilidad. 3. Calcular la disponibilidad de manera automática mediante el mecanismo de similitud de las actividades potenciales y actuales del colaborador observado y del observador. 4. Permitir que los colaboradores establezcan su medio de contacto de manera manual mediante la ventana de configuración de los medios de contacto. Los medios de contacto 112 Análisis de requerimientos del marco XARE corresponden a: video-conferencia, correo electrónico, audio, mensajerı́a instantánea y anotaciones privadas. Cada medio de contacto será relacionado con un estado de disponibilidad, ası́ que cuando se calcule la disponibilidad, los medios de contacto relacionados estarán disponibles para el colaborador observador. 5. Calcular los medios de contacto de manera automática. 6. Mostrar la disponibilidad y el medio de contacto del colaborador observado al momento de que el colaborador observador coloque el cursor sobre la foto del observado. 7. Abrir el medio de contacto seleccionado por el observador cuando requiere contactar al colaborador observado. 8. Verificar que ambos tengan el hardware como el software necesario para un medio de contacto dado; Los requerimientos no funcionales de la herramienta disponibilidad y medios de contacto se muestran a continuación: 1. Verificar el hardware y software necesario para los medios de contacto en un tiempo muy breve, escasos segundos; 2. Calcular la disponibilidad en un tiempo breve, escasos segundos; 3. Informar al colaborador la razón por la que no puede utilizar un medio de contacto especı́fico. Interfaces de usuario Las variables contextuales involucradas en la adaptación de la disponibilidad y los medios de contacto son las siguientes: 1) similitud de las actividades, 2) disponibilidad, 3) dispositivo en uso y 4) preferencias del colaborador observado. Las variables anteriores son necesarias tanto para la disponibilidad como los medios de contacto, aunque estos últimos también requieren la disponibilidad y las preferencias del usuario. Dichas variables están planteadas a detalle en la propuesta del escenario 4.6. La variable “similitud de las actividades” almacena el grado de similaridad entre las actividades, el cual corresponde a muy similares, similares, más o menos similares, poco similares, muy poco similares y no similares. Este cálculo requiere la actividad actual del colaborador observado y del observador. La variable “dispositivos en uso” debe contener tanto el hardware como el software del dispositivo en uso del observador y del colaborador observado, con la finalidad de ofrecer o no un medio de comunicación en especı́fico. Capı́tulo 4 113 La variable contextual “disponibilidad”, solo es requerida para calcular el medio de contacto; dicha variable acepta uno de los siguientes estados: ocupado, accesible y alcanzable si es posible. A partir de esta variable, la de similitud y la de dispositivos en uso ofrecen los medios de contacto disponibles entre dos colaboradores. La variable “preferencias del colaborador observado” contiene la predilección de medios de contacto. Dicha preferencia debe ser previamente establecida por él o por algún mecanismo del sistema. Proceso de adaptación contextual Los medios de contacto disponibles en este caso de estudio corresponden a: mensajerı́a instantánea, video conferencia, voz y anotaciones privadas. La siguiente lista de eventos muestra la manera en que la herramienta puede adaptarse a cambios contextuales: 1. Un colaborador prefiere que el espacio de trabajo determine su disponibilidad y medio de contacto. En este caso el colaborador omite abrir la ventana de disponibilidad, lo cual indica al espacio de trabajo que deba determinar automáticamente la disponibilidad del colaborador. 2. Un colaborador coloca su cursor en la foto de otro colaborador. En consecuencia, la barra de colaboradores despliega varios widgets que muestran la disponibilidad y los medios de contacto del colaborador observado (cf. Figuras 4.15 y 4.16). 3. El colaborador observador selecciona un medio para contactar al colaborador observado. Después de seleccionar el medio de contacto, este es ejecutado para ser usado por ambos colaboradores. 4.7 Escenario 5: Manejo de intromisiones Esta propuesta oculta información de manera automática ante la presencia de una persona ajena al grupo de colaboración. 4.7.1 Preámbulo En los últimos años, la cobertura del servicio de Internet se ha ido incrementando, lo cual ha permitido que los usuarios de ese servicio puedan comunicarse fácilmente. Dentro del grupo de estos beneficiarios se encuentran los usuarios de los sistemas colaborativos. Gracias a la 114 Análisis de requerimientos del marco XARE cobertura de Internet y a los dispositivos móviles, tales como PC portátiles o tablets, los colaboradores pueden trabajar fuera de sus oficinas. El problema de trabajar fuera de las oficinas es que los colaboradores pueden acceder a información confidencial desde cualquier lugar, e.g., salones de juntas o bibliotecas. Dicha información puede ser visualizada por cualquier persona que se acerque al dispositivo. En este caso el sistema debe interrumpir su funcionamiento de tal forma que oculte el trabajo realizado hasta el momento, i.e., si la información está desplegada, el sistema deberá cambiarla por otra información. Otra consecuencia resultante de que una persona ajena se acerque al dispositivo es la interrupción de la comunicación, e.g., video llamada que está llevando a cabo de manera electrónica. 4.7.2 Descripción del escenario Supongamos que una empresa de desarrollo de software recibió un reporte de errores en un sistema de administración que ellos implementaron. Dada la gravedad del problema, la empresa lanzó una convocatoria a todos sus desarrolladores con la finalidad de encontrar y proponer una solución a dichos errores de software. Un grupo de colaboradores, compuesto por Sandy, Alice e Isaac, encontraron el problema en dicho software. Ası́ que ellos decidieron hacer un documento explicando tanto las causas de los errores encontrados como la solución propuesta. Después de que el grupo decide el contenido del reporte, ellos se reparten la redacción del documento de la forma siguiente: Sandy tiene asignada la tarea de escribir las causas de los errores encontrados, Isaac debe hacer y describir los diagramas de clase y Alice tiene que hacer y redactar los diagramas de estado. Debido a que el grupo de colaboradores pasó mucho tiempo en una oficina buscando la solución, ellos deciden trabajar de manera distribuida en la redacción del documento. Sandy se retira de la oficina, en donde estaban trabajando, para salir a comer en el restaurante de la empresa. Ella decide empezar a trabajar en la redacción del documento mientras espera que le entreguen su comida. Cuando ella va a la mitad de la redacción, le surgen dudas de los errores encontrados en el software, ası́ que ella decide entablar una comunicación con el resto del grupo por medio de la mensajerı́a instantánea. Mientras el grupo de trabajo está participando en la conversación, Sandy puede ver en su pantalla tanto el documento que están generando ası́ como la conversación del grupo. Poco tiempo después de iniciada la comunicación, un programador ajeno al equipo se acerca a platicar con Sandy. Dicho programador sabe que el equipo de ella ha encontrado tanto las causas de los errores como la solución al problema de software, por tal motivo él decide acercarse a la computadora portátil de ella para intentar leer tanto el reporte como su conversación con el equipo. Tan pronto como el programador se acerca a la computadora, el sistema detecta que una persona ajena al grupo está observando de frente la pantalla de la computadora de Capı́tulo 4 115 Sandy. Como consecuencia, el sistema oculta tanto el reporte como la conversación que ella está llevando a cabo. Por otro lado, Alice responde a la pregunta generada por Sandy, pero observa que Sandy no responde a la explicación dada. De repente Alice nota que la foto de Sandy cambió de color. Cuando Alice ubica su cursor del ratón sobre la foto de Sandy, el sistema muestra un mensaje indicando que una persona ajena al grupo está observando la pantalla de Sandy. Por tal motivo ella no puede observar los mensajes enviados ni las actualizaciones, ni tampoco puede desarrollar sus actividades. Adaptación al contexto de uso de los sistemas colaborativos Este escenario solo se adapta a la dimensión entorno compartido, la cual pertenece al contexto de uso de los sistemas colaborativos. Tal adaptación se logra cuando se detecta a una persona, ajena al grupo de trabajo, cerca de un despliegue de información confidencial. Otra manera de adaptarse a la dimensión mencionada se hace al notificar a los colaboradores involucrados en la conversación de Sandy acerca de la presencia de una persona ajena al sistema. 4.8 Escenario 6: Suministro de información relevante Esta propuesta provee información tomando en cuenta el contexto del colaborador considerando los dispositivos en uso, las actividades en ejecución y la información a desplegar. 4.8.1 Preámbulo En este caso, la adaptación de la información se refiere al despliegue de esta, considerando: • tiempo: refiere a recibir/enviar información instantáneamente o estableciendo una fecha. Por ejemplo, un grupo de colaboradores necesitan recibir información de manera inmediata, ya que ésta influye en su actividad actual; pero en otras ocasiones, la información no es tan urgente como para recibirla en el momento en que se genera, como en el caso de las reuniones de trabajo; • rol: determina las restricciones y alcances que tiene el colaborador en el manejo de la información; • actividad: concierne a el suministro de información que enriquezca la actividad actual del colaborador, e.g., proveer manuales de diagramas de clase a un colaborador que está haciendo dichos diagramas; 116 Análisis de requerimientos del marco XARE • conjunto de plataformas: se refiere a considerar tanto el hardware como el software necesario para soportar el despliegue de la información; • tamaño de los archivos: es un factor importante que se debe considerar, ya que no vale la pena enviar información muy grande en un dispositivo con pocas capacidades, e.g., teléfono inteligente; • ubicación del colaborador: se refiere a predecir el tipo de información que puede ser útil para el colaborador considerando su ubicación actual; • preferencias sobre la información: se refiere a que dada las preferencias del colaborador puede recibir información relacionada. El siguiente escenario maneja dos herramientas, las cuales son: administración de contenidos y consultas de pacientes. La primera herramienta facilita información que se tratará en una reunión previamente planificada. La segunda herramienta lleva el control de los pacientes, i.e., ya que contiene los resultados de laboratorios y estudios, ası́ como las anotaciones de los médicos, enfermeras y especialistas. 4.8.2 Descripción del escenario Supongamos que Sandy, Alice e Isaac están registrados en el sistema de consultas de pacientes en un hospital, cada uno de ellos tienen los siguientes roles: Isaac es médico cardiólogo, mientras que Alice es pasante de medicina y Sandy es enfermera. Dado que Alice es pasante de medicina, el Dr. Isaac quiere que ella deduzca el padecimiento de cinco pacientes, ası́ que él agenda una cita con Alicia en la sala de médicos. Isaac entra a la habitación dos hora antes de la hora acordada, con el fin de establecer algunos detalles de la reunión. En su tablet PC, el Dr. Isaac ejecuta la herramienta de administración de contenidos, con el fin de establecer cada asunto a discutir (visita a los pacientes de los cuartos 2, 8, 15, 18 y 19) y seleccionar los expedientes de los pacientes a visitar. Dichos expedientes son una versión resumida que es generada por la herramienta de consulta de pacientes. Al final de este proceso, el Dr. Isaac acerca su dispositivo móvil a la etiqueta NFC situada en la entrada de la sala de reuniones y selecciona la opción que le permite grabar la información sobre la reunión en dicha etiqueta. Debido a las limitaciones de almacenamiento de las etiquetas NFC, la herramienta de administración de contenidos sube a un servidor de contenidos, a través de Wi-Fi, los expedientes de los pacientes en los formatos disponibles (e.g., html, pdf, doc). Alice llega una hora antes a la sala de médicos y acerca su tablet PC a la etiqueta NFC, de tal manera que cuando la distancia entre ambos es de 3 cm o menos, se establece entre ellos una comunicación a través de NFC. Como resultado de dicha comunicación, varias acciones tienen lugar automáticamente: 1) la herramienta de administración de contenidos es lanzada en ejecución, 2) la sesión del participante es iniciada, y finalmente 3) la etiqueta NFC transfiere a su dispositivo móvil la información necesaria. Una vez finalizado este proceso, en la interfaz de Capı́tulo 4 117 usuario del administrador de contenidos se añaden ı́conos que representan los documentos descargados, con el fin de que sean fácilmente accesibles por el usuario. Ası́ que a la hora de la reunión Sandy ya tiene dichos expedientes. Con el fin de descargar documentos adaptados a las caracterı́sticas del dispositivo, la herramienta de administración de contenidos toma en cuenta el espacio de almacenamiento y los visores de documentos disponibles en el dispositivo. De esta manera, por ejemplo, si no hay suficiente espacio de almacenamiento para guardar todo el documento, se proporciona únicamente un resumen. Del mismo modo, si el dispositivo destino tiene sólo visores postscript, un documento en este formato es descargado desde el servidor de contenidos a través de Wi-Fi. Posterior a la reunión, Sandy y Alice deciden consultar a los pacientes que habı́an discutido. El recorrido empieza por las patologı́as más comunes, en este caso por el paciente del cuarto 18. Al ingresar al cuarto, la herramienta de consulta de pacientes detecta la presencia de ambas en dicho cuarto; en consecuencia el sistema propone al Dr. Isaac delegar algunas responsabilidades a Alice, pero él declina la sugerencia ya que él piensa que ella necesita practicar más. Otra acción por parte la herramienta de consulta de pacientes es desplegar en ambas tablets el expediente completo del enfermo del cuarto 18. Para el Dr. Isaac es normal tener el expediente del paciente que visita; en cambio, Alice se sorprende porque ella tenı́a previamente a la vista el expediente resumido del paciente del cuarto dos, puesto que ella pensó el recorrido en un orden ascendente. Tanto Alice como el Dr. Isaac pueden ver los resultados de los estudios clı́nicos. Terminando la visita, el Dr. Isaac agrega anotaciones y modifica la dosis de medicamento, gracias a la mejora del paciente, en el expediente del enfermo. Alice puede ver a través de su tablet la serie de pasos que el Dr. Isaac hace al momento de modificar el expediente. Al momento que la dosis es modificada, la herramienta de consulta de pacientes actualiza la información en la base de datos, posterior a la actualización de la base de datos se informa de dicha actualización al demás personal que atiende al paciente de la cama 18, e.g., la nueva dosis de medicamento se notifica a Sandy y la mejora en la salud del paciente se notifica al nutriólogo. La actualización de la dosis es de manera inmediata ya que ésta es de vital importancia debido a que una dosis no apropiada puede tener consecuencias fatales en la salud del paciente. En las visitas a los cuartos 8 y 19, Alice continua dando sugerencias verbales y observando como el Dr. Isaac manipula la herramienta de consulta de pacientes. Cuando ambos llegan al cuarto 15, el Dr. Isaac permite que Alice haga anotaciones relacionadas con el paciente usando la herramienta mencionada. Por tal motivo, ambos tienen derechos de modificar el expediente de dicho paciente. Finalmente, tanto Alice como el Dr. Isaac acuden al cuarto 2 en donde Sandy está tomando los signos vitales del paciente. Cuando ellos ingresas al cuarto, la información de los signos vitales es actualizada inmediatamente en las tablets de Alice e Isaac. Al momento que el sistema detecta que ambos están en el cuarto, el sistema propone dos opciones: 1) delegar algunas responsabilidades a Alice o 2) usar la computadora táctil ubicada sobre la pared con la finalidad de que ambos vean la misma información al mismo tiempo. Ambas opciones 118 Análisis de requerimientos del marco XARE solo son desplegadas al Dr. Isaac desde su tablet ya que él tiene mayor jerarquı́a que Alice. Isaac accede a las dos opciones, por tal motivo Alice puede modificar el expediente bajo la supervisión del doctor. Por otro lado, la herramienta consulta de pacientes despliega todas los ecocardiogramas y electrocardiogramas en la computadora táctil, ya que es muy usual dicha preferencia por los usuarios del hospital mencionado. Mientras que las tablet solo contienen las anotaciones médicas. Al terminar las visitas tanto Sandy como Isaac continúan con sus actividades, por tal motivo la herramienta de consulta de pacientes no permite que Alice consulte los expedientes de los pacientes visitados; en cambio, el Dr. Isaac tiene acceso total en cualquier momento, mientras él se ubique dentro del hospital. En otros lugares, el Dr. Isaac no puede ver información restringida, e.g., anotaciones del nutriólogo. Adaptación al contexto de uso de los sistemas colaborativos Este escenario aborda todas las dimensiones del contexto de uso de los sistemas colaborativos. La adaptación al grupo de colaboradores se implementa al proveer información relacionada con los estratos de los colaboradores en el hospital, e.g., el Dr. Isaac tiene el control que permite la intervención de Alice dentro del sistema del hospital. También adapta a las preferencias de los usuarios,e.g., el Dr. Isaac decidió que el sistema le provea de información de los expedientes, a lo más con dos dı́as de anterioridad. La adaptación al conjunto de plataformas se presenta al momento de sugerir usar la pantalla táctil cuando están en un cuarto que tiene dicha pantalla. También se puede ver que esta dimensión ha sido llevada a cabo mediante la herramienta de consulta de pacientes al detectar el espacio de almacenamiento y los visores disponibles. La adaptación al entorno compartido se aprecia en este escenario, ya que se considera, el lugar (proveer la información solo cuando los colaboradores estén dentro del hospital, ası́ como mostrar en la pantalla de los dispositivos móviles de los colaboradores el expediente del paciente que están actualmente visitando) y el tiempo (proveer la información una hora antes de la reunión). 4.8.3 Herramienta administrador de contenidos vı́a NFC Este escenario considera dos herramientas, administración de contenidos y sistema de consultas de pacientes. En este caso solo se ha implementado la primera, la cual permite facilitar a un grupo de colaboradores la información que se tratará en una reunión previamente planificada. Dicha información se refiere al objetivo de la reunión, los temas a tratar y los archivos relevantes a la misma. Al entrar al lugar de reunión y acercar su dispositivo móvil a la etiqueta NFC asociada a dicho lugar, los colaboradores reciben automáticamente toda la información necesaria sobre la reunión. Capı́tulo 4 119 Requerimientos funcionales y no funcionales Los requerimientos funcionales del administrador de contenidos vı́a NFC se listan a continuación: 1. Permitir que un colaborador ingrese la información relacionada a una reunión y suba a un servidor de contenidos, los documentos que son relevantes a la misma. 2. Permitir que un colaborador pueda grabar en una etiqueta NFC la información relacionada a una reunión. 3. Permitir que un colaborador, al acercar su dispositivo a una etiqueta NFC, inicie automáticamente su sesión y reciba en su dispositivo la información referente a una reunión. 4. Ejecutarse automáticamente cuando un colaborador inicie su sesión a través de una etiqueta NFC y haya información sobre una reunión grabada en dicha etiqueta. Detectar qué tipos de formato de documentos son soportados por las herramientas de visualización instaladas en el dispositivo. 5. Iniciar la descarga de los documentos que es necesario revisar durante una reunión. Durante la solicitud de documentos, se debe indicar qué tipos de formato son soportados, de tal manera que los documentos a descargar sean en un formato soportado. 6. Mostrar en la interfaz de usuario de la aplicación un ı́cono por cada documento descargado y permitir la apertura de dicho documento al hacer clic sobre su ı́cono. Los requerimientos no funcionales del administrador de contenidos vı́a NFC son los siguientes: 1. Habilitar el adaptador de red inalámbrico WI-Fi, si éste se encuentra deshabilitado. 2. Permitir la apertura de los documentos descargados. 3. No permitir la transmisión de información a dispositivos de usuarios que no estén registrados. Interfaces de usuario Las variables contextuales en la herramienta administrador de contenidos vı́a NFC son las siguientes: 1) tiempo, 2) visores disponibles y 3) espacio de almacenamiento. La variable contextual “tiempo” determina la información que es susceptible de ser descargada. Por otro lado, la variable “visores disponibles” permite conocer los visualizadores disponibles en el dispositivo del usuario y de esta forma determinar el formato de los documentos que podrán ser desplegados. Finalmente, la variable “espacio de almacenamiento” determina qué versión de los documentos podrán ser descargados; previamente deben estar registrados dos o más versiones del mismo documento. 120 Análisis de requerimientos del marco XARE Proceso de adaptación contextual Con el fin de mostrar la manera en que el administrador de contenidos puede adaptarse a los cambios contextuales, se describe una lista de eventos que provocan la adaptación de esta herramienta: 1. Un colaborador ingresa a una sala de juntas y acerca su dispositivo (a una distancia de 3 cm o menos) a una etiqueta NFC: la etiqueta transfiere al dispositivo del usuario la información referente a la reunión en curso. A continuación, se ejecuta el módulo de lectura de la aplicación, cuya interfaz de usuario es adaptada de acuerdo a la información recibida, i.e. muestra la lista de puntos a tratar en la reunión e información adicional correspondiente a cada uno de ellos. Finalmente, el módulo de lectura inicia la descarga de los documentos a revisar durante la reunión. 2. El módulo de lectura de la aplicación detecta qué tipos de formatos de documento son soportados por las herramientas de visualización del dispositivo: durante la solicitud de descarga de cada documento, el módulo de lectura indica los formatos de documento soportados por el dispositivo, de tal manera que el documento a descargar tenga un formato soportado (si está disponible). 3. Termina la descarga de los documentos a revisar durante la reunión: la interfaz de usuario de la aplicación muestra, junto a cada tema de la reunión, los documentos asociados a cada uno. Por medio de un clic sobre uno de los ı́conos se puede visualizar el contenido del documento correspondiente. 4.9 Escenario 7: Notificaciones multi-modales Este escenario provee notificaciones de diversas modalidades para que dichos avisos se adapten al contexto. 4.9.1 Preámbulo La multi-modalidad nos permite dar a conocer la llegada de información de diferentes formas dependiendo del tipo de información a notificar, del lugar en donde se encuentra ubicados los colaboradores e incluso de las personas a nuestro alrededor. Las notificaciones multi-modales más usadas en los celulares son por: sonido, texto o vibración. En un ambiente colaborativo es fundamental informar sobre eventos importantes para el grupo, e.g., cambio de medicamento a un paciente. La modalidad a usarse para notificar la información debe adaptarse dependiendo varios parámetros, los cuales son los siguientes: Capı́tulo 4 121 • la relevancia de la información, e.g., la notificación del cambio de medicamento de un paciente hospitalizado es más importante para una enfermera que recibir la notificación de un dispositivo cercano que permite hacer video-llamadas; • la actividad del colaborador que origina la notificación y la del colaborador que recibe la notificación son importantes; • el lugar fı́sico en donde se encuentra el receptor de la notificación. 4.9.2 Descripción del escenario Sandy, Alice e Isaac pertenecen al equipo de desarrollo de software de una empresa renombrada. Sandy y Alice están exponiendo a los clientes los avances del proyecto. Mientras tanto, Isaac está terminando una actividad con fecha lı́mite caducada que no podı́an resolver. La actividad mencionada es importante, ya que es parten de los avances a presentar frente a los clientes. Los miembros del grupo de desarrollo utilizan un sistema que informa mediante notificaciones acerca de las modificaciones y las actividades concluidas en las que está participando el grupo. Antes de emitir la notificación, el sistema determina el modo de la notificación considerando las siguientes caracterı́sticas: 1) la actividad actual tanto de Alice como de Sandy corresponde a exponer los avances del proyecto, 2) las colaboradoras se encuentran en una sala de juntas con personas ajenas al proyecto, 3) la conclusión de la actividad de avances del proyecto ya que esta actividad es de importancia para ellas, 4) los dispositivos que están usando los colaboradores; en este caso cada uno de ellos tiene un teléfono celular, ası́ como dos computadoras portátiles, una de ellas es utilizada por Isaac, mientras que la otra es usada por Alice y Sandy. En consecuencia, el sistema desvı́a la notificación textual hacia el teléfono celular de ambas colaboradoras usando la vibración de los celulares y la emisión de un sonido en un nivel apenas perceptible para avisarles de la llegada de una notificación. Mientras Alice continua explicando, Sandy decide leer la notificación, ya que notó que tanto ella como Alice la recibieron al mismo tiempo. Dicha noticia informa de la conclusión de la actividad pendiente, la cual puede ser mostrada por completo al cliente. El sistema notifica a Isaac que sus colegas han terminado la exposición mediante una mensaje textual en la computadora. La notificación no emite sonido alguno y solo despliega en la parte inferior derecha de la pantalla un recuadro que contiene el anuncio. El sistema hace la notificación mediante la computadora que tiene en uso Isaac en su oficina-, la selección de dicho dispositivo se debe a la poca relevancia de la actividad ası́ como la fecha lı́mite de la actividad. Isaac quiere saber sobre los resultados de la presentación a los clientes, por tal motivo él organiza una reunión en su oficina mediante una agenda colaborativa. Él establece el lugar de reunión su oficina. Por tal motivo, la agenda informa a Sandy y Alice de dicha reunión de manera textual, mediante sus teléfonos celulares. En esta ocasión, el sistema utiliza nuevamente la vibración del celular además de aumentar el timbre de la notificación, ya que ellas 122 Análisis de requerimientos del marco XARE temporalmente no están desarrollando ninguna actividad y se encuentran en los pasillos del edificio. Después de la reunión con Isaac, las colaboradoras se dirigen cada una a sus respectivas oficinas para continuar trabajando en las actividades asignadas. Sandy se encarga de los diagramas de clase, ası́ que ella no requiere recibir las notificaciones de actualización del diagrama de estado ni que se realicen automáticamente las actualizaciones de dichos diagramas (suponiendo que el dispositivo de cómputo no cuente con los recursos necesarios de espacio en disco duro, poca memoria RAM o que la intensidad de la señal de Internet sea demasiado débil como para soportar la transferencia de archivos demasiado grandes), ya que en muchas ocasiones se vuelve lenta su aplicación en uso. El sistema debe esperar a que Sandy decida ver los diagramas de estados para notificarle dichas actualizaciones; además el sistema debe revisar si realizó las actualizaciones de dichos diagramas o tiene que hacer la petición de las actualizaciones. Adaptación al contexto de uso de los sistemas colaborativos Este escenario se adapta a todo contexto de uso de los sistemas colaborativos. Se adapta al grupo de colaboradores ya que verifica la actividad en desarrollo, i.e., envı́a la notificación del termino de la actividad de Isaac. Se adapta al conjunto de plataformas porque decide sobre qué dispositivo se enviará la notificación. Se adapta al entorno común porque considera el lugar en donde se encuentra los colaboradores, ası́ como la presencia de persona ajenas al grupo de trabajo, de este modo la notificación es silenciosa. 4.10 Sı́ntesis Puede observarse que existe cierta similitud entre la dimensión usuario y grupo de colaboradores, en donde la primera pertenece los sistemas mono-usuario y la segunda a los sistemas colaborativos. Ambas dimensiones incluyen el perfil, las actividades y los roles; la diferencia radica en que la adaptación al usuario modifica las necesidades y preferencias de un solo usuario, i.e., solo la instancia del sistema de dicho usuario se ve afectado sin modificar las instancias de los demás usuarios; mientras que la adaptación al grupo de colaboradores puede modificar el comportamiento del sistema usado por todos los colaborador, e.g., un usuario puede establecer el medio de contacto para que sus colegas lo contacten dependiendo su actividad y la plataforma del colaborador observado y observador. El contexto de uso de los sistemas colaborativos afectan a todos los colaboradores que están conectados al sistema, e.g., en el escenario “mejoramiento del trabajo colaborativo” se permite ligar objetos compartidos, los cuales han sido creados desde diferentes aplicaciones, mediante Capı́tulo 4 123 referencias HTML; ası́ como notificar a los colaboradores cuando hacen uso de manera directa o indirecta del mismo objeto. Los escenarios mostrados en este capı́tulo nos permiten dar una idea de las adaptaciones del contexto de uso de los sistemas colaborativo. Dichas adaptaciones se hacen al grupo de colaboradores al considerar sus preferencia relacionadas a los medios de adaptación (cf. Sección 4.6), dependiendo del rol se puede mostrar los iconos relacionados a su rol (cf. Sección 4.4), información necesaria dependiendo de la actividad en curso (cf. Sección 4.8) o en otras ocasiones ocultar dicha información que puede ser confidencial (cf. Sección 4.7). Otra adaptación al colaborador es presentar notificaciones usando diferentes modalidades dependiendo de la actividad o del entorno en donde se ubica (cf. Sección 4.9). Dichos escenarios no solo cubren la dimensión grupo de colaboradores, también cubren aspecto de la dimensión plataforma, ya que algunos de ellos identifican cuando el grupo de colaboradores tiene un conjunto de dispositivos; por ejemplo, activar el medio de contacto de video-conferencia dependiendo de si los colaboradores tienen una cámara en uso, de otra manera no vale la pena ofrecer el servicio (cf. Sección 4.6), o permitir usar el disco duro de un colaborador cuando el dispositivo en uso no tenga suficiente espacio para almacenar la información (cf. Sección 4.4). Ası́ como estos escenarios cubren aspectos del domino del grupo de colaboradores o del conjunto de plataformas, algunos de ellos se adaptan al entorno común, e.g., adaptar la IU dependiendo de si el trabajo es co-localizado o distribuido (cf. Sección 4.5) o la detección de la presencia de una persona no autorizada para ver información restringida (cf. Sección 4.7). Algunas de las propuestas mencionadas en los escenarios han sido implementadas en las herramientas desarrolladas. Por ejemplo, adaptar los iconos dependiendo del rol del colaborador (cf. Secciones 4.4.3 y 4.3.3), de si el trabajo es co-localizado o distribuido (cf. Secciones 4.5.3, 4.8.3 y 4.4.3). Uno de tantos problemas detectados y no resueltos en este tema de investigación se refiere a qué funcionalidades debe ofrecer una aplicación colaborativa cuando detecte que un grupo de colaboradores trabajan de manera co-localizada, usan un dispositivo compartido, e.g., un pizarrón interactivo, y dichos colaboradores tienen roles diferentes. La aplicación colaborativa debe decidir qué funcionalidades de la aplicación mostrar. El sistema puede resolver de varias maneras el problema anterior, las cuales son: • combinar las funcionalidades dados los roles de los colaboradores, i.e., unir los ı́conos que tienen acceso cada uno, sin duplicar estos; • mostrar en el pizarrón interactivo las funcionalidades que coinciden, dejando en sus dispositivos personales, en caso de tener estos, los ı́conos que quedaron fuera de la intersección de sus roles; • en caso de que el sistema no pueda tomar una decisión, este debe proponer a los colaboradores las opciones por medio de una meta-interfaz de usuario para que ellos elijan la 124 Análisis de requerimientos del marco XARE más adecuada. Capı́tulo 5 Diseño del marco XARE En este capı́tulo se describen los diseños horizontal y vertical del marco XARE. El diseño vertical, que se explica en la sección 5.1, expresa el contexto de uso de los sistemas colaborativos mediante diagramas de clases (usando UML) y patrones de diseño para que los desarrolladores puedan implementar soportes contextuales en sus aplicaciones. Antes de dar a conocer el diseño horizontal, se presenta en la sección 5.2 los principales mecanismos que cumplen los objetivos de los escenarios identificados en el capı́tulo 4. Todos estos mecanismos contienen los parámetros de entrada necesarios, las clases involucradas, ası́ como los elementos susceptibles de ser modificados. El diseño horizontal se aborda en la sección 5.3 y se refiere a las capas del marco XARE, el cual propone adaptar los sistemas colaborativos a diferentes contextos de uso. Este marco surge a partir de la creación y el análisis de los escenarios mostrados en el capı́tulo 4, los cuales nos permitieron identificar en una primera versión las tres capas sin mucho detalle. Dicha versión considera los percutores de adaptación (remodelación y redistribución) y la participación de los colaboradores durante el proceso de adaptación (meta-interfaz con o sin negociación), y evita en todo momento la pérdida de sus contribuciones (recuperación del sistema). Posterior a la implementación de algunas aplicaciones se identificaron los modulos de Disponibilidad, Actividad Actual y Proximidad Lógica pertenecientes a la capa de Detección. Otra contribución importante fue la incorporación del módulo referente al espacio de Trabajo Privado y Público. Finalmente, en la sección 5.4 se presenta una sı́ntesis del presente capı́tulo. 5.1 Diagramas de clases El modelado del contexto de uso se puede hacer de diversas maneras, e.g., ontologı́as [Ejigu et al., 2007], grafos contextuales [Kouadri and Brézillon, 2004], teorı́a de actividad [Kofod-Petersen and Cassens, 2006], lógica proposicional de contexto [Buvaĉ et al., 1995], 125 126 Diseño del marco XARE semántica de modelo local/sistemas multicontexto [Serafini and Bouquet, 2004] y diagramas de clases [Derntl and Hummel, 2005]. Para modelar el contexto de uso de los sistemas colaborativos, se eligió los diagramas de clases, ya que estos permiten llevar a cabo la implementación del soporte contextual mediante lenguajes de programación orientado a objetos. Además, estos diagramas han sido utilizados para llevar a cabo la modelación visual de conceptos del mundo real, con el fin de reducir la complejidad y la carga cognitiva durante la etapa de diseño de sistemas [Henricksen et al., 2002, Derntl and Hummel, 2005]. 5.1.1 Contexto de uso de los sistemas colaborativos Como se mencionó en el capı́tulo 4, el contexto de uso de los sistemas colaborativos se forma de los componentes grupo de colaboradores, conjunto de plataformas y entorno común. En la Figura 5.1, se muestra que el contexto de uso de los sistemas colaborativos ha sido modelado mediante el patrón de diseño Decorator, el cual permite definir dinámicamente nuevos contextos de uso (clase abstracta ContextOfUse) para hacer que un sistema colaborativo se adapte a cambios contextuales (clase abstracta AdaptativeGroupwareSystem). Gracias a la estructura de clases abstractas y concretas del patrón de diseño Decorator, dicho sistema colaborativo no necesita ser modificado por completo. De este modo, es posible que cualquier sistema colaborativo no adaptativo (clase ConcreteGroupwareSystem) se vuelva consciente de varios contextos de uso (clases ContextOfUse 1 ... ContextOfUse n). Los diferentes contextos de uso pueden incluir todos o algunos de los componentes de adaptación (grupo de colaboradores, conjunto de plataformas y entorno común) dependiendo de los requerimientos del sistema. De esta manera, este patrón estructural provee a los programadores un soporte flexible de desarrollo que les permite enriquecer sus sistemas colaborativos con capacidades de adaptación, involucrando algunos o todos estos componentes (clases GroupOfCollaborators, SetOfPlatforms y CommonEnvironment). La Figura 5.1 muestra un grupo de colaboradores (clase GroupOfCollaborators) que está compuesto por al menos un colaborador (clase Collaborator) quien tiene un perfil y varios roles. De acuerdo a Gauch et al., un perfil (clase Profile) permite definir las habilidades y preferencias de una persona [Gauch, et al., 2007]. Las habilidades de un colaborador (clase Skill) se refieren a las capacidades necesarias para llevar a cabo un conjunto de actividades con un cierto nivel de certeza (atributo dexterityLevel). El rol de un colaborador (clase Role) está definido por un conjunto de actividades que definen su responsabilidad y alcances. Las preferencias de un colaborador (clase Preference) conciernen a la elección de opciones ofrecidas por el sistema colaborativo, e.g., su disponibilidad, sus medios de contacto y la forma de notificar la información. La disponibilidad de un colaborador (clase Availability) puede pasar por los estados (atributo state) presente o ausente, pero si el colaborador está presente, él puede estar ocupado, accesible, contactable si es posible y disponible. Un colaborador puede mostrar simultáneamente diferentes niveles de disponibilidad a sus colegas dependiendo (cf. Mecanismo de disponibilidad en la sección 5.2.2) de: Capı́tulo 5 127 Has SetOfPlatforms GroupOfCollaborators 1..* 1..* 1..* 1..* WorksWith 1..* Collaborator ComputerDevice Software Role HasSimilarity4 1..* 1..* 1..* Preference * 1..* Hardware 1..* Sensor Activity 1..* timeSlot:Integer goal:String sort:String Skill dexterityLevel:Integer 1..* Availability state:String Stays 1..* 1..* 1 Profile Modality ContactMeans Has PhysicalPlace Calculates CommonEnvironment 1..* Action 1..* UserInterface 1..* Workspace 1..* Has 1..* Setting Has PrivateWorkspace SharedWorkspace Runs * * DistributedSetting HybridSetting PrivateObject SharedObject 1..* ColocalizedSetting RichDesktop Link 1..* GroupAwareness CollaboratorBar 1..* AbstractObject Video Text Object Runs Audio Image AdaptiveGroupwareApplication +operation() Comunication ConcreteGroupwareApplication +operation() 1..* Notification ImmediateForm ContexOfUse -application: AdaptiveGroupwareApplication -collaborator: GroupOfCollaborators -platform:SetOfPlatforms -environment:CommonEnvironment +operation() PeriodicForm ContexOfUse_1 +operation() ... ContexOfUse_n +operation() Componente propuesto en el dominio de los sistemas mono-usuario Componente propuesto en el dominio de los sistemas colaborativos Extensión propuesta en esta tesis Figura 5.1: Contexto de uso de los sistemas colaborativos 128 Diseño del marco XARE • la similitud (atributo similarity) entre su actividad actual y las actividades en curso o potenciales de los colaboradores que perciben su estado de disponibilidad; • la fecha lı́mite (atributo timeSlot) de su actividad actual. Como se muestra en la Figura 5.1, una actividad (clase Activity) es un conjunto de acciones coherentes (clase Action) sobre un objeto compartido (clase SharedObject) o privado (clase PrivateObject) que tienen un objetivo común (atributo goal). La similitud de actividades es medida en términos de los objetos compartidos que están siendo manipulado por los colaboradores y de sus actividades actuales o potenciales (atributo sortActivity). La similitud entre las actividades de dos colaboradores puede tomar alguno de los siguientes valores: muy similar, similar, más o menos similar, poco similar, muy poco similar y no similar (cf. Mecanismo de similitud de actividades en la sección 5.2.1). La Figura 5.1 muestra que el medio de contacto de un colaborador (clase ContactMeans) define el camino por el cual él quiere ser contactado por sus colegas en un momento dado, e.g., video-conferencia, mensajerı́a instantánea, correo electrónico o voz IP. Ası́, cada colaborador puede ser contactado por varios medios de comunicación dependiendo de: 1. el hardware y el software (clases Hardware y Software) disponible en sus dispositivos actuales (clase ComputerDevice) i.e., los que está utilizando para lograr su actividad en curso, y 2. su estado de disponibilidad (atributo state de la clase Availability) o la similitud entre su actividad actual y las actividades en curso o potenciales de los colaboradores que quieren contactarlo (relación hasSimilarity de la clase Activity). Los medios de contacto de un colaborador pueden ser establecidos automáticamente por el sistema colaborativo (cf. Mecanismo medios de contacto en la sección 5.2.3), pero el usuario tiene la posibilidad de modificarlos. Un colaborador tiene a su disposición un espacio de trabajo (clase Workspace) que ofrece interfaces de usuario (clase UserInterface) para interactuar con sus colegas. Además, dicho espacio proporciona una área de trabajo privada (clase PrivateWorkspace), donde el colaborador realiza sus aportaciones personales (clase PrivateObject). También, dicho colaborador puede compartir con su grupo de colegas un espacio común (clase SharedWorkspace), donde cada uno publica sus contribuciones. Dicho espacio de trabajo común provee consciencia de grupo (clase GroupAwareness) por medio de una barra de colaboradores (clase CollaboratorBar). Dependiendo del rol actual del colaborador, su desktop (clase RichDesktop) provee aplicaciones colaborativas que facilitan las actividades correspondientes a su rol (cf. Mecanismo para ocultar, sustituir o mostrar un componente en la sección 5.2.4). Una aplicación colaborativa (clase AdaptiveGroupwareApplication) provee acciones válidas (clase Action) para crear, modificar, anotar y borrar objetos compartidos (clase Capı́tulo 5 129 SharedObject). Gracias al desktop, una aplicación colaborativa puede estar relacionada con otras por medio de sus respectivos objetos compartidos (clase Link). Un objeto compartido es implementado siguiendo el patrón de diseño Composite porque el marco XARE pretende soportar el dominio de aplicación de edición colaborativa de documentos. Cada instancia de una aplicación colaborativa es capaz de enviar notificaciones a otras instancias (clase Notification), con la finalidad de que los colaboradores posean la información necesaria para realizar sus actividades (cf. Figura 5.1). Dichas notificaciones pueden ser enviadas usando diferentes modalidades (clase Modality), e.g., sonido, vibración o cuadros de texto, dependiendo tanto de la actividad en curso como de la ubicación fı́sica del receptor. La comunicación (clase Comunication) entre las instancias de una aplicación les permite obtener información nueva o almacenada. Por medio de sus preferencias (clase Preference), cada colaborador puede expresar no solo sus intereses en recibir información acerca de sus colegas y enviar información propia, sino también la manera de ser notificado, i.e., el tipo de información, para/de quién, cuándo y cómo. Particularmente, el envı́o y la recepción de información puede ser de dos formas: 1. instantánea (clase ImmediateForm), la cual se refiere a transmitir la información en el momento justo en que es generada, y 2. periódica (clase PeriodicForm), la cual notifica la información en momentos predefinidos. El entorno común (clase CommonEnvironment) es aquel donde toma lugar la colaboración, la cual involucra diversas variables contextuales, e.g., los lugares fı́sicos (clase PhysicalPlace) en donde los colaboradores están interactuando. Por lo tanto, tres configuraciones de trabajo son posibles: 1. todos los colaboradores están distribuidos, i.e., cada uno está localizado en un lugar diferente (clase DistributedSetting); 2. todos los colaboradores están localizados en el mismo lugar (clase ColocalizedSetting); 3. forma mixta (clase HybridSetting), i.e., algunos colaboradores están co-localizados, mientras otros están distribuidos. Para determinar si el grupo de colaboradores está distribuido y/o co-localizado, se debe detectar la presencia de los colaboradores en lugares especı́ficos (e.g., una sala de juntas) mediante hardware o software. La detección por hardware se hace por medio de sensores (clase Sensor), e.g., sensores infrarrojos. En cambio, la detección de colaboradores por software se lograr al usar aplicaciones dedicadas, e.g., reconocimiento de rostros. La implantación de un entorno multi-dispositivo y multi-usuario implica que cada colaborador puede no solo tener la posibilidad de interactuar con otros colaboradores, sino también 130 Diseño del marco XARE utilizar simultáneamente varios dispositivos para ejecutar sus actividades, e.g., cuando los colaboradores están co-localizados (clase ColacalizedSetting), cada colaborador puede tener una computadora portátil (clase ComputerDevice), en donde su espacio de trabajo privado es desplegado (clase PrivateWorkspace), y un teléfono inteligente que actúa como control remoto de un pizarrón electrónico (clase SharedWorkspace), donde el espacio de trabajo compartido puede ser visualizado por todos los colaboradores. Dependiendo de la configuración del grupo, algunos componentes pueden ser desplegados u ocultados en la interfaz de usuario. Por ejemplo, si todos los colaboradores están co-localizados, no resulta ventajoso que el sistema colaborativo muestre su disponibilidad y medios de contacto. Algunos autores, como Haake et al [Haake et al., 2010], llaman “artefactos” a los documentos de texto, imágenes, contenidos de chat y reportes. En este trabajo de investigación se maneja el concepto de “objeto abstracto” (clase AbstractObject) para referirnos a la información electrónica que es utilizada, generada y compartida por los colaboradores. La información electrónica se refiere a: audio (clase Audio), video (clase Video), imágenes (clase Image) y documentos de texto (clase Text), e.g., manuales, reportes, artı́culos, ası́ como información generada desde la mensajerı́a instantánea que se ejecuta en cualquier dispositivo de cómputo. 5.1.2 Componente observador El componente contexto de uso (clase ContexOfUse) está provisto de un componente observador (clase Watcher), el cual es responsable de observar los cambios contextuales con el fin de ejecutar los percutores de adaptación (clases Remodelation y Redistribution), definir tanto la granularidad del estado de recuperación (clase Recovery) como la granularidad de adaptación (clase Adaptation) y detectar cuándo se está relacionando un objeto compartido con otro (clase Link) de manera implı́cita o explicita (cf. Figura 5.2). Varias de las clases que ejecuta la clase Watcher pueden ofrecer varios tipos de metainterfaces de usuario (clase MetaUI), los cuales corresponden a: meta-IU con negociación (método WithNegotiation()), meta-IU sin negociación (método WithoutNegotiation()) y meta-IU plástica (método Plastic()). Dichas meta-interfaces están a cargo de informar los cambios que deben ejecutarse en los espacios de trabajo compartido (clase SharedWorkspace) y privado (clase PrivateWorkspace). Como se mencionó en la [Vanderdonckt, et al., 2008] denota: sección 2.2 del capı́tulo 2, la redistribución “ La reasignación de los componentes de la interfaz de usuario de una aplicación a diversos dispositivos de interacción. Los tipos de redistribución son los siguientes: 1) de centralizada a centralizada, 2) de centralizada a distribuida, 3) de distribuida a centralizada y 4) de distribuida a distribuida”. La clase Redistribution tiene como finalidad redistribuir la interfaz de usuario de una Capı́tulo 5 131 PrivateWorkspace SharedWorkspace Update Update MetaUI +WithNegotiation() +WithoutNegotiation() +Plastic() Remodelation Redistribution Recovery Runs Runs Runs Adaptation Link Runs Watcher Runs Has ContexOfUse -application: AdaptiveGroupwareApplication -collaborator: GroupOfCollaborators -platform:SetOfPlatforms -environment:CommonEnvironment +operation() Proposed extension Figura 5.2: Diagrama de clases del componente observador aplicación colaborativa en un conjunto de dispositivos, los cuales pueden pertenecer a un colaborador (clase Collaborator) o un grupo de colaboradores (clases GroupOfCollaborators). La clase Watcher está encargada de llamar a la clase Redistribution, cuando detecta cambios en la configuración del grupo y/o el ingreso o la salida de un dispositivo de cómputo. Como se mencionó en la sección precedente, la configuración del grupo se refiere a tres formas posibles de trabajo de los colaboradores: 1) co-localizada (clase ColocalizedSetting), 2) distribuida (clase DistribuitedSetting) e 3) hı́brida (clase HybridSetting). Para ejecutar el percutor de redistribución, la clase Watcher considera algunos cambios contextuales, los cuales son ejemplificados a continuación: • Suponga que un grupo de colaboradores trabaja en una sala de juntas, la cual está equipada con algunos dispositivos de carácter público, e.g., un pizarrón electrónico. Cada colaborador dispone de un dispositivo móvil, e.g., una tablet o un teléfono inteligente. Al momento en que la clase Watcher detecta el conjunto de dispositivos en uso y la configuración del grupo (en este caso, co-localizada), esta clase ejecuta el percutor de redistribución (clase Redistribution) para que la interfaz de usuario de la aplicación colaborativa sea repartida entre dichos dispositivos, e.g., los colaboradores podrı́an tener su espacio privado (clase PrivateSpace) en sus dispositivos móviles, mientras que el espacio compartido (clase SharedWorkspace) podrı́a ser desplegado en el pizarrón electrónico. 132 Diseño del marco XARE • Considere que el mismo grupo de colaboradores continúa trabajando de manera colocalizada, pero uno de los integrante quiere utilizar dos dispositivos a la vez para interactuar con la aplicación colaborativa. La clase Watcher detecta el ingreso del nuevo dispositivo y, en consecuencia, ejecuta la redistribución (clase Redistribution) de la instancia de aplicación de dicho colaborador. En este caso, la interfaz de usuario que muestra su espacio de trabajo privado pasa de un estado centralizado a uno redistribuido. • Posteriormente, todos los colaboradores salen de la sala de juntas para dirigirse a sus respectivas oficinas, ası́ que la clase Watcher detecta el cambio de configuración grupal (de co-localizada a distribuida). En este caso, dicha clase ejecuta el percutor de redistribución (clase Redistribution) para replicar el espacio de trabajo compartido, desplegado en el pizarrón electrónico, en los dispositivos móviles de los colaboradores. En consecuencia, la interfaz de usuario del espacio compartido cambia de un estado centralizado a uno replicado, ya que cada colaborador tiene en su dispositivo móvil tanto su espacio privado como el espacio compartido. • Tiempo después, algunos de los colaboradores deciden reunirse nuevamente en la sala de juntas para discutir un tópico en especı́fico, ası́ que algunos continúan trabajando en sus respectivas oficinas, mientras otros trabajan cara a cara (configuración hı́brida). En consecuencia, la clase Watcher ejecuta el percutor de redistribución (clase Redistribution) al momento de detectar este cambio en la configuración del grupo. En este caso, la interfaz de usuario de espacio de trabajo compartido se reconcentra en el pizarrón electrónico, ya que este es accessible a todos los colaboradores que están co-localizados. La forma de trabajo de un grupo no necesariamente debe partir de una configuración colocalizada para después pasar a una redistribuida y finalizar con una hı́brida, sino que la configuración del grupo también puede empezar siendo redistribuida o hı́brida, para posteriormente pasar a alguna de las tres configuraciones mencionadas. En la sección 2.2 del capı́tulo 2, la remodelación de la interfaz de usuario [Vanderdonckt, et al., 2008, Coutaz and Calvary, 2008] denota: “Cualquier reconfiguración de la interfaz de usuario de una aplicación que sea perceptible al usuario. La reconfiguración de la interfaz de usuario resulta de la aplicación de una o más transformaciones sobre todos o algunos de los componentes”. La clase Remodelation permite ocultar, sustituir o agregar componentes en una interfaz de usuario. Los componentes susceptibles a remodelar son los siguientes (cf. sección 4.2): • el espacio de trabajo privado de un colaborador dependiendo su rol (clase Role), cuando este ingrese a su desktop; • el espacio de trabajo compartido al detectar a un grupo de colaboradores trabajando co-localizadamente (clase ColocalizedSetting) o distribuidamente (clase DistribuitedSetting); Capı́tulo 5 133 • información, e.g., ocultar información restringida al detectar a una persona ajena al grupo de colaboradores o mostrar información relevante dependiendo del lugar, del momento y de las necesidades del colaborador; • los medios de contacto y la disponibilidad de un colaborador (clases Availability y ContactMeans) dependiendo de los colaboradores implicados. La clase Watcher ejecuta la clase Remodelation al detectar algunos de los siguientes cambios contextuales: • inicio de sesión por parte de un colaborador; • identificación de la configuración del grupo (distribuida, co-localizada o hı́brida); • detección de una persona, ajena al grupo de trabajo, que está muy cerca del área de despliegue de información; • determinación del momento en el que se debe enviar información relacionada con la actividad de un colaborador; • cálculo de la disponibilidad un colaborador o medio de contacto. Como se mencionó en la sección 2.4 del capı́tulo 2, la granularidad del estado de recuperación caracteriza [Vanderdonckt, et al., 2008]: “El esfuerzo que los usuarios deben realizar para continuar su actividad una vez finalizado el proceso de adaptación de un sistema interactivo. Dicha granularidad aborda tres niveles: sesión, tarea y acción fı́sica”. La clase Recovery tiene como finalidad almacenar el estado de los espacios compartidos y privados (clases SharedWorkspace y PrivateWorkspace, respectivamente), los cuales mantienen el trabajo en proceso. La clase Watcher ejecuta la clase Recovery antes y después de llevar a cabo la adaptación al nuevo contexto de uso. En la sección 2.3 del capı́tulo 2 se mencionó que la granularidad de la adaptación de los componentes de la interfaz de usuario denota [Vanderdonckt, et al., 2008]: “La unidad más pequeña de software que puede ser afectada por la remodelación y/o redistribución, las cuales pueden ser totales o parciales”. La clase Adaptation tiene como finalidad adaptar la interfaz de usuario, cuando la clase Watcher lanza en ejecución los percutores de remodelación y/o redistribución. Finalmente, la clase Link tiene como objetivo relacionar una aplicación con otra por medio de sus objetos compartidos. La clase Watcher ejecuta la clase Link cuando detecta que un colaborador relaciona un objeto de una aplicación con un objeto de otra aplicación por medio de una hiperliga. 134 5.2 Diseño del marco XARE Mecanismos del marco XARE El marco XARE ofrece a los desarrolladores varios mecanismos que realizan los cálculos necesarios para llevar a cabo la adaptación al contexto. Algunos de esos cálculos se efectúan mediante reglas difusas. 5.2.1 Mecanismo de similitud de actividades La similitud de actividades involucra a un colaborador observado y a un observador. Los parámetros necesarios para calcular la similitud de actividades corresponden a: 1) las actividades potenciales y actuales que están siendo realizadas por dichos colaboradores y 2) los objetos compartidos que están procesando mediante sus acciones. El grado de similitud entre las actividades de los colaboradores observador y observado puede tomar los siguientes valores: 1. muy similares, cuando están llevando a cabo las mismas acciones sobre el mismo objeto compartido; 2. similares, cuando están ejecutando las mismas acciones en diferentes objetos relacionados (e.g., una figura y el correspondiente párrafo que describe esta); 3. más o menos similares, cuando están ejecutando las mismas acciones en diferentes objetos no relacionados (e.g., modificación de diferentes secciones); 4. poco similares, cuando están ejecutando diferentes acciones sobre el mismo objeto compartido; 5. muy poco similares, cuando están ejecutando diferentes acciones sobre diferentes objetos relacionados; 6. no similares en cualquier otro caso. En la tabla 5.1 se ejemplifica la forma de asignar los diferentes grados de similitud entre las actividades del colaborador un y las de sus colegas u1 , u2 , u3 , u4 , u5 y u6 . El mecanismo toma en cuenta las acciones actuales que están llevando acabo estos colaboradores y los objetos que están manipulando por medio de tales acciones. Dicho mecanismo también considera las acciones y los objetos que son potencialmente accesibles al colaborador un . De está forma, el colaborador un tiene actividades muy similares y similares a las de los colaboradores u1 y u2 , respectivamente durante una sesión de trabajo donde los colaboradores u1 y un están modificando concurrentemente el objeto compartido o, mientras que el colaborador u2 está modificado el objeto compartido p, el cual está relacionado con el objeto o. Capı́tulo 5 135 Actividades un está modificando el objeto o un está haciendo anotaciones sobre el objeto q, el cual no está relacionado con p u1 está modificando el obMuy similares jeto o Potencialmente no similares u2 está modificando el objeto p, el cual está rela- Similares cionado con o Potencialmente no similares u3 está modificando el objeto q, el cual no está rela- Más o menos similares cionado con o Potencialmente similares u4 está haciendo anotaPoco similares ciones sobre el objeto o Potencialmente más o menos similares u5 está leyendo el objeto p Muy poco similares Potencialmente no similares u6 está leyendo el objeto q No similares Potencialmente similares poco poco Tabla 5.1: Similitud entre las actividades de dos colaboradores Sin embargo, la situación previamente descrita puede ser completamente diferente en una sesión subsecuente o incluso en la misma sesión, debido al carácter dinámico del trabajo colaborativo. Por ejemplo, si el colaborador un empieza a hacer anotaciones en el objeto compartido q, el cual no está relacionado con el objeto o ni con el objeto p, mientras los colaboradores u1 y u2 están haciendo las mismas actividades mencionadas, la actividad del colaborador un no es similar a las de los colaboradores u1 y u2 . Las clases utilizadas por este mecanismo son Activity y Action. La primera clase permite obtener el conjunto de actividades asociadas a ambos colaboradores (observado y observador) y calcular la similitud de actividades mediante el método HasSimilarity. Por su parte, la clase Action permite identificar sobre qué objeto compartido están trabajando dichos colaboradores en un momento dado para inferir la actividad en curso. Este mecanismo es requerido por los mecanismos de disponibilidad y de medios de contacto para llevar a cabo sus propios cálculos. 136 5.2.2 Diseño del marco XARE Mecanismo de disponibilidad de un colaborador Este mecanismo es responsable de determinar la disponibilidad de un colaborador observado, cuyo valor varı́a de un observador a otro. El colaborador observado puede ser percibido como presente o ausente durante una sesión de trabajo y, en caso de que esté presente, el observador puede percibir subestados, cuyo objetivo es proveer más detalle acerca de la disponibilidad del colaborador observado. Ası́, cuatro subestados son considerados por este mecanismo: 1. ocupado: posibilita al colaborador observado de informar que no quiere ser interrumpido; 2. accesible: permite al colaborador observado indicar que, aún si está ocupado, puede ser interrumpido si es necesario y tan pronto como pueda responderá; 3. contactable si es posible: el colaborador observado admite que puede ser interrumpido, pero no asegura una rápida respuesta; 4. disponible: permite al colaborador observado indicar que puede ser contactado en cualquier momento. Al igual que la similitud de actividades, la disponibilidad se calcula tomando en cuenta la siguiente información del colaborador observado y del observador: 1. la similitud entre la actividad en curso del colaborador observado y las actividades potenciales y actuales del observador y 2. la fecha lı́mite de la actividad en curso (e.g., distante o cercana) del colaborador observado. En caso de que la disponibilidad haya sido establecida manualmente por el colaborador observado, este mecanismo tiene que considerar las preferencias establecidas por él. La tabla 5.2 muestra algunos ejemplos de los subestados de disponibilidad de un colaborador observado, tal como estos son percibidos por un observador de acuerdo a las condiciones previas. Cuando el colaborador observado y el observador están ejecutando actividades muy similares o similares, el observador puede percibir la disponibilidad del colaborador observado como accesible, sin importar si la fecha lı́mite de la actividad de esté último es cercana o distante. En está situación, el mecanismo favorece la posibilidad de mantenerse contactable por personas relacionadas por la similitud de sus actividades. Por otro lado, si los colaboradores están ejecutando actividades más o menos similares o poco similares, el observador puede percibir la disponibilidad del colaborador observado como contactable si es posible, cuando la fecha lı́mite de la actividad de este último sea cercana, o accesible, cuando dicha fecha sea distante. En el caso de que dichos colaboradores estén ejecutando actividades muy poco similares o diferentes, pero una de las actividades potenciales del observador es muy similar o similar a la actividad actual del colaborador observado, el Capı́tulo 5 137 Fecha lı́mite Disponibilidad del colaborador observado Cercana ... Distante La actividad actual del observador es similar o muy similar a la del colaborador observado Accesible Accesible La actividad actual del observador es más o menos similar o poco similar a la del colaborador observado Contactable si es posible Accesible La actividad actual del observador es muy poco similar o no es similar a la del colaborador observado, pero una de sus actividades potenciales es similar o muy similar Contactable si es posible Contactable si es posible La actividad actual del observador es muy poco similar o no es similar a la del colaborador observado, pero una de sus actividades potenciales es más o menos similar o poco similar Ocupado Contactable si es posible Las actividades actuales y potenciales del observador son muy poco similares o no son similares a la actividad actual del colaborador observado Ocupado Ocupado Tabla 5.2: Estados de disponibilidad de un colaborador percibidos por sus colegas observador percibirá la disponibilidad del colaborador observado como contactable si es posible, sin importar cuando termina la actividad de este último. En estas situaciones, el mecanismo facilita el contacto entre los colaboradores, aunque en diferentes grados, ya que la probabilidad de estar relacionados en un momento dado es alta. Cuando las actividades en curso tanto del colaborador observado como del observador son muy poco similares o no similares, pero sus actividades serı́an más o menos similares o poco similares en un momento dado, el mecanismo solo facilita el contacto cuando la fecha lı́mite de la actividad del colaborador observado es distante. De otra manera, el observador percibirá al colaborador observado como ocupado. Finalmente, si los colaboradores implicados no tienen en común actividades actuales ni potenciales, el contacto no es posible. Sin embargo, esté mecanismo puede ser configurado por cada colaborador, con el fin de proveer opciones más flexibles. Por ejemplo, este mecanismo puede permitir al observador tener contacto con el colaborador observado, cuando la fecha lı́mite de la actividad actual de este último sea distante. Esta situación es razonable, ya que estos colaboradores están trabajando en el mismo proyecto. 138 Diseño del marco XARE Aún si los subestados de disponibilidad están determinados por el mecanismo propuesto, el colaborador observado puede modificarlos cuando lo requiera. Este mecanismo usa las clases Availability y Activity. En particular, este mecanismo forma parte de la primera clase, Availability. La clase Activity proporciona la similitud entre las actividades de los colaboradores involucrados, ası́ como la fecha lı́mite de la actividad en curso del colaborador observado (cf. atributo timeSlot de la clase Availability de la Figura 5.1). 5.2.3 Mecanismo de medios de contacto Los medios de contacto de un colaborador se refieren a las formas en que otros colaboradores pueden contactarlo, e.g., correo electrónico, video conferencia y voz. Aunque cada colaborador tiene la libertad de determinar su preferencia por algunos medios de contacto, el marco XARE propone un mecanismo para establecer dichos medios de manera automática. Como se muestra en la Figura 5.3, este mecanismo hace uso de los mecanismos descritos en las dos subsecciones 5.2.1 y 5.2.2. Nuevamente, debemos hacer la distinción entre colaborador observado y observador, dado que uno de estos mecanismos requiere de esta diferenciación. El primer mecanismo está a cargo de determinar la similitud entre las actividades en curso de dos colaboradores. Este mecanismo toma, como parámetros de entrada, la actividad en curso de cada colaborador (cf. actividad a y actividad b de la Figura 5.3), la cual está definida por la acción que cada colaborador está ejecutando (cf. acción a y acción b de la Figura 5.3) y el objeto que está siendo manipulado por dicha acción (cf. objeto a y objeto b de la Figura 5.3). Como se mencionó en la sección 5.2.1, este mecanismo da como resultado un valor difuso de similitud (e.g., muy similar, más o menos similar o no similar). El segundo mecanismo es responsable de determinar la disponibilidad de un colaborador, cuyo valor varı́a de un observador a otro, dependiendo de la similitud entre las actividades en curso del colaborador observado y del observador, ası́ como de la fecha lı́mite de la actividad del primero. El parámetro de entrada correspondiente a la fecha lı́mite de la actividad es también un valor difuso (e.g., cercana o distante). Como resultado, este mecanismo crea un objeto de la clase Availability, el cual está relacionado con un objeto de la clase Collaborator que representa al colaborador observado. Como se mencionó en la sección 5.2.2, la disponibilidad de un colaborador es también un valor difuso (e.g., ocupado, contactable si es posible o accesible). Con base en estos dos mecanismos previamente mencionados, el marco XARE propone un mecanismo que permite a los colaboradores definir sus medios de contacto. Este mecanismo acepta diversos conjuntos de parámetros de entrada, aunque un parámetro común de todos estos conjuntos se refiere a las caracterı́sticas de software y hardware de los dispositivos utilizados por los colaboradores implicados en un proceso de comunicación. Por lo tanto, cada colaborador puede configurar su propia instancia de este mecanismo con base en los siguientes parámetros de entrada: Capı́tulo 5 139 GrupoDeColaboradores tiene Acción: acción_a Objeto: objeto_b Objeto: Objeto: objeto_a objeto_a Collaborador: observador tiene tiene tiene Actividad: actividad_a tiene FechaLímite: fechaLímite Disponibilidad: disponibilidad ) ar( cre Preferencias: preferencias evaluar Collaborador: observador tiene tiene Acción: acción_b Actividad: tiene actividad_b ac tiv ida d_ actividad_b a Mecani smo: Similitud ud ilit o y sim rvad or) d se (ob serva b o (o sim ob bser ilitu se va d rv do ad y or ) Mecanis mo: Medio de contacto disponibilidad del usuario observado Mecanismo: Disponibilidad tiene preferencias del usuario observado características ConjuntoDePlataformas características tiene Dispositivo: dispositivo_a tiene Hardware: hardware Software: software tiene Dispositivo: dispositivo_b tiene Figura 5.3: Mecanismo para determinar los medios de contacto de un colaborador 1. los subestados de disponibilidad del colaborador; 2. la similitud entre las actividades del colaborador y las de sus colegas; 3. los medios de contacto preferidos del colaborador; 4. la proximidad lógica entre el colaborador y sus colegas en el espacio de trabajo compartido de una aplicación colaborativa (cf. sección 5.2.6). La salida de este mecanismo es la creación de un objeto de la clase ContactMeans que contiene una lista de los medios de contacto asociados al colaborador observado, quién está representado por un objeto de la clase Collaborator. La lista resultante de medios de contacto 140 Diseño del marco XARE será visualizada por un observador dado. Por cada uno de los medios de contacto de esta lista, el mecanismo asegura que los dispositivos de los colaboradores involucrados cuentan con las caracterı́sticas de software y hardware necesarias para establecer la comunicación entre ellos (clases Hardware y Software). 5.2.4 Mecanismo de ocultar, sustituir y mostrar componentes El mecanismo para ocultar, sustituir y mostrar componentes en una interfaz de usuario tiene como objetivo modificar la visibilidad de dichos componentes dependiendo de algunos factores, e.g., dependiendo del rol del colaborador, solo se muestran los iconos de acceso directo a las aplicaciones útiles a dicho rol o en función del espacio libre en el disco local de un dispositivo se puede almacenar la información local o remotamente. Este mecanismo (cf. Figura 5.4) acepta dos parámetros de entrada: 1. el rol de un colaborador, y 2. el conjunto de dispositivos disponibles, los cuales se refieren a aquellos que pertenecen a los colaboradores participantes en una sesión y servidores. Para explicar mejor el mecanismo esquematizado en la Figura 5.4, supongamos que el usuario colaborador a juega el papel de rol a e ingresa a su escritorio desktop a mediante la computadora dispositivo a. Este mecanismo debe mostrar al colaborador a solo los componentes (e.g., aplicación a) que son adecuados para desempeñar el rol a utilizando el dispositivo a. En el caso de componentes que representan una funcionalidad, e.g., ı́cono de guardar o imprimir, se verifica si el dispositivo a puede ofrecer directamente dicha funcionalidad o requiere la ayuda de otros dispositivos, e.g., el dispositivo b, los cuales podrı́an no pertenecer al colaborador a. Deduciendo del ejemplo anterior, las principales clases involucradas en este mecanismo son: Role, ComputerDevice y Desktop. Mediante la clase Role es posible obtener el rol actual de un colaborador, el cual está representado por un objeto de la clase Collaborator. La clase ComputerDevice está relacionada con las clases Collaborator, Hardware y Software con el fin de proporcionar las caracterı́sticas de hardware y software de los dispositivos en uso de un colaborador y además, cuando sea necesario. La clase ComputerDevice ofrecerá las caracterı́sticas de otros dispositivos disponibles que pueda utilizar dicho colaborador. La clase Desktop pone a disponibilidad del colaborador en cuestión aquellas aplicaciones colaborativas (representadas por objetos de la clase AplicaciónColaborativa) que son útiles para el rol actual del colaborador. Aunque no se ilustra en la Figura 5.4, este mecanismo también pueden modificar algunas funcionalidades especı́ficas de las aplicaciones disponibles al colaborador, e.g., algunos de los iconos ofrecidos por una aplicación pueden ser ocultados por no estar relacionados al rol actual del colaborador. Capı́tulo 5 141 GrupoDeColaboradores tiene tiene Colaborador: colaborador_a Rol: rol_a rolActual tiene EntornoComún RichDesktop: desktop_a mod ifica rCom pone nte() tiene Mecanismo: Ocultar/Mostrar AplicaciónColaborativa: aplicaciónColaborativa_a modificarComponente() Dispositivos personales Dispositivos opcionales ConjuntoDePlataformas tiene Dispositivo: tiene Sofware: software dispositivo_a Hardware: tiene hardware Dispositivo: dispositivo_b tiene Figura 5.4: Mecanismo para ocultar, sustituir o mostrar componentes y/o funcionalidades 5.2.5 Mecanismo para la creación de referencias deı́cticas Este mecanismo permite a los colaboradores crear referencias deı́ticas desde una aplicación hacia los objetos compartidos de otra aplicación, con la finalidad de mantener el contexto de dichos objetos. La funcionalidad de deixis (cf. Figura 5.5) ofrecida por este mecanismo genera como resultado ligas de hipertexto entre una palabra clave de la mensajerı́a instantánea y un objeto compartido del editor colaborativo. Gracias a esta funcionalidad, los colaboradores no necesitan copiar objetos desde el editor colaborativo hacia la mensajerı́a instantánea cuando en el curso de una conversación se hace referencia a ellos. El mecanismo de referencias deı́ticas recibe dos parámetros de entrada por parte de un colaborador: 1. palabras deı́cticas, tales como esta figura, la siguiente sección, este párrafo, esas referencias bibliográficas o aquı́, las cuales son seleccionadas desde la mensajerı́a instantánea; 142 Diseño del marco XARE GrupoDeColaboradores Colaborador: colaborador_a tiene Rol: rol_a tiene EntornoComún RichDesktop: desktop_a tiene AplicaciónColaborativa: mensajeríaInstantánea tiene AplicaciónColaborativa: editorColaborativo tien e Mecanismo: Deixis tiene ObjetoCompartido: palabraDeíctica a eític pár ra d b pala tiene rafo tien ObjetoCompartido: párrafo e tien e ReferenciaDeítica: referenciaDeíctica Figura 5.5: Mecanismo de referencias deı́ticas 2. un objeto compartido como un tı́tulo, un párrafo, una frase, una palabra, una referencia bibliográfica, una figura o una sección; dicho objeto es seleccionado desde el editor colaborativo. En la Figura 5.5 se puede observar al usuario colaborador a, quien trabaja en su escritorio desktop a en donde está usando las aplicaciones mensajerı́aInstantánea y editorColaborativo. En este caso, dicho colaborador crea una referencia deı́ctica entre una palabra clave palabraDeı́ctica y un objeto compartido párrafo. Cuando el colaborador dé clic sobre la referencia deı́ctica de la mensajerı́a instantánea, se debe mostrar el objeto referenciado a la mitad del área de despliegue del editor colaborativo. En caso de que el objeto referenciado sea un texto, este debe cambiar de color para ser resaltado; en cambio, si el objeto referenciado es una imagen, esta debe ser puesta en evidencia mediante un recuadro coloreado. Además, el escritorio debe ofrecer la opción de crear una replica en el pizarrón multi-usuario de la imagen referenciada en el editor colaborativo. El escritorio mantiene un identificador y la ubicación de la imagen dentro del documento origen. Capı́tulo 5 143 Las modificaciones realizadas desde el pizarrón serán reflejadas automáticamente en el editor de texto. Las principales clases involucradas en este mecanismo son Link y SharedObject. Un objeto de la clase Link mantiene la referencia deı́tica, mientras que dos objetos de la clase SharedObject representan una palabra deı́tica y un objeto referenciado. 5.2.6 Mecanismo de proximidad lógica La proximidad lógica entre dos colaboradores es medida en términos de la relativa cercanı́a entre los objetos compartidos que están manipulando dichos colaboradores en el espacio de trabajo compartido de una aplicación colaborativa. Con el fin de facilitar la explicación de este mecanismo, supongamos que durante una sesión de trabajo, los colaboradores mencionados están modificando, visualizando y/o anotando objetos compartidos que siguen una estructura de árbol, e.g., un documento de texto o de imágenes (cf. Figura 5.6), cuyo nodo raı́z es el nombre del documento (el contenedor de texto e imágenes) o del proyecto (el contenedor de imágenes) en cuestión. En la Figura 5.6a, se puede observar que la granularidad de objetos en un documento de texto va desde el documento completo hasta la palabra. La estructura de dicha figura muestra un documento de texto, cuyo nombre es Di , el cual tiene secciones (S) que pueden contener párrafos (P ), imágenes (I) o subsecciones (U). A su vez, dichas subsecciones también pueden contener párrafos e imágenes. Los párrafos se componen de palabras (A). En el caso de las imágenes, la granularidad va desde el nivel de proyecto hasta nivel de figuras, las cuales puede ser una lı́nea, un cı́rculo, un rectángulo y un cuadrado. La Figura5.6b muestra un proyecto de imágenes vectoriales, cuyo nombre es (Pi ), el cual contiene hojas (H) que sirven de lienzos de dibujo. Dichas hojas contienen imágenes (I) que están compuestas por figuras (F ) básicas. Para definir los grados de proximidad lógica en el espacio de trabajo compartido, este mecanismo usa valores de granularidad gruesa con la finalidad de determinar que dichos colaboradores están: 1. muy cercanos, cuando están accediendo al mismo objeto compartido, sin importar su respectivo tipo de acceso (e.g., leer, escribir o anotar); 2. más o menos cercanos, cuando están manipulando diferentes objetos compartidos (e.g., subsecciones), los cuales tienen el mismo padre (e.g., una sección); 3. remoto de otra manera. La tabla 5.3 ilustra los diferentes grados de proximidad lógica entre el colaborador un y sus colegas u1 , u2 y u3 . En este ejemplo, consideramos los objetos actuales que dichos colabo- 144 Diseño del marco XARE Di ... DiS1 DiS1Un... DiS1Pn ... DiS1UnIn DiS1UnPn DiS1In DiSnUn ... DiS1PnAn DiS1UnPnAn DiSn DiSnPn ... DiSnIn DiSnUnPn DiSnUnIn DiSnPnAn DiSnUnPnAn Documento(D) Sección (S) Subsección (U) Párrafo (P) Palabra (A) Imagen (I) i-ésimo objeto compartido n-ésimo objeto compartido (a) Visualización de un documento de texto Pi PnHn PiHi ... PiH1 ... PiH1I1... PiH1In PiHiI1... PiHiIn PiH1I1Fn PiH1InFn PiHiI1Fn PiHiInFn Proyecto (Di) Hoja (H) Imagen (I) PiHnI1... PiHnIn Figura (F) i-ésimo objeto compartido n-ésimo objeto compartido (b) Visualización de un proyecto de imágenes Figura 5.6: Visualización de documentos en forma de árbol radores están accediendo y los objetos potenciales que están al alcance del colaborador un . Tanto los objetos en curso como los objetos potenciales pueden ser determinados a partir de las actividades actuales y potenciales de los colaboradores, respectivamente. Ası́, aunque los colaboradores un y u3 pueden estar distantes uno del otro en el espacio de trabajo compartido, cuando estén manipulando los objetos o y q respectivamente, la posibilidad de acceder a otros objetos compartidos (e.g., un puede también manipular q) permite al colaborador un estar potencialmente muy cerca del colaborador u3 en el espacio de trabajo compartido, pero lejos de los colaboradores u1 y u2 . Las principales clases involucradas en este mecanismo son AbstractObject, Activity, Action y SharedObject. Objetos de la clase SharedObject representan los objetos compartidos, los cuales sirven de base para calcular los grados de proximidad lógica. Un objeto Capı́tulo 5 Proximidad lógica 145 Objeto actual o del componente c de un Objeto potencial q del componente d de un Objeto actual o del compoMuy cerca nente c de u1 Potencialmente remoto Objeto actual p del compoMás o menos cerca nente c de u2 , tal que p 6= o, Potencialmente remoto Objeto actual q del compoRemoto nente d de u3 , tal que d 6= c, Potencialmente cerca muy Tabla 5.3: Proximidad lógica entre dos colaboradores en un espacio de trabajo compartido de la clase AbstractObject permite crear la estructura de árbol para los documentos de texto y de imágenes. Finalmente, objetos de la clase Activity denotan a los objetos potenciales, mientras que objetos de la clase Action representan al objeto actual. Estas dos últimas clases están asociadas por supuesto a un objeto de la clase Collaborator. 5.2.7 Mecanismo ubicación fı́sica Este mecanismo se encarga de determinar si los integrantes de un grupo se encuentran trabajando en el mismo lugar fı́sico y al mismo tiempo (ver Figura 5.7). Los parámetros requeridos por este mecanismo son: el tiempo y la ubicación de cada colaborador. • El tiempo es empleado para registrar el momento en que entra y sale cada colaborador de un lugar especı́fico. • La ubicación es el lugar fı́sico donde se encuentra el colaborador. Ambos parámetros se obtienen a través del dispositivo móvil de cada colaborador. Una opción a utilizar para obtener la ubicación de los colaboradores mediante hardware es usando la tecnologı́a de comunicación inalámbrica NFC (Near Field Communication)1 . En la entrada de cada habitación se coloca una etiqueta NFC que representa al lugar fı́sico. Al momento en que un colaborador llega al lugar y lee, mediante su dispositivo móvil, la etiqueta asociada al mismo, se registra su presencia en ese lugar y la hora en que ingresó. Dado que la ubicación de un colaborador se conoce cuando se lee la etiqueta NFC asociada a la habitación, no es posible realizar el seguimiento de su posición dentro de ese lugar fı́sico. 1 NFC Forum, NFC Forum Technical Specifications, http://www.nfc-forum.org/specs/spec_list/, 2004 146 Diseño del marco XARE EntornoComún Colaborador: colaborador_a Colaborador: colaborador_b ubica ción/ horaE g reso Mecanismo: UbicaciónFísica Egreso ra ión/ho ubicac Notificar resultado a otros componentes Figura 5.7: Mecanismo de ubicación fı́sica Por lo tanto, esta información tiene que ser almacenada en una base de datos al momento en que el colaborador ingrese al lugar. Dados dos colaboradores identificados como 1 y 2, el mecanismo propuesto comprueba si la ubicación del colaborador 1 es igual a la ubicación del colaborador 2 y si el tiempo de egreso de los colaboradores no ha sido registrado. Si ambas condiciones son afirmativas, entonces se deduce que ambos colaboradores se encuentran co-localizados. Se decidió emplear la tecnologı́a NFC debido a que está siendo incluida en la mayorı́a de los dispositivos móviles nuevos, por lo tanto no tenemos que incorporar hardware externo al dispositivo. Además, se hace uso de etiquetas NFC, las cuales son de bajo costo. Ası́ mismo, se espera que para el año 2014 uno de cada cinco dispositivos móviles cuenten con dicha tecnologı́a2 . Estas razones hacen que la implementación de este mecanismo sea rentable y factible. Se podrı́a utilizar otras tecnologı́as de comunicación para obtener la ubicación fı́sica, e.g., sensores infrarrojos o sensores de Identificación por Radio-Frecuencia (RFID). Asimismo, se podrı́a implementar algún mecanismo por software, e.g., detección de rostros. 5.3 Marco XARE El marco XARE (conteXt-Aware groupwaRE) pretende orientar a los diseñadores en la creación de aplicaciones colaborativas adaptativas al contexto de uso, considerando la remodelación y la redistribución. El marco propuesto se compone de tres capas: detección, adaptación y espacio de trabajo. La capa de detección, que se encuentra en la parte inferior del marco, es responsable de reconocer 2 Juniper Research, 1 in 5 Smartphones will http://www.juniperresearch.com/viewpressrelease.php?pr=239, 2004 have NFC by 2014, Capı́tulo 5 147 cambios en las variables contextuales por medio de perceptores lógicos y fı́sicos. La capa de adaptación está localizada entre las capas superior e inferior del marco XARE. Esta capa intermedia está a cargo de analizar la información obtenida por la capa de detección para determinar si los nuevos cambios en el contexto de uso requieren o no la adaptación de los espacios de trabajo públicos o privados de una aplicación colaborativa. Cuando la capa de adaptación considere que algún tipo de adaptación es necesario, esta capa informa a la capa de espacio de trabajo cómo debe ser implementada dicha adaptación (cf. Figura 5.8). Esta última capa mencionada es la capa superior del marco XARE y es responsable de llevar a cabo las modificaciones solicitadas por la capa de adaptación. Capa de Espacio de Trabajo ifica Meta- Interfaz de usuario mod Con negociación mod Sin negociación Meta-IU plástica Capa de Adaptación Reglas de adaptación ifica ET compartido Medios de adaptación define Remodelación define defi ne Granularidad de adaptación ET privado Redistribución Granularidad del estado de recuperación Capa de Detección Perceptores lógicos Dispositivos Disponibilidad Actividad actual Proximidad lógica Interfaces de usuario Perceptores físicos Ubicación del colaborador Proximidad física Información contextual Figura 5.8: Capas del marco XARE La capa de detección se compone de dos tipos de perceptores (cf. Figura 5.8): 1. Perceptores lógicos: son mecanismos de software que pueden identificar cambios en las siguientes variables contextuales lógicas: 148 Diseño del marco XARE • Variable dispositivos: representa las plataformas actuales de interacción de cada colaborador donde se ejecutan aplicaciones colaborativas. Mediante esta variable es posible obtener las caracterı́sticas de hardware y software de estos dispositivos para adaptar las aplicaciones colaborativas al componente conjunto de plataformas del contexto de uso. • Variable disponibilidad: denota la disponibilidad de cada colaborador, la cual puede ser definida manualmente por el propio colaborador o de manera automática al ser inferida por una aplicación colaborativa (cf. sección 5.2.2). Como se mencionó en la sección 5.1, esta variable puede tomar los valores presente o ausente, pero si el colaborador está presente, él puede estar ocupado, accesible o contactable si es posible. • Variable actividad actual: representa la actividad en curso de cada colaborador, la cual puede ser inferida automáticamente por una aplicación colaborativa a partir de las acciones ejecutadas por el colaborador sobre los objetos compartidos. • Variable proximidad lógica: denota la cercanı́a entre un colaborador y sus colegas en el espacio de trabajo compartido de una aplicación colaborativa (cf. sección 5.2.6). 2. Perceptores fı́sicos: son principalmente sensores capaces de reconocer cambios en la siguientes variables contextuales fı́sicas: • Variable configuración de un grupo: por medio de sensores RFID (Radio Frequency IDentification) y de tecnologı́a Bluetooth, es posible descubrir la entrada y salida de un colaborador en un lugar especı́fico, con el fin de determinar si un grupo está colaborando de manera co-localizada o distribuida. • Variable proximidad fı́sica: denota la cercanı́a entre los dispositivos de un colaborador y los de sus colegas. Por medio de esta variable es posible que dos colaboradores acoplen sus tablets para crear un espacio de trabajo compartido a partir de dos espacios privados, como en Connectables [Tandler et al., 2001], o extender un espacio de trabajo compartido existente. La capa de adaptación está compuesta de los siguientes módulos (cf. Figura 5.8): 1. Reglas de adaptación: con base en los cambios detectados en el contexto de uso, este módulo analiza si la aplicación colaborativa en cuestión necesita ser adaptada o no. En caso de que la adaptación sea requerida, este módulo también especifica el tipo de técnicas necesarias para adaptar dicha aplicación, ası́ como las granularidades de adaptación y recuperación de estado. 2. Medios de adaptación: se refiere a los resultados del proceso de adaptación tales como son percibidos por los colaboradores en la Interfaz de Usuario (IU). Ası́, el proceso de adaptación puede utilizar una o varias de las siguientes técnicas: • Redistribución: consiste en reorganizar los componentes de la IU en diversos dispositivos de interacción. Cuatro tipos de redistribución han sido identificados Capı́tulo 5 149 [Calvary et al., 2006]: a) de centralizada a centralizada, cuyo objetivo es conservar el estado centralizado de la IU, e.g., migración de una PC a una PDA; b) de centralizada a distribuida, la cual desmiembra la IU en varias plataformas, e.g., repartición entre una PC y una PDA; c) de distribuida a centralizada, cuyo efecto es reconcentrar la IU en una sola plataforma; y d) de distribuida a distribuida, la cual modifica el estado de distribución de la IU. • Remodelación: involucra la reconfiguración de la IU por medio de inserciones, supresiones, substituciones y reorganización de todos o algunos componentes de la IU. Las transformaciones aplican a diferentes niveles de abstracción: intra-modal, intermodal y multi-modal. La remodelación intra-modal ocurre cuando los componentes fuentes son redefinidos dentro de la misma modalidad, e.g., de una interacción gráfica a otra gráfica. La remodelación inter-modal redefine una modalidad diferente, ya que los componentes de la IU sujetos a remodelación se ven afectados al perder o aumentar una modalidad. Ası́, una IU multi-modal puede ser convertida en una IU mono-modal o de manera inversa. Finalmente, la remodelación multi-modal permite la combinación de transformaciones intra- e ı́nter- modales. 3. Granularidad de adaptación: denota la unidad más pequeña de la IU que puede ser remodelada y/o redistribuida. Tres granos de adaptación son identificados [Vanderdonckt, et al., 2008]: a) total, el cual implica que la IU completa se ve afectada por modificaciones; b) espacio de trabajo, el cual se refiere a un espacio que apoya la ejecución de un conjunto de tareas lógicamente relacionadas, e.g., una ventana de impresión; c) interactor, el cual representa la unidad más pequeña que soporta una tarea, e.g., el botón “Save” de un editor. Otro grano, llamado Pixel, se refiere a que cualquier componente de la IU que puede ser dividido en múltiples superficies; sin embargo, este grano de adaptación sólo concierne a la técnica de redistribución. 4. Granularidad de recuperación del estado: representa el esfuerzo que los usuarios deben realizar para continuar con el desarrollo de su actividad, una vez finalizada la adaptación de la IU. Tres granos de recuperación son considerados [Vanderdonckt, et al., 2008]: a) nivel de sesión, el cual fuerza al usuario a reiniciar su sesión, perdiendo los efectos de todas sus acciones ejecutadas; b) nivel de tarea, el cual asegura que todas las tareas terminadas son validadas de manera persistente, excepto la tarea interrumpida; y c) nivel de acción fı́sica, la cual asume que el usuario no pierde el efecto de ninguna acción. La capa de espacio de trabajo está compuesta de los siguientes módulos (cf. Figura 5.8): 1. Meta-interfaz de usuario (meta-IU): consiste en un conjunto de funciones, cuyo objetivo es evaluar y controlar el estado de una aplicación colaborativa adaptativa. Coutaz y Calvary identifican tres tipos de meta-interfaz de usuario [Coutaz and Calvary, 2008]: a) metaIU sin negociación, la cual permite observar el estado del proceso de adaptación, pero no permite que el usuario intervenga; meta-IU con negociación, la cual es recomendable cuando la meta-IU no puede tomar decisiones entre múltiples formas de adaptación, o 150 Diseño del marco XARE cuando el usuario debe controlar el resultado del proceso; y c) meta-IU plástica, la cual está diseñada para instanciar una meta-IU cuando la aplicación es lanzada en ejecución. 2. Espacio de trabajo privado: representa el espacio personal donde un colaborador produce sus propias contribuciones, las cuales no son visibles a sus colegas. 3. Espacio de trabajo compartido: denota el espacio común donde los miembros de un grupo cooperan por hacer sus contribuciones perceptibles por todos los miembros, cuando la estratificación no existe, o por algunos miembros de otra manera. El soporte de almacenamiento del marco XARE está compuesto de dos repositorios (cf. Figura 5.8): 1. El repositorio de información contextual administra y almacena principalmente información estable, e.g., preferencias de los colaboradores, perfiles, ası́ como tareas y actividades potenciales. Cuando el dispositivo de un colaborador no tiene suficientes capacidades para almacenar información dinámica (e.g., la ubicación actual del colaborador, los objetos compartidos en uso y las caracterı́sticas de los dispositivos actuales). Esta base de datos está encargada de almacenar dicha información. 2. Para dispositivos con poca capacidad de almacenamiento, el repositorio de interfaces de usuario almacena y administra información necesaria para desplegar las interfaces de usuario (e.g., diferentes vistas de interactores y espacios de trabajo, frecuencia de uso de algunos interactores) y la recuperación del estado (e.g., todas las acciones ejecutadas o tareas terminadas). 5.4 Sı́ntesis El marco XARE pretende servir como referencia para crear aplicaciones colaborativas adaptativas, dado que pone en evidencia las dependencias que existen entre las clases de dicho marco y los componentes del contexto de uso. El marco propuesto sirve de base para implementar la mayorı́a de las aplicaciones identificadas en el capı́tulo 4. En la tabla 5.4 se hace referencia a los mecanismos que permiten implementar las aplicaciones identificadas en cuatro de los ocho escenarios descritos en el capı́tulo 4. El escenario “mejoramiento del trabajo colaborativo”, el cual se refiere a asociar objetos de aplicaciones diferentes, con el fin de mantener en todo momento el contexto de dichos objetos, puede ser implementado utilizando el mecanismo de “creación de referencias deı́cticas”. El escenario “remodelación de la interfaz de usuario”, el cual permite la modificación de componentes mediante ocultación, agregación o sustitución, puede ser implementado mediante el “mecanismo de ocultar, sustituir y mostrar componentes”. Dicho mecanismo permite adaptar los componentes dependiendo del rol y del conjunto de dispositivos en uso de cada uno de los Capı́tulo 5 151 Escenarios Mecanismos 1. Mejoramiento del trabajo colaborativo 5.2.5. Creación de referencia deı́cticas 2. Remodelación de la interfaz de usuario 5.2.4. Ocultar, sustituir o mostrar componentes 3. Redistribución de una aplicación colaborativa 5.2.7. Ubicación fı́sica y 5.2.6. Proximidad lógica 4. Mejoramiento de la conciencia grupal 5.2.1. Similitud de actividades, 5.2.2. Disponibilidad de un colaborador 5.2.3. Medio de contacto Tabla 5.4: Sugerencias de mecanismos para implementar las aplicaciones de algunos escenarios analizados colaboradores. Este mecanismo puede usarse para ocultar los ı́conos no relacionados con los roles, cuando la pantalla del dispositivo en uso tenga una baja resolución o sea de tamaño muy pequeño. Además, las aplicaciones pueden optar por calcular la remodelación de la IU en caso de que el dispositivo soporte dicho cálculo o por usar un servidor para que este les proporcione la IU, considerando las caracterı́sticas del contexto actual (dispositivo y colaboradores). El escenario “redistribución de una aplicación colaborativa” permite adaptar componentes dado el tipo de interacciones (co-localizadas, distribuidas o hı́bridas) puede llevarse acabo utilizando los dos mecanismos siguientes: 1) “proximidad lógica” permite identificar si el grupo de colaboradores se encuentra trabajando en la misma tarea; y, 2) “ubicación fı́sica” permite detectar cuando un grupo está trabajando en un mismo lugar fı́sico o a distancia. El escenario “mejoramiento del trabajo colaborativo” permite adaptar los medios de contacto y disponibilidad de los colaboradores; este escenario puede llevarse acabo al usar los siguientes tres mecanismos: 1) “similitud de actividades” permite determinar la similitud de las actividades de dos colaboradores, 2) “disponibilidad de un colaborador” permite calcular la disponibilidad del colaborador al usar la similitud de las actividades del usuario a contactar y el que desea hacer el contacto, y 3) “medios de contacto” permite definir los medios de contacto considerando la disponibilidad y el hardware de los colaboradores mencionados. Existen dos escenarios que no se muestran en la tabla, pero pueden ser parcialmente implementados usando los mecanismos existentes. Estos escenarios corresponden a: “suministro de información relevante” (cf. sección 4.8) y “Notificaciones multi-modales” (cf. sección 4.9). 152 Diseño del marco XARE El escenario “suministro de información relevante”, que tiene como objetivo proveer información dado un contexto determinado, puede implementarse casi por completo al usar los siguientes mecanismos: 1) “ocultar, sustituir y mostrar componentes” puede usarse para proveer información necesaria dado el rol del colaborador y el dispositivo en uso, 2) “proximidad lógica” nos permitirá saber el momento en que entra un colaborador a un lugar especı́fico y ası́ proveer la información adecuada dado su rol y actividades y 3) “similitud de actividades” permite detectar la similitud de actividades entre dos colaboradores, dicho mecanismo permitirá ofrecer información entre colaboradores dada sus actividades actuales o potenciales. El escenario “Notificaciones multi-modales” tiene como objetivo notificar usando diferentes modalidades. Este escenario se puede implementar parcialmente al usar los siguientes dos mecanismos: 1) “proximidad lógica” para conocer en donde se encuentra el colaborador y ası́ determinar si está solo o acompañado, y 2) “similitud de actividades” para determinar si la actividad del colaborador que genera la actividad está relacionada con la actividad del que potencialmente recibirá dicha notificación. Capı́tulo 6 Funcionamiento del marco XARE El marco XARE está compuesto principalmente por tres capas, las cuales se encargan de detectar el entorno interno y externo del sistema, de adaptarse a los nuevos cambios e interactuar con el colaborador. Además dicho marco requiere de dos bases de datos para almacenar diferente tipo de información relacionada con los colaboradores y el propio sistema. En la sección 6.1 se muestra las instancias del marco XARE en diferentes dispositivos, ası́ como la manera de comunicarse entre las instancias de dicho marco. En la sección 6.2 permite conocer la API por cada capa. Finalmente, en la sección 6.3 se presenta una sı́ntesis de este capı́tulo. 6.1 Instancias del marco XARE Las capas del marco XARE pueden estar instanciadas en los dispositivos huéspedes, más aún si estos dispositivos tienen suficientes capacidades, e.g., una computadora portátil, para almacenar y procesar, pero muchos de los dispositivos no tienen la suficiente capacidad para instanciar completamente el marco, por lo que estos podrı́an necesitar una entidad externa, e.g., un servidor. Supongamos una tablet, la cual podrı́a almacenar la capa de espacio de trabajo, pero un teléfono inteligente no, ası́ que ambos dispositivos podrı́an requerir de una entidad externa (cf. Figura 6.1). Para que la entidad externa adapte la interfaz de usuario del dispositivo huésped, éste debe considerar las caracterı́sticas de hardware y software del dispositivo huésped, las cuales pueden ser obtenidas de dos maneras: 1. el dispositivo huésped, e.g., un teléfono inteligente, toman la iniciativa de informar a la entidad externa acerca de sus propias capacidades. Esta solución es adecuada para 153 154 Funcionamiento del marco XARE Marco XARE Espacio Trabajo Marco XARE Espacio Trabajo Adaptación Mensajes Detección Mensajes Mensajes Red Servidor 1 Marco XARE Servidor N Marco XARE Espacio Trabajo Espacio Trabajo Adaptación Adaptación Detección Detección Interfaces de usuario Información contextual Figura 6.1: Instancias del marco XARE en los dispositivos móviles soluciones basadas en la Web, donde el dispositivo huésped actúan como cliente y la entidad externa como servidor; 2. la entidad externa pregunta a los dispositivos huéspedes acerca de sus capacidades. En el caso de los dispositivos huéspedes con suficientes caracterı́sticas para instanciar completamente el marco XARE, ellos podrán comunicarse con los demás dispositivos mediante mensajes transmitidos por la red. En cambio, los dispositivos huéspedes que utilizan una entidad externa, ellos se comunicaran con los demás dispositivos por medio de dicha entidad externa. Las instancias del marco XARE podrán comunicarse con las bases de datos a través de la red, para obtener u actualizar la información adecuada. La comunicación entre instancias del marco XARE requiere la API mostrada en la tabla 6.1. En donde se muestra el envı́o y la recepción de mensajes. Capı́tulo 6 155 Nombre Descripción Errores Se envı́a un mensaje a los dispositivos contenidos en el arreglo Boolean Send Messages (Message, Devices Array) Clase contenedora: Comunication No se encuentra el dispositivo Salida: Exito o fracaso en el envı́o del mensaje Recibe mensaje Boolean Receive Message (Message) Clase contenedora: Comunication Mensaje dañado Salida: Exito o fracaso en la recepción del mensaje Tabla 6.1: API de la comunicación entre instancias del marco XARE 6.2 API de comunicación entre las capas Como se dijo en la sección 5.3 del capı́tulo 5, el marco XARE esta compuesto por las siguientes capas: espacio de trabajo, detección y adaptación. API de la capa de espacio de trabajo Esta capa es responsable de llevar a cabo la adaptación acordada por la capa adaptación. En la tabla 6.2 Nombre Descripción Errores Actualiza la sesión al registrar su inicio de sesión un colaborador Void Update Session (ID Collaborator, ID Session) Clase contenedora: GroupOfCollaborators Salida: No aplica Continúa en la página siguiente No se encuentra la sesión 156 Funcionamiento del marco XARE Nombre Descripción Errores Muestra la disponibilidad del colaborador observado Void play Availability servedUser) Dis(Ob- No se encuentra el colaborador observado Clase contenedora: UserInterface Salida: No aplica Muestra los medios de contacto disponibles que puede tener el colaborador observador Void Display ContactMeans (ObserverUser) Clase contenedora: Interface User- No se encuentra el colaborador observado Salida: No aplica Void Display MetaIU (Array, ID Device) Muestra una meta interfaz de usuario con las opciones incluidas en un arreglo sobre el dispositivo indicado Clase contenedora: Interface User- Problemas conexión con dispositivo de el Problemas conexión con dispositivo de el Salida: No aplica Actualiza el desktop de un colaborador en un dispositivo Void Display Desktop (ID Collaborator, ID Device) Clase contenedora: Interface User- Salida: No aplica Tabla 6.2: API de la capa de espacio de trabajo API de la capa de adaptación Esta capa analiza la información obtenida por la capa detección para determinar si los nuevos cambios en el contexto de uso requieren o no la adaptación de los espacios de trabajo públicos o Capı́tulo 6 157 privados de una aplicación colaborativa. Cuando la capa adaptación considere que la adaptación al cambio contextual es necesaria, esta capa informa a la capa espacio de trabajo cómo debe ser implementada dicha adaptación. La API de la capa de adaptación se muestra en la tabla 6.3 Nombre Descripción String Create Deixis (Deictic Word, ID Document, ID SharedObject) Errores Crear una referencia deı́ctica de una imagen o un texto No se encuentra el objeto Clase contenedora: Link Salida: Referencia Deı́ctica Despliega el objeto que está ligado a dicha deixis Void Show Deixis (ID Deixis) No se encuentra la referencia deı́ctica Clase contenedora: Link Salida: No aplican Image ate ImageCopy (ID Deixis) Cre- En el pizarrón multiusuario se crea una copia (ID ImgCopy) de la imagen referenciada Clase contenedora: Link No se encuentra la referencia deı́ctica Salida: Genera una copia A un grupo que lleva una conversación se le sugiere ver la conversación de otro grupo Boolean Follow Conversation (ID SuggestConver, ID CurrentConver) Clase contenedora: munication Com- Salida: Verdadero o falso dependiendo si el colaborador sigue o no una conversación Continúa en la página siguiente No se encuentra las conversaciones 158 Funcionamiento del marco XARE Nombre Descripción Errores La copia de la imagen referenciada es actualizada en su documento fuente Image Update ImgRef (ID ImgCopy) Clase contenedora: Image Salida: fuente Actualiza la imagen No se encuentra la copia de la imagen, o existen problemas de escritura en el documento fuente Adapta el desktop del colaborador considerando el rol y los dispositivos en uso Boolean Adapt DesktopCollaborator (Array Collaborator, ArrayDevice, ID Collaborator) Clase contenedora: RichDesktop No se encuentra el colaborador Salida: Devuelve verdadero en caso de adaptar la interfez de usuario, en otro caso regresa falso Void Update Knowledge Tools (Array CollectedGroup, Array DistributedGroup, Array Asent Group) La barra de conciencia es actualizada cada vez que se detecta un cambio en la configuración del grupo Col- Clase contenedora: laboratorBar No se encuentra la barra Salida: No aplica Calcula la disponibilidad colaborador observado String Calculate Availability (ObservedUser, ObserverUser, Observer Activities) Clase contenedora: ability Salida: bilidad del Avail- El tipo de disponi- Continúa en la página siguiente No se encuentra el colaborador observado o el observador Capı́tulo 6 159 Nombre Descripción Errores Calcula la similitud de las actividades de dos colaboradores String Calculate SimilarityActivities (ObservedUser, ObserverUser) Clase contenedora: ity Salida: tud String CalculateContactMeans (ObservedUser, ObserverUser, ObservedUser Disponibility, ObservedUser Device, ObserverUser Device) Activ- No se encuentra el colaborador observado o el observador El grado de simili- Obtiene los medios de contacto disponibles entre dos colaboradores Clase contenedora: tactMeans Con- No se encuentra el colaborador observado o el observador Salida: Los dispositivos disponibles para la conversación Tabla 6.3: API de la capa de adaptación Capa de detección Esta capa se encarga de detectar de manera automática algún cambio ocurrido en el contexto, i.e., los eventos relevantes tanto externos como internos en la aplicación. La API de la capa de detección se muestra en la tabla 6.4. Nombre Descripción Errores Actualiza las caracterı́stica del dispositivo Boolena date DeviceList ID Device) Up(Array, Clase contenedora: ware Hard- Salida: Verdadero en caso de encontrar el dispositivo; falso en caso contrario Continúa en la página siguiente No se encuentra el dispositivo 160 Nombre Funcionamiento del marco XARE Descripción Errores Actualiza el perfil y preferencias del colaborador Boolean Update Collaborator (Array, ID Collaborator) Clase contenedora: laborator Col- No se encuentra el colaborador Salida: Verdadero cuando encuentra el colaborador, falso de otro modo Actualiza la ubicación fı́sica de un colaborador, ası́ como su tiempo de ingreso Boolean Update Collaborator (Time, ID Room, ID Collaborator) Clase contenedora: laborator Col- No se encuentra el ID Colaborador Salida: Verdadero cuando encuentra el colaborador, falso de otro modo Establece el dispositivo que está usando un colaborador Boolean Link Device (ID Device, ID Collaborator) Clase contenedora: ware Hard- No se encuentra el colaborador Salida: Verdadero cuando encuentra el colaborador, falso de otro modo Regresa el perfil y rol del colaborador String Get Collaborator (ID Collaborator) Clase contenedora: laborator Col- Salida: Un arreglo con la información mencionada Continúa en la página siguiente No se encuentra el colaborador Capı́tulo 6 161 Nombre Descripción Errores Regresa las caracterı́sticas de un dispositivo en especı́fico String Get CharacteristicsDevice (ID Device) Clase contenedora: ware Hard- No se encuentra el dispositivo Salida: Un arreglo con la información mencionada Agrega un miembro a un grupo co-localizado o distribuido Boolean Update ConfigurationGroup (ID Collaborator, ID Group) Clase contenedora: GroupOfCollaborators No se encuentra el grupo Salida: Verdadero en caso de encontrar el grupo; falso en caso contrario Guarda las configuraciones de un grupo Boolean Save ConfigSession (Array Collaborator, ray) Ar- Clase contenedora: GroupOfCollaborators No se pudo guardar la configuración Salida: Verdadero cuando no ocurrio ningún error, de otro modo falso Regresa la actividad actual del colaborador ası́ como la fecha lı́mite de esta String Get Currently Activities Clase contenedora: (ID Collaborator) ity Salida: Actividad y fecha lı́mite Activ- actual Tabla 6.4: API de la capa de detección No se encuentra el colaborador 162 6.3 Funcionamiento del marco XARE Sı́ntesis Las APIs necesarias para el funcionamiento de cada capa del marco fueron mostradas en este capı́tulo, de tal forma que se indica el tipo de valor que regresa dicha API ası́ como los tipos de valores que recibe. Se incluyó también algunos errores que deben ser considerados. Estas APIs involucran varias partes de un sistema, i.e., dsde el despliegue de las interfaces de usuario hasta la detección de eventos fı́sicos y virtuales. En este capı́tulo se se muestra como podrı́a ser instanciado el marco en los diferentes dispositos de cómputo, ya que estos están cambiando constantemente en caracterı́sticas de hardware y software. Capı́tulo 7 Conclusiones y trabajo a futuro Como preámbulo a emitir en las conclusiones de este trabajo, es muy importante recordar que el contexto de este estudio no está reducido a un campo limitado de aplicaciones particulares, sino al ambiente de hoy en dı́a en el que todos los usuarios están progresivamente entrando de manera insoslayable: el usuario utiliza cada vez más los dispositivos fijos y móviles del ambiente donde está interactuando con otros usuarios móviles mediante aplicaciones interactivas que ofrecen interfaces sofisticadas de trabajo colaborativo multimedia incluso multimodal. Ası́, las interfaces de colaboración son complejas, pero las caracterı́sticas de los potenciales dispositivos de interacción son muy diversas. Además, el usuario es más exigente y ahora quiere no solamente poder pasar de un dispositivo a otro, sino usar de manera simultanea diversos dispositivos combinándolos para definir un ambiente de interacción sofisticado y eventualmente más natural para colaborar de manera local y/o remota con otros usuarios. En el marco de tal ambiente, este tema de investigación se centra en proveer una definición de contexto de uso para los sistemas colaborativos, la cual sirvió para crear un marco de desarrollo de aplicaciones colaborativas adaptables al contexto que considera tanto la interfaz de usuario como el trabajo generado por cada colaborador. El área del trabajo colaborativo se ve enriquecido con este trabajo de investigación porque define el contexto de uso de los sistemas colaborativos, el cual está basado en el contexto de uso de los sistemas mono-usuario. En este trabajo de investigación el contexto de uso de los sistemas colaborativos es ejemplificado por varios escenarios. Algunos de estos fueron implementados en aplicaciones colaborativas. A partir de estos escenarios se propone un marco de desarrollo ası́ como un conjunto de APIs que permiten a los desarrolladores de software diseñar aplicaciones colaborativas capaces de adaptarse al contexto en el cual se están ejecutando. Enseguida presentamos más a detalle las conclusiones resultantes hasta el momento, ası́ como los temas a investigar y desarrollar más adelante para obtener resultados más completos. 163 164 7.1 Conclusiones y trabajo a futuro Conclusiones En este trabajo introducimos la subárea del campo de Interacción Humano-Computadora (IHM) llamada “Plasticidad de las Interfaces de Usuario”; con la finalidad de evolucionar las interacciones de los usuarios, que antes trabajaban individualmente, hacia el trabajo colaborativo usando dispositivos heterogéneos, debido a que la importancia de dicha subárea, Trabajo Colaborativo, parece cada vez más importante. El desarrollo del presente trabajo de investigación se centra en considerar varios puntos relevantes de este entorno de colaboración creciente, para definir una interfaz de usuario plástica en la etapa de diseño y/o en tiempo de ejecución. También, los sistemas plásticos deben informar al usuario final acerca de las caracterı́sticas de la nueva adaptación, ya sea que el usuario intervenga en el proceso de adaptación o solo sea un observador pasivo. Varias de las aplicaciones que presentamos como ejemplos en este trabajo permiten expresar de manera visual la plasticidad, e.g., cambiar de modalidad gráfica a textual cuando el dispositivo no soporta la modalidad gráfica tal como la aplicación lo requiere; redistribuir la interfaz de usuario entre dispositivos heterogéneos (e.g., pizarrones electrónicos, PDA, PC y mesas) y/o adaptarse a la tarea de un colaborador particular. A partir de estos ejemplos, podemos observar que la mayorı́a de los sistemas se focalizan en la plataforma (dispositivo, sistema operativo, sistema de interacción y herramientas de software). Principalmente, estos sistemas se ejecutan sobre PDAs, tablets PC y/o computadoras portátiles; en cambio, el uso de dispositivos como pizarrones electrónicos, teléfonos inteligentes o relojes constituyen plataformas no tan usadas frecuentemente. Muy pocos de los sistemas existentes consideran al usuario, ası́ la tendencia respecto al usuario se limita a: i) considerar sus tareas (frecuencia y preferencia) o ii) determinar si un usuario está usando dos o más dispositivos. Los marcos conceptuales o de desarrollo que son analizados en este trabajo de investigación fueron seleccionados debido a que implementan algunas de las caracterı́sticas de las interfaces de usuario plásticas multimodales. A partir del análisis de estos marcos con respecto al contexto de uso se puede observar que existe una tendencia a tomar en cuenta varias peculiaridades del usuario, e.g., su perfil, sus tareas asignadas y su rol, con la finalidad de proveer una mejor adaptación. Las caracterı́sticas anteriores contemplan ciertas acciones en especı́fico, e.g., detectar las preferencias respecto a un tema. Por otro lado, la adaptación a la plataforma se centra en acoplarse a las caracterı́sticas que ofrece cada dispositivo de cómputo, pero la tendencia en este punto es considerar sensores para permitir la conciencia del entorno fı́sico, además de crear de manera dinámica clusters con los dispositivos al alcance de los usuarios. En cuanto la adaptación al entorno, los marcos están tendiendo a modelar el entorno fı́sico, e.g., detectar las personas en un lugar, ası́ como proporcionar información relevante a cada usuario dependiendo de su ubicación. Retomando los puntos relevantes de las interfaces de usuario plásticas, se observa que los marcos se inclinan por permitir que los usuarios finales intervengan en la adaptación mediante Capı́tulo 7 165 una meta-interfaz de usuario, ası́ como realizar la adaptación de la aplicación en tiempo de ejecución, dejando de lado los demás puntos a considerar. Un marco organizacional de clases y mecanismos En este trabajo de tesis proponemos un marco organizacional de clases (diagrama de clases) cuyo objetivo es constituir una referencia para diseñar aplicaciones plásticas colaborativas, ya que se pueden observar las dependencias que existen entre las clases y las dimensiones del contexto de uso. Dicho diagrama fue definido considerando los escenarios propuestos, los cuales fueron analizados como pre-requisito a este trabajo de investigación. En particular, en este trabajo proveemos una sı́ntesis de los mecanismos que permiten implementar cuatro de los siete escenarios descritos en esta tesis. El escenario que considera los objetos compartidos, el cual se refiere a crear ligas entre una palabra clave de la mensajerı́a instantánea y un objeto compartido del editor colaborativo mediante la función Deixis, puede ser implementado mediante el mecanismo para la “creación de referencias deı́cticas”. Este mecanismo podrı́a permitir crear ligas no solo desde la aplicación de mensajerı́a instantánea sino desde cualquier otra aplicación. En el caso especı́fico del escenario que soporta la modificación de componentes mediante la ocultación, agregación y/o sustitución de un componente de la interfaz de usuario, este se puede implementar usando mecanismos dedicados que permitan adaptar los componentes dependiendo de los roles del colaborador y del conjunto de dispositivos en uso. Estos mecanismos pueden usarse para ocultar los ı́conos no relacionados con el rol del usuario (sus actividades), cuando la pantalla del dispoposiblessitivo en uso tenga una baja resolución o sea de tamaño muy pequeño. Además las aplicaciones pueden optar por calcular la remodelación de la interfaz de usuario en el caso de que el dispositivo soporte dicho cálculo o usar un servidor para que este les proporcione la interfaz de usuario considerando las caracterı́sticas del contexto actual (dispositivos y colaboradores). El escenario que presenta la adaptación de componentes en interacciones co-localizadas, distribuidas o hı́bridas puede llevarse acabo utilizando los dos mecanismos siguientes: 1) el mecanismo de “detección de proximidad lógica” que permite identificar si el grupo de colaboradores se encuentra trabajando en la proximidad de puntos de intereses comunes, mientras que 2) el mecanismo de “detección de proximidad fı́sica” permite determinar si el grupo de usuarios está trabajando en un mismo lugar o a distancia. El escenario que introduce la adaptación de los medios de contacto y disponibilidad de los colaboradores puede llevarse acabo al usar los siguientes tres mecanismos que permiten: 1) determinar “la similitud de las actividades” de dos colaboradores, 2) calcular “la disponibilidad” de los colaboradores tomando en cuenta la similaridad de las actividades del usuario a contactar y del que desea establecer el contacto, y 3) definir “los medios de contacto” considerando la disponibilidad y los dispositivos de interacción de los colaboradores. De igual manera, se introdujo un escenario que presenta el principio de la adaptación de la información, cuyo objetivo es proveer información dado un contexto determinado. Este 166 Conclusiones y trabajo a futuro escenario puede ser implementado casi por completo al usar los siguientes mecanismos: 1) el mecanismo de “ocultación, sustitución y despliegue” de componentes que se puede usar para proveer información necesaria en función del rol del colaborador y del dispositivo en uso, 2) el mecanismo de “ubicación fı́sica” que nos permitirá saber el momento en que entra un colaborador a un lugar especı́fico y ası́ proveer la información adecuada dados sus roles y sus actividades, y 3) el mecanismo de “similitud de actividades” que permite detectar la similitud de actividades entre dos colaboradores. Finalmente, un escenario especı́fico ilustra el uso de diferentes modalidades, cuyo objetivo es la notificación de información usando diferentes modalidades de eventos relacionados con la ubicación de un colaborador, la actualización de información relevante para los colaboradores, ası́ como la actividad que está llevando en cierto momento. Este escenario se puede implementar parcialmente al usar los siguientes dos mecanismos: 1) el mecanismo de “ubicación fı́sica” para conocer en donde se encuentra un colaborador y ası́ determinar si está solo o acompañado, y 2) el mecanismo de “similitud de actividades” para determinar si la actividad del colaborador está relacionada con la actividad de quien potencialmente recibirá la notificación. En especı́fico estudiamos en profundidad los escenarios que tienen implementadas sus aplicaciones. Algunas de las aplicaciones desarrolladas (e.g., la herramienta de votación y el editor de mapas mentales) combinan algunos aspectos propuestos en los escenarios mencionados, lo cual permitió generalizar la adaptación de dichas aplicaciones al rol, al dispositivo y a la configuración del grupo. A partir de la herramienta de desktop enriquecido se pudo generalizar la manera de referenciar objetos compartidos entre dos aplicaciones, ası́ como de detectar cuando se hace referencia de manera directa o indirecta a un mismo objeto compartido. Con la aplicación de disponibilidad y medios de contacto se generalizó la manera de calcular la disponibilidad de los colaboradores y sus medios de comunicación más adecuada. En cambio, el administrador de contenidos NFC no se pudo generalizar dicho proceso, pero si nos permitió destacar algunas de las variables contextuales a considerar. Las cinco aplicaciones presentadas en esta sección han sido implementadas para soportar el trabajo colaborativo, algunas de ellas permiten tanto el trabajo co-localizado como el distribuido, pero otras solo una de esas dos opciones. Las herramientas que permiten tanto el trabajo co-localizado como el trabajo distribuido corresponden a: herramienta de votación y editor de mapas mentales. Ambas aplicaciones comparten una barra de colaboradores. Dicha barra se adapta dependiendo del modo de trabajo. Las herramientas que solo soportan el trabajo distribuido corresponden al desktop enriquecido y a la herramienta de disponibilidad y medios de contacto. La herramienta desktop enriquecido permite ejecutar tres aplicaciones y crear ligas entre objetos compartidos. La herramienta de disponibilidad y medios de contacto permite adaptar dichos componentes (disponibilidad y medios de contacto) considerando las actividades de los colaboradores involucrados, i.e., el colaborador que desea saber la disponibilidad de otro colaborador. Capı́tulo 7 167 El administrador de contenidos vı́a NFC solo permite el trabajo co-localizado. Dicha herramienta provee documentos relacionados a una reunión, considerando la fecha de la reunión. XARE - un marco de desarrollo La aportación principal de este trabajo de investigación consiste en proponer un marco de desarrollo denominado XARE para orientar y ofrecer mecanismos básicos a los desarrolladores y ası́ ayudarlos a definir aplicaciones adaptativas al contexto considerando cinco de las siete dimensiones de la plasticidad orientada a los sistemas mono-usuario. Las cinco dimensiones consideradas en el marco corresponden a: 1) contexto de uso, 2) meta-interfaz de usuario con o sin negociación, 3) medios de adaptación (remodelación y redistribución), 4) granularidad de adaptación y 5) granularidad de recuperación del estado. La dimensión contexto de uso es la más estudiada en este tema de investigación, ya que ha sido definida para los sistemas colaborativos y ha sido abordada en todos los escenarios presentados, e.g., adaptación de la aplicación al rol y perfil del colaborador (grupo de colaboradores), a los dispositivos (conjunto de plataforma) y a los objetos compartidos en uso (entorno compartido). Algunos componentes del contexto de uso están relacionados al medio de contacto y a la disponibilidad, los cuales resultan interesantes de analizar cuando el sistema interviene para establecer de manera automática las opciones disponibles. El medio de contacto ofrece a cada colaborador las herramientas disponibles para ser contactado, dependiendo de algunas caracterı́sticas propias del colaborador (plataforma, disponibilidad, actividad y el tiempo final de la actividad actual) ası́ como de los colegas que desean contactar. Como lo vimos, examinando el escenario ilustrado, el mecanismo de “disponibilidad de un colaborador”, el estado de disponibilidad de un colaborador depende de la similitud entre su actividad y la de sus colegas. Las dimensiones de plasticidad de una aplicación colaborativa se caracterizan determinando i) si la aplicación necesita la adaptación de una única entidad o de diversas entidades, ii) qué tipo(s) de variable(s) contextual(es) es(son) considerada(s) para la adaptación y iii) qué tipo de adaptación (presentación, ejecución y aumentación) es requerido. A partir del análisis del diagrama de clases del marco XARE, se puede observar que solamente una mı́nima parte de este diagrama considera la dimensión “entidad única”, especialmente para la asignación de roles o la disponibilidad del colaborador, ya que se considera a cada colaborador por separado. En cambio, la mayor parte del diagrama considera la situación de varias entidades de forma simultánea, e.g., un documento formado por varios objetos compartidos es creado por uno o varios colaboradores y la interfaz de usuario de cada colaborador se puede ver restringida por la plataforma de los colaboradores y las actividades que cada uno esté desempeñando al momento de contactar a un colega. Las variables contextuales que intervienen en la propuesta de los sistemas colaborativos adaptativos son varias, e.g., para establecer el medio de contacto se requiere conocer la plataforma, la actividad, la disponibilidad de un colaborador y la fecha actual, la cual permite saber qué tan cercana es la fecha lı́mite de la actividad en curso. Por otra parte, las acciones de los colaboradores pueden ser explotadas con el fin de que la aplicación detecte cuando dos o más colaboradores están haciendo referencia sobre un mismo objeto compartido. 168 Conclusiones y trabajo a futuro Las variables contextuales son igualmente muy útiles y comúnmente usadas cuando se requiere tener un conocimiento actualizado del rol del colaborador para actualizar su ambiente de trabajo, e.g., para mostrar solamente las funciones que le están permitidas. Finalmente las condiciones grupales permiten mostrar si los colaboradores trabajan de manera colocalizada o distribuida. Analizando el tipo de adaptación (presentación, ejecución y aumentación) introducida en el presente trabajo podemos concluir que se aplican todos los tipos de adaptación en diferentes situaciones. El tipo ”presentación” es aplicado cuando se proporcionan los medios de contacto para establecer comunicaciones con un colaborador: en este caso, el sistema solo presenta aquellas opciones que están disponibles para ambos colaboradores. El tipo “ejecución” se lleva a cabo cuando el sistema asigna de manera automática el rol, la disponibilidad y el medio de contacto. Finalmente, la información aumentada se proporciona cuando el sistema detecta que dos o más colaboradores están haciendo referencia a un objeto compartido, e.g., un colaborador describe un diagrama, mientras otro modifica el mismo diagrama. Otro caso en que se usa la información aumentada es cuando dos o más colaboradores hacen una referencia deı́ctica a un objeto compartido; en este caso ellos pueden tener a la vista dicho objeto al dar clic sobre la liga. 7.2 Trabajo a futuro Algunos de los puntos más relevantes a considerar en los desarrollos futuros de este trabajo de investigación son los siguientes: i) automatizar algunos escenarios, ii) poner el marco XARE a disposición de desarrolladores para que sea evaluado, iii) depurar las librerı́as que implementan el marco, iv) ofrecer una aplicación para un sector de aplicación especı́fico y evaluarla, ası́ como v) abordar las demás dimensiones propuestas en el ámbito de las interfaces de usuario plásticas mono-usuario y vi) eventualmente proponer su adaptación en un ambiente de trabajo colaborativo. La automatización de los escenarios que han quedado pendientes permitirá enriquecer el marco de desarrollo propuesto mediante clases y mecanismos. Los escenarios pendientes se enlistan a continuación: • Identificar al menos una aplicación del escenario que permite ocultar la información, e.g., imágenes y texto, para que los colaboradores no se preocupen por la información desplegada en sus pantallas ante la presencia de personas no autorizadas. • Automatizar el escenario que permite usar diferentes modalidades para notificar eventos internos y externos al sistema. El objetivo de este escenario es proveer una adecuada notificación de eventos que involucren diferentes modalidades considerando la actividad actual del receptor, ası́ como su ubicación y la relevancia de dicha notificación. Capı́tulo 7 169 • Automatizar aún más el escenario que provee información con la finalidad de enriquecer la colaboración, mediante información necesaria para un mejor desempeño de los colaboradores. Otro punto muy importante que queda pendiente es ofrecer el marco de desarrollo XARE a desarrolladores de software para que ellos evalúen la utilidad de dicho marco. El trabajo a futuro que se refiere a depurar las librerı́as que implementan el marco de desarrollo tiene como finalidad poner dichas librerı́as a disposición de cualquier desarrollador que desee crear colaborativas conscientes de contexto. El punto que se focaliza a ofrecer una aplicación a un sector especı́fico, e.g., el área médica, tiene como objetivo incorporar la mayorı́a de las adaptaciones que ofrece el marco XARE en una sola aplicación. El objetivo es ofrecer una aplicación para que los trabajadores de dicho sector evalúen la utilidad de las adaptaciones que esta ofrece. En este tema de investigación se abordaron cinco de las siete dimensiones identificadas en el diseño y la implementación de las interfaces de usuario plásticas orientadas a los sistemas monousuario. Ası́ la consideración del espacio tecnológico y del despliegue de la interfaz de usuario constituye el último punto a considerar en el trabajo a futuro de este trabajo de investigación. 170 Conclusiones y trabajo a futuro Apéndice A Publicaciones Publicaciones en revistas indexadas • Dominique Decouchant, Sonia Mendoza, Gabriela Sánchez, José Rodrı́guez, “Adapting groupware systems to changes in the collaborator’s context of use. Expert Syst. Appl. 40(11): 4446-4462 (2013) Publicaciones en congresos internacionales • Michael Romero, Sonia Mendoza, Gabriela Sánchez, ”A framework for developing contextaware applications for co-located collaborative work”, CCE, México, D.F. (México), September 30 - October-4, 2013. • Sonia Mendoza, Dominique Decouchant, Gabriela Sánchez, José Rodrı́guez and Alfredo Piero Mateos Papis, ”User Interface Plasticity for Groupware”, In Proceedings of the International Conference on Digital Information and Communication Technology and its Applications (DICTAP’2011), Communications in Computer and Information Science (CCIS) Series, Vol. 166, Part I, Springer, pp. 380-394, Dijon (France), June 21-23 2011 • Gabriela Sánchez, Sonia Mendoza, Dominique Decouchant, Lizbeth Gallardo-López, and José Rodrı́guez, ”Plasticity of Interaction Interfaces: the Study Case of a Collaborative Whiteboard”, In Proceedings of the 16th Collaboration Researchers’ International Workshop in Groupware (CRIWG’2010), LNCS 6257, Springer, pp. 265-280, Maastricht (The Netherlands), 20-23 September 2010. Publicaciones en congresos nacionales • Gabriela Sánchez, Sonia Mendoza y Dominique Decouchant, ”Adaptacion por plasticidad de sistemas de cómputo interactivos, ”VII Encuentro Participación de la Mujer en la 171 172 Publicaciones Ciencia, Centro de Investigaciones en Óptica, ISBN 978-607-95228-1-0, 5 páginas, León Guanajuato (México), Mayo 2010. Participación • Consorcium doctoral, 16th Collaboration Researchers’ International Workshop in Groupware (CRIWG’2010), LNCS 6257, Springer, pp. 265-280, Maastricht (The Netherlands), 20-23 September 2010. Referencias [Abowd et al., 1999] Abowd, G. D., Dey, A. K., Brown, P. J., Davies, N., Smith, M., and Steggles, P., Towards a better understanding of context and context-awareness, In Gellersen, H.-W., editor, HUC, Vol. 1707, Lecture Notes in Computer Science, pp. 304–307. Springer, 1999. [Amato and Straccia, 1999] Amato, G. and Straccia, U., User profile modeling and applications to digital libraries, Abiteboul, S. and Vercoustre, A.-M (Eds): ECDL ’99, LNCS 1696, pp. 184-197, Springer-Verlag Berlin Heidelberg, 1999. [Balme et al., 2005] L. Balme, A. Demeure, G. Calvary y J. Coutaz, Sedan-Bouillon: A Plastic Web Site, Plastic Services for Mobile Devices (PSMD), Workshop hel in con- junction with Interact’05, pp. 1-3, Rome, 2005 . [Balme et al., 2004] Balme, L., Demeure, A., Barralon, N., Coutaz, J. and Calvary, G., CAMELEON-RT: A Software Architecture Reference Model for Distributed, Migratable, and Plastic User Interfaces, In EUSAI 2004 - Ambient Intelligence - Second European Symposium, Markopoulos, P., Eggen, B., Aarts, E. and Crowley, J. (Eds.), pp. 291-302, Eindhoven, The Netherlands, November 8-11 2004. [Bastide et al., 2003] Bastide, R., Navarre, D. and Palanque, P., A Tool-Supported Design Framework for Safety Critical Interactive Systems, Interacting with Computers, Elsevier Science B., Vol. 15, No. 3, pp. 289-308, pp. 309-328, 2003. [Beck, 1993] Beck, E., A Survey of Experiences of Collaborative Writing, In Computer Supported Collaborative Writing, Sharples, M. (Eds.), Springer-Verlag, pp. 87-112, 1993. [Buvaĉ et al., 1995] Buvaĉ, S., Buvaĉ, V. and Mason, I.A., Metamathematics of contexts, Fundamenta Informaticae, 23 (3), pp. 412–419, 1995. [Buzzi et al., 2010] Buzzi, M. C., Buzzi, M., Leporini, B., Mori, G. and Penichet, V.,Accessing Google docs via screen reader, Proceedings of the 12th international conference on Computers helping people with special needs: Part I, pp. 92-99, Vienna (Austria), 2010. [Calvary et al., 2006] , G. Calvary, J. Coutaz, O. Daassi, V. Ganneau, L. Balme, A. Demeure and J.-S. Sottet, Métamorphose des IHM et Plasticité: Article de synthèse, Ergo’IA 2006, pp. 11-18, 2006. 173 174 REFERENCIAS [Calvary et al., 2004] G. Calvary, J. Coutaz, O. Dâssi, L. Balme and A. Demeure, Towards a New Generation of Widgets for Supporting Software Plasticity: The ”Comet”, In R. Bastide, P. A. Palanque and J. Roth (Eds.), EHCI/DS-VIS, pp. 306-324, 2004. [Calvary et al., 2003] Calvary, G., Coutaz, J., Thévenin, D., Limbourg, Q., Bouillon, L., Vanderdonckt, J., A Unifying Reference Framework for Multi-Target User Interfaces; Interacting with Computers, Elsevier Science B., Vol. 15, No. 3, 289-308, 2003 [Calvary et al., 2002] Calvary G., Coutaz J., Thevenin D., Limbourg Q., Souchon N., Bouillon L., Florins M. and Vanderdonckt J., Plasticity of User Interfaces: A Revised Reference Framework,TAMODIA 2002: Proceedings of the First International Workshop on Task Models and Diagrams for User Interface Design, pp. 127-134, 2002 [Calvary et al., 2001] G. Calvary, J. Coutaz and D. Thevenin, A Unifying Reference Framework for the Development of Plastic User Interfaces, Lecture Notes in Computer Science, Vol. 2254, pp. 173-194, 2001. [Cardoso and José, 2009] Cardoso J. and José, R., A Framework for Context-Aware Adaptation in Public Displays, Lecture Notes in Computer Science,Vol. 5872, pp. 118-127, Springer, 2009 [Cerratto and Rodrı́guez, 2002] Cerratto, T. and Rodrı́guez, H., Studies of ComputerSupported Collaborative Writing Implications for System Design, In Cooperative Systems Design, IOS Press, pp. 139-154, 2002. [Churchill et al., 2004] Churchill, E.F., Nelson, L., Denoue, L., Helfman, J., Murphy, P., Sharing multimedia content with interactive public displays: a case study, In: DIS 2004: Proc. of the 5th conference on Designing interactive systems, pp. 7–16. ACM, New York, 2004. [Coutaz and Calvary, 2008] Coutaz, J. and Calvary,G., Chapter 56. The Case for User Interface Plasticity, book The Human-Computer Interaction, Handbook: Fundamentals, Evolving Technologies, and Emerging Applications, Ed. Human Factors and Ergonomics, 2007. [Crease, 2001] M. Crease, A Toolkit of Resource-Sensitive, Multimodal Widgets, PhD Thesis, Department of Computing Science, University of Glasgow, 2001. [Decouchant, et al., 2013] Decouchant, D., Mendoza, D., Sánchez. G. and Rodrı́guez, J., Adapting groupware systems to changes in the collaborator’s context of use, Expert Syst. Appl. 40(11), pp. 4446-4462, 2013. [Demeure et al., 2005] Demeure, A., Balme, L., Calvary, G., and, Coutaz, J., CamNote: A Plastic Slides Viewer, Plastic Services for Mobile Devices (PSMD), Workshop hel in conjunction with Interact’05, pp. 1-2, Rome (Italy), 2005. [Derntl and Hummel, 2005] Derntl, M. and Hummel, K., Modeling Context-Aware e-Learning Scenarios, Third IEEE International Conference on Pervasive Computing and Communications Workshops (PERCOMW’05), IEEE Computer Society, pp. 337-342, Kauai Island, Hawaii (USA), March 2005. REFERENCIAS 175 [Dey et al., 2001] Dey, A., Abowd, G., Salber, D., A conceptual framework and a toolkit for supporting the rapid prototyping of context-aware applications, Hum.-Comput. Interact., Vol. 16, No. 2, pp. 97-166, December 2001. [Dourish and Bellotti, 1992] Dourish, P. and Bellotti, V., Awareness and Coordination in Shared Workspaces,Proceedings of the ACM Conference on Computer-Supported Cooperative Work CSCW’92 (Toronto, Ontario), 107-114. New York: ACM, pp. 107-114, 1992. [Dourish, 1996] Dourish, P., Open Implementation and Flexibility in CSCW Toolkits, PhD Thesis, Department of Computer Science, University of London, June 1996. [Ejigu et al., 2007] Ejigu, D., Scuturici, M. and Brunie, L., An Ontology-Based Approach to Context Modeling and Reasoning in Pervasive Computing, Pervasive Computing and Communications Workshops, IEEE International Conference on, IEEE Computer Society, pp. 14-19, White Plains, New York (USA), March 2007. [Gall and Hauck, 1997] Gall, U. and Hauck, F. J., Promondia: A Java-Based Framework for Real-time Group Communication in the Web, Computer Networks, Vol. 29, No. 8-13, pp. 917-926, 1997. [Gamma et al., 1995] Gamma, E., Helm, R., Johnson, R. and Vlissides, J., Desing Patterns: Elements of Reusable Object-Orient Software, Vol. 1, Addison-Wesley, Upper Saddle River NJ (USA), 1995. [Gauch, et al., 2007] Gauch, S., Speretta, M., Chandramouli, A. and Micarreli, User profiles for Personalized information Access, The Adaptive Web, Methods and Strategies of Web Personalization, Vol. 4321, pp. 54-89, Lecture Notes in Computer Science, Springer, 2007. [Gettys and Packard] Gettys J. and Packard K., The X Window System, ACM Transactions on Graphics, Vol. 5, No. 2, pp. 79-109, 1986. [Ghiani et al., 2009] Ghiani, G., Paternò, F., Santoro, C., and Spano, L. D. Ubicicero: A location-aware, multi-device museum guide, Interacting with Computers, Vol.21, num 4, pp.288–303, 2009. [Grolaux et al,. 2002] D. Grolaux, P. V. Roy and J. Vanderdonckt, FlexClock, a Plastic Clock Written in Oz with the QTk toolkit, Costin Pribeanu and Jean Vanderdonckt (Eds), TAMODIA, pp. 135-142, 2002. [Granados, 2011] Granados, L., Integración de los espacios de comunicación, producción y coordinación en un entorno cooperativo, Master thesis, Departament of Computation, Centro de Investigación y Estudios Avanzados del IPN, December, 2012. [Grudin, 1988] Grudin, J., Why CSCW Applications Fail: Problems in the Design and Evaluation of Organizational Intserfaces, In Proceedings of the Second Conference on ComputerSupported Cooperative Work (CSCW’88), ACM Press, pp. 85-93, Portland OR (USA), September 26-28 1988. 176 REFERENCIAS [Gutwin et al., 1995] Gutwin, C., Stark, G. and Greenberg, S., Support for workspace awareness in educational groupware. Proceeding CSCL ’95 The first international conference on Computer support for collaborative learning, Indiana (USA), pp.147-156, 1995. [Utwin et al., 1996] Gutwin, C., Greenberg, S., and Roseman, M., Workspace awareness support with radar views. In Conference companion on Human factors in computing systems: common ground, CHI ’96, New York, NY (USA), pp. 210–211, 1996. [Haake et al., 2010] Haake, J., Hussein, T, Joop, B., Lukosch, S., Veiel, D. and Ziegler, J., Modeling and exploiting context for adaptive collaboration, International Journal of Cooperative Information Systems, Vol. 19, Nos. 1 & 2, pp 71-120, World Scientific Publishing Company, 2010. [Henricksen et al., 2002] Henricksen, K., Indulska, J. and Rakotonirainy, A., Modeling Context Information in Pervasive Computing Systems, Pervasive Computing In Pervasive Computing, Vol. 2414, pp. 79-117, Springer-Verlag, August 2002. [Hussein et al., 2010] Hussein, T., Linder, T., Gaulke, W., and Ziegler, J., A framework and an architecture for context-aware group recommendations, In Kolf- schoten, G. L., Herrmann, T., and Lukosch, S. (Editors), CRIWG 2010 Collaboration and Technology - 16th International Conference, Lecture Notes in Computer Science, Vol. 6257, pp. 121–128, Maastricht, The Netherlands, September 20-23, Springer, 2010. [Jaimes and Sebe, 2005] Jaimes, A. and Sebe, N., Multimodal Human Computer Interaction: a survey, IEEE International Workhop on Human Computer Interaction in Conjuntion with ICCV 2005, pp. 1- 16, Beijing, China, 2005. [Kofod-Petersen and Cassens, 2006] Kofod-Petersen, A. and Cassens, J.,Using activity theory to model context awareness, Lecture Notes on Artificial Intelligence In Modeling and Retrieval of Context, Vol. 3946, pp. 1-17, Springer Verlag, 2006. [Kouadri and Brézillon, 2004] Kouadri, G. and Brézillon, P., Modeling Context-Based Security Policies with Contextual Graphs, Second IEEE Annual Conference on Pervasive Computing and Communications Workshops, IEEE Computer Society, pp. 28-32, Orlando, Florida (USA), March 2004. [Legin et al., 2005] Legin, A., Rudnitskaya, A., Seleznev, B., Vlasov, Yu., Electronic tongue for quality assessment of ethanol, vodka and eau-de-vie,, Analytica Chimica Acta, Vol. 534, pp. 129-135, April 2005. [Lucero et al., 2010] Lucero, A., Keranen, J., and Hannu, K. Collaborative Use of Mobile Phones for Brainstorming, In Proceedings of the 12th international conference on Human computer interaction with mobile devices and services, MobileHCI ’10, ACM, pp. 337-340, New York (USA), September 2010. REFERENCIAS 177 [Luyten et al., 2003] Luyten, K., Van Laerhoven, T., Coninx, K. and Van Reeth, F., Runtime transformations for modal independent user interface migration, Interacting with Computers, Elsevier Science B., Vol. 15, No. 3,329-347, 2003. [Myers, 2001] Myers, B. A.,Using Handhelds and PCs Together, Communication of the ACM, Vol. 44, No 11, pp. 34-41, November 2001. [Olivares, 2011] Olivares, A., ”Arquitectura para el soporte de contexto de uso en sistemas colaborativos, Master thesis, Departament of Computation, Centro de Investigación y Estudios Avanzados del IPN, December, 2011. [Oviatt, 1999] Oviatt, S.L., Ten Myts of Multimodal Interaction, Comm. ACM, pp. 74-81, 1999. [Paredes and Fonseca, 2010] Paredes, H. and Fonseca, B., PaperFlow/R: A cooperative environment for the conception and production of scientific publications, Proceedings of the 2010 14th International Conference on Computer Supported Cooperative Work in Design, CSCWD 2010, Shen, W., Gu, N., Lu, T., Barthès, Jean-Paul and Luo, J. (Eds.), IEEE, pp. 740-743, Shanghai (China), 2010. [Paterno and Mancini, 1997] Paterno, F., Mancini, C., Meniconi, S., ConcurTaskTrees: A Diagrammatic Notation for Specifying Task Models, In INTERACT ’97: Proceedings of the IFIP TC13 Interantional Conference on Human-Computer Interaction, pp. 362-369, 1997. [Paterno and Santoro, 2012] Paterno, F. and Santoro, C., A logical framework for multi-device user interfaces, In proceedings of the ACM SIGCHI Symposium on Engineering Interactive Computing Systems, Junqueiras Barbosa, S.D., Camposk J.C. Kazman, R. Palanque P.A., HArrison, M.D,Reeves, S., pp.4450, ACM Press,Oralando Fl, 2012. [Paterno et. al., 2008] Paterno, F. Santoro, C., Mäntyjärvy, J., Mori, G., Sansone, S., Authoring pervasive multimodal user interfaces, Int. J. Web Engineering and Technology, Vol. 4. No.2, pp. 235-243, 2008 [Prante et al., 2004] Prante, T., Streitz, N. A. and Tandler, P., Roomware: computers disappear and interaction evolves, Computer, Vol. 37, No. 12, pp. 47-54, 2004. [Pinelle et al, 2008] Pinelle, D., Stach, T. and Gutwin C., TableTrays: Temporary, reconfigurable work surfaces for tabletop groupware, Third IEEE International Workshop on Tabletops and Interactive Surfaces (Tabletop 2008), pp. 41-48, Amsterdam (The Netherlands), 2008. [Raskin, 1994] Raskin, J., Intuitive Equals Familiar, Communications of the ACM, Vol. 37, No 9, pp. 17-18, September 1994. [Rekimoto and Saitoh, 1999] Rekimoto J., Saitoh M., Augmented Surfaces: a Spatially Continuous Work Space for Hybrid Computing Environments, In Proceedings of Conference on Human Factors in Computing Systems: The CHI is the Limit (CHI’1999), ACM Press, pp. 378-385, Pittsburgh PA (USA), May 15-20 1999. 178 REFERENCIAS [Rekimoto, 1997] Rekimoto, J., Pick and Drop: A Direct Manipulation Technique for Multiple Computer Environments. In Proc. of UIST97, ACM Press, pp. 31-39, 1997. [Romero et al., 2013] Romero, M., Mendoza, S., Sánchez, G., A framework for developing context-aware applications for co-located collaborative work, CCE, México, D.F. (México), September 30 - October-4, 2013. [Secretan et al., 2008] Secretan, J., Beato, N., D’Ambrosio, D., Rodriguez, A., Campbell, A. and Stanley, K.,Picbreeder: evolving pictures collaboratively online, Proceedings of the twenty-sixth annual SIGCHI conference on Human factors in computing systems, pp. 17591768. Florence (Italy), 2008 [Sendin et al., 2008] Sendin, M., López-Jaquero, V., Collazos, C. A., Collaborative Explicit Plasticity Framework: a Conceptual Scheme for the Generation of Plastic and Group-Aware User Interfaces , Journal of Universal Computer Science, Vol. 14, No. 9, pp. 1447-1462, 2008. [Sendı́n and Collazos, 2006] Sendı́n, M. and Collazos, C. A., Implicit Plasticity Framework: A Client-Side Generic Framework for Collaborative Activities., Y. A. Dimitriadis, I. Zigurs and E. Gómez-Sánchez (Eds), CRIWG, pp. 219-227, 2006. [Sendı́n and Lorés, 2004] Sendı́n, M. and Lorés, J., Plasticity in mobile devices: a dichotomic and semantic view, Workshop Engineering Adaptive Web, pp. 58-67, 2004. [Serafini and Bouquet, 2004] Serafini, L. and Bouquet, P., Comparing formal theories of context in AI, Artificial Intelligence, Vol. 155, pp. 41-67, Elsevier Science Publishers Ltd, May 2004. [Sohlenkamp et al., 2000] Sohlenkamp, M., Mambrey, P., Prinz, W., Fuchs, L., A. Syri, Pankoke-Babatz, U., Klöckner, K., Kolvenbach, S.,Supporting the Distributed German Government with POLITeam, Multimedia Tools and Applications, Vol. 12, No.1, pp. 39-58, 2000. [Stan et al., 2008] Stan, J., Egyed-zsigmond, E., Joly A. and Maret P., A User profiles Ontology for Situation-Aware Social Networking, 3rd Workshop on Artificial Intelligence Techniques for Ambient Intelligence (AITAmI2008), Augusto, J., Shapiro, D. and Aghajan H. (Eds.),pp. 1-5, Patras (Greece), 2008. [Stanciulescu et al., 2005] Stanciulescu, A., Limbourg, Q., Vanderdonckt, J., Michotte, B., and Montero, F. A transformational approach for multimodal web user interfaces based on UsiXML, In ICMI ’05: Proceedings of the 7th international conference on Multimodal interfaces, pp. 259-266, 2005. [Streitz et al., 1999] Streitz, N., Geibler, J., Holmer, T., Konomi, S., Möller-Tomfelde, C., Reischl, W., Rexroth, P., Seitz, P., Steinmetz, R. i-LAND: An interactive Landscape for Creativity and Innovation, In Proc. of the ACM conf. On Human Factors in Computer Human Interaction (CHI99), ACM, pp. 120-127, 1999. REFERENCIAS 179 [Tandler et al., 2001] Tandler, P., Prante, T., Müller-Tomfelde C., Streitz, N., and Steinmetz, R., Connectables: dynamic coupling of displays for the flexible creation of shared workspaces, UIST 2001: Proceedings of the 14th annual ACM symposium on User interface software and technology, ACM, pp. 11-20, New York, NY (USA), 2001. [Thevenin and Coutaz, 1999] D. Thevenin and J. Coutaz, Plasticity of User Interfaces:Framework and Research Agenda, In Proceedings of Interact’99, vol. 1, Edinburgh: IFIP, IOS Press, pp. 110-117, 1999. [Vanderdonckt, et al., 2008] Vanderdonckt, J., Calvary, G., Coutaz, J., and Stanciulescu, A., Chapter 4: Multimodality for Plastic User Interfaces: Models, Methods, and Principles, Multimodal User Interfaces, Signals and Communication Technology Series, pp. 61-84, Springer, Berlin-Heidelberg (Germany), 2008. [Vanderdonckt and González-Calleros, 2008] Vanderdonckt, J. and González-Calleros, J., Task-Driven Plasticity: One Step Forward with UbiDraw, pp. 181-196, In Proc. of the 2nd Conference on Human-Centered Software Engineering and 7th International Workshop on Task Models and Diagrams, Springer-Verlag LNCS 5247, Pisa (Italy), 2008. [Wei et al., 2009] Wei, R., Zhang, R., Zhao C., Yue. D. and Li, L., Design and implementation of scientific collaborative editing environment on chemistry, Eighth International Conference on Grid and Cooperative Computing (GCC),pp. 188-92, Lanzhou, Gansu (China), 2009. [Yongwu and Haake, 1999] Yongwu, M. and Haake, J., Supporting Concurrent Design in SCOPE, In The International Journal of Concurrent Engineering Research and Applications, Vol. 7, No. 1, pp. 55-65, Technomic Publishing Co., Inc., March 1999.
Documentos relacionados
XARE: Marco de desarrollo para sistemas colaborativos conscientes
CENTRO DE INVESTIGACIÓN Y DE ESTUDIOS AVANZADOS DEL INSTITUTO POLITÉCNICO NACIONAL UNIDAD ZACATENCO DEPARTAMENTO DE COMPUTACIÓN
Más detalles