• No se han encontrado resultados

Interfaz Visual para la configuracion de Entornos Virtuales desarrollados con la Herramienta Scene Tool Kit.

N/A
N/A
Protected

Academic year: 2023

Share "Interfaz Visual para la configuracion de Entornos Virtuales desarrollados con la Herramienta Scene Tool Kit."

Copied!
131
0
0

Texto completo

(1)

Interfaz Visual para la configuración de Entornos Virtuales desarrollados con la

Herramienta Scene Tool Kit.

Trabajo de Diploma para optar por el título de Ingeniero en Ciencias Informáticas

Autor(es): Leonardo Antonio Nieblas Palau Yasmany Cubela Medina

Tutor: Ing. Fernando Jiménez López.

Co-Tutor: Ing. Yanoski Camacho Román.

Junio 2008

(2)

Haríamos muchas cosas si creyéramos que son muchas menos las imposibles Mohandas Karamchand Gandhi

(3)

DECLARACIÓN DE AUDITORIA

Declaramos ser autores de la presente tesis y reconocemos a la Universidad de las Ciencias Informáticas los derechos patrimoniales de la misma, con carácter exclusivo.

Para que así conste firmo la presente a los ____ días del mes de ________ del año ________.

Autores:

Leonardo Antonio Nieblas Palau Yasmany Cubela Medina

__________________________ _____________________

Tutor:

Ing. Fernando Jiménez López ________________________

(4)

DATOS DE CONTACTO Ing. Fernando Jiménez López.

Graduado en Ingeniería Informática, en la Ciudad Universitaria José Antonio Echevarría (CUJAE).

Actualmente Profesor Instructor de la Universidad de la Ciencias Informáticas impartiendo la asignatura de Gráficos por Computadora además de ser el Jefe del Polo de Realidad Virtual perteneciente a la Facultad 5.

E-Mail: [email protected]

Ing. Yanoski Camacho Román

Graduado en Ingeniería Informática, en la Ciudad Universitaria José Antonio Echevarría (CUJAE).

Actualmente Profesor Instructor de la Universidad de la Ciencias Informáticas impartiendo la asignatura de Sistema Operativo además de ser el Jefe del Proyecto “Herramienta de Desarrollo de Sistemas de Realidad Virtual” perteneciente a la Facultad 5.

E-Mail: [email protected]

(5)

I

DEDICATORIA

A mis padres. A Milorys.

A toda mi familia.

Yasmany

A mis padres, a mi abuela.

A toda mi familia.

Leonardo

(6)

II

AGRADECIMIENTOS

La elaboración de este trabajo ha estado guiada por muchas personas que directa o indirectamente han contribuido a su terminación, a todas ellas queremos hacerles llegar nuestros más sinceros agradecimientos. Agradecerle a la revolución y a nuestro comandante en jefe y siempre victorioso Fidel Castro Ruz, por crear la sociedad más justa del mundo y la oportunidad de escribir estos agradecimientos. De forma especial al Ing. Yanoski R. Camacho Román, dispuesto en todo momento a atender las dudas y propuestas que iban surgiendo y a nuestro tutor el Ing. Fernando Jiménez López por el constante apoyo.

De Yasmany

A todos los miembros de mi familia que siempre han estado a mi lado apoyándome a lo largo de todos estos años. En especial a mi mamá y papá cuyo esfuerzo en mi aprendizaje ha sido más que un deber de padres, también el hombro amigo de un eterno compañero. A Milorys, que con amor, y apoyo incondicional y constante, mantuvo aun en las malas la esperanza en mí.

De Leonardo

A mis padres, quienes siempre me guiaron en mí andar por la vida, por confiar y apoyarme siempre en mis decisiones. A mi abuela quien siempre me ha brindado su sabiduría, y ha sido fuente de inspiración para lograr los resultados que hoy he obtenido. A mi tía, mi tío y mis primos, quienes son parte muy importantes de mí y siempre me han brindado su apoyo y ayuda incondicional. A mi novia Aniuska, por haberme brindado su cariño, comprensión y apoyo en los momentos más difíciles. A todos mis amigos, quienes han estado al tanto de este trabajo en todo momento. A mi familia en general por todo el apoyo y confianza que han depositado en mí.

(7)

III

RESUMEN

Un punto fundamental en el desarrollo de sistemas de realidad virtual, es el hecho de configurar los diferentes estados de render que llevará el entorno virtual en cuestión, para esto la mayoría de las veces se logra de manera directa en la codificación de dichos sistemas. Es por ello que se hace necesario desarrollar una herramienta capaz de disminuir en gran medida este trabajo, de manera que se optimice el tiempo de realización de estas configuraciones.

Para darle cumplimiento a los objetivos de esta investigación, se realizó un análisis de las diferentes características sobre el diseño de Interfaces Gráficas de Usuario, así como las diferentes bibliotecas existentes para el desarrollo de las mismas en sistemas GNU/Linux. También fue necesario investigar acerca de las diferentes bibliotecas de desarrollo de sistemas de realidad virtual, así como las bibliotecas que poseen este mismo objetivo, con la especificidad de presentar Interfaces Gráficas de Usuario. Por último se analizó las diferentes ventajas que brinda el formato de fichero XML para el almacenamiento de información.

Como resultado final se obtuvo una Interfaz Gráfica de Usuario, capaz de optimizar el tiempo de configuración de los estados de render de los diferentes entornos virtuales, que serán utilizados en la realización de los sistemas de realidad virtual. Además de cumplir con las necesidades existentes en el proyecto Herramienta de Desarrollo de Sistemas de Realidad Virtual, proyecto perteneciente a la Facultad #5.

(8)

IV

SUMMARY

The fact of set virtual environment render states is a key point in the development of virtual reality systems, which bring the desired effect in the virtual environment. The current configuration is relatively long and tedious, depending directly from the virtual environment and its complexity and demands of the end user. That is why it is necessary to develop a tool capable of greatly reducing the time spent on the process described above, so as to optimize this time.

To give effect to the objectives of this investigation was conducted an analysis of the different characteristics on the graphical user interfaces design, as well as the various existing libraries to develop them in GNU / Linux systems. It was also necessary research on the different libraries in developing virtual reality systems and tools which have the same goals. Finally, we analyze the various advantages offered by the XML file format for storing information.

As a final result was a graphical user interface that can optimize the rendering states configuration time in different virtual environments, which will be used in conducting virtual reality systems. In addition to complying with existing needs in the draft Development Tool of Virtual Reality Systems, a project owned by the School # 5.

(9)

V

TABLA DE CONTENIDOS

DEDICATORIA... I AGRADECIMIENTOS ... II RESUMEN ... III

INTRODUCCIÓN ... 1

CAPÍTULO 1: FUNDAMENTACIÓN TEÓRICA ... 5

1.1 La interfaz gráfica de usuario ... 5

1.1.1 ¿Qué es la interfaz grafica de usuario? ... 7

1.1.2 Clasificación de las interfaces de usuario ... 8

1.1.3 Características humanas del diseño de interfaces graficas de usuario ... 11

1.1.4 Principios para el diseño de interfaces graficas de usuario ... 12

1.1.5 Pasos para construir una interfaz grafica de usuario ... 17

1.2 Bibliotecas de desarrollo de sistemas de realidad virtual ... 20

1.2.1 Características de las bibliotecas de desarrollo de sistemas de realidad virtual más utilizadas ... 21

1.2.2 Bibliotecas de desarrollo de sistemas de realidad virtual en Cuba ... 25

1.3 Bibliotecas de desarrollo de sistemas de realidad virtual que poseen interfaces graficas de usuario ... 27

1.3.1 Principales características que presentan estas herramientas ... 27

1.4 Bibliotecas de desarrollo de interfaces graficas de usuario en sistemas GNU/Linux ... 29

1.4.1 Qt ... 29

1.4.2 Gtk ... 31

1.5 Uso del estándar XML como formato de almacenamiento de datos en los sistemas de realidad virtual ... 32

CAPITULO 2: CARACTERÍSTICAS DEL SISTEMA...33

2.1 Descripción de la solución propuesta ... 33

2.1.1 XML como formato para el almacenamiento de datos ... 34

2.1.2 Método de selección de objetos en escenas 3d ... 37

2.1.3 Herramientas de desarrollo y lenguaje utilizado ... 38

2.2 Diseño del sistema ... 40

(10)

VI

2.2.1 Reglas del negocio... 40

2.2.2 Modelo de dominio ... 41

2.2.3 Captura de requisitos ... 42

2.2.4 Modelos de casos de uso ... 43

CAPITULO 3: ANÁLISIS Y DISEÑO DEL SOFTWARE ...71

3.1 Modelo de clases de análisis... 71

3.2 Diagrama de interacción ... 76

3.3 Diagrama de clases de diseño ... 87

3.4 Descripción de las clases de diseño en formato expandido ... 88

CAPITULO 4: IMPLEMENTACION Y PRUEBAS ... 100

4.1 Estándar de codificación ... 100

4.2 Diagrama de despliegue ... 100

4.3 Diagrama de componentes ... 100

4.4 Modelos de pruebas ... 103

CONCLUSIONES... 110

RECOMENDACIONES ... 111

BIBLIOGRAFÍA CONSULTADA... 112

REFERENCIAS BIBLIOGRÁFICAS ... 113

APÉNDICES ... 115

Glosario de Abreviaturas ... 115

Glosario de Términos ... 116

ÍNDICE DE FIGURAS ... 119

ÍNDICE DE TABLAS ... 121

(11)

Autores: Leonardo Antonio Nieblas Palau y Yasmany Cubela Medina Page 1

INTRODUCCIÓN

El avance de la Informática en los últimos tiempos ha proporcionado la creación y extensión de un nuevo término: “Realidad Virtual”. Desde sus inicios ha tenido una amplia gama de aplicaciones, como, programas de entrenamiento militar, simuladores de diversos tipos, centros de investigación, entre otros, llegando a formar parte de una variedad de programas, tanto en el ámbito profesional como social.

Ésta se caracteriza por su capacidad de permitirle al usuario navegar por un mundo totalmente nacido de su creatividad, una realidad que solo está limitada por las fronteras de su imaginación. Siendo esta su principal característica y atractivo [14].

Podemos definir la realidad virtual como un conjunto de tecnologías que, apoyadas en las computadoras y medios electrónicos, simulan en tiempo real, representaciones de la realidad. Una realidad ilusoria, ya que solo existe dentro de un ordenador. Por lo que podemos decir que es una pseudorrealidad alternativa [15].

La realidad virtual básicamente consiste en simular todas las posibles formas de interacción de una persona con un mundo artificial. Siendo su principal característica frente a otros sistemas tradicionales la posibilidad de interactuar en tiempo real con este entorno creado artificialmente; sensaciones de movimiento, aceleración, cambiar de punto de vista, entre otras, deben ser presentadas al usuario de manera que se sienta inmerso en ese mundo generado por un ordenador, de manera tal que llegue al punto de sentir esta realidad alternativa como una realidad absoluta [17].

La realidad virtual tuvo sus inicios a finales de los años 70 como material para una clase de aviación en el Departamento de Defensa de los Estados Unidos, aunque no fue hasta finales de la década de los 80, cuando en el año 1989 Jaron Lenier se propone el término de realidad virtual [17].

Dentro de sus principales actividades se destacan:

- En 1980 la Compañía StereoGraphics desarrolla las Gafas Stereo.

- En 1982 Thomas Zimmerman patenta un Electroguante que inventó mientras investigaba sobre cómo controlar con la mano un instrumento musical virtual.

- En 1987 la Compañía Inglesa Dimensión Internacional desarrolla un Software de construcción de mundos tridimensionales sobre Computadoras Personales.

(12)

Autores: Leonardo Antonio Nieblas Palau y Yasmany Cubela Medina Page 2

- En 1988 Scott Foster inventa un dispositivo para la generación de sonido tridimensional.

- En 1989 ATARI saca al mercado la máquina de galería de video juegos con tecnología 3D. En este mismo año Autodesk desarrolla su primer sistema de realidad virtual para Computadoras Personales.

- Desde los años 90 y hasta nuestros días la realidad ha intensificado su uso en una gran cantidad de industrias, como, videos juegos, la industria cinematográfica, entre otras.

Muchos son los usos que se le da hoy en día a la realidad virtual, entre ellos se destacan el entrenamiento de doctores mediante simuladores, que permiten la práctica y el entrenamiento de una forma segura, en la preparación militar, de pilotos y soldados, en la industria química se realizan simulaciones de la acción de pesticidas y la creación de drogas, en la industria automotriz donde se hacen nuevos diseños y pruebas de prototipos [16].

Ayuda en la reconstrucción de escenas criminales, permitiendo esclarecer situaciones y agilizar los procesos, en la industria cinematográfica ha tenido diversos logros como la aplicación de efectos a escenas, como escenas propias de mundos virtuales. Todo esto deja como consecuencia una serie de beneficios [16]. Tales como:

- Entretenimiento en situaciones peligrosas.

- Permite un examen minucioso de hechos y procesos.

- Poner a prueba modelos y principios.

- Situación de una pauta de actuación.

- Visualización en 360 grados.

- Aprende a manipular objetos.

La realidad virtual al igual que muchas cosas no está exenta de algunas desventajas implicadas por su uso. Desventajas tales como:

- Complejidad de los desarrollos.

- Costes elevados en la realización de mundos virtuales.

- Deficiencias en el interfaz entre programas y usuarios.

- Desorientación espacial.

- Dificultad en dominar los mandos y controles.

- Distanciamiento emocional de los objetos y escenas virtuales.

- Servidumbre de los equipos y su mantenimiento.

(13)

Autores: Leonardo Antonio Nieblas Palau y Yasmany Cubela Medina Page 3 En Cuba, se ha ido desarrollando el uso de la Realidad Virtual con el pasar de los años, varios son los que se están incursionando en la investigación y desarrollo de este campo. La Universidad de las Ciencias Informáticas no ha quedado exenta de esto, por lo que se encuentra desarrollando algunos proyectos que llevan adelante la investigación y desarrollo de este tema. Específicamente en la Facultad #5, que es la facultad encargada de desarrollar esta línea de trabajo, donde actualmente se labora en varios proyectos, entre lo que podemos mencionar: Simuladores de Conducción, Simuladores Quirúrgicos, así como video juegos, entre otros.

Una de las problemáticas existentes a la hora de recrear los entornos virtuales, es la falta de herramientas que permitan hacer un manejo del entorno virtual de una manera visual, de modo que sea más sencilla la creación y modificación de las características de los objetos y del entorno en sí.

Actualmente el proyecto Herramienta de Desarrollo para Sistemas de Realidad Virtual, proyecto que desarrolla una biblioteca de clases para el desarrollo de estos sistemas, no cuenta con una Interfaz Gráfica propia que permita la Gestión de Configuraciones en los Entornos Virtuales, y disminuya el tiempo de desarrollo de estos así como su manejo, por lo que esto constituye la situación problémica existente. De ahí que surja la siguiente interrogante, que constituye el problema científico de nuestro trabajo: ¿Cómo facilitar la configuración de Entornos Virtuales que serán desarrollados con la biblioteca gráfica SceneToolKit?

Como objeto de estudio: El trabajo en los procesos de desarrollo de interfaces visuales, y el campo de acción: Se basa en el estudio del desarrollo de interfaces visuales para herramientas de desarrollo de sistemas de realidad virtual.

El objetivo general que propone ésta investigación es: desarrollar una herramienta con interfaz visual, para la configuración de los entornos virtuales utilizados en los sistemas de realidad virtual con base en la biblioteca gráfica SceneToolKit y brindar flexibilidad e integración de herramientas empotradas.

En esta investigación nos proponemos como objetivos específicos desarrollar una herramienta con una interfaz gráfica de usuario amigable al usuario, la cual muestre entornos de realidad virtual y permita la selección de objetos dentro de dicho entorno; gestionar archivos de configuración para entornos virtuales que serán desarrollados sobre la biblioteca gráfica Scene Tool Kit; y por ultimo crear una arquitectura flexible que soporte la adición de plugins.

(14)

Autores: Leonardo Antonio Nieblas Palau y Yasmany Cubela Medina Page 4 A continuación se plantean un grupo de tareas que permitirán satisfacer durante el desarrollo de la investigación los objetivos planteados anteriormente, y se muestran de la forma siguiente:

- Indagar acerca de las principales técnicas de desarrollo de interfaces gráficas de usuario.

- Investigar sobre bibliotecas de desarrollo vinculadas a la realidad virtual

- Investigar sobre herramientas con interfaz visual para bibliotecas de desarrollo de entornos virtuales.

- Investigar sobre el formato de almacenamiento de datos XML.

- Investigar sobre bibliotecas de desarrollo de interfaces visuales en GNU/Linux.

- Investigar sobre los distintos algoritmos de selección en escenas 3D.

- Diseño de la solución propuesta.

- Implementación de la solución propuesta.

Se presentará una breve descripción del contenido de los capítulos:

- Capitulo 1 “Fundamentación Teórica”, hace un análisis de las principales funcionalidades para la configuración de los entornos virtuales utilizados en los sistemas de realidad virtual elaborados en la Facultad 5.

- Capitulo 2 “Características del Sistema”, presenta una descripción de las funcionalidades y bondades que brindara la herramienta.

- Capitulo 3 “Análisis y Diseño del Sistema”, se muestran los artefactos propuestos por RUP según la Ingeniería de Software.

- Capitulo 4 “Implementación y Prueba” muestra una descripción de los casos de uso de prueba, así como algunos resultados obtenidos.

Finalmente se muestra un glosario de términos que ayuda al entendimiento del lenguaje técnico que se ha utilizado.

(15)

Autores: Leonardo Antonio Nieblas Palau y Yasmany Cubela Medina Page 5

CAPÍTULO 1: FUNDAMENTACIÓN TEÓRICA

1.1 La interfaz gráfica de usuario

Con el desarrollo y los avances de la Ciencia y la Tecnología, el hombre se ha ubicado en un plano intermedio entre lo tangible y lo intangible computacionalmente hablando, en nuestros días es muy común el convivir con un ordenador, es por ello que cada vez se hace más imperativo una mejor interacción hombre-computadora a través de una adecuada Interfaz Gráfica de Usuario que brinde tanto comodidad como eficiencia.

Las Interfaces Gráficas de Usuarios surgen dada la necesidad de hacer más simple el uso de los ordenadores para todo tipo de usuarios y no solo restringir el uso de estos a usuarios avanzados, llegando así a convertirse en un hábito el usar Interfaces Gráficas de Usuario en inglés Graphics User Interface (GUI), de manera que le sea más fácil la interacción del usuario final con el ordenador.

Como bien afirma Neal Stephenson: “en el principio fue la línea de comandos…”; la mayoría de los ordenadores domésticos requerían de conocimientos de BASIC, ya que el 95% de estos mostraban el intérprete BASIC al encenderse, u ofrecían una interfaz de línea de comandos, lo que provocaba a los usuarios tener conocimientos por encima de la media si deseaban hacer algo más que no fuera utilizar éstos como consolas de videojuegos. En nuestros días prima la cultura de la Interfaz amigable y vistosa, en la que con un simple clic sobre algún componente gráfico que esté presente en pantalla, se sustituye la tediosa tarea de escribir código fuente para que el ordenador interprete que debe realizar alguna acción.

Precursores de las Interfaces Gráficas de Usuario

• Xerox Alto

Este fue desarrollado en el Xerox PARC en 1983, este fue el primer ordenador personal, así como el primero que utilizó la metáfora de escritorio y una Interfaz Gráfica de Usuario [1].

• Xerox Star 8010

Esta estación de trabajo, conocida oficialmente como el “Sistema de Información Estrella 8010”en inglés “8010 Star Information System” fue introducida por Xerox Corporation en 1981.

(16)

Autores: Leonardo Antonio Nieblas Palau y Yasmany Cubela Medina Page 6 Este constituyó el primer sistema comercial que incorpora varias tecnologías que hoy en día son comunes en los ordenadores personales, incluyendo la pantalla con Bitmaps en lugar de solo texto, una Interfaz Gráfica de Usuario basada en Ventanas, Iconos, Carpetas, Mouse, Red Ethernet, Servidores de Archivos, Impresoras y E-Mail [2].

• Apple Lisa, Macintosh, Apple II GS

Tras una visita realizada al Xerox PARC en 1979, el equipo de Apple, encabezado por Jef Raskin, se centra en diseñar un entorno gráfico para su nueva generación de PC de 16bit, el cual estaría presente en el Apple Lisa cuyo lanzamiento seria en 1983. Este sistema gráfico fue portado al sucesor de Apple II, el Apple II GS. Paralelo a esto un equipo de trabajo que se encontraba desarrollando el Apple Macintosh que no vería la luz hasta 1984, este incluiría una versión mejorada del entorno gráfico del Apple Lisa. Desde ese entonces el Mac reina como paradigma de usabilidad de un Entorno Gráfico; pese a que los cambios que se le realizarían al Sistema Operativo serían transparentes al usuario [2].

• Apple y Windows

La Compañía Apple, quien a principios de los años 80 (en 1982), había comenzado como una microempresa integrada por dos empleados (Steve Jobs y Steve Wozniak) había crecido hasta llegar a convertirse en una empresa de 300 millones de dólares.

Un año después, en 1983, Apple ya se convertiría en una empresa de 1000 millones de dólares, llegando a alcanzar el mismo valor que IBM.

En 1987 IBM se ve obligada a entrar en el mercado de los Ordenadores Personales con entornos Gráficos con su modelo PS/2, a su vez, aliándose con Bill Gates (Microsoft), quien había desarrollado el OS/2. Este Sistema Operativo presentaba una Interfaz Gráfica muy similar a la de Apple, pero el OS/2 no se convirtió en el nuevo estándar del sector, debido a los conflictos de intereses existentes entre IBM y Microsoft.

En el año 1985, Microsoft lanza al mercado el Windows 1.0, entorno gráfico para ordenadores PC IBM compatibles, este presentaba un parecido asombroso al Mac OS. Lo cual provocó que Apple en contrapartida realizara una demanda contra Microsoft, ascendiendo a varios miles de millones de dólares, ya que este había incurrido en violaciones de Copyright.

(17)

Autores: Leonardo Antonio Nieblas Palau y Yasmany Cubela Medina Page 7 La aparición de Ordenadores IBM clónicos provocó que el Sistema Windows se popularizara, lo que provocó que Apple perdiera mercado, no siendo hasta finales de 1990 que esta se recuperó con el lanzamiento de nuevos productos.

En el año 1991, John Sculley, director de Apple, reveló que la compañía estaba considerando competir contra Microsoft en el campo de Software vendiendo su Sistema Operativo a terceros.

Este reveló mantener conversaciones con su antiguo rival IBM, conversaciones encaminadas a compartir tecnologías. Ambos en conjunto decidieron crear una joint venture para el desarrollo de un sistema Operativo avanzado que ambas empresas utilizarían en sus nuevos Ordenadores y licenciarían a terceros. Este plan constituía un desafío directo a Microsoft.

Microsoft sobreponiéndose a todo esto consiguió convertir su sistema Operativo Windows en el Sistema operativo más utilizado a nivel mundial, dejando así a Apple en segundo lugar[2].

1.1.1 ¿Qué es la interfaz grafica de usuario?

El concepto de Interfaz se ha definido ampliamente desde diferentes puntos de vista, según el ámbito de conocimientos en que se encuentre aplicándose este concepto. Por ejemplo en la biología ha sido definido como la capa de un organismo que separa su interior del exterior, en la electrónica y las telecomunicaciones, se ha definido como puerto a través del que se envían o reciben señales desde un sistema de subsistemas hacia otros, en química es la superficie existente entre dos fases distintas en una mezcla heterogénea [18].

Recurriendo a la etimología de la palabra interfaz, encontramos que esta es una palabra compuesta por dos vocablos. Inter y Faz, Inter proviene del latín inter, y significa,” entre” o “en medio”, y faz proviene del latín facíes, y significa “superficie”,” vista o lado de una cosa”. Por lo que una traducción literal del concepto de Interfaz atendiendo a su etimología sería, “superficie vista, o lado mediador” [2].

Visto desde la interacción hombre-ordenador, hablamos de interfaz de usuario, haciendo referencia a la forma genérica del espacio que media relación de una persona y un ordenador o sistema interactivo.

La interfaz de usuario es la llamada “ventana mágica” de un sistema informático, y que le brinda la posibilidad a una persona de interactuar con él [18].

(18)

Autores: Leonardo Antonio Nieblas Palau y Yasmany Cubela Medina Page 8 Cuando hablamos de Interfaz Gráfica de Usuario, estamos en presencia de un concepto más específico, al contrario del concepto de Interfaz, tiene una localización determinada y definida. Si el concepto de interfaz se define etimológicamente como la cara o superficie mediadora, el concepto de interfaz gráfica de usuario, supone un tipo específico de interfaz, que utiliza metáforas visuales y gráficos como paradigma interactivo entre el usuario y el ordenador [18].

Una definición formal de interfaz gráfica de usuario es la descrita por la Wikipedia americana, la cual la define como: “un método de interacción con un ordenador a través del paradigma de manipulación directa de imágenes gráficas, controles y texto” [18].

1.1.2 Clasificación de las interfaces de usuario

Dentro de las clasificaciones de Interfaz de Usuario se pueden distinguir básicamente dos tipos fundamentales [1]:

• Interfaces de Hardware, la cual es utilizada a nivel de dispositivos, utilizados para ingresar, procesar y entregar los datos. Ejemplo: Teclado, Ratón y Pantalla.

• Interfaces de Software, está destinada a entregar información acerca de los procesos y herramientas de control a través de lo que el usuario observa habitualmente en la pantalla.

A partir de estas clasificaciones generales se pueden ir desprendiendo algunas más, así por ejemplo a partir de su evolución tenemos:

La evolución de las Interfaces de Usuario marchan paralelamente al desarrollo de los Sistemas Operativos, actualmente la interfaz de usuario constituye uno de los principales componentes de los Sistemas Operativos.

Constituyen algunas de las interfaces de usuario que a lo largo de la historia han ido apareciendo, y a la vez ejemplificándolas con las sucesivas versiones de los Sistemas Operativos más populares [1].

Interfaces de líneas de mandatos (command-line user interfaces, CUIs)

Comúnmente conocido como DOS, fue el sistema operativo de los primeros PCs, y forma a su vez el estilo de interacción hombre-ordenador más antiguo. En este el usuario le introducía órdenes y mandatos al ordenador haciendo uso de un lenguaje formal con un vocabulario y una sintaxis propia.

(19)

Autores: Leonardo Antonio Nieblas Palau y Yasmany Cubela Medina Page 9 Estas órdenes eran introducidas típicamente por teclado, y estaban encaminadas a realizar una acción.

Estos tipos de interfaces de usuario son utilizadas comúnmente, ya que no suelen brindar al usuario mucha información por parte del sistema, y debe conocer a profundidad cual es el funcionamiento del ordenador, así como la ubicación de los programas. El modelo de la interfaz es el del programador y no el del usuario [1].

Inconvenientes

Representa una carga de memoria para el usuario, ya que debe memorizar los mandatos, siendo inclusive la ayuda de difícil lectura y entendimiento, no siempre presenta nombres adecuados a las funciones que realiza, el significado de los mandatos presenta un difícil entendimiento, ya que varios de estos presentan los mismos o parecidos significados (DEL - ERASE), y es inflexible a los nombres (DEL - DELETE).

Ventajas

Es una interfaz potente, flexible y es controlada por el usuario. Estas solo representan ventajas para usuarios con un alto nivel de experiencia en su uso, ya que la sintaxis es estricta y los errores pueden resultar graves.

Interfaces de Menú

Básicamente un menú es una lista de opciones que se muestran en la pantalla o en una ventana de la pantalla para que los usuarios elijan la opción que deseen. Estos permiten dos cosas [3]:

Navegar dentro de un sistema, mostrando los caminos que guían de un sitio a otro.

Seleccionar elementos de una lista, los cuales representan propiedades o acciones que los usuarios desean realizar sobre algún objeto.

Se puede decir que estamos frente a este tipo de interfaz de usuario cuando el ordenador se torna una herramienta de usuario y no solo de programadores. Actualmente las interfaces gráficas u orientadas a objetos continúan haciendo uso de este tipo de interfaces.

Este tipo de Interfaces de Usuario hace referencia a distintos tipos de menú, entre los que podemos encontrar [1]:

(20)

Autores: Leonardo Antonio Nieblas Palau y Yasmany Cubela Medina Page 10

• Menú de Pantalla completa

Este tipo de menú se distingue por su ubicación en la pantalla, están situados en la parte superior de la pantalla, y son muy utilizados en las aplicaciones actuales. Cuentan con una lista de acciones genéricas que dan paso a menús desplegables donde se concretan.

• Menú de barra y menú desplegable

Pueden llevar a su vez a otros menús, este tipo es mayormente conocido como menú en cascada. Estos pueden realizar cambios en ellos mismo de manera dinámica, así como deshabilitar opciones que no estén disponibles para un contexto dado. Ejemplo: Menús en cascada de la barra de inicio de Windows 95.

• Paletas o barras de herramientas

Son menuces gráficos que contienen acciones, herramientas y opciones que se pueden colocar en la pantalla. Son muy utilizados en programas gráficos, como ejemplo se pueden apreciar las paletas de herramienta del Microsoft PowerPoint.

• Menús Contextuales (Pop-Up)

Estos tipos de menús son los más recientes, adoptan este nombre ya que el contenido del menú depende del contexto de trabajo del usuario. Solo contienen las opciones que se le pueden aplicar al objeto seleccionado, además de otras opciones de uso frecuente, las cuales también pueden ser accesibles desde el menú de barra. Ejemplo: El menú contextual del icono en el escritorio de Windows.

En resumen, este tipo de interfaz de usuario, siempre y cuando se encuentren bien estructuradas, son bien recomendadas para usuarios noveles o principiantes. Son fáciles de aprender y de recordar.

Estas pueden variar desde menús muy simples hasta menús muy avanzados.

Precauciones: No ocupar demasiado espacio de la pantalla, recordar la información acumulada de menús precedentes, no colocar demasiados elementos en el menú, así como agrupar estos de manera lógica, permitir la personalización por parte del usuario, hacer uso de una terminología adecuada y

(21)

Autores: Leonardo Antonio Nieblas Palau y Yasmany Cubela Medina Page 11 consistente dentro de la aplicación, así como con otros programas (Exit, Quit, Escape, Clore, Return, Back). Estas interfaces son comúnmente utilizadas en conjunción con otros tipos de interfaces.

Interfaces Gráficas de Usuario (graphical user interfaces, GUIs)

Como ya se ha comentado anteriormente estas fueron desarrolladas originalmente por XEROX, aunque alcanzaron su popularidad gracias a la compañía Apple. Existen tres estilos principales de interfaces gráficas hombre-ordenador, los cuales son [1]:

1. Lo que tú vez es lo que puedes conseguir (WYSIWYG, What you see is what you get).

2. Manipulación directa.

3. Interfaces de usuario basadas en íconos.

Básicamente un Interfaz Gráfica de Usuario es una representación gráfica en una pantalla de ordenador de los programas, datos y objetos, así como la interacción con ellos. Esta proporciona al usuario las herramientas necesarias para realizar sus operaciones, más que una lista de operaciones que el ordenador es capaz de hacer.

1.1.3 Características humanas del diseño de interfaces graficas de usuario

Factores Humanos:

Al diseñar Interfaces de Usuarios se deben tener presente las habilidades cognitivas y de percepción de las personas, y adaptar el programa de ellas. Así una de las cosas más importantes que estas Interfaces pueden hacer es reducir la dependencia de las personas de su propia memoria, no forzándoles a recordar cosas innecesariamente (Ejemplo: información contenida en una pantalla anterior) o a repetir operaciones ya realizadas (Ejemplo: Introducir un dato repetidas veces).

Las personas tienen habilidades muy distintas a las de un ordenador, y ésta debe utilizar las suyas para soslayar las de aquellas, como por ejemplo la escasa capacidad de la memoria de corto alcance [1].

• Velocidad de Aprendizaje: La cual está referida a la velocidad con que el usuario aprende a utilizar el sistema. Es decir, pretende que el usuario minimice este tiempo de aprendizaje.

• Velocidad de Respuesta: Es el tiempo necesario en que se realiza una operación en el sistema.

• Tasa de Errores: Esta define el porcentaje de errores que comete el usuario.

• Retención: Es la capacidad de retención de información que presenta un usuario sobre un sistema en un periodo de tiempo.

(22)

Autores: Leonardo Antonio Nieblas Palau y Yasmany Cubela Medina Page 12

• Satisfacción: Está referida a conocer en qué medida un usuario está satisfecho con un sistema dado.

Adecuación [1]:

1. Características Físicas: Cada persona difiere en cuando a características físicas respecto a otras, existen personas que no les gustan los teclados mientras que a otras sí. Es por ello que existen teclados ergonómicos. Esto mismo ocurre con el mouse.

2. Ambiente: Este se refiere al lugar donde va a ser utilizado el sistema, es por ello que cada Interfaz debe de estar adecuada al lugar de su utilización.

3. Visibilidad: Toma en cuenta el grado de iluminación del lugar donde se pondrá en práctica el sistema, dando así una medida del grado de reflejo del brillo en la pantalla.

4. Personalidad: De acuerdo a la edad, nivel socio-económico, etc.

5. Cultura: Se debe de tener en cuenta el factor de mercado para el sistema a nivel internacional, pues depende del nivel cultural del adquiridor, el ambiente que debe mostrar la Interfaz, por ejemplo, los japoneses no utilizan las mismas pantallas, ventanas, etc. que otros países u regiones.

Motivación [1]:

Sistemas Vitales: Son sistemas referidos a aquellos sistemas que son de vida o muerte, es decir muchas personas dependen de ellos. Un ejemplo práctico es la utilización de un sistema para reactores nucleares, estos sistemas trabajan en tiempo real, y es de suma importancia la seguridad y efectividad del mismo.

Sistemas Comerciales e Industriales: Estos se utilizan para elevar la productividad y realizar mayores cantidades de ventas.

Sistemas de Oficina, Hogar y Juegos: En este influye un factor importante, que es el mercado a quien está dirigido, ya que estos tienen que ser muy amigables y satisfacer al cliente.

Sistemas de Investigación: Realizan tareas muy específicas y tratan de imitar el medio en el que se desenvuelve el usuario.

1.1.4 Principios para el diseño de interfaces graficas de usuario

Para el diseño de las Interfaces Gráficas de Usuarios existen un conjunto de principios, que, a la hora de desarrollar este tipo de Interfaces se deben de tomar en cuenta para lograr la obtención de una Interfaz Gráfica adecuada y de buena aceptación por parte de los usuarios. Entre los más importantes podemos destacar:

(23)

Autores: Leonardo Antonio Nieblas Palau y Yasmany Cubela Medina Page 13 La Anticipación:

Plantea la anticipación de las aplicaciones a las necesidades de los usuarios finales, haciéndole el trabajo más simplificado al usuario, ya que este no tendría que centrarse en la búsqueda y recopilación de información, o invocar las herramientas que va a utilizar [19].

La Autonomía:

Está referida a la disponibilidad que debe brindar la Interfaz Gráfica y el Entorno de Trabajo al usuario.

Debe sentirse inmerso en un ambiente flexible, donde sea capaz de aprender rápidamente el uso de la aplicación. Sin embargo está comprobado que el entorno de trabajo debe contar con algunas características específicas, es decir, debe ser explorable pero no azaroso [19].

La Percepción del Color:

Básicamente trata la idea de que se deben utilizar además de los colores convencionales en las Interfaces de Usuario, vías secundarias para hacerle llegar la información pertinente a aquellos usuarios que presentan deficiencias en la visualización de colores. Ejemplo de esto sería la introducción de comandos abreviados (Shortcut-keys), lo cual constituye la visualización de combinaciones de teclas, que el usuario puede utilizar para acceder más rápidamente a las herramientas requeridas [19].

Valores por Defecto:

El término “Defecto”, no debe ser utilizado en aplicaciones o servicios. Este puede ser reemplazado por alguna otra palabra o término, de manera que le dé al usuario una visión de lo que desea hacer, o está sucediendo. Los valores por defecto deberían ser opciones inteligentes y sensatas, además de que estos deben ser fáciles de modificar [19].

Consistencia:

Para que las Interfaces de Usuario obtengan una elevada consistencia se necesita profundizar en varios aspectos, los cuales están catalogados por niveles. Para ello se realiza un ordenamiento de mayor a menor consistencia [19]:

• Interpretación del comportamiento del usuario: Este establece que la Interfaz de Usuario debe llegar a comprender que significan los comandos abreviados (Shortcut-Keys) que han sido definidos por el usuario.

• Estructuras Invisibles: Estas requieren la realización de una definición clara de ellas, ya que de no hacerse, los usuarios podrían no llegar a comprender nunca su uso. Ejemplo de esto es la ampliación de las ventanas mediante la extensión de sus bordes.

• Pequeñas estructuras visibles: Estas estructuras definen el establecimiento de un conjunto de controles controlados por los usuarios, de manera que le permita ahorrar tiempo en la ejecución de tareas específicas. Ejemplos: Icono y/o botón para impresión.

• Una sola aplicación o servicio: La Interfaz de Usuario debe permitir la visualización de la aplicación o servicio utilizado como un componente único. Ejemplo de esto es, cuando la

(24)

Autores: Leonardo Antonio Nieblas Palau y Yasmany Cubela Medina Page 14 Interfaz de Usuario despliega un único menú, pudiendo además acceder al mismo mediante comandos abreviados.

• Un conjunto de aplicaciones o servicios: Ésta constituye una abstracción superior de la anterior, es decir, establece que la Interfaz de Usuario permite la visualización de la aplicación o servicio como un conjunto de componentes. Ejemplo de esto es, cuando la Interfaz de Usuario presenta un conjunto de barras de comandos desplegadas en diferentes localizaciones dentro de la pantalla, siendo activadas de manera diferente.

• Consistencia del ambiente: Establece una concordancia entre la Interfaz de Usuario y el ambiente de trabajo. Lo cual se pone de manifiesto cuando la Interfaz de Usuario utiliza componentes de control como menús, botones de comandos; de manera análoga a otras Interfaces de Usuario que se estén utilizando en el ambiente de trabajo.

• Consistencia de la Plataforma: Es básicamente el establecimiento de una concordancia entre la Plataforma utilizada y la Interfaz de Usuario. Ejemplo de este es cuando la Interfaz de Usuario mantiene un esquema basado en ventanas, el cual se mantiene acorde al manejo del Sistema Operativo Windows.

La aparición de inconsistencias en el comportamiento de los componentes que integran la Interfaz de Usuario, debe de ser fácil de visualizar. La uniformidad entre los componentes que integran la Interfaz de Usuario debe ser evitada, además de que los objetos deben ser consistentes con su comportamiento. Por lo que si dos objetos actúan de diferentes maneras, estos deben lucir diferentes, siendo el testeo la única manera de verificar si la Interfaz de Usuario cumple con las expectativas del usuario.

Eficiencia del Usuario:

Plantea que debe de ser considerada el nivel de productividad del usuario antes que la productividad del ordenador. Si el usuario queda en espera a alguna respuesta del sistema por largos períodos de tiempo, éste tiempo perdido puede llegar a convertirse en pérdidas económicas para la organización, es por ello que los mensajes de ayuda deben ser claros y sencillos, y proveer respuesta al problema en cuestión, los menús y etiquetas de botones deben tener las palabras claves del proceso. Un ejemplo claro es cuando tenemos una Interfaz de usuario, en la cual están contenidos los botones Aceptar y Aplicar, los cuales aparentan realizar la misma función, una solución a esta incorrecta definición podría ser la supresión de uno de estos si realizaran la misma función, u etiquetándolos de manera que reflejen claramente los procesos específicos que ejecutan [19].

Ley de Fitt:

Constituye la ley más básica y más conocida de entre todas las leyes o principios del diseño de Interfaces de Usuarios. Plantea que, el tiempo para alcanzar un objetivo es una función de la distancia y tamaño del objeto, lo cual no es más que cuanto más grande y más cercano al puntero del ratón esté un objeto, más fácil será realizar clic sobre él. Es por ello que se recomienda la utilización de objetos grandes para la ejecución de las funciones más importante.

(25)

Autores: Leonardo Antonio Nieblas Palau y Yasmany Cubela Medina Page 15 Tomando como ejemplo la barra de botones de Firefox, cuando los usuarios navegan por internet, el botón que más se utiliza es el botón Anterior, es por ello que este debe ser el botón más fácil de pulsar, de esta forma se minimiza el esfuerzo requerido por parte del usuario a la hora de utilizar la aplicación, siendo así que este se concentra profundamente en la navegación por la web.

El tamaño de un elemento dentro de las Interfaces Gráficas de Usuarios, puede parecer más grande si lo colocamos en los bordes de la pantalla, de esta manera cuando el cursor del ratón llega al borde de la pantalla, se sitúa exactamente en el borde, independientemente de la velocidad con que se estuviese moviendo el ratón. Para el usuario esto no significa más que los objetos que están en la frontera de la pantalla que tienen tamaño infinito. Es por ello tan fácil el hacer clic sobre algún control que se encuentre en la esquina superior derecha de la pantalla, simplemente sería desplazar el puntero hacia arriba y a la derecha sin limitaciones, no siendo así si fuésemos a pulsar sobre algún control ubicado en el centro de la pantalla [19].

Para resumir, podemos concluir que:

Los controles más utilizados en la aplicación, deben de ser los más grandes y de mayor distinción.

Se deben utilizar los bordes y esquinas de la pantalla para lograr que los controles sean virtualmente infinitos.

Nunca colocar los controles a un pixel de distancia del borde de la pantalla o de una esquina.

Interfaces Explorables:

Plantea la facilidad que debe brindársele al usuario de salir ágilmente de la Interfaz de Usuario, dejando almacenado de alguna manera el estado de avance del trabajo que está realizando, dando así la posibilidad de continuidad posteriormente.

La aplicación debe permitir a aquellos usuarios inexpertos o principiantes en el uso de ésta, salir ágilmente, por lo que debe proveerse a estos usuarios de guías que permitan realizar estas tareas no usuales.

Es recomendable que el usuario pueda incorporar elementos visuales que le permitan, tanto un desplazamiento inmediato a ciertos puntos del trabajo en cuestión, como un punto de partida, que le permita tener un sentido de dirección a seguir en su trabajo. La Interfaz de Usuario debe permitir realizar la inversa de cualquier acción que se pueda realizar y que pueda implicar riesgo en el trabajo que se esté realizando, dándole así la posibilidad al usuario de explorar el sistema sin temor a cometer errores.

Es recomendable la incorporación de un comando “Deshacer”, ya que con este se suprimiría la necesidad de contar con diálogos de confirmación para cada acción que se realice en el sistema.

El usuario debe sentir seguridad a la hora de salir de la aplicación o del sistema cuando así lo desee, es por ello que se requiere un objeto fácil de accionar y que brinde la posibilidad de finalizar ésta [19].

(26)

Autores: Leonardo Antonio Nieblas Palau y Yasmany Cubela Medina Page 16 Objetos de Interfaz Humana:

Estos objetos no necesariamente están inmersos en sistemas orientados a objetos, pueden ser vistos, escuchados, tocados o percibidos de alguna manera. Además de que deben ser entendibles, consistentes y estables.

Entre las representaciones más utilizadas de estos objetos encontramos las barras de controles, las cuales simplifican la operación con el sistema. Estas barras dadas las características ilustrativas que presentan los botones que la componen son de fácil aprendizaje y comprensión [19].

Uso de Metáforas:

Las buenas metáforas crean figuras mentales que resultan fáciles de recordar. De esta manera la Interfaz de Usuario puede contener objetos asociados al modelo conceptual de manera visual, con sonido u otras características que sean perceptibles por el usuario, ayudando así en la simplificación del uso del sistema.

Un ejemplo de una incorrecta utilización de el uso de metáforas, es el encontrar la metáfora de una cámara de video para representar el procesamiento de un documento por una impresora, en este caso, el botón [<<] carece de sentido, ya que una vez impreso no puede volver a un estado anterior [19].

Curvas de Aprendizaje:

El aprendizaje por parte de los usuarios de un producto y su usabilidad no son mutuamente excluyentes. La idea principal es que la Curva de Aprendizaje sea nula, y que el usuario principalmente pueda alcanzar el dominio total de la aplicación sin realizar esfuerzo [19].

Reducción de Latencia:

Recomienda el uso de tramas (multi-threading), ya que permite colocar la latencia en segundo plano (background). Las técnicas de trabajo multitareas posibilitan realizar trabajo ininterrumpido al usuario, realizando así las tareas de transmisión y computación de datos en segundo plano [19].

Protección del Trabajo:

Principalmente está enfocada a la seguridad que debe brindar el sistema o aplicación para lograr que el usuario nunca pierda su trabajo, ya sea por la ocurrencia de errores propios, problemas de transmisión de datos, pérdida de energía o cualquier otra razón inevitable [19].

Auditoría del Sistema:

La mayoría de los navegadores de internet (browsers), no mantienen información acerca de la situación del usuario en el entorno, pero para cualquier aplicación es conveniente conocer un conjunto de características tales como: hora de acceso al sistema, ubicación del usuario en el sistema y lugares que ha accedido entre otros. Además el sistema debe brindar la flexibilidad de poder dejar salir al usuario del sistema y este al volver a ingresar continuar trabajando desde el estado en que había dejado el trabajo [19].

Legibilidad:

(27)

Autores: Leonardo Antonio Nieblas Palau y Yasmany Cubela Medina Page 17 La manera en que debe mostrarse la información en las Interfaces de Usuario debe ser fácil de ubicar y leer, permitiendo así que la Interfaz de Usuario favorezca la usabilidad del sistema de software. Para lograr este resultado, deben tenerse en cuenta algunos aspectos como son: el texto que aparezca en la Interfaz de Usuario debe tener un alto contraste, la utilización de colores como el texto en negro sobre fondo blanco o amarillo claro, el tamaño de las fuentes debe ser lo suficientemente grande como para poder ser leído en monitores estándares, es importante hacer clara la presentación visual (coloración/agrupación) de objetos, evitar la presentación de excesiva información [19].

Interfaces Visibles:

El creciente uso de internet, ha favorecido la implementación de Interfaces Visuales. Lo cual significa que el usuario siempre va a visualizar una página en específico, pero nunca va a tener conocimiento de la totalidad del espacio de páginas de internet. Es por ello que la navegación en las aplicaciones debe ser reducida a la mínima expresión. El usuario debe sentir la sensación de que está en un solo lugar y que el que varía es su trabajo. Esto no solamente elimina la necesidad de mantener mapas u otros sistemas de ayuda para la navegación, sino que brindan además una sensación de autonomía al usuario [19].

1.1.5 Pasos para construir una interfaz grafica de usuario

Pasos Clásicos:

Durante el proceso de diseño de una Interfaz de Usuario se pueden distinguir cuatro fases o pasos fundamentales [1].

• Reunir y analizar la información del usuario.

• Diseñar la Interfaz de Usuario.

• Construir la Interfaz de Usuario.

• Validar la Interfaz de Usuario.

Reunir y analizar la información del usuario:

Está referida a analizar y concretar qué tipos de usuarios va a hacer uso de la aplicación, qué tipos de tareas van a realizar, la manera en que se van a realizar estas tareas, qué tipos de exigencias presentan los usuarios del programa o aplicación, así como el entorno en que comúnmente se desenvuelven los usuarios, que a su vez estos pueden ser físico, social o cultural [1].

Diseñar la Interfaz de Usuario:

En esta fase de diseño de una Interfaz de Usuario, es donde se definen los objetivos de usabilidad de la aplicación, las tareas del usuario, los objetos y acciones de la interfaz, los iconos, vistas y representaciones visuales de los objetos, los menús de los objetos y ventanas. Es por ello que se requiere dedicar tiempo y recursos a esta fase antes de entrar en la codificación. Todos estos elementos visuales pueden ser hechos primero a mano y luego refinados con las herramientas pertinentes [1].

(28)

Autores: Leonardo Antonio Nieblas Palau y Yasmany Cubela Medina Page 18 Construir la Interfaz de Usuario:

En esta fase es interesante la realización de un prototipo previo, es decir una primera versión de la aplicación que se realice rápidamente, y que de la posibilidad de visualizar el producto, dando así la posibilidad de realizarle las pruebas pertinentes, para así no arrastrar errores a la hora de codificarlo definitivamente [1].

Validar la Interfaz de Usuario:

Durante esta fase se recomienda la realización de pruebas de usabilidad del producto, con mayor énfasis si fuese con los usuarios finales del mismo. Es de suma importancia que la realización del diseño sea a partir de las exigencias del usuario y no del sistema [3].

Existen 11 pasos en el proceso de diseño, los cuales están centrados en las tareas, estos son [1]:

• Entender quién usará el sistema para hacer qué.

• Elegir tareas representativas para el diseño.

• Plagiar o copiar.

• Bosquejar un diseño.

• Pensar acerca del diseño.

• Crear un prototipo.

• Evaluar con los usuarios.

• Repetir.

• Construirla.

• Rastrearla.

• Cambiarla.

Técnicas y pasos avanzados para el diseño de interfaces de usuario Presentación de la Información:

No debe haber exceso de objetos en la pantalla, y los que existan deben encontrarse bien distribuidos.

Cada uno de los elementos visuales que se encuentran en la pantalla tiene un factor de influencia sobre los usuarios, así como la combinación de ellos con el resto de los elementos presentes en la pantalla [1].

(29)

Autores: Leonardo Antonio Nieblas Palau y Yasmany Cubela Medina Page 19 Elementos de diseño de pantalla y su percepción visual:

Análisis de Color: Este constituye probablemente el elemento de una interfaz de usuario que más erróneamente se utiliza. El color es comunicador de información, no es solamente un elemento decorativo (Ejemplo: reforzar los mensajes de error). Deben utilizarse combinaciones de colores adecuadas (Ejemplo las paletas proporcionadas por los Sistemas Operativos), el color debe atraer la atención del usuario, pero no tornarse agotador después de un período de tiempo. Es de suma importancia seguir las líneas de diseño existentes. Principio básico: diseñar primero en blanco y negro, y luego añadir el color [1].

Análisis de Audio: Primeramente es necesario definir cuando es más apropiado la utilización de audio que la información visual. Seguido a esto se debe determinar el sonido adecuado, y por último se debe permitir la personalización del sonido, variación de volumen así como su desactivación.

El uso de sonidos en las aplicaciones puede causar molestias dependiendo del lugar en que se utilicen, en lugares abiertos puede resultar poco efectivo además de que puede resultar embarazoso para algunas personas. El sonido debe tratarse para brindar información, por ejemplo, un mensaje de aviso de correo electrónico o de bienvenida, o al iniciar una sesión de trabajo [1].

Análisis y Animación: Está definida como el cambio en el tiempo de la apariencia visual de un elemento gráfico. Por ejemplo, el progreso de acciones requeridas por el usuario (copia de ficheros, instalación de aplicaciones), estado de progresos (iconos de impresoras), acciones posibles a realizar por el usuario (cambio de cursor al desplazar el ratón). La animación puede ser utilizada al igual que ocurre con el sonido para brindar información al usuario, ejemplo al subrayar iconos importantes, mostrar el estado de un objeto en específico o al explicar su comportamiento [1].

Diseño Internacional: Este es un término con el cual se debe tener mucho cuidado a la hora de utilizarlo, ya que es abarcador de mucho trabajo en este campo. Debe tenerse mucho cuidado con las diferencias culturales (gestos, terminología, tratamiento de imágenes, formatos de teléfonos o calendarios, entre otros) [1].

Análisis y Elección de Controles: Es de suma importancia definir bien los controles a utilizar, ya que muchas veces existe la duda de cuáles utilizar y cuáles no [1].

Diferentes controles para los mismos datos:

Guías de Expertos

Existen varias guías de diseño, las cuales han sido reveladas de expertos y comités de desarrollo de este tipo de trabajo, dichas guías complementan las reglas de oro anteriormente estudiadas, por citar algunas de ellas [1]:

• Demasiada simetría puede hacer las pantallas difíciles de leer.

• Si se ponen objetos sin alinear, hacerlo drásticamente.

(30)

Autores: Leonardo Antonio Nieblas Palau y Yasmany Cubela Medina Page 20

• Asimetría = activo, simetría = sereno.

• Elementos de tamaño y color similares se perciben como pertenecientes a un grupo.

• Asumir errores en la entrada del usuario.

• Diseñar para el usuario, no para demostrar los propios conocimientos tecnológicos.

• Unos gráficos espectaculares no salvaran a una mala interfaz.

1.2 Bibliotecas de desarrollo de sistemas de realidad virtual

Desde el punto de vista de la Informática (computación), una biblioteca es un conjunto de procedimientos y funciones (subprogramas) agrupadas en un archivo con el fin de que puedan ser aprovechadas por otros programas. Existen dos tipos de bibliotecas, las bibliotecas estáticas o de enlace y las bibliotecas compartidas o de enlace dinámico. De estas, las primeras hacen enlaces entre ellas, o sea, arreglan las referencias a rutinas en el programa para que apunten a su localización en la biblioteca al momento de compilación, mientras que el segundo tipo de bibliotecas se enlazan en tiempo de ejecución.

La denominación de biblioteca compartida hace énfasis en que, comúnmente, los procesos que la enlazan comparten una única parte de la memoria donde se encuentran las instrucciones de los subprogramas.

Algunos ejemplos de bibliotecas son:

• En Windows las llamadas dll (Dynamic Link Library), las cuales entran dentro de la clasificación de las bibliotecas dinámicas, mientras que las estáticas son las bien llamadas lib.

• En los sistemas Unix y Linux, las bibliotecas dinámicas tienen extensión so, mientras que las estáticas toman extensión a.

En el mundo de la realidad virtual podemos encontrar muchas de estas bibliotecas vinculadas a bibliotecas de desarrollo de sistemas de realidad virtual, algunas más avanzadas que otras, algunas de las cuales son más fáciles de usar que otras. Dentro de estas bibliotecas vinculadas a la realidad virtual, se puede distinguir que la mayoría brindan al usuario ficheros tanto de enlace dinámico, como de enlace estático, ambas con el objetivo de hacer más eficiente el proceso de compilación o ejecución según sea el caso.

(31)

Autores: Leonardo Antonio Nieblas Palau y Yasmany Cubela Medina Page 21 Algunas de estas bibliotecas de desarrollo de sistemas de realidad virtual son:

• DirectX.

• Ogre.

• G3D.

• A7

1.2.1 Características de las bibliotecas de desarrollo de sistemas de realidad virtual más utilizadas

Cada una de estas bibliotecas destinadas al desarrollo de sistemas de realidad virtual, se diferencian una de otras, ya sea por el tipo de licencia o la plataforma donde es utilizada. Estas a su vez presentan características especiales como son las diferentes áreas dentro de la realidad virtual sobre la que actúan, los diferentes formatos de fichero con información grafica que son capaces de leer, entre otras.

A continuación expondremos un grupo de características esenciales de cada una de estas bibliotecas anteriormente mencionadas, con el propósito de establecer características importantes a configurar en un entorno virtual.

1.2.1.1 DirectX

Esta biblioteca está considerada como una colección de APIs creadas para facilitar tareas relacionadas con la programación de juegos en la plataforma Microsoft Windows. El kit de desarrollo de DirectX es distribuido gratuitamente por Microsoft. Originalmente estas eran distribuidas por los desarrolladores de juegos con sus paquetes, pero más tarde fueron incluidas en Windows.

Como se mencionó anteriormente está constituida por un conjunto de APIs, entre los que podemos encontrar [4]:

• Direct3D: Utilizado en el procesado y programación de gráficos en tres dimensiones, la cual constituye una de sus características más utilizadas.

• Direct Graphics: Centrada en la representación de imágenes en dos dimensiones, así como para la representación de imágenes en tres dimensiones.

(32)

Autores: Leonardo Antonio Nieblas Palau y Yasmany Cubela Medina Page 22

• Direct Input: Empleado en el procesamiento de datos obtenidos del teclado, el ratón, mando de juegos (joystick), y otros controles para juegos.

• Direct Play: Utilizado en la comunicación por la red.

• Direct Sound: Utilizado en la reproducción y grabación de sonidos de ondas.

• Direct Music: Destinado a la reproducción de pistas musicales compuestas con Direct Music Producer.

• Direct Show: Encargado de la reproducción de audio y video con transparencia de red.

• Direct Setup: Este constituye el API fundamental ya que es el que contiene la instalación de componentes DirectX.

A pesar de ser un producto desarrollado exclusivamente para la plataforma Windows, existe actualmente una implementación de su API para sistemas Unix, en particular para Linux y X Window System, más conocido como Cedega, desarrollada por la empresa de software Transgaming y orientada a la ejecución de juegos desarrollados para Windows bajo sistemas Unix.

1.2.1.2 Ogre

Acrónimo del inglés Object-Oriented-Graphics-Rendering-Engine, es un motor de renderizado en tres dimensiones orientado a escenas y escrito en el lenguaje C++ y licenciado bajo la licencia LGPL (Lesser General Public License), además de contar con una comunidad muy activa. Sus librerías evitan la dificultad de la utilización de capas inferiores de librerías Gráficas como OpenGL y DirectX, además provee una interfaz basada en objetos del mundo y otras clases de alto nivel [3].

Ogre no solo fue desarrollado con el fin de la realización de juegos, sino también para simulaciones, aplicaciones de negocios o cualquier otro uso, además, para el caso de los juegos fue diseñado para explotar al máximo las posibilidades materiales de las tarjetas 3D, todo esto a través de una interfaz orientada a objetos; ofrece un sistema de partículas de gestión de recursos muy potente, además de una serie de funcionalidades muy interesantes.

(33)

Autores: Leonardo Antonio Nieblas Palau y Yasmany Cubela Medina Page 23 Funcionalidades:

• Productividad [5]:

 Fácil de usar con interfaz orientada a objetos diseñada para minimizar el esfuerzo requerido al renderizar escenas 3D y separar lo de la implementación 3D como OpenGL o DirectX.

• Plataformas y soporte de APIs 3D

 Posee soporte para DirectX y OpenGL.

 Soporte para Windows en todas sus versiones, GNU/Linux y Mac.

 Construcción en Visual C++ y Code::Blocks en Windows y g++ en GNU/Linux.

• Materiales y soporte de Shaders

• Mayas

• Animaciones

• Funcionalidades de la escena

• Efectos especiales

1.2.1.3 G3d

G3Des un motor gráfico 3D de grado comercial y disponible como código abierto bajo licencia BSD. Es utilizado en el desarrollo de juegos comerciales, roles investigativos, en realización de simuladores militares, y cursos de universidades. Proporciona un juego de rutinas y estructuras comunes, las cuales son necesarias en la mayoría de los programas gráficos. Hace uso de interfaces orientada a objetos, diseñada con el fin de minimizar el esfuerzo requerido al renderizar escenas 3D, y separarlo de la implementación como OpenGL. Constituye una base solida muy optimizada para la construcción de aplicaciones 3D, provee un conjunto de aplicaciones de ejemplo, realizadas con el objetivo de mostrarle a los usuarios las diferentes formas en que pueden estructurar sus proyectos 3D, así como mostrar los usos más comunes de las diferentes bondades que brinda la biblioteca [6].

Esta biblioteca presenta soporte para la carga y texturizado de objetos con imágenes png, tga, bmp, jpg, pcx, ppm, pgm, pbm, dds, así como formatos ico (ícono). Presenta interfaces para la carga de

(34)

Autores: Leonardo Antonio Nieblas Palau y Yasmany Cubela Medina Page 24 ficheros de mayas como el ply2, ifs, md2 y md3, además de otros ficheros como el 3ds y obj; cuenta con un formato de fuentes propio, para así evitar problemas de ilegalidades, actualmente cuenta con más de 20 tipos diferentes de fuentes y presenta interfaces que le ayudan al desarrollo de nuevas fuentes, de acuerdo a las necesidades del desarrollador. No presenta soporte oficial para el manejo de audio, aunque si tiene contribuciones que proveen de código que ayudan en el uso de las librerías más populares de audio [6].

1.2.1.4 A7

Este constituye el núcleo del sistema GameStudio, herramienta destinada a la creación de Sistemas 3D en tiempo real. Genera las imágenes 3D y los comportamientos del mundo visualizado. Fue desarrollada como el sucesor de A6 en el 2007. Consta de un nuevo árbol del manejador de escena, el cual incluye características dinámicas, ya que cambia dependiendo de la distribución del juego, ya sea de interiores o exteriores. Permite además, la adición de ocho luces, la mayor cantidad permitida por los diferentes hardwares, también puede añadir sombras, tanto estáticas como dinámicas [13].

El motor de render gráfico incluye características tales como [13]:

• Múltiples cámaras, vistas de render y monitores.

• Soporte para DirectX 9, DirectPlay, DirectShow, DirectSound.

• Árbol binario adaptativo (ABT por sus siglas en inglés) para el control de la escena.

• Particionamiento Binario del Espacio (BSP por sus siglas en inglés) y Puntos Potencialmente Visuales (PVS por sus siglas en inglés).

• Soporte para interiores y exteriores basados en LOD, sistema de terrenos.

• Manejador para soporte de luces e ilimitados puntos de luces.

• Sombras dinámicas y estáticas.

• Áreas de niebla, portales de cámaras, reflexiones y espejos.

• Animaciones basadas en huesos.

• Materiales para objetos estáticos y dinámicos.

(35)

Autores: Leonardo Antonio Nieblas Palau y Yasmany Cubela Medina Page 25 También incluye funcionalidades adicionales para el trabajo con redes y sonidos, así como objetos 2D.

Brinda una interfaz para el desarrollo de plugins en C generando DLL, con el objetivo de añadir funcionalidades nuevas.

1.2.2 Bibliotecas de desarrollo de sistemas de realidad virtual en Cuba

Cuba no ha quedado exenta del desarrollo de bibliotecas con el fin de desarrollar sistemas de realidad virtual, aunque aún se encuentra en un nivel muy bajo en el desarrollo de estas, hasta que en el año 1994, surge el Centro de Investigación y Desarrollo #2 (CID 2), más conocido en el mercado como SIMPRO (Simuladores Profesionales). Esta línea de investigación se fortalece a partir de la creación de la Universidad de la Ciencias Informáticas (UCI) en el año 2002. La facultad #5 de la UCI desarrolla como línea fundamental de investigación la Realidad Virtual, específicamente el proyecto,

“Herramienta para el Desarrollo de Realidad Virtual”. Este proyecto cuenta con una biblioteca que ha sido desarrollada durante el transcurso de los años y como base de las investigaciones que allí se desarrollan, llevando como nombre SceneToolKit (STK), y se han desarrollado con ella productos tales como:

Simulador de conducción 2.0, expuesto en los laboratorios de Realidad Virtual de la facultad.

Simulador de conducción de camión, el cual se encuentra en uso en la División de Tanques de Managua.

Simulador de tiro antiaéreo para la pieza C10.

Simulador de conducción de camión, expuesto en la Feria Informática 2007.

Consta con un grupo de características principales tales como:

• Está desarrollada en C++;

• Utiliza las bibliotecas DirectX y OpenGL.

• Está desarrollada en base al Sistema Operativo GNU/Linux, aunque mantiene su carácter multiplataforma.

• Presenta una arquitectura en tres capas.

 Capa Interfaz o Aplicación: Presenta las funcionalidades de interfaces visuales de usuario.

Referencias

Documento similar

Autores: Arián Antonio Núñez Alonso y Sachel Hernández Pérez Se hablarán de los Sockets que no son más que interfaces de comunicación o un sistema de comunicación

26 Se tiene como objetivo el conocer el rol docente para construir y sostener el vínculo pedagógico en los entornos virtuales 2021 en relación al entorno virtual se

Proporcione esta nota de seguridad y las copias de la versión para pacientes junto con el documento Preguntas frecuentes sobre contraindicaciones y

6 Para la pervivencia de la tradición clásica y la mitología en la poesía machadiana, véase: Lasso de la Vega, José, “El mito clásico en la literatura española

44 A mi juicio, desde este punto de vista pueden entenderse muchas de las desavenencias de Polo con Hegel, que aparecen reflejadas en varias de sus obras, como El acceso al

Bajo el primer punto de vista es el resultado la combinación de los elementos objetivos, con las leyes del sujeto que siente; y de consiguiente todo cuanto percibe solo existe en

Patrón de Sensibilidad General a los Antibióticos para Uropatógenos Aislados en Urocultivos de Gestantes con Infección del Tracto Urinario Atendidas en Hospital I

Su funcionalidad permite mostrar en la pantalla Tablero una expresión matemática, seleccionar sus términos y resaltarlos con un determinado color para destacar la selección