Arquitectura de un modulo I/O para objetos...

16
Arquitectura de un modulo I/O para objetos 3D Andrés Harker Gutiérrez

Transcript of Arquitectura de un modulo I/O para objetos...

Page 1: Arquitectura de un modulo I/O para objetos 3Dpegasus.javeriana.edu.co/~CIS1130TK01/documentos/ANEXOS/SAD_2… · 1. Introducción El siguiente documento SAD describe las características

Arquitectura de un modulo I/O para objetos 3D

Andrés Harker Gutiérrez

Gutierrez

Page 2: Arquitectura de un modulo I/O para objetos 3Dpegasus.javeriana.edu.co/~CIS1130TK01/documentos/ANEXOS/SAD_2… · 1. Introducción El siguiente documento SAD describe las características

Tabla de contenido 1. Introducción ...................................................................................................................... 3

1.1. Propósito ................................................................................................................... 3

1.2. Alcance ...................................................................................................................... 3

1.3. Definiciones, Acrónimos y Abreviaciones ................................................................... 4

1.4. Referencias ................................................................................................................ 6

1.5. Resumen del Documento ........................................................................................... 6

2. Representación Arquitectónica ......................................................................................... 7

2.1. Diagrama de contexto arquitectónico ........................................................................ 7

2.2. Estilos Arquitectónicos............................................................................................... 8

2.2.1. forwarder receiver ............................................................................................. 8

2.2.2. Publicador suscriptor .......................................................................................... 8

2.3. Modelo Arquitectónico .............................................................................................. 9

3. Vista de escenarios .......................................................................................................... 11

4. Vista Lógica ..................................................................................................................... 11

5. Vista de Procesos ............................................................................................................ 12

6. Vista de Despliegue ......................................................................................................... 13

7. Vista de implementación ................................................................................................. 15

8. Vista de datos ................................................................................................................. 15

Page 3: Arquitectura de un modulo I/O para objetos 3Dpegasus.javeriana.edu.co/~CIS1130TK01/documentos/ANEXOS/SAD_2… · 1. Introducción El siguiente documento SAD describe las características

1. Introducción

El siguiente documento SAD describe las características más significativas de la

arquitectura de software del sistema para el trabajo de grado “Arquitectura de un

modulo I/O para objetos 3D”, centrándose en la definición de los estilos

arquitectónicos y los atributos de calidad que se tuvieron en cuenta para el diseño de

la arquitectura del sistema.

1.1. Propósito

Este documento ha sido elaborado para ofrecer una visión de alto nivel del sistema de

información “modulo I/O para objetos 3D” en cuanto a la arquitectura de Software

que enmarca su diseño y su posterior implementación. Haciendo uso del modelo 4+1

vistas para describir los elementos, relaciones y características fundamentales en la

arquitectura del sistema, se pretende facilitar el entendimiento de estos por parte de

los Stakeholders y hacer evidentes, decisiones de diseño que influyen en los atributos

de calidad del sistema a desarrollar.

1.2. Alcance

Teniendo en cuenta el propósito, definido anteriormente, y además recordando que la

arquitectura de software se encuentra enmarcada en un alto nivel de abstracción del

diseño del sistema, el alcance de este documento es:

¥ La descripción arquitectónica del “modulo I/O para objetos 3D”, elementos

internos que componen el sistema, así como los externos que se integran o

prestan servicios a él, y las diferentes relaciones entre ellos.

¥ Definición de aspectos relevantes de cada una de la vistas, consideraciones que

se tuvieron en cuenta para diseñar la arquitectura del “MODULO I/O PARA

OBJETOS 3D”.

¥ Destalles de la arquitectura de software que le permitan al grupo de desarrollo

iniciar con la implementación del sistema.

¥ Se hace uso de conceptos genéricos en las vistas, en cuanto a que no se detalla

aspectos relacionados con el lenguaje de programación o protocolos de

puntuales de implementación.

Page 4: Arquitectura de un modulo I/O para objetos 3Dpegasus.javeriana.edu.co/~CIS1130TK01/documentos/ANEXOS/SAD_2… · 1. Introducción El siguiente documento SAD describe las características

¥ Justificación de estilos tenidos en cuenta y características del sistema

priorizadas según requerimientos tanto funcionales como no funcionales,

haciendo énfasis en los últimos.

1.3. Definiciones, Acrónimos y Abreviaciones

LETRA DEFINICIÓN, ABREVIATURAS Y ACRÓNIMOS

A ¥

B ¥ Browser: Software especial que se ejecuta en una computadora conectada a

internet, mediante el cual los usuarios pueden ver páginas web. [5]

C ¥

D

¥ Desempeño: El grado en el que un sistema o componente realiza su función designada dentro de las restricciones de rapidez, precisión y uso de memoria.[4]

¥ DBMS: Sistema Manejador de Bases de Datos, ejemplos de estos son, oracle, postgres, mysql, sqlServer, entre otros.

E

¥ Enterprise Architect: herramienta de análisis y diseño intuitiva, flexible y poderosa para construir software robusto y mantenible. Desde la recolección de requerimientos, pasando por el análisis, modelado, implementación y pruebas hasta despliegue y mantenimiento, Enterprise Architect es una herramienta de modelado UML rápida, rica en funcionalidad, multiusuario, que conduce el éxito de su proyecto de software. [9]

¥ Escalabilidad: Propiedad de un sistema que le permite crecer en su número de usuarios de manera que el sistema los pueda soportar. [4]

F ¥

G ¥

H ¥

I ¥

J

¥ JEE: Java Enterprise Edition ¥ JPA: Java Persistence Api. ¥ JMS: Java Message Service. ¥ JDK: Java Develpment Kit. ¥ JRE: Java Runtime Enviroment.

K ¥

L ¥

M ¥

N ¥ .NET: El Microsoft .NET Framework, es un componente de software que

puede ser o es incluido en los sistemas operativos Microsoft Windows.

Page 5: Arquitectura de un modulo I/O para objetos 3Dpegasus.javeriana.edu.co/~CIS1130TK01/documentos/ANEXOS/SAD_2… · 1. Introducción El siguiente documento SAD describe las características

Provee soluciones pre-codificadas para requerimientos comunes de los programas y gestiona la ejecución de programas escritos específicamente para este Framework.[7]

O ¥

P ¥

Q ¥

R ¥ Requerimiento: Condición o capacidad necesaria por un usuario para

solucionar un problema o logar un objetivo. [4]

S

¥ Sistema de información: Sistema que administra la información de una organización, de manera que pueda ser utilizada por los Stakeholders para apoyar la toma de decisiones, cumplir las metas organizacionales y mejorar y administrar los procesos de negocio.[13]

¥ StakeHolder: Son las personas que tiene relación directa con el sistema, estos pueden ser (gerente, cliente, desarrolladores, diseñadores y demás equipo de trabajo).[5]

¥ Sistema distribuido: Unión de componentes de hardware y software localizados en un red de computadoras comunicados y coordinados para realizar tareas mediante paso de mensajes.[9]

¥ SAD: Documento de arquitectura de software. ¥ “MODULO I/O PARA OBJETOS 3D”: Sistema informático que corresponde al

software que manipulara el repositorio de objetos 3D. ¥ Servidor: computadora central en un sistema de red que provee servicios a

otras computadoras.[7] ¥ Servidor de aplicaciones: Sistema de software con características

especificas, el cual provee funcionalidades comunes a las aplicaciones empresariales, ejemplo de estos son GlassFish, JBOSS, WebLogic, Internet Information Server, entre otros.

T

¥ Tolerancia a fallos: Capacidad de un sistema o de un componente para continuar su funcionamiento normal a pesar de que ocurran fallos en el hardware. [9]

¥ Transparencia: Propiedad de un sistema distribuido para que el usuario lo vea como un solo sistema.[9]

U ¥ Usuario: Persona que va a utilizar el sistema. ¥ Usabilidad: facilidad con el que el usuario puede aprender a operar,

preparar entradas y entender las salidas de un sistema o componente. [4]

V

¥ VITRAL: Contenedor de aplicaciones para computación grafica, de la Pontificia Universidad Javeriana.

¥ VSDK: Capa de VITRAL encargada de brindar todas las funcionalidades de lógica de computación grafica.

W ¥

X ¥

Y ¥

Z ¥

Page 6: Arquitectura de un modulo I/O para objetos 3Dpegasus.javeriana.edu.co/~CIS1130TK01/documentos/ANEXOS/SAD_2… · 1. Introducción El siguiente documento SAD describe las características

1.4. Referencias

[1] CESAR JULIO BUSTACARA MEDINA, Material de Clase. Clase 2009. . Disponible

en:http://sophia.javeriana.edu.co/~cbustaca/Arquitectura%20Software/Proyectos/

Plantillas/1Vision/rup_vision.htm[Ultima Consulta: 20 de Septiembre de 2010].

[2] Kruchten Philippe. Architectural Blueprints - The “4 + 1” View Model of Software

Architecture, Rational Software Corporation. [Articulo en Internet]. Disponible en:

http://www.cs.ubc.ca/~gregor/teaching/papers/4+1view-architecture.pdf [Ultima

consulta: 24 de Septiembre de 2010].

[3] JULIO ERNESTO CARREÑO VARGAS, Material de Clase. Clase 2010-3. [Última

Consulta: 25 de Septiembre de 2010].

[4] Julián Rodrigo Tenjo, Adrián Otálora, Carolina Loaiza Carvajal. Documento de

Visión. Febrero 20 de 2010.

[5] KENDALL, K. Y KENDALL, J. Análisis y Diseño de Sistemas, Tercera Edición, Prentice

Hall, México, 1997 cap. 1

[6] Estándar ISO 9126. Disponible en:

http://www.issco.unige.ch/en/research/projects/ewg96/node14.html#SECTION00

311000000000000000 [Ultima Consulta: 30 de Agosto de 2010].

[7] Diccionario en línea. Disponible en: http://www.alegsa.com.ar/Dic [Ultima

Consulta: 24 de Septiembre de 2010].

[8] Diego Francisco Castillo Velázquez, Jairo Eduardo Ipial. Tienda Virtual de

Medicamentos. SAD. Febrero 20 de 2010.

[9] Manual de Usuario. Disponible en

http://www.sparxsystems.com/bin/EAUserGuide.pdf [Última fecha de consulta: 20

de Septiembre de 2010]

[10] Buschmann Frank, Meunier Regine, Rohnert hans, Sommerlad Peter, Stal

Michael. Pattern oriented software architecture, A system patterns. Volumen 1.

Wiley.2001

[11] AVILA, JAMIR. Estilos Arquitectónicos. Presentación de clase. [Última Consulta:

25 de Septiembre de 2010].

1.5. Resumen del Documento

Siguiendo el modelo de 4+1 vistas [2], la estructura de este documento se encuentra

organizada por las diferentes vistas de arquitectura del sistema en secciones, de la

siguiente manera:

Vista de Casos de Uso (Escenarios): Sección 4

Vista Lógica: Sección 5

Vista de Procesos: Sección 6

Vista Física: Sección 7

Page 7: Arquitectura de un modulo I/O para objetos 3Dpegasus.javeriana.edu.co/~CIS1130TK01/documentos/ANEXOS/SAD_2… · 1. Introducción El siguiente documento SAD describe las características

Vista de Implementación: Sección 8

La secciones 2 a la 4, se orientan a una descripción general de la arquitectura y a la

consideración de requerimientos.

Adicional a las vistas del modelo 4+1 views, se ofrece en la sección 9, una vista de

datos que plasma la organización de los datos en el sistema.

Todo este diseño basados en las investigaciones realizadas y en el documento de

especificación de requerimientos (SRS), en el cual figuran los casos de uso de la

aplicación, los requerimientos funcionales y no funcionales, los atributos de calidad

que se deben contemplar y finalmente el modelo de dominio que rige la aplicación.

2. Representación Arquitectónica

2.1. Diagrama de contexto arquitectónico

El siguiente diagrama representa el contexto del sistema “MODULO I/O PARA OBJETOS

3D”, en él se indica la interacción de la aplicación tanto con los sistemas del mismo

contexto como VITRAL, como los externos a el:

Usuarios

Sistemas de VITRAL

Sistemas Externos a VITRAL

Del diagrama es posible deducir que es necesario tener en cuenta en el sistema:

Fuerte interacción con el usuario (MVC).

Integración con varios sistemas externos.

Page 8: Arquitectura de un modulo I/O para objetos 3Dpegasus.javeriana.edu.co/~CIS1130TK01/documentos/ANEXOS/SAD_2… · 1. Introducción El siguiente documento SAD describe las características

El uso de protocolos de comunicación con las aplicaciones internas que ya

están definidos (Módulo de comunicaciones tipo Broker o CDS).

2.2. Estilos Arquitectónicos

Para el diseño de la arquitectura del sistema “MODULO I/O PARA OBJETOS 3D” se han

considerado 2 estilos arquitectónicos principales, uno general: Componentes

Independientes de forwarder-receiver para que el servidor conozca al cliente y pueda

enviar notificaciones de las búsquedas que se encuentre realizando para él,

internamente en el modulo se tiene un patrón de publicador-suscriptor para poder

realizar de forma asincrónica las búsquedas y las inserciones en el repositorio de

objetos 3D.

2.2.1. forwarder receiver

forwarder-receiver es un modelo de comunicación en el cual las dos partes del sistema se conocen en términos de comunicación y en términos de poder enviar mensajes el uno al otro. Este patrón permite al sistema “MODULO I/O PARA OBJETOS 3D” conocer a sus clientes y comunicarse con ellos conforme vaya teniendo resultados de sus búsquedas distribuidas, de esta manera el usuario al hacer una solicitud, puede simplemente confirmar el inicio de la tarea y romper su comunicación y el sistema ira avisando por medio de su conexión los resultados.

2.2.2. Publicador suscriptor

Este estilo arquitectónico brinda a la arquitectura la posibilidad de realizar tareas de

forma asincrónica, valiéndose del tópico de publicación para poder dejar los mensajes

al componente interesado y que este realice el respectivo procedimiento.

Page 9: Arquitectura de un modulo I/O para objetos 3Dpegasus.javeriana.edu.co/~CIS1130TK01/documentos/ANEXOS/SAD_2… · 1. Introducción El siguiente documento SAD describe las características

2.3. Modelo Arquitectónico

La arquitectura de software de del sistema “MODULO I/O PARA OBJETOS 3D”, se

define mediante el modelo 4+1 vistas [modelo 4+1]. En este modelo se tendrán en

cuenta las siguientes vistas:

Page 10: Arquitectura de un modulo I/O para objetos 3Dpegasus.javeriana.edu.co/~CIS1130TK01/documentos/ANEXOS/SAD_2… · 1. Introducción El siguiente documento SAD describe las características

Ilustración 1: Vistas de la Arquitectura

Vista de escenarios

•Describe el comportamiento del sistema SSF y como es visto por sus usuarios y otros sistemas externos. que interactúan él.

•Se enfoca en las funciones mas importantes del sistema y los actores relacionados.

•Esta vista se modelara mediante un diagrama de casos de uso UML 2.0.

•los escenarios representativos se representaran en diagramas de secuencia UML 2.0.

Vista Lógica

•Esta vista muestra los servicios que el sistema debe brindar a los usuarios.

•Para su realización se basa en los requerimientos funcionales.

•Los elementos que componen esta vista son los subsistemas y paquetes.

•Muestra los sistemas que interactuan con el sistema SSF.

•Esta vista se modelara mediante un modelo del dominio UML 2.0.

Vista de procesos

•Describe los diferentes procesos que tiene el sistea SSF y como están relacionados.

•Describe las operaciones que ejecutan los elementos identificados en la vista logica teniendo en cuenta la concurrencia, distribución, la integridad del sistema y la tolerancia a fallos.

•Describe los procesos que maneja el sistema y mediante que protocolos y/o mecanismos se comunican.

•Esta vista se modela mediante un diagrama de actividad UML 2.0.

Vista de Despliegue

•Tiene en cuenta los requerimientos no funcionales

•Los elementos que la conforman son nodos, redes, componentes.

•Describe la topología del sistema, mostrando sus elementos y la forma de comunicación.

•Esta vista se modela mediante un diagrama de componentes UML 2.0.

Vista de implementacion

•Estaá dirigida hacia los desarrolladores del grupo.

•Describe la organización modular del software en el entorno de desarrollo.

•Esta vista se modela mediante un diagrama de componentes UML 2.0.

Vista de datos

•Esta vista es opcional

•Se basa en el modelo entidad

•Describe el esquema en el cual se organizan los datos del sistema.

•Esta vista se modela mediante un modelo entidad relación.

Page 11: Arquitectura de un modulo I/O para objetos 3Dpegasus.javeriana.edu.co/~CIS1130TK01/documentos/ANEXOS/SAD_2… · 1. Introducción El siguiente documento SAD describe las características

3. Vista de escenarios

Para información acerca de esta vista por favor revisar el documento en los anexos del

SRS:

Modelo de casos de uso EA_2011_11_26.rtf

4. Vista Lógica

Page 12: Arquitectura de un modulo I/O para objetos 3Dpegasus.javeriana.edu.co/~CIS1130TK01/documentos/ANEXOS/SAD_2… · 1. Introducción El siguiente documento SAD describe las características

Para información acerca de esta vista por favor revisar el documento en los anexos del

SAD:

Vista logica de la arquitectura EA_2011_11_27.rtf

5. Vista de Procesos

Page 13: Arquitectura de un modulo I/O para objetos 3Dpegasus.javeriana.edu.co/~CIS1130TK01/documentos/ANEXOS/SAD_2… · 1. Introducción El siguiente documento SAD describe las características

Para información acerca de esta vista por favor revisar el documento en los anexos del

SAD:

Vista de procesosEA_2011_11_27.rtf

6. Vista de Despliegue

Page 14: Arquitectura de un modulo I/O para objetos 3Dpegasus.javeriana.edu.co/~CIS1130TK01/documentos/ANEXOS/SAD_2… · 1. Introducción El siguiente documento SAD describe las características

deployment v ista de despliegue

deployment v ista de despliegue - procesos

Page 15: Arquitectura de un modulo I/O para objetos 3Dpegasus.javeriana.edu.co/~CIS1130TK01/documentos/ANEXOS/SAD_2… · 1. Introducción El siguiente documento SAD describe las características

Para información acerca de esta vista por favor revisar el documento en los anexos del

SAD:

Vista de despliegue EA_2011_11_27.rtf

7. Vista de implementación

Para información acerca de esta vista por favor revisar el documento en los anexos del

SAD:

Vista de implementación EA_2011_11_28.rtf

8. Vista de datos

class Data Model

Objeto3D

«column»

*PK ID_OBJETO_3D: decimal(20,1)

* EXISTE: boolean

FK FK_ID_ESCENA: decimal(20,1)

«FK»

+ FK_Objeto3D_Escena(decimal)

«PK»

+ PK_Objeto3D(integer)

Cache_Objeto_2D

«column»

*pfK FK_ID_CONSULTA: decimal(20,1)

*pfK FK_ID_OBJETO_2D: decimal(20,1)

«FK»

+ FK_Cache_Objeto_2D_Cache_consulta(decimal)

+ FK_Cache_Objeto_2D_Objeto2D(decimal)

«PK»

+ PK_Cache_Objeto_2D(integer, integer)

Metamodelo3D

«column»

*pfK FK_ID_OBJETO_3D: decimal(20,1)

*pfK FK_ID_METADATA_3D: decimal(20,1)

«FK»

+ FK_Metamodelo3D_Metadata3D(decimal)

+ FK_Metamodelo3D_Objeto3D(decimal)

«PK»

+ PK_Metamodelo3D(integer, integer)

Metadata3D

«column»

*PK ID_METADATA_3D: decimal(20,1)

* DESCRIPCION: varchar(250)

«PK»

+ PK_Metadata3D(integer)

Caracteristica

«column»

*PK ID_CARACTERISTICA: decimal(20,1)

* DESCRIPCION: varchar(250)

* NOMBRE: varchar(250)

«PK»

+ PK_Caracteristica(integer)

CaracteristicaObjeto3D

«column»

*FK FK_ID_CARACTERISTICA: decimal(20,1)

*FK FK_ID_OBJETO_3D: decimal(20,1)

*PK ID_CARACTERISTICA_OBJETO: decimal(20,1)

«FK»

+ FK_CaracteristicaObjeto3D_Caracteristica(decimal)

+ FK_CaracteristicaObjeto3D_Objeto3D(decimal)

«PK»

+ PK_CaracteristicaObjeto3D(integer)

VectorCaracteristico

«column»

*PK ID_VECTOR: decimal(20,1)

*FK FK_ID_CARACTERISTICA_OBJETO: decimal(20,1)

* INDICE: decimal(20,1)

«FK»

+ FK_VectorCaracteristico_CaracteristicaObjeto3D(decimal)

«PK»

+ PK_VectorCaracteristico(integer)

Valor

«column»

*PK ID_VALOR: decimal(20,1)

* VALOR: real

* INDICE: decimal(20,1)

*FK FK_ID_VECTOR: decimal(20,1)

«FK»

+ FK_Valor_VectorCaracteristico(decimal)

«PK»

+ PK_Valor(integer)

Objeto2D

«column»

*PK ID_OBJETO_2D: decimal(20,1)

* ARCHIVO_ASOCIADO: bytea

* EXISTE: decimal(20,1)

*FK FK_ID_OBJETO_3D: decimal(20,1)

«FK»

+ FK_Objeto2D_Objeto3D(decimal)

«PK»

+ PK_Objeto2D(integer)

Persistencia_GrupoObjetos

«column»

*PK ID_GRUPO_DE_OBJETOS_3D: decimal(20,1)

* DESCRIPCION: varchar(250)

«PK»

+ PK_GrupoObjetos(integer)

Persistencia_GrupoDeObjeto

«column»

*pfK FK_ID_OBJETO_3D: decimal(20,1)

*pfK FK_ID_GRUPO_DE_OBJETO_3D: decimal(20,1)

«FK»

+ FK_Persistencia_GrupoDeObjeto_Objeto3D(decimal)

+ FK_Persistencia_GrupoDeObjeto_Persistencia_GrupoObjetos(decimal)

«PK»

+ PK_GrupoDeObjeto(integer, integer)

Persistencia_Limite

«column»

*pfK FK_ID_GRUPO_DE_OBJETOS_3D: decimal(8,2)

*pfK FK_ID_POSICION_DEL_LIMITE: decimal(20,1)

* LIMITE_INFERIOR: real

* LIMITE_SUPERIOR: real

«FK»

+ FK_Persistencia_Limite_Persistencia_GrupoObjetos(decimal)

+ FK_Persistencia_Limite_Persistencia_PosicionLimite(decimal)

«PK»

+ PK_Limite(integer, integer)

Persistencia_Correlacion

«column»

*PK ID_CORRELACION: decimal(20,1)

DESCRIPCION: varchar(250)

«PK»

+ PK_Correlacion(integer)

Persistencia_Correlaciones

«column»

*pfK FK_ID_CORRELACION: decimal(20,1)

*pfK FK_ID_GRUPO_DE_OBJETOS_3D: decimal(20,1)

«FK»

+ FK_Persistencia_Correlaciones_Persistencia_Correlacion(decimal)

+ FK_Persistencia_Correlaciones_Persistencia_GrupoObjetos(decimal)

«PK»

+ PK_Correlaciones(integer, integer)

Escena

«column»

*PK ID_ESCENA: decimal(20,1)

* NOMBRE: varchar(250)

* ARCHIVO_ESCENA: bytea

«PK»

+ PK_Escena(integer)

Metamodelo2D

«column»

*FK FK_ID_OBJETO_2D: decimal(20,1)

*FK FK_OBJETO_2D: decimal(20,1)

*pfK FK_ID_METADATA_2D: decimal(20,1)

«FK»

+ FK_Metamodelo2D_Metadata2D(decimal)

+ FK_Metamodelo2D_Objeto2D(decimal)

+ FK_Metamodelo2D_Objeto2D_independiente(decimal)

«PK»

+ PK_Metamodelo2D(integer)

Metadata2D

«column»

*PK ID_METADATA_2D: decimal(20,1)

* DESCRIPCION: varchar(250)

«PK»

+ PK_Metadata2D(integer)

CaracteristicaObjeto2D

«column»

FK FK_ID_OBJETO_2D_3D: decimal(20,1)

FK FK_ID_OBJETO_2D: decimal(20,1)

*FK FK_ID_CARACTERISTICA_2D: decimal(20,1)

*PK ID_CARACTERISTICA_OBJETO_2D: decimal(20,1)

«FK»

+ FK_CaracteristicaObjeto2D_Caracteristica2D(decimal)

+ FK_CaracteristicaObjeto2D_Objeto2D(decimal)

+ FK_CaracteristicaObjeto2D_Objeto2D_independiente(decimal)

«PK»

+ PK_CaracteristicaObjeto2D(integer)

Valor2D

«column»

*PK ID_VALOR_2D: decimal(20,1)

*FK FK_ID_VECTOR_2D: decimal(20,1)

* INDICE: decimal(20,1)

* VALOR: real

«FK»

+ FK_Valor2D_VectorCaracteristico2D(decimal)

«PK»

+ PK_Valor2D(integer)

VectorCaracteristico2D

«column»

*PK ID_VECTOR: decimal(20,1)

*FK FK_ID_CARACTERISTICA_OBJETO_2D: decimal(20,1)

* INDICE: decimal(20,1)

FK_ID_VECTOR_CARACTERISTICO: decimal(20,1)

«FK»

+ FK_VectorCaracteristico2D_CaracteristicaObjeto2D(decimal)

«PK»

+ PK_VectorCaracteristico2D(integer)

Caracteristica2D

«column»

*PK ID_CARACTERISTICA: decimal(20,1)

* DESCRIPCION: varchar(250)

* NOMBRE: varchar(250)

«PK»

+ PK_Caracteristica2D(integer)

Persistencia_GrupoDeObjeto2D

«column»

*FK FK_ID_OBJETO_2D: decimal(20,1)

*FK FK_ID_GRUPO_DE_OBJETOS_2D: decimal(20,1)

*FK FK_OBJETO_2D: decimal(20,1)

*PK ID: decimal(20,1)

«FK»

+ FK_Persistencia_GrupoDeObjeto2D_Objeto2D(decimal)

+ FK_Persistencia_GrupoDeObjeto2D_Objeto2D_independiente(decimal)

+ FK_Persistencia_GrupoDeObjeto2D_Persistencia_GrupoObjetos2D(decimal)

«PK»

+ PK_Persistencia_GrupoDeObjeto2D(decimal)

Persistencia_GrupoObjetos2D

«column»

*PK ID_GRUPO_DE_OBJETOS_3D: decimal(20,1)

* DESCRIPCION: varchar(250)

«PK»

+ PK_GrupoObjetos2D(integer)

Persistencia_Correlaciones2D

«column»

*pfK FK_ID_CORRELACION_2D: decimal(20,1)

*pfK FK_ID_GRUPO_DE_OBJETOS_2D: decimal(20,1)

«FK»

+ FK_Persistencia_Correlaciones2D_Persistencia_Correlacion2D(decimal)

+ FK_Persistencia_Correlaciones2D_Persistencia_GrupoObjetos2D(decimal)

«PK»

+ PK_Correlaciones2D(integer, integer)

Persistencia_Limite2D

«column»

*pfK FK_ID_GRUPO_DE_OBJETOS_2D: decimal(20,1)

* LIMITE_INFERIOR: real

* LIMITE_SUPERIOR: real

«FK»

+ FK_Persistencia_Limite2D_Persistencia_GrupoObjetos2D(decimal)

«PK»

+ PK_Limite2D(integer)

Persistencia_Correlacion2D

«column»

*PK ID_CORRELACION_2D: decimal(20,1)

* DESCRIPCION: varchar(250)

«PK»

+ PK_Correlacion2D(integer)

Persistencia_GrupoLogicoObjeto

«column»

*pfK FK_ID_GRUPO_LOGICO: decimal(20,1)

*pfK FK_ID_MODELO_3D: decimal(20,1)

«FK»

+ FK_Persistencia_GrupoLogicoObjeto_Objeto3D(decimal)

+ FK_Persistencia_GrupoLogicoObjeto_Persistencia_GrupoLogico(decimal)

«PK»

+ PK_GrupoLogicoObjeto(integer, integer)

Persistencia_GrupoLogico

«column»

*PK ID_GRUPO_LOGICO: decimal(20,1)

NOMBRE: varchar(250)

«PK»

+ PK_GrupoLogico(integer)

Persistencia_PosicionLimite

«column»

*PK ID_POSICION_DEL_LIMITE: decimal(20,1)

DESCRIPCION: varchar(250)

«PK»

+ PK_PosicionLimite(integer)

Objeto2D_independiente

«column»

*PK ID_OBJETO_2D: decimal(20,1)

* EXISTE: boolean

«PK»

+ PK_Objeto2D_independiente(integer)

Las tablas con prefijo cache,

unicamente existen en la base de datos

de cache

Y las que tienen prefijo persistencia,

unicamente existen en la base de datos

del repositorio.

Las demas tablas sin prefijo, existen en

ambas bases de datos.

Cache_consulta

«column»

*PK ID_CONSULTA: decimal(20,1)

*FK FK_ID_USUARIO: decimal(20,1)

«FK»

+ FK_Cache_consulta_Cache_usuario_en_session(decimal)

«PK»

+ PK_Cache_consulta(integer)

Cache_usuario_en_session

«column»

*PK ID_USUARIO: decimal(20,1)

«PK»

+ PK_Cache_usuario_en_session(integer)

Cache_objeto_3D

«column»

*pfK FK_ID_CONSULTA: decimal(20,1)

*pfK FK_ID_OBJETO_3D: decimal(20,1)

«FK»

+ FK_Cache_objeto_3D_Cache_consulta(decimal)

+ FK_Cache_objeto_3D_Objeto3D(decimal)

«PK»

+ PK_Cache_objeto_3D(integer, integer)

Archiv oObjeto3D

«column»

* archivo: bytea

*PK NOMBRE_DE_ARCHIVO: varchar(50)

*FK FK_OBJETO_3D: decimal(20,1)

«FK»

+ FK_ArchivoObjeto3D_Objeto3D(decimal)

«PK»

+ PK_ArchivoObjeto3D(varchar)

«unique»

+ UQ_ArchivoObjeto3D_FK_OBJETO_3D(decimal)

Archiv oObjeto2D

«column»

*PK ID: decimal(20,1)

* NOMBRE_DE_ARCHIVO: varchar(50)

* ARCHIVO: bytea

*FK FK_OBJETO_2D: decimal(20,1)

«FK»

+ FK_ArchivoObjeto2D_Objeto2D_independiente(decimal)

«PK»

+ PK_ArchivoObjeto2D(decimal)

«unique»

+ UQ_ArchivoObjeto2D_FK_OBJETO_2D(decimal)

Archiv oAnexoParaObjeto3D

«column»

*PK id: integer

* nombreDeArchivo: varchar(50)

* archivo: bytea

*FK fk_archivo_objeto_3d: varchar(50)

«FK»

+ FK_ArchivoAnexoParaObjeto3D_ArchivoObjeto3D(varchar)

«PK»

+ PK_ArchivoAnexoParaObjeto3D(integer)

+FK_Objeto2D_Objeto3D

0..*

(FK_ID_OBJETO_3D

= ID_OBJETO_3D)«FK»

+PK_Objeto3D

1

+FK_Metamodelo2D_Objeto2D_independiente

0..*

(FK_ID_OBJETO_2D

= ID_OBJETO_2D)«FK»

+PK_Objeto2D_independiente

1

+FK_Metamodelo2D_Metadata2D 0..*

(FK_ID_METADATA_2D

= ID_METADATA_2D)

«FK»

+PK_Metadata2D

1

+FK_Metamodelo2D_Objeto2D

0..*

(FK_OBJETO_2D =

ID_OBJETO_2D)«FK»

+PK_Objeto2D

1

+FK_Persistencia_Correlaciones_Persistencia_Corr... 0..*

(FK_ID_CORRELACION =

ID_CORRELACION) «FK»

+PK_Correlacion 1

+FK_Persistencia_Correlaciones_Persistencia_Grup...

0..*

(FK_ID_GRUPO_DE_OBJETOS_3D

= ID_GRUPO_DE_OBJETOS_3D)«FK»

+PK_GrupoObjetos

1

+FK_Persistencia_Limite_Persistencia_GrupoObjetos

0..*

(FK_ID_GRUPO_DE_OBJETOS_3D

= ID_GRUPO_DE_OBJETOS_3D)«FK»

+PK_GrupoObjetos 1

+FK_Persistencia_Limite_Persistencia_PosicionLimite

0..*

(FK_ID_POSICION_DEL_LIMITE

= ID_POSICION_DEL_LIMITE)«FK»

+PK_PosicionLimite 1

+FK_ArchivoObjeto3D_Objeto3D

0..*

(FK_OBJETO_3D =

ID_OBJETO_3D)«FK»

+PK_Objeto3D 1

+FK_Persistencia_GrupoDeObjeto_Objeto3D 1..*

(FK_ID_OBJETO_3D

= ID_OBJETO_3D)«FK»

+PK_Objeto3D

1

+FK_CaracteristicaObjeto2D_Objeto2D_independiente

0..*

(FK_ID_OBJETO_2D

= ID_OBJETO_2D)«FK»

+PK_Objeto2D_independiente 1

+FK_Valor_VectorCaracteristico

1..*

(FK_ID_VECTOR

= ID_VECTOR)«FK»

+PK_VectorCaracteristico

1

+FK_VectorCaracteristico_CaracteristicaObjeto3D 1..*

(FK_ID_CARACTERISTICA_OBJETO

= ID_CARACTERISTICA_OBJETO)«FK»

+PK_CaracteristicaObjeto3D 1

+FK_CaracteristicaObjeto3D_Caracteristica

1..*

(FK_ID_CARACTERISTICA

= ID_CARACTERISTICA)«FK»

+PK_Caracteristica

1

+FK_CaracteristicaObjeto3D_Objeto3D

1..*

(FK_ID_OBJETO_3D

= ID_OBJETO_3D)«FK»

+PK_Objeto3D

1

+FK_Metamodelo3D_Metadata3D 0..*

(FK_ID_METADATA_3D

= ID_METADATA_3D)«FK»

+PK_Metadata3D 1

+FK_Metamodelo3D_Objeto3D

0..*

(FK_ID_OBJETO_3D

= ID_OBJETO_3D)«FK»

+PK_Objeto3D

1

+FK_Objeto3D_Escena

1..*

(FK_ID_ESCENA =

ID_ESCENA) «FK»

+PK_Escena

1

+FK_Persistencia_GrupoDeObjeto_Persistencia_Grup...

0..*

(FK_ID_GRUPO_DE_OBJETO_3D

= ID_GRUPO_DE_OBJETOS_3D)«FK»

+PK_GrupoObjetos

1

+FK_Persistencia_Correlaciones2D_Persistencia_Co... 1..*

(FK_ID_CORRELACION_2D =

ID_CORRELACION_2D) «FK»

+PK_Correlacion2D 1

+FK_ArchivoObjeto2D_Objeto2D_independiente

0..*(FK_OBJETO_2D =

ID_OBJETO_2D)«FK»+PK_Objeto2D_independiente

1

+FK_Cache_Objeto_2D_Cache_consulta 0..*

(FK_ID_CONSULTA

= ID_CONSULTA)«FK»

+PK_Cache_consulta 1

+FK_Cache_Objeto_2D_Objeto2D

0..*

(FK_ID_OBJETO_2D

= ID_OBJETO_2D)«FK»

+PK_Objeto2D_independiente

1

+FK_Cache_objeto_3D_Objeto3D

0..*

(FK_ID_OBJETO_3D

= ID_OBJETO_3D)«FK»

+PK_Objeto3D 1

+FK_Cache_objeto_3D_Cache_consulta

0..*

(FK_ID_CONSULTA

= ID_CONSULTA)«FK»

+PK_Cache_consulta 1

+FK_Cache_consulta_Cache_usuario_en_session

1..*

(FK_ID_USUARIO =

ID_USUARIO) «FK»

+PK_Cache_usuario_en_session 1

+FK_Persistencia_GrupoLogicoObjeto_Persistencia_... 0..*

(FK_ID_GRUPO_LOGICO

= ID_GRUPO_LOGICO)«FK»

+PK_GrupoLogico 1

+FK_CaracteristicaObjeto2D_Objeto2D 1..*

(FK_ID_OBJETO_2D_3D

= ID_OBJETO_2D) «FK»

+PK_Objeto2D 1

+FK_Persistencia_Limite2D_Persistencia_GrupoObje... 0..*

(FK_ID_GRUPO_DE_OBJETOS_2D

= ID_GRUPO_DE_OBJETOS_3D)«FK»

+PK_GrupoObjetos2D 1

+FK_CaracteristicaObjeto2D_Caracteristica2D

0..*

(FK_ID_CARACTERISTICA_2D

= ID_CARACTERISTICA) «FK»

+PK_Caracteristica2D 1

+FK_Persistencia_Correlaciones2D_Persistencia_Gr...

0..*

(FK_ID_GRUPO_DE_OBJETOS_2D

= ID_GRUPO_DE_OBJETOS_3D)«FK»

+PK_GrupoObjetos2D

1

+FK_Persistencia_GrupoDeObjeto2D_Persistencia_Gr... 1..*

(FK_ID_GRUPO_DE_OBJETOS_2D

= ID_GRUPO_DE_OBJETOS_3D)«FK»

+PK_GrupoObjetos2D 1

+FK_Persistencia_GrupoDeObjeto2D_Objeto2D_indepe...

1

(FK_ID_OBJETO_2D

= ID_OBJETO_2D)«FK»

+PK_Objeto2D_independiente 1

+FK_Persistencia_GrupoDeObjeto2D_Objeto2D

1

(FK_OBJETO_2D =

ID_OBJETO_2D)

«FK»

+PK_Objeto2D

1

+FK_VectorCaracteristico2D_VectorCaracteristico

0..*

«FK»

+PK_VectorCaracteristico 1

+FK_VectorCaracteristico2D_CaracteristicaObjeto2D 1..*

(FK_ID_CARACTERISTICA_OBJETO_2D

= ID_CARACTERISTICA_OBJETO_2D)«FK»

+PK_CaracteristicaObjeto2D 1

+FK_Valor2D_VectorCaracteristico2D 1..*

(FK_ID_VECTOR_2D =

ID_VECTOR) «FK»

+PK_VectorCaracteristico2D 1

+FK_ArchivoAnexoParaObjeto3D_ArchivoObjeto3D

0..*

(fk_archivo_objeto_3d =

NOMBRE_DE_ARCHIVO)«FK»

+PK_ArchivoObjeto3D 1

+FK_Persistencia_GrupoLogicoObjeto_Objeto3D

0..*

(FK_ID_MODELO_3D =

ID_OBJETO_3D) «FK»

+PK_Objeto3D

1

Page 16: Arquitectura de un modulo I/O para objetos 3Dpegasus.javeriana.edu.co/~CIS1130TK01/documentos/ANEXOS/SAD_2… · 1. Introducción El siguiente documento SAD describe las características

Para información acerca de esta vista por favor revisar el documento en los anexos del

SAD:

Vista de datos EA_2011_11_28.rtf