Está en la página 1de 19

112 Herramientas

ltima modificacin: 21/12/2001

Objetivos.........................................................3 Introduccin...................................................4 1Sistemas basados en manipulacin directa...4 2Tcnicas de diseo........................................5 3Arquitecturas................................................7 4Herramientas de diseo y construccin de IU .................................................................10 5Ejemplos de lenguajes de marcado en la red .................................................................16 Conclusiones.................................................18 Referencias...................................................18 Bibliografa....................................................19

Objetivos
Ofrecer una visin global de las herramientas para la creacin de interfaces de manipulacin directa. Presentar las tcnicas de diseo y las arquitecturas disponibles para las interfaces grficas de usuario. Analizar los entornos de desarrollo existentes para la construccin de sistemas interactivos.

Introducir los lenguajes de marcado como herramientas para el desarrollo de sistemas web.

Introduccin
Como se ha visto en captulos anteriores, en todo desarrollo de aplicaciones interactivas, el diseador debe establecer los mecanismos de comunicacin entre el sistema y el usuario. En particular, en las interfaces de manipulacin directa, en las que se ofrece al usuario un conjunto de elementos grficos con los que podr interactuar, se debe definir cules son las operaciones que se van a poder llevar a cabo sobre estos elementos y cules son los efectos que se producen como consecuencia de esas acciones. Una vez que la interaccin ya est diseada, el programador debe encargarse de gestionar complejos objetos de informacin que representan, por un lado, a estos elementos grficos y a sus comportamientos y, por otro, a los dispositivos de entrada y salida a travs de los cuales los usuarios recibirn/emitirn informacin. Para realizar esta labor necesitan disponer de herramientas de desarrollo que les faciliten la implementacin de sistemas interactivos [DIX98]. Estas herramientas se caracterizan porque ayudan a minimizar el esfuerzo necesario para trasladar la semntica del diseo de la interfaz a la semntica que ofrece el entorno operativo con el que se est trabajando y se integran en el proceso de desarrollo de la interfaz [BAE95]. Adems, estas herramientas facilitan la realizacin de modificaciones sobre el producto, haciendo posible el desarrollo de prototipos. De esta forma se puede integrar el proceso de evaluacin en el ciclo de desarrollo, haciendo efectivo el diseo iterativo que proporcionar un producto ms til y utilizable. Este captulo recoge algunas de las arquitecturas para el desarrollo de sistemas interactivos y algunas de las alternativas que se le ofrecen al programador a la hora de desarrollar sus aplicaciones. En concreto, se presentar cmo se desarrollan estas interfaces interactivas utilizando lenguajes de programacin (v.g., el entorno abstracto de ventanas AWT de Java), asistentes de entornos de desarrollo ( v.g., VisualBasic), herramientas de autor (v.g., ToolBook) y, por ltimo, se presentarn, algunas de las opciones disponibles para el desarrollo de entornos virtuales (v.g., VRML). A continuacin y debido fundamentalmente a la importancia y popularidad que ha adquirido la web, se incluye una seccin dedicada a explicar los fundamentos de los lenguajes de marcado como herramientas para la especificacin de contenidos, que no de la interfaz de usuario.

Sistemas basados en manipulacin directa


Tal como hemos descrito en el tema de los estilos de interaccin, el trmino manipulacin directa, acuado por BEN SHNEIDERMAN en 1983, se refiere al hecho de que los usuarios puedan llevar a cabo las tareas y observar sus resultados de forma inmediata sirvindose de la representacin visual tanto de los objetos como de las acciones. Sin embargo, una de las principales desventajas de la manipulacin directa es que su programacin es compleja y normalmente requiere la utilizacin de elementos grficos de cierta complejidad.

Herramientas 5

El principal objetivo de las herramientas software utilizadas en el diseo y desarrollo de interfaces basadas en la manipulacin directa consiste en facilitar la programacin y el manejo de los elementos grficos. Estas herramientas se pueden dividir en dos grandes grupos: aquellas que sirven para programar elementos grficos y aquellas que parten de esos elementos grficos para construir las interfaces. La separacin en estos dos grupos es difcil de establecer, ya que normalmente las herramientas de programacin disponen de libreras que se pueden considerar como componentes ya disponibles, y las herramientas basadas en componentes requieren algn tipo de programacin para su adecuacin a cada interfaz concreta. En primer lugar se presentan tcnicas de diseo de interfaces que se deberan seguir a la hora de dotar a un sistema interactivo de una interfaz grfica de usuario. A continuacin, y con el fin de situar cada uno de los tipos de herramientas dentro del sistema en el que se enmarcan, se presentan las arquitecturas sobre las que se desarrollan y explotan los sistemas de manipulacin directa. Por ltimo se presentan las herramientas disponibles divididas en herramientas de programacin y herramientas basadas en componentes.

Tcnicas de diseo
La interfaz de usuario es un aspecto muy importante a tener en cuenta dentro del proceso de desarrollo de sistemas interactivos, llegando a suponer esta parte alrededor de la mitad del cdigo final de la aplicacin. Aunque se puede desarrollar una interfaz de usuario partiendo de cero, la solucin ms comnmente usada, por razones de eficiencia y uniformidad, entre otras, es apoyarse en arquitecturas que incluyen gestores de ventanas y a veces tambin cajas de herramientas. Esto implica que la interfaz estar ntimamente relacionada con el sistema de gestin de ventanas, por lo que se hace aconsejable una separacin entre la aplicacin y su interfaz para conseguir los siguientes objetivos: Portabilidad. Permitir que una misma aplicacin pueda ser utilizada en diferentes sistemas. Reusabilidad. componentes. La separacin incrementa la reusabilidad de los

Mltiples interfaces . Flexibilidad para disponer de diferentes interfaces para la misma funcionalidad. Personalizacin. Adecuar las caractersticas de la interfaz a las preferencias y necesidades del usuario sin tener que modificar la aplicacin. Siguiendo estos principios se describen a continuacin tres posibles modelos de arquitectura para la construccin de interfaces de usuario: el modelo Seeheim, el ModelViewController , y el PAC.

Modelo Seeheim
El Modelo Seeheim se present en 1985 dentro una por aquel entonces nueva categora de herramientas denominada UIMS ( User Interface Management Systems ). El modelo plantea la comunicacin entre el usuario y la aplicacin estructurada en tres niveles: 1) El nivel de presentacin . La parte esttica y visible de la interfaz que se comunica con el usuario y se construye sobre sistemas de ventanas y cajas de herramientas. Supondra el lxico de la interfaz. El nivel de dilogo. La parte dinmica que maneja los eventos o mensajes que se producen como consecuencia de las acciones del usuario sobre la

2)

6 La interaccin persona-ordenador interfaz, y establece la comunicacin entre el nivel de presentacin y el nivel de aplicacin, es decir, establece la relacin entre los eventos y su correspondiente respuesta por parte del nivel de aplicacin. Se podra equiparar a la sintaxis de la comunicacin entre los otros dos niveles. 3) Interfaz de aplicacin . La parte de la aplicacin que el usuario controla a travs de la interfaz y que es visible para ste ltimo. Equivaldra a la semntica de la aplicacin.

La divisin en capas facilita el tratamiento de cada una por separado y adems promueve la reutilizacin y la portabilidad, con lo que se posibilita el desarrollo rpido de prototipos, tarea fundamental para un diseador.

ModelViewController (MVC)
Una de los inconvenientes que podramos encontrar en el modelo Seeheim es que considera nicamente una arquitectura modular, pero no presta atencin a la relacin entre el modelo conceptual y el modelo mental del usuario. La interfaz de usuario debera ser capaz de representar los objetos de la aplicacin de modo que el usuario comprenda la relacin entre la representacin y el mundo real. Los objetivos que se plantean son: El usuario percibe y acta sobre objetos. El usuario conoce los objetos por su comportamiento. MVC es un modelo arquitectnico utilizado en el entorno de desarrollo de Smalltalk80, y se puede utilizar para la construccin de aplicaciones interactivas. Todos los objetos de una aplicacin (OO) se ajustan al modelo MVC. Los tres componentes de MVC corresponden a los tres componentes externos de la interfaz de usuario. Bajo un paradigma de objetos, los mtodos externos encapsulan el estado del objeto. Esta representacin explcita enfatiza que los componentes de la interfaz son objetos y no funciones o programas. Los componentes son los siguientes: 1) Modelo. El modelo refleja la estructura del modelo conceptual. El modelo es la informacin que manipula la aplicacin y que supone la representacin de los objetos reales pero de forma totalmente independiente de su representacin visual. Vista. Comparte la misma estructura y se encarga de la presentacin sobre los dispositivos de salida (grficos) del modelo de forma tangible, es decir, se encarga de su representacin visual. Controlador. Establece cmo los componentes interactuan con los eventos, es decir, cmo responden a stos, de modo que la vista ser la encargada de reflejar visualmente la respuesta a cada evento, pudindolo hacer de forma distinta para cada vista.

2)

3)

Un mismo modelo se puede asociar a diferentes triadas para obtener diferentes tcnicas de presentacin/interaccin. Cada par VC slo se puede asociar a un nico modelo.

Arquitectura multiagente (PAC)


Arquitectura propuesta por J. COUTAZ [DIX98] que se apoya en tres pilares bsicos: presentacinabstraccincontrol. Presentacin: Gestiona las entradas/salidas Abstraccin: Representa la semntica de la aplicacin. Control: Gestiona la el dilogo y la correspondencia entre la aplicacin y presentacin.

Herramientas 7

Como se puede apreciar, es una arquitectura bastante similar a la MVC, aunque existen diferencias entre ellas. PAC agrupa la entrada/salida en la presentacin, mientras que en MVC la vista se ocupa de la salida y el controlador de la entrada. Adems, PAC introduce el control como mecanismo para mantener la consistencia entre la abstraccin y la presentacin, lo que en MVC no supone una tarea asignada de antemano. Por ltimo, PAC no ha nacido vinculado a ningn entorno de programacin, como le ocurre a MVC, aunque ambos lleven a una aproximacin orientada a objetos.

Arquitecturas
En la actualidad, el entorno ms comn de manipulacin directa sigue siendo la interfaz WIMP (Windows, Icons, Menus and Pointers ) por lo que nos centraremos en los sistemas de ventanas. La arquitectura genrica de un sistema de ventanas se puede dividir en los siguientes niveles desde el punto de vista de las interfaces de usuario: Sistema de ventanas Gestor de ventanas. Juego de herramientas (Toolkit ). Herramientas de alto nivel. Un sistema de ventanas divide la pantalla en diferentes regiones normalmente rectangulares, denominadas ventanas, y se apoya en el gestor de ventanas. El sistema de ventanas supone la interfaz funcional, permitiendo a la aplicacin escribir y dibujar en la pantalla y tambin recibir informacin del usuario. El gestor de ventanas permite al usuario final mover y redimensionar las ventanas, y es el responsable de presentar la barra de ttulos, los lmites y los iconos de las ventanas. Una de las caractersticas ms importantes de un sistema de ventanas es su habilidad para dar una independencia al programador de los dispositivos de hardware. Los dispositivos de que dispone por el momento un ordenador para la manipulacin directa son una pantalla, un teclado y un ratn. El programador tiene que interaccionar con un terminal abstracto que comprende un lenguaje genrico que despus se traduce al del dispositivo especfico. Para poder adaptar el terminal abstracto a un dispositivo especfico se parte de la existencia del device driver correspondiente. Por encima del sistema de ventanas se encuentra la caja de herramientas o toolkit que contiene los elementos grficos o widgets ms usados, como botones, barras de men, barras de desplazamiento, iconos, campos de entrada y de salida de varios tipos, y mensajes de error, de ayuda, etc. Por encima del toolkit puede haber herramientas que ayuden al diseador a utilizar la juego de herramientas. Las herramientas de alto nivel son normalmente un conjunto de herramientas visuales y de lenguajes de programacin que permiten desarrollar aplicaciones utilizando el toolkit inicial.

Sistemas basados en ventanas y gestores de ventanas


Un sistema basado en ventanas permite disponer de diferentes contextos (aplicaciones), restringindolos a porciones de pantalla (ventanas), y compartiendo los recursos del ordenador (dispositivos de entrada, memoria, etc.). Estos sistemas suministran:

8 La interaccin persona-ordenador Modelo de entrada . El usuario interacciona sobre ventanas y sus acciones se transmiten a la aplicacin correspondiente mediante eventos que posteriormente sern interpretados. Modelo grfico . La aplicacin especifica la salida grfica y el sistema de ventanas garantiza que esta se produce sobre su ventana correspondiente. Gestin de ventanas . Ofrece una gestin simple de las ventanas por parte del usuario: abrir, cerrar, dimensionar, etc. Estilo de presentacin . Determina la apariencia general y el modo de interaccin (look&feel ). Los sistemas de ventanas generalmente estn implementados sobre parte del sistema operativo, permitiendo llevar a cabo varias actividades simultneamente en distintas posiciones de la pantalla, es decir, ofreciendo capacidad de multiproceso. Otra ventaja adicional es que suministran una interfaz de alto nivel con el ratn, teclado y pantalla. Adems permiten que el cdigo de la aplicacin sea portable, siempre que est soportado por el mismo gestor de ventanas. Como ejemplos de gestores de ventanas cabe mencionar los ms significativos por su implantacin en el mercado: MS (windows), X (unix).

MS Windows
Es una familia de sistemas operativos de la empresa Microsoft que se han convertido en estndares de facto debido a su gran difusin. Todos ellos presentan un nico tipo de interfaz de usuario de tipo WIMP que ofrece la posibilidad de personalizarse.

XWindows
El sistema de ventanas XWindows se ha convertido en el estndar industrial dentro del entorno UNIX para aplicaciones basadas en ventanas. Uno de los factores diferenciales de XWindows respecto de Windows por ejemplo, es que no se restringe a un nico estilo de interfaz de usuario, sino que permite un conjunto de ellos.

Sistemas de ventanas de software libre


Dentro de este apartado aparecen como sistemas lderes KDE y Gnome. En ambos se trat en un comienzo de proporcionar un entorno de escritorio para los sistemas libres, pero han pasado a ofrecer una importante coleccin de herramientas, libreras y componentes para el desarrollo de aplicaciones en sistemas Unix. Se podran calificar como herramientas de alto nivel ya que la granularidad de sus componentes supone un nivel por encima de los elementos grficos habituales como puedan ser ventanas, botones e iconos.

Juegos de herramientas o Toolkit


Los juegos de herramientas (toolkit ) suministran al programador rutinas de alto nivel que definen tcnicas de interaccin usuales denominadas controles o widgets . Algunos ejemplos son: botones, entrada de literales, ventanas pulldown, popup, iconos, deslizadores, formularios para introduccin de datos. Podemos crear elementos estructurados en jerarquas, como pueden ser los mens en cascada. Cada widget posee una apariencia especfica (look) y comportamiento (feel), junto a un conjunto de rutinas para manipular su configuracin. Ejemplos de juegos de herramientas son OSF Motif, Windows SDK, Libreras grficas como las de GKS, PHIGS, Visual C o Tcl/Tk. Los juegos de herramientas suponen una ayuda para el desarrollo de la interfaz grfica de usuario, lo que sera el nivel de presentacin de Seehim y PAC, o la vista de MVC, y no soporta directamente datos de la aplicacin. La aplicacin se

Herramientas 9

realiza normalmente empleando lenguajes de programacin como C,C++ o Java, donde se integran las llamadas a elementos de la interfaz de usuario. El desarrollador introduce en el programa los controles ( widgets ) para manejar las entradas del usuario, y les asocia un cdigo (callbacks ) especfico de la aplicacin. El esfuerzo de construccin de interfaces de usuario basados en juegos de herramientas es grande ya que implica una gran carga de programacin, por lo que es fcil cometer errores. Adems no existe facilidad para el prototipado rpido, ya que es necesaria una fase de compilacin previa. Por otro lado, los juegos de herramientas son cada vez ms complejos y los entornos de programacin donde se emplean requieren experiencia y mucho tiempo de aprendizaje, por lo que el mantenimiento de la interfaz se complica. Situados por encima de los juegos de herramientas aparecen los entornos denominados WYSIWYG (What you see is what you get lo que ves es lo que obtienes) para la creacin de interfaces grficas de usuario, que como principal ventaja presentan la del prototipado rpido, pero que adems generan directamente cdigo enlazado con el juego de herramientas nativo (Motif, Windows, etc.). Por ejemplo: XDesigner (para Motif), Zinc Software (Windows), XF (TK) y VisualBasic. El modo de trabajar con este tipo de entornos consiste habitualmente en que el diseador selecciona elementos de una paleta los controles, los coloca en la pantalla y, mediante un formulario, ajusta sus atributos para determinar su apariencia y comportamiento. De esta forma, el diseador puede evaluar la interfaz conforme la va diseando. Dentro de este apartado se pueden incluir tambin los UIMS (User Interface Management System ). Un UIMS es un conjunto de herramientas que permiten al diseador crear una interfaz de usuario completa sin necesidad de usar un lenguaje de programacin tradicional. Para ello ayudan a especificar, implementar, probar y mantener una interfaz de usuario. Este tipo de herramientas permiten el diseo interactivo, y como en el resto de juegos de herramientas, generan el cdigo correspondiente para la plataforma deseada. Se basan en el concepto de independencia, en la separacin de los aspectos de diseo lgico de la implementacin, como ya se vio en el modelo MVC. Adems, soportan un conjunto de elementos de interaccin que permiten al diseador construir la presentacin en pocas lneas, evitndole trabajar al nivel de programacin. De esta forma se obtienen tambin las siguientes ventajas: 1) Mejorar la productividad del desarrollo de la interfaz, acortando tiempo de desarrollo y obteniendo una produccin mas elegante. La fase de produccin se hace ms rpida y sencilla. El desarrollador de interfaces slo se dedica a la parte creativa, mientras que la fase de programacin reside en el propio UIMS. Mejorar calidad de interfaces debido a su extensibilidad, portabilidad y sobre todo fcil depuracin.

2) 3)

Ejemplo de este tipo de sistemas son Open Look, OSF Motif, MacApp, Windows, OS/2, que generalmente estn compuestos de un editor interactivo para la interfaz grfica y un lenguaje de alto nivel para la especificacin del comportamiento de la interfaz. En su da, los dos sistemas ms populares fueron Motif y Open Look. En ambos casos se trataba de sistemas para el desarrollo de interfaces sobre sistemas de ventanas Xwindows. Motif est diseado de acuerdo con las normas CUA ( Common User Access ) que definen la asociacin de comandos a letras, lo que permite una transicin inmediata de los entornos PC a una estacin de trabajo. La compatibilidad entre las normas CUA permite una equivalencia de teclado para entornos sin ratn. El entorno de desarrollo de Motif incluye el juego de herramientas Motif y el lenguaje UIL.

10 La interaccin persona-ordenador Open Look es un estndar basado en un diseo de AT&T bastante peculiar, por ejemplo las barras de desplazamiento utilizadas en Open Look, diferentes de las utilizada en otros sistemas, utilizan la imagen de un ascensor en un cable con anclas superior e inferior.

Herramientas de diseo y construccin de IU


El diseo y desarrollo de una aplicacin y de su interfaz son actividades que tienen lugar de forma simultnea. Aunque sean dos partes del sistema final que deben gozar del mayor grado de independencia entre ellas, ambas se ven inmersas en el desarrollo de un sistema final para el que se ha decidido, normalmente de antemano, el lenguaje de programacin que se va a utilizar. En este apartado se ver en detalle el caso del lenguaje de programacin Java ya que la orientacin a objetos es el paradigma de programacin que se podra denominar vigente en la actualidad y con una gran difusin en el mercado. Adems, la portabilidad de este lenguaje hace que sea utilizable sobre casi cualquier plataforma. En la primera parte se describe en detalle la librera grfica de Java y en la segunda se introduce lo que probablemente ser el futuro de los sistemas interactivos entre otros: los componentes.

Herramientas de programacin
Java dispone del AWT (Abstract Window Toolkit ), una librera, o paquete en terminologa Java, que incluye elementos grficos en forma de clases incluidas en el ncleo del JDK ( Java Development Kit ). El paquete AWT proporciona los componentes bsicos para el desarrollo de aplicaciones grficas, tales como botones, mens, listas, cajas de texto, etc. En su primera versin esto, que no es poco, era todo. Con ello se poda ejecutar el mismo programa, sin necesidad de recompilarlo, en un sistema operativo MacOS, en Windows o en una estacin Unix con XWindows. Con la aparicin de la versin 1.1 del JDK se aadieron nuevas funcionalidades. Por ejemplo, un mecanismo de tratamiento de eventos, la transferencia de informacin grfica entre aplicaciones, soporte para el desarrollo de componentes ``ligeros'' que consumen menos recursos, etc. El inconveniente fue que las modificaciones necesarias para aadir estas funcionalidades supusieron un cambio radical en el modelo de programacin de las aplicaciones grficas, haciendo incompatibles las aplicaciones desarrolladas con JDK 1.0 con las del JDK 1.1. La nueva versin del AWT, la 1.2, est formada por seis paquetes: java.awt: Funcionalidad bsica java.awt.color: Clases encargadas de los colores java.awt.datatransfer: Soporte para la transferencia de informacin java.awt.dnd: Funcionalidades para druganddrop java.awt.event: Gestin de eventos java.awt.font: Soporte para fuentes java.awt.geom: Soporte para geometra en dos dimensiones java.awt.im: Entorno de lectura (input method) java.awt.image: Manipulacin de imgenes java.awt.print: Sistema de impresin

Herramientas 11

El funcionamiento de AWT se basa en delegar gran parte de su funcionalidad en componentes nativos (peers). Las clases de AWT simplemente empaquetan'' las clases nativas. Esta decisin de diseo facilit el rpido desarrollo de las interfaces grficas de Java. A cambio, el modelo resulta difcil de trazar y en algunos casos de entender.

Herramientas basadas en componentes


La creciente demanda de desarrollo de aplicaciones hace indispensable establecer dos niveles de programadores: aquellos que conocen lenguajes de programacin y tienen experiencia en su uso, y aquellos que conocen los entornos de ventanas desde el punto de vista del usuario pero solo tienen conocimientos bsicos de programacin o carecen de experiencia. Una posibilidad para ampliar a un mayor nmero de personas el desarrollo de sistemas es la utilizacin de componentes. Los componentes en Java se denominan JavaBeans. Un JavaBean, o un Bean, es una porcin de software reutilizable que se muestra 'empaquetado' a travs de una interfaz visual y con el que se puede trabajar tambin de forma visual gracias a las herramientas grficas disponibles que simplifican su uso y facilitan su integracin dentro de aplicaciones ms grandes. La herramienta que se utiliza para el desarrollo de JavaBeans es el Beans Development Kit (BDK) que incluye la BeanBox para poder probar los Beans desarrollados manejndolos de forma visual.

Herramientas de autor
Las herramientas de autor tienen la finalidad de servir como elemento de escritura y de edicin para los autores de aplicaciones interactivas. Estos autores son en la mayora de los casos los programadores del sistema que se han reconvertido, mezclando las labores propias de la implementacin con otras ms creativas necesarias para este nuevo tipo de escritura y edicin, en la que contenidos de naturaleza diversa se funden formando un discurso multimedia. Las herramientas de autor proporcionan una gran variedad de servicios que dependen del entorno en el que el autor trabaje y del tipo de aplicacin que quiera desarrollar. Desde el punto de vista de la interfaz, la utilizacin de lenguajes visuales de comunicacin, en los que la manipulacin directa de objetos, las cajas de dilogos y los mens desplegables son las formas ms usuales para la interaccin personaordenador, es la frmula ms usada en este tipo de herramientas, debido a que el autor puede ignorar aspectos de programacin (por ejemplo, reservar espacios de memoria para los punteros) que no son interesantes para su cometido. Son muchas las caractersticas que tienen cumplir las herramientas de autor para que ayuden en el proceso de creacin [DIA96]. En primer lugar, una exigencia bsica para todo entorno de autora es la existencia de mecanismos para preparar y manipular material multimedia. La tecnologa no debe mermar las capacidades expresivas y creativas del autor, sino que debe permitirle emplear imaginativamente la informacin. As, por ejemplo, el autor puede necesitar analizadores ortogrficos para revisar sus escritos, editores de dibujo integrados para preparar sus grficos y aplicaciones para manipular el material videogrfico. Las herramientas actuales generalmente incorporan estos mecanismos facilitando la labor del autor. Adems, estas herramientas deben permitir el uso de contenidos de informacin que sean capaces de reaccionar ante eventos, ya sean producidos desde el exterior (v.g., el movimiento del ratn) o desde el interior (v.g., un intervalo de tiempo desde el inicio de la sesin) del sistema interactivo. Tambin, se debe

12 La interaccin persona-ordenador poder asociar atributos o metadatos a estos contenidos, ya sean semnticos o de interfaz, para que el autor pueda controlar tanto su significado en el contexto como su apariencia. Adems, las herramientas de autor deben disponer de funciones con las que poder construir, de forma sencilla, mecanismos de ayuda para la interaccin (v.g., mecanismos de navegacin), as como comandos para la bsqueda de informacin, ya sea por medio de cadenas de caracteres, de consultas con un lenguaje de interrogacin, o de algn mecanismo ms complejo, como podra ser la utilizacin de los metadatos mencionados anteriormente. Normalmente las herramientas de autor se clasifican por el modelo de informacin que utilizan, ya que habitualmente simulan un espacio conocido por el autor y el lector, es decir, utilizan una metfora como base del desarrollo. Al emplear algo conocido se facilita la labor del autor y del lector en el desarrollo y uso de la aplicacin en la mayora de los casos. Ejemplos de uso de metforas como modelo de informacin son: HyperCard que utiliza una pila de tarjetas, ToolBook que se basa en un libro con pginas y Macromedia Director que usa un escenario con actores. Por otro lado, las herramientas de autor se pueden clasificar en funcin de cmo se describe el comportamiento de los elementos existentes en la aplicacin [V94], pudiendo ser: basados en guiones ( scripts ), que son aquellos en los que autor escribe guiones de comportamiento en los contenidos con los que interacta el usuario (v.g., ToolBook); basados en iconos, que incluye a aquellas herramientas que ofrecen al autor una serie de iconos para definir la secuencia de aparicin de los contenidos en la aplicacin (v.g., Authorware); y basados en el tiempo, que referencian a los sistemas que basan su desarrollo en una lnea de tiempo sobre la que se sincroniza y alinean los contenidos (v.g., Macromedia Director).

Entornos virtuales
En esta seccin se presentan algunas herramientas que hacen posible la creacin de mundos virtuales de escritorio, denominados as porque permiten al usuario sumergirse y explorar un espacio tridimensional desde su ordenador y con el ratn, sin necesidad de utilizar ningn dispositivo hardware especial, de manera que se acerca esta tecnologa a un gran nmero de usuarios. No obstante, si se dispone del hardware apropiado la ejecucin se acelera en gran medida, ya que el clculo de cmo se presenta el mundo se llevar a cabo en dicho hardware, liberando al procesador de ese proceso. En primer lugar, se puede mencionar QuickTime VR, la propuesta de Apple para generar espacios trimidensionales. Con este software, los diseadores pueden convertir de forma muy simple imgenes bidimensionales en mundos virtuales con escenas tridimensionales y componentes interactivos. Su facilidad de uso reside en que se asume la metfora de trabajo de "apuntar y pinchar" ( pointandclick ) y, adems, se beneficia de la intuitiva interfaz de usuario propia de Mac. Los mundos virtuales generados con esta herramienta pueden ser utilizados en distintas plataformas y, de hecho, pueden verse con cualquiera de las aplicaciones capaces de ejecutar pelculas quicktime. No obstante, y a diferencia de las dos otras opciones que se presentarn a continuacin, ni el software de creacin, como por ejemplo QuickTime VR Authoring Studio, VR Worx 2.0 o Corel PhotoPaint 8, ni la aplicacin generada son independientes de la plataforma. En la Figura 1 se muestra un ejemplo de utilizacin de esta tecnologa para realizar una visita virtual por la ciudad de Vancouver.

Herramientas 13

Figura 1 Una visita virtual por Vancouver recorriendo sus calles y usando un mapa (http://www.virtuallyvancouver.com)

Otra posibilidad consiste en utilizar VRML ( Virtual Reality Modeling Language ISO/IEC 14772), un lenguaje con el que pueden definirse tanto el espacio de coordenadas del mundo virtual, como los objetos tridimensionales y multimedia que lo componen, los comportamientos de esos objetos y enlaces a otras aplicaciones. Este lenguaje est pensado para ser utilizado en entornos distribuidos como el web, para lo cual hace posible que un mundo virtual se componga de varios ficheros enlazados o incluidos, hace uso de estndares establecidos de ISO e Internet para otros formatos de fichero y proporciona una sintaxis compacta. Sin embargo, muchos diseadores pueden encontrar complicado el uso de VRML, puesto que se trata de un lenguaje de modelado con el que se especifican los objetos geomtricos y sus caractersticas. Para facilitar esta tarea, existen algunas herramientas que permiten dibujar los mundos tridimensionales de una forma ms intuitiva, tales como 3D Studio, y, posteriormente, traducirlos a una especificacin VRML. Por ltimo, para visualizar esta informacin a travs de navegadores (v.g. Netscape) se pueden utilizar diversos visores como son Cosmo Player (http://www.sgi.com/software/cosmo) o Cortona (http://www.parallelgraphics.com /products/cortona). En la Figura 2 se muestra un ejemplo de realidad virtual desarrollada con VRML y que se visualiza en los dos visores mencionados. Como se puede apreciar, las opciones de movimiento por el mundo tienen distinta representacin en ambos visores. Finalmente, la API de javaSoft denominada Java 3D pertenece a un conjunto de APIs que han sido desarrolladas con el fin de ofrecer un entorno en que incluir en las pginas web todo tipo de informacin multimedia. JAVA 3D presenta dos ventajas fundamentales: al igual que ocurra con VRML, es independiente de plataforma de manera que el diseador puede aprovecharse del hecho de escribir un nico cdigo ejecutable en cualquier sitio; y, adems, al contrario que QuickTime VR o VRML no requiere que el usuario instale un plugin en su navegador web para utilizar el mundo virtual. Esta API se puede utilizar para crear aplicaciones tridimensionales o applets 3D para el web, consiguiendo en ambos casos una gran eficiencia en la utilizacin de grandes mundos virtuales que, adems, pueden incluir sonido espacial tridimensional de forma que se ofrezca al usuario una sensacin de autntica inmersin en el mundo virtual. El paradigma de programacin subyacente, la programacin orientada a objetos, ofrece al diseador abstracciones de alto nivel que le permiten crear su escena virtual pensando en objetos geomtricos, en vez de en formas particulares (por ejemplo, tringulos o cuadrados), y componindolos en el espacio sin necesidad de tener en cuenta la forma de optimizar el cdigo para conseguir una mayor eficiencia.

14 La interaccin persona-ordenador

Figura 2 Una visita virtual por el centro de empresas del Ayuntamiento de Cdiz utilizando el visor Cosmo Player (izquierda) y Cortona (derecha)

Lenguajes de marcado
En el mundo de los documentos en papel, el trmino marcado hace referencia a la manera en la que el editor anota los manuscritos con especificaciones tipogrficas y otros datos sobre su presentacin. En los documentos electrnicos, el marcado es el trmino empleado para describir los cdigos, denominados tambin etiquetas, aadidos al texto electrnico, que definen la estructura y el formato en el que tiene que aparecer [BRY88]. Adems, el marcado puede ser utilizado para propsitos muy diferentes, como son la escritura, la impresin, el intercambio, la presentacin de pantallas, etc. Los sistemas de autoedicin, las bases de datos documentales, los sistemas hipermedia, y otras aplicaciones orientadas al documento se pueden aprovechar de estas etiquetas, de manera que los archivos no slo sean conjuntos de contenidos sino que tengan una semntica asociada. El lenguaje de marcado define un conjunto de signos y reglas con los que etiquetar los documentos, e histricamente han aparecido tantos como productos haba en el mercado. La gran variedad de lenguajes de marcado y su patente incompatibilidad constituyen la causa de los problemas que se plantean al intercambiar un documento. Los lenguajes estndar proporcionan una manera de solventar esta situacin, ya que son independientes de la aplicacin y de la plataforma hardware [RAA93], y emplean el cdigo ASCII, en la mayora de los casos, para marcar el documento. Cuando se habla de lenguajes de marcado, es importante distinguir entre la estructura lgica y fsica del documento. La estructura lgica est formada por las distintas partes que lo componen y por sus relaciones. Por ejemplo, un documento puede constar de una introduccin, seguida de una lista de captulos formados a su vez por secciones, y finalizar con una conclusin. La estructura fsica, en cambio, indica la apariencia del documento, ya sea en el papel o en la pantalla, incluyendo sus componentes fsicos (v.g., pginas), la situacin de los elementos (v.g., grficos) y la tipografa empleada. En la Figura 3 [DIA96], se pueden ver a la izquierda algunos de los componentes que describen lgicamente un documento y a la derecha algunos de los fsicos. Mientras que en el material impreso es imposible separar las dos estructuras, en los documentos electrnicos la informacin sobre la estructura lgica y la fsica se puede almacenar independientemente. Esto es posible gracias a los lenguajes de marcado genricos [BRY88], que permiten etiquetar los diferentes componentes o elementos lgicos del documento manteniendo separadas las instrucciones de procesamiento, que se ejecutaran mediante un programa destinado a dar formato al texto. En otras palabras, el marcado genrico describe la estructura de un documento y sus atributos, sin especificar el proceso que se debe realizar sobre l. Esto supone que el mismo documento se puede presentar de muchas maneras, de acuerdo con las normas de estilo que se le apliquen.

Herramientas 15

Figura 3 Componentes lgicos y fsicos de un documento

Hay otros tipos de marcado, denominados especficos [BRY88], que no mantienen esta separacin. El marcado especfico contiene instrucciones relativas a la apariencia fsica del documento, por lo que depende de la aplicacin que se utilice para procesarlo. Ejemplos clsicos de marcado especfico son Script, nroff o TeX y los usados por los procesadores de texto, tales como Word o WordPerfect. La publicacin electrnica se puede beneficiar de la flexibilidad, velocidad y eficiencia que se consigue cuando los documentos estn disponibles en un formato de marcado genrico [SMI92]. El editor puede producir fcilmente mltiples presentaciones, ya que al documento se le pueden asociar mltiples estilos sin tener que introducir de nuevo la informacin, con el consiguiente ahorro de costes y tiempo. Un ejemplo de este tipo de lenguaje es SGML ( Standard Generalized Markup Language ), que se ha convertido en los ltimos aos en la forma ms habitual de intercambio de informacin debido fundamentalmente a su flexibilidad y generalidad. SGML es la base para la definicin de lenguajes utilizados en aplicaciones hipermedia en la red, tales como HTML, XML, etc.

SGML
SGML es un ejemplo de lenguaje genrico que apareci con el identificador 8879 como norma ISO (International Organization for Standardization ) en 1986 [WRI92]. La comunidad editorial fue la que dio origen a esta norma, al considerar que la flexibilidad en el diseo de los documentos era de mxima importancia. El objetivo que persegua era proporcionar una manera normalizada de transmitir los documentos en un formato adecuado para los procesos de edicin e impresin [BRO89]. SGML es apropiado para describir texto altamente estructurado, aunque tambin se pueden incluir en los documentos otros elementos, como por ejemplo diagramas y grficos, independientemente de su formato de codificacin. SGML contiene las reglas para crear una infinita variedad de lenguajes de marcado, pero no describe el formato de los documentos marcados [HER94]. Una definicin similar, dada por MACLEOD et al. [MAC91], clasifica a SGML como un sistema para especificar lenguajes de marcado, es decir, un metalenguaje. Esto hace posible que, mediante la utilizacin de una definicin de tipo de documento (denominada DTD Document Type Definition ), se pueda especificar la estructura lgica de una clase de escrito. Una DTD es una definicin formal que indica qu elementos se incluyen como contenidos de los documentos y en qu orden. Cada elemento en el documento se marca mediante una etiqueta de comienzo y otra de final. Estas etiquetas vienen especificadas mediante un identificador genrico, que define el tipo del elemento

16 La interaccin persona-ordenador (por ejemplo, prrafo, cabecera o figura) y unas caractersticas, o atributos, que cualifican al identificador. En concreto una DTD define: 1) 2) los identificadores genricos de los elementos que se permiten en un tipo de documento; para cada elemento, los posibles atributos y sus rangos de valores, as como el que toma por defecto; su estructura y su contenido, incluyendo los subelementos que pueden ocurrir y en qu orden.

Una DTD considera un documento como un rbol, cuya raz es el propio documento. Un ejemplo de cmo podra aparecer un elemento en una DTD se puede ver en la Figura 4. Libro, pginas previas, cuerpo y pginas finales son los identificadores genricos de los elementos. El elemento libro se define mediante el grupo (pginas previas, cuerpo, pginas finales). Cada tem en el grupo necesita, a su vez, una mayor definicin, hasta llegar a elementos terminales que no se subdividen en otros.

<!ELEMENT libro (pginas previas, cuerpo, pginas finales)>


Figura 4 Definicin de un elemento en una DTD

Ejemplos de lenguajes de marcado en la red


A partir de la definicin de SGML se han generado diversos lenguajes de marcado que sirven, o han servido, para el desarrollo de aplicaciones hipermedia. Es cierto que normalmente estos lenguajes no se utilizan directamente, sino que normalmente se usan herramientas de autor que generan el cdigo en algunos de los lenguajes que se mencionan a continuacin (v.g., Macromedia DreamWeaver). De esta forma el programador no se preocupa ni de la sintaxis ni de la semntica asociada a los cdigos concretos si no que mediante lenguajes visuales establece la estructura, el contenido y la apariencia de los hiperdocumentos que conforman su aplicacin. Algunos de los lenguajes de marcado ms conocidos son: HTML (Hypertextual Markup Language ). Es una aplicacin de SGML que incluye tipos de documentos predefinidos. Por ello, todos los documentos de tipo HTML contienen los mismos elementos y los mismos atributos, es decir todos los documentos de este tipo tienen la misma estructura pero no los mismos contenidos. La ltima versin de HTML es la 4.02 siendo una recomendacin no una especificacin ya que no se lleg a un acuerdo total sobre ella. Esta norma ha ido desvirtundose de tal manera que adems de elementos conceptuales como pueden ser los enlaces, contiene tambin elementos de presentacin (v.g., el elemento para poner en negrita un texto). XML (Extensible Markup Language ). Es una aplicacin de SGML, lo que significa que en su especificacin se indican como se deben describir los elementos que participan en el hiperdocumento pero no los elementos en s. Por tanto, cuando se quiere describir un documento mediante XML hay que describir en primer lugar el tipo de documento en que se basa, es decir la DTD, y a continuacin los contenidos concretos asociados a cada elemento. Un ejemplo de construccin de aplicaciones con XML es el desarrollo de normas para tipos concreto de documentos, como puede ser un libro electrnico. OpenEBook es una iniciativa de desarrollo de una DTD para libros electrnicos en la que numerosas empresas del sector bibliogrfico estn trabajando para conseguir que con una misma plataforma se puedan leer, comprar y distribuir libros electrnicos que tengan un formato comn.

Herramientas 17

XHTML (Extensible Hypertext Markup Language ). Es una nueva definicin de HTML a partir de XML. Este lenguaje se basa en la redefinicin de las DTDs de HTML versin 4 mediante XML lo que permite entre otras cosas que los documentos siguiendo XHTML se puedan visualizar tanto en navegadores de HTML como en los de XML. Adems, permite la inclusin de programas dentro de su contenido siguiendo el modelo de objetos que define la especificacin DOM ( Document Object Model), la cual permite actualizar y modificar los contenidos, estructura y estilo de los documentos de forma dinmica. HyTime (Hypermedia/TimeBased Structuring Language ). Es una extensin de SGML que especifica un conjunto de conceptos bsicos con los que se puede definir la estructura lgica de documentos hipertextuales y multimedia [DER94]. HyTime normaliza aquellos mecanismos que se refieren a la localizacin de porciones de documentos hipermedia y sus componentes multimedia de informacin, incluyendo enlaces, alineamiento en el espacio y sincronizacin en el tiempo, es decir, proporciona una manera homognea de enlazar a un documento cualquier tipo de elemento, en cualquier parte y en cualquier instante. Sirve como base de intercambio de informaciones hipermedia, independientemente de la aplicacin que las haya creado, y se ocupa de normalizar la estructura del documento y la identificacin de los objetos de informacin que lo conforman. HyTime, por tanto, no establece los contenidos del hiperdocumento, ni la codificacin de la informacin, ni los objetos, ni la aplicacin que trabaja sobre ellos, ni arquitecturas de documentos particulares, ni tipos de enlaces, ni tipos de documentos. Debido a la dificultad en su uso, esta norma no ha sido utilizada de una forma masiva, aunque muchas de sus ideas se encuentran en las normas que en la actualidad se estn imponiendo. SMIL (Synchronized Multimedia Integration Language ). Es un lenguaje basado en XML para la definicin de aplicaciones multimedia interactivas, de manera que un autor puede describir el comportamiento temporal de presentaciones multimedia, asociar enlaces a contenidos de cualquier tipo (v.g. vdeos, sonidos, programas, etc.) y describir la presentacin en la pantalla. Todos estos ejemplos de lenguajes de marcado se basan en la definicin de la estructura de los elementos, indicando cules existen en el dominio del documento y cmo participan en l, es decir lo que anteriormente se ha denominado lenguajes de marcado genricos. Pero estos lenguajes de marcado se complementan con otros lenguajes que se utilizan para describir cual es la apariencia final en el soporte fsico de visualizacin. Un ejemplo es DSSSL (Document Style Semantics and Specification Language ) que tiene como objetivo definir el nivel de presentacin independientemente de los sistemas de procesamiento, con lo cual el usuario puede especificar el aspecto de cada uno de los elementos de la DTD. Este lenguaje normalmente se utiliza en combinacin con HyTime indicando la apariencia de los objetos definidos en sus documentos. Otro ejemplo, de uso ms extendido, es CSS (Cascading Style Sheets ) que define la apariencia de los elementos HTML o XML que se muestran en un navegador Web. La idea bsica en este tipo de lenguaje es el uso de la pgina fsica sobre la que se definen algunas caractersticas de su apariencia, como puede ser la posicin de un contenido o la tipografa utilizada. Un paso ms adelante es XSL ( Extensible Stylesheet Language ) que, ampliando las ideas de los dos lenguajes anteriores y basando su descripcin en XML, permite la definicin de la presentacin de documentos XML. El proceso de construccin consiste en dos pasos. En el primero se transforma el documento XML expandiendo el documento y calculando aquellos apartados dependientes del estilo

18 La interaccin persona-ordenador (v.g. tipo de ordenacin de una lista, inclusin de un ndice de contenidos, etc.). En el segundo paso, se prepara el documento para ser presentado en el dispositivo de visualizacin (navegador, impresora, telfono mvil, etc.) adaptndolo a las caractersticas propias del dispositivo.

Conclusiones
Existe la necesidad de ofrecer entornos de prototipado rpido de la interaccin personaordenador a travs de la interfaz en las aplicaciones grficas. Las herramientas de desarrollo de interfaces grficas de usuario tienden a ofrecer elementos cada vez de ms alto nivel, siendo los componentes la tendencia actual de mayor grado de abstraccin. La tendencia actual hacia los desarrollos web hace que estn apareciendo herramientas que utilizan el propio web como marco de trabajo para el desarrollo de aplicaciones accesibles desde navegadores, como puede ser Zope (http://www. zope.org).

Referencias
[BAE95] BAECKER R., GRUDIN J., BUXTON W. y GREENBERG S. eds. Readings in HumanComputer Interaction: towards the year 2000 , 2 edicin. Morgan Kaufman Published, 1995

[BRO89] BROWN H. Standards for Structured Documents en The Complete Journal , Nm. 32 (6), Pg. 505-514, 1989 [BRY88] [DER94] [DIA96] [DIX98] [HER94] BRYAN M. SGML An author's guide to the Standard Generalized Markup Language. AddisonWesley, Londres, 1988 DEROSE S. J. y DURAND D. G. Making Hypermedia Work: HyTime . Kluwer Academic Publishers Boston, 1994 DAZ P., CATENAZZI N. y AEDO, I. De la multimedia a la hipermedia. Ed. Rama, Madrid, 1996 DIX A., FINLAY J., BOWD G. y BEALE R. HumanComputer Interaction, 2 edicin. Prentice Hall, LSI n 1119, 1998 HERWIJNEN E. VAN Practical SGML, 2 Edicin . Kluwer Academic Publishers, Boston, 1994

[MAC91] MCLEOD I. A., BARNARD D. T., HAMILTON D. y LEVISON M. SGML Documents and Nonlinear Text Retrieval en Actas de RIAO 1991 , Abril 1991, Nm. 2-5, Barcelona, Pg. 226-244, 1991 [SMI92] [V94] SMITH J. M. SGML and related standards . Ellis Horwood, Nueva York, NY, 1992 VNNEN K. Metaphorbased User Interfaces for Hyperspaces en Designing User Interface for Hypermedia (SCHULER W., HANNEMANN J. y STREIZ N. eds.), Springer Verlag, Alemania, Pg. 68-78, 1995 RAAIJ T. VAN Portable, Device Independient Documents Hype or Reality en Proceedings of Document Interoperability Conference , 1617 noviembre 1993, Londres, 1993 WRIGHT H. SGML frees information en Byte, Nm. 17 (6), Pg. 279286, junio 1992

[RAA93]

[WRI92]

Herramientas 19

Bibliografa
BAECKER R., GRUDIN J., BUXTON W. y GREENBERG S. eds. Readings in Human Computer Interaction: towards the year 2000 , 2 edicin. Morgan Kaufman Published, 1995 BROWN H. Standards for Structured Documents en The Complete Journal . Nm.32 (6), Pg. 505-514, 1989 BRYAN M. SGML An author's guide to the Standard Generalized Markup Language . AddisonWesley, Londres, 1988 CULWIN, F. An X/Motif Programmers Primer . Prentice Hall, Londres, 1994 DEROSE S. J. y DURAND D. G. Making Hypermedia Work: HyTime . Kluwer Academic Publishers Boston DAZ P., CATENAZZI N. y AEDO, I. De la multimedia a la hipermedia. Ed. Rama, Madrid, 1996 DIX A., FINLAY J., BOWD G. y BEALE R. HumanComputer Interaction, 2 edicin. Prentice Hall, LSI n 1119, 1998 HERWIJNEN E. HERWIJNEN E. 1994
VAN VAN

Practical SGML. Kluwer Academic Publishers, Dordretch, 1990 Practical SGML, 2 edicin. Kluwer Academic Publishers, Boston,

MCLEOD I. A., BARNARD D. T., HAMILTON D. y LEVISON M. SGML Documents and Non linear Text Retrieval en Actas de RIAO 1991 , Abril 1991, Nm. 2-5, Barcelona, Pg. 226-244, 1991 SMITH J. M. SGML and related standards . Ellis Horwood, Nueva York, NY, 1992 VNNEN K. Metaphorbased User Interfaces for Hyperspaces en Designing User Interface for Hypermedia (SCHULER W., HANNEMANN J. y STREIZ, N. eds.), Springer Verlag, Alemania, Pg. 68-78, 1995 RAAIJ T. VAN Portable, Device Independient Documents Hype or Reality en Proceedings of Document Interoperability Conference , 16-17 noviembre 1993, Londres, 1993 WRIGHT H. SGML frees information en Byte , Junio 1992, Nm.17 (6), Pg. 279286, 1992

20 La interaccin persona-ordenador

También podría gustarte