45
Construcción de Interfaces a Usuario: Control del Diálogo

Construcción de Interfaces a Usuario: Control del Diálogo

Embed Size (px)

Citation preview

Page 1: Construcción de Interfaces a Usuario: Control del Diálogo

Construcción de Interfaces a Usuario: Control del Diálogo

Page 2: Construcción de Interfaces a Usuario: Control del Diálogo

Niveles de Abstracción de un SI

Núcleo Funcional

Control del Diálogo

Objetos de Interacción

Sistema de Ventanas

Drivers

Control de losdispositivos físicos

Control de losrecursos E/S

Control de losobjetos de interacción

Control del secuen-ciamiento de las acciones del usuario -

Conocimiento del dominio

Incremento en elnivel de abstracción

Page 3: Construcción de Interfaces a Usuario: Control del Diálogo

Controlador del Diálogo Nivel intermedio entre núcleo funcional y los

OI Provee:

Estructura arquitectónica, posibilitando un desarrollo incremental

Reglas de correspondencia y transformaciones entre el núcleo funcional y los OIs

Control del comportamiento dinámico de una interfaz

Page 4: Construcción de Interfaces a Usuario: Control del Diálogo

Controlador de Diálogo Esencialmente, es el núcleo central de la interfaz

Administra las relaciones entre el núcleo funcional y la presentación (compuesta por OIs)

Núcleo Funcional

Controldel Diálogo

Componente dePresentación

Protocolo de Comuni-cación con el Núcleo Funcional

Protocolo de Comuni-cación con la Compo-nente de Presentación

Controlador del Diálogo

Sistema Interactivo

Componente Interactiva (Interfaz)

Page 5: Construcción de Interfaces a Usuario: Control del Diálogo

Controlador de Diálogo Responsabilidades

Mantener correspondencia entre los objetos semánticos y los OIs

Relaciones 1:1, 1:N o N:1 Mantener las relaciones entre distintos OIs Mantener una representación dinámica del estado del

diálogo entre el núcleo funcional y la presentación Definir protocolos de comunicación:

Controlador de Diálogo (CD) - Núcleo Funcional (NF)

Adecuado a la forma en que está modelado el NF Controlador de Diálogo (CD) - Presentación (P)

Adecuado a la forma de la Presentación Suelen ser dependientes de un toolkit particular

Page 6: Construcción de Interfaces a Usuario: Control del Diálogo

Controlador de Diálogo Características

Suele administrar las dependencias del estilo y formas utilizadas en la presentación ( “medio” de la presentación)

El NF es independiente del medio utilizado Los OI son dependientes del medio utilizado

Pueden requerirse múltiples interacciones del operador para generar un único comando al NF

El CD debe recolectar los componentes del comando, y enviarlo al NF cuando el comando está completo

Debe mantener la consistencia entre distintas vistas de un mismo concepto semántico

Page 7: Construcción de Interfaces a Usuario: Control del Diálogo

Protocolo entre el CD y el NF Consideraciones en el diseño del protocolo:

Nivel de abstracción de los datos transferidos Datos en niveles léxicos (ej. Pixels) o semánticos

(ej. Registros) El nivel de abstracción debiera ser definido por el

NF Componente que contendrá los datos a intercambiar

Datos contenidos en el NF, el CD o compartidos entre ambos

Estrategia temporal del intercambio Sincrónica Asincrónica

Page 8: Construcción de Interfaces a Usuario: Control del Diálogo

Organización del software Principales formas de organización:

Organización en capas o niveles Utilizada en los primeros SI

Descentralización: “sistemas multiagentes” Modelos arquitectónicos

Determinan la forma de organizar el software de una aplicación

Objetivo: identificar las componentes en las que deben estar localizadas las distintas partes de la funcionalidad

Permite diseñar en términos de modularización, reusabilidad, extensibilidad, etc.

Algunos modelos arquitectónicos de HCI: Seeheim MVC PAC Arch PAC/Amodeus

Page 9: Construcción de Interfaces a Usuario: Control del Diálogo

Principio de Separación del Diálogo Las decisiones de diseño que afecten

solamente a la interfaz deben estar aisladas de aquellas que afecten solamente la estructura de la funcionalidad del sistema

Page 10: Construcción de Interfaces a Usuario: Control del Diálogo

Modelo de Seeheim Resultado del 1er. Workshop sobre Herramientas para

Software de Interfaces (Seeheim, Alemania, 1-3/11/83) Los distintos niveles de un SI son tratados como capas físicas

Nivel de presentación: agrupa el sistema de ventanas y los OI Nivel de control del diálogo Interfaz con la aplicación

Interfaz con la aplicación

PresentaciónControl delDiálogo

Page 11: Construcción de Interfaces a Usuario: Control del Diálogo

Modelo de Seeheim Componente de Presentacion

Presentación externa de la interfaz Genera las imágenes Recibe los eventos de input (‘tokens’) Procesamiento léxico

Control del diálogo Procesamiento sintáctico de los ‘tokens’ Debe mantener un estado

Interfaz con la aplicación Define la interfaz entre la componente interactiva y

el resto del software Provee el feedback semántico para el chequeo de la

validez de los inputs

Page 12: Construcción de Interfaces a Usuario: Control del Diálogo

Modelo de Seeheim Basado en un enfoque lingüístico

Aspectos semánticos Núcleo Funcional Aspectos sintácticos Control del diálogo Aspectos léxicos Presentación Nociones bien comprendidas por los ingenieros de sistemas

Enfoque similar al diseño de compiladores Se intentaba utilizar las ideas sobre la generación

automática de compiladores para generar interfaces automáticamente

Solamente adecuado para un tratamiento secuencial de las expresiones de input (al igual que los compiladores)

No adecuado para interactividad Modelo adecuado para enseñar y/o describir el diseño de IU

Utilizado como base para los siguientes modelos Pobre feedback semántico Dependencias entre el diálogo y las otras componentes

Page 13: Construcción de Interfaces a Usuario: Control del Diálogo

Modelo Arch Evolución del modelo de Seeheim

Desarrollado en un workshop integrado por desarrolladores de interfaces

Intenta solucionar los problemas de dependencias entre componentes del modelo de Seeheim

En Seeheim, el reemplazo de un toolkit por otro puede requerir la re-escritura de todo el diálogo

Igualmente, existen dependencias entre la aplicación y el diálogo

Se proveen dos adaptadores para amortiguar tales dependencias:

Adaptador de Presentación o Toolkit Virtual Adaptador del Dominio o Aplicación Virtual Proveen reusabilidad, modificabilidad, portabilidad

Absorben los efectos de los cambios en sus vecinos

Page 14: Construcción de Interfaces a Usuario: Control del Diálogo

Modelo Arch

Interfaz con la Aplicación

Aplicación Virtual(Adaptador dominio)

Diálogo

Toolkit Virtual(Adaptador presentación)

Presentación(Toolkit Real)

Objetos del dominio

Objetos del dominio

Objetos de Presentación

Objetos de Interacción

Entidades del dominio visibles y manipulables por el operador

Secuenciamiento tareas, consistencia entre múltiples vistas, correspondencia

entre formalismos del NF y la IU

OI independientes del toolkit utilizado

Correspondencia entre OI virtuales y reales

‘Semantic enhancement’, implementación protocolo NF- CD

Page 15: Construcción de Interfaces a Usuario: Control del Diálogo

Modelo Arch/Slinky La introducción de nuevas capas puede producir

mermas en el rendimiento de la aplicación Portabilidad, Modificabilidad vs. Eficiencia “Delegación de conocimiento del dominio” (‘domain-

knowledge delegation’) Incluir conocimiento del NF en la IU

Reduce tráfico de datos entre componentes Adecuado para aplicaciones distribuidas

Modelo Arch/Slinky Las distintas funcionalidades de cada componente

pueden “desplazarse”a otras componentes Pueden comprimirse componentes

ej. FileSelectionBox, rutina provista por muchos toolkits

Page 16: Construcción de Interfaces a Usuario: Control del Diálogo

Modelos Multiagentes El SI es estructurado como una colección de entidades o

agentes especializados que producen y reaccionan ante eventos

Los aspectos de presentación, control del diálogo y semántica de la aplicación son separados dentro de cada agente

Los distintos modelos difieren en la forma en que es realizada esta separación

Cada agente puede encargarse de una parte de la funcionalidad de la interacción, en un nivel de abstracción dado

Los agentes reaccionan a determinados fenómenos externos (estímulos), produciendo nuevos estímulos

Algunas arquitecturas multiagentes: Modelos: MVC, PAC, ALV, CNUCE Toolkits: Interviews, Aïda

Page 17: Construcción de Interfaces a Usuario: Control del Diálogo

Modelos Multiagentes Agente: sistema completo de procesamiento

de información Incluye:

Receptores y transmisores de eventos Un estado interno

Procesamiento cíclico: Recepción de un evento de input Actualización de su estado interno Puede producir otros eventos

Pueden comunicarse directamente con otros agentes (incluyendo al operador)

Page 18: Construcción de Interfaces a Usuario: Control del Diálogo

Modelos Multiagentes Beneficios:

Los agentes definen la unidad de modularidad, paralelismo y distribución

Puede modificarse el comportamiento de un agente sin afectar al resto del sistema

Pueden ejecutarse los agentes en distintos procesadores

Apto para groupware Cada thread de la actividad del operador puede

tener asociado distintos agentes Un thread demasiado complejo puede ser

representado por múltiples agentes cooperantes Fácilmente implementados en términos de lenguajes

OO

Page 19: Construcción de Interfaces a Usuario: Control del Diálogo

MVC (Model-View-Controller) Desarrollado por Smalltalk (1980) Idea general: separar la presentación (‘View’),

el manejo de las acciones del usuario (‘Controller’) y la semántica de la aplicación (‘Model’)

Objetivos: Reutilizar vistas y controladores existentes con

distintos modelos Proveer distintas vistas de un mismo modelo

Las vistas están altamente relacionadas con los controladores

Page 20: Construcción de Interfaces a Usuario: Control del Diálogo

MVC (Model-View-Controller) Modelo

Semántica de la aplicación Vistas

Aspectos gráficos Disposición espacial, subvistas, OI compuestos

Controlador Interfaz entre los modelos y vistas con los

dispositivos de inputVista

Controlador

Modelo

Page 21: Construcción de Interfaces a Usuario: Control del Diálogo

MVC (Model-View-Controller) Cada par Vista-Controlador tiene un Modelo;

un Modelo puede tener varios pares asociados Las vistas y controladores conocen explícitamente a

su modelo, pero los modelos no conocen sus vistas Los cambios en los modelos son propagados a sus

objetos dependientes (ej. vistas) utilizando un protocolo estandar

Modelo

V

C

V

C

V

C

Page 22: Construcción de Interfaces a Usuario: Control del Diálogo

MVC (Model-View-Controller) Ciclo de interacción estandar:

1. El operador manipula un dispositivo de input 2. El controlador notifica al modelo 3. El modelo actualiza su estado 4. El modelo propaga el cambio a sus vistas dependientes 5. Las vistas actualizan la pantalla

Las vistas pueden consultar al modelo por información adicional

Vista

Controlador

Modelo

Page 23: Construcción de Interfaces a Usuario: Control del Diálogo
Page 24: Construcción de Interfaces a Usuario: Control del Diálogo

Ejemplo

Page 25: Construcción de Interfaces a Usuario: Control del Diálogo

MVC: Ejemplo Modelo

Circuit

Chip Wire

wireschips

0..* 0..*

Page 26: Construcción de Interfaces a Usuario: Control del Diálogo

MVC: Ejemplo Vistas

GlobalView

LayoutView

ListView

Button

ChipText

WireView

ChipView

View

CompositeView

BasicViewTextItem

0..*0..*

0..*

Page 27: Construcción de Interfaces a Usuario: Control del Diálogo

MVC: Ejemplo Controladores

Controller

ChipController

WireController

LayoutController

TextItemController

ButtonController

ChipTextController

Page 28: Construcción de Interfaces a Usuario: Control del Diálogo

MVC: Ejemplo Configuración de instancias

Circuito

Wire

Chip Chip

GlobalView

LayoutView

ListView

ChipView

ChipView

WireView

ChipText

ChipText

Button

Button

Button

C

C

C

C

CC

C

C

C

Page 29: Construcción de Interfaces a Usuario: Control del Diálogo

MVC (Model-View-Controller) Inconvenientes:

Las vistas y controladores están altamente relacionados

Pueden existir complejidades con: Controladores con sub-controladores Modelos con sub-modelos Vistas con sub-vistas

Control entre distintas vistas incluido en el modelo

Page 30: Construcción de Interfaces a Usuario: Control del Diálogo

Model-View Motivado por las dificultades en separar las

vistas y controladores en MVC Andrew, InterViews

Objetivo principal: soportar múltiples vistas de los mismos datos

Requiere solamente cambiar las vistas, para ver los datos diferentemente

Page 31: Construcción de Interfaces a Usuario: Control del Diálogo

PAC (Presentation-Abstraction-Control) Cada agente define 3 aspectos o “facetas”:

Presentación: comportamiento perceptible Abstracción: semántica (Núcleo Funcional) Control:

Vincula una abstracción con una presentación Controla el comportamiento de la abstracción y la

presentación Mantiene un estado local

Permite implementar diálogo multithread Administra las relaciones con otros agentes

Abstracción Presentación

Control

Page 32: Construcción de Interfaces a Usuario: Control del Diálogo

PAC Ciclo de interacción estandar

1. La Presentación recibe un evento del usuario 2. Informa al Control del evento recibido 3. El Control trata el evento recibido

3.1. Si es un feedback léxico, el Control actualiza la Presentación

3.2. Si la Abstracción puede tratar el mensaje, se lo envía para su procesamiento

3.3. Si la Abstracción no lo puede tratar, lo envía al Control del agente padre

A P

C

A PC

Page 33: Construcción de Interfaces a Usuario: Control del Diálogo

PAC Ciclo de interacción estandar

1. El Control recibe un evento de su control padre 2. El Control trata el evento recibido

3.1. Si corresponde, actualiza la Presentación (enviandole un mensaje)

3.2. Si corresponde, propaga el evento a los controles de sus agentes hijos

A P

C

A PC

A PC

A PC

Page 34: Construcción de Interfaces a Usuario: Control del Diálogo

Diferencias MVC - PAC El modelo de MVC se corresponde con la abstracción

PAC La vista y el controlador de MVC se corresponden

con la presentación de PAC El control de PAC no tiene correspondencia directa

en MVCAbstracción Presentación

Control

Vista

Controlador

Modelo

Page 35: Construcción de Interfaces a Usuario: Control del Diálogo

PAC (Presentation-Abstraction-Control) Un SI es estructurado recursivamente como

una jerarquía de agentes La jerarquía puede ser utilizada para definir niveles

de refinamiento o relacionesA P

C

A PC

A PC

A PC

A PC

A PC

A PC

. . . . . . . . . .

Nivel superior:P: presentación globalA: núcleo funcional

C: control global de diálogo

Niveles inferiores: partes básicasP: forma gráfica

A: concepto semánticoC: consistencia, estado local,

intercambio datosNiveles intermedios:Representación de relaciones (composición, consistencia

múltiples vistas), niveles de abstracción

Page 36: Construcción de Interfaces a Usuario: Control del Diálogo

PAC: Ejemplo

A PC

A PC

A PC

A PC

A PC

A PC

A PC

Chip Chip Wire

Lista

Control botones

A PC

A PC

A PC

Botones

Control global

Circuito

Wire

Chip Chip

Page 37: Construcción de Interfaces a Usuario: Control del Diálogo

Inconvenientes modelos multiagentes Dificultades para diseñar la estructura de

agentes Problemas para obtener portabilidad

Es dificil localizar todos los lugares donde son necesarias modificaciones

No existen muchos frameworks disponibles comercialmente

A excepción de MVC

Page 38: Construcción de Interfaces a Usuario: Control del Diálogo

Modelos mixtos Intentan combinar las ventajas provistas por

los modelos basados en capas y los modelos multiagentes

Portabilidad de los sistemas basados en capas Extensibilidad de los sistemas multiagentes PAC/Amodeus

Page 39: Construcción de Interfaces a Usuario: Control del Diálogo

PAC/Amodeus Adopta los mismos componentes del modelo

Arch El controlador de diálogo es descompuesto en

un conjunto de agentes PAC El estado de la interacción es distribuido entre estos

agentes

Page 40: Construcción de Interfaces a Usuario: Control del Diálogo

PAC-Amodeus

Adaptador del Núcleo Funcional

Núcleo Funcional Toolkit Interacción

Componente de Presentación

OI abstractos

OI reales

Controlador de Diálogo

Agentes PACObjetos de Presentación

Objetos de Interacción

Objetos del Dominio

Objetos del Dominio

Page 41: Construcción de Interfaces a Usuario: Control del Diálogo

Heurísticas El diseño de una jerarquía de agentes no es sencillo Los implementadores de modelos arquitectónicos suelen

proveer un conjunto de heurísticas ej. PAC/Amodeus

Modelar una ventana principal como un agente Utilizar un agente para mantener consistencia visual entre

múltiples vistas Modelar la paleta de un editor como un agente Modelar el espacio de trabajo de un editor como un agente Modelar un concepto complejo como un agente Introducir un agente para sintetizar acciones distribuidas

sobre múltiples agentes Introducir un agente para mantener una relación

semántica entre conceptos incluidos en distintas ventanas En general, estas reglas se derivan de la experiencia

adquirida en el desarrollo de aplicaciones

Page 42: Construcción de Interfaces a Usuario: Control del Diálogo

Otros servicios provistos Undo / Redo

Necesitan mantener una historia de la interacción El ‘undo’ de una acción semántica es posible si el NF

provee servicios para ello El ‘undo’ de una acción sintáctica es posible si los OI

proveen servicios para ello. La semántica de ‘undo’/’redo’ depende del tamaño

máximo de la pila conteniendo la historia

Page 43: Construcción de Interfaces a Usuario: Control del Diálogo

Otros servicios provistos Cut, Copy & Paste

Pueden corresponder: A un único SI A varias instancias de un mismo SI A distintos SI

Los sistemas de ventanas suelen definir un formato para la transferencia de datos entre aplicaciones

Estos datos deben ser convertidos por la aplicación generadora e interpretados por la aplicación recipiente

Deben proveerse mecanismos de cheueo y ‘recasting’de datos.

Page 44: Construcción de Interfaces a Usuario: Control del Diálogo

Otros servicios provistos Ayudas

Estas facilidades pueden estar disponibles local o globalmente

Ayudas dinámicas Requieren un modelo del funcionamiento del SI y

del operador Requiere acceder al estado del SI

Ayudas estáticas Mas sencillas de implementar Generalmente, no necesitan cálculos

Page 45: Construcción de Interfaces a Usuario: Control del Diálogo