Desarrollo de software para interfaces de usuario: una perspectiva de ingeniería

Soporte a la Implementación

Visión de Conjunto

Las herramientas de programación para sistemas interactivos permiten traducir diseños abstractos y principios de usabilidad a un formato ejecutable. Estas herramientas ofrecen diferentes niveles de servicio al programador. Los sistemas de ventanas actúan como un entorno central tanto para el programador como para el usuario, permitiendo una única estación de trabajo para la interacción. Los kits de herramientas proporcionan abstracción, separando la entrada y la salida, y permitiendo al programador describir el comportamiento de los objetos de forma similar a como el usuario los percibe. Los sistemas de gestión de interfaz de usuario (UIMS) controlan la relación entre los objetos de presentación de un kit de herramientas y su semántica funcional en la aplicación.

Introducción

Este capítulo aborda el soporte de programación para la implementación de un sistema interactivo. El diseño y análisis de sistemas interactivos se aborda desde una perspectiva abstracta. Aunque el examen detallado del hardware puede dificultar la comprensión de la interacción desde la perspectiva del usuario, no podemos ignorar la especificación del dispositivo. La especificación detallada proporciona instrucciones al programador sobre las acciones de la aplicación interactiva, que deben traducirse a instrucciones ejecutables por la máquina. A nivel básico, el software permite acciones como leer eventos de dispositivos de entrada y escribir comandos gráficos a la pantalla. Si bien es posible crear sistemas interactivos con lenguaje de bajo nivel, resulta tedioso y propenso a errores. El énfasis está en cómo los niveles de abstracción sobre los servicios de hardware y software permiten al programador construir el sistema en términos de las técnicas de interacción deseadas. Aunque existe una separación fundamental entre entrada y salida a bajo nivel, esta distinción se puede eliminar a nivel de programación con las abstracciones correctas. A continuación, se abordan las capas desde el hardware hasta los conceptos abstractos de programación para la interacción.

8.1

8.2 Elementos de Sistemas de Ventanas

En capítulos anteriores, se discutieron los elementos de la interfaz WIMP. Aquí se detallan los sistemas de ventanas usados para construirla. La primera característica importante es la independencia del programador respecto a las especificaciones de hardware. El programador se dirige a un terminal abstracto con un lenguaje genérico traducible al lenguaje de dispositivos específicos. Un sistema de ventanas tiene un lenguaje genérico para el terminal abstracto llamado modelo de imágenes. Por eficiencia, se usan primitivas para el procesamiento de imágenes de texto.

8.2.1 Arquitecturas de Sistemas de Ventanas

Bass y Coutaz [29] identifican tres arquitecturas para implementar las funciones de un sistema de ventanas. La arquitectura cliente-servidor (Figura 8.2) ofrece la mayor portabilidad. El servidor X permite el acceso a la visualización, interpreta peticiones, demultiplexa eventos de entrada y minimiza el tráfico de red. El gestor de ventanas resuelve conflictos de entrada/salida entre clientes. El Consorcio X creó el Manual de Convenciones de Comunicación Inter-Client (ICCCM) para estandarizar políticas como la transferencia de datos, la selección del cliente activo y la disposición de ventanas.

Paradigmas de programación

Existen dos paradigmas: basado en eventos, donde la aplicación controla el bucle de eventos, y basado en notificación, donde un notificador centralizado filtra los eventos a la aplicación. La programación con kits de herramientas se adapta al paradigma basado en notificación.

Kits de Herramientas

Los kits de herramientas proporcionan objetos de interacción (widgets) predefinidos. Dos características los hacen adecuados para la programación orientada a objetos: la definición de clases como moldes para objetos y la herencia. El kit de herramientas de Java, AWT, mapea objetos de interfaz a clases de Java.

Sistemas de Gestión de Interfaz de Usuario (UIMS)

Los UIMS añaden servicios al diseño de sistemas interactivos. Sus principales preocupaciones son: una arquitectura conceptual que separa la semántica de la aplicación de la presentación, técnicas para implementar la separación y técnicas para la gestión en tiempo de ejecución. Algunos prefieren el término sistemas de desarrollo de interfaz de usuario (UIDS) para las herramientas que abordan las actividades de diseño.

8.5.1 UIMS como Arquitectura Conceptual

La separación entre semántica de aplicación y presentación permite la portabilidad, múltiples interfaces, personalización y control de diálogo. El modelo Seeheim separa la aplicación, el diálogo y la presentación. El modelo MVC (Modelo-Vista-Controlador) y el modelo PAC (Presentación-Abstracción-Control) son otras arquitecturas conceptuales.

Técnicas de Control de Diálogo

Se describen varias técnicas: redes de menú, gramáticas de anotaciones, lenguajes para eventos, lenguajes declarativos, restricciones y especificaciones gráficas.

Resumen

Este capítulo describe las herramientas de soporte a la programación para la implementación de sistemas interactivos, desde sistemas de ventanas hasta kits de herramientas y UIMS. Los sistemas de ventanas proporcionan independencia del dispositivo y control de múltiples aplicaciones. Los kits de herramientas combinan entrada y salida en objetos de interacción. Los UIMS separan la aplicación de la presentación y ofrecen diversas técnicas de control de diálogo.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.