Download Modelos: MVC, PAC

Document related concepts
no text concepts found
Transcript
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
Conocimiento
del dominio
Control del secuenciamiento de las
acciones del usuario
Control de los
objetos de
interacción
Control de los
recursos E/S Control de los
dispositivos físicos
Incremento en el
nivel de abstracción
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
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)
Protocolo de Comunicación con el Núcleo
Funcional
Núcleo
Funcional
Protocolo de Comunicación con la Componente de Presentación
Control
del Diálogo
Controlador del Diálogo
Componente Interactiva (Interfaz)
Sistema Interactivo
Componente de
Presentación
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
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
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
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
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
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
Control del
Diálogo
Presentación
Modelo de Seeheim

Componente de Presentacion





Control del diálogo



Presentación externa de la interfaz
Genera las imágenes
Recibe los eventos de input (‘tokens’)
Procesamiento léxico
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
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

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
Modelo Arch
Entidades del dominio visibles
y manipulables por el operador
Secuenciamiento tareas, consistencia
entre múltiples vistas, correspondencia
entre formalismos del NF y la IU
Diálogo
Objetos del dominio
Aplicación Virtual
(Adaptador dominio)
OI independientes del
toolkit utilizado
Objetos de Presentación
Toolkit Virtual
(Adaptador presentación)
Objetos de
Interacción
Objetos del dominio
Interfaz con
la Aplicación
‘Semantic enhancement’,
implementación protocolo NF- CD
Presentación
(Toolkit Real)
Correspondencia entre
OI virtuales y reales
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” (‘domainknowledge 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
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
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)
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


Cada thread de la actividad del operador puede tener
asociado distintos agentes


Apto para groupware
Un thread demasiado complejo puede ser representado
por múltiples agentes cooperantes
Fácilmente implementados en términos de lenguajes OO
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
MVC (Model-View-Controller)

Modelo


Vistas


Semántica de la aplicación
Aspectos gráficos
 Disposición espacial, subvistas, OI compuestos
Controlador

Interfaz entre los modelos y vistas con los dispositivos de
input
Vista
Modelo
Controlador
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
V
C
V
Modelo
C
V
C
MVC (Model-View-Controller)

Ciclo de interacción estandar:





El operador manipula un dispositivo de input
El controlador notifica al modelo
El modelo actualiza su estado
El modelo propaga el cambio a sus vistas dependientes
Las vistas actualizan la pantalla
 Las vistas pueden consultar al modelo por información adicional
1.
2.
3.
4.
5.
Vista
Modelo
Controlador
Ejemplo
MVC: Ejemplo

Modelo
chips
Circuit
wires
0..*
Chip
0..*
Wire
MVC: Ejemplo

Button
Vistas
BasicView
TextItem
ChipView
View
WireView
ListView
CompositeView
LayoutView
GlobalView
ChipText
0..*
0..*
0..*
MVC: Ejemplo

Controladores
WireController
ChipController
Controller
LayoutController
TextItemController
ButtonController
ChipTextController
MVC: Ejemplo

Configuración de instancias
C
C
ChipView
LayoutView
GlobalView
C
WireView
ChipView
C
Circuito
ChipText
C
ChipText
C
ListView
Chip
Chip
Button
C
Button
C
Wire
Button
C
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
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
PAC (Presentation-AbstractionControl)

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
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
A P
 3.3. Si la Abstracción no lo puede tratar, lo envía al
C
Control del agente padre
P
A
C
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
A P
sus agentes hijos
C
P
A
C
A
P
C
A
P
C
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 MVC
Abstracción
Presentación
Control
Vista
Modelo
Controlador
PAC (Presentation-AbstractionControl)

Un SI es estructurado recursivamente como una
jerarquía de agentes

La jerarquía puede ser utilizada para definir niveles de
refinamiento o relaciones
Nivel superior:
P
A
P: presentación global
A: núcleo funcional
C: control global de diálogo
C
P
A
P
A
C
C
C
..........
Niveles intermedios:
Representación de relaciones
(composición, consistencia
múltiples vistas),
niveles de abstracción
Niveles inferiores: partes básicas
P: forma gráfica
A: concepto semántico
C: consistencia, estado local,
intercambio datos
P
A
P
A
C
P
A
C
P
A
C
PAC: Ejemplo
Circuito
P
A
Control
global
C
Control
botones
P
A
C
Chip
Chip
Wire
P
A
C
P
A
P
A
C
Botones
P
A
C
P
A
C
C
Lista
P
A
C
Chip
P
A
P
A
C
C
Chip
Wire
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
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

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
PAC-Amodeus
Controlador de Diálogo
Objetos del Dominio
Adaptador del
Núcleo Funcional
Objetos de Presentación
Agentes PAC
Componente de
Presentación
OI abstractos
Objetos del
Dominio
Núcleo Funcional
Objetos de
Interacción
Toolkit Interacción
OI reales
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
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
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.
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