Las
interfaces surgen como una evolución de la Programación Orientada a Objetos con
la necesidad de agrupar y reutilizar las distintas funcionalidades de un objeto
en una interfaz más manejable. El diseño Orientado a
interfaces pretende que el desarrollo del software genere implementaciones
de programas bien estructurados. Mediante las interfaces, podremos crear
mejores diseños sin basarnos tanto en la POO.
Principios
y requisitos de diseño de una interfaz
Ø
Familiaridad del
usuario: Utilizar
términos y conceptos que se toman de la experiencia de las personas que más
utilizan el sistema.
Ø
Consistencia: Siempre
que sea posible, la interfaz debe ser consistente en el sentido de que las
operaciones comparables se activan de la misma forma.
Ø
Mínima
sorpresa: El comportamiento del sistema no debe provocar sorpresa a los
usuarios.
Ø
Recuperabilidad: La
interfaz debe incluir mecanismos para permitir a los usuarios recuperarse de
los errores. Esto puede ser de dos formas: Confirmación de acciones
destructivas. Proveer de un recurso para deshacer
Ø
Guía al usuario: Cuando los
errores ocurren, la interfaz debe proveer retroalimentación significativa y
características de ayuda sensible al contexto.
Ø
Diversidad de
usuarios: La
interfaz debe proveer características de interacción apropiada para los
diferentes tipos de usuarios.
Prototipos
de la implementación
Ø Prototipos
Estáticos: son
aquellos que no permiten la alteración de sus componentes, pero sirven para
identificar y resolver problemas de diseño.
Ø Prototipos
Dinámicos: permiten
la evaluación de un modelo del sistema sobre una estación de trabajo o una
terminal.
Ø Prototipos
Robustos: deben
ser relativamente completos en la simulación de las características dinámicas
de la interfaz presentación de mensajes de error, entrada y edición de datos,
etc.
Ø
Lenguaje Natural: El usuario
emite comandos en lenguaje natural. Accesible a usuarios casuales. Fácil de
ampliar. Se requiere teclear más. Los sistemas de comprensión de
lenguaje natural no son fiables.
Interacción
del usuario en el Diseño de IU
Ø
Manipulación
directa:
Interacción directa con los objetos de la pantalla. Rápida e intuitiva. Fácil
de aprender.
Ø
Selección de
menús:
El usuario selecciona un comando de una lista de posibilidades. Evita errores
del usuario. Se requiere teclear poco. Lenta para usuarios experimentados.
Ø
Llenado de
formularios:
Introducción de datos sencilla en los campos de un formulario. Fácil de
aprender. Ocupa mucho espacio en la pantalla.
Ø
Lenguaje de
comandos:
Los usuarios emiten un comando especial y los parámetros asociados para indicar
al sistema que hacer. Poderoso y flexible. Difícil de
aprender. Administración de errores pobre.
Herramientas
Sketch fue la
primera herramienta de diseño UI (user interface). Tiene, por lo
tanto, una experiencia que la ha convertido en una alternativa
real a Photoshop. Con un conjunto de herramientas y recursos de fácil
aplicación, se puede tejer un mapa de pantallas vinculadas entre sí para
simular el comportamiento de una web o aplicación.
La ha convertido en una alternativa real a
Photoshop. Con un conjunto de herramientas y recursos de fácil aplicación, se
puede tejer un mapa de pantallas vinculadas entre sí para simular el comportamiento
de una web o aplicación.
Froont: Permite
diseñar páginas web responsivas directamente en nuestro navegador, pudiendo
exportar luego el código generado.
Prototipos
Ø
Axure: Una de las
herramientas más usadas en el ámbito profesional, permite crear prototipos de
páginas web o aplicaciones móviles con gran nivel de detalle e interacción.
Cuenta con multitud de tutoriales y una activa comunidad de usuarios.
Ø
Justinmind: Un potente
programa para construir prototipos en alta fidelidad de páginas web y apps. La
versión gratuita, aunque con menos opciones, es plenamente funcional y permite
publicar el prototipo en internet para su revisión por otros usuarios.
Ø
Invision: Herramienta
que permite añadir enlaces a nuestros diseños (web o apps), permitiéndonos así
navegar adelante y atrás por lo que antes eran imágenes estáticas. Incluye un
práctico sistema para invitar a otros usuarios para que prueben nuestro
prototipo y puedan ofrecer feedback. La versión gratuita es plenamente
funcional, pero está limitada a un solo proyecto.