Академический Документы
Профессиональный Документы
Культура Документы
Al concluir esta unidad, debes realizar el examen de opción múltiple. Además, debes
hacer y entregar el ejercicio que se encuentra al final de esta unidad.
El objetivo de este curso es el de aprender a diseñar y construir software que sea útil:
programas que se puedan usar fácilmente, de manera correcta y eficiente. Tu propia
experiencia con programas computacionales comerciales y con elementos tal como la
video casetera y el horno microondas es suficiente para demostrar que la construcción
de software útil no es una tarea fácil. Existen muchos sistemas diseñados por personas
muy talentosas que aunque son funcionales están lejos de ser elementos útiles.
Tú eres solo una persona, los usuarios son muchos y con ideas diversas.
Tú eres un experto en materia técnica, los usuarios por lo general no lo son.
Mientras tu sabes exactamente lo que estabas pensando al diseñar el sistema, los
usuarios no.
Para manejar esta situación, el diseño del sistema debe basarse en un método iterativo.
En vez de utilizar un método de consulta previa feed-forward (o círculo abierto) como
se muestra en el siguiente diagrama,
el diseño debe incluir algunos pasos que incorporan factores adicionales a nuestra
opinión personal. Como se muestra en la figura 2, por lo general esto implica agregar un
paso en el cual se analiza el diseño preliminar de acuerdo a algunas reglas de dedo, y se
hace una evaluación que toma en cuenta la retroalimentación de los usuarios con
respecto a lo que se ha diseñado hasta el momento:
1. Es muy costoso construir un sistema una vez, ¿cómo puede ser rentable que se
construya lo mismo más de una vez?
2. ¿Cómo se puede lograr acumular la experiencia y obtener retroalimentación de
los usuarios de manera útil que sirva como guía para futuros proyectos?
humana, así como también buenas técnicas para solicitar, registrar y analizar la
retroalimentación de los usuarios.
Este curso te ofrece tres herramientas importantes para el diseño iterativo centrado en el
usuario: programación de interfaz de usuario en Visual Basic, evaluación heurística para
las interfaces basada en la experiencia de diseño acumulada y la evaluación empírica de
pruebas en voz alta.
V isual Basic
E valuación H eurística
El uso conjunto de las tres herramientas te ayudará a diseñar sistemas exitosos y útiles.
M anipulación Directa
La interfaz de manipulación directa ha sido muy exitosa porque da la ilusión de ser clara
- opera para que los usuarios sientan que están actuando directamente sobre los objetos,
y no por medio de la computadora. La propiedad de ser directo no es una propiedad en
sí de la interfaz. Las interfaces pueden ser más directas o menos directas dependiendo
del sentimiento que le induzcan al usuario. Además, el sentimiento de que tan directo
es, varía dependiendo del individuo, de la interfaz y en ocasiones varía entre partes de la
interfase. Por ejemplo, probablemente el usuario encuentra más directo arrastrar un
archivo hacia el icono de la basura para borrarlo que llevar a cabo alguna acción sobre
un archivo al seleccionar un comando de un menu. Por lo general los usuarios prefieren
las interfases que muestran ser más directas, ya que son más fáciles de aprender y de
utilizar.(Sin embargo, es importante tomar en cuenta que el ser demasiado directos
puede requerir que el usuario sea muy directo en algunas operaciones donde sería
mucho más eficiente ser indirecto o automatizado).
L a F uncionalidad y la Retroalimentación
Para presentar una interfaz clara, los diseñadores de interfaz comúnmente se concentran,
entre otras cosas, a cumplir dos características importantes: funcionalidad y
retroalimentación. La funcionalidad se refiere a las oportunidades de actuar que son
obvias para el usuario. Por ejemplo, la manija de un martillo provee la oportunidad de
tomarlo con la mano (de una manera particular que es útil para el propósito específico
del martillo). Otro ejemplo típico son los nudillos - las ondulaciones que
frecuentemente se encuentran en las perillas que hacen que la superficie sea más aspera,
como se muestra en la Figura 1. Debido a que los nudillos aumentan la fricción, proveen
una buena funcionalidad para tomar el objeto con los dedos.
Debido a que la
sostenerse con la mano. mayoría de los
objetos en una
interfaz de
usuario gráfico
aparecen como
fotografías en
una pantalla, las
funcionalidades
físicas que se
Figura 2: El nudillo simulado nos invita a"manejarlo" con el mouse. pueden ofrecer
son limitadas.
Sin embargo, al
manipular la apariencia visual de los objetos, podemos hacer que su proposito, estado y
oportunidades de acción sean muy obvias para el usuario. Se puede pensar que esto es
una funcionalidad visual. De tal manera que aunque no podemos sentir ni tocar los
objetos de la pantalla, se puede simular el sentido como se muestra en la figura 2.
Al manipular la apariencia visual de los objetos para que tengan funcionalidad propia
(recordarle al usuario la funcionalidad presentada en experiencias pasadas, que por lo
general tiene el mismo efecto práctico) hacemos que la operación de la interfaz sea más
aparente y reducimos el esfuerzo para aprender y percibir las propiedades importantes.
Como regla general (que veremos posteriormente en la forma de una heurística de
utilidad) un buen diseño de interfaz de usuario provee una indicación visual
(funcionalidad) de las acciones que el usuario puede llevar a cabo con dicha interfase.
Para que el usuario sienta que esta manipulando los objetos de interés de manera
directa, un programa interactivo debe cumplir con varias cosas. Deben:
Proveer imágenes visuales que representan los objetos de interés para el usuario
( e indicar las acciones que se pueden realizar con ellos, en otras palabras,
proveen una buena funcionalidad).
Aceptar entradas desde todos los dispositivos de entrada disponibles.
Interpretar las entradas en el contexto de los objetos en la pantalla (y otras partes
del sistema).
Modificar las estructuras internas que son modelos de los objetos de interés (y
deben invocar rutinas de aplicación)
Actualizar la pantalla visual para reflejar las consecuencias de las acciones de
los usuarios (proveer buena retroalimentación).
Todas las interfaces de usuario gráficas cuentan esencialmente con este mismo conjunto
de tareas. El diagrama de flujo de control general de un programa interactivo
normalmente se puede resumir en un ciclo sencillo, como el que se muestra a
continuación. Esto es debido a que la primera y la última tarea están estrechamente
vinculadas, ambas proveen objetos visuales que percibe el usuario.
La salidas a la pantalla se producen por medio de una serie de llamadas a una librería
gráfica, la cual por lo general es parte de un sistema de ventanas, o administrador de
ventanas. En las secciones siguientes se considerará que un sistema de ventanas
soporta una serie de superficies de dibujo independientes. Aunque para el programador
dichas superficies aparentemente son espacios independientes, al usuario se le presentan
una sobre la otra, en una forma ya conocida, ventanas. El control de las relaciones entre
Generalmente las entradas de los sistemas interactivos modernos están diseñadas como
registros de eventos de entrada (o simplemente eventos). Dicho registro de evento
consiste en el registro de alguna acción relevante. Los eventos más comunes registran
modificaciones en el estado de los dispositivos de entrada (como resultado de la
manipulación de los dispositivos) - por ejemplo, al oprimir una tecla o al mover el
mouse. Sin embargo, también pueden registrarse otro tipo de eventos, tal como la
entrada de datos en una conexión de red. Los eventos pueden registrar información en
referencia a qué sucedió, cuando sucedió, el contexto en el que se encontraban los otros
dispositivos de entrada al momento en que sucedió el evento (por ejemplo, hacia dónde
estaba apuntando el mouse cuando sucedió el evento, y el estatus de las teclas
modificadoras, tales como SHIFT y CTRL). Finalmente, los eventos registran todos
los datos asociados con la entrada (tal como el valor del caracter asociado al evento de
oprimir una tecla).
Los registros de eventos se ponen en cola para asegurarse que no se pierdan, ya que es
posible que el usuario genere eventos más rápido de lo que un programa puede
responder. La operación de los programas es la siguiente: piden el siguiente evento de la
cola de entrada, interpretan y procesan el evento, generan la nueva salida para el
resultado (por ejemplo, cambiar el dibujo de la pantalla), y luego continúa con el
siguiente evento. Si no hay eventos esperando en cola, el programa simplemente espera
que llegue el siguiente evento. Es posible soportar varias formas de entradas
asincrónicas usando el diagrama de flujo de control descrito arriba al asignar como
evento todas las acciones de interés para el programa interactivo (hasta las
comunicaciones entre procesos y el archivo de entrada y salida asincrónico).
se conocen con el nombre de controles. Una de las mayores ventajas que ofrecen estas
herramientas es de que proveen un gran conjunto de controles y permiten la creación de
nuevos tipos de controles si es necesario. Esto significa que el programador no necesita
crear un control button y todos los controles button que el usuario tiene a disposición
trabajan igual.
Cabe notar que las herramientas por lo general se encargan de los detalles internos
relacionados con el re-dibujo de la pantalla para reflejar los cambios, pero a las
herramientas se les deben notificar los cambios. El objeto modelo notifica a las
herramientas de los cambios al modificar las propiedades de los controles que necesitan
ser modificadas. Las herramientas arreglan la apariencia actual de los controles en la
pantalla para que se actualicen apropiadamente.
Es importante notar que en este arreglo, los objetos modelo tienen un papel central en la
organización. Aceptan las modificaciones en la información modelo (ya sea por medio
de controles o código de aplicación), validan las modificaciones y responden a ellas
actualizando las propiedades de los controles relacionados a esa información. En ciertas
ocasiones es conveniente que los controles invoquen a las rutinas de aplicación y se
brinquen al modelo. Esto es cierto particularmente en el caso de los menús y botones
que representan comandos en la aplicación. Sin embargo, normalmente, la aplicación
debe evitar la manipulación de los controles directamente sin pasar por el modelo.
Aquí se han especificado las implementaciones de métodos de acceso más básicos. Los
métodos de acceso de los objetos modelo de las interfases de usuario contienen código
adicional - tal como el que se describe a continuación. Este patrón general que utiliza un
campo privado para los datos y los métodos de get y set para leer y escribir los valores
de los campos constituye lo que se conoce como los patrones de acceso.
< Check validity of value, and possibly force into valid range >
< For each control property that depends on myDataValue do the following>
newPropVal = <prepare new value for the control property based on myDataValue >
If < control > .someProperty <> newPropVal Then
<control > .someProperty = newPropVal
End If
...
Else
< Ignore new value or perform error handling / feedback action>
End If
End Sub
Observa las líneas "If value <> myDataValue Then" y "If <control>.someproperty <> newPropVal
Then". ¿Sabes porqué se encuentran en el código estas dos líneas? Se puede decir que
esas líneas existen para que la interfaz sea más rápida: cuando no hay necesidad, el
código dentro del IF-THEN no se ejecuta. El código, el cual informa del nuevo valor a
otras partes de la aplicación puede llevarse más tiempo; por ejemplo, si se necesita
notificar a muchos objetos o si se requiere de una serie de actualizaciones a la pantalla
muy complicadas.
A decir verdad, los estatutos IF-THEN por lo general son necesarios para que el código
sea correcto y tenga un buen desempeño. Si se permitieran propagar las actualizaciones
a las variables libremente entre el objeto y la aplicación, aún cuando no haya un cambio
en el valor, la interfaz se puede congelar y parecer que no se hace nada (Lo que puede
estar sucediendo es realidad es que está ejecutando "actualizaciones" constantemente).
Los estatutos IF-THEN que se muestran el código anterior proveen una buena solución
para asegurar que no se permita una regresión infinita cuando no se modifique el valor
de la variable. Se puede lograr el mismo efecto de maneras más complicadas que serían
más especificas a tu aplicación pero la solución anterior es eficiente, fácil de
implementar y fácil de corregir. Al usar una estrategia de programación sencilla y
defensiva se evita el tener que considerar casos especiales. Este mismo código siempre
funciona - sin importar si el cambio tiene origen en la aplicación o en las acciones del
usuario. Además, el código no se "quiebra" si en un futuro se modifica la manera en que
la aplicación o los controles responden al cambio.
Motivación
La mayoría de los programas computacionales se diseñan para que la gente los use para
desempeñar cierta tarea. Por lo tanto, para diseñar sistemas computacionales buenos, los
desarrolladores deben conocer no nada más cómo trabajan las computadoras, sino
también la tarea que van a realizar y la manera en la que las personas la realizan.
Cuando los diseños requieren de un alto desempeño por parte del usuario, es fácil que
éste cometa errores (los cuales pueden ser caros o fatales en los sistemas de seguridad
crítica), le saque la vuelta a la tarea (lo cual es ineficiente), que abandone el sistema (si
acaso tienen la opción) o se resista a adaptarse a sistemas nuevos (si acaso se ven
forzados a usarlos). Al contrario, los diseños que aumentan la capacidad humana y
ayudan a las personas a sobresalir de sus limitantes pueden ser verdaderamente útiles,
efectivos en costos, y agradables para usar.
En primer lugar, este curso comprende los principios de la psicología (nos referiremos a
ellos más adelante en el material), de tal manera que al dominar y utilizar los métodos
del curso, estarás aplicando los principios básicos de la psicología de manera implícita.
En segundo lugar, contínuamente estarás trabajando en equipos interdisciplinarios en
donde por lo menos un miembro del equipo puede tener especialización en alguna
ciencia de comportamiento (tal como psicología, sociología, antropología, o
comportamiento organizacional). Los temas que aprenderás en este módulo te ayudarán
a trabajar con personas entrenadas en áreas diferentes para diseñar sistemas efectivos.
G eneralidades
exterior (por ejemplo, teclear un comando, usar el mouse para seleccionar un artículo,
desplegar una pantalla, etc.), se deposita un símbolo en la memoria de trabajo
reconocido por el procesador motríz para llevar a cabo cierta acción. El procesador
motríz lleva a cabo la acción y el ciclo empieza de nuevo. Estos procesadores pueden
trabajar en paralelo, lo cual refleja la realidad de que una persona puede pensar y llevar
a cabo acciones motrices. Por ejemplo, al conducir un auto, el conductor observa el
camino, va pensando en donde tiene que dar la siguiente vuelta y conduce el volante -
todo al mismo tiempo. Sin embargo, el procesador cognitivo sólo puede hacer una cosa
a la vez, y por lo tanto hay un cuello de botella que es muy importante para el diseño de
interfaz.
Percepción
Las computadoras modernas se comunican con los usuarios primordialmente por medio
del sentido de la vista del (aunque con el desarrollo de la interfaz de lenguaje, se hace
más importante el sentido del oído). Algunos sistemas computacionales se comunican
con el usuario por medio del sentido del tacto, como en los juegos juveniles de carreras
de carros en donde el asiento del juego se mueve más violentamente cuando el coche
corre por un camino de terrecería y menos cuando corre por un camino recto y liso. A la
fecha, no se han incorporado los sentidos del olfato y gusto a los sistemas
computacionales comerciales. El lenguaje de programación Visual Basic hace muy fácil
la programación de la comunicación visual y por lo tanto nosotros nos concentraremos
en las señales de la percepción visual.
Los humanos vemos los detalles con una pequeña parte del ojo llamada fóvea. El campo
de vista de la fóvea es de 2 ángulos solamente. Para que una persona lea un texto o
distinga un icono detallado tiene que apuntar la fóvea directamente al área específica de
la pantalla. Para ver más de dos grados de ángulo el ojo debe moverse. El resto del ojo
es mucho más sensible al los cambios en el campo visual que la fóvea. Esto quiere decir
que en el resto de la pantalla, a donde la persona no esta viendo directamente, los
cambios serán muy visibles (por ejemplo, la animación o cambios de color). Al ojo del
usuario naturalmente le atrae la actividad en la periferia, haciendo muy difícil que el
usuario se mantenga enfocado en un objeto que esta tratando de leer o decifrar. Además,
la percepción visual toma tiempo. Para que el ojo detecte una señal visual sencilla (tal
como el encendido de una luz) y la deposite en la memoria de trabajo, se tarda
aproximadamente 100 mseg. Se toman unos 30 mseg para que el ojo se mueva a otra
posición en la pantalla. Existen varios principios de diseño que se derivan de estas
características del ojo y las expondremos en el resto del curso.
Figura 1. La fóvea puede percibir el detalle en un ángulo visual de 2 grados. Para leer
toda la pantalla el ojo tiene que mover la fóvea alrededor de la pantalla. El ojo es muy
sensible a los cambios en la pantalla fuera de la región foveal.
Digamos que una persona está buscando un objeto, el cual llamaremos objeto meta o
target. El proceso en el cual una persona busca al objeto meta, ya sea una palabra o un
icono, en la pantalla se denomina búsqueda visual. La búsqueda visual es muy fácil y
sencilla si el objeto meta o target es diferente al resto de la pantalla. Por ejemplo, el
color del objeto meta, su orientación, tamaño, o curvatura puede ser diferente al resto de
los objetos de la pantalla. En este caso, el objeto "salta" a la vista y no importa si el
resto de la pantalla está saturada o muy sencilla. Si el objeto meta primordial requiere
que una persona discrimine entre muchos objetos, la búsqueda visual va a ser mucho
más lenta debido a que la persona tiene que ver un objeto a la vez para decidir si es en
realidad lo que esta buscando. Por lo tanto, los aspectos de diseño tal como la
localización, la densidad de despliegue, el agrupamiento y el amontonamiento de la
pantalla son factores determinantes para la rapidez de la búsqueda. Una vez más, los
principios de diseño de la búsqueda visual los estudiaremos posteriormente en esta
clase.
M emoria
Diseño de Interfaces Página 16
SSD4: Diseño y Evaluación Centrado en el Usuario
Existen muchas teorías sofisticadas con relación a la memoria humana que son tema de
intenso debate teórico y empírico en la comunidad psicológica académica. Sin embargo,
para efectos del diseño de interfaz de usuario, solo necesitamos conocer algunas
generalidades de la memoria y pasaremos por alto los detalles sutiles que preocupan a
los académicos.
La memoria de trabajo puede tener sólo una cantidad limitada de información a la vez,
aproximadamente 3 trozos ("chunks"). C hunk simboliza una pedazo de información.
Los chunks se pueden organizar jerárquicamente. La mejor manera de explicar esto es
por medio de un ejemplo. Haz clic en la siguiente liga para ver ejemplo:
Perro
Gato
Ratón
Rata
Caballo
Ardilla
Cerdo
Vaca
Borrego
Otra propiedad de la memoria de largo plazo es que es fácil que las piezas de
información similares interfieran entre sí. Supongamos que se te pide que recuerdes el
nombre del navegador de Web que utilizas generalmente. Enseguida se te pide que
recuerdes el URL de la página de Web que visitaste el martes pasado. Debido a que
seguramente solo utilizas un navegador de Internet, es probable que sea muy fácil para
ti recordarlo. Sin embargo, ya que probablemente has visitado muchas páginas de
Internet desde el martes pasado y casi todas comienzan con "http://" - es difícil que
recuerdes el URL de la página que visitaste el martes.
Una tercera propiedad muy importante de la memoria es que es más fácil reconocer que
recordar. Por ejemplo, es mucho más fácil que alguien te pueda decir si ha visto cierto
artículo anteriormente si tu le muestras el artículo que si tu le pides que te especifique
todos los artículos que has visto antes sin mostrarle ejemplos. Dicho de otra manera, es
mucho más fácil que la persona reconozca si ha visto un artículo anteriormente a que
retraiga el artículo de su memoria de largo plazo. Las diversas teorías psicológicas
difieren en sus explicaciones de dicho fenómeno, pero la ocurrencia del fenómeno es
confiable. A manera de explicación, se puede decir que una vez que la percepción
ingresa la información de un artículo a la memoria de trabajo, esta información hace que
la memoria de largo plazo busque la codificación del artículo.
Cabe notar que la memoria de trabajo se puede alimentar tanto de la percepción como
de la memoria de largo plazo, pero la información solo se puede almacenar el la
Proceso Cognitivo
En este modelo, el procesador cognitivo es el que "piensa". Esto quiere decir que toma
los símbolos que se encuentran en la memoria de trabajo (depositados por la percepción
o por la memoria de largo plazo) para luego manipular los símbolos para resolver un
problema, planear una serie de acciones para resolver el problema y decirle al
procesador motríz la manera de ejecutar las acciones. Para el diseño de UI, hay dos
tipos de actividades del procesador cognitivo: conocimientos de rutina y resolución de
problemas.
Por otro lado, cuando el sistema computacional es nuevo para un usuario, o cuando sólo
lo utiliza de vez en cuando, para llevar a cabo una tarea ocasionalmente se encuentran
con que tienen que resolver ciertos problemas. (Nota: aún cuando una persona conoce
bien un sistema, si el sistema es complejo, puede ser que sea muy buenos para ciertos
aspectos del sistema y novatos para otros aspectos del sistema. Un ejemplo sería que
puedes ser muy bueno para manejar el procesador de palabras para escribir documentos
pero puedes no saber como usar la base de datos para hacer etiquetas de correo y
escribir cartas personalizadas.) El resolver los problemas, es como buscar en un
laberinto. Adivinan que hacer y luego siguen en ese camino una distancia corta. Si no se
ve que estén progresando hacia su objetivo, se regresan y buscan otro camino. Lo
anterior es el comportamiento de resolución de problemas típico - y nosotros podemos
diseñar interfases de usuario que les apoyan este comportamiento deliberadamente o
podemos producir interfases de usuario que no ayudan.
C apacidad Motríz
La forma de teclear ha sido estudiada a detalle por más de cien años, y existen
fenómenos importantes relacionados con teclear (por ejemplo, que tipo de errores
comete la gente, cuales de estos los detectan por sí solos, cuánto tiempo se lleva
transcribir un documento [Salthouse, 984]). Sin embargo, para la mayor parte de los
objetivos de diseño, la velocidad con la que una persona teclea es el único parámetro
que se requiere. Con esto se puede pronosticar con cierta exactitud el tiempo que le
tomará a la persona ingresar información o utilizar un atajo del teclado.
El apuntar es otra acción motríz que se ha estudiado intensamente desde antes de que las
computadoras se utilizaran comúnmente. La Ley de Fitt's (Welford, 1968) es una ley
psicológica robusta que hace relación entre el tamaño y la distancia de una meta con el
tiempo que le toma en apuntar a ella.
El clic al final del movimiento de apuntar es una acción sencilla que toma
aproximadamente 200 mseg en ejecutarse.
Finalmente, el movimiento de la mano, del teclado hacia el mouse o vice versa (llamado
homing) se ha medido en 400 mseg.
Con los cuatro parámetros - rapidez de tecleo, la Ley de Fitt's para apuntar, hacer el clic
al botón del mouse y homing - los analistas pueden hacer una predicciones precisas de
los tiempos de ejecución motrices (Card, Morgan y Newell, 1983). Veremos como estos
parámetros también contribuyen a la heurística de diseño que estudiaremos más
adelante.
E r rores
Referencias
John, B. E., y D.E. Kieras. "Using GOMS for User Interface Design and Evaluation:
Which Technique?" ACM Transactions on Computer-Human Interaction 3, no. 4
(1996): 287±319.
E valuaciones
Exercicio 2
Quiz de Opción Múltiple 2
Este módulo tiene el propósito de preparate para los módulos de VB que aparecen a
continuación mediante la introducción de los principios básicos de Visual Basic. Como
sabes, Visual Basic representa una de las formas más rápidas para crear aplicaciones
para la plataforma Windows. Permite que los programadores creen aplicaciones
visual mente-permite "dibujar" objetos (llamados controles) sobre objetos cuadriculados
(llamados ventanas de formulario o formulario). (Para, "dibujar" se llevan a cabo
operaciones tales como arrastrar objetos hacia un formulario desde la caja de
herramientas (toolbox) de Visual Basic, arrastrar sus esquinas para cambiar su tamaño,
y arrastrarlas de un lugar dentro de la forma a otro.) Talvéz también sepas que el
lenguaje Visual Basic se utiliza como lenguaje de programación en otras aplicaciones de
Windows-Microsoft Excel, Microsoft Access, entre otras. En este módulo "trabajarás
directamente con Visual Basic"-preparándote así para los siguientes módulos en donde
trabajarás con Visual Basic de forma más profunda. Aquí, conocerás los componentes
del ambiente de programación interactivo de Visual Basic. Aprenderás también acerca
del funcionamiento de formularios, controles y de como escribir código Visual Basic.
También adquirirás la habilidad para depurar código Visual Basic y conocerás la forma
en que el ambiente de Visual Basic soporta esta importante tarea .
Talvez puedas notar que algunas de estas lecciones son iguales a las que ya se
presentaron en otro contexto-por ejemplo en el curso de Java. La programación
moderna tiene la ventaja de que se pueden transferir rápidamente las habilidades ya
aprendidas a otro contexto. Sin embargo, las diferencias en los lenguajes a veces son tan
sutiles que lo que se usa en un lenguaje puede causarte problemas al querer aprender
otro. Por lo cual es importante que cuando comiences a aprender un lenguaje nuevo
prestes atención a las diferencias que tiene este lenguaje en relación a los otros que ya
conoces.
E l L ibro
En este módulo usaremos el libro Programming with Microsoft Visual Basic .Net de
Diane Zak. Todas las lecturas para este módulo se encuentran en este libro, además, el
módulo se apega mucho al formato de tutorial y lecciones del libro. Debido a que el
libro contiene muchas características útiles que no se utilizan de manera explícita en
este curso, vale la pena que antes de empezar, le des una hojeada al libro para observar
estas características. Por ejemplo, a travéz de los párrafos H elp? podrás anticipar
algunos problemas que pueden ocurrir mientras lees el libro. Observa también que el
libro tiene márgenes anchos-la intensión es que puedas tomar notas en ese espacio-
además, algunos comentarios llamados T IP y T IPs para el diseño de G U I se
encuentran ya en este espacio. Los comentarios de T IP te presentan información
complementaria de los párrafos adjuntos. Los T IPs de Diseño G U I presentan
directrices para la creación de aplicaciones según los estándares publicados por
Microsoft.
Otro consejo: Una ventaja del formato tutorial es que presenta información en el
contexto de problemas que ocurren en la programación del mundo real, facilitando que
recuerdes esta información y que veas la importancia que tiene. Sin embargo, una
desventaja que tiene el formato tutorial es que la información contenida no se presenta
en una forma de referencia rápida. Por ejemplo, los estándares de diseño se encuentran
dispersos en muchos párrafos de T ips de Diseño G U I, y como estos párrafos no se
encuentran indexados por tema, se dificulta hacer una búsqueda particular. Así que te
recomendamos, al igual que en el curso de Java, que trates de hacer tu libro de texto
más útil-marcando las secciones importantes de alguna manera en forma de que te sirva
a tí como índice de alguna característica, por decir de T ip de Diseño G U I. (Por cierto,
en la página 750 de tu libro de texto encontrarás una lista parcial de diseño GUI y una
guía de programa.)
L as Lecturas
Readings:
Instalación y Configuración
Antes de comenzar, necesitas contar con una copia de Visual Basic Express instalada en
tu computadora²y un conjunto de discos de alumno del libro de texto. En la mayoría
de los casos, contarás ya con una copia de Visual Basic Express instalada en el area de
computadoras, y tu instructor te proporcionará los archivos necesarios para que crees tu
propio juego de discos de alumno. (También los puedes conseguir del Web Site del
editor del libro de texto: Student Downloads.- busca las ligas bajo "Data Files for
Students") Siendo así el caso, ya estás listo para comenzar a trabajar en este módulo²
una vez que hayas creado tu propio juego de discos.
En esta sección aprenderás como iniciar y terminar Visual Basic, también aprenderás
acerca de los componentes de despliegue de Visual Basic. También aprenderás como
fijar propiedades de objetos; cómo crear, guardar, correr y parar aplicaciones; y como
abrir proyectos ya existentes y proyectos nuevos. Asegúrate de prestar atención
Ahora, usando los discos de alumno, comienza a trabajar con la sección A. Usa el
resumen de la lección y las preguntas para repasar lo que has aprendido. Además, si
tienes tiempo y quieres, puedes realizar los ejercicios de la lección. Sin embargo, estos
ejercicios son opcionales.
Esta sección hace una introducción al sistema de ayuda en línea de Visual Basic y a la
biblioteca de Microsoft Development Network (MSDN). La primera parte de la lección
B (la única parte que se te pide hacer) describe las características principales de estos
dos recursos. En los ejercicios Discovery obtendrás experiencia práctica de como
usarlos y como resolver problemas de programación del mundo real.
En las siguientes cuatro secciones, vamos a cubrir mucho material, completando en total
siete lecciones. En la primera sección "Formularios, Controles y como Escribir y Editar
Código en Visual Basic", repasaremos brevemente lo que son los formularios y los
controles- desde el punto de vista de como estos se relacionan con el código de Visual
Basic- después aprenderás algunos procedimientos básicos de como escribir código. En
la sección dos, "El lenguaje de programación Visual Basic", veremos los detalles. En
esta sección cubriremos desde los temas de sintáxis y estatutos de Visual Basic útiles
hasta los temas de planeación, pruebas y documentación. En la sección tres, "Estructura
de control, Etc." estudiaremos tanto los estatutos ,I«7KHQ«(OVH y Select C ase como
estatutos que inicializan y terminan los ciclos. Con estos estatutos juntos podrás
controlar el flujo de de ejecución de las aplicaciones de Visual Basic. Por último, en la
cuarta sección "Manipulación de strings", trabajaremos, no solo con la asignación y
concatenación de strings, sino con funciones que permiten manipular datos string de
manera sofisticada. Avanza en estas secciones, tratando a cada una como unidad: lee
cada una de ellas y lleva a cabo las lecciones relevantes antes de avanzar a la siguiente.
L ecturas:
Así que, ¿dónde va el código? El código de Visual Basic es el medio por el cual los
desarrolladores le instruyen al control lo que debe hacer (o como se debe comportar)
cuando los usuarios llevan a cabo una acción en particular (llamada evento)- tal como
hacer click,doble click o scroll.
Las siguientes tres lecciones, te presentarán a fondo las características del lenguaje de
programación de Visual Basic. Se te presentará, por ejemplo, la sintaxis y los elementos
de varios estatutos útiles: como crear variables locales, a nivel de forma y globales,
como determinar sus tipos de datos, y como asignarles datos a estas variables. También
aprenderás a concatenar datos string y a escribir ecuaciones de Visual Basic. Además,
aprenderás algunos métodos de como planear código-usando tablas TOE y
pseudocódigo-hasta ahondar en los temas de pruebas, depuración y documentación.
En este momento, realiza las lecciones A, B y C del Capítulo 2 y las lecciones A y B del
Capítulo 3. Asegúrate de revisar los resúmenes de la lección y las preguntas para checar
el avance de tu aprendizaje.
M anipulación de Strings
Realiza la lección C del Capítulo 6, revisa los resúmenes de la lección y las preguntas
para checar el avance de tu aprendizaje.
Para depurar una aplicación, la habilidad con la que se cuente forma parte esencial, y en
esta sección se presentarán un par de estrategias para depurar aplicaciones de Visual
Basic. Se describirán estrategias generales, como las que has aprendido en cursos
anteriores, y aprenderás algunas otras que hacen uso de las características que tiene el
ambiente Visual Basic. La sección uno, "Cómo Listar, Verificar, Encontrar y
Reemplazar Código de Aplicación", presentará algunas estrategias básicas²desde
cómo listar las propiedades y el código de aplicación, hasta técnicas para resolver
problemas de variables que comúnmente se presentan. Las técnicas que se presentan en
las siguientes secciones son más complejas: la sección dos cubre el tema de cómo
atrapar er rores y el uso la instrucción MsgBox; en la sección tres, nos enfocaremos en
las funciones que se encuentran en el menú Debug de Visual Basic²stepping,
breakpoints y watch.
L ecturas:
No todos los datos inválidos y problemas lógicos presentan errores que pueda detectar
una aplicación. Como dicen "la basura de entrada se convierte en basura de salida," y la
aplicación continuará su proceso sin saber que tiene errores. Como es de esperarse, las
técnicas basadas en estatutos como O n E r ror no sirven de nada. Así que, como una
manera alterna de esperar que los errores interrumpan la ejecución, un desarrollador
requiere de herramientas que permitan "interrumpir" la ejecución de la aplicación en
puntos clave para observar los resultados que presenta la ejecución en ese punto
específico. Esta sección presenta las funciones stepping, breakpoints y watch²que
permiten hacer esto.
E valuación H eurística
La evaluación heurística (HE) es una técnica utilizada para analizar la facilidad de uso
en las primeras etapas del diseño de interfaces de usuario. Se desarrolló en Dinamarca
hace diez años (Molich y Nielsen, 1990) con el objetivo de crear un método para
analizar el diseño de interfaces de una manera informal, manejable y fácil de enseñar.
La técnica se ha investigado, se han refinado las heurísticas, resultando en una técnica
bien establecida. (Nielsen, 1993).
Las heurísticas HE, o los principios de usabilidad, se han establecido con la práctica en
el diseño y evaluación de interfaces de usuario. Esto es, contienen una compilación de
prácticas de buen diseño y fallas en diseño conocidas que han surgido en el campo del
desarrollo de interfaces de usuario en los últimos treinta años. No son derivadas de las
teorías de psicología de procesamiento de información que se expuso previamente,
aunque se pueden comprender en términos de esa teoría. Se expondrá una breve
descripción de como se usa esta técnica y la descripción de cada heurística y su relación
con la teoría de proceso de información. Se presentarán ejemplos detallados de cada
heurística conforme vayan surgiendo en el resto del curso
Para llevar a cabo una evaluación heurística es necesario que varias personas analicen el
diseño de interfazde usuario para verificar si infringe alguna de las heurísticas. Si
infringe alguna heurística es necesario modificar el diseño.
El diseño puede estar en cualquier etapa de desarrollo del producto. Puede ser tan
preliminar como un borrador a lápiz del sistema; un prototipo parcial en Visual Basic; o
un sistema operacional completo. Sin embargo, conforme el sistema esté más avanzado,
más caro costará arreglar los problemas de usabilidad - por lo tanto HE tiene más valor
en los primeros borradores o prototipos.
Una vez que comprendas las heurísticas, te darás cuenta que ya las usado de manera
implícita al diseñar. Por lo tanto, las heurísticas pueden servir de inspiración para
algunos detalles en el diseño de interfaces de usuario (por ejemplo, que palabras utilizar
como etiquetas en los botones o menús) así como servir como una técnica de evaluación
una vez que se haya hecho el diseño.
Breve explicación de la heurística. El diseño de la interfaz del usuario debe utilizar los
conceptos, lenguaje, y las convenciones del mundo real que sean familiares para el
usuario. Esto significa que el programador del sistema debe comprender la tarea que el
sistema debe desempeñar - desde el punto de vista del usuario. Los aspectos culturales
se hacen relevantes para el diseño de sistemas computacionales globales .
Relación con el modelo de procesa miento de información del usuario. Los usuarios
cometerán errores y por lo tanto, necesitan una opción fácil para corregirlos .
Estándares y Consistencia
Prevención de E r rores
Relación con el modelo de procesa miento de información del usuario. Los usuarios
pueden cometer errores debido a fallas en la percepción, a falta de conocimiento del
paso siguiente, a solo recordar la esencia del comando y no todos los detalles, o un error
al teclear o apuntar. Algunos de estos errores pueden se pueden prevenir al mostrar solo
las acciones que son aceptables en un punto particular de interacción (al sombrear los
botones inapropiados). Otros errores pueden ser detectados tan pronto el usuario lo
cometa (no aceptar las abreviaciones incorrectas de un estado de la república en una
forma de direcciones).
Reconocer en V ez de Recordar
Breve explicación de la heurística. El diseño debe contar con atajos en tecleado que
permita que los usuarios expertos puedan acelerar su interacción (en lugar de siempre
usar los menús e iconos con un mouse). Los usuarios expertos deben de poder adaptar la
interfazpara que las acciones frecuentes se hagan con mayor rapidez.
A yuda y Documentación
Relación con el modelo de procesamiento de información del usuario. Una vez más,
esto es para dar al usuario suficiente información para comprender la aplicación. La
característica de búsqueda debe permitir que se encuentre información al preguntar por
la esencia del significado en lugar de la palabra clave exacta, porque las personas
recuerdan la esencia y no las palabras exactas (si es que acaso lo supieron alguna vez) .
Resumen
Si tomas en cuenta esta diez heurística al diseñar una interfazde usuario, tu sistema
tendrá más utilidad. Para tener suficiente tiempo para corregir las fallas, es
recomendable que el sistema sea evaluado por varias personas durante las primeras
etapas de desarrollo del sistema (aunque sea en borrador o prototipo).
Referencias
Nielsen, Jakob. Usability Engineering. Boston, MA: Academic Press (AP Professional),
1993.
Nielsen, Jakob, and Robert L. Mack, eds. Usability Inspection Methods. New York,
NY: Wiley, 1994.
Las pruebas de usabilidad que emplean pensamiento en voz alta son técnicas empíricas
utilizadas para evaluar la usabilidad del prototipo de una interfaz. "Esta técnica puede
ser el método ingenieril de usabilidad más valioso" (Nielsen, 1993, p. 195). Esta técnica
consiste en pedirle al usuario que comente en voz alta lo que está pensando mientras
lleva a cabo una tarea con tu sistema; mientras tanto, el programador debe observar
silenciosamente y aprender lo que piensa el usuario de la tarea que está realizando y qué
partes del sistema representan para él un problema.
Aún y cuando es posible llevar a cabo esta prueba basándote en un prototipo de papel,
es más fácil y más real llevar a cabo esta prueba con un prototipo ya funcional, por lo
que esta técnica, por lo general se lleva a cabo después de que se contuye el prototipo.
El procedimiento para hacer una prueba efectiva de usabilidad con pensamiento en voz
alta es relativamente fácil. Primero, se crean las tareas típicas que un usuario realiza con
frecuencia. Después se identifican los usuarios que representen el tipo de personas
típicas que usarán tu sistema; deben contar con un fondo académico similar y con la
experiencia computacional similar a la que tendrán los usuarios esperados. Se invita a
estas personas a un laboratorio, se les informa el propósito y el procedimiento de esta
prueba y luego se les da un entrenamiento sobre como pensar en voz alta. Después se
les pide pensar en voz alta mientras realizan algunas tareas predefinidas. Típicamente,
se les toma video mientras trabajan con el sistema. Se les permite utilizar todas las
opciones del sistema sin ayuda ni interrupciones. Después, se analizan los videos para
detectar "incidentes críticos" (se describe en el siguiente módulo) y algunas pistas para
conocer el problema y las posibles soluciones que existen para la siguiente versión del
sistema, o para detectar que funciones son fáciles de usar y se deben mantener en la
siguiente versión.
Como los usuarios externan en voz alta el contenido de su memoria de trabajo, los
diseñadores de interfaz que escuchan estos pensamientos pueden aprender mucho sobre
lo que están pensando. Conocen cuales comandos o elementos del menú tienen sentido
para los usuarios y de que manera se conectan con la tarea que están realizando. Pueden
conocer cuáles elementos ve el usuario y cuales de ellos pasan desapercibidos. Pueden
detectar cuales procedimientos de la interfaz son fáciles de interpretar y cuales de ellos
se interpretan de manera incorrecta. Pueden saber de que forma envía la interfaz al
usuario por un camino incorrecto, como reconoce el usuario el error y da paso atrás o
como ayuda o perjudica la interfaz a la fácil navegación del sistema. Por lo tanto, el
pedirle al usuario que piense en voz alta y observar su interacción²sin "ayudarlo"²
representa una forma valiosa de aprender mucho acerca de la usabilidad del sistema.
Referencias
Ericsson, K.A., and H.A Simon. Protocol Analysis: Verbal Reports as Data , Revised
Edition. Cambridge, MA: MIT Press, 1993
Mientras observas una interfaz usando las técnicas que vas a aprender en este curso, vas
a encontrar aspectos en la interfazque representan problemas para los usuarios ( que
querrás mejorar en la siguiente versión) y aspectos que son muy útiles para los usuarios
Diseño de Interfaces Página 36
SSD4: Diseño y Evaluación Centrado en el Usuario
Nos apegaremos a una forma de reporte estándar para que recuerdes incluir las partes
específicas de información para cada aspecto de usabilidad. El UAR debe incluir lo
siguiente:
Enseguida haremos una descripción de cada uno de los aspectos anteriores²esto es,
que significa y la razón por la cual es necesaria esta información. Presentaremos
muchos ejemplos de UAR a medida que ahondemos en los detalles de la técnicas de HE
y de pensamiento en voz alta.
Identificador U A R
Con el objetivo de que se archive el reporte, este debe contar con un identificador único.
Este identificador se puede formar con números y letras, para el caso en que más de una
persona esté trabajando en este proyecto o para el caso que se esté utilizando más de una
técnica de análisis. Por ejemplo, si Carlos Pérez y Judith Taméz están llevando este
análisis, podemos crear un identificador como CP10 o JT8. Si se están utilizando los
estudios de evaluación heurística y usabilidad de pensamiento en voz alta, los
identificadores pudieran ser HE4 o TA9.
Esta descripción será el "nombre" de la UAR que usarás cuando la menciones como
relación con otra UAR. Asigna el nombre más corto que puedas (de tres a cinco
palabras) asegurando que describa el aspecto y además que se distinga del resto de los
aspectos del sistema.
Si la UAR trata un problema (no una característica positiva), asegúrate que el nombre
contenga la descripción del problema, no de la solución. Por ejemplo, si hay un botón
como el siguiente:
y crees que la etiqueta del botón es un pequeña para una que una persona la lea
cómodamente, debes llamar la UAR de la siguiente manera "etiqueta Press-Me muy
pequeña" (que señala el problema) y no "etiqueta Press-Me debe ser de 24 puntos" (que
es una posible solución y no el problema). La razón por la cual debes etiquetar la UAR
con el problema y no con la solución, es que es probable que encuentres varios
problemas similares y juntos presentan una solución común. Pero si solucionas uno de
manera rápida y la mencionas en el nombre, tal vez opaquen los problemas comunes
que tiene la aplicación.
L as E videncias de un Aspecto
L a E xplicación de un Aspecto
NO de una manera que de insinúe que se debe hacer una evaluación del desarrollador o
del usuario.)
Debes proveer suficiente contexto en esta explicación para que la persona que lo lea
comprenda el problema²aún y cuando no conozca el sistema y no lo domine al grado
que tu lo dominas. (En nuestra experiencia, cuando leas estos reportes después de un par
de meses, necesitarás tú también mucho contexto para comprenderlos).
Aquí debes especificar, según tu razonamiento, el grado de importancia que tiene este
problema para que se resuelva o para mantenerlo como característica positiva. Aquí
puedes incluir información referente a la frecuencia con la cual se le presentará al
usuario, si acaso crees que aprenda el usuario como funciona este problema, si crees que
el problema le afecta más a los usuarios nuevos, no frecuentes o con experiencia, entre
otros.
Sin embargo, si propones alguna posible solución, documenta cualquier costo potencial
de diseño. Por ejemplo, si el problema que se presenta es que no existen atajos para los
elementos de menú del sistema de correo y propones como solución uitlizar CTRL-S
para ENVIAR el correo. El costo potencial de esta solución puede ser que el atajo ya
exista para otra función (por ejemplo para GUARDAR), así que antes de hacer un
cambio de diseño, se recomienda que analices el resto de los atajos con los que cuente el
sistema.
L a Relación que T iene con O tros Aspectos de Usabilidad (Si A caso E xiste)
Muchas veces los UAR están relacionados entre sí. Aquí es donde se documenta con
cual UAR está relacionado cada uno y un breve enunciado que indica la forma en que
está relacionado. Asegúrate que todas las UAR relacionadas documenten al resto de las
UAR relacionadas. Por decir, Si el UAR #1 está relacionado con el UAR #30, el UAR
#30 debe indicar en esta sección, la relación que tiene con UAR #1 y el UAR #1 debe
indicar la relación que tiene con la UAR #30. (El error más común es que en la UAR
más reciente indiques la relación con las UAR anteriores, pero no te regreses para
documentar en las UAR previas su relación con la UAR más reciente).
Este último punto del UAR describe un paso muy importante para el proceso de análisis
de usabilidad: da un paso hacia atrás y busca patrones en los problemas de usabilidad.
Se recomienda que lleves a cabo este paso varias veces durante el análisis. Cuando se
crea cada UAR, debes revisar los UAR previos y ver en qué forma se relacionan con el
nuevo. Cuando hayas terminado todos los UAR, debes revisar todos de nuevo y buscar
patrones. Este paso te ayuda a detectar problemas de interfazprofundos, cuya solución a
veces es sencilla y puede resolver muchos problemas pequeños. Este paso también te
puede ayudar a reunir pruebas para realizar un cambio de fondo para la
interfazpropuesta, algo que no puedes lograr al considerar las UAR de forma aislada.