Página actual: doc/devel/B_architecture



Arquitectura de software AQUYNZA

AQUYNZA es un entorno de desarrollo, una plataforma de software que consta de 5 capas de librerías:
  • La capa aplicativa: que es elcódigo que desarrolla el programador usuario de las librerías AQUYNZA.
  • La capa "framework": es la superior de tres capas de librerías AQUYNZA. Provee un marco de desarrollo de aplicaciones GUI basadas en OpenGL, y provee una colección de visualizadores para entidades 3D.
  • La capa "base": es la capa media de librerías AQUYNZA. Provee un esquema de modelación y simulación basada en física y en teoría de sistemas de control.
  • La capa "toolkits": es la capa básica de librerías AQUYNZA. Provee múltiples facilidades básicas para el desarrollo de aplicaciones de realidad virtual, como tipos abstractos de datos, rutinas de modelaje geométrico y filtros importadores de varios formatos de archivo.
  • La capa "pkgs": es un conjunto de librerías que no hacen parte de AQUYNZA pero que son necesarias para su funcionamiento, como es el caso de la librería OpenGL.
La siguiente figura ilustra las librerías AQUYNZA, y su organización en su estructura de capas:
Figura 1:
ARQUITECTURA_DE_COMPONENTES

Cada librería contiene la implementación de una categoría de clases. Una categoría de clases es un conjunto de clases que están relacionadas entre sí. En ésta pagina encontrará la descripción de cada librería.

Los diagramas de clases UML que se incluyen en la documentación han sido generados mediante un proceso de ingeniería reversa utilizando la herramienta Rose C++ analizer de Rational.

CONVENCIONES

UML y patrones de diseño

AQUYNZA es un paquete de software que ha sido desarrollado usando la metodología orientada por objetos (O.O.). En la documentación se utiliza el estándard UML (i.e. sobretodo diagramas de clases), y se hace uso frecuente de los "patrones de diseño". Se recomienda revisar cualquier referencia de programación orientada por objetos y de notación UML antes de empezar a utilizar AQUYNZA.

Por otro lado, se recomienda tener en cuenta un texto de patrones de diseño. Los nombres usados en la actual documentación siguen los del libro

Gamma Erich, Helm Richard, Johnson Ralph, Vlissides John. "Design Patterns: Elements of
Reusable Object-Oriented Software", Addison-Wesley, 1994

Los patrones de software utilizados son usualmente demarcados con comentarios.

Simplificaciones notacionales

Los diagramas de clases presentados son arquitecturales (i.e. de diseño grueso), y omiten por claridad algunos detalles de la implementación, como en el caso de las agregaciones, que en su gran mayoría se implementan utilizando las clases paramétricas LISTA y ARREGLO. En el siguiente ejemplo se ilustra la notación simplificada de agregaciones: La clase APLICACION_SIMULATOR contiene una lista de objetos de clase UNIVERSO mediante el uso de la clase paramétrica LISTA, que es una lista encadenada de objetos NODITO. Nótese como el conjunto de 5 clases se expresa como una agregación simple (2 clases). Es importante tener en cuenta el uso de los prefijos "lista_" y "arreglo_".

NOTACION_ABREVIADA_DE_AGREGACIONES

Uso de los colores

En los diagramas más complejos se han agrupado las clases afines utilizando códigos de color (coloreando las clases). Tenga en cuenta que dichos colores solo se usan para agrupar clases relacionadas y no tiene ninguna relacion con los colores empleados en la figura 1.

En ocaciones se han identificado falencias en el diseño que no han sido corregidas. Se incluyen comentarios con fondo rojo para indicar puntos críticos del diseño que pueden o deben ser mejorados.

ÍNDICE DE LIBRERÍAS AQUYNZA

Haga click en una de las siguientes secciones para accesar las descripciones de los componentes AQUYNZA:
Última modificación: Enero 8 del 2001.

Este proyecto esta hospedado en: SourceForge.net Logo