• No se han encontrado resultados

Construcción de Interfaces a Usuario:

N/A
N/A
Protected

Academic year: 2023

Share "Construcción de Interfaces a Usuario: "

Copied!
82
0
0

Texto completo

(1)

Construcción de Interfaces a Usuario:

Introducción

http://www.exa.unicen.edu.ar/catedras/ui_devlp/

(2)

Contenidos

Objetivos del curso

HCI

Sistemas Interactivos

Importancia IU

Complejidad diseño e implementación

Evolución Histórica

Estilos de interacción

(3)

Objetivos

Introducción a los aspectos relacionados con el desarrollo de sistemas interactivos

– aspectos computacionales y de software – nivel de detalle intermedio

• no generalidades

• no específico de ninguna plataforma o configuración de hardware particular

• no describe ninguna herramienta ni metodología particular

• se citan:

– los enfoques existentes, con ventajas y desventajas – los aspectos a considerar

– la forma de funcionamiento de las arquitecturas gráficas

(4)

Objetivos

Foco del curso:

– interfaces convencionales actuales

• 2D

WIMP (‘Windows, Icons, Menues and Pointing’)

• Dispositivos convencionales (mouse, teclado, pantalla)

(5)

Objetivos

Programadores, Analistas, Diseñadores

comprender los aspectos relacionados con la implementación de un sistema interactivo

conocer los distintos enfoques y paradigmas actuales para la construcción de interfaces

Investigadores

conocer los fundamentos de la construcción de las interfaces actuales

conocer las tendencias de trabajo actuales en interfaces

• problemática de cada tipo de interacción particular

Administradores de proyecto:

conocer la importancia de la consideración de la usabilidad de una interfaz

comprender los distintos pasos en el diseño de interacciones

(6)

Objetivos

Principales contenidos

– Actividades y principios en el diseño de una interfaz – Funcionamiento de los sistemas actuales

sistemas de ventanas

construcción de presentaciones

tratamiento de eventos

toolkits

– Organización del software

modelos arquitectónicos

– Formas de construcción

métodos y paradigmas existentes

herramientas actuales

líneas de investigación

– Tendencias

(7)

Objetivos

Evaluación?

(8)

‘Human Computer Interaction’ (HCI)

Disciplina acerca del Diseño, Implementación y

Evaluación de Sistemas Computacionales Interactivos para su utilización por seres humanos.

Diseño

Evaluación

Implementación

(9)

Motivación HCI

1950 1990 2030

Capacidades Humanas Capacidades

Computacionales

(10)

HCI

(11)

HCI

Uso y contexto

• Problemas de adaptación a los computadores, su utilización y el contexto social de su uso.

– Trabajo y Organización social

• Interacción social en el trabajo

• Modelos de actividad humana

– Áreas de Aplicación

• Características de los dominios de aplicación

• Estilos más comunes:

– Producción de documentos, comunicaciones, diseño, tutoriales y ayudas, atlas multimediales, control de procesos,etc.

(12)

HCI

Uso y contexto

– Compatibilidad y adaptación hombre-computador

• Mejora la compatibilidad entre el objeto diseñado y su uso

– Selección y adopción de los sistemas

– Adaptación de los sistemas a los usuarios (‘customization’)

– Adaptación de los usuarios al sistema (entrenamiento, facilidad de aprendizaje)

– Guías al usuario (ayudas, documentaciones, manejo de errores)

(13)

HCI

Características Humanas

• Comprensión de los seres humanos como sistemas de procesamiento de información, formas de comu- nicaciónn entre humanos, requerimientos físicos y sicológicos

– Procesamiento humano de la información

• Características del hombre como procesador de información – Memoria, percepción, atención, resolución de problemas,

aprendizaje y adquisición de experiencia, motivación

– Lenguajes, comunicación e interacción

• Aspectos del lenguaje de interacción

– Sintaxis, semántica, pragmática, interacción conversacional, lenguajes especializados

(14)

HCI

Características humanas

– Ergonomía

• Características antropométricas y fisiológicas, relación con los ambientes de trabajo

– Disposición de pantallas y controles, limitaciones sensoriales y cognitivas, efectos de la tecnología, fatiga y salud,

amoblamiento e iluminación, diseño de ambientes, diseño para usuarios con disminuciones físicas

(15)

HCI

Sistemas computadorizados y arquitectura de la interfaz

• Componentes especializados para la interacción

– Dispositivos de input y output

• Tecnología y características de los dispositivos particulares de

hardware, rendimiento (del uso humano y del sistema), dispositivos virtuales

– Técnicas de diálogo

• Técnicas para llevar a cabo la interacción – ej. estilos de interacción

– Género del diálogo

• Metáforas de contenido e interacción

(16)

HCI

Sistemas computadorizados y arquitectura de la interfaz

– Gráficos por computador

• Conceptos básicos de manipulación de gráfícos por computador

– Arquitectura del diálogo

• Arquitectura de software y estandares para interfaces

– ej. construcción de presentaciones, administradores de ventanas, toolkits de interfaz, arquitecturas multi-usuario, look&feel,

estandarización

(17)

HCI

Proceso de desarrollo

• construcción y evaluación de interfaces

– Enfoques de diseño

• ej. Bases del diseño gráfico (tipografía, color, etc.), ingeniería de software, análisis de tareas

– Técnicas y herramientas para la implementacion

• ej. técnicas de prototipación, toolkits de diálogos, métodos OO

– Técnicas y métodos de evaluación

• ej. productividad, test de usabilidad

– Sistemas ejemplo y casos de estudio

• diseños clásicos utilizados como ejemplos de diseño de interfaces

(18)

Qué es una Interfaz con el Usuario (IU)?

“Sistema interactivo” (SI)

– Programa computadorizado que desempeña sus tareas interactuando con un operador humano (“usuario”).

“Interfaz con el usuario” (IU)

– Porción de un sistema interactivo que administra la presentación de datos y las acciones realizadas por el usuario.

– Aspectos sintacticos y léxicos de la interacción

“Aplicación” o “Núcleo Funcional”(NF)

– Porción del sistema interactivo que no incluye la interfaz con el usuario

– Semántica de la aplicación

(19)

Sistemas Interactivos

Sistema Interactivo

Interfaz Aplicación

Aspectos sintácticos y léxicos

Aspectos semánticos

Operador

(20)

Niveles de Abstracción de un SI

Núcleo Funcional

Control del Diálogo

Objetos de Interacción

Sistema de Ventanas Drivers

Control de los Control de los

recursos E/S Control de los

obj. de interacción

Control del secuen- ciamiento de las acciones del usuario Conocimiento

del dominio

Incremento en el nivel de abstracción

(21)

Importancia de las IU

Algunos estudios sobre desarrollo de IUs :

– 48 % (promedio) código

– 50 % (promedio) tiempo de implementación

(22)

Importancia de las IUs

Facilidad de uso

– Los usuarios no desean leer manuales extensos ni consumir tiempo aprendiendo la forma de operar un sistema

“Paradoja de la productividad”

– Las grandes inversiones tecnológicas no han producido los incrementos de productividad esperados

• ej. re-entrenamiento constante de los usuarios ante nuevos productos y/o nuevas versiones (‘upgrades’) de SIs

(23)

“Usabilidad” del software

“Utilidad”

– La funcionalidad del SI provee las operaciones necesarias

“Usabilidad”

– Grado de facilidad en el uso del SI – Decrementa los costos

• Previene cambios en el software antes de su uso

• Elimina parte del entrenamiento necesario

– Incrementa la productividad

• Menores tiempos para realizar las tareas

• Menos errores

(24)

Diseñadores de Interfaces

Porqué tener diseñadores especializados en HCI?

– Producen interfaces con menos errores

– Interfaces permitiendo una ejecución más rápida

– Los programadores no piensan de igual forma que los operadores

• Los programadores poseen un modelo del sistema, no un modelo del usuario

– Diferentes clases de interfaces y problemas

(25)

Roles en una IU

“Operador” / “usuario” / “usuario final”

• Persona que utilizará el sistema interactivo.

“Diseñador del sistema”

• Desarrolla la arquitectura global de un SI

– Especifica las tareas que serán efectuadas dentro de cada módulo

“Diseñador de la interfaz a usuario”

• Define la IU con la cual interactuará el operador – Utiliza la especificación de tareas

• Necesita comprender:

– Tareas a ser resueltas – Necesidades del operador

– Costos y beneficios de las UI particulares

» En términos del operador y los costos de implementación y mantenimento

(26)

Roles en una IU

“Diseñador del núcleo funcional” o “programador de la aplicación”

• Crea la estructura de software necesaria para implementar las tareas semánticas de la aplicación (no incluidas en la IU)

“Diseñador del software de la interfaz a usuario”

• Diseña la estructura del software que implementará la interfaz definida por el diseñador de la IU.

“Implementador de herramientas”

• crea herramientas para la construcción de interfaces

– No todos los actores se encuentran presentes en el proceso de

desarrollo de un SI

(27)

Roles en una IU

Operador

Núcleo Funcional

Software de la IU

Look

&Feel

Sistema Interactivo

Requeri- mientos

Especif.

Diseñador NF

Diseñador software IU

Diseñador Implem.

Herram.

Herram.

Construcc.

(28)

Importancia HCI

Campo de investigación actual en industrias, universidades y gobiernos

– proyectos financiados por ARPA, NSF, Comunidad Europea (proyecto ESPRIT)

Identificado como uno de los aspectos con mayor

impacto en el futuro de las ciencias de la computación

(29)

Recursos en HCI

SIGCHI

Publicaciones específicas

TOCHI, Interactions (ACM)Interacting with Computers

Intl. Journal of Human Computer InteractionBehavior & Information Technology

Human-Computer Interaction

Conferencias más importantes

CHI, Interact, UIST, EHCI, DSVIS

– conferencias en tópicos específicos (WWW, CSCW, IV, DIS, ...)

(30)

Complejidad del diseño de IUs

“Es fácil hacer las cosas difíciles. Es dificil hacer las cosas fáciles”

– Dificultades de los diseñadores para comprender las tareas del usuario

– Especificaciones iniciales incompletas o ambiguas

• La comprensión completa de un SI se adquiere a través de su uso.

– La interfaz debe satisfacer las necesidades, experiencia y expectativas de los usuarios previstos.

– Amplia diversidad de usuarios, con diferentes características.

– Los programadores tienen dificultades en pensar como los

usuarios

(31)

Complejidad del diseño de IUs

Complejidad inherente de las tareas y los dominios

– Es dificil lograr SI fáciles de usar, si las aplicaciones poseen muchas funciones

– ej. MS Word, con aprox. 300 comandos.

– ej. algunos programas CAD poseen cerca de 1000 funciones.

– Requerimientos específicos del dominio

– ej. distintos requerimientos de los programas CAD, de acuerdo al dominio asistido (mecánica, electrónica, arquitectura, ...)

(32)

Complejidad del diseño de IUs

Diversos aspectos del diseño involucrados

• Estandares

• Documentación

• Internacionalización

• Rendimiento

• Detalles de distinto nivel

• Factores externos

• Aspectos legales

• Tiempo de programación y testeo

• Otros ....

– Es imposible optimizar todos estos criterios a la vez.

• Deben privilegiarse los aspectos más importantes en cada caso, y obtener un balance entre ellos

(33)

Aspectos diseño IUs

Estándares

– Las IUs deben adherirse a los estandares requeridos por su plataforma

• ej. guías de estilo de Macintosh o Motif.

– Deben satisfacerse los estandares establecidos en versiones anteriores del producto, o productos relacionados de la

competencia

– Criterios de diseño gráfico

• Disposición espacial, colores, diseño de íconos, fuentes de texto.

• Generalmente realizado por diseñadores gráficos profesionales

(34)

Aspectos diseño IUs

Documentación, mensajes y textos de ayuda

– La provisión de buenos mensajes de ayuda y manuales incrementa la usabilidad del SI

• Su influencia es mayor que la modificación de la interfaz

• El grupo del proyecto debiera incluir buenos escritores técnicos

Internacionalización

– Los productos pueden ser utilizados por usuarios con diferentes lenguajes

• No implica solamente la traducción de cadenas de texto

• Puede incluir diferentes formatos de fechas u horas, rediseños de

‘layouts’, diferentes esquemas de colores, nuevos íconos, etc.

(35)

Aspectos diseño IUs

Rendimiento

– Los usuarios no toleran interfaces que operen lentamente

• ej. primeras versiones de Xerox Star no aceptadas por usuario – productividad más alta

– tiempos de respuesta muy largos

Detalles de alto y bajo nivel

– Una interfaz con un modelo global incorrecto será inutilizable

– Los detalles de bajo nivel deben ser perfeccionados para satisfacer al usuario

• Si la colocación de un botón o un item de un menú no es aceptada por los operadores, éstos desecharán la interfaz

(36)

Aspectos diseño IUs

Factores externos

– Las causas de las fallas de muchos sistemas son independientes del diseño del software (razones políticas, organizativas o sociales)

• ej. si los usuarios perciben que el SI amenaza su trabajo, pueden boicotear el desarrollo del sistema

Aspectos legales

– La copia de un diseño exitoso es ilegal.

• ejs. inconvenientes entre Lotus, Apple y Microsoft

(37)

Aspectos diseño IUs

Tiempo de programación y testeo

– El refinamiento iterativo mejora la calidad de una interfaz, pero incrementa el tiempo de desarrollo.

Otros

– Pueden existir requerimientos especiales de aplicaciones orientadas a determinados tipos de usuarios

• colaboración entre múltiples usuarios

• usuarios con discapacidades

(38)

Complejidad del diseño de IUs

Las teorías, principios y guías actuales suelen no ser suficientes

– Diversidad de metodologías, teorías y directivas diseñar UIs – La experiencia y práctica de los diseñadores es la principal

contribución a la calidad de la IU, no un método o teoría.

– No siempre es conveniente su utilización

– ej. reglas de consistencia o metáforas

– Suelen ser demasiado específicas y/o demasiado generales

• cubren solo aspectos limitados del comportamiento, y no siempre pueden ser generalizadas.

(39)

Complejidad del diseño de IUs

Dificultad del diseño iterativo

El 87% de los proyectos de desarrollo utilizan alguna forma de diseño iterativo [Myers & Rosson 92]

La intuición del diseñador acerca la solución de un problema observado puede ser errónea

• La nueva versión del sistema puede ser peor que la anterior

Aunque una iteración puede mejorar un diseño, éste nunca obtendrá la calidad de una IU originalmente bien diseñada.

Es dificil obtener usuarios “reales”, para efectuar los tests.

• Los participantes en los tests suelen ser seleccionados por iniciativa propia

– poseen mayor predisposición e interés que los usuarios reales.

• Cada iteración debería involucrar diferentes usuarios.

El diseño iterativo puede ser largo y costoso

• Los tests formales pueden tomar hasta 6 semanas

(40)

Complejidad del diseño de IUs

Inclusión de aspectos más sofisticados

– Información multimedial

– Multimodalidad en la interacción – Interacciones 3D

– Trabajo colaborativo

(41)

Complejidad de implementar IUs

Dificiles de diseñar, requiriendo una implementación iterativa

– No siguen el modelo en “cascada”: especificar, diseñar, implementar, testear, liberar

• Dificultades en la planificación y administración del proceso de desarrollo

(42)

Complejidad de implementar IUs

Programación Reactiva

– Programación “de adentro hacia fuera”

• La aplicación no posee el control de la ejecución

• Aplicación estructurada como subrutinas invocadas ante acciones del operador

• Las subrutinas pueden tener restricciones temporales

– ej. deben completarse antes de que el operador introduzca el siguiente comando

– Programación basada en eventos

• Programación más dificultosa para los programadores

– Dificultades con la modularización

(43)

Complejidad de implementar IUs

Multiprocesamiento

– La programación reactiva requiere una múltiples procesos

• Administración simultánea de los distintos procesos de un sistema de ventanas.

• El software de la IU debe estar diseñado para aceptar comandos en cualquier momento, aún mientras se ejecutan otros comandos

• Las operaciones prolongadas deberían ser implementadas como procesos separados

– ej. impresiones, repaginados

(44)

Complejidad de implementar IUs

Multiprocesamiento

– el usuario puede participar simultánemente en múltiples diálogos

– ej. operación con diferentes ventanas

• Debe mantenerse el estado acerca de las acciones realizadas por el usuario

• Los diálogos debieran poder interactuar entre sí.

– Problemas comunes del multiprocesamiento:

• Sincronización

• Mantenimiento de consistencia

‘Deadlocks’

(45)

Complejidad de implementar IUs

Requerimientos de tiempo real

– Las interfaces de manipulación directa deben proveer un alto

‘feedback’ ante las acciones del usuario

• ej. movimiento de objetos o ‘rubberbanding’.

• el ‘feedback’ debería finalizar en aprox. 16 milisegundos – Operaciones más sencillas y rápidas

» ej. ‘XORs bounding boxes’

» Macintosh

• Mantenimiento de la posición del mouse.

– Información temporal: video, sonido, animaciones

(46)

Complejidad de implementar IUs

Robustez del software

– Aceptación de todos las acciones del usuario

• Ante cualquier input, la IU debe continuar operando (‘no crashing’)

– Errores

• Provisión de mensajes de error significativos

• Permitir una recuperación sencilla y segura de los errores

– Soporte de ‘abort’ y ‘undo’ de todas las acciones

• Todas las acciones deben ser implementadas de tal forma que permitan su interrupción y reversión luego de su terminación

– Pueden requerir estructuras de datos y estilos de programación especiales.

(47)

Complejidad de implementar IUs

Débil soporte de los lenguajes de programación actuales

– No contienen las características apropiadas para las IUs

• Primitivas para input y output gráfico (ej. printf, scanf)

• No proveen facilidades para servicios generales ( ‘undo’, ayudas)

• Generalmente, las capacidades de E/S de los lenguajes son ignoradas – Utilización de rutinas de bibliotecas externas

– No proveen soporte para programación reactiva y/o multiprocesamiento.

– Los lenguajes OO son adecuados para la implementación de IUs

• No todos los lenguajes proveen un sistema de objetos apropiado – Apple desarrolló ObjectPascal, para MacApp

Motif y OpenLook utilizan un sistema de objetos en C (Xtk)

(48)

Complejidad de implementar IUs

Dificultades en el uso de las herramientas de desarrollo de IUs.

– Manuales inmensos, con cientos de procedimientos

– ej. Macintosh Toolbox (6 libros)

– Aprendizaje de un lenguaje de programación de propósito especial

– ej. UIL

– Flexibilidad insuficiente para obtener determinados efectos

– ej. Macintosh y Motif, no permiten implementar en forma sencilla aceleradores de botones.

– Generalmente, la utilización de los paquetes gráficos subyacentes es dificil

(49)

Complejidad de implementar IUs

Dificultades en la modularización del software de IUs

– Una modularización apropiada facilita la creación y mantenimiento

– La porción del software que implementa la IU debiera estar separada del resto del software

• “Independencia del Diálogo”

• Posibilita el diseño iterativo

• Dificultades para obtener una separación real.

– Cambios en la IU generalmente requieren cambios en la aplicación, y viceversa.

‘Feedback’ semántico

– La utilización indiscriminado de ‘callbacks’ dificulta aún más la

modularización

(50)

Complejidad de implementar IUs

Inclusión de aspectos más sofisticados

– Información multimedial – Interacción Multimodal – Interfaces 3D

– Trabajo colaborativo

(51)

Entrada Salida Inicialmente Conecciones con cables

Cintas de papel y tarjetas perforadas

Teclado

Paneles de luces Papel

Actualmente Teclado

+ teclas cursor + mouse

+ micrófono

Terminales de caracteres Pantallas gráficas

Audio Futuro VR: ej. 'data gloves'

Lenguaje natural

VR: 'Head mounted displays' Agentes

Evolución histórica HCI

Lecciones:

Los teclados y terminales son solamente artefactos de la tecnología actual Los nuevos dispositivos de E/S cambiarán las formas de interactuar

(completar con paper Myers)

Las lecciones:

(52)

ENIAC (1943)

Primer computador electrónico

(53)

Mark I (1944)

Lectores de cintas de papel perforadas

(54)

Stretch (1961)

Panel de control de Stretch

(55)

‘Time-sharing’

60’s

– Computadoras demasiado costosas para una única persona

‘Time sharing’

– Brinda al usuario la sensación de estar trabajando en su propia máquina

– Necesidad inmediata de proveer soporte para la interacción hombre-máquina

• Incremento dramático en la accesibilidad de las máquinas

• Lenguajes y sistemas interactivos, no ‘jobs’

(56)

SketchPad (Ivan Sutherland, 1963)

Paquete de dibujo sofisticado

– Introdujo muchas de las ideas actuales de las IUs

• Estructuras jerárquicas, definiendo figuras y sub-figuras

• Operaciones recursivas: aplicadas a los componentes de los objetos jerárquicos

• Programación orientada a objetos: instancias de figuras

• Restricciones: especificación de relaciones a mantener por el sistema

• Iconos: figuras pequeñas que representan items más complejos

• Técnicas de input: uso eficiente del lápiz óptico (‘light pen’)

‘World coordinates’: separación de de las coordenadas de dibujo y pantalla

Desarrollos paralelos en hardware:

• Terminales gráficas de bajo costo

(57)

El computador personal

Xerox PARC (mediados 70’s)

– Estación de trabajo personal (‘Alto’)

• Procesador local, pantalla gráfica (‘bit-mapped’), mouse

– Interfaces gráficas modernas

• Edición de texto y dibujo, correo electrónico

• Ventanas, menúes, barras de desplazamiento, selección con el mouse, etc.

– Redes de area local (LANs) para estaciones de trabajo personales

• Utilización de recursos compartidos

(58)

Máquinas Comerciales: Xerox Star (1981)

Primer computador personal comercial

Primera GUI

• Utiliza varias de las ideas desarrolladas en Xerox Parc

• Modelo conceptual familiar para el usuario – Simulación de un escritorio

• Promueve el reconocimiento y apuntamiento, no “recordar y tipear”

• Plantillas de propiedades (‘property sheets’) para especificar la apariencia y comportamiento de los objetos

‘What you see is what you get’ (WYSIWYG)

• Conjunto pequeño de comandos genéricos globales para todo el sistema

• Alto grado de consistencia y simplicidad

• Interacción sin modos

(59)

Máquinas Comerciales: Xerox Star

(1981)

(60)

Máquinas Comerciales: Xerox Star (1981)

Primer sistema basado en la “ingeniería de usabilidad”

• Prototipos en papel y análisis de uso

• Tests de usabilidad con usuarios potenciales

• Refinamiento iterativo de la interfaz

Fallas comerciales

• Costo ($15,000)

• Funcionalidad limitada

– ej. no proveía planillas de cálculo

• Arquitectura cerrada

– Los vendedores de terceras partes no podían agregar aplicaciones

• Ejecución aparentemente lenta –

(61)

Maquinas comerciales: Apple

Apple Lisa (1983)

• Basada en muchas ideas de Star; predecesor de Macintosh

• Algo más económica ($10,000)

• Tampoco tuvo éxito comercial

Apple Macintosh (1984)

• “Ideas viejas”, pero bien hechas!

• Éxito, a causa de:

– Precio agresivo ($2,500)

– Errores de Lisa corregidos (“ideas maduras”)

– Permitía la incorporación de software de 3ras. partes no-Apple – Guías de estilo que alentaban la consistencia entre aplicaciones – Dominio en el mercado de publicaciones electrónicas (‘desktop

publishing’)

(62)

Consolidación

ACM SIGCHI (1982)

• Grupo de interés en CHI

• Conferencias anuales, 2000 a 3000 asistentes

MIT, Nicholas Negroponte (1969-1980+)

– Muchas innovaciones

• Pantallas en la pared

• Uso de discos de video

• Uso de inteligencia artificial en interfaces (agentes)

• Reconocimiento de voz conjuntamente con apuntamiento

• Síntesis de voz

• Hipermedia

(63)

Algunos tipos de aplicaciones

Procesadores de texto

Programas de dibujo o similares

Correo electrónico

Planillas de cálculo

Documentos hipertextuales

Navegadores de WWW

Realidad virtual

Multimedia

Juegos interactivos, en tiempo real

(64)

Estilos de Interacción

Formas particulares de obtener información o interactuar con un usuario

Algunos estilos:

– 1. Preguntas y respuestas,

– 2. Comandos de caracteres simples y/o teclas función – 3. Lenguaje de comandos

– 4. Menúes

– 5. Cajas de Diálogos / Formularios – 6. Manipulación directa

– 7. WYSIWYG

– 8. Gestos

(65)

Estilos de IUs

Las interfaces suelen proveer características de más de un estilo

• ej. lenguaje de comandos para expertos, y menúes para novatos

El estilo apropiado depende del tipo de usuario y tarea

Aspectos importantes:

• Quién tiene el control?

• Facilidad de uso para novatos

• Tiempo de aprendizaje para convertirse en un usuario experimentado

• Velocidad de uso (eficiencia) para un usuario experimentado

• Generalidad / Flexibilidad / Potencia (cuanto de la UI se cubre con esta técnica?)

• Capacidad de mostrar valores por omisión, valores actuales, etc.

• Experiencia requerida

(66)

“Preguntas y respuestas”

El sistema efectúa preguntas, el usuario responde

– Utilizado por algunos programas simples, y también algunos sistemas expertos

‘Wizards’ (Microsoft)

• Interfaces telefónicas (“presione 1 para ventas, 2 para soporte,... ")

Ventajas y desventajas:

 Fácil de implementar (‘writeln’, ‘readln’)

 Fácil para novatos

 No pueden corregirse errores previos

• Excepto en Wizards, donde suele haber un botón “Previo”

(67)

“Preguntas y respuestas”

(68)

Comandos de caracteres simples y/o teclas función

Teclas de función rotuladas

Ventajas y desventajas:

 Método más rápido para expertos.

 Es sencillo aprender como utilizarlo.

 Sencillo para proveer soporte telefónico

• “Ahora presione la tecla F1”

 Generalmente, sencillo de implementar.

 Dificil recordar las asociaciones tecla-función, si el uso es intermitente.

 Es fácil presionar una tecla por error

(69)

Lenguaje de comandos

Instrucciones al SI por medio de un lenguaje formal

Ventajas y desventajas

 Mayor flexibilidad.

 Soporta la iniciativa del usuario.

 Rápido para expertos.

 Capacidades para macros, ‘customización’, etc.

 Menos espacio en pantalla

 Muy duro para novatos.

 Requiere un entrenamiento sustancial y alta memorización.

 Las tasas de error son generalmente altas.

 Sintaxis generalmente muy estricta.

 Pobre manejo de errores.

 Dificil para el usuario decir lo que quiere hacer.

La dificultad de la implementación depende de la disponibilidad de herramientas como Lex y Yacc, y de la complejidad del lenguaje.

(70)

Lenguaje de comandos

(71)

Menúes

Ventajas y desventajas

 Necesitan muy poco entrenamiento

 Muestran las opciones disponibles

 Permite el reconocimiento (no necesitan la generación)

 Muestra de la selección por omisión o selección actual

 Capacidad para mostrar opciones deshabilitadas

 Pueden ser utilizados para ingresar comandos (y argumentos)

 Reduce la cantidad de presiones de teclas

 Estructura clara para la toma de decisiones.

 Usable sólo con pocas opciones

 Lento para usuarios experimentados (necesitan aceleradores)

 Si es una jerarquía grande, puede ser dificil hallar los comandos

 Utiliza espacio en pantalla

– Son más efectivos cuando se utilizan con un dispositivo de apuntamiento.

(72)

Menúes

(73)

Formularios

Conjunto de campos numéricos o textuales, a completar por el usuario

– Generalmente utilizados en terminales de caracteres.

ej. cajas de diálogo Macintosh y Windows

Ventajas y desventajas (similar a los menúes)

 Simplifica la entrada de datos.

 Requieren muy poco entrenamiento

 Muestran las opciones disponibles

 Permiten el reconocimiento (no necesitan la generación)

 Capacidad para mostrar valores actuales y por omisión.

 Capacidad para mostrar partes no relevantes (en gris)

 Consumen espacio en pantalla.

 Costosos de internacionalizar.

– Son más efectivos cuando se utilizan con un dispositivo de apuntamiento.

(74)

Formularios

(75)

Manipulación directa

Definición:

– “Modelo visual del mundo”

• Objetos visuales directamente manipulables

– Los resultados de las acciones se reflejan inmediatamente en los objetos

“Orientada a objetos”, desde el punto de vista del usuario

– Contrasta con “orientada a funciones”

– Generalmente consiste en:

• Selección de un objeto

• Aplicación de un comando

(76)

Manipulación directa

Ventajas y desventajas:

 Iniciativa del usuario

 Fácil de aprender, intuitiva

 Rápido de usar para objetos que están en la presentación

 Fácilmente potenciada con menúes y formularios

 Los errores pueden ser evitados

 Alta satisfacción subjetiva

 Puede ser inconveniente y lenta para objetos que no se encuentran visibles en la pantalla

 Poder limitado, no todas las acciones tienen una analogía en la manipulación directa

 Dificil proveer macros, u otras características extensibles o

customizables por el usuario

(77)

Manipulación directa

(78)

WYSIWYG

‘What you see is what you get’.

– en realidad, es una variante de Manipulación Directa

Ventajas y desventajas (similar a manip. directa)

 Siempre puede indicar como será el resultado final

 La imagen en la pantalla puede ser dificil de leer o interpretar

• especialmente en pantallas con resoluciones demasiado bajas

 No puede mostrar la estructura oculta

• como fue realizado un dibujo?

 Puede ser lenta en la ejecución

• ej. corte de páginas

 Dificil de implementar

(79)

WYSIWYG

(80)

Interfaces ‘Non-Command’ o ‘Next- Generation’ [Nielsen 93]

Interacción “natural”

interfaz “invisible”

generalmente implementadas por medio de:

• reconocimiento de gestos

• reconocimiento y síntesis de voz

Algunas características

dispositivos especiales

manipulación de varios dispositivos en forma simultánea

interacción “inteligente”

interacción “por demostración”

Aspectos:

interpretaciones erróneas de las acciones del usuario

(81)

Gestos

Similar a la operación de un usuario operando naturalmente

– ej. escritura sobre papel

Ventajas y desventajas:

 Puede ser natural para aprender

 Puede ser más rapida de ejecutar que otras técnicas

 Muchos gestos son dificiles de hacer con un mouse

 Los usuarios deben memorizar gestos

• No ‘affordances’

(82)

Lenguaje natural

Subconjuntos de algun lenguaje convencional

Puede incluir el procesamiento de voz

Ventajas y desventajas:

 Teóricamente, es el más facil de aprender

 La voz es la técnica de output más rápida

 Algo lenta para ingresar datos

 Requiere que el diálogo sea bien claro

 Los sistemas generales son imposibles con la tecnología actual

 Algunas investigaciones muestran que la entrada por voz puede ser

más lenta y menos natural que el tipeo.

(83)

Bibliografía

General

– Bass, Len. Coutaz, Joelle. Developing Software for the User Interface, Addison-Wesley, 1991

– Shneiderman, Ben. Designing the User Interface: Strategies , Third Edition, 1998, Addison-Wesley

– Olsen, Dan. R. Jr. Developing User Interfaces, 1998, Morgan

Kaufman

(84)

Bibliografía

Otras referencias generales

– Foley, J. Van Dam, A. Feiner, S. Hughes, J. Computer Graphics:

Principles and Practice, Addison-Wesley, 1990

– Lee, Geoff Object Oriented GUI Application Development, 1993, Prentice Hall

– Thimbleby, Harold. User Interface Design, ACM Press, 1990 – Watson, Mark. Portable User Interface Programming in C++.

Mc Graw Hill

– Nielsen, Jacob Usability Engineering, Academic Press, 1992.

– Preece, D. Human Computer Interaction, 1995.

(85)

Bibliografía

Cursos en WWW:

– CPSC 481, Foundations and Principles of Human Computer Interaction, University of Calgary, Saul Greenberg,

– CS05-830, User Interface Software, Carnegie Mellon University, Brad Myers

Artículos:

– Myers, Brad. ”Why are Human-Computer Interfaces Difficult to Design and Implement?” ACM Interactions. 1(1). 1/94.

– Myers, Brad. Rosson, Mary. "Survey on User Interface Programming”, SIGCHI'92, 5/92

– Myers, Brad “User Interface Tools”, ACM TOIS, 3/95.

– Comm. ACM, Special Issue on Next Generation User Interfaces, 4/93

– otros ....

Referencias

Documento similar

La empresa proveedora firma un contrato con BT Germany. Durante la fase operativa OS está a disposición como Single Point of Contact y transfiere las incidencias a BT en