Página principal

El diseño Última modificación: 02/05/2002 Objetivos 3 Introducción 4


Descargar 266.68 Kb.
Página4/5
Fecha de conversión18.07.2016
Tamaño266.68 Kb.
1   2   3   4   5

Figura 12 Red de interadores para controlar iconos

En la Figura 13 se observa cómo se pueden especificar mediante lógica modal el modelo de interador. El concepto de estado se recoge en la colección de atributos, mientras que la interacción se refleja en la sección de acciones disponibles en el entorno para su manipulación. Cada acción o componente del estado posee calificadores, indicando si posee apariencia gráfica (vis: visual), o limitación en cuanto a su utilización por el usuario (any: cualquier modali­dad).



interactor button

attributes

vis


selected : B // botón seleccionado o no

vis


enabled : B // botón habilitado o no

actions

any


select

any


toggle

axioms


[1] enable selected = B [select] selected = B

[2] enabled = B [toggle] enabled = B

[3] per(select) enabled

Figura 13 Especificación de un botón

Podemos encontrarnos axiomas con predicados de la forma "P  [A] Q" , de modo que si se satisface P, cuando se realice la acción A, Q será cierto. Otro operador, per(A) denota permiso para que la acción A pueda ocurrir, mientras que obl(A) indica que esa acción obligatoriamente debe ocurrir.

Modelos del diálogo

En el diseño de sistemas interactivos, existen muchos aspectos a considerar, el contexto organizacional, los tipos de usuarios, los dispositivos de comunicación, los estilos de interacción, la influencia de la aplicación subyacente, etc. Sin embargo, un aspecto fundamental en estos sistemas es la estructura del diálogo, la descripción de la comunicación de cada participante. Uno de los componentes cruciales en los sistemas interactivos es la descripción del diálogo. Su complejidad y naturaleza dinámica hace aconsejable la utilización de un modelo que permita su correcta especificación.



Gramáticas

Las gramáticas nos permiten describir secuencias, elección e iteracción como elementos básicos del proceso del diálogo. Se puede utilizar herramientas tales como lex&yacc para obtener un prototipo de la comunicación. Las gramáticas describen el diálogo como reglas de producción. BNF enfatiza la relación entre sintaxis y las acciones necesarias para realizar una orden. Una gramática basada en producciones describe un lenguaje como un conjunto de reglas que especifican los literales correctos en el lenguaje. La gramática consiste en:



  • Símbolos terminales (palabras reservadas del lenguaje). Representan acciones que el usuario tienen que aprender y recordar.

  • Símbolos no terminales. Representan conjuntos de acciones agrupadas para realizar una actividad/tarea.

  • Metasímbolos. ::= (definición), | alternancia, () agrupacion, [ ] opcional

Este método es muy adecuado para estilos de diálogo basados en órdenes. Una extensión de este modelo (las gramáticas multi–party) permite identificar al participante que actúa en la interacción (U: usuario, C: computadora):

::=

::= LOGIN

::= HELLO []

Sin embargo, uno de los mayores inconvenientes que posee es que no permite representar conceptos sensibles al contexto, junto a su dificultad para su comprensión con especificaciones largas.



Diagramas de transición de estados (STN)

Ha sido uno de los primeros métodos utilizado para la descripción del diálogo. Con diagramas STN podemos expresar los posibles estados del sistema así como las transiciones entre ellos. El diagrama de transiciones está formado por nodos y enlaces. Los nodos representan los posibles estados del sistema. Los enlaces representan las posibles transiciones entre estados. Podríamos incluso identificar el actor que ha provocado la acción. Las acciones del usuario será aquellas transiciones realizadas directamente por la participación directa del usuario.



U: Usuario

S: Sistema

T: transición temporal



Figura 14 STN de una lámpara

Este tipo de especificación muestra el flujo de acciones y determina el estado tras una acción. Con el mismo, podemos describir las posibles acciones de usuario, así como los estados críticos del sistema. Por ejemplo, la descripción del mecanismo de encendido de una lámpara se puede describir del siguiente modo.

Se puede utilizar para la descripción de mecanismos de interacción más complejos, como por ejemplo, para la especificación de un portapapeles.

Sin embargo, un problema asociado a este tipo de descripción es la explosión combinatoria de estados en cuanto existan diálogos concurrentes. Por ejemplo, las diferentes opciones para el estilo del texto (itálica, negrita, subrayado, etc.) provocan una explosión combinatoria de 2n estados, con n siendo el número de opciones.





Figura 15 Descripción de un portapapeles

Redes de Petri

Si consideramos los sistemas interactivos como un caso particular de sistemas reactivos, podríamos utilizar todas las técnicas y herramientas que se disponen para la especificación y diseño de sistemas concurrentes. Existen abundantes referencias de la utilización de Redes de Petri, CSP o LOTOS para la descripción de procesos, sincronizaciones, eventos y no determinismo. Dentro de todos estos formalismos uno de los mas usados a la hora de especificar la naturaleza concurrente de un sistema interactivo son las Redes de Petri.





Figura 16 Red de Petri para las opciones del texto

Es uno de los formalismos más antiguos en computación para una representación gráfica de actividades concurrentes. En un STN, el sistema se encuentra en un estado en cualquier instante y se puede simular el comportamiento siguiendo los arcos. La red de Petri es similar, pero con la diferencia que puede tener varios estados al mismo tiempo. Una red de Petri se compone de lugares (círculos) transiciones (rectángulos) y marcas (que pueden cambiar de lugar mediante una transición). Por ejemplo, para especificar la concurrencia de opciones (negrita, cursiva) para el texto se puede realizar de forma sencilla con redes. Las acciones del usuario están explícitamente recogidas así como el estado del sistema (mediante las Marcas).

Los lugares elípticos representan las acciones del usuario. La regla de las redes de Petri es que si todos los lugares de una transición poseen Marca (están Marcados), la transición se puede disparar. En este ejemplo, la acción del usuario “pulsar negrita” provocará la transición T1 que desactiva la negrita. La siguiente pulsación del usuario “pulsar negrita” provocaría que en este caso, se disparase la transición T2. Se puede describir arcos inhibitorios, como por ejemplo, no puede suceder T3 mientras que esté el contador en Negrita (on).

Diseño orientado a objetos

Los interfaces de usuario son muy adecuados para un desarrollo basado en el paradigma de objetos [COX93], ya que el sistema está formado por componentes de naturaleza manipuladora (interactiva) con representación gráfica y en la que existe una gran vinculación (mediante herencia) de unos componentes con otros.

Una estructura típica del modelo conceptual es un conjunto de objetos capaces de realizar una serie de acciones (modelo objeto–acción).


  • Objetos: Un objeto es un elemento de información sobre el que el usuario tiene algún control. El conjunto de objetos posee usualmente alguna estructura. Dicho conjunto es una visión abstracta de la información gestionada por el sistema (modelo).

  • Acciones: Una acción es una operación que el usuario puede realizar con un objeto. El conjunto de acciones define la capacidad funcional del sistema. El conjunto de acciones no tiene que ser necesariamente ortogonal al de los objetos. Estas acciones serán las tareas que debe realizar el usuario para manipular los objetos del dominio de la aplicación.

Ejemplo: Flexo. Un flexo dispone de una bombilla, un interruptor y una clavija de enchufe. El interruptor puede estar en una de dos posiciones (encendido o apagado), la clavija se puede conectar y desconectar a una base de enchufe. Cuando la clavija está conectada a una base en buen estado y el interruptor esta en la posición de encendido, la bombilla se ilumina.

Podemos identificar dos tipos de objetos: a) aquellos que aparecen en la comunicación entre el usuario y el sistema y que típicamente pertenecen a la interfaz (objetos de control), y b) los que son propios de la aplicación (objetos intrínsecos). Por ejemplo, una barra de iconos, una regla o una ventana son objetos intrínsecos con acciones propias (mover, ocultar, redimensionar, etc.) mientras que el registro de una persona es un objeto de control susceptible de aplicarle acciones del dominio de la aplicación (insertar, modificar, ver DNI, etc.). Para la descripción de los objetos y de las acciones podemos usar metáforas que ayuden a comprender su significado y utilización (ver capítulo ‘Metáforas, estilos y paradigmas’).

Para la especificación del sistema deberemos identificar tanto a los objetos como a sus acciones asociadas. Los objetos se describen identificando sus atributos más relevantes. Uno de los más importantes es su representación gráfica. Para describir las acciones se puede utilizar una notación de diálogo basada en diagramas de estado y lenguaje de órdenes (secuencia). El lenguaje de órdenes nos daría información necesaria acerca del protocolo (qué acción se realiza), mientras que el diagrama de estado indicaría cómo cambia el estado de los objetos con las modificaciones (cómo implementarlo).

Lenguaje de órdenes

En un sistema interactivo basado en objetos, podemos identificar un conjunto de órdenes que deben aparecer en el modelo para poder representar y manipular los objetos del interfaz de modo gráfico e interactivo. Alguna de ellas son:



  • Selección/deselección de un objeto

  • Búsqueda/Identificación de un objeto

  • Creación/eliminación de objetos

  • Mover/copiar objetos

  • Obtener/cambiar valores de los atributos del objeto

  • Visualización del objeto

Además podemos encontrarnos con objetos complejos que poseen acciones específicas:

  • Agrupación. Es un objeto formado por otros objetos. Se pueden ubicar y eliminar componentes así como conocer sus valores.

  • Colección. Es un objeto que contiene un número variable de objetos. Se pueden añadir nuevos objetos, eliminar, ordenar/clasificar, etc.

Lenguaje modal

Un modo es un estado (o conjunto de estados) en cual se puede realizar un conjunto de posibles tareas de interacción por el usuario [FOL90]. Ejemplos de diálogos modales son:



  • Estado en el cual se permite que un conjunto de órdenes se pueda aplicar únicamente al objeto/s seleccionado/s (modos sobre selecciones).

  • Estado en el cual se debe completar un cuadro de diálogo antes de hacer otra operación (ventana modal).

  • Estado en el cual se usa un programa externo para modificar un objeto (gráfico, diagrama, etc.).

Los modos pueden aparecer por la estructura que posea el lenguaje de órdenes. Las sintaxis del lenguaje puede tener las siguientes estructuras:

  1. Acción–Objeto. En primer lugar se identifica la acción a realizar y a continuación se aplica sobre el/los objeto/s. A nivel de sintaxis esto está asociado a la posibilidad de que existan producciones del tipo

O ::=  c   c

en las que el significado de ambas opciones sea diferente (=copiar, =borrar). En tal caso el lenguaje es modal, ya que la interpretación de una entrada depende del estado (previo) de la aplicación.



  1. Objeto–Acción. En este caso, primeramente se selecciona el objeto de interés al que se va a aplicar la acción. Se puede utilizar la selección múltiple. Esta sintaxis es especialmente adecuada para paradigmas basados en la manipulación directa, ya que primeramente se identifica el objeto sobre el que se quiere actuar.

Los modos pueden ser beneficiosos o perjudiciales según el uso que se haga de ellos. Los diálogos modales que no son perceptibles (visibles por el usuario) y que no tienen un significado coherente aumentan la probabilidad de error por parte del usuario y su dificultad de aprendizaje. Un dialogo modal bien diseñado deberá indicar claramente el modo actual (por ejemplo inserción/sobreescritura en un editor), suministrar información acerca de las órdenes disponibles y disponer de significados intuitivos para las acciones asociadas.

  1. Modelos abstractos

El estudio de los sistemas interactivos como sistemas reactivos permite estudiar propiedades relacionadas con estos sistemas tales como la ausencia de interbloqueos o inanición. Sin embargo, desde el punto de vista de la interacción con el usuario, las propiedades deseables del sistema están relacionadas con la parte de interacción con el humano, tales como: las propiedad de comenzar nuevamente (Restartability), deshacer la última acción en cualquier momento (Undo), utilizar toda la funcionalidad de la aplicación (completitud), capacidad para cancelar en cualquier momento la ejecución de una tarea, observación en todo momento del estado del sistema (Observabilidad), etc.. Básicamente este tipo de propiedades de interés se pueden resumir en los siguientes casos:

  1. Predecibilidad. Se trata de reconocer y predecir cual será el efecto futuro del sistema ante una nueva interacción. Esta propiedad permite medir la consistencia del sistema.

  2. Alcanzabilidad. Esta propiedad permite razonar y determinar si el usuario tiene acceso en todo momento a la funcionalidad del sistema. Esta propiedad permite medir la completitud del sistema.

En este sentido, los métodos que se utilizan son meramente descriptivos. La notación y el fundamento matemático en el cual están basados permiten expresar propiedades y por tanto, se podrán utilizar para razonar y verificar ese tipo de propiedades.

El Modelo PIE

El modelo PIE [DIX91] ofrece una visión externa del sistema, donde se recoge el comportamien­to visible por parte del usuario. Bajo este modelo de caja negra, PIE describe el sistema en base al efecto perceptible que produce la interacción (entradas de usuario) sobre el sistema. Las entradas son un conjunto de órdenes (P) que forman parte de un programa. El efecto (E) observado por el usuario es resultado de un proceso de interpretación (I), de modo que para cada entrada posible, podemos obtener su interpreta­ción como una función de transformación del dominio de las entradas al dominio de los efectos:





Figura 17 Red–PIE

En este modelo abstracto, P representa las entradas de usuario, E representa el efecto producido, mientras que I es la función de interpretación.

Un problema de predecibilidad se podría expresar formalmente mediante la propiedad de monotonía, del siguiente modo:

p1,p2  P: I(p1) = I(p2)   p  P : I(p1·p) = I(p2·p)

es decir, en el caso que dos tipos de entradas de usuario posean la misma interpretación, esto significa que el efecto será siempre equivalente, cualquiera que sea el estado del sistema (dado por acciones previas). En caso de no satisfacerse esta propiedad, tendríamos un sistema ambiguo en donde no podríamos predecir el resultado de las acciones a partir de la interacción del usuario, el sistema no es determinista.

Desde este punto de vista, el concepto de efecto es muy amplio, por lo que usualmente se utilizará el modelo red–PIE que extiende el modelo anterior para diferenciar el efecto que es percibido por el usuario (D) del resultado que es alcanzado por el sistema (R).





Figura 18 Red–PIE

Mediante esta aproximación, se podría establecer relaciones entre el estado del sistema (R) y la observación del usuario (D). El problema de los sistemas no predecibles puede estar ocasionado porque existan efectos que modifican el estado del sistema y que no sean percibidos por el usuario (no son observados). Por tanto, se deberá enunciar la predecibilidad desde el punto de vista de la percepción del usuario, es decir:

p1,p2  P: d(I(p1)) = d(I(p2))   p  P : I(p1·p) = I(p2·p)

La propiedad de alcanzabilidad garantiza que se puede realizar cualquier tarea sobre la interfaz de usuario, independientemente del estado actual del sistema, es decir:

p,q  Pr P : I(p·r) = I(q)

La opción de deshacer una orden (undo) será un caso particular de alcanzabili­dad.

Este mecanismo es simple pero potente para hablar de propiedades. Sin embargo, el modelo es demasiado abstracto como para su utilización para el diseño y desarrollo de sistemas interactivos, y no permite la descripción de sistemas asíncronos debido a su carácter determinista.


  1. Estrategia de diseño

Con los modelos que se disponen de las tareas y de la arquitectura del sistema, deberemos guiar el diseño para obtener una implementación correcta. Este proceso en algunos casos puede ser automático, pero en la mayoría de los casos, requerirá de un profundo reconocimiento de los aspectos más delicados del proceso de diseño y que está directamente relacionados con el diálogo con la máquina y la presentación de la información. Nos centraremos en los mecanismos básicos de interacción y el diálogo con la aplicación y la capa de presentación.

Tareas de interacción

Cuando el usuario realiza una interacción con el ordenador, introduce una unidad de información que posee significado en el contexto de la aplicación. EL tipo de interacciones que se pueden realizar en el sistema son [FOL90]:



  • Posicionamiento. Obtención de una posición u orientación. La posición puede ser en cualquier dimensión (2D, 3D). Se puede usar para dibujo, situar ventanas, arrastrar elementos, etc.

  • Valor. Obtención de un dato cuantificable, ya sea numérico (por ejemplo, el número de página, nº de copias, etc.) o porcentual (p.e. barra de progresión).

  • Texto. Introducción de un texto o identificador (nombre de fichero, apellidos, etc.).

  • Selección. Obtención de una alternativa (de entre varias posibles). Se puede distinguir entre la selección sobre un conjunto finito o bien de tamaño variable, en el cual la opciones pueden ser alternativas disyuntivas o no.

  • Arrastre. Secuencia de posiciones entre una posición inicial y otra final (por ejemplo movimiento de una carpeta con el ratón).

A cada una de estas interacciones podemos aplicarles un conjunto de técnicas que nos permitan facilitar y flexibilizar el modo de obtención de la información.

Tarea de posicionamiento

Esta tarea consiste en la obtención de una coordenada 2D o 3D. La acción que se realiza es la de mover un cursor por pantalla para introducir un valor, o introducir la coordenada directamente. Algunos de los aspectos a tener en cuenta son:



  • Sistema de coordenadas. El movimiento del objeto puede ser en función de un sistema de coordenadas del propio objeto, de la pantalla o del mundo. Este factor es muy importante en los sistemas de modelado de posicionamiento 3D (Realidad Virtual).

  • Resolución: En caso de movimiento con un dispositivo (cursor) las posiciones pueden ser discretas o continuas. Habrá que tener en cuenta la relación Control/Display (C/D) para mecanismos de posicionamiento indirecto, es decir, la distancia que hay que mover el puntero (ratón) en la mesa para obtener una nueva posición diferente en pantalla.

  • Restricciones. Se puede utilizar elementos que ayudan al posicionamiento como la rejilla (grid) que facilitan la introducción de los puntos ajustados a valores. Esta rejilla puede ser direccional (sobre una única dirección) modular (restringido a una retícula) o gravitacional (a unos puntos sensitivos).

  • Realimentación. La realimentación puede ser espacial (visualización gráfica del cursor en pantalla), relacionada con otros elementos), o lingüística (representando el valor numérico en coordenadas cartesianas).



Figura 19 Diferentes técnicas de ayuda en el posicionamiento

Tarea de selección

Esta tarea básica consiste en la selección de un elemento de entre un conjunto (de órdenes, atributos, objetos..). El conjunto puede ser:



  • Tamaño fijo: Elementos invariables (órdenes, etc.)

  • Tamaño variable: Elementos de la aplicación (objetos)

La tarea de selección se puede realizar de los siguientes modos:

  • Mediante identificador: La selección se realiza introduciendo el identificador del objeto (nombre)

  • Apuntando: Búsqueda espacial del objeto mediante un dispositivo apuntador (ratón)



Figura 20 Selección en lista variable de objetos (gráficos)

La selección sobre conjunto de objetos de tamaño variable se organiza sobre listas dinámicas o bien en ventanas (que actúan como contenedores) donde se disponen los elementos con diferentes alternativas de presentación (gráfica, textual, icónica, etc.) y modo de ordenación.

La selección sobre conjuntos de tamaño fijo utiliza otros mecanismos de representación. Uno de los más utilizados es la presentación mediante menús y se usa para la selección de órdenes. Cada orden es un ítem dentro del menú, y se pueden utilizar diferentes técnicas para estructurar el conjunto de elementos (jerarquías, separaciones, atajos, etc.).



Figura 21 Organización de un menú

Otras posibles representaciones para la selección son los botones (o conjuntos de botones agrupados en barras de iconos). Los botones pueden tener una representación gráfica icónica o bien estar basado en el texto. Se pueden inhabilitar botones (representados en un tono claro) en caso que la orden no esté activa en ese momento.





Figura 22 Barra de botones (icónica)

Otras estructuras para la selección son la listas en sus diferentes representaciones (desplegables) o fijas.

Para el caso de selección sobre valores lógicos, se utilizan elementos que representen dos posibles estados (seleccionado o no). Generalmente se utiliza la casilla de verificación como elemento gráfico que representa un valor lógico (si no aparece pulsada equivale a falso/no). En caso de seleccionarse la casilla, aparece un símbolo () que recuerda a una marca hecha con bolígrafo.

En caso de casillas de verificación, podemos encontrarnos conjuntos de cuestiones donde las opciones son mutuamente excluyentes (sólo se puede seleccionar una de las casillas). Para diferenciar estos dos tipos de casillas gráficamente, tradicionalmente se ha utilizado una representación circular para las selecciones excluyentes y cuadrada para las casillas de comprobación. Estas casillas pueden estar incluidas en los menús.




1   2   3   4   5


La base de datos está protegida por derechos de autor ©espanito.com 2016
enviar mensaje