La interfaz gráfica de usuario (Graphic User Interface, GUI) es comúnmente la parte del sistema con la que el usuario interactúa. La interacción humano-máquina (IHM) es la disciplina que estudia la relación en cómo las máquinas y las personas trabajan juntas.

El Diseño de Entradas y Salidas, y el Diseño de GUI, es un subconjunto de IHM. Nos centramos en:

  1. Distribución.
  2. Tipografía.
  3. Jerarquía.
  4. Legibilidad.
  5. Estética.

Una interfaz ofrece acciones que manipulan a los objetos y sus propiedades. Las operaciones pueden ser:

  • Explícitas: modelo objeto-acción.
  • Implícitas: modelo acción-objeto.

Estilos de interacción:

  1. Línea de comandos: sólo texto, se ingresan comandos por consola. Enfoque acción-objeto.
  2. Selección de menú: dado un conjunto de opciones, se eligen algunas.
  3. Formulario de entrada: pantalla estructurada de ingreso de datos.
  4. Manipulación directa: interactúa directamente con elementos gráficos. Enfoque objeto-acción.
  5. Antropomórfico: lo más humano posible, con voz o gestos.

La manipulación directa es un concepto que lo propone Shneiderman en 1982. Es un enfoque para el diseño de GUIs que se basa en:

  1. Extensión del mundo real, haciendo una analogía de un escritorio real (con carpetas, archivos, una papelera, etc).
  2. Objetos y acciones continuamente visibles.
  3. Acciones rápidas, incrementales, responsivas, y reversibles.
  4. Iconos memorizables e intuitivos (universales).

Clasificación según la distancia traslacional:

  1. Débil: teclado y ratón.
  2. Media: táctil y gestos táctiles.
  3. Fuerte: gestos corporales, voz.
  4. Inmersiva: realidad virtual y aumentada.

8 reglas de oro (según Shneiderman):

  1. Mantener consistencia.
  2. Usabilidad universal.
  3. Comentarios informativos.
  4. Diálogos con cierre.
  5. Evite errores.
  6. Fácil reversión de acciones.
  7. Mantenga a usuarios en control.
  8. Reduzca la carga de memoria.

Componentes de una GUI

Una GUI tiene ventanas:

  • Primarias: interacción principal.
  • Secundarias: de diálogo, mensaje (alertas), o utilitarias.

Menus: presentan una gama de comandos disponibles. Permiten jerarquizar la información. Conviene usar verbos para comandos, incluir al menos tres ítems pero con un solo nivel, y usar shortcuts. Hay de tipo drop-down, sub-menu, despegable, etc.

Controles: objetos gráficos que representan operaciones o propiedades. Es básicamente todo objeto visible en la pantalla. Hay botones, cajas de texto, etiquetas, radio-buttons, check-lists, group fields, listas, etc.