En esta sección, se va a describir cómo es la estructura del software necesaria para generar una interfaz del usuario y cómo está compuesta. Además, se van a analizar, las herramientas de desarrollo que surgieron para construir la componente de interacción de un sistema.
Una vez que esté desarrollado el diseño de la interfaz, que haya sido analizado, testeado, aceptado por los usuarios del sistema, se procede a la etapa de implementación. La programación de una interfaz del usuario alcanza usualmente, grandes proporciones de código, ocupando más del 50% de la codiicación total del sistema.
La complejidad no reside sólo en la extensión del código, sino en cómo se estructura el software necesario, para generar una interfaz del usuario y cómo está compuesta.
Una manera de estructurar el software de la interfaz, es deinirla como una jerarquía de máquinas abstractas, cada una proveyendo servicios determinados a las capas superiores y requiriendo servicios de las capas inferiores.
Cualquiera de estas técnicas permiten de diferente manera, la realización de evaluación de usabilidad de la interfaz, se presta a un juego de comparaciones y testeos basados en un conjunto de criterios u objetivos ya preestablecidos.
Además, los prototipos pueden realizarse utilizando medios como el papel o mediante un graicador, procesador de textos, software presentacionales como PowerPoint, software de instrucciones asistida como Adobe Director, sitios para diseño y testeo de bocetos o wireframes como Cacoo, Pencil, Balsamik. Existen prototipos programados mediante lenguajes de programación como Java, Delphi, Visual Basic, Toolbook, entre otros, donde se permite además representar el control de diálogo.
Finalmente, los prototipos se pueden clasiicar por su grado de idelidad. La idelidad depende de ciertos factores como ser, del medio utilizado para la representación prototípica, de las características representadas en la interfaz, del grado de completitud funcional que presenta, como ser, si incluye validaciones, ayudas, mensajes de error, funciones sintácticas, entre otros.
Con respecto a la idelidad de los prototipos, los mismos pueden ser:
Clasificación según Fidelidad
Explicación
Prototipo de Baja Fidelidad
nSon una sucesión de pantallas estáticas en papel o por computadora.
nLa sucesión de pantallas y el lujo, efecto de acciones del usuario deben ser contadas textualmente o representadas a mano.
nSon más fáciles de realizar, más rápidos pero menos eicientes. Prototipo de Alta
Fidelidad
nSon considerados especiicaciones ejecutables del diseño.
nDescriben el comportamiento y los aspectos dinámicos de la interfaz.
nRepresentan la interacción, el control del diálogo y el estilo del
diálogo.
nEn ellos se ve relejado las dependencias en vivo, el asincronismo, el lujo de control de aberturas y cierres de contextos, el feedback, que incluya validaciones, ayudas y mensajes de error.
nSon más difíciles de realizar, pero más expresivos, más verídicos y mejores en la comunicación y presentación.
Tabla 2.7: Clasiicación del Prototipo según Fidelidad.
Importante
nEn un proceso de ingeniería de la interfaz del usuario, se pueden utilizar prototipos de diferente idelidad.
nLos prototipos de baja idelidad, pueden ser utilizados al principio para presentar ante el usuario diferentes propuestas de diseño de la interfaz. Cuando el usuario elige una, se comienza entonces con el ciclo de vida prototípico completo, desarrollando las sucesivas versiones en alta idelidad.
Las capas de abstracción del software, entonces son:
Capas del software Explicación
Manejadores de dispositivos
nManejan los requerimientos especíicos de entrada y salida,
realiza el control del dispositivo físico.
nPor ejemplo, el manejador de dispositivos envía instrucciones a nivel de pixeles para mostrar el cursor en una determinada posición. Sistema de ventanas nControla los recursos reales involucrados en la interacción, maneja
los recursos de dispositivos físicos de entrada y salida.
nProvee las abstracciones utilizadas para la interacción.
nPor ejemplo, el sistema de múltiples ventanas.
Objetos de interacción nCapa que maneja y controla los objetos de interacción con el cuál
el usuario interactúa.
nEs una entidad que el usuario puede percibir y manipular con dispositivos de interacción físicos tales mouse, teclado.
nUn objeto de interacción incluye una componente de presentación (output) y una componente de interacción (input).
El controlador del diálogo
nEs una porción del software de la interfaz que controla el medio utilizado y la secuenciación de las interacciones del usuario. nDetermina la lógica de los eventos.
nPor ejemplo, determina cuándo un objeto de interacción, está habilitado para el usuario.
nTambién, controla el estilo de la interacción, por ejemplo, controla multidiálogos abiertos en una caja de diálogos.
Corazón funcional nPertenece a la aplicación. Permanece totalmente ignorante de la forma en que sus estructuras de datos y funciones son expuestas al usuario, vía los objetos de interacción.
nDebe ignorar tanto el medio usado para la entrada y salida, como la forma especíica en la cuál la información es trasmitida.
nPor ejemplo, no debería saber si en un sistema de ventanas se utiliza el audio o gráicos en la salida, o qué lenguaje es usado para presentar el texto, ó si las entradas fueron ingresadas por teclado o con reconocimiento de voz.
Tabla 2.8: Capas del Software.
La modularización del software en capas de abstracción, permite tener independencia entre las capas, respecto a las implementaciones de cada una de ellas, tener un mecanismo de protección y ocultamiento de la información que cada una maneja.
Así, se deine una taxonomía del software de la interfaz del usuario en donde se divide al sistema interactivo, en los siguientes niveles:
Figura 2.7: Software de la Interfaz del usuario dividido en diferentes capas de abstracción
Proceso de Desarrollo de la Interfaz del Usuario
SISTEMAS DE VENTAS MAYOR ABSTRACCIÓN CONTROL DE DIÁLOGO CORAZÓN FUNCIONAL OBJETOS DE INTERACCIÓN MANEJADORES DE DISPOSITIVOS
Cada capa, funciona como una máquina abstracta, que provee ciertos servicios. El usuario de estos servicios se denomina cliente, y el proveedor de los mismos se denomina servidor. Cada capa intermedia, debe controlar una porción del total de la interfaz, y debe proveer un mapeo entre las capas inferiores y superiores a ella.
Entonces, proporcionan al diseñador del diálogo, una manera de especiicar la interfaz en un alto nivel de abstracción, automatizando todo el proceso de traducción al código resultante y facilitando todo el desarrollo del ciclo de vida prototípico de la interfaz.
Como se dijo anteriormente, crear una buena interfaz del usuario para un sistema es una tarea difícil. El software para soportar estas interfaces, usualmente es muy extenso, complejo y difícil de reinar.
Además, como la ingeniería de una interfaz del usuario, generalmente consiste en una repetición del ciclo de diseño, prototipación y evaluación, hasta que los requerimientos del usuario sean satisfechos, esta iteración encarece mucho el proceso de desarrollo.
En pos de reducir el alto costo de diseño e implementación de la misma, surgieron softwares dedicados al gerenciamiento de las interfaces.
Una herramienta de software para el desarrollo de una interfaz del usuario puede ir desde una simple rutina, a un ambiente completo para el análisis, representación, diseño, implementación y evaluación de la interfaz.
Surgen, así los denominados “UIT, User interface Toolkits”, que son librerías de rutinas que pueden ser invocadas para implementar ciertos aspectos de la interfaz, de bajo nivel.
Particularmente, estas librerías proveen la implementación de algunos objetos de interacción como calendarios interactivos, gráicos estadísticos, con el manejo de sus dispositivos físicos asociados. Los toolkits, solamente cubren la etapa de la implementación de alguna parte o componente de la interfaz del sistema.
Por otro lado, se encuentran los “UIMS, sistemas para el gerenciamiento de las interfaces del usuario”. Estos son completos ambientes interactivos, generalmente basados en un conjunto de herramientas para proveer e integrar la mayoría de las etapas del desarrollo de la interfaz.
En particular, los UIMS pueden soportar la mayoría de las fases del ciclo de vida de la interfaz del usuario, como su diseño, prototipación, ejecución, evaluación, modiicación y mantenimiento.
Estos sistemas, administran los detalles de la pantalla, sus entradas y salidas asociadas y la interacción con el resto del programa. Proveen técnicas de interacción, permiten manipular la secuencia de eventos, el control del diálogo, más todo el manejo de dispositivos de hardware.
Además, permiten que todo este proceso de desarrollo lo pueda realizar los propios desarrolladores del diálogo, quienes pueden no ser puramente programadores.