• No results found

De la especificación dada en el anterior apartado de introducción así como en los capítulos previos podemos extraer los siguientes requisitos:

REQ[1]: El usuario podrá hacer uso, a su elección, de tres tipos de dispositivos para desplazarse y orientarse en el entorno virtual. Estos dispositivos son: teclado, tracker y joystick.

REQ[2]: El usuario podrá hacer uso, a su elección, de dos tipos de dispositivos para controlar la representación de su mano en el entorno virtual. Estos dispositivos son: teclado y guante de datos.

REQ[3]: La combinación de dispositivos elegida por el usuario estará sujeta a las restricciones reflejadas en la Figura 36.

REQ[4]: El sistema será responsable de consultar periódicamente el estado de cada dispositivo seleccionado o, en su caso, de “escuchar” los eventos procedentes de éstos y/o del sistema multi-agente.

REQ[5]: La interacción mediante dispositivos sólo afectará al control del avatar que representa al usuario o a la representación de su mano en el entorno. REQ[6]: Independientemente de los dispositivos escogidos, el sistema mantendrá

la coherencia entre la posición del avatar que representa al usuario, de su punto de vista y la de su mano virtual.

REQ[7]: El usuario podrá interrogar al sistema sobre los objetos que ve en el entorno virtual sin más que señalarlos con la mano.

REQ[8]: El sistema debe reflejar la situación del entorno virtual de acuerdo a las acciones efectuadas por el usuario con los dispositivos.

La información contenida en esta colección de requisitos nos permite definir el conjunto de casos de uso que describen la funcionalidad requerida. Además, dado que este módulo ha de ser una parte integrante de MAEVIF, su análisis funcional se hará no sólo desde el punto de vista de la interacción con usuarios externos, sino también con otros subsistemas pertenecientes a MAEVIF.

S e lec c ionar D is pos itivos U s u ario G es tion ar E vento s G e s tor d e E ven to s Inic ializ ar Son de ar D is p os it ivos

Tem poriz a dor

M und o Virtua l

R e pintar M un do C ic lo de P intad o

M ó dul o d e D is p o s itivos < < s u bs y s te m >>

Figura 37: Diagrama de casos de uso

Actor Descripción

Usuario Representa a la persona que se conecta al sistema e interacciona con

él por medio de un conjunto de dispositivos de realidad virtual.

Temporizador

Representa a un proceso dentro del sistema que se activa

periódicamente desencadenando la realización de ciertas tareas, entre las que está el sondeo de dispositivos.

Gestor de Eventos

Representa a la capa de software encargada de capturar eventos externos procedentes de dispositivos, como el teclado o el ratón, cuyo funcionamiento está orientado a eventos.

Ciclo de Pintado

Representa al proceso encargado de solicitar periódicamente el repintado de los elementos de la escena gráfica. Su creación tiene lugar durante la fase de conexión e inicio de sesión de un usuario en el sistema.

Mundo Virtual

Es la representación del módulo que contiene la información

geométrica de los elementos contenidos en el entorno virtual, y será afectado por algunos de los procesos que se ejecutan en el módulo de dispositivos.

La descripción esencial y de alto nivel de estos casos de uso nos proporciona una primera aproximación en el análisis del problema:

Caso de uso: Inicializar

Actores: Usuario (iniciador), Temporizador Tipo: primario y esencial

Descripción: Cuando un usuario inicia una nueva sesión en el sistema, éste realiza la inicialización del proceso temporizador que periódicamente ordenará el sondeo de dispositivos.

Caso de uso: Seleccionar Dispostivos Actores: Usuario (iniciador)

Tipo: primario y esencial

Descripción: Un usuario que ha iniciado una sesión en el sistema selecciona la combinación de dispositivos que va a utilizar para moverse por el entorno virtual, controlar su punto de vista y mover su mano.

Caso de uso:Sondear Dispositivos

Actores: Temporizador (iniciador), Mundo Virtual Tipo: primario y esencial

Caso de uso:Gestionar Eventos

Actores: Gestor de Eventos (iniciador), Mundo Virtual Tipo: primario y esencial

Descripción: El Gestor de Eventos, tras capturar un evento procedente de algún dispositivo externo o del sistema multi-agente, solicita que sea procesado provocando cambios en el Mundo Virtual.

Caso de uso:Repintar Mundo

Actores: Ciclo de Pintado (iniciador), Mundo Virtual Tipo: primario y esencial

Descripción: El actor Ciclo de Pintado solicita periódicamente que se realice un repintado de la escena gráfica, con lo que se deberá notificar al Mundo Virtual para que repinte cada uno de sus objetos virtuales.

Además de describir en más detalle la funcionalidad, los casos de uso sacan a relucir algunos conceptos que pueden ayudar a entender el problema. Con ellos se puede construir un modelo conceptual que en absoluto pretende reflejar la solución adoptada, sino tan solo sintetizar y desmenuzar la complejidad del problema.

Dispositivo de Navegacion Dispositivo de

int eracció n manual

Mano virtual / posic ion / ori enta cion

Objeto virtual Avatar / posicion / orientacion Entorno Virtual 1 1 1 1 1..n 1 1..n 1 1..n 1 1..n 1 Evento tipo estado afecta a Escena 1 1 repi nta Di sposi tivo estado 1 1..n 1 1..n interacciona sondea captura 1 1

Figura 38: Modelo conceptual

Este modelo manifiesta la relación que existe entre los distintos tipos de dispositivos y el entorno virtual. Un entorno virtual puede estar controlado por varios dispositivos distintos (de navegación y de interacción manual) pero todos ellos interaccionan con un mismo entorno. A su vez, dicho entorno está formado por los objetos presentes en él, por los avatares que representan a los usuarios y, adicionalmente, por la representación virtual de la mano del usuario.

La entidad Escena representa el marco de visualización del entorno virtual, así como una ventana de entrada desde el exterior del sistema. Es la encargada de realizar el sondeo de los dispositivos y también de capturar los eventos del exterior que afectan al

Como último paso de este análisis se presenta un diagrama que puede ayudar a ubicar el módulo a desarrollar en su contexto adecuado dentro de la arquitectura de MAEVIF:

Esce nari o Comunicaciones

Ges tor

Drv Mundo

Figura 39: Descomposición en paquetes

En realidad, el módulo que aquí se discute estaría formado únicamente por el paquete

Drv y en parte por los paquetes Gestor y Escenario. Sin embargo, para poder entenderlo en su totalidad, es necesario situarlo en el conjunto del sistema completo, o por lo menos de la parte incluida dentro del entorno gráfico.

El punto de entrada para las interacciones que el usuario invoca sobre el sistema es el paquete Escenario. Este podría describirse como la vista e interfaz del entorno virtual con el exterior. Es responsable de ordenar su visualización y de la captura de eventos procedentes tanto del usuario como del sistema multi-agente.

Todos los eventos que llegan a Escenario (pulsaciones de teclas, eventos de ratón, interrupciones de temporización, eventos producidos por agentes, etc.) son automáticamente transmitidos al paquete Gestor. Este paquete centraliza y unifica el acceso a los componentes del mundo virtual (paquete Mundo) desde otras partes del sistema. Además procesa los eventos e inicia la actualización del estado del mundo mediante el sondeo de los dispositivos gestionados en el paquete Drv.

El paquete Drv es el que más nos interesa. Es responsable del control de los distintos dispositivos, de su inicialización y sondeo y, además, ha de ofrecer al Gestor una interfaz transparente e independiente de cada dispositivo.

Por último, comentamos brevemente el paquete de Comunicaciones. Su responsabilidad es transmitir al sistema multi-agente los cambios producidos en el estado del entorno virtual. Además, este paquete se encarga del aspecto multiusuario, coordinando las distintas vistas con que los usuarios perciben el entorno virtual según sus posiciones dentro de él.