Documento de Arquitectura Arquitectura Global La estructura global del programa se basa en el patrón arquitectónico, MVC. Cómo se observa en la imagen. cmp Modelo de Componentes Modelo Controlador ofrece Vista Se optó por éste patrón, para tener la facilidad de intercambiar la presentación gráfica sin tener que realizar cambios fundamentales en la lógica del negocio. Además resulta importante mantener el diseño de la aplicación abierto, para desarrollos futuros, como por ejemplo un sistema que facilite ingresar datos a la base de datos. A continuación se explicará cada uno de los componentes, para explicar su funcionalidad detallada. El Modelo El modelo es el corazón de la aplicación él se encarga de realizar las consultas a la base de datos, y empacar los resultados de éstas, de tal forma que resulte sencillo construir las vistas. En futuras versiones del modelo se implementaran sistemas, para ingresar información a la base de datos. En la sección del Modelo, se explica con mayor detalle la arquitectura que se empleó para realizar éste elemento. El Controlador El controlador se encarga principalmente de proporcionar una interfaz, que permite acceder al Modelo y que garantiza que los datos de la vista estén siempre actualizados. En la versión actual de BiPalmas el controlador aún no realiza ninguna funcionalidad, debido a que la interfaz gráfica se limita a realizar operaciones que no requieren escribir datos a la base de datos. Igualmente si la interacción entre la vista y el modelo gana en complejidad, puede resultar más efectivo crear un controlador, que se encargue de manejar el flujo de datos entre éstos dos componentes. La vista Éste componente se encarga de desplegar la información en pantalla. En él se encuentra toda la lógica necesaria, para crear y desplegar los gráficos. En la versión actual, éste componente se alimenta de datos proporcionados directamente del modelo. Todas las labores de formatear, asignar colores y organizar la pantalla del programa principal se realizan en éste componente. Para entrar en detalle, Cada componente de la arquitectura del sistema se despliega de forma individual, con su respectiva información. Arquitectura del Modelo cmp Modelo Modelo Vista Modelo Control Vista Interfaz Vista Graficos Modelo DAOs Modelo Reportes La estructura del modelo, se compone de tres componentes. Cada uno de ellos cumple con una funcionalidad diferente. Modelo Control: Éste componente se encarga de comunicar la vista con el modelo, y presenta la interfaz por medio de la cual se puede acceder a los servicios que ofrece la base de datos. Modelo Reportes: En éste componente se definen los formatos de transferencia de datos. Con ayuda de éste se crean los informes en forma de objetos, que se pueden trasmitir a la vista, para que éta los despliegue. Modelo DAOs: Los DAOs son elementos que representan una conexión directa con la base de datos. Ellos se encargan de realizar las consultas, y ofrecer una interfaz para el programador, para acceder de forma genérica a los elementos persistentes. Arquitectura de la vista cmp Vista Vista Modelo Modelo Control Vista Interfaz Modelo Reportes Vista Graficos Vista Reporte Integral La vista tiene una relación estrecha con el modelo. Los componentes principales todos se encargan de presentar la información al usuario. Vista Gráficos: Éste componente es el encargado de transformar la información obtenida del modelo en forma de Reportes, en Gráficos visuales, que se pueden desplegar en pantalla. Vista Reporte Integral: Éste elemento tiene la funcionalidad de crear las operaciones necesarias, para permitir crear un reporte integral que contiene la información resumida en formato Pdf. Vista Interfaz: La interfaz, representa los elementos gráficos que se despliegan, y contiene todos los controles para manejar el programa principal. Arquitectura del Controlador El Controlador en la versión actual del software, no tiene todavía ninguna funcionalidad. Pero en futuros trabajos, es importante delegar a éste elemento todas las funciones de ingresar modificar y borrar datos de la base de datos. Metas de la arquitectura La arquitectura propuesta tenía un objetivo principal: Garantizar la funcionalidad máxima del programa, manteniendo la estructura y los componentes lo más simple posible. Debido a ésta circunstancia no se exponen en éste documento las vistas de procesos y tampoco de despliegue. Estas dos vistas no tienen lugar, porque la arquitectura propuesta, se limita a un programa que solo correrá en un equipo sobre una sola máquina virtual sin necesidad de ejecutar tareas en paralelo. La implementación de la arquitectura debe proporcionar al desarrollador una guía para mantener las fuentes del programa en sus respectivos paquetes y componentes. Pero los detalles de implementación no se tratan en éste documento. Esto se debe a que el público que lee éste informe sobre todo serán ingenieros, que buscan entender la organización y las tareas de cada modulo, detalles innecesarios sólo complicarían éste proceso y por lo tanto irían en contra de la meta de la arquitectura. Restricciones de la arquitectura La arquitectura propuesta se restringe a proporcionar la estructura de un sistema, que únicamente funciona en una sola máquina. Pero es importante entender, que el sistema de ningún modo puede ser visto como un sistema estático que no permite ampliaciones y mejoras. Por ejemplo se consideró la posibilidad de trasformar toda la vista de BiPalmas en una aplicación web. Algo que muy probablemente en el futuro se realizará. Por éstoe motivo se puede decir, que la arquitectura tiene la restricción, de que tiene que funcionar tanto para sistemas locales, como también debe permitir ampliar la aplicación a un sistema multiusuario en la web. Modelo de Datos El modelo de datos es el diseño de la base de datos. Muestra las relaciones de los datos, tal como fueron implementados. Para facilitar el acceso a los datos y para permitir crear los objetos DAO, se crearon vistas sobre los datos originales, que permitían acceder a la información de forma sencilla. El sistema de vistas que se creó se encuentra en la siguiente imagen.