Repositorio Digital UTE - Universidad Tecnológica Equinoccial

Anuncio
UNIVERSIDAD TECNOLÓGICA EQUINOCCIAL
FACULTAD DE CIENCIAS DE LA INGENIERÍA
CARRERA DE INGENIERÍA INFORMATICA Y
CIENCIAS DE LA COMPUTACIÓN
TESIS PREVIA A LA OBTENCIÓN DEL TITULO DE
INGENIERO EN INFORMATICA Y CIENCIAS DE
LA COMPUTACIÓN
CREACIÓN DE MODELO DE ÓRGANOS DEL CUERPO
HUMANO EN 3D E INTEGRACIÓN CON UN INTERFACE PARA
SU MANIPULACIÓN EN UN ESCENARIO 3D
BERNARDO DARIO MORALES LÓPEZ
DIRECTOR: ING. GALO RAMOS
QUITO, 2012
© Universidad Tecnológica Equinoccial. 2012
Reservados todos los derechos de reproducción
DECLARACIÓN
Yo BERNARDO DARIO MORALES LÓPEZ, declaro que el trabajo aquí
descrito es de mi autoría; que no ha sido previamente presentado para
ningún grado o calificación profesional; y, que he consultado las referencias
bibliográficas que se incluyen en este documento.
La Universidad Tecnológica Equinoccial puede hacer uso de los derechos
correspondientes a este trabajo, según lo establecido por la Ley de
Propiedad Intelectual, por su Reglamento y por la normativa institucional
vigente.
_________________________
Bernardo Darío Morales López
1718050709
CERTIFICACIÓN
Certifico que el presente trabajo que lleva por título “Creación de modelos
de órganos del cuerpo humano en 3D e integración con interface para su
manipulación en el escenario 3D”, que, para aspirar al título de Ingeniero
en Informática y Ciencias de la Computación
fue desarrollado por
Bernardo Darío Morales López, bajo mi dirección y supervisión, en la
Facultad de Ciencias de la Ingeniería y cumple con las condiciones
requeridas por el reglamento de Trabajos de Titulación artículos 18 y 25.
___________________
Galo Ramos
DIRECTOR DEL TRABAJO
1708020548
DEDICATORIA
Quiero dedicar este trabajo a quienes en todo momento me incentivaron y
me apoyaron para no rendirme y seguir adelante; En especial a mi familia
quienes han sido un puntal fundamental para seguir adelante, han sido un
ejemplo de constancia y trabajo, además de ser claves esenciales para el
logro de esta meta; siempre serán mi mas grande inspiración.
Además siendo mi graduación una de mis grandes aspiraciones y al llegar a
culminarla felizmente, dedico este trabajo también a mis profesores ya que
sin sus sabias enseñanzas esto no hubiera sido posible. Gracias.
AGRADECIMIENTOS
Ante todo agradezco a Dios por hacer esto posible.
Agradezco a mis padres por el apoyo que me han brindado durante toda mi
vida.
Agradezco a mi hermana, Andrea Morales, por todo el apoyo brindado.
Agradezco al Ing. Galo Ramos, por darme la oportunidad de ser parte de
este proyecto, brindarme su confianza y apoyarme en el transcurso de mi
carrera.
Agradezco al Ing. Gálvez, por el tiempo, el conocimiento y el apoyo
dedicados para la realización de esta tesis.
Agradezco a las personas que directa o indirectamente fueron parte de la
culminación de esta fase de mi carrera académica.
ÍNDICE DE CONTENIDO Página 1 Introducción ......................................................................................... 1 1.1 Objetivo General .............................................................................. 2 1.2 Objetivos Específicos ....................................................................... 3 2 Marco Teórico ..................................................................................... 5 2.1 Ambientes virtuales .......................................................................... 5 2.3 Modelo genérico de un sistema de realidad virtual. ........................ 7 2.3.1 Modelo de simulación................................................................... 7 2.4 Lenguaje de programación .............................................................. 8 2.5 Java .................................................................................................. 9 2.5.1 Bibliotecas Gráficas de Java. ..................................................... 10 2.6 java3d ............................................................................................. 11 2.6.1 Objetos de la super estructura del grafo de escena .................. 11 2.6.2 Objetos de agrupación de nodos ............................................... 12 2.6.3 Objetos nodos hoja .................................................................... 13 2.6.4 Jerarquía Nodos Java3d ............................................................ 14 2.6.5 Sistema De Coordenadas en Java3d. ....................................... 15 2.6.8 Interacción con el usuario ......................................................... 18 2.6.9 Gestión del ratón ....................................................................... 19 2.3 Estado del arte .............................................................................. 20 2.7 Conocimientos Anatomía Humana ................................................ 22 2.7.1 El Cuerpo humano ..................................................................... 22 2.7.2 Sistema óseo .............................................................................. 22 2.7.3 Sistema muscular ....................................................................... 28 2.7.4 Órganos del ser humano ............................................................ 33 2.8 Conocimiento Metodología de Desarrollo...................................... 36 2.8.1 Metodología Desarrollo Microsoft Solutions Framework ........... 36 2.8.2 Características ........................................................................... 37 2.8.3 Fases de la Metodología ........................................................... 38 3 Metodología ...................................................................................... 40 3.1 Visión ............................................................................................. 40 3.1.1 Vision del proyecto ..................................................................... 40 3.1.2 Alcance ....................................................................................... 40 3.2 Planificación .................................................................................. 41 3.2.1 Estudio técnico de lenguaje a implementar ............................... 41 3.2.2 Elección de lenguaje de programacion ...................................... 45 3.2.3 Estudio de tecnologías VRML .................................................... 45 3.2.4 Comparación de tecnologías que manejan Imágenes 3D ......... 48 3.2.5 Conclusión uso de tecnología .................................................... 52 3.2.6 Arquitectura en Capas de Software ........................................... 53 3.2.7 Diagrama de Actividad ............................................................... 55 3.2.8 Definición de Funcionalidad. ..................................................... 56 i
3.2.9 Modelado .................................................................................... 61 3.3 Desarrollo ...................................................................................... 69 3.3.1 Diagramas de clases .................................................................. 70 3.4 Estabilización................................................................................. 86 3.4.1 Pruebas de caso de uso............................................................. 86 4. Resultados y Discusion ................................................................... 94 5. Conclusiones y Recomendaciones ................................................ 106 5.1 Conclusiones ............................................................................... 106 5.2 Recomendaciones ....................................................................... 107 ANEXO I ............................................................................................ 110 ANEXO II ........................................................................................... 120 ANEXO III .......................................................................................... 136 ANEXO IV .......................................................................................... 144 Abreviaturas ....................................................................................... 156 Glosario .............................................................................................. 157 Bibliografía ......................................................................................... 159 ii
ÍNDICE DE TABLAS
Página
Tabla 1. Programas Cuerpo Humano 3d ................................................ 20 Tabla 2. Comparativa Programas Cuerpo Humano 3d ........................... 21 Tabla 3. Comparativa Lenguajes de Programación ................................ 43 Tabla 4. Comparativa Lenguajes de Programación en base objetos 3d 44 Tabla 3. Comparativa en prestaciones Java ........................................... 51 Tabla 4. Atributos Main Class .................................................................. 71 Tabla 5. Métodos Main Class .................................................................. 72 Tabla 6. Atributos Clase Cuerpo_ Humano ............................................. 73 Tabla 7. Métodos Clase Cuerpo_ Humano ............................................. 73 Tabla 8. Atributos Clase Parte_cuerpo ................................................... 74 Tabla 9. Métodos Clase Parte_cuerpo .................................................... 75 Tabla 10. Métodos Clase Resources ...................................................... 76 Tabla 11. Atributos Clase Comportamiento Mouse................................. 77 Tabla 12. Métodos Clase Comportamiento Mouse ................................. 78 Tabla 13. Atributos Clase Elemento ........................................................ 79 Tabla 14. Métodos Clase Elemento ........................................................ 80 Tabla 15. Atributos Clase Array_data_xml .............................................. 81 Tabla 15. Métodos Clase Array_data_xml .............................................. 81 Tabla 16. Atributos Clase Map_cuerpo ................................................... 83 Tabla 17. Atributos Clase Map_cuerpo ................................................... 83 Tabla 18. Tabla calculo del tamaño de una muestra. ............................. 95 Tabla 20. Frecuencia y porcentaje Pregunta Dos ................................... 99 Tabla 21. Frecuencia y porcentaje Pregunta Tres ................................ 101 Tabla 22. Frecuencia y porcentaje Pregunta Cuatro ............................ 103 Tabla 23. Diferencias entre metodologías ágiles y no ágiles ................ 117 Tabla 24. Diferencias entre metodologías ágiles.. ................................ 118 iii
ÍNDICE DE FIGURAS
Página
Figura 1 Flujo sistema de realidad virtual. ....................................................... 7 Figura 2 Jerarquía nodo Java3d.................................................................... 14 Figura 3 Coordenadas en Java3d. ................................................................ 15 Figura 4 Behavior Java3d .............................................................................. 18 Figura 5 Esqueleto humano. ......................................................................... 27 Figura 6 Músculos del cuerpo humano. ........................................................ 32 Figura 7 Órganos de cuerpo humano............................................................ 35 Figura 8 Fases metodología. ......................................................................... 38 Figura 9 Metodología. ................................................................................... 39 Figura 10 Arquitectura en Capas de Software .............................................. 53 Figura 11 Diagrama de Actividades. ............................................................. 55 Figura 12 Forma primitiva de un círculo en 3D. ............................................ 63 Figura 13 Modificando parámetros de radio y segmentos. ........................... 63 Figura 14 Movimiento de vértices de acuerdo a coordenadas. .................... 64 Figura 15 Diagrama general de ejecución. .................................................. 68 Figura 16 Diagramas de clases. .................................................................... 70 Figura 17 Main Clase..................................................................................... 71 Figura 18 Cuerpo_ Humano Clase. ............................................................... 72 Figura 19 Parte_cuerpo Clase. ...................................................................... 74 Figura 20 Resources Clase. .......................................................................... 75 Figura 21 Comportamiento Mouse Clase. ..................................................... 76 Figura 22 Clase Elemento. ............................................................................ 79 Figura 23 Array_data_xml Clase. .................................................................. 80 Figura 24 Map_cuerpo Clase. ....................................................................... 82 Figura 25 Diagrama de Secuencia. ............................................................... 85 Figura 26 Diagrama de secuencia Carga. ..................................................... 86 Figura 27 Ejecución de prueba Carga 1. ....................................................... 87 Figura 28 Ejecución de prueba Carga 2 ........................................................ 87 Figura 29 Consola de confirmación carga objetos. ....................................... 88 Figura 30 Diagrama secuencia Evento Mouse (hover). ............................... 88 Figura 31 Evento Mouse (hover). .................................................................. 89 Figura 32 Diagrama de secuencia Doble click. ............................................. 89 Figura 33 Doble click. .................................................................................... 90 Figura 34 Diagrama de secuencia click derecho y arrastre. ......................... 91 Figura 35 Mouse click derecho y arrastre 1. ................................................. 91 Figura 36 Mouse click derecho y arrastre 1. ................................................. 92 Figura 37 Diagrama secuencia mouse click ítem árbol Jerarquía. ............... 93 Figura 38 Mouse click ítem árbol Jerarquía 1. .............................................. 93 Figura 39 Mouse click ítem árbol Jerarquía 2. .............................................. 94 Figura 40 Porcentaje Número de Alumnos por Calificación. ........................ 98 Figura 41 Porcentaje Número de Alumnos por Calificación. ...................... 100 iv
Figura 42 Porcentaje Número de Alumnos por Calificación. ...................... 102 Figura 43 Porcentaje Número de Alumnos por Calificación. ...................... 104 Figura 44 Caso de uso Petición de ejecución Aplicativo. ........................... 113 Figura 45 Caso de uso Petición de detalle de parte del Cuerpo . .............. 114 Figura 46 Caso de uso Petición Manipulación del modelo. ........................ 114 Figura 47 Detalle Uso Aplicativo. ................................................................ 120 Figura 48 Detalle Uso Sector C. .................................................................. 121 Figura 49 Detalle Uso Sector B. .................................................................. 122 Figura 50 Función Sector B. ........................................................................ 123 Figura 51 Detalle Ítem Sector B. ................................................................. 123 Figura 52 Ítem activos. ............................................................................... 124 Figura 53 Ítems desactivados...................................................................... 124 Figura 54 Estado visible objetos tridimensionales. ..................................... 125 Figura 55 Estado No visible objetos tridimensionales. ................................ 125 Figura 56 Casilla de Verificación. ................................................................ 126 Figura 57 Estado Casilla de Verificación. .................................................... 127 Figura 58 Casilla de Verificación seleccionado solo Esqueleto. ................. 128 Figura 59 Casilla de Verificación no seleccionado. ..................................... 129 Figura 60 Verificación seleccionado (Árbol Objetos Cuerpo Humano)....... 129 Figura 61 Modelo tridimensional sector A. ................................................. 130 Figura 62 Movimientos de mouse encima modelo tridimensional. ............ 131 Figura 63 Mouse arrastre botón derecho. .................................................. 132 Figura 64 Mouse arrastre botón izquierdo. ................................................ 133 Figura 65 Rueda mouse 1. .......................................................................... 134 Figura 66 Rueda mouse 2. .......................................................................... 135 v
RESUMEN
La presente tesis está encaminada en explicar los diferentes pasos que se
desarrollaron para esquematizar e implementar un aplicativo que presenta
dentro de entorno virtual un
modelo tridimensional de la anatomía del
cuerpo humano, teniendo como meta permitir que el usuario explore y
manipule todos los componentes del modelo tridimensional del cuerpo
humano y así facilitar el estudio del cuerpo humano de una forma fácil y
eficaz.
Se destaca el análisis de los resultados obtenidos al presentar el aplicativo a
un grupo muestral de estudiantes de la Facultad de Medicina de la
Universidad Tecnológica Equinoccial, quienes evaluaron los principales
objetivos: diseñar y crear un modelo tridimensional de la anatomía del
cuerpo humano, implementar las funcionalidades de acercar, alejar, girar y
desplazar aplicadas
al
modelo tridimensional
del cuerpo, crear una
interfase amigable que permita la interacción del usuario con el entorno de
realidad virtual.
1
ABSTRACT
This thesis aims to explain the different steps that were developed to schematize
and implement an application that presents inside a virtual environment a three
dimensional model of the human anatomy, aiming to allow the user to explore and
handle all the components that the three dimensional model has. This would make
the study of the human body easier and more effective than other traditional ways.
It emphasizes the analysis of the results obtained by submitting the application to a
sample group of the students form the Faculty of Medicine of the U.T.E University,
who evaluated the main objectives: to design and create a three dimensional model
of the human body, implement zoom functionality and also rotate and move the
three dimensional model of the human body, created a friendly interface that allows
the user to have and interaction with the virtual reality environment.
2
INTRODUCCIÓN
1 INTRODUCCIÓN
En los últimos 5 años se ha observado el desarrollo a pasos agigantados de las
tecnologías informáticas capaces de generar representaciones de la realidad
(Realidad Virtual), teniendo en cuenta lo interesante de este tipo de desarrollo
gráfico la cual permite al usuario final la comprensión y manipulación de realidades
ficticias que simulan la realidad y cuya aplicación puede ser implementada en un sin
numero de tareas de distracción o de trabajo para el ser humano.
Aprovechando de una forma práctica y sencilla este tipo de desarrollo; la siguiente
investigación como uno de los principales ítems, se intenta analizar e implementar
las diferentes tecnologías que se encuentren a disposición para diseñar entornos
virtuales y así aplicar específicamente a la visualización un modelo tridimensional
de la anatomía del cuerpo humano con posibles aplicaciones en el campo de la
medicina.
El uso de la tecnología Java y Java3 fue primordial para el proyecto ya que permite
cumplir con el requerimiento de desarrollar e implementar una aplicación de uso
libre y fácil implementación en los principales sistemas operativos. Otro de los
aspectos es el diseño gráfico de un modelo tridimensional del cuerpo humano que
se asemeje en lo más posible a un cuerpo humano real, esto fue logrado gracias a
la herramienta de diseño 3d Studio Max que gracias a sus características nos
permite crear los modelos de las diferentes partes del cuerpo humano además de
presentarnos una gran gama de herramientas que nos ayudan a esta finalidad.
Otra premisa de nuestro proyecto fue crear una interface que permita la fácil
interacción entre el modelo del cuerpo humano y el usuario final, para lo cual fue
desarrollado una interface lo más intuitiva posible que permite la exploración del
cuerpo humano utilizando como herramienta principal al mouse.
Cabe destacar que el proyecto es un aporte conjunto con la Fundación Consorcio
Ecuatoriano para el Desarrollo de Internet Avanzado (CEDIA) través del Concurso
Ecuatoriano de Proyectos en Redes Avanzadas (CEPRA), en el cual el proyecto
descrito
se complementara a otras investigaciones como parte de un sistema
integral llamado “Sistema de entrenamiento virtual para medicina”.
1
1.1 OBJETIVO GENERAL
Diseñar e implementar un entorno de realidad virtual que incluye un modelo
tridimensional del cuerpo humano, además de estar compuesto de acuerdo
a su fisiología de órganos y huesos correspondientes, el cual podrá ser
manipulado y explorado por un usuario a través de una interface creada
explícitamente para este propósito.
2
1.2 OBJETIVOS ESPECÍFICOS
1. Analizar el desempeño y funcionalidad de las más relevantes
tecnologías de realidad virtual.
2. Diseñar y crear un modelo tridimensional de la anatomía del cuerpo
humano con sus respectivos órganos internos.
3. Implementar las funcionalidades de acercar, alejar, girar y desplazar
aplicadas
al
modelo tridimensional
del cuerpo humano para la
manipulación por el usuario.
4. Crear una interface amigable que permita la interacción del usuario
con el entorno de realidad virtual desarrollado en el aplicativo.
3
MARCO TEÓRICO
2 MARCO TEÓRICO
El marco teórico está dividido en tres secciones, clasificadas así por sus
distintas áreas temáticas:
Software.- se hablará de los conocimientos básicos de software necesarios
para comprender los siguientes capítulos con definiciones tales como
realidad virtual, Java, Java 3D.
Anatomía Humana.- se aclarará conceptos básicos sobre la anatomía
humana, dando un especial énfasis sobre los modelos tridimensionales de
los órganos y estructuras del cuerpo humano que son presentados en
nuestro aplicativo.
Metodología de Desarrollo.- estarán expuestas las definiciones y
aclaraciones de la metodología que se implementa a lo largo del desarrollo
del proyecto
2.1 AMBIENTES VIRTUALES
Es una interfaz que permite a las personas visualizar e interactuar con
ambientes generados por medio de computadoras en tiempo real.
(Grigore C. Burdea. 2003).
Un sistema de realidad virtual cuenta con los siguientes elementos:
• Efectores: Son los sensores tanto de entrada como de salida que
permiten la interacción entre el usuario y el motor de realidad.
5
• Motor de realidad: Es el sistema de computación y su hardware
asociado que le da a los efectores la información necesaria para
interactuar.
• Aplicación: Es el software que define el contexto de la aplicación y
las leyes de interacción entre los objetos y los usuarios.
• Geometría: Es la información que describe los atributos de los
objetos. Esta información es procesada por la aplicación para crear el
mundo virtual.
Las principales razones para construir un ambiente virtual son:
• Lo real es muy caro para construir. Ejemplo: Sistema de
entrenamiento para una estación espacial.
• Lo real implica muchos peligros para trabajar. Ejemplo: una planta
nuclear.
•
Lo
real
está
desapareciendo
paulatinamente.
Ejemplo:
reconstrucción de sitios arqueológicos.
Puesto que en un ambiente virtual es necesario estimular los sentidos del
usuario, se necesitan interfaces que permitan interactuar al motor de
realidad con el usuario. Los principales interfaces son:
(Grigore C. Burdea. 2003).
• Interfaz visual.
• Interfaz de movimiento.
6
2.3 MODELO GENÉRICO DE UN SISTEMA DE REALIDAD
VIRTUAL.
Las partes básicas de un sistema de realidad virtual son: el modelo de
simulación, la presentación del ambiente virtual, la entrada/salida y por
supuesto el usuario. Se detalla en la siguiente gráfica.
Figura 1 Flujo sistema de realidad virtual.
(Sun Microsystems. Java 3D 1.3 API Specification Guide 2005)
2.3.1 MODELO DE SIMULACIÓN.
El modelo es la representación matemática del sistema que se está
analizando.
Un
modelo
de
simulación
virtual
necesita
responder
dinámicamente en respuesta de la entrada del usuario. Se pueden crear
modelos matemáticos sofisticados de realidad virtual, pero lo importante, es
la manera en que estos modelos están asociados con un sistema visual y
auditivo.
7
Entrada
Los dispositivos de entrada se utilizan para interactuar con el ambiente
virtual como puede ser el teclado o el mouse, un joystick o guantes, pedales,
entre otros.
Salida
La salida se refiere a la tecnología mediante la cual el usuario percibe
estímulos, esta tecnología abarca un amplio rango y va desde aparatos de
despliegue visual, sistemas sonoros, sistemas sensoriales, entre otros.
Usuario
El usuario es la razón de existir de un sistema de realidad virtual pues es él
quien recibe los estímulos de parte del sistema y a su vez se encarga de
retroalimentarlo y definir su comportamiento.
2.4 LENGUAJE DE PROGRAMACIÓN
Es un lenguaje artificial diseñado para describir un conjunto de acciones y
procesos que se llevan a cabo para controlar el comportamiento físico y
lógico de una máquina, especialmente una computadora, para expresar
algoritmos con precisión, o como modo de comunicación humana. Está
formado por un conjunto de símbolos y reglas sintácticas y semánticas que
definen su estructura y el significado de sus elementos y expresiones.
(Wilson, Leslie B. 2003).
8
Programación
Se define como el proceso de desarrollo de un programa de computadora,
mediante la aplicación de procedimientos lógicos, a través de los siguientes
pasos: (Wilson, Leslie B. 2003):

El desarrollo lógico del programa para resolver un problema en
particular.

Escritura de la lógica del programa empleando un lenguaje de
programación específico. (codificación del programa).

Ensamblaje o compilación del programa hasta convertirlo en lenguaje
de máquina.

Prueba y depuración del programa.
2.5 JAVA
Es un lenguaje de programación que esta elaborado a partir de lenguajes
orientados
a
objetos
anteriores
como
C++,
añadiendo
nuevas
funcionalidades como programación multi-hilo y manejo de memoria a cargo
del lenguaje. (K Arnold, J Gosling, D Colin. 2006).
Uno de los aspectos claves para el desarrollo de Java, es lograr que las
aplicaciones se escriban una sola vez sin la necesidad de modificarlas para
que se puedan ejecutar en plataformas diferentes. Esta independencia se
consigue compilando el código fuente para generar un código intermedio
llamado bytecodes, similar para cualquier plataforma. Posteriormente, la
máquina virtual interpreta dicho código.
Además no se tendrá que realizar ningún cambio en el código, o si se hace,
será mínimamente. Por lo que evita tener que generar distintas versiones
dependiendo del sistema operativo que se utilice. (K Arnold, J Gosling, D
Colin. 2006).
9
La plataforma de Java se compone de tres módulos:
- El API (Application Programming Interface) de Java, que contiene las
clases básicas que utiliza el lenguaje. Las clases se organizan en paquetes
o librerías dependiendo de su funcionalidad.
- El JRE (Java Runtime Environment) o entorno de ejecución, el cual es
necesario para poder ejecutar las aplicaciones.
- El JDK (Java Development Kit), que incluye un conjunto de herramientas
para desarrollar las aplicaciones. Entre ellas están el compilador de Java a
código bytes, un generador de documentación, el depurador de programas,
etc.
Otro punto positivo de Java es su facilidad para crear interfaces gráficas, ya
que proporciona librerías gráficas muy útiles, como se describe a
continuación. (K Arnold, J Gosling, D Colin. 2006).
2.5.1 BIBLIOTECAS GRÁFICAS DE JAVA.
Java proporciona dos paquetes especializados en el diseño de aplicaciones
gráficas: AWT (Abstract Windowing Toolkit) y SWING. AWT es una librería
formada por un conjunto de clases Java, que permite crear elementos
básicos para la interfaz gráfica. Posteriormente, AWT ha sido mejorada
dando lugar al paquete javax.swing. (K Arnold, J Gosling, D Colin. 2006)
La estructura básica del AWT se basa en Componentes (botones, etiquetas,
Paneles, etc.) y contenedores (Panel, Frame, Applet, etc.). Estos últimos
contienen componentes, de forma que los Eventos pueden tratarse tanto en
contenedores como en componentes.
10
2.6 JAVA3D
Java 3D es una interfaz de programación de aplicación utilizada para escribir
aplicaciones y applets con gráficos en tres dimensiones.
(Andrew Davison, 2007).
Se utilizan constructores de alto nivel para crear y manipular geometrías 3D
y para construir las estructuras utilizadas en el renderizado de dichas
geometrías. Se pueden describir grandes mundos virtuales utilizando estos
constructores, que proporcionan a Java 3D la suficiente información como
para renderizar dichos mundos de forma eficiente. (Andrew Davison, 2007).
Java 3D es parte del conjunto de APIs JavaMedia, lo cual hace que esté
disponible en un gran número de plataformas. También, se integra
correctamente con Internet ya que tanto los applets como las aplicaciones
escritas utilizando Java 3D tienen acceso al conjunto completo de clases de
Java.
2.6.1 OBJETOS DE LA SUPER ESTRUCTURA DEL GRAFO DE ESCENA
En Java 3D los objetos de superestructura del grafo de escena,
VirtualUniverse y Locale, se utilizan para contener los distintos sub-grafos
que forman el grafo de escena. (K Arnold, J Gosling, D Colin. 2006).
• Objeto VirtualUniverse. Un objeto VirtualUniverse consiste en una
lista de objetos Locale que contienen una serie de nodos del grafo de
escena que existen en el universo.
• Objeto Locale. Contiene un conjunto de sub-grafos del grafo de
escena cuya raíz se corresponde con un nodo del tipo BranchGroup.
Un objeto Locale también define la localización del universo virtual.
11
2.6.2 OBJETOS DE AGRUPACIÓN DE NODOS
Los nodos de agrupación son los elementos de unión que se utilizan para
construir un grafo de escena. Todos los nodos de agrupación pueden tener
un número variable de nodos hijos incluyendo otros nodos de agrupación y
nodos hoja. (K Arnold, J Gosling, D Colin. 2006).
•
Nodos Group. Los objetos Group son nodos de agrupación de
propósito general, tienen un solo padre y un número arbitrario de
hijos. Entre las operaciones que proporciona este objeto están las de
añadir, eliminar y enumerar los hijos del grupo. Las subclases de este
objeto añaden semánticas adicionales.
•
Nodos BranchGroup. Un nodo Branch-Group es la raíz de un subgrafo de una escena que puede compilarse como una unidad, unirse
a un universo virtual o incluirse como hijo de un nodo de agrupación
en otro sub-grafo.
-
Se puede compilar invocando a su método de compilación.
Esta operación hará que se compile el sub-grafo completo así
como cualquier otro nodo de tipo Branch-Group contenido en
dicho sub-grafo. (además de todos sus descendientes).
-
Se puede insertar dentro de un universo virtual conectándolo
con un objeto Locale. Entonces se dice que el sub-grafo
completo está vivo.
•
Nodos Transform-Group. Los nodos Transform-Group especifican
una transformación espacial sencilla utilizando un objeto Transform3D
que puede colocar, orientar y escalar todos sus hijos.
12
2.6.3 OBJETOS NODOS HOJA
Los nodos hoja (Leaf) forman una clase abstracta para todos los nodos del
grafo de escena que no tienen hijos. Proporcionan enlaces y capacidades de
instanciación para compartir grafos de escena. (Andrew Davison, 2007)
•
Nodos Shape3D. Da soporte a la creación de objetos geométricos.
Contiene dos componentes: una referencia a la forma geométrica y a
su componente de apariencia.
•
Nodos View-Platform. Se definen una plataforma de visualización
que se referencia mediante un objeto View. La posición, orientación y
escala de las transformaciones desde el grafo de escena hasta el
nodo ViewPlatform especifican la localización del punto de vista y
hacia qué dirección está orientado.
•
Nodos Behavior. Los nodos hoja Behavior permiten que una
aplicación modifique el grafo de escena en tiempo de ejecución.
Behavior es una clase abstracta que define propiedades comunes a
todos los objetos de comportamiento de Java 3D.
•
Nodo Background. Este nodo define un fondo para la aplicación.
Además puede ser, bien un color fijo o una imagen que se utiliza para
rellenar la ventana utilizada.
•
Nodo Light. Es una clase abstracta que define las propiedades
comunes a todos los nodos de luz. Cada luz tiene asociado un color,
un estado (encendida o apagada) y un objeto de límites que
especifica la región de influencia de la luz.
13
2.6.4 JERARQUÍA NODOS JAVA3D
Figura 2 Jerarquía nodo Java3d.
Fuente: Sun Microsystems. Java 3D 1.3 API Specification Guide
14
2.6.5 SISTEMA DE COORDENADAS EN JAVA3D.
Los sistemas de coordenadas en Java 3D son, por defecto “diestros”, de tal
forma que la parte positiva del eje de ordenadas es el sentido ascendente de
la gravedad, la parte positiva del eje de abscisas es horizontal hacia la
derecha y la parte positiva del eje z está dirigido hacia el observador.
(Andrew Davison, 2007)
En el siguiente grafico se puede ver esta distribución.
Figura 3 Coordenadas en Java3d.
(Microsystems Sum. Java 3D 1.3 API Specification Guide 2005).
2.6.6 Movimiento en Java 3D
A continuación se describen los fundamentos básicos que proporciona el
API de Java 3D para transformar la situación inicial de las figuras en una
escena. (Andrew Davison, 2007).
15
Traslaciones y rotaciones en Java 3D
Con anterioridad se introdujeron las clases Transform-Group y Transform3D.
Estas
dos clases son el germen para realizar modificaciones sobre la
posición y orientación por defecto de una figura 3D. (Andrew Davison, 2007).
La clase Transform3D brinda métodos que permiten realizar translaciones de
una figura desde un punto del espacio a otro, rotaciones respecto a un eje
determinado y con un ángulo dado. En una palabra, va a encapsular toda la
lógica de procesamiento de matrices implicada en el proceso de
transformación gráfica. Un objeto Transform3D realiza una sola operación de
transformación básica. Como consecuencia de esa transformación, la figura
afectada dentro del grafo de escena mostrará una nueva posición o una
nueva orientación o ambas cosas.
Concepto de capacidad
El proceso descrito en el punto anterior, se realiza de forma previa a la
compilación de la rama generada y la visualización de la escena. Es decir,
se hace en tiempo de diseño del universo. Sin embargo, una vez creada la
escena, ésta es totalmente estática. (Andrew Davison, 2007).
Para evitar que tras la compilación de una rama, los valores definidos para
cada figura se establezcan inmutables, se define el concepto de bit de
capacidad (capability bit). A través de estos bits no sólo se puede establecer
que una figura pueda ser objeto de transformaciones una vez incluida en el
grafo de escena, sino que además decidir que sólo sea susceptible de
ciertos tipos de transformaciones. (Andrew Davison, 2007).
16
Comportamientos (Behavior)
El comportamiento se articula en torno a una clase denominada Behavior,
esta clase se encarga de modificar los objetos de la escena 3D ante distintos
estímulos, y en particular estímulos procedentes de la interacción del
usuario. Las modificaciones que se pueden realizar a través de la clase
Behavior y sus descendientes están únicamente limitadas por las
capacidades de cada uno de los objetos del grafo de escena.
(Andrew Davison, 2007).
El objetivo final de una instancia de la clase Behavior es la modificación de
un determinado objeto. Este objeto se conoce como objeto de cambio. Por
supuesto, la instancia encargada de la gestión del comportamiento debe
tener una referencia al objeto susceptible de ser cambiado. Esta referencia
se debe incluir en el momento de construcción del grafo de escena. De
hecho, es uno de los parámetros del constructor.
Funcionamiento
El comportamiento posee un método específico que lo inicializa: initialization,
este método es responsable de cargar el disparador (trigger) encargado de
responder al evento y la condición para que dicho evento se dispare El
disparador es un objeto de la clase WakeupCondition o una combinación de
objetos de dicha clase.
(Andrew Davison, 2007).
Una vez que el comportamiento está activado y dispuesto para recibir
eventos, dicho comportamiento será capaz de capturar el evento producido
mediante el método process-Stimulus.
17
2.6.8 INTERACCIÓN CON EL USUARIO
Ya conocidos los primeros pasos para incorporar transformaciones en una
escena 3D, es necesario analizar cómo realizar dichas transformaciones
ante eventos generados por la interacción del usuario con el universo
creado.
De todas las clases que descienden de la clase Behavior, las implicadas en
la interacción con el usuario son las que se muestran a continuación.
Clases de comportamiento implicadas en la interacción con el usuario
Figura 4 Behavior Java3d
(Sun Microsystems. Java 3D 1.3 API Specification Guide 2005)
18
2.6.9 GESTIÓN DEL RATÓN
Java 3D proporciona los comportamientos necesarios para controlar los
distintos eventos que puede generar el ratón. (Andrew Davison, 2005).
Los eventos no se disparan por el hecho de pulsar un botón sino por pulsar y
desplazar el ratón sin soltar el botón pulsado.
Por defecto, cada uno de los botones del ratón tiene un efecto preestablecido que es controlado por una clase diferente en cada caso:
● La pulsación del botón izquierdo acompañada de movimiento provoca
que el objeto visual rote, este evento lo controla la clase
comportamiento MouseRotate.
● El desplazamiento del ratón manteniendo pulsado el botón derecho
provoca que la figura se desplace siguiendo una trayectoria paralela
al plano de imagen. Este evento lo controla la clase MouseTranslate.
● La pulsación del tercer botón del ratón con desplazamiento de este
provoca una alteración del zoom de la imagen, o lo que es lo mismo,
desplaza la imagen en un plano ortogonal al plano de imagen. Este
evento lo controla la clase MouseZoom.
19
2.3 ESTADO DEL ARTE
En la actualidad existen varias aplicaciones web o de escritorio desarrolladas
sobre el tema de la visualización de la anatomía del cuerpo humano en
forma tridimensional y cada una de ellas difiere en sus características tanto
de visualización, detalle o información, etc.
En las siguientes tablas se resume de una forma más clara cuáles son los
aplicativos más relevantes, además de
sus características técnicas más
importantes.
Tabla 1. Programas Cuerpo Humano 3d
Nombre
Pagina web
Aplicación ejecutable
Lenguaje
Bonelab
www.nextd.com
WinXP/Vista
Inglés
Visiblebody
www.visiblebody.com
No
Inglés
No
Inglés
Human-body-maps
www.healthline.com/humanbody-maps
Google Body Browser
bodybrowser.googlelabs.com
No
Español/inglés
visionmedicavirtual
www.visionmedicavirtual.com
No
Español
3D Muscles Teacher
www.nextd.com
WinXP/Vista
Inglés
20
Tabla 2. Comparativa Programas Cuerpo Humano 3d
Nivel
Vista de
Detalles
modelo
Modelo
Solo
Bajo
Huesos
Estado
Actual
Desarrollo
Gratuito
Información
Soporte
Cuerpo
Técnico
Humano
desarrollo
Demo
No
No
Visiblebody
Completo Alto
Activo
Demo
Si
No
Human-bodymaps
Completo Medio
Activo
Si
Si
Si
Completo Alto
Abandono Si
No
No
Nombre
Bonelab
Google
Browser
Body
visionmedicavirtual Completo Profesional Activo
No
Si
Si
3D
Teacher
Demo
Si
Si
Muscles
Músculos
Medio
Activo
Además de lo descrito anteriormente existen programas que se especializan
en una cierta área o sistema del cuerpo humano, como por ejemplo la
visualización del cerebro con un alto nivel de detalle, pero ya que este tipo
de detalle abarcaría una cantidad exagerada de información no relevante en
este caso no se profundizará en ella.
Con la información que se encuentra disponible para el desarrollo del tema
de investigación, se puede determinar que al momento existe un cantidad
importante de aplicativos a disposición, aunque la mayoría de estos son
versiones que exigen un pago para su uso y además que la tendencia esta
encaminada hacia el desarrollo como aplicativos web.
21
2.7 CONOCIMIENTOS ANATOMÍA HUMANA
2.7.1 EL CUERPO HUMANO
El cuerpo humano es un gran conjunto de billones de células, estas a su vez
agrupadas en tejidos y organizadas en aparatos los cuales son: locomotor,
respiratorio,
digestivo,
excretor,
circulatorio,
endocrino,
nervioso
y
reproductor, cabe recalcar que se toma como referencia la clasificación
establecida por Wang y Col, 1992.
2.7.2 SISTEMA ÓSEO
El cuerpo humano está conformado por más de 200 huesos, un centenar de
articulaciones y más de 650 músculos los cuales actúan coordinadamente
gracias a la grandiosa máquina que llega a ser en totalidad la estructura del
ser humano. (Wang y Col, 1992).
El conjunto de huesos y cartílagos forma el esqueleto.
Los huesos son la combinación de células vivas y materias inertes, tales
como el calcio, los que permiten que el cuerpo se sostenga firmemente.
A continuación se hará un detalle de los huesos contenidos en el esqueleto
del ser humano y por ende en el modelo realizado en 3D.
En el cuerpo humano existen 208 huesos:

26 en la columna vertebral

8 en el cráneo

14 en la cara

8 en el oído

1 hueso hioides
22

25 en el tórax

64 en los miembros superiores

62 en los miembros inferiores
Huesos del cráneo
Los huesos del cráneo son ocho, cuatro son impares y de situación media, y
los otros dos son pares y de situación lateral simétrica. (Wang y Col, 1992).
●
Frontal
●
Parietal 2
●
Temporal 2
●
Occipital
●
Esfenoides
●
Etmoides
Huesos de la cara
Los huesos de la cara son los huesos de la cabeza que se encuentran
debajo del cráneo. (Wang y Col, 1992).
●
Palatino 2
●
Vómer
●
Lagrimar o unguis 2
●
Cornete inferior o conchas
●
Malar 2
●
Maxilar superior 2
●
Maxilar inferior
●
Huesos propios de la nariz 2
23
Huesos del tórax
Los huesos del tórax en total suman 25 constituidos por:
(Wang y Col, 1992).
●
Costillas verdaderas 14
●
Costillas falsas 6
●
Costillas flotantes 4
●
Esternón 1
Huesos de la pelvis
●
Coxal
Huesos del miembro superior
Cada una de las extremidades que se fijan a la parte superior del tronco. Se
compone de cuatro segmentos: cintura escapular, brazo, antebrazo y mano.
Se caracteriza por la movilidad y capacidad para manipular y sujetar. Tiene
en total 32 huesos. (Wang y Col, 1992).
●
Clavícula 2
●
Escapula 2
●
Humero 2
●
Radio 2
●
Cubito 2
24
Huesos de la mano
●
Ganchoso 2
●
Pisiforme 2
●
Piramidal 2
●
Semilunar 2
●
Grande 2
●
Escafoides 2
●
Trapecio 2
●
Trapezoide 2
Metacarpo
●
Primer metacarpiano 2
●
Segundo metacarpiano 2
●
Tercer metacarpiano 2
●
Cuarto metacarpiano 2
●
Quinto metacarpiano 2
Hueso de la mano
●
Trapecio
●
Trapezoide
●
Grande
●
Ganchoso
●
Pisiforme
●
Piramidal
●
Semilunar
●
Escafoides
25
Columna Vertebral
●
Vertebras cervicales 7
●
Vertebras dorsales 12
●
Vertebras lumbares 5
●
Columna sacra y coxis 2
Huesos de la pierna
En anatomía humana, la pierna es el tercer segmento del miembro inferior o
pelviano, comprendida entre el muslo y el pie. (Wang y Col, 1992).
●
Rotula 2
●
Tibia 2
●
Peroné 2
●
Tarso 14
●
Metatarso 10
●
Falanges 28
●
Fémur 2
26
Esqueleto Humano.
Figura 5 Esqueleto humano.
Fuente: Guyton y Hall, 2004.
27
2.7.3 SISTEMA MUSCULAR
●
Los músculos son el tejido que genera movimiento en las personas.
Generan movimiento al contraerse. En el cuerpo humano los
músculos están asociados al esqueleto, siendo los responsables de
su movimiento.
●
El cuerpo humano tiene más de 600 músculos.
●
Las principales funciones del sistema muscular son:
-
El movimiento del cuerpo o de alguna de sus partes.
-
Producción de calor. Los músculos producen un 40% del calor
corporal en reposo y hasta un 80% durante el movimiento.
-
El mantenimiento de la postura.
Músculos de la cabeza
●
Músculos mímicos
●
Frontal: levanta las cejas y arruga la frente.
●
Risorio: tiran de la unión bucal lateralmente.
●
Orbicular de los párpados: cierran los ojos.
●
Orbicular de los labios: cierran la boca.
●
Músculos masticadores
●
Masetero: cierran la boca y aprietan los dientes.
●
Temporal: cierran la boca, aprietan los dientes y retraen el maxilar
inferior.
28
Músculos del cuello
●
Esternocleidomastoideo: rotación y flexión de la cabeza.
Músculos del tronco
Cara anterior
●
Pectoral mayor: flexión del brazo. Colabora con el dorsal ancho en la
aducción del brazo.
●
Serratos anteriores o mayores: desplazan los hombros hacia
adelante.
●
Intercostales: situados entre las costillas. Intervienen en los
movimientos respiratorios.
●
Diafragma: separa las cavidades torácica y abdominal. Interviene en
los movimientos respiratorios.
●
Recto mayor del abdomen: flexión del tronco y compresión del
contenido abdominal.
●
Oblicuo externo o mayor del abdomen: flexión del tronco y
compresión del contenido abdominal.
Cara posterior
●
Trapecio: intervienen en la aducción y abducción del brazo.
●
Dorsal ancho: extensión del brazo. Colabora con el pectoral en la
aducción del brazo.
●
Redondo mayor: extensión, aducción y rotación interna del brazo.
●
Redondo menor: aducción y rotación del brazo hacia fuera.
29
Músculos de las extremidades superiores
Hombro
●
Deltoides: abducción del brazo. Participa también en la flexión y
extensión del brazo.
Músculos Brazo
●
Bíceps braquial: flexión y supinación del antebrazo. Flexión del brazo.
●
Braquial anterior: flexión del antebrazo.
●
Tríceps braquial: extensión del antebrazo. Una porción interviene en
la extensión del brazo.
Músculos Antebrazo
●
Pronador: pronación del antebrazo y la mano.
●
Supinador: supinación del antebrazo y la mano.
●
Cubital anterior: flexión de la mano.
●
Palmar: flexión de la mano sobre el antebrazo.
●
Flexores y extensores de los dedos: flexión y extensión de los dedos.
Músculos Mano
Músculos cortos de la mano: mueven los dedos.
Músculos de las extremidades inferiores
Muslo y nalgas
●
Glúteo mayor: extensión del muslo.
●
Glúteo mediano: abducción del muslo.
30
●
Iliopsoas: flexión del muslo y el tronco.
●
Pectíneo: flexión y aducción del muslo.
●
Sartorio: flexión, aducción y giro del muslo hacia fuera. Flexión de la
pierna.
●
Recto interno: aducción del muslo y flexión de la pierna.
●
Aductor mayor: aducción de las piernas.
●
Aductor mediano: aducción de las piernas.
●
Cuádriceps femoral: incluye el vasto externo, el vasto intermedio (que
no se observa en el dibujo), el vasto.
●
Interno y el recto anterior. Extensión de la pierna.
●
Bíceps femoral: flexión de la pierna y extensión del muslo.
●
Semitendinoso: flexión de la pierna y extensión del muslo.
●
Semimembranoso: flexión de la pierna y extensión del muslo.
Pierna
●
Tibial anterior: flexión dorsal del pie.
●
Soleo: junto con los gemelos permiten levantar el cuerpo sobre la
punta de los pies.
●
Gemelo: flexión plantar del pie y flexión de la pierna. Este músculo se
inserta en el hueso calcáneo mediante el tendón de Aquiles.
●
Peroneo lateral largo: gira hacia fuera el pie.
●
Flexores y extensores de los dedos del pie: flexionan o extienden los
dedos del pie.
●
Músculos cortos del pie: mueven los dedos del pie.
31
Figura 6 Músculos del cuerpo humano.
Fuente: Guyton y Hall, 2004.
32
2.7.4 ÓRGANOS DEL SER HUMANO
Los órganos son estructuras corporales de tamaño y forma característicos,
que están constituidos por masas celulares llamadas tejidos y que llevan a
cabo funciones vitales específicas. (Wang y Col, 1992).
Los sistemas de órganos son grupos coordinados de órganos que trabajan
juntos en amplias funciones vitales.
Los órganos se agrupan en once sistemas o aparatos y son:

Sistema Muscular

Sistema Óseo

Sistema Respiratorio

Sistema o aparato Digestivo

Sistema Excretor o Urinario

Sistema Circulatorio

Sistema Hormonal o Endocrino

Sistema Nervioso

Aparato Reproductor

Sistema Linfático

Sistema inmunológico
Sistema respiratorio:
Está formado por órganos huecos que constituyen una especie de tubería.
●
Faringe
●
Laringe
●
Tráquea
●
Bronquios
●
Pulmones
33
Sistema o aparato digestivo:
Está constituido por los siguientes órganos:
●
Boca
●
Faringe
●
Esófago
●
Estomago
●
Intestino delgado
●
Intestino grueso
Sistema urinario:
El sistema urinario esta constituido por los siguientes órganos
●
Riñones
●
Uréteres
●
Vejiga
●
Uretra
Sistema circulatorio
El órgano que realiza las principales funciones es el corazón
Órganos de los sentidos

Ojos

Oído

Boca

Lengua

Piel

Nariz
34
Órganos del ser humano
Figura 7 Órganos de cuerpo humano.
Fuente: Guyton y Hall, 2004.
35
2.8 CONOCIMIENTO METODOLOGÍA DE DESARROLLO
La elección de la metodología de software a ser usada esta detallada en un
estudio en base de los objetivos y requerimientos que se presentan para el
desarrollo del tema de tesis, tal estudio se lo presenta en el Anexo I para su
justificación.
A continuación se presentan los conceptos principales sobre la metodología
Microsoft Solutions Framework agile, que implementa al desarrollo del
proyecto de tesis y este tema se describe gracias a la referencias
bibliográficas Jim Highsmith. Agile Software Development, 2002.
2.8.1 METODOLOGÍA
FRAMEWORK AGILE
DESARROLLO
MICROSOFT
SOLUTIONS
Es del tipo de metodologías de desarrollo de software agiles; Está enfocada
a dirigir proyectos de innovación, en ella no se detalla ni se hace énfasis de
la organización de los recursos humanos, está mas bien centrada en la
gestión y administración del proyecto para lograr el impacto deseado.
(Jim Highsmith, 2002).
Envuelve indudablemente la calidad, ya que provee liberar una solución si
esta aún tiene fallos o desperfectos. Para ello propone seleccionar un grupo
de prueba piloto el cual es una VERSION BETA y cumplido un tiempo de
prueba ya es liberada la versión formal o VERSION ALFA en la cual está
garantizada la calidad.
Los principios fundamentales de MSF incluyen:
● Promoción de la comunicación abierta entre los equipos de trabajo
● Trabajar en torno a una visión común
● Otorga autoridad y poder de decisión a los equipos de trabajo
● Establecer claramente los compromisos personales "accountability" y
la responsabilidad compartida
36
● Foco en entregar valor de negocio a través de los proyectos
● Mantenerse ágiles, y esperar el cambio
● Invertir en la calidad
● Aprender de las experiencias
2.8.2 CARACTERÍSTICAS
Adaptable:
Es parecido a un compás, usado en cualquier parte como un mapa, del cual
su uso es limitado a un específico lugar.
Escalable:
Puede organizar equipos tan pequeños entre 3 o 4 personas, así como
también, proyectos que requieren 50 personas a más.
Flexible:
Es utilizada en el ambiente de desarrollo de cualquier cliente.
Tecnología Agnóstica:
Porque puede ser usada para desarrollar soluciones basadas sobre
cualquier tecnología.
37
2.8.3 FASES DE LA METODOLOGÍA
Figura 8 Fases metodología.
(http://www.epmpartners.com.au/our-methodology/)
Visión: En esta fase se debe aplicar un estudio de lo que pretendemos en el
futuro que haga nuestra aplicación o nuestro proyecto. Para ello debemos
realizar un documento de estrategia y alcance de donde debe quedar
pactada la necesidad de funcionalidad y servicio que se debe contar en la
solución.
Planificación: En esta fase básicamente debemos concretar claramente
como va a estar estructurada nuestra solución para ello debemos crear un
documento de planificación y diseño de la arquitectura, diseñar las pruebas
de concepto donde se plantean los diferentes escenarios para probar la
validez de los criterios utilizados para el diseño, debemos establecer
métricas.
38
Desarrollo: En la etapa de desarrollo debemos codificar las aplicaciones y
realizar las configuraciones necesarias para que la solución funcione. Es
importante realizar pruebas continuamente, así se verifica la calidad del
producto continuamente a lo largo del desarrollo y no únicamente al final del
proceso.
Estabilización: En esta fase podemos seleccionar el entorno de prueba
piloto y lo que pretendemos con esto es identificar las deficiencias con un
grupo reducido de usuarios para corregirlas y así en el futuro no tener
problemas cuando se use la solución por todos.
La etapa se le da el nombre de BETA y en la cual se realiza una revisión de
documentación final de la arquitectura y la elaboración del plan de
despliegue o implementación.
Implementación: En esta etapa final ya se ha comprobado la calidad de la
solución por lo cual est lista para ser publicada. En este sentido debemos
liberar la solución y crear un registro de mejoras y sugerencias, revisar las
guías y manuales y entregar proyecto final.
Figura 9 Metodología.
39
Este ciclo se puede llevar a cabo de forma iterativa, de manera que cuando
liberamos una solución podemos iniciar nuevamente la metodología para
darle más funcionalidad. (Pressman R, 1997).
40
METODOLOGÍA
3 METODOLOGÍA
A continuación se detallará las fases de desarrollo siguiendo la metodología
de desarrollo
MSF ágil debidamente justificada en el Anexo I pág. 121
(Selección de Metodología) del documento.
3.1 VISIÓN
A continuación se define cuál es la visión general del aplicativo, lo que se
pretende a futuro que haga la aplicación, además de la estrategia y alcance
para llegar a la solución del problema.
3.1.1 VISIÓN DEL PROYECTO
Desarrollar un escenario virtual en el cual se presente un modelo
tridimensional del cuerpo humano, con la finalidad de que el modelo del
cuerpo humano pueda ser manipulado y explorado (acercar, alejar, girar y
desplazar) por el usuario que lo ejecute.
La visión se fundamenta en base a lo acordado en el Anexo I pág. 117 que
define detalladamente los requerimientos y antecedentes que se desea
implementar para el proyecto de tesis.
3.1.2 ALCANCE
Crear una herramienta que aporte a la enseñanza y aprendizaje para
profesionales de la medicina, los estudiantes y cualquier persona que esté
interesado en la anatomía del cuerpo humano en general.
3.2 PLANIFICACIÓN
En esta fase esencialmente se concretará la estructurada de la solución,
además de las pruebas de concepto teniendo en cuenta nuestros objetivos
principales y sus alcances.
3.2.1 ESTUDIO TÉCNICO DE LENGUAJE A IMPLEMENTAR
En este paso se especifica cuáles son las opciones de lenguajes de
programación que se tienen a disposición para el desarrollo del proyecto y
sus principales ventajas y desventajas con respecto a su funcionalidad con
respecto a los requerimientos del proyecto. A continuación se las detalla:
Características Adobe Flash
En Flash no existe 3D. No cuenta con las capacidades 3D inherentes, ni
herramientas de dibujo ni comandos de programación. Pero sí es capaz de
mostrar formas vectoriales y calcular expresiones, con eso se puede
hacer mucho si se está dispuesto a considerar 3D desde otro punto de vista.
Es necesario desarrollar programas en ActionScript para simular espacios
3D, la traslación de las cámaras, etc.
Características Adobe Director
Director incluye una serie de herramientas accesibles desde el lenguaje de
programación Lingo específico. Permite acceder a componentes
3D
(cámaras, luces, modelos, texturas…) como elementos de un lenguaje
orientado al objeto completo. Además, Director añade funciones para
tratamiento de ficheros XML y funciones de accesibilidad.
41
Características Microsoft Silverlight
Tiene capacidades y sintaxis propias para implementar “3D real” en lenguaje
XAML pero se implementa una interacción “2D sobre 3D”. En un alto nivel, la
interacción con “2D sobre 3D” se consigue realmente interactuando con una
versión escondida en 3D de ese contenido en 2D. El 2D se posiciona de tal
manera que el punto en el 3D sobre el que se posiciona el ratón está
exactamente en el mismo punto en el que está el ratón sobre la versión 2D
oculta.
Características Java
Java para
trabajar con 3D puede utilizar las siguientes combinaciones:
“Java+VRML”, “Java+X3D” y Java3D, aunque éste último puede combinar
las anteriores. Las dos primeras son fruto de la evolución de los lenguajes de
marcas para especificar escenas 3D. Además hacen uso de un API Java
para manipular las escenas definidas.
En el caso de “Java+VRML”, el API se denomina External Authoring
Interface (EAI) y manipula nodos VRML. “Java+X3D” utiliza el API Scene
Authoring Interface (SAI) que manipula nodos X3D. Sin embargo, Java3D es
un API en el que se define interacción, comportamiento y otros elementos
de la escena que en las dos primeras son definidos en los lenguajes de
marcas.
Las tres opciones proveen soporte para construir entornos virtuales a gran
escala gracias a una descripción
dinámica
de
escenas 3D,
comportamiento y animación de cámara. Se pueden usar herramientas
externas para definir elementos 3D y tras ello exportarlos a VRML o X3D e
importarlos en desarrollos realizados bien con las APIs EAI o SAI o bien con
el API Java3D.
42
A continuación se presentan dos tablas en las cuales se resume las
características de cada una.
Tabla 3. Comparativa Lenguajes de Programación
Adobe Flash
Microsoft
Ajax
Java
Adobe Director
Media (Misma
Rica
Muy rica
Silverlight
Riqueza Gráfica
Muy rica
Rica
que HTML)
Contenedor
Ligero
Ligero
Muy ligero (en el Pesado
Ligero
navegador)
de Lento
Descarga
Rápido
Rápido
Lento
OK
Pobre (a menos OK
Lento
Aplicación
Soporte Audio/Video Excelente
Excelente
que use ActiveX)
Disponibilidad
Ms.
Consistencia en
Windows,
Ms.
Windows,
Ms. Windows,
Ms. Windows, Mac Ms. Windows, Mac
Linux, Mac OS3
Linux, Mac OS
Mac OS
OS, Linux
OS
Muy consistente
Relativamente
Varía
Relativamente te
Muy consistente en
consistente
Ms. Windows y Mac
Diferentes Entornos sobre Ms. Windows consistente fuera
Informáticos
Requisitos
y Mac OS X
del Si (Flex u Open
Servidor
Laszlo)
Plug-in/Requisitos
Flash (Player)
de
Ejecución en el
de Ms. IE
OS X
Microsoft .NET
Ninguno
Ninguno
Microsoft
Plug-in para
Java Runtime (JRE) Shockwave (Player)
Silverlight
X3D
y Plug-in para
Cliente
Lenguaje de
Ninguno
VRML/X3D
ActionScript
C#, Visua Basic
JavaScript
Java, JavaScript
Lingo, JavaScript
programación
Desafío de
Relativamente fácil Ms.Visual Studio o Complejo sin
Relativamente te
Relativamente fácil
Desarrollo
con las
Ms. Expresión
herramientas
fácil con la
con la herramienta
herramientas
Blend
tales como
herramienta
Director.
TIBCO
Nexaweb
CSS, XML,
XML, VRML/X3D,
XSLT, DOM,
Java3D
Adobe Flex u
Open Laszlo
Conocimientos
de XML, DOM,
desarrollo
JavaScript
Coste de Licencia
SI
-
ActiveX, X3D
SI
NO
NO
SI
43
Tabla 4. Comparativa Lenguajes de Programación en base objetos 3d
Adobe Flash
Microsoft
Ajax
Java
Silverlight
3D
Adobe
Director
“3D emulado”
“3D real”
“3Dreal”
“3D real”
(Swift3D)
(XAML)
(X3D)
(VRML/ X3D/
Implementado
-
Capacidades Capacidades
“3D real” (W3D)
Java3D)
Modelos 3D,
luces
y con
cámaras
ActionScript
Propias de
Propias de
X3D
Java3D,
Completo
VRML o X3D
Texturas
Importadas
de Capacidades Capacidades Capacidades
otras
propias de
propias de
propias de
herramientas
XAML
X3D
Java3D,
Completo
VRML o X3D
Animaciones
A través de
Programables Programables Programables Incluidas
en los
fotogramas
modelos y
clave e
programables
interpolaciones
Grupos
-
-
Capacidades Capacidades
Definición
Propias de
propias de
Jerárquica del
X3D
Java3D,
mundo
VRML o X3D
Cinemática
-
-
-
-
inversa
Incluye bones y un
Xtra Havok
Interacción
2D
OK,
3D
“2D
gráfica
emulada
3D”
Dispositivos
NO
-
sobre
de
OK
OK
OK
A través de
A través de
Soporta joysticks
X3D
VRML/X3D
interacción
complejos
Visualización
Spatialview
-
estereoscópica
Proyectos
Papervision3D
CodePlex
A través de
A través de
X3D
VRML/X3D
AJAX3D
XMMVR
-
Away3D
44
Se puede
concluir que cada tecnología presentada ofrece ventajas e
inconvenientes según el criterio básico a considerar pero debemos tener en
cuenta que la riqueza de todas reside en la posibilidad de combinarlas y de
integrarlas con otras tecnologías.
3.2.2 ELECCIÓN DE LENGUAJE DE PROGRAMACION
En base a los requerimientos y antecedente del proyecto que se detallan en
el Anexo I y además de lo explicado en el anterior estudio, se ha optado por
escoger el lenguaje de programación Java, por la razón de que este lenguaje
respalda por completo los requerimientos funcionales necesarios para
cumplir los objetivos propuestos en la tesis.
3.2.3 ESTUDIO DE TECNOLOGÍAS VRML SOPORTADAS POR JAVA EN
BASE A LOS OBJETIVOS DEL PROYECTO
Una vez escogido el lenguaje de programación a utilizar (Java), será
necesario analizar todas las tecnologías (API’s) de desarrollo de ambientes
virtuales que trabajan con Java.
Las tecnologías más relevantes son:
• VRML (Virtual Reality Modelling Language).
• X3D (Extensible 3D).
• Java3D.
Características Generales
VRML: Es un formato de archivo que permite la creación de objetos y
mundos tridimensionales interactivos, fue diseñado para cumplir con los
siguientes requerimientos básicos:

Habilitar la posibilidad del desarrollo de programas para crear, editar y
mantener archivos VRML, además de programas para la importación
45
y exportación del formato VRML a otros formatos gráficos
tridimensionales.

Aportar la capacidad de utilizar, combinar y reutilizar objetos
dinámicos tridimensionales dentro de un mismo mundo VRML.

Incorporar la capacidad de crear nuevos tipos de objetos no definidos
específicamente como parte de VRML.

Resaltar la importancia del funcionamiento interactivo en una amplia
variedad de plataformas existentes.

Permitir la creación de mundos tridimensionales de cualquier tamaño.
VRML es un lenguaje jerárquico de marcas que usa Nodos, Eventos y
Campos para modelar realidades virtuales tanto estáticas, como dinámicas.
Los Nodos, que se usan para instanciar alguna de las 54 primitivas del
lenguaje, no son más que una colección de Campos que contienen los
atributos básicos de la primitiva.
Las primitivas del VRML se agrupan según función, en nueve colecciones
distintas:
• Agrupación de nodos
• Grupos especiales
• Sensores
• Geometría
• Propiedades de geometría
• Apariencia de la geometría
• Interpoladores
• Nodos excluyentes
• Nodos comunes
46
JAVA3D
El API de Java 3D. Es un conjunto de clases para crear aplicaciones y
applets con elementos 3D. Ofrece a los desarrolladores la posibilidad de
manipular geometrías complejas en tres dimensiones. La principal ventaja
que presenta este API 3D frente a otros entornos de programación 3D es
que permite crear aplicaciones gráficas 3D independientes del tipo de
sistema. Es parte de la API JavaMedia y por tanto puede hacer uso de la
versatilidad del lenguaje Java, así como soportar un gran número de
formatos como VRML, CAD, OBJ, etc.
Java 3D usa un conjunto de clases, interfaces y librerías de alto nivel que
permiten aprovechar la aceleración gráfica por hardware que incorporan
muchas tarjetas gráficas, ya que las llamadas a los métodos de Java 3D son
transformadas en llamadas a funciones de OpenGL o Direct3D.
Aunque Java3D no soporte directamente cada posible necesidad 3D, sí
proporciona la capacidad de implementarlo a través del código Java. En
otros casos se provee de cargadores (de VRML, X3D...) que traducen
ficheros de ese formato en objetos apropiados en Java3D.
X3D: es un estándar abierto XML, un formato de archivo 3D que habilita la
creación y transmisión de datos 3D entre distintas aplicaciones y,
especialmente, aplicaciones en red.
Sus principales características son:
• X3D esta integrado en XML: esto representa un paso fundamental a la hora
de conseguir una correcta integración en:
● Servicios Web.
● Redes Distribuidas.
47
● Sistemas multiplataforma y transferencia de archivos y datos entre
aplicaciones.
•X3D es Modular (tiene componentes): esto permite la creación de un núcleo
3D más ligero ajustado a las necesidades de los desarrolladores.
•X3D es Extensible: permite añadir componentes para ampliar las
funcionalidades según las necesidades del mercado.
•X3D es Perfilado: se pueden escoger distintos grupos de extensiones
apropiadas según las necesidades específicas de la aplicación.
• X3D es Compatible con VRML: se mantiene el desarrollo, el contenido y la
base de VRML. X3D, en lugar de mantener una única especificación amplia
y estática, como VRML, que requiere la completa adopción de la misma para
conseguir la compatibilidad con X3D, ha optado por una arquitectura basada
en componentes que da soporte para la creación de diferentes perfiles, los
cuales pueden ser individualmente soportados.
3.2.4 COMPARACIÓN DE TECNOLOGÍAS QUE MANEJAN IMÁGENES
3D EN JAVA
A continuación se detalla las diferencias y similitudes que se tiene con
VRML, X3D y Java3d (D. Selman, 2002).
VRML y X3D
Las grandes diferencias que se observan se pueden especificar en tres
acciones distintas que tratan con conceptos abstractos, formatos de archivo
y accesos al lenguaje de programación.
48
Los cambios importantes se pueden resumir en:
• Expansión de las capacidades gráficas.
• Un modelo de programación de aplicaciones revisado y unificado.
• Múltiple codificación de archivos para describir un modelo abstracto,
incluyendo XML.
• Arquitectura modular que permite tener rangos de niveles de adopción y
soporte para los distintos tipos de mercado existentes.
• Expansión de la estructura de la especificación.
La gráfica de la escena X3D, el corazón de una aplicación X3D, es idéntica a
la gráfica de la escena VRML. El diseño original de la estructura gráfica de
VRML y sus tipos de nodos estaba basado en tecnología establecida ya
existente para gráficos interactivos. X3D tiene una única interfaz de
programación de aplicaciones unificada (API). Esto difiere de VRML el cual
tenía una API interna de scripting API además de un API externa.
La API unificada de X3D's agiliza y resuelve muchos de los problemas que
existían con VRML como resultado de una implementación más robusta.
X3D tiene soporte para múltiples codificaciones de archivos: VRML, XML
(Extensible Markup Language) y binario comprimido. El formato binario
comprimido esta actualmente en desarrollo.
X3D emplea una arquitectura modular para dar una mayor extensibilidad y
flexibilidad.
Desde un punto de vista más funcional los cambios más importantes
introducidos en X3D son los siguientes:
• Los archivos se estructuran para definir las necesidades de capacidad
como parte del encabezado o inicio.
49
• Los externprotos definen información externa del archivo X3D. No pueden
ser usados como mecanismos de extensión de los navegadores. La forma
de hacerlo es a través de componentes personalizados.
• Acceso a los nombres de los campos atendiendo a los cambios realizados
desde eventIn, eventOut, field y exposedField, a inputOnly, outputOnly,
initializeOnly y inputOutput, respectivamente.
• Los Scripts pueden tener campos inputOutput (exposedFields).
• El modelo Runtime para interactuar entre el contenido de un script y la
gráfica de la escena está rigurosamente definido y muy controlado. VRML
permitía un script multi-threaded para cambiar arbitrariamente la escena
gráfica en un momento dado, sin embargo X3D define sólo un punto
específico donde se realizarán los cambios.
• El modelo Runtime y de programación para scripting es consistente entre
los lenguajes de programación, esté dentro o fuera del navegador (una API
define las reglas de ambos).
• Un conjunto estrictamente definido de tipos abstractos para nodos.
VRML/X3D y JAVA3D
Una de las diferencias entre VRML/X3D y Java3D, es que Java3D se define
como un lenguaje de programación de escenarios 3D a bajo nivel.
En concreto la creación de objetos y elementos tridimensionales en Java3D
requiere no sólo la formación de los elementos 3D, sino también la definición
de todos los aspectos relacionados con la visualización y control de las
capacidades del escenario. Esto trae ventajas e inconvenientes.
Por ejemplo, para la creación del escenario más simple, el código en Java3D
es superior al necesario en VRML/X3D, pero por otro lado el control de los
distintos elementos presentes en el sistema es superior y más natural en
Java3D. Esto quiere decir que al utilizar VRML es mucho más complicado
50
controlar el mundo virtual en especial para la interacción con el usuario. Para
ello, en primer lugar, es necesario elegir entre el uso de programación
interna dentro del propio código VRML/X3D o de programación externa.
Además se está sujeto a la implementación de la especificación VRML/X3D
que haya realizado el creador del visor VRML/X3D que se esté empleando.
Por ejemplo a nivel de implementación del EAI, algunos visores de VRML
como CosmoPlayer se basan en la Máquina Virtual Java de Sun’s
Microsystem y otros como BS Contact se apoyan en la versión de Microsoft.
Otro aspecto a tomar en cuenta es la pérdida de velocidad y prestaciones en
el caso de Java3D frente a otros visores de VRML/X3D desarrollados en
C/C++ y empleando directamente Direct 3D u OpengGL. A continuación se
presentan las principales diferencias para ser comparadas entre estas
tecnologías.
Tabla 3. Comparativa en prestaciones Java (D. Selman ,2002)
Elementos usados
Cálculo
Retardo Respecto a C++
C++ (sin 3D)
0.9×1+0.1×1
1.0(0% más lento)
Java puro (sin 3D)
0.9×1.35+0.1×3.25
1.54 (54% más lento)
Mixto Java/C++ (sin 3D)
0.9×1+0.1×3.25
1.225 (22.5% más lento)
C++ (con 3D)
0.4×1+0.54×1+0.06×1
1.0 (0% más lento)
Java puro (con 3D)
0.4×2.5+0.54×1.35+0.006×3.25
1.924 (92.4% más lento)
Mixto: Java/C++ (con 3D)
0.4×1+0.54×1.35+0.06×3.25
1.32 (32% más lento)
51
3.2.5 CONCLUSIÓN USO DE TECNOLOGÍA
Tras el estudio que se desarrolló en el anterior ítem se ha optado por el uso
de Java3d por las siguientes razones:
1. Gráficos 3D son relativamente fáciles de crear y de programar.
2. Java3d normalmente requieren un plugin de pequeño tamaño para su
visualización (aunque alguna tecnología no requiere ninguno).
3. Válido para diferentes plataformas (PC, Mac, Unix etc.).
4. Calidad sorprendente de imagen.
5. Efectos de sombreado (reflexiones, anti-aliasing, sombras, etc.).
6. Facilidad para su integración en páginas web.
7. Basados en estándares.
8. Utilización de sistemas de compresión para que la descarga por el usuario
resulte ágil.
52
3.2.6 ARQUITECTURA EN CAPAS DE SOFTWARE
Para la creación de la arquitectura software es necesario distinguir las
diferentes capas que puede tener nuestra aplicación, tal como se demuestra
en el grafico siguiente
Figura 10 Arquitectura en Capas de Software.(J. Bouvier, 1999)
Como se puede apreciar podemos distinguir tres capas software y un
hardware.
La primera capa es la Máquina Virtual de Java se encarga de interpretar
nuestro programa.
53
La segunda capa es el motor 3D de nuestra aplicación. Es el conjunto de
clases que realizamos para manejar toda la funcionalidad del programa.
Estas clases se apoyan en la Java API y en Java3D para lograr su propósito.
La tercera capa es el GUI, que es el conjunto de clases que realizamos para
hacer que el usuario pueda de una manera sencilla manejar la funcionalidad
que implementamos en la capa motor 3D.
La Ultima capa hardware es la plataforma donde vamos a ejecutar el
programa, y como se detalla en el Anexo I el aplicativo será embebido en
una pagina web.
Como se muestra en el gráfico, en el recuadro más grande se encierra las
dos capas superiores, ya que las dos inferiores nos vienen dadas por la
plataforma y el lenguaje a utilizar. Por otra parte intentaremos separar lo más
posible las capas que nos toca implementar, de manera que si se diera el
caso, podríamos encargar a un equipo de desarrollo realizar una capa y a
otro equipo la otra, con el único dato del interface que las comunica. De esta
forma se consigue un diseño modular, que es altamente modificable y
reutilizable.
54
3.2.7 DIAGRAMA DE ACTIVIDAD
El siguiente diagrama está basado en el estudio de los requerimientos y
antecedentes que se presenta en el Anexo I del documento, con la finalidad
de saber las actividades principales que debe cumplir el aplicativo.
Figura 11 Diagrama de Actividades.
55
3.2.8 DEFINICIÓN DE FUNCIONALIDAD.
En esta etapa se define las estructura de métodos y funcionalidades que se
van a utilizar en el proyecto del cuerpo humano, tales como la interfaz, carga
de modelos, despliegue de información entre otras.
Diseño conceptual
El objetivo es definir el esquema y funcionamiento del aplicativo. Esta etapa
se centra en el aspecto de la implementación de la aplicación, además de la
arquitectura de la interfaz gráfica que se despliega al usuario y su
funcionalidad, en la cual se manejan las ventanas principales y los eventos
de integración del usuario, como mover el Mouse, eventos de teclado,
eventos de render, entre otros.
Para llevar a cabo un buen diseño de los contenidos se deben tener en
cuenta los siguientes aspectos:
● El usuario debe tener el control del sistema, no se puede limitar su
actuación.
● La interfaz debe seguir estándares de diseño utilizados ampliamente.
Cuanto más se parezca al resto de interfaces graficas, mas fácil de
usar resultará para los usuarios.
● La GUI debe ser fácil de usar para usuarios, pero también
proporcionar opciones avanzadas para usuarios expertos.
● Cualquier tipo de información que no sea relevante para el usuario y
que sobrecargue la interfaz debe ser eliminada.
● Lo ideal es que la herramienta se pueda utilizar sin necesidad de
ayuda o documentación. Sin embargo, el usuario siempre debe tener
acceso a ella.
● La información de cada una de las partes del cuerpo humano que se
exhiba dentro de nuestro aplicativo debe ser fácil de ubicar y leer.
56
Función Principal
El principal objetivo de nuestro proyecto es la presentación de un modelo
computacional tridimensional de cuerpo humano con sus partes, para que el
usuario pueda manipularlo y explorarlo.
Esta funcionalidad conlleva más que una simple presentación de un objeto
tridimensional, es decir que se necesitan varias características específicas y
requerimientos para llegar a cumplir nuestra funcionalidad principal, por lo
cual a continuación se definirán las sub-funciones que se estima deberá
contener nuestro aplicativo:
Crear el ambiente virtual
Antes de que se pueda presentar nuestro modelo se debe considerar que
este debe estar contenido en un ambiente virtual, por lo tanto al crear esta
funcionalidad se deberá tomar en cuenta la creación del ambiente virtual que
solo es necesario crearlo una vez y que sus características serán en base al
modelo del cuerpo humano que será contenido dentro del espacio virtual.
Llamada a Objetos (3d)
Como
definimos
anteriormente,
los
modelos
tridimensionales
serán
desarrollados con una herramienta de diseño gráfico de modelos en 3d (3D
Max Studio) por lo cual se deberá hacer una llamada de cada uno de estos
objetos para poder ser renderizados dentro de nuestro aplicativo.
Cabe recalcar que cada uno de nuestros modelos 3d son creados de una
forma autónoma, es decir que al ser renderizados se debe especificar varios
atributos individuales para cada uno y así ser acoplados para formar una
solo estructura.
57
Atributos Objeto
Al renderizar los modelos 3d dentro de nuestro aplicativo, estos pasan a ser
parte de los objetos que serán utilizados y manipulados por nuestro
aplicativo por lo que será necesario que se apliquen ciertas características y
permisos para su uso, esto en base a el lenguaje de programación que este
en uso (java y java3d).
Como se especifica en el capitulo del marco teórico: Java3d maneja una
estructura en forma de árbol para crear y generar los diferentes objetos. Los
cuales serán aplicados a nuestros objetos ya anteriormente renderizados.
Navegación en espacio virtual
En el ambiente del espacio virtual creado será necesario aplicar reglas y
características que se deberán utilizar para que el usuario pueda navegar
con facilidad dentro del mundo virtual.
Estas reglas deben ser pensadas para que la interacción con el usuario sea
lo mas amigable posible y no afecte en su mayoría a la estabilidad del
aplicativo
Comportamiento Objeto
Al tener ya creados todos nuestros objetos (modelos 3d) dentro de nuestro
proyecto es necesario aplicar a cada uno de estos un comportamiento que
nos permita explorar al objeto. Este tipo de exploración nos permitirá mover,
rotar, cambiar de apariencia, eliminar, entre otras funcionalidades en el caso
que sean necesarias. Por lo que esta sub-funcionalidad definirá todos estos
tipos de comportamiento de cada objeto.
58
Interface Usuario
Esta funcionalidad estará encargada de la interacción con el usuario, es
decir que permitirá la comunicación del usuario con el aplicativo. Cabe
mencionar que el uso del api java3d facilitará la creación de esta interface ya
que el api, el cuál tiene definidas varias clases que facilitan la interacción.
Información Objeto
Esta funcionalidad se encargará de recolectar y almacenar la información
que se dispondrá de cada uno de nuestros objetos (modelos 3d) y se definirá
la forma en que esta información será presentada ante el usuario.
Planificación prototipo de software
Diseñar el prototipo significa llevar acabo los casos de uso de manera
eficiente. Debe tener en cuenta los elementos de interfaz de usuario
necesarios y los diferentes requerimientos que se han descrito anteriormente
para la aplicación de nuestro proyecto.
Durante la realización del prototipo se tuvo en cuenta que debería
proporcionarse una apariencia amigable; que aspectos como el color y
tamaño de imágenes fueran adecuados y que hubiera facilidad de
comprensión y sea intuitivo para el manejo del usuario.
A Continuación se detalla los pasos seguidos para la creación de nuestro
prototipo:
59
Implementación Modelado Cuerpo Humano
Como se describe en el capítulo II (Marco Teórico) pág. 24 Java3d la
investigación de los modelos 3d que se pueden implementar o crear dentro
del api de java3d, se pudo confirmar que el lenguaje tiene la posibilidad de
crear modelos predefinidos de estructuras sencillas como por ejemplo:
cubos, circunferencias , pirámides, puntos , líneas. Estos elementos a su vez
pueden recrear casi cualquier tipo de figura en tres dimensiones, pero con el
uso de estas estructuras primitivas de java3d el tiempo de creación de
modelos es significativamente alto.
Otros de los puntos que arrojó este rastreo de información, es que java3d
permite invocar modelos creados con diferentes tipos de formato como por
ejemplo (obj, model, 3ds).
Actualmente, los cargadores (diseño) disponibles en Java 3D sirven para
aplicaciones como: 3D-Studio, Solid Works, Imagine, AutoCad Drawing
Interchange File, WaveFront, Imagine, blender, etc.
Se pueden presentar modelos que no son expresamente nativos de java 3d
gracias a la función Loaders como se lo explica en el capitulo del Marco
Teórico, resaltando que Java3d permite el total manejo de estos modelos
sin que estos presenten algún impedimento o error en su renderización y
deformación si el caso la ameritara.
Se debe tomar en cuenta que estos tipos de archivos son creados con un sin
numero de programas especializados en desarrollar ambientes y modelos 3d
de una manera fácil y amigable con el usuario, permitiendo así separar de
una manera muy puntual el proceso de programación en java3d y el diseño
del
cuerpo humano y sus partes en un programa de diseño gráfico
especializado.
60
Tomando en cuenta estos ítems se empleará un formato de archivo externo
.obj para generar los modelos. Este archivo contiene los vértices de las
líneas y puntos empleados para generar el modelo gráfico
en 3d y los
números para enlazar los vértices entre sí y así poder renderizar dichos
modelos en java3d con una mayor agilidad y eficacia.
La herramienta para generar nuestros modelos será 3D Studio MAX, que
permite asignar tipos específicos de vistas del modelo tridimensional
diseñado, tal y como se puede observar en este proyecto
3D Studio MAX facilita la importación y exportación de escenarios gráficos a
formato obj el cual, apoyado en un visor, permite realizar un recorrido
interactivo a través del ambiente virtual.
3.2.9 MODELADO
Modelar en 3d.
Para el modelado se emplean dos reglas generales para determinar cuales
son los objetos que se crean mejor en 3D Studio Max.
Objetos Suaves. Estos objetos no tienen que ser necesariamente suaves al
tacto, si no que tienen aristas más suaves y no rectilíneas. En este tipo de
objetos entran rocas, árboles y paisajes.
Objetos Bézier. Se trata de objetos con formas helicoidales o curvas
complejas. 3D Studio Max es útil para crear aquellos objetos en los que haya
que alinear los materiales con su curvatura.
61
En el caso de las NURBS (son representaciones matemáticas de geometría
en 3D capaces de describir cualquier forma con precisión) tenemos una gran
cantidad de polígonos, para evitar todo este peso se optimiza cada una de
las partes que conforman nuestros modelos.
Gráficos 3D
Los gráficos 3D requieren mucho menos espacio de almacenamiento que los
gráficos 2D, porque no están dibujados previamente. Las mallas y la
animación se guardan como una matriz de formulas, a las que se invoca
cuando se necesita. Dado que el programa dibuja estas imágenes en la
pantalla conforme se va viendo, y no antes, la computadora tiene que
procesar mucho más y a mayor velocidad que con las imágenes 2D.
A la hora de modelar en tres dimensiones, lo más importante es la
tecnología que utilizamos ya que el modelo final es gracias al proceso de
diseño creativo.
En nuestro caso empleamos dos métodos de modelado diferentes, que son
las tecnologías que nos ofrece 3D Studio Max:
● Poligonal
● Nurbs
Modelado Poligonal.
Este tipo de modelado es el más antiguo. Nos permitió controlar
explícitamente las características que dan forma al modelo. La más básica
de estas características son los puntos (vértices), que definen con exactitud
el aspecto que tendrá un modelo. En este tipo de modelado comenzamos
primero con objetos de poco detalle (primitivas).
62
Diseño de un objeto con Modelado Poligonal
Los objetos poligonales están compuestos por una serie de puntos de
control. La construcción de modelos poligonales consiste, básicamente, en
conectar vértices. En el siguiente gráfico se muestra un objeto paramétrico
cuyos atributos se controlan por medio de variables, como son el radio y sus
segmentos. En la figura su variación.
Figura 12 Forma primitiva de un círculo en 3D.
Figura 13 Modificando parámetros de radio y segmentos.
63
El objeto que se forma es tridimensional, pero los componentes que lo
forman tienen dos dimensiones en un mundo 3D.
En este caso todas las caras del modelo comparten una arista con al menos
otras tres caras, por lo tanto este es un modelo cerrado.
Posteriormente trabajamos con el modo sub-objeto para revisar y modificar
los parámetros base del objeto. Ya que se encuentran en este modo,
modificamos los vértices de acuerdo a la forma que deseemos.
Figura 14 Movimiento de vértices de acuerdo a coordenadas.
Terminado el modelo procederemos a guardar el objeto como un archivo
(obj). Cabe recalcar que al utilizar el api de Java3d el proceso de dar textura,
color y material al objeto se lo realizará directamente cuando se compile el
proyecto.
Modelos que conforman Cuerpo Humano 3D
A continuación se define la forma y constitución de nuestro modelo del
Cuerpo humano y sus partes.
64
Utilizando lo aprendido en la fase de investigación, nuestro cuerpo humano
no solo será un modelo, sino la agrupación de varios modelos 3d, Cada una
de las partes del cuerpo humano serán diseñadas gráficamente como un
modelo independiente uno de el otro, dando a cada modelo la facultad ser
modificado sin que se afecte a los demás modelos
A continuación enumeraremos todos los modelos creados que conformarán
nuestro modelo del cuerpo humano con una pequeña descripción:
●
(esqueleto.obj) modelo de los huesos.
●
(musculos.obj) modelo de los músculos del cuerpo humano excepto
del cuello hacia arriba.
●
(musculos_rostro.obj) modelo que contendrá los músculos que el
cuello y el cráneo.
●
(diafragma.obj) modelo del diafragma.
●
(pie_tendones_derecho.obj) modelo que contendrá los tendones y
ligamentos del pie.
●
(pie_tendones_izquierdo.obj) modelo que contendrá los tendones y
ligamentos del pie izquierdo.
●
(pulmones.obj) modelo de los pulmones.
●
(cerebro.obj) modelo del cerebro.
●
(traquea.obj) modelo de la tráquea.
●
(corazon.obj) modelo del corazón.
●
(venas_corazon.obj) modelo de las venas y arterias que rodean al
corazón.
●
(estomago.obj) modelo del estomago humano.
●
(intestinodelgado.obj) modelo del intestino delgado.
●
(intestinogrueso.obj) modelo del intestino grueso.
●
(rinones.obj) modelo de los riñones.
●
(higado.obj) modelo del hígado.
●
(pancreas.obj) modelo del páncreas.
●
(ojo_derecho.obj) modelo del ojo derecho.
65
●
(parte_ojo_derecho.obj) modelo de la cornea del ojo derecho.
●
(ojo_izquierdo.obj) modelo del ojo izquierdo.
●
(parte_ojo_izquierdo.obj) modelo de la cornea del ojo izquierdo.
●
(cuerpo.obj) modelo de la piel que recubre al ser humano excepto del
cuello hacia arriba.
●
(rostro1.obj) modelo de la piel que recubre el rostro y el cuello.
3.2.9.1 Etapas de un Programa con Java 3D.
Para todo proyecto que este utilizando el lenguaje de Java3D, hay que
programar por etapas cada pieza del diagrama de la escena y después
conectar cada etapa entre sí para formar el programa final. Si el orden no se
lleva a cabo de forma correcta, la visualización no es posible, a pesar de que
puede ser que el código compile. El orden de las etapas es el siguiente:
1- Crear el objeto Soporte con la clase Canvas3D, la cual simula una
ventana donde se van colocando los objetos que se van creando.
2- Crear el objeto Universo Virtual.
3- Crear el punto de referencia.
4- Construir la Rama de Representación.
5- Construir la Rama de Contenido.
6- Compilar el diagrama de la escena.
7- Insertar sub-grafos (otras ramas) dentro del punto de referencia.
Sin embargo, existe otra posibilidad que requiere menos líneas de código, en
la que se incluye la clase SimpleUniverse. Al usar esta clase se evita tener
que crear la Rama de Representación, por lo que el diagrama de la escena
general queda reducido al esquema mostrado en la figura 15.
Los nuevos pasos a seguir con esta alternativa son:
1- Crear objeto SimpleUniverse.
2- Crear el objeto Soporte con la clase Canvas3D.
3- Construir la Rama de Contenido.
66
4- Compilar el diagrama de la escena.
5- Insertar la Rama de Contenido dentro del punto de referencia del
objeto SimpleUniverse.
Creación del Escenario.
La programación de aplicaciones que utilizan Java 3D se basa en el modelo
de grafos de escena o SceneGraph.
Dicho modelo conecta objetos separados en una estructura de árbol que
incluye los datos geométricos, los atributos y la información de visualización,
los cuales proporcionan una descripción completa de la escena y facilitan el
control de las capacidades del escenario. El camino que lleva a cada nodo
de la estructura arbórea define completamente la información del estado de
la hoja y su representación gráfica sirve como herramienta de diseño y como
documentación para programas Java 3D.
Los grupos de transformación se pueden enlazar con otro grupo de
transformación, siempre que el primero de ellos se una a un grupo de rama o
Branch-Group.
Éste, a su vez, se debe enlazar a un punto de referencia (Locale) que
dependerá del universo virtual (VirtualUniverse).
Por tanto, cualquier escenario gráfico debe disponer de un VirtualUniverse,
que a su vez tiene un único objeto Locale, el cual proporciona referencias a
un punto en el escenario virtual y sirve de raíz para varios sub-gráficos.
Por último, destacar que los objetos Branch-Group son la raíz de los
subgráficos y se dividen en dos categorías: por un lado está la rama de
contenido gráfico, que especifica el contenido del universo virtual y por otro
lado está la rama de vista.
67
Diagrama general de ejecución
Figura 15 Diagrama general de ejecución. (J Joan, 2003)
68
3.3 DESARROLLO
En esta etapa de desarrollo, debemos codificar la aplicación y realizar las
configuraciones necesarias para que la solución funcione. Es importante
realizar pruebas continuamente, así se verifica la calidad del producto
continuamente a lo largo del desarrollo y no únicamente al final del proceso.
69
3.3.1 DIAGRAMAS DE CLASES
Figura 16 Diagramas de clases.
70
Descripción de Clases
A continuación se detallan las principales funciones y atributos de cada una
de las clases que esta presentes en nuestro diagrama de clases:
Main Class
Figura 17 Main Clase.
Es la clase encargada de invocar los métodos para ejecutar al Applet
Tabla 4. Atributos Main Class
Nombre
Detalle
Entero width
Recibe un entero con el que se configurar el ancho del Applet.
Entero height
Recibe un entero con el que se configurar la altura del Applet.
71
Tabla 5. Métodos Main Class
Nombre
Detalle
init ()
Se invoca cuando se carga el Applet y se usa para
inicializar el Applet.
creacionUniverse():
Se crea el ambiente virtual en donde se adicionara el
modelo tridimensional, además de la estructura y
parámetros necesarios del ambiente virtual.
creacionScene(int cena)
Se crea el grafo necesario para graficar los modelos
tridimensionales dentro del ambiente virtual.
Clase Cuerpo_ Humano
Figura 18 Cuerpo_ Humano Clase.
Clase principal la cual se encarga de crear nuestro modelo tridimensional
además de setear todos sus atributos, el objeto creado servirá como base y
raíz para la creación del resto de los objetos a crearse.
72
Tabla 6. Atributos Clase Cuerpo_ Humano
Nombre
Detalle
Cadena Nombre
Nombre que se le otorga al objeto tridimensional a crearse.
Appearance app
Atributos de color, texturas, etc. que se le dará a nuestro
modelo.
Ruta en la cual se encontrara el archivo (obj) con la cual se
dará la estructura a nuestro modelo.
Cadena Path
BranchGroup objRoot
Objeto en el cual se almacenara la estructura y atributos de
nuestro modelo tridimensional raíz.
Tabla 7. Métodos Clase Cuerpo_ Humano
Nombre
Detalle
crearApariencia ()
Encargado de setear todos los atributos con respecto a la
apariencia y posición de nuestro objeto tridimensional raíz.
getFormGroup ()
Retorna el objeto tridimensional raíz
setFormGroup ()
Setea el objeto tridimensional raíz.
73
Clase Parte_cuerpo
Figura 19 Parte_cuerpo Clase.
Clase encargada de crear y añadir todos los objetos tridimensionales hijos
que formaran parte del objeto principal raíz.
Tabla 8. Atributos Clase Parte_cuerpo
Nombre
Detalle
Vector3f posición
Vector float con tres parámetros que servirá para dar la
posición del modelo tridimensional con respecto al modelo
raíz.
Vector3f Color
Vector float con tres parámetros que servirá para dar color en
formato (RGB) al modelo tridimensional.
double Escala
Valor decimal que servirá para setear la escala que se le dará
al modelo tridimensional con respecto al modelo raíz.
double
Transparencia
Valor decimal
que servirá para setear el grado de
transparencia que tendrá el modelo tridimensional.
cadena path
Ruta en la cual se encontrará el archivo que proporciona la
estructura de cada uno de las figuras 3d (obj).
74
Tabla 9. Métodos Clase Parte_cuerpo
Nombre
Detalle
CrearApariencia ()
Encargado de setear todos los atributos con respecto a
la apariencia y posición de nuestro objeto tridimensional.
getFormGroup ()
Retorna el objeto tridimensional.
setFormGroup ()
Setea el objeto tridimensional.
aderir_parte_cuerpo (
String Nombre,
String path,
float PocicionX,
float Pociciony,
float Pocicionz,
float colorR,
float colorG,
float PocicionB,
double brillo,
doublé escala,
doublé Transparencia
):
Recibe todos estos parámetros por lo cual se crean la
estructura y todos las atributos del objeto tridimensional
hijo con respecto al objeto raíz, la estructura esta dada
por un archivo (obj) que se lo localiza mediante el
parámetro (Cadena Path).
Clase Resources
Figura 20 Resources Clase.
Clase tipo ayuda cuya función es retornar la localización exacta de cualquier
obj que se utiliza dentro de nuestro proyecto
Atributos
75
Tabla 10. Métodos Clase Resources
Nombre
Detalle
getResources(
String filename
)
Método que recibe la dirección real (dentro del sistema
operativo) en donde se ubica cualquier archivo que este dentro
del proyecto y lo transforma en una dirección virtual que pueda
ser leída al compilar el proyecto y ser transferida dentro de un
archivo jar.
Clase Comportamiento Mouse
Figura 21 Comportamiento Mouse Clase.
Clase encargada de controlar y crear todos los comportamientos del
periférico Mouse para la interacción del usuario con nuestro modelo
tridimensional
76
Tabla 11. Atributos Clase Comportamiento Mouse
Nombre
Detalle
PickCanvas
pickCanvas
Parámetro nativo del api Java3d que permite encontrar y
manipular con mayor facilidad cualquier componente que sea
hijo de un objeto creado dentro del entorno virtual de java3d.
Shape3d
presionadoShape
Objeto visual (forma) del cual se descompone un objeto
tridimensional creado en java 3d; Cabe recalcar que cada uno
de esto objetos creados como objetos tridimensionales puedé
estar constituidos por varios Shapes (formas) o por un único
Shapes (formas).
BranchGroup
dataBranchGroup
Objeto java3d en el cual el proyecto se define como el objeto
raíz y en el cual se encuentra definido todos los demás
modelos tridimensionales.
Canvas3d canvas
Lienzo en el cual está creado nuestro modelo tridimensional y
nos permite acceder a funcionalidades que permiten modificar
y manipular el entorno gráfico de nuestro ambiente virtual.
TransformGroup
d1 y Transform3D
form3D
Instancia un objeto de la clase nodos TransformGroup que
permitirá
una transformación espacial sencilla utilizando
además un objeto Transform3D que puede colocar, orientar y
escalar todos sus hijos. La transformación especificada ha de
poder realizarse en los objetos en los que se aplica.
JSObject j_s
Se instancia el objeto de la clases JSObject cuya función es
abrir un puerto de comunicación entre el Applet creado y
JavaScript
77
Tabla 12. Métodos Clase Comportamiento Mouse
Nombre
Detalle
Initialize ():
Método nativo de java3d en donde se instancia todos
los objetos necesario para la captura del
comportamiento del mouse y su interacción con el
ambiente virtual.
processStimulus
(Enumeration criteria):
Método nativo de java3d que captura los eventos
(criteria) disparados por el mouse y teclado con el
cual se configurara la interactividad que se tendrá
entre el modelo tridimensional del cuerpo humano y el
usuario.
envio_detalle_shape ():
Método que se encarga de enviar información
(nombre y detalle) de un objeto tridimensional que se
haya instanciado anteriormente.
creacion_Arbol_Contenido
(JPanel Mapa)
Método encargado de recorrer el objeto Jtree y
anexar todos los nodos hijos o padres los cuales
representa gráficamente en forma de árbol todos los
objetos tridimensionales creados.
creacion_Arbol_Contenido
(JPanel Mapa)
Método encargado de recorrer el objeto Jtree y
anexar todos los nodos hijos o padres los cuales
representa gráficamente en forma de árbol todos los
objetos tridimensionales creados.
anexar_hijo
(DefaultMutableTreeNode
node)
Método encargado de recorrer y encontrar un objeto
específico dentro del objeto Jtree para añadir su
estructura designada (Geometry).
retirar_hijo
(DefaultMutableTreeNode
node):
Método encargado de recorre y encontrar un objeto
especifico dentro del objeto Jtree para eliminar su
estructura.
imageIcon
createImageIcon (String
path):
Método encargado de renderizar el icono que se le
asigna a cada uno de los nodos Jtree que
representan a cada uno de los modelos
tridimensionales en el ambiente virtual.
78
Clase Elemento
Figura 22 Clase Elemento.
Clase encargada de crear un objeto personalizado cuya función es agregar y
manejar datos adicionales de cada uno de los objetos tridimensionales
creados dentro del proyecto. A cada uno de estos objetos, se les asignará un
nombre, id, detalle y padre. Esta información adicional servirá para la
interactividad con el usuario además de crear una jerarquía entre estos
objetos.
Tabla 13. Atributos Clase Elemento
Nombre
Detalle
Cadena
Elementos
Variable creada para almacenar el id del objeto tridimensional
renderizado dentro del ambiente virtual.
Cadena
Nombre
Variable creada para almacenar un nombre personalizado para cada
uno de los objetos tridimensional renderizado dentro del ambiente
virtual.
Cadena
Detalle
Variable creada para almacenar un detalle personalizado para cada
uno de los objetos tridimensional renderizado dentro del ambiente
virtual.
Cadena
Padre
Variable creada para almacenar el nombre del objeto padre,
permitiendo crear una estructura jerárquica de todos los objetos.
79
Tabla 14. Métodos Clase Elemento
Nombre
Detalle
GetElemento ():
Retorna variable tipo String elemento.
SetElemento (String e)
Configura variable tipo String elemento.
GetNombre ()
Retorna variable tipo String nombre.
SetNombre (String e)
Configura variable tipo String nombre
GetDetalle ()
Retorna variable tipo String detalle.
SetDetalle (String e)
Configura variable tipo String detalle.
GetPadre ()
Retorna variable tipo String padre.
SetPadre (String e)
Configura variable tipo String padre.
Clase Array_data_xml
Figura 23 Array_data_xml Clase.
Clase encargada de crear, leer, escribir y buscar en un archive XML todos
los datos creados bajo la estructura del objeto elemento de cada uno de los
objetos tridimensionales que se renderiza dentro de el ambiente virtual.
80
Tabla 15. Atributos Clase Array_data_xml
Nombre
Detalle
Vector Vector_xml
Variable inicializada tipo Vector que permitirá crear un array
de objetos tipo elemento.
Element rootNode
Variable inicializada, nativa de JDOM que permite manejar
objetos tipo XML.
Document doc
Variable inicializada, nativa de JDOM que permite crear y
manipular documentos XML.
Tabla 15. Métodos Clase Array_data_xml
Nombre
Detalle
GetVector_xml ()
Método encargado de retornar array de objetos tipo
elementos.
SetVector_xml ()
Método encargado de setear array de objetos tipo
elementos.
NumeroElementos ()
Método encargado de retornar el número de
elementos existente en el documento XML.
Anexar_element_xml
(elemento var)
Método encargado de añadir un objeto tipo elemento
al array Vector_xml.
Guardar_elementos_xml ()
Método encargado de guardar en el documento XML
todos los elementos creados en nuestro arreglo
Vector_xml.
Cargar_elemento_xml
(String elemento)
Método encargado de buscar con un parámetro String
dentro del array Vector_xml un objeto con el atributo
elemento igual al parámetro y retornarlo.
81
Clase Map_cuerpo
Figura 24 Map_cuerpo Clase.
Clase encargada de crear un objeto personalizado cuya función es adherir y
manejar datos adicionales de cada uno de los objetos creados como nodos
de un objeto Jtree, Cada uno de estos objetos tendrá embebido un objeto
Map_cuerpo con el cual tendremos un control de la jerarquía y estado de
cada uno de los objetos tridimensionales renderizados dentro del ambiente
virtual.
82
Tabla 16. Atributos Clase Map_cuerpo
Nombre
Cadena id
Detalle
Variable creada para guardar el parámetro id dentro de un nodo
tipo Jtree que permitirá la identificación del objeto tridimensional al
que representa dentro de la jerarquía del árbol del cuerpo humano.
Cadena
Nombre
Variable creada para guardar el parámetro Nombre dentro de un
nodo tipo jtree que permitirá la identificación del objeto
tridimensional al que representa dentro de la jerarquía de el árbol
del cuerpo humano.
Cadena
flagIcon
Variable creada para guardar el parámetro icono con la cual
representara si el objeto tridimensional esta activo o desactivado
dentro del ambiente virtual.
Cadena estado
Variable creada para guardar el parámetro con el cual se
controlará el estado en el que se encuentra el nodo tipo Jtree.
Cadena padre
Variable que guarda el parámetro padre del nodo tipo Jtree
Tabla 17. Atributos Clase Map_cuerpo
Nombre
Detalle
getId ()
Retorna variable tipo String id.
setId (String e)
Retorna variable tipo String nombre.
getNombre ()
Retorna variable tipo String nombre.
setNombre (String e)
Configura variable tipo String nombre.
getPadre ()
Retorna variable tipo String padre.
setPadre (String e)
Configura variable tipo String padre.
getEstado ()
Retorna variable tipo String estado.
setEstado (String e)
Configura variable tipo String estado.
83
3.3.3 Diagrama de Secuencia
El siguiente diagrama muestra la interacción de los objetos en la solución a
través del tiempo incluyendo los objetos y clases que se usan para
implementar el escenario, y mensajes intercambiados entre los objetos.
El diagrama examina la descripción del caso de uso y detalla los objetos
necesarios para la implementación del escenario. Tal como se describió en
cada caso de uso, se usa una secuencia de varios pasos que describe su
secuencia de ejecución.
84
Figura 25 Diagrama de Secuencia.
85
3.4 ESTABILIZACIÓN
La fase de estabilización se enfocará a la realización de
pruebas, para
identificar y corregir las deficiencias de la solución. A continuación se
describirá por medio de pruebas de caso de uso las pruebas realizadas.
3.4.1 PRUEBAS DE CASO DE USO
A continuación se desarrolla pruebas de caso de uso al aplicativo. Estas
pruebas son evaluadas por un usuario quien testeó el aplicativo para poder
tener un resultado veraz y correcto. Estas son documentadas en el Anexo III
del documento.
Carga del modelo tridimensional
Figura 26 Diagrama de secuencia Carga.
Como se aprecia en el diagrama se describe la carga del aplicativo que se
ejecuta al momento de la petición que realiza el usuario.
86
Ejecución de prueba Carga
Figura 27 Ejecución de prueba Carga 1.
Figura 28 Ejecución de prueba Carga 2
Para confirmar la ejecución correcta del aplicativo se configuró la impresión
por consola de mensajes que se ejecutan cada vez que se carga y adiciona
correctamente una parte del cuerpo humano, tal como se lo puede observar
en el siguiente gráfico.
87
Figura 29 Consola de confirmación carga objetos.
Al finalizar la prueba de carga, se confirma que no ha existido ningún
problema en el transcurso de la carga del modelo.
Ejecución Evento Mouse (Sobreponer mouse encima modelo Cuerpo
Humano)
Figura 30 Diagrama secuencia Evento Mouse (hover).
Esta funcionalidad se ejecuta automáticamente cuando el mouse se
sobrepone en alguna parte al modelo del cuerpo y se encarga de presentar
en pantalla la información (nombre y detalle) correspondiente a ese objeto
especifico.
88
Figura 31 Evento Mouse (hover).
Para confirmar la ejecución de la prueba, como se puede observar en la
imagen anterior, simplemente se confirma que al pasar el mouse sobre
alguna parte del cuerpo humano esta parte cambia de apariencia, además
de cambiar el contenido del cuadro de diálogo que se presenta en la parte
derecha de la pantalla.
Ejecución Evento Mouse (doble click encima modelo Cuerpo Humano)
Figura 32 Diagrama de secuencia Doble click.
89
Esta funcionalidad se ejecuta cuando el mouse se sobrepone en alguna
parte del modelo del cuerpo y se presiona el click derecho dos veces
causando que la parte del cuerpo humano en donde se encuentra
sobrepuesto el mouse desaparezca.
Figura 33 Doble click.
Para confirmar la ejecución de la prueba como se puede observar en la
imagen anterior simplemente se confirma que al tener el mouse encima de
alguna parte del cuerpo humano y presionando el click derecho dos veces
esta parte del cuerpo desaparece.
90
Ejecución Evento Mouse (Arrastre Mouse y click derecho)
Figura 34 Diagrama de secuencia click derecho y arrastre.
Esta funcionalidad se ejecuta cuando el mouse está dentro de los límites del
entorno virtual, además de mantener el click derecho presionado y
arrastrando el mouse dentro del entorno virtual. Esto causará que todo el
modelo del cuerpo humano se desplace acorde al movimiento del mouse.
Figura 35 Mouse click derecho y arrastre 1.
91
Figura 36 Mouse click derecho y arrastre 1.
Para confirmar la ejecución de la prueba se confirma que el modelo se
mueva al arrastrar el mouse, como se lo puede observar al evaluar las dos
imágenes anteriores que describen el desplazamiento del modelo del cuerpo
humano hacia la derecha.
Ejecución Mouse (click derecho encima del ítem del árbol de jerarquía
Cuerpo humano)
92
Figura 37 Diagrama secuencia mouse click ítem árbol Jerarquía.
Esta funcionalidad se ejecuta cuando se presiona el click derecho del
mouse encima de uno de los ítems que se encuentra dentro del árbol de
jerarquía del lado izquierdo de la pantalla. Cabe recalcar que cada uno de
estos ítems representa una parte del modelo tridimensional del cuerpo
humano.
Figura 38 Mouse click ítem árbol Jerarquía 1.
93
Figura 39 Mouse click ítem árbol Jerarquía 2.
Para confirmar la ejecución de la prueba, se espera que al presionar el click
derecho encima de uno de los ítems cambie su estado dependiendo del
estado anterior, además de causar que el objeto al que representa dentro del
cuerpo humano aparezca o desaparezca dependiendo de su estado.
94
RESULTADOS Y DISCUSIÓN
95
4. RESULTADOS Y DISCUSIÓN
En este capítulo se presenta el análisis e interpretación de resultados a
través de la presentación del aplicativo a un grupo de estudiantes de la
Facultad de Medicina de la Universidad Tecnológica Equinoccial, los cuales
accedieron a responder un cuestionario
para evaluar los objetivos
planteados en el proyecto de tesis.
En el anexo IV se presenta a forma de documentación los cuestionarios
resueltos por lo estudiantes.
A continuación se destacan el procedimiento que se siguió para la
presentación de los resultados obtenidos.
Tamaño de muestra
Para estimar el tamaño de muestra necesaria para realizar una encuesta
sobre la ponderación del aplicativo se tomo la siguiente fórmula basada en
un nivel de confianza aceptable de 81% y tomado por referencia al libro
estadístico Elementos de probabilidad y estadística de HERNÁNDEZ
LERMA 355 p :
n
z 2 pq
E2
Donde n = Tamaño de la muestra
z = 1.36 para el 81% de confianza (tabla de distribución normal z)
p = Probabilidad de captación (0.96)
q = 1 – p (0.04)
E = Precisión o error admitido (0.08)
94
Tabla 18. Tabla calculo del tamaño de una muestra.
TABLA DE APOYO AL CALCULO DEL TAMAÑO DE UNA MUESTRA
POR NIVELES DE CONFIANZA
Certeza
95%
94%
93%
92%
91%
81% 80% 62.27% 50%
Z
1.96
1.88
1.81
1.75
1.69
1.36 1.28
1
0.6745
3.84
3.53
3.28
3.06
2.86
1.85 1.64
1.00
0.45
0.05
0.06
0.07
0.08
0.09
0.19 0.20
0.37
0.50
E
0.0025 0.0036 0.0049 0.0064 0.0081 0.043 0.04 0.1369
0.25
KISH, Leslie. Muestreo de encuestas, 3ª, 1982.
Resolucion
n
1.36 2 x0,96 x0,04
0.082
n = 11.06
El resultado final del tamaño de la muestra es de 11.06, Esto quiere decir
que sera necesario encuestrar almenos a 11 estudiantes para que los
resultados que se obtengan de la encuesta tengan una validez estadistica
real.
Interpretación de Encuestas
El cuestionario consta de 4 preguntas y la calificación de cada pregunta
recibe un puntaje que va del 1 al 10, las encuestas se presentan en el Anexo
IV.
95
A continuación se detalla los pasos para interpretar y analizar cada pregunta:
1. Formulación la pregunta.
2. El objetivo por el cual se formuló la pregunta.
3. La tabla con la frecuencia y porcentaje de las respuestas.
4. Grafico donde se muestran los porcentajes alcanzados.
5. Análisis e interpretación de los datos.
96
Pregunta Uno
¿En la escala del 1 al 10, siendo el 1 el número mas bajo de calificación y 10
el numero mayor de calificación, el modelo 3d de la anatomía del cuerpo
humano que se observa en el aplicativo esta diseñado de acuerdo a la
realidad de la anatomía del cuerpo humano?
Objetivo: Evaluar si se ha cumplido el objetivo planteado “Diseñar y crear un
modelo tridimensional de la anatomía del cuerpo humano con sus
respectivos órganos internos”.
Tabla con la frecuencia y porcentaje Pregunta Uno
Tabla 19. Frecuencia y porcentaje Pregunta Uno
Nota
Frecuencia
Valor Total
1
0
0
2
0
0
3
0
0
4
0
0
5
0
0
6
0
0
7
1
7
8
1
8
9
3
27
10
6
60
Total
102
Porcentaje
aceptación
93
Nivel
Error
7
Nota: Valores establecidos para la calificación de pregunta.
Frecuencia: Numero de alumnos que han calificado la pregunta con una nota
especifica
Valor: Resultado Nota por Frecuencia
97
Gráfico Porcentajes Pregunta Uno.
Figura 40 Porcentaje Número de Alumnos por Calificación.
Interpretación de datos Pregunta Uno
En base de la tabulación de las encuestas realizadas, los resultados de la
pregunta uno se muestran en la tabla y el grafico, representando una
ponderación total de 93 sobre 100, con lo cual se concluye que el modelo
tridimensional de la anatomía del cuerpo humano que se visualiza en el
aplicativo sí alcanza el objetivo planteado de crear un modelo tridimensional
de la anatomía del cuerpo humano, guardando semejanza a la anatomía real
del cuerpo humano.
Cabe recalcar que en el futuro se podría mejorar el nivel de detalle de capa
parte que conforma el modelo, ya que el nivel de error no sobrepasa el 10%
del total según las encuestas, pero se abre una pauta para mejorar este
objetivo como trabajo futuro y disminuir el nivel de error.
98
Pregunta Dos
¿En la escala del 1 al 10, Califique qué tan fácil fue entender el modo de uso
el aplicativo, siendo 1 el número mas bajo de calificación y 10 el numero
máximo de calificación?
Objetivo: Evaluar si se cumplió el objetivo planteado “Crear la interface
amigable que permita la interacción del usuario con el entorno de realidad
virtual”.
Tabla 20. Frecuencia y porcentaje Pregunta Dos
Nota
Frecuencia
Valor Total
1
0
0
2
0
0
3
0
0
4
0
0
5
0
0
6
0
0
7
2
14
8
1
8
9
1
9
10
7
70
Total
101
Porcentaje
aceptación
92
Nivel
Error
8
Nota: Valores establecidos para la calificación de pregunta.
Frecuencia: Numero de alumnos que han calificado la pregunta con una nota
especifica
Valor: Resultado Nota por Frecuencia
99
Gráfico Porcentajes Pregunta Dos.
Figura 41 Porcentaje Número de Alumnos por Calificación.
Interpretación de datos Pregunta Dos
En base de la tabulación de datos recolectados para la evaluación de la
pregunta dos que se muestran en la tabla y el grafico, se obtiene
una
ponderación total de 92 sobre 100 con lo cual se concluye que el aplicativo
sí cumple con el objetivo de implementar una interface amigable con el
usuario ya que el nivel de error no sobrepasa 10% del total según las
encuestas, pero se abre una pauta para mejorar este objetivo como trabajo
futuro y disminuir el nivel de error.
100
Pregunta Tres
¿En la escala del 1 al 10, califique si el aplicativo cumple correctamente con
las funcionalidades como acercar, alejar, girar y desplazar el modelo 3d del
cuerpo humano, siendo 1 el número más bajo de calificación y 10 el numero
máximo de calificación?
Objetivo: Evaluar si se cumplió el objetivo planteado “Implementar las
funcionalidades de acercar, alejar, girar y desplazar aplicadas al modelo
tridimensional del cuerpo humano para la manipulación por el usuario”.
Tabla 21. Frecuencia y porcentaje Pregunta Tres
Nota
Frecuencia
Valor Total
1
0
0
2
0
0
3
0
0
4
0
0
5
0
0
6
0
0
7
1
7
8
5
40
9
2
18
3
30
10
Total
95
Porcentaje
aceptación
86
Nivel
Error
14
Nota: Valores establecidos para la calificación de pregunta.
Frecuencia: Numero de alumnos que han calificado la pregunta con una nota
especifica
Valor: Resultado Nota por Frecuencia
101
Gráfico Porcentajes Pregunta Tres.
Figura 42 Porcentaje Número de Alumnos por Calificación.
Interpretación de datos Pregunta Tres
En base de la tabulación de datos recolectados para la evaluación de la
pregunta tres que se muestran en la tabla y el gráfico, se obtiene
una
ponderación total de 88 sobre 100 con lo cual se concluye que las
funcionalidades de acercar, alejar, girar y desplazar el modelo tridimensional
se las cumple correctamente ya que el nivel de error no sobrepasa el 15%
según la encuesta, pero se abre una pauta para mejorar este objetivo como
trabajo futuro y disminuir el nivel de error.
Pregunta Cuatro
¿En la escala del 1 al 10, califique si el aplicativo cumple correctamente con
la funcionalidad de presentar información correcta (Nombre y Detalle) de
cada una de las partes del cuerpo humano señaladas por el mouse, siendo 1
el número más bajo de calificación y 10 el número máximo de calificación?
102
Objetivo: Evaluar si se cumplió el objetivo planteado “Crear la interface
amigable que permita la interacción del usuario con el entorno de realidad
virtual”.
Tabla 22. Frecuencia y porcentaje Pregunta Cuatro
Nota
Frecuencia
Valor Total
1
0
0
2
0
0
3
0
0
4
0
0
5
0
0
6
0
0
7
1
7
8
1
8
9
1
9
10
8
80
Total
104
Porcentaje
aceptación
95
Nivel
Error
5
Nota: Valores establecidos para la calificación de pregunta.
Frecuencia: Numero de alumnos que han calificado la pregunta con una nota
especifica
Valor: Resultado Nota por Frecuencia
103
Gráfico Porcentajes Pregunta Cuatro.
Figura 43 Porcentaje Número de Alumnos por Calificación.
Interpretación de datos Pregunta Cuatro
En base de la tabulación de datos recolectados para la evaluación de la
pregunta cuatro que se muestran en la tabla y el gráfico, se obtiene una
ponderación total de 94 sobre 100 con lo cual se concluye que se llega a
tener una aceptable información de cada una de las partes que conforman el
modelo tridimensional del cuerpo humano ya que el nivel de error no
sobrepasa el 10% según las encuestas, pero se abre una pauta para mejorar
este objetivo como trabajo futuro y disminuir el nivel de error.
Resultados Elección de Tecnología de desarrolló.
Otra premisa necesaria para la presentación de sus resultados y discusión
es la elección de la tecnología de desarrollo (Java y Java3d) que se uso para
llegara cumplir los objetivos del proyecto la cual fue justificada tras la
valoración de los requerimientos para el proyecto de tesis (Anexo I) y que se
detalla en el Capitulo 3 en la sección de Estudio Técnico.
104
Ya que los resultados expuestos con anterioridad en la tabulación de los
resultados de las preguntas realizadas de cada uno de los objetivos tenían
implícitamente que ser obtenidas en base a la presentación del aplicativo y
este a su ves confirmaba que el aplicativo debía estar configurado y
funcional se puede concluir que la elección de la Tecnología de desarrolló
seleccionada a cumplido a manera cabal con el propósito por la cual fue
seleccionada
105
CONCLUSIONES Y RECOMENDACIONES
105
5. CONCLUSIONES Y RECOMENDACIONES
5.1 CONCLUSIONES
Tras
el desarrollo del aplicativo de la anatomía del cuerpo humano, es
necesario recalcar los siguientes aspectos a manera de conclusiones
generales:
● El análisis realizado de las tecnologías mas relevantes para el
desarrollo de ambientes virtuales permite confirma que existen varios
caminos para el desarrollo de modelos de la anatomía del cuerpo
humano, pero se diferencian en su nivel de detalle y su dificultad para
ser usados por un desarrollador.
● Para diseñar modelos tridimensionales que se basen en la anatomía
del cuerpo humano se necesita tener una gran cantidad de
información en especial información grafica de los aspectos de cada
una de las partes del cuerpo humano y que además de requerir un
minucioso y metódico diseño para ser implementados y agrupados
entre si guardando similitud con la anatomía del cuerpo humano.
● El uso de Java3d para la creación de un aplicativo con este tipo de
características ha demostrado su gran utilidad ya que dispone de una
gran cantidad de documentación y ejemplos de código, Además de
implementar varias clases nativas que facilitan la creación de las
funcionalidades
planteadas para la manipulación del modelo
tridimensional del cuerpo humano.
106
5.2 RECOMENDACIONES
Como trabajo futuro en base a este proyecto se ha pesado muchas formas
en las cuales se podrá mejorar el aplicativo e incluso desarrollar diferentes
tipos de aplicativos que no estén encaminados en la misma rama en la cual
se
encuentra
el
proyecto
actual,
pero
si
en
uso
de
imágenes
tridimensionales.
A continuación se detallaran las principales ideas propuestas para trabajos
futuros para mejorar el aplicativo:

A pesar de ya disponer de un modelo del cuerpo humano bastante
detallado, se podrá desarrollar más componentes del cuerpo y ofrecer
un nivel mas especifico de cada uno de los componentes.

Desarrollar más de un modelo del cuerpo humano, es decir que se
incluya un cuerpo femenino y masculino con sus principales
diferencias.

Incluir un menú de herramientas dentro del aplicativo que permita al
usuario tener un control más exacto del modelo.

Implementar una forma mas eficiente de como el modelo se presenta
en pantalla ante el usuario que permita una carga mas rápida y
mejorar los recursos utilizados.

Implementar más información educativa que se pueda presentar al
usuario al usar el aplicativo.

Crear una versión del Aplicativo en la cual el Usuario pueda guardar
información “apuntes” en cada uno de los componentes del cuerpo
humano.
107

Crear una interface que permita que el modelo del cuerpo humano
sea manipulado por el acelerómetro de un Smartphone.
Además de las ideas propuestas para mejorar el aplicativo a continuación se
detallaran las ideas propuestas para desarrollar aplicativos que se basen en
este proyecto:

Desarrollar un aplicativo que permita cargar cualquier tipo de objeto
3d con el formato obj además de poder modificar los atributos del
objeto.

Desarrollar un aplicativo que permita explorar entornos virtuales que
estén basados en lugares existentes.

Desarrollar un aplicativo que permita crear estructuras arquitectónicas
en base a objetos básicos que se disponga al usuario.
108
ANEXOS
109
ANEXO I
Análisis de Requerimientos
Este documento contiene la recolección y análisis de requerimientos
necesarios para cumplir con la finalidad del proyecto, su utilidad principal es
establecer un enfoque concreto de todo lo que se desea alcanzar; Para
definir los requerimientos principales del proyecto de tesis fue necesaria la
recolección de información mediante el método de entrevista
Cabe recalcar que el aplicativo desarrollado en base a este tema de tesis
forma parte de proyecto del Concurso Ecuatoriano de Proyectos en Redes
Avanzadas (CEPRA) llamado “Sistema de entrenamiento virtual para
medicina” y del cual el Ing. Fausto Freire está encargado de la dirección y
coordinación.
En base a esta información se aclara que las entrevistas se las hizo
directamente con el Ing. Fausto Freire, quien nos brindó la información de
los requisitos y que a continuación se los describe.
Requerimientos funcionales
1. Crear un modelo del cuerpo humano tridimensional con sus
respectivos órganos y huesos.
2. El modelo del cuerpo humano debe ser cargado en un entorno virtual
que permita su presentación ante el usuario.
3. Descripción de funcionalidad y nombre de cada una de las partes del
modelo del cuerpo humano.
4. Usar mouse y teclado para la manipulación del modelo cuerpo
humano.
5. Aplicativo multiplataforma. es decir podrá ser
ejecutado el los
principales sistemas operativos (Lunix, Windows y Mac).
6. EL aplicativo embebido dentro de una página web para su
visualización.
110
Requerimientos no funcionales
1. Cualquier lenguaje o herramienta que se use dentro del desarrollo e
implementación del aplicativo no puede ser propietario.
Requerimientos del Usuario.
1. Manipular y explorar el modelo tridimensional; Entre las principales
funciones que se toman en cuenta al referirse a manipulación son:
acercar, alejar, girar y desplazar.
2. Crear una interface grafica fácil de utilizar por cualquier tipo de
usuario.
3. Desplegar la información en pantalla de cada parte del modelo del
cuerpo humano que el usuario desee.
4. Disponer de un manual de uso.
Arquitectura
Como se lo menciona con anterioridad, el aplicativo desarrollado como parte
de la tesis forma parte del proyecto llamado “Sistema de entrenamiento
virtual para medicina” en el cual también se implementara un servidor web
en un sistema Clúster de computadores y en el cual se deberá localizar el
aplicativo para su distribución o uso. Por lo cual la arquitectura por default es
Cliente-Servidor.
111
Antecedentes adiciónales
Otro ítems a tomar encuentra antes de comenzar el desarrollo del aplicativo
es que a pesar de tener definidos los principales requerimientos, se
mantendrán reuniones semanales con el director del proyecto, con la
finalidad de mantener un constante flujo de información sobre novedades de
cambios o parámetros fijados durante el transcurso del desarrollo del
proyecto y que podrían modificar los parámetros establecidos con
anterioridad.
Además que se especifica que al ser un proyecto de investigación que trata
de innovar en el aspecto de uso nuevas tecnologías aplicadas a la medicina,
no se regirá a tener un resultado concreto sino que se espera un resultado
flexible a los cambios en el futuro.
Casos de uso.
A continuación se define el caso de uso basados en los requerimientos y
antecedentes del proyecto de tesis explicados con anterioridad en este
anexo.

Primer paso
Para definir el caso de uso es necesario definir a su actor, ya que este
será el encargado de interactuar con el aplicativo:
En este caso en particular solo existirá un actor que se lo definirá con
el nombre de Usuario, ya que al estudiar los requerimientos no se
hace una diferenciación entre otros tipos de actores.
112

Segundo Paso
El siguiente paso será definir los eventos realizados por el sistema, en
los que se rinde resultado observable de valor a un actor.
Eventos
 Petición de ejecución: cuando el usuario desee utilizar el
aplicativo deberá abrir la página web donde esta embebido el
aplicativo, la cual producirá la ejecución del aplicativo y la
carga de todo el entorno virtual con el modelo tridimensional de
la anatomía del cuerpo humano.
 Manipulación del modelo: cuando el usuario desee manipular el
cuerpo humano (acercar, alejar, girar y desplazar) el modelo
tridimensional del cuerpo humano.
 Petición de detalle de parte del Cuerpo humano: cuando el
usuario desee obtener información (nombre y detalle) de cada
parte del cuerpo humano.
Diagramas de casos de uso.
Caso de Uso: Petición de ejecución Aplicativo
Cargar Cuerpo
Humano
Figura 44 Caso de uso Petición de ejecución Aplicativo.
113
Caso de Uso: Petición de ejecución Aplicativo
Actor: Usuario 1) El usuario ingresa a la página web en donde se encuentra el aplicativo embebido 2) Aplicativo presenta en pantalla la barra de progreso de carga del modelo 3d del cuerpo humano 3) Aplicativo despliega en pantalla del modelo 3d del cuerpo humano Caso de Uso: Petición de detalle de parte del Cuerpo humano
Petición de detalle
de parte del
Cuerpo humano
Figura 45 Caso de uso Petición de detalle de parte del Cuerpo .
Caso de Uso: Petición de detalle de parte del Cuerpo humano
Actor: Usuario
1) Se recibe petición de usuario para detalle de una parte de el modelo
2) Aplicativo recepta información de cual es la parte del cuerpo y envía
información requerida (Nombre y detalle) del cuerpo humano.
3) Aplicativo despliega de forma grafica el nombre y detalle de la parte del
cuerpo humano.
Caso de Uso: Petición Manipulación del modelo
Manipulación del
modelo
Figura 46 Caso de uso Petición Manipulación del modelo.
114
Caso de Uso: Petición Manipulación del modelo
Actor: Usuario 1) Se recibe petición de usuario para manipular modelo del cuerpo humano (Alejar, acercar, desplazar y girar). 2) Aplicativo recepta información necesaria (coordenadas, tipo de evento, velocidad) para cumplir la petición del cliente y ejecuta la acción. 3) Aplicativo despliega de forma grafica el cambio que se ejerce en el modelo. Metodología
Para seleccionar la metodología que mejor se adapte a los
requerimientos de desarrollo del proyecto de tesis se debe basar en el
análisis de requerimientos previamente realizado.
Cabe mencionar que existe una gran gama de metodologías que se
ajustan a la diversidad de propuestas y diferencias en el grado de
detalle, información disponible y alcance de cada una de ellas. Por lo
cual considerando su filosofía de desarrollo, se las puede clasificar en
aquellas metodologías con mayor énfasis en la planificación y control
del proyecto, en especificación precisa de requisitos y modelado, y
que reciben el apelativo de Metodologías Tradicionales. Otras
metodologías,
denominadas
Metodologías
Ágiles,
están
más
orientadas a la generación de código con ciclos muy cortos de
desarrollo y se dirigen a equipos de desarrollo pequeños; Hacen
especial hincapié en aspectos humanos asociados al trabajo en
equipo e involucran activamente al cliente en el proceso. A
continuación se revisan brevemente cada una de estas categorías de
metodologías. (Pressman R, 2002).
115
Metodologías tradicionales (no ágiles)
Las metodologías no ágiles son aquellas que están guiadas por una fuerte
planificación durante todo el proceso de desarrollo; Se denominan también
metodologías tradicionales o clásicas, donde se realiza una intensa etapa de
análisis y diseño antes de la construcción del sistema. (Prentice Hall. 2001).
Metodologías ágiles
Un proceso es ágil cuando el desarrollo de software es incremental
(entregas pequeñas de software, con ciclos rápidos), cooperativo (cliente y
desarrolladores
trabajan
juntos
constantemente
con
una
cercana
comunicación), sencillo (el método en sí mismo es fácil de aprender y
modificar, bien documentado), y adaptable (permite realizar cambios de
último momento) (Abrahamsson, P., Salo, O., Ronkainen, J., Agile Software
Development Methods. Review and Analysis, VTT, 2002).
116
Comparación Metodologías
Las principales diferencias de las metodologías ágiles con respecto a las
tradicionales se las ha descrito en la siguiente tabla.
Tabla 23. Diferencias entre metodologías ágiles y no ágiles (Prentice Hall. 2001)
Metodologías Agiles
Metodologías Tradicionales
Basadas en heurísticas de prácticas de
producción de código
durante el proyecto
menos
controlado,
en
normas
provenientes
de
estándares seguidos por el entorno de
desarrollo
Especialmente preparados para cambios
Proceso
Basadas
con
pocos
principios
No existe contrato tradicional o al menos es
bastante flexible
El cliente es parte del equipo de desarrolló
Cierta resistencia a los cambios
Procesos
mucho
mas
controlado,
con
numerosas políticas/normas
Existe un contrato prefijado
El cliente interactúa con el equipo de
desarrolló mediante reuniones
Grupos pequeños
Grupos grandes y posiblemente distribuidos
Pocos artefactos
Mas artefactos
Pocos roles
Mas roles
Menos énfasis en la arquitectura de software
La arquitectura de software es esencial y se
expresa mediante modelos
117
Selección de Metodología
Si se toma encuentra de todos los ítems anteriores especialmente de los
requerimientos y antecedentes del proyecto, se podrá confirmar que será
necesario escoger una metodología Ágil para el proyecto de tesis, ya que el
desarrollo del proyecto tiende a ser flexible en cada uno de sus
requerimientos.
Diferencias entre metodologías ágiles: Cabe recalcar que existen varias
metodologías agiles que se podrían implementar por lo cual a continuación
se Identificará en una tabla las tres metodologías agiles mas relevantes y
con mas presencia en internet en la actualidad.
Tabla 24. Diferencias entre metodologías ágiles. (Pekka Abrahamsson, Outi
Salo y Jussi Ronkainen .2002).
SCRUM
Las iteraciones son de dos a
cuatro semanas y se conocen
como Sprint.
EXTREME PROGRAMMING
Las interaciones de entrega de una
a tres semanas (algo más rápidas).
MSF Ágil
Las interaciones son adaptables a los
requerimientos del cliente, además de
variar según sea necesario en el
transcurso de las fases del proyecto
Al finalizar un Sprint, las
tareas que se han realizado
del Sprint Backlog y en las
que el Producto Owner ha
mostrado su conformidad ya
no se vuelve a tocar en
ningún momento. "Lo que se
termina, funciona y esta bien,
se aparta y ya no se toca".
Cada miembro de Scrum
Team trabaja de forma
individual
El Scrum Team trata de
seguir el orden de prioridad
de marca el Producto Owner
en el Sprint Backlog pero si
ven que es mejor modificar el
orden de prioridad para el
desarrolló de las tareas,
pueden hacerlo.
EL Scrum es una metodología
de desarrolló ágil mas basada
en la administración del
proyecto
Las tares que se van terminando
en las diferentes entregas al cliente
son susceptibles a modificaciones
durante el transcurso de todo el
proyecto, incluso después de que
funcione correctamente.
Cada tarea que se termina, esta basada
en un ciclo de vida del software (ciclo
vital del desarrollo/diseño de sistemas)
que es una guía adaptable basada en
experiencias, mejora y practicas
Los miembros programan
parejas en un proyecto XP.
en
Cada miembro del grupo de trabajo
desarrolla en forma individual
El equipo de desarrolló sigue
estrictamente el orden de prioridad
de las tareas definido por el cliente
(aunque el equipo de desarrolló les
ayude a decidir, ellos son lo que
mandan).
Dependiendo del tamaño del proyecto,
cada rol puede ser asignado a un
individuo o a un grupo, o bien un
individuo o grupo puede desempeñar
más de un rol.
En
cambio,
el
Extreme
Programming se centra más en la
propia programación o creación del
producto.
MSF apoya proceso de múltiples
enfoques, por lo que se puede adaptar y
apoyar
cualquier
proyecto,
independientemente de su tamaño o
complejidad.
118
Conclusión Metodología
Como se detalla en la tabla se muestra las principales características que se
tiene en cada una de las metodologías agiles y que a pesar de compartir la
mayoría de atributos si existen diferencias.
Por lo cual teniendo en cuenta esta referencia se ha optado por escoger la
metodología MSF Ágil ya que se ajusta a los requerimientos expresados en
ítems anteriores, además de brindar la flexibilidad y abierta al cambio
constante necesaria para el proyecto, así como permitir la construcción y el
mantenimiento de sistemas a bajo costo, de entrega más rápida y de
calidad. (Jim Highsmith. 2002).
119
ANEXO II
Manual de Uso
A continuación se detallará el uso de las diferentes herramientas y acciones
que se tienen a disposición para la manipulación de la anatomía del Cuerpo
Humano.
Para la mejor comprensión del uso del aplicativo procedimos a dividir en tres
sectores la aplicación, como se detalla en la siguiente grafica.
Figura 47 Detalle Uso Aplicativo.
Como se puede observar en el gráfico, cada sector esta identificado con un
recuadro que lo limita, además de tener un pequeño grafico en forma de
nota en la cual se señala el título de cada sector.
120
A continuación se detalla cada sector:
Sector C
Figura 48 Detalle Uso Sector C.
Descripción:
Es el sector más pequeño y tiene la funcionalidad de abrir un cuadro de
dialogo dentro de nuestra pagina en donde se desplegará el nombre y el
detalle de la parte del cuerpo humano en donde se está desplazando el
mouse; Cabe recalcar que esta función es automática y ocurre cada vez que
el mouse pase encima de una parte del cuerpo humano, además de
componerse de texto, cuadro de dialogo y un botón cuya funcionalidad se
detalla a continuación:
Text: “Si deseas una pequeña desc.....”: Simplemente su utilidad es
informativa.
Botón “¡Haz click aquí!”: al hacer click se desplegara el cuadro de dialogo.
Cuadro de dialogo: su funcionalidad es la de mostrar la información del
nombre y descripción de la parte del cuerpo sobre la cual se esta
desplazando el mouse, esta compuesto de tres partes titulo, descripción y un
pequeño botón para cerrar el dialogo
121
Sector B
Figura 49 Detalle Uso Sector B.
Localización
Es la zona ubicada en la sección izquierda de la imagen del cuerpo humano,
este sector del aplicativo se despliegan en forma jerarquía todas las partes
en las que lo hemos dividido a la anatomía del cuerpo humano, además de
clasificara por su tipo (Órganos, Huesos, Músculos, etc).
122
Funcionalidad
Su principal función es representar en el sector A al objeto tridimensional
que tiene asignado el mismo nombre y que se ha seleccionado.
Figura 50 Función Sector B.
Como se puede observar en el gráfico anterior los tres lugares que están
señalados en los recuadros en la imagen
representan al mismo objeto
tridimensional. En el cuadro de dialogo se observa el nombre y detalle de
objeto, en el árbol de objetos vuelve a parecer el nombre del objeto y en el
gráfico tridimensional que aparece en el recuadro, se muestra al objeto
tridimensional llamado tórax.
Ítems
Además de que cada ítem consta con su nombre correspondiente aparece
con un icono asignado en la parte izquierda del nombre, como se puede
observar en el siguiente gráfico.
Figura 51 Detalle Ítem Sector B.
123
Los iconos asignados al objeto pueden ser solo de dos tipos:
El primero es un circulo verde con un signo positivo (+) en el medio de la
circunferencia, el cual representa que el objeto tridimensional al que
representa esta visible en el modelo tridimensional.
Figura 52 Ítem activos.
El segundo es un circulo rojo con un signo negativo (-) en el medio de la
circunferencia, el cual representa que el objeto tridimensional al que
representa no esta visible en el modelo tridimensional.
Figura 53 Ítems desactivados.
El tipo de estado (visible o no visible) del objeto tridimensional puede ser
variado simplemente dando click con el mouse encima del nombre del objeto
del ítem, causando que este aparezca y desaparezca dinámicamente
dependiendo de las necesidades del usuario, en conclusión esto nos ayuda
a llevar un control exacto de lo que se ha quitado o esta presente en el
modelo tridimensional.
124
Ejemplo
Figura 54 Estado visible objetos tridimensionales.
Figura 55 Estado No visible objetos tridimensionales.
125
Al estudiar las dos graficas anteriores, las cuales representan a la misma
zona del modelo tridimensional; Se observará que en el primer gráfico la
mayoría de los ítems tienen un estado visible, lo cual también se refleja en
los objetos tridimensionales del modelo; de igual manera en el segundo
gráfico en el cual la mayoría de ítems están en un estado no visible y los
modelos tridimensionales están en un estado no visible.
Casilla de Verificación
Figura 56 Casilla de Verificación.
Cave recalcar que cada uno de los ítems tiene un nodo padre una Casilla de
Verificación con su respectivo nombre dentro de nuestro árbol jerárquico.
Este agrupa a estos ítems de acuerdo a sus características y la
funcionalidad de casilla de verificación es desvanecer o aparecer a todos los
ítems hijos que están a su encargo, a continuación un ejemplo:
126
Figura 57 Estado Casilla de Verificación.
Como se observa en la gráfica, las casillas de verificación que no están
seleccionadas hacen que en el modelo del cuerpo humano se desvanezcan
los ítems que están a su cargo jerárquicamente, a su vez los que están
seleccionados aparecen claramente en nuestro modelo; Esta funcionalidad
esta pensada para que sea mucho mas fácil controlar para el usuario el
explorar y manipular los objetos tridimensionales de que está compuesto
nuestro cuerpo humano, además de dar un nivel mas exacto de control para
el usuario. Cabe recalcar que para poder seleccionar o dejar de seleccionar
una casilla de verificación es necesario proceder a hacer doble click encima
de la casillas de verificación que se desee manipular.
127
Figura 58 Casilla de Verificación seleccionado solo Esqueleto.
Casilla de Verificación (Árbol Objetos Cuerpo Humano)
Como se observa en el siguiente grafico, la Casilla de Verificación (Árbol
Objetos Cuerpo Humano) es el nodo padre que contiene a todos los demás
nodos e ítems que tiene el árbol jerárquico del cuerpo humano y su función
primordial es que se encarga de cargar o descargar todos los modelos de la
anatomía del cuerpo humano el aplicativo, es decir que si el usuario desea
cargar
o desvanecer todos los modelos a pesar que el usuario haya
manipulado cualquiera de los ítems al hacer doble click en el nodo, se pueda
volver a cargar o desvanecer el ítem sin importar su condición actual.
128
Figura 59 Casilla de Verificación no seleccionado (Árbol Objetos Cuerpo
Humano).
Figura 60 Verificación seleccionado (Árbol Objetos Cuerpo Humano).
129
Sector A
Es el sector principal del aplicativo, en donde se despliega el modelo
tridimensional de la anatomía del cuerpo humano y sus órganos, además de
que los otros sectores dependen directamente del comportamiento que se
desarrollará en este sector.
Figura 61 Modelo tridimensional sector A.
Como se puede observar en el gráfico anterior en este sector se nos
presenta el modelo tridimensional y por ende a esta zona se la doto de
algunas características interesantes para ser manipulado por el usuario
principalmente con el uso del mouse. A continuación se los describe con
detalle:
130
Funciones Mouse
Mover el mouse
Simplemente con el hecho de mover el mouse encima de cualquier parte de
nuestro modelo causará que automáticamente la parte del modelo del
cuerpo humano cambie de color a un tono azulado indicándonos que parte
exactamente se está señalando. A continuación un ejemplo grafico
Figura 62 Movimientos de mouse encima modelo tridimensional.
131
Mouse movimiento de arrastre botón derecho
Al generar un movimiento del mouse además de mantener presionando su
botón derecho, causará que el modelo tridimensional gire de acuerdo hacia
donde se lo dirija el mouse, es decir que si se mueve el mouse hacia la
izquierda el modelo tridimensional gira hacia la izquierda. Esto también
ocurrirá si se arrastra el mouse de arriba hacia abajo y viceversa. Cabe
recalcar que no es necesario tener el mouse encima del modelo
tridimensional, solo será necesario mantener el mouse dentro del sector A,
como se muestra en el ejemplo:
Figura 63 Mouse arrastre botón derecho.
Como se observa en el gráfico anterior, se ha arrastrado el mouse hacia la
derecha manteniendo presionado el botón derecho causando que el modelo
tridimensional gire aproximadamente unos 45 grados con respecto a su vista
anterior
132
Mouse movimiento de arrastre botón izquierdo
Al generar un moviendo del mouse además de mantener presionando el
botón izquierdo del mouse causara que el modelo tridimensional sea
desplazado de su posición de acuerdo hacia donde se lo dirija el mouse, es
decir que si se mueve el mouse hacia la izquierda el modelo tridimensional
se moverá hacia la izquierda. Esto también ocurrirá si se arrastra el mouse
de arriba hacia abajo y viceversa. Cabe recalcar que no es necesario tener
el mouse encima del modelo tridimensional, solo será necesario mantener el
mouse dentro del sector A, e incluso el modelo tridimensional no esta
limitado para que se mantenga dentro del foco de la pantalla es decir que el
modelo puede salir fuera de foco dependiendo de la manipulación del
usuario, como se muestra en el siguiente ejemplo.
Figura 64 Mouse arrastre botón izquierdo.
Como se observa en el gráfico anterior, se ha arrastrado el mouse hacia
arriba manteniendo presionado el botón izquierdo, causando que el modelo
tridimensional sea desplazado hacia arriba de la pantalla con respecto a la
vista anterior
133
Rueda Mouse
Otra de las funcionalidades que se ejecutan con el mouse, es con el uso la
rueda. Esta acción permite al usuario acercar o alejar el modelo
dependiendo de la necesidad, es decir que manteniendo el mouse encima
del sector A y girando la rueda del mouse hacia adelante causara que el
modelo tridimensional sea visualizado como un aumento en el zoom o
girando la rueda para atrás causará que el modelo tridimensional sea
visualizado con una disminución del zoom, como se muestra en el siguiente
ejemplo:
Figura 65 Rueda mouse 1.
134
Figura 66 Rueda mouse 2.
Si se observa con detalle los gráficos anteriores se podrá observar que se a
aumentado el zoom a nuestro modelo tridimensional solo moviendo hacia
adelante la rueda del mouse, de igual manera se puede disminuir el zoom
simplemente moviendo hacia atrás la rueda del mouse, esto a conveniencia
del usuario.
135
ANEXO III
Pruebas de Campo Aplicativo
A continuación se documentarán varias pruebas realizadas al aplicativo con
la finalidad de poder aprobar o identificar deficiencias que pudieran existir en
la aplicación; Hay que considerar que el aplicativo se encuentra embebido
en una página web, por lo cual para comenzar a generar las pruebas será
necesario simplemente acceder a dicha página.
Para la evaluación de los test de pruebas será necesario definir un actor
(Usuario) que evalué en forma ecuánime y desinteresada todas las pruebas
que se presentan a continuación.
Para lo cual se ha tomado en consideración al Director del trabajo de
titulación, Ing. Galo Ramos, quien ha llevado a cabo la evaluación.
136
Quito Ecuador, 4 de Mayo de 2012
A QUIEN CONCIERNE:
Sirva la presente para certificar que el Ing. Galo Ramos, coordinador de la
carrera de ingeniería Informática y ciencias de la computación de la
Universidad Tecnológica Equinoccial, con cédula de identidad 1708020548,
realizó el cuestionario de puedas practicas para la evaluación del aplicativo
realizado para el proyecto de tesis del señor Bernardo Morales aspirante a
ingeniero en informática y ciencias de la computación.
_________________
Ing. Galo Ramos
CC. 170802054-8
137
Test de Carga del modelo Aplicativo.
1. ¿Unos segundos después de abrir la página web en donde se encuentra
embebido el aplicativo aparece la barra de progreso de carga de Java?
Nota:______________________________________________________
__________________________________________________________
2. ¿Al llenarse la barra de progreso de Java en la página web se presenta
en pantalla una imagen de un cuerpo humano?
Nota:______________________________________________________
__________________________________________________________
3. ¿La imagen que se presenta en pantalla de un modelo tridimensional del
cuerpo humano tiene alguna irregularidad fuera de lo común o algo que
no pareciere estar de acuerdo con el resto del cuerpo humano?
Nota: ______________________________________________________
__________________________________________________________
138
Test de Eventos Mouse sobre Modelo Tridimensional del cuerpo
humano.
4. ¿Al colocar el mouse encima del modelo tridimensional, presionar el click
derecho del mouse y arrastrar el mouse de un lado al otro, el modelo
tridimensional se mueve acorde al movimiento del mouse?
Nota: ______________________________________________________
__________________________________________________________
5. ¿Al colocar el mouse encima del modelo tridimensional, presionar el click
izquierdo del mouse y arrastrar el mouse de un lado al otro, el modelo
tridimensional gira acorde al movimiento del mouse?
Nota: ______________________________________________________
__________________________________________________________
6. ¿Al colocar el mouse encima del modelo tridimensional y presionar la
rueda del mouse hacia abajado o hacia arriba, en el entorno virtual
aumenta o disminuye el zoom?
Nota: ______________________________________________________
__________________________________________________________
139
7. ¿Al colocar el mouse encima del modelo tridimensional sin presionar
ningún botón de mouse, la parte especifica de modelo tridimensional del
cuerpo humano en donde se esta señalando con el mouse cambia su
aspecto a otro color?
Nota: _____________________________________________________
__________________________________________________________
8. ¿Al colocar el mouse encima del modelo tridimensional, presionar dos
veces el click izquierdo del mouse, la parte especifica de modelo
tridimensional del cuerpo humano en donde se esta señalando con el
mouse desaparece?
Nota: _____________________________________________________
_________________________________________________________
140
Test árbol de jerarquía Cuerpo humano.
1. ¿Al colocar el mouse encima de cualquiera de las ítems hijos que están
en el dado izquierdo de la pantalla y presionar dos veces el click izquierdo
del mouse, este cambia su icono a uno diferente dependiendo su estado
actual, al igual que el objeto al que representa dentro del cuerpo humano
aparezca o desaparezca dependiendo del estado actual del ítem?
Nota:______________________________________________________
__________________________________________________________
2. ¿Al colocar el mouse encima de cualquiera de las casillas de verificación
padre que están en el dado izquierdo de la pantalla y presionar dos veces el
click derecho del mouse, este cambia su estado de selección además de
provocar que todos los ítems hijos también cambien su estado acorde al
estado de la casilla de verificación padre y también causando que todos los
objetos a los que representa estos ítems del cuerpo humano aparezca o
desaparezca dependiendo del estado actual de la casillas de verificación?
Nota:______________________________________________________
__________________________________________________________
141
3. ¿Al colocar el mouse encima de cualquiera de las casillas de
verificación principal identificada con el nombre Árbol Objetos Cuerpo
humano que están en el dado izquierdo de la pantalla y presionar dos
veces el click izquierdo del mouse, este cambia su Índice de Figuras
excepción también cambien su estado acorde al estado de la casilla
de verificación y también causando que todas las partes del cuerpo
humano aparezcan o desaparezcan dependiendo del estado actual de
la casillas de verificación?
Nota: _____________________________________________________
__________________________________________________________
142
Test Cuadro de Dialogo Información
1. ¿Al presionar el botón identificado con el nombre “Has click aquí” que
aparece en la parte superior de la pàgina provoca que aparezca un cuadro
de dialogo en pantalla?
Nota: _____________________________________________________
__________________________________________________________
2. ¿Al estar el cuadro del dialogo presente en pantalla y colocar el mouse
encima de una de las partes modelo tridimensional provoca que en el cuadro
de dialogo despliegue el nombre y detalle de la parte del cuerpo humano que
se esta colocando el mouse?
Nota: _____________________________________________________
__________________________________________________________
143
ANEXO IV
A continuación se presentan en forma de documentación 10 cuestionarios
que fueron evaluados por 10 estudiantes de medicina de la Universidad
Tecnológica Equinoccial con la finalidad que analizar los resultados del
aplicativo desarrollado como tema de tesis.
144
UNIVERSIDAD TECNOLÓGICA EQUINOCCIAL
FACULTAD DE CIENCIAS DE LA INGENIERÍA
CARRERA DE INGENIERÍA INFORMATICA Y CIENCIAS DE LA
COMPUTACIÓN
Objetivo: evaluar la funcionalidad del modelo del cuerpo humano realizado en java 3d
Instrucciones: Lea detenidamente la pregunta y conteste según corresponda
1. ¿En la escala del 1 al 10, siendo el 1 el número mas bajo de calificación y 10 el
número máximo de calificación califique el modelo 3d de la anatomía del cuerpo
humano que se observa en el aplicativo, esta diseñado de acuerdo a la anatomía
real del cuerpo humano?
1 2 3 4 5 2.
¿En la escala del 1 al 10, califique que tan fácil fue entender el funcionamiento del
uso el aplicativo, siendo el 1 el numero mas bajo de calificación y 10 el numero
máximo
de
calificación?
1 2 3 4 5 3.
6 7 8 9 10 6 7 8 9 10 ¿En la escala del 1 al 10, califique si el aplicativo cumple correctamente con las
funcionalidades como acercar, alejar, girar y desplazar el modelo 3d del cuerpo
humano, siendo el 1 el numero mas bajo de calificación y 10 el numero máximo de
calificación?
1 2 3 4
5
6
7
8
9 10 4 .¿En la escala del 1 al 10, califique si el aplicativo cumple correctamente con la
funcionalidad de presentar información correcta (Nombre y Detalle) de cada uno de las
partes de cuerpo humano en donde el mouse señala, siendo el 1 el número mas bajo de
calificación y 10 el número máximo de calificación?
1 2 3 4 5 6 7 8 9 10 145
UNIVERSIDAD TECNOLÓGICA EQUINOCCIAL
FACULTAD DE CIENCIAS DE LA INGENIERÍA
CARRERA DE INGENIERÍA INFORMATICA Y CIENCIAS DE LA
COMPUTACIÓN
Objetivo: evaluar la funcionalidad del modelo del cuerpo humano realizado en java 3d
Instrucciones: Lea detenidamente la pregunta y conteste según corresponda
1. ¿En la escala del 1 al 10, siendo el 1 el número mas bajo de calificación y 10 el
número máximo de calificación califique el modelo 3d de la anatomía del cuerpo
humano que se observa en el aplicativo, esta diseñado de acuerdo a la anatomía
real del cuerpo humano?
1 2 3 4 5 2.
¿En la escala del 1 al 10, califique que tan fácil fue entender el funcionamiento del
uso el aplicativo, siendo el 1 el numero mas bajo de calificación y 10 el numero
máximo
de
calificación?
1 2 3 4 5 3.
6 7 8 9 10 6 7 8 9 10 ¿En la escala del 1 al 10, califique si el aplicativo cumple correctamente con las
funcionalidades como acercar, alejar, girar y desplazar el modelo 3d del cuerpo
humano, siendo el 1 el numero mas bajo de calificación y 10 el numero máximo de
calificación?
1 2 3 4 5 6 7 8 9 10 4 .¿En la escala del 1 al 10, califique si el aplicativo cumple correctamente con la
funcionalidad de presentar información correcta (Nombre y Detalle) de cada uno de las
partes de cuerpo humano en donde el mouse señala, siendo el 1 el número mas bajo de
calificación y 10 el número máximo de calificación?
1 2 3 4
5
6
7
8
9 10 146
UNIVERSIDAD TECNOLÓGICA EQUINOCCIAL
FACULTAD DE CIENCIAS DE LA INGENIERÍA
CARRERA DE INGENIERÍA INFORMATICA Y CIENCIAS DE LA
COMPUTACIÓN
Objetivo: evaluar la funcionalidad del modelo del cuerpo humano realizado en java 3d
Instrucciones: Lea detenidamente la pregunta y conteste según corresponda
1. ¿En la escala del 1 al 10, siendo el 1 el número mas bajo de calificación y 10 el
número máximo de calificación califique el modelo 3d de la anatomía del cuerpo
humano que se observa en el aplicativo, esta diseñado de acuerdo a la anatomía
real del cuerpo humano?
1 2 3 4 5 2.
¿En la escala del 1 al 10, califique que tan fácil fue entender el funcionamiento del
uso el aplicativo, siendo el 1 el numero mas bajo de calificación y 10 el numero
máximo
de
calificación?
1 2 3 4 5 3.
6 7 8 9 10 6 7 8 9 10 ¿En la escala del 1 al 10, califique si el aplicativo cumple correctamente con las
funcionalidades como acercar, alejar, girar y desplazar el modelo 3d del cuerpo
humano, siendo el 1 el numero mas bajo de calificación y 10 el numero máximo de
calificación?
1 2 3 4 5 6 7 8 9 10 4 .¿En la escala del 1 al 10, califique si el aplicativo cumple correctamente con la
funcionalidad de presentar información correcta (Nombre y Detalle) de cada uno de las
partes de cuerpo humano en donde el mouse señala, siendo el 1 el número mas bajo de
calificación y 10 el número máximo de calificación?
1 2 3 4
5
6
7
8
9 10 147
UNIVERSIDAD TECNOLÓGICA EQUINOCCIAL
FACULTAD DE CIENCIAS DE LA INGENIERÍA
CARRERA DE INGENIERÍA INFORMATICA Y CIENCIAS DE LA
COMPUTACIÓN
Objetivo: evaluar la funcionalidad del modelo del cuerpo humano realizado en java 3d
Instrucciones: Lea detenidamente la pregunta y conteste según corresponda
1. ¿En la escala del 1 al 10, siendo el 1 el número mas bajo de calificación y 10 el
número máximo de calificación califique el modelo 3d de la anatomía del cuerpo
humano que se observa en el aplicativo, esta diseñado de acuerdo a la anatomía
real del cuerpo humano?
1 2 3 4 5 2.
¿En la escala del 1 al 10, califique que tan fácil fue entender el funcionamiento del
uso el aplicativo, siendo el 1 el numero mas bajo de calificación y 10 el numero
máximo
de
calificación?
1 2 3 4 5 3.
6 7 8 9 10 6 7 8 9 10 ¿En la escala del 1 al 10, califique si el aplicativo cumple correctamente con las
funcionalidades como acercar, alejar, girar y desplazar el modelo 3d del cuerpo
humano, siendo el 1 el numero mas bajo de calificación y 10 el numero máximo de
calificación?
1 2 3 4
5
6
7
8
9 10 4 .¿En la escala del 1 al 10, califique si el aplicativo cumple correctamente con la
funcionalidad de presentar información correcta (Nombre y Detalle) de cada uno de las
partes de cuerpo humano en donde el mouse señala, siendo el 1 el número mas bajo de
calificación y 10 el número máximo de calificación?
1 2 3 4 5 6 7 8 9 10 148
UNIVERSIDAD TECNOLÓGICA EQUINOCCIAL
FACULTAD DE CIENCIAS DE LA INGENIERÍA
CARRERA DE INGENIERÍA INFORMATICA Y CIENCIAS DE LA
COMPUTACIÓN
Objetivo: evaluar la funcionalidad del modelo del cuerpo humano realizado en java 3d
Instrucciones: Lea detenidamente la pregunta y conteste según corresponda
1. ¿En la escala del 1 al 10, siendo el 1 el número mas bajo de calificación y 10 el
número máximo de calificación califique el modelo 3d de la anatomía del cuerpo
humano que se observa en el aplicativo, esta diseñado de acuerdo a la anatomía
real del cuerpo humano?
1 2 3 4 5 2.
¿En la escala del 1 al 10, califique que tan fácil fue entender el funcionamiento del
uso el aplicativo, siendo el 1 el numero mas bajo de calificación y 10 el numero
máximo
de
calificación?
1 2 3 4 5 3.
6 7 8 9 10 6 7 8 9 10 ¿En la escala del 1 al 10, califique si el aplicativo cumple correctamente con las
funcionalidades como acercar, alejar, girar y desplazar el modelo 3d del cuerpo
humano, siendo el 1 el numero mas bajo de calificación y 10 el numero máximo de
calificación?
1 2 3 4
5
6
7
8
9 10 4 .¿En la escala del 1 al 10, califique si el aplicativo cumple correctamente con la
funcionalidad de presentar información correcta (Nombre y Detalle) de cada uno de las
partes de cuerpo humano en donde el mouse señala, siendo el 1 el número mas bajo de
calificación y 10 el número máximo de calificación?
1 2 3 4 5 6 7 8 9 10 149
UNIVERSIDAD TECNOLÓGICA EQUINOCCIAL
FACULTAD DE CIENCIAS DE LA INGENIERÍA
CARRERA DE INGENIERÍA INFORMATICA Y CIENCIAS DE LA
COMPUTACIÓN
Objetivo: evaluar la funcionalidad del modelo del cuerpo humano realizado en java 3d
Instrucciones: Lea detenidamente la pregunta y conteste según corresponda
1. ¿En la escala del 1 al 10, siendo el 1 el número mas bajo de calificación y 10 el
número máximo de calificación califique el modelo 3d de la anatomía del cuerpo
humano que se observa en el aplicativo, esta diseñado de acuerdo a la anatomía
real del cuerpo humano?
1 2 3 4 5 2.
¿En la escala del 1 al 10, califique que tan fácil fue entender el funcionamiento del
uso el aplicativo, siendo el 1 el numero mas bajo de calificación y 10 el numero
máximo
de
calificación?
1 2 3 4 5 3.
6 7 8 9 10 6 7 8 9 10 ¿En la escala del 1 al 10, califique si el aplicativo cumple correctamente con las
funcionalidades como acercar, alejar, girar y desplazar el modelo 3d del cuerpo
humano, siendo el 1 el numero mas bajo de calificación y 10 el numero máximo de
calificación?
1 2 3 4
5
6
7
8
9 10 4 .¿En la escala del 1 al 10, califique si el aplicativo cumple correctamente con la
funcionalidad de presentar información correcta (Nombre y Detalle) de cada uno de las
partes de cuerpo humano en donde el mouse señala, siendo el 1 el número mas bajo de
calificación y 10 el número máximo de calificación?
1 2 3 4 5 6 7 8 9 10 150
UNIVERSIDAD TECNOLÓGICA EQUINOCCIAL
FACULTAD DE CIENCIAS DE LA INGENIERÍA
CARRERA DE INGENIERÍA INFORMATICA Y CIENCIAS DE LA
COMPUTACIÓN
Objetivo: evaluar la funcionalidad del modelo del cuerpo humano realizado en java 3d
Instrucciones: Lea detenidamente la pregunta y conteste según corresponda
1. ¿En la escala del 1 al 10, siendo el 1 el número mas bajo de calificación y 10 el
número máximo de calificación califique el modelo 3d de la anatomía del cuerpo
humano que se observa en el aplicativo, esta diseñado de acuerdo a la anatomía
real del cuerpo humano?
1 2 3 4 5 2.
¿En la escala del 1 al 10, califique que tan fácil fue entender el funcionamiento del
uso el aplicativo, siendo el 1 el numero mas bajo de calificación y 10 el numero
máximo
de
calificación?
1 2 3 4 5 3.
6 7 8 9 10 6 7 8 9 10 ¿En la escala del 1 al 10, califique si el aplicativo cumple correctamente con las
funcionalidades como acercar, alejar, girar y desplazar el modelo 3d del cuerpo
humano, siendo el 1 el numero mas bajo de calificación y 10 el numero máximo de
calificación?
1 2 3 4
5
6
7
8
9 10 4 .¿En la escala del 1 al 10, califique si el aplicativo cumple correctamente con la
funcionalidad de presentar información correcta (Nombre y Detalle) de cada uno de las
partes de cuerpo humano en donde el mouse señala, siendo el 1 el número mas bajo de
calificación y 10 el número máximo de calificación?
1 2 3 4 5 6 7 8 9 10 151
UNIVERSIDAD TECNOLÓGICA EQUINOCCIAL
FACULTAD DE CIENCIAS DE LA INGENIERÍA
CARRERA DE INGENIERÍA INFORMATICA Y CIENCIAS DE LA
COMPUTACIÓN
Objetivo: evaluar la funcionalidad del modelo del cuerpo humano realizado en java 3d
Instrucciones: Lea detenidamente la pregunta y conteste según corresponda
1. ¿En la escala del 1 al 10, siendo el 1 el número mas bajo de calificación y 10 el
número máximo de calificación califique el modelo 3d de la anatomía del cuerpo
humano que se observa en el aplicativo, esta diseñado de acuerdo a la anatomía
real del cuerpo humano?
1 2 3 4 5 2.
¿En la escala del 1 al 10, califique que tan fácil fue entender el funcionamiento del
uso el aplicativo, siendo el 1 el numero mas bajo de calificación y 10 el numero
máximo
de
calificación?
1 2 3 4 5 3.
6 7 8 9 10 6 7 8 9 10 ¿En la escala del 1 al 10, califique si el aplicativo cumple correctamente con las
funcionalidades como acercar, alejar, girar y desplazar el modelo 3d del cuerpo
humano, siendo el 1 el numero mas bajo de calificación y 10 el numero máximo de
calificación?
1 2 3 4 5 6 7 8 9 10 4 .¿En la escala del 1 al 10, califique si el aplicativo cumple correctamente con la
funcionalidad de presentar información correcta (Nombre y Detalle) de cada uno de las
partes de cuerpo humano en donde el mouse señala, siendo el 1 el número mas bajo de
calificación y 10 el número máximo de calificación?
1 2 3 4
5
6
7
8
9 10 152
UNIVERSIDAD TECNOLÓGICA EQUINOCCIAL
FACULTAD DE CIENCIAS DE LA INGENIERÍA
CARRERA DE INGENIERÍA INFORMATICA Y CIENCIAS DE LA
COMPUTACIÓN
Objetivo: evaluar la funcionalidad del modelo del cuerpo humano realizado en java 3d
Instrucciones: Lea detenidamente la pregunta y conteste según corresponda
1. ¿En la escala del 1 al 10, siendo el 1 el número mas bajo de calificación y 10 el
número máximo de calificación califique el modelo 3d de la anatomía del cuerpo
humano que se observa en el aplicativo, esta diseñado de acuerdo a la anatomía
real del cuerpo humano?
1 2 3 4 5 2.
¿En la escala del 1 al 10, califique que tan fácil fue entender el funcionamiento del
uso el aplicativo, siendo el 1 el numero mas bajo de calificación y 10 el numero
máximo
de
calificación?
1 2 3 4 5 3.
6 7 8 9 10 6 7 8 9 10 ¿En la escala del 1 al 10, califique si el aplicativo cumple correctamente con las
funcionalidades como acercar, alejar, girar y desplazar el modelo 3d del cuerpo
humano, siendo el 1 el numero mas bajo de calificación y 10 el numero máximo de
calificación?
1 2 3 4 5 6 7 8 9 10 4 .¿En la escala del 1 al 10, califique si el aplicativo cumple correctamente con la
funcionalidad de presentar información correcta (Nombre y Detalle) de cada uno de las
partes de cuerpo humano en donde el mouse señala, siendo el 1 el número mas bajo de
calificación y 10 el número máximo de calificación?
1 2 3 4
5
6
7
8
9 10 153
UNIVERSIDAD TECNOLÓGICA EQUINOCCIAL
FACULTAD DE CIENCIAS DE LA INGENIERÍA
CARRERA DE INGENIERÍA INFORMATICA Y CIENCIAS DE LA
COMPUTACIÓN
Objetivo: evaluar la funcionalidad del modelo del cuerpo humano realizado en java 3d
Instrucciones: Lea detenidamente la pregunta y conteste según corresponda
1. ¿En la escala del 1 al 10, siendo el 1 el número mas bajo de calificación y 10 el
número máximo de calificación califique el modelo 3d de la anatomía del cuerpo
humano que se observa en el aplicativo, esta diseñado de acuerdo a la anatomía
real del cuerpo humano?
1 2 3 4 5 2.
¿En la escala del 1 al 10, califique que tan fácil fue entender el funcionamiento del
uso el aplicativo, siendo el 1 el numero mas bajo de calificación y 10 el numero
máximo
de
calificación?
1 2 3 4 5 3.
6 7 8 9 10 6 7 8 9 10 ¿En la escala del 1 al 10, califique si el aplicativo cumple correctamente con las
funcionalidades como acercar, alejar, girar y desplazar el modelo 3d del cuerpo
humano, siendo el 1 el numero mas bajo de calificación y 10 el numero máximo de
calificación?
1 2 3 4 5 6 7 8 9 10 4 .¿En la escala del 1 al 10, califique si el aplicativo cumple correctamente con la
funcionalidad de presentar información correcta (Nombre y Detalle) de cada uno de las
partes de cuerpo humano en donde el mouse señala, siendo el 1 el número mas bajo de
calificación y 10 el número máximo de calificación?
1 2 3 4
5
6
7
8
9 10 154
UNIVERSIDAD TECNOLÓGICA EQUINOCCIAL
FACULTAD DE CIENCIAS DE LA INGENIERÍA
CARRERA DE INGENIERÍA INFORMATICA Y CIENCIAS DE LA
COMPUTACIÓN
Objetivo: evaluar la funcionalidad del modelo del cuerpo humano realizado en java 3d
Instrucciones: Lea detenidamente la pregunta y conteste según corresponda
1. ¿En la escala del 1 al 10, siendo el 1 el número mas bajo de calificación y 10 el
número máximo de calificación califique el modelo 3d de la anatomía del cuerpo
humano que se observa en el aplicativo, esta diseñado de acuerdo a la anatomía
real del cuerpo humano?
1 2 3 4 5 2.
¿En la escala del 1 al 10, califique que tan fácil fue entender el funcionamiento del
uso el aplicativo, siendo el 1 el numero mas bajo de calificación y 10 el numero
máximo
de
calificación?
1 2 3 3.
6 7 8 9 10 4
5
6
7
8
9 10 ¿En la escala del 1 al 10, califique si el aplicativo cumple correctamente con las
funcionalidades como acercar, alejar, girar y desplazar el modelo 3d del cuerpo
humano, siendo el 1 el numero mas bajo de calificación y 10 el numero máximo de
calificación?
1 2 3 4 5 6 7 8 9 10 4 .¿En la escala del 1 al 10, califique si el aplicativo cumple correctamente con la
funcionalidad de presentar información correcta (Nombre y Detalle) de cada uno de las
partes de cuerpo humano en donde el mouse señala, siendo el 1 el número mas bajo de
calificación y 10 el número máximo de calificación?
1 2 3 4 5 6 7 8 9 10 155
ABREVIATURAS
JDK: Java development Kit.
API: Application Program Interface.
JRE: Java Runtime Environment.
SDK: Software Development Kit.
VRML: Virtual Reality Model Language.
NURBS: (acrónimo inglés de non-uniform rational B-spline) es un modelo
matemático muy utilizado en la computación gráfica para generar y
representar curvas y superficies.
156
GLOSARIO
API (Interfaz de Programación de Aplicaciones): es un protocolo de
comunicación entre componentes de software y hardware; éste representa
un método para conseguir abstracción en la interoperabilidad de la
programación.
Aplicación: Programa de software diseñado para realizar una tarea o
conjunto de tareas especificas solicitados por el usuario.
Bytecode Java: es el tipo de instrucciones que la máquina virtual Java
ejecuta, su bytecode. Usualmente es el resultado de utilizar un compilador
del lenguaje de programación Java (como javac), pero puede ser generado
desde otros lenguajes.
Compilador: Un compilador es un programa que traduce un programa
escrito en un lenguaje de programación a otro lenguaje de programación,
generando un programa equivalente que la máquina será capaz de
interpretar. Usualmente el segundo lenguaje es código máquina, pero
también puede ser simplemente texto.
Este proceso de traducción se conoce como compilación Lenguaje de
Programación.
GUI: La interfaz gráfica de usuario, conocida también como GUI (del inglés
graphical user interface) es un programa informático que actúa de interfaz de
usuario, utilizando un conjunto de imágenes y objetos gráficos para
representar la información y acciones disponibles en la interfaz.
Hardware: El hardware consiste de dispositivos físicos que forman parte de
un sistema de RV y son los que estimulan al usuario en distintas maneras.
Estos estímulos son los que le permiten alimentar los sentidos del usuario, y
así, inducirlo a un mundo creado para él.
Loader: Esta interfaz define una serie de métodos que permiten determinar
la localización del fichero desde el cual cargar la escena, así como un
conjunto de flags que determina que elementos del fichero se desean cargar.
157
Plataforma: es una combinación de hardware y software usada para
ejecutar aplicaciones; en su forma más simple consiste únicamente de un
sistema operativo, una arquitectura, o una combinación de ambos. La
plataforma más conocida es probablemente Microsoft Windows en una
arquitectura x86; otras plataformas conocidas son GNU/Linux y Mac OS X
(que ya de por sí son multiplataforma).
Periféricos de E/S: Los periféricos de entrada y salida son aquellos
dispositivos que permiten la salida o entrada de datos, por ejemplo, el
teclado permite la entrada de datos a la computadora, a su vez el monitor
permite la salida de datos de ésta. Los periféricos de E/S son los que
permiten al usuario la interacción con la computadora.
Realidad Virtual: es un espacio en tres dimensiones desarrollado y
simulado mediante ordenador, donde los objetos son interactivos. En estos
mundos virtuales el usuario podrá adentrarse, eligiendo entre varias
perspectivas, e interactuar con los objetos que allí se encuentran.
Renderizacion: es un término usado en jerga informática para referirse al
proceso de generar una imagen desde un modelo. Este término técnico es
utilizado por los animadores o productores audiovisuales y en programas de
diseño en 3D.
Simulación: es el proceso de diseñar un modelo de un sistema real y llevar
a término experiencias con él, con la finalidad de comprender el
comportamiento del sistema o evaluar nuevas estrategias.
Software: Conjunto de que se pueden ejecutar en una computadora, así
como toda la información, utilerías y recursos necesarios para su diseño,
instalación, operación, mantenimiento y refinamiento programas.
View: El objeto View especifica la información necesaria para renderizar el
grafo de escena.
VRML (Virtual Reality Modeling Language) Lenguaje para Modelado de
Realidad Virtual: formato de archivo normalizado que tiene como objetivo la
representación de escenas u objetos interactivos tridimensionales; diseñado
particularmente para su empleo en la web. Se usa por medio de comandos
en inglés, los cuales agregan y determinan las características.
158
BIBLIOGRAFÍA

Andrew Davidson, Java 6 3D Game Development, 2007.

Boehm, Spiral Model of Software Develpment, IEEE Computer, 1988.

Bouvier, J. Dennis. Getting Started with the Java 3D API, 1999.

Daniel Selman. Java 3d programming, 2002.

Grigore C. Burdea, Philippe Coiffet, Virtual Reality Technology,
Segunda Edition, John Wiley & Sons 2003.

Guyton CA y Hall JH, Tratado de fisiología médica, 2004.

Huang Z, 3D agent-based virtual communities, ACM 2002.

Jacaboson, Booch, G., Rumbaugh J., El Proceso Unificado de
Desarrollo de Software, Addison Wesley 2000.

Joan J. Pratdepadua, Programación en 3D con Java 3D, Pearson
Educación, 2002.

Jim Highsmith, Agile Software Development Ecosystems, AddisonWesley Professional, 2002.

Ken Arnold, James Gosling, David Holmes, The Java Programming
Language, Fourth Edition, Addison-Wesley Professional, 2005.

KISH, Leslie. Muestreo de encuestas, 3ª reimp, México, Trillas, 1982.

Pressman, Ingeniería del Software: Un enfoque práctico, McGraw Hill
1997.

Schwaber, K., Beedle, M., Agile Software Development, Prentice Hall,
2002.

Selman, D (2002) Java 3D programing Independent Publishers Group.

Sun Microsystems. Java 3D 1.3 API Specification Guide.
http://java.sun.com/products/javamedia/3D/forDevelopers/J3D13API/j3dguide/index.
html. June 2002.

Walsh & Gehringer, Prentice Hall, Aug 2001.

Zi-Mian Wang y Scott Going, Human Body Composition, Segunda
Edition, 1992.

Wilson, Leslie B, Robert George Clark. Comparative programming
languages, Addison-Wesley 2003.
159
Descargar