# Interfaz de usuario

La interfaz de usuario, IU (del inglés User Interface, UI), es el medio que permite la comunicación entre un usuario y una máquina, equipo, computadora o dispositivo, y comprende todos los puntos de contacto entre el usuario y el equipo.
Normalmente suelen ser fáciles de entender y fáciles de accionar, aunque en el ámbito de la informática es preferible referirse a que suelen ser "usables", "amigables e intuitivos" porque es compleja.

## Definición

La interfaz de usuario es el espacio donde se producen las interacciones entre seres humanos y máquinas. El objetivo de esta interacción es permitir el funcionamiento y control más efectivo de la máquina desde la interacción con el humano.
Las interfaces básicas de usuario son aquellas que incluyen elementos como ventanas, menús, contenido gráfico, cursor, sonidos, y en general, todos aquellos canales por los cuales se permite la comunicación entre el ser humano y la máquina.
El objetivo del diseño de una interfaz es producir una interfaz que sea intuitiva (explicarse por sí misma), eficiente y agradable para que al operar la máquina dé los resultados deseados.
Hay una diferencia entre una interfaz de usuario y una interfaz de operador o una interfaz hombre-máquina (HMI).
* El término "interfaz de usuario" se usa a menudo en el contexto de sistemas informáticos (personales) y dispositivos electrónicos.
** Donde una red de equipos u ordenadores están interconectados a través de un MES (Manufacturing Execution System) o Host para mostrar información.
** Una interfaz hombre-máquina (HMI) suele ser local para una máquina o pieza de equipo, y es el método de interfaz entre el ser humano y el equipo/máquina. Una interfaz de operador es el método de interfaz mediante el cual se accede o controla múltiples equipos, vinculados por un sistema de control de host.
** El sistema puede exponer varias interfaces de usuario para servir a diferentes tipos de usuarios. Por ejemplo, una base de datos de biblioteca computarizada podría proporcionar dos interfaces de usuario, una para los usuarios de la biblioteca (conjunto limitado de funciones, optimizado para facilitar su uso) y la otra para el personal de la biblioteca (amplio conjunto de funciones, optimizado para eficiencia).
* La interfaz de usuario de un sistema mecánico, un vehículo o una instalación industrial a veces se denomina interfaz hombre-máquina (HMI). HMI es una modificación del término original MMI (interfaz hombre-máquina). En la práctica, la abreviatura MMI todavía se usa con frecuencia. aunque algunos pueden afirmar que MMI significa algo diferente ahora. Otra abreviatura es HCI, pero se usa más comúnmente para interacción humano-ordenador. Other terms used are operator interface console (OIC) and operator interface terminal (OIT). Sin embargo, se abrevia, los términos se refieren a la "capa" que separa a un ser humano que está operando una máquina de la máquina misma. Sin una interfaz limpia y utilizable, los humanos no podrían interactuar con los sistemas de información.
En ciencia ficción, HMI se usa a veces para referirse a lo que se describe mejor como una interfaz neuronal directa. Sin embargo, este último uso está teniendo una aplicación cada vez mayor en el uso en la vida real de prótesis (médicas), la extensión artificial que reemplaza una parte del cuerpo que falta (por ejemplo, implantes cocleares).
En algunas circunstancias, los ordenadores pueden observar al usuario y reaccionar de acuerdo con sus acciones sin comandos específicos. Se requiere un medio de seguimiento de partes del cuerpo, y se han utilizado experimentalmente sensores que toman nota de la posición de la cabeza, dirección de la mirada, etc. Esto es particularmente relevante para interfaces inmersivas.

## Funciones principales

Las funciones principales son las siguientes:
* Puesta en marcha y apagado.
* Control de las funciones manipulables del equipo.
* Manipulación de archivos y directorios.
* Herramientas de desarrollo de aplicaciones.
* Comunicación con otros sistemas.
* Información de estado.
* Configuración de la propia interfaz y entorno.
* Intercambio de datos entre aplicaciones.
* Control de acceso.
* Sistema de ayuda interactivo.
* Sistema de facilidad visual

## Diseño de interfaz

Los métodos principales utilizados en el diseño de la interfaz incluyen la creación de prototipos y la simulación.
El diseño típico de interfaz hombre-máquina consta de las siguientes etapas: especificación de interacción, especificación de software de interfaz y creación de prototipos:
* Las prácticas comunes para la especificación de interacción incluyen diseño centrado en el usuario, persona, diseño orientado a actividades, diseño basado en escenarios y diseño de resiliencia.
* Las prácticas comunes para la especificación de software de interfaz incluyen casos de uso y restringen la aplicación mediante protocolos de interacción (destinados a evitar errores de uso).
* Las prácticas comunes para la creación de prototipos se basan en bibliotecas de elementos de interfaz (controles, decoración, etc.).

### Principios de calidad

Las interfaces de calidad suelen compartir ocho cualidades o características:
* Claridad: la interfaz evita la ambigüedad al dejar todo claro a través del lenguaje, la fluidez, la jerarquía y las metáforas de los elementos visuales.
* Concisión: Es fácil hacer que la interfaz sea clara clarificando y etiquetando todo en exceso, pero esto lleva a que la interfaz se sature, es decir, hay demasiadas cosas en la pantalla al mismo tiempo. Si hay demasiadas cosas en la pantalla, es difícil encontrar lo que se está buscando y, por lo tanto, la interfaz se vuelve tediosa de usar. Hacer que una interfaz sea clara y concisa al mismo tiempo es desafiante en algunos casos.
* Familiaridad: Incluso si alguien usa una interfaz por primera vez, ciertos elementos aún pueden ser familiares. Las metáforas de la vida real se pueden utilizar para comunicar el significado.
* Capacidad de respuesta: Una buena interfaz no debe sentirse lenta. Esto significa que la interfaz debe proporcionar buenos comentarios al usuario sobre lo que está sucediendo y si la entrada del usuario se está procesando correctamente. Esto incluye las micronteracciones, como las animaciones de botones, pantallas de carga, notificaciones, etc.
* Consistencia: Mantener la coherencia de la interfaz en toda la aplicación es importante porque permite a los usuarios reconocer los patrones de uso. La consistencia se puede lograr no sólo visualmente, sino también en la forma de interacción.
* Estética: Además de crear un ambiente más agradable para el usuario, la claridad también dependerá de la estética.
* Eficiencia: Una buena interfaz debería permitir una navegación óptima y el uso de atajos para mejorar la productividad del usuario.
* Perdón: una buena interfaz no debe castigar a los usuarios por sus errores, sino que debe proporcionar los medios para remediarlos.

### Principio del menor asombro

El principio del menor asombro (POLA abreviado en inglés) es un principio general en el diseño de todo tipo de interfaces, y que se basa en la suposición de que los seres humanos solo pueden prestar atención completa a una cosa a la vez, lo que lleva a la conclusión de que la novedad debe minimizarse.

### Principio de formación de hábitos

Si una interfaz se usa persistentemente, el usuario inevitablemente desarrollará un hábito para usar la interfaz. El papel del diseñador puede entonces caracterizarse como el de asegurar que el usuario adquiera buenos hábitos. Si el diseñador tiene experiencia con otras interfaces, desarrollará hábitos de manera similar y, a menudo, hará suposiciones inconscientes sobre cómo el usuario interactuará con la interfaz.

### Un modelo de criterios de diseño: Panel de experiencia de usuario

Peter Morville de Google diseñó el marco User Experience Honeycomb en 2004 cuando dirigía operaciones en el diseño de interfaz de usuario. El marco fue creado para guiar el diseño de la interfaz de usuario. Actuaría como una guía para muchos estudiantes de desarrollo web durante una década.
* Usable: ¿El diseño del sistema es fácil y simple de usar? La aplicación debe sentirse familiar y debe ser fácil de usar.
* Útil: ¿La aplicación satisface una necesidad? El producto o servicio de una empresa debe ser útil.
* Deseable: ¿El diseño de la aplicación es elegante y va al grano? La estética del sistema debe ser atractiva y fácil de traducir.
* Localizable: ¿los usuarios pueden encontrar rápidamente la información que buscan? La información debe ser localizable y fácil de navegar. Un usuario nunca debería tener que buscar su producto o información.
* Accesible: ¿La aplicación admite texto ampliado sin romper el marco? Una aplicación debe ser accesible para personas con discapacidades.
* Creíble: ¿La aplicación muestra seguridad confiable y detalles de la empresa? Una aplicación debe ser transparente, segura y honesta.
* Valioso: ¿El usuario final lo percibe valioso? Si se cumplen los 6 criterios, el usuario final encontrará valor y confianza en la aplicación.

## Tipos

En las interfaces de usuario se pueden distinguir básicamente tres tipos:
* Una interfaz de hardware, a nivel de los dispositivos utilizados para ingresar, procesar y entregar los datos. El teclado, ratón y pantalla visualizadora son algunos ejemplos.
* Una interfaz de software, destinada a entregar información acerca de los procesos y herramientas de control, a través de lo que el usuario observa habitualmente en la pantalla.
* Una interfaz de software-hardware, que establece un puente entre la máquina y las personas, permite a la máquina entender la instrucción y al hombre entender el código binario traducido a información legible.

### Según la forma de interactuar del usuario

Atendiendo a cómo el usuario puede interactuar con una interfaz, existen varios tipos de interfaces de usuario:
* Interfaz de línea de comandos (Command-Line Interface, CLI): Interfaces alfanuméricas (intérpretes de comandos) que solo presentan texto.
* Interfaz gráfica de usuario (Graphic User Interface, GUI): Permiten comunicarse con la computadora de forma rápida e intuitiva representando gráficamente los elementos de control y medida.
* Interfaz natural de usuario (Natural User Interface, NUI): Pueden ser táctiles, representando gráficamente un «panel de control» en una pantalla sensible al tacto que permite interactuar con el dedo de forma similar a si se accionara un control físico; pueden funcionar mediante reconocimiento del habla, como por ejemplo Siri; o mediante movimientos corporales, como es el caso de Kinect.

### Según su construcción

Pueden ser de hardware o de software:
* Interfaces de hardware: Se trata de un conjunto de controles o dispositivos que permiten que el usuario intercambie datos con la máquina, ya sea introduciéndolos (pulsadores, botones, teclas, reguladores, palancas, manivelas, perillas) o leyéndolos (pantallas, diales, medidores, marcadores, instrumentos).
* Interfaces de software: Son programas o parte de ellos, que permiten expresar las órdenes a la computadora o visualizar su respuesta.

## Valoración

El principal objetivo de una interfaz de usuario es que este pueda comunicar información a través de ella hacia algún tipo de dispositivo o sistema. Conseguida esta comunicación, el siguiente objetivo es el que dicha comunicación se desarrolle de la forma más fácil y cómoda posible para las características del usuario que utiliza el servicio.
Sin embargo, las interfaces no siempre cumplen todos los objetivos, por ejemplo: como es el caso de las consolas de línea de órdenes (CLI), que se encuentran en algunos sistemas de encaminadores (como los NOS de los routers); algunas consolas de administración con sus intérpretes de comandos (shell) de Unix, DOS, etcétera; y también en las consolas de administración de algunos servidores dedicados como Microsoft Exchange Server. Estas interfaces son fáciles de usar, sin embargo, se necesita un amplio conocimiento de la persona que las utiliza. Por lo que, tanto su curva de aprendizaje, como el conocimiento técnico previo a su uso impiden que puedan ser utilizadas por cualquier persona.
Si bien estas interfaces son las primeras que utilizaron las computadoras, y muchos usuarios podrían considerarlas anticuadas, siguen siendo incluidas en nuevos dispositivos y sistemas gracias a las ventajas que ofrecen al permitir automatizar acciones complejas mediante la creación de pequeños programas de bajo nivel (conocidos como Script o Batch).
Por otra parte, existen interfaces que reducen significativamente la curva de aprendizaje y permiten que usuarios sin experiencia y sin conocimientos técnicos puedan obtener resultados notables, por ejemplo: la interfaz táctil utilizada por los sistemas operativos de iOS y Android.
Si bien el diseño de la interfaz es crítico para el manejo del dispositivo, los diseñadores al momento de su creación ponen especial énfasis en determinar el tipo de usuario, su conocimiento y su experiencia. Esto marcará importantes diferencias entre la interfaz de línea de comandos de un gestor de correo electrónico, los menús flotantes para una aplicación de diseño gráfico o bien el despliegue de información mediante una línea de tiempo en una red social.
La tendencia a futuro se vislumbra con una importante separación entre interfaces para la creación de contenidos e interfaces para el consumo de contenidos. Como puede ser cotejado con el uso de sistemas de código de barras, sistemas de acceso RFID Etiquetas o bien Social Networks ER, para la creación de contenidos; y dispositivo como los llamados smartWatch, smartTV y tabletas.