• No se han encontrado resultados

Algoritmo de conteo 

CAPÍTULO 4   Diseño de la aplicación 

 

 

4.1 Introducción 

 

En el presente capítulo se desarrollará la explicación correspondiente a        la materialización del sistema propuesto. Se presentarán los detalles del        diseño e implementación de la aplicación. Además, se incluye la explicación de        cómo cooperan los componentes del sistema, como así también la interacción        con el usuario. 

 

La estructura del capítulo se presenta de la siguiente manera: en la        sección 4.2 se explica en detalle la arquitectura utilizada en el sistema,        componentes e interacción de los mismos. En la sección 4.3 se detalla la fase        de entrenamiento, explicando las interacciones involucradas en la predicción        mediante diagramas específicos. En la sección 4.4 se mostrarán los aspectos        relacionados a la etapa de cálculo. La sección 4.5 resume la estructura de datos        general de la información almacenada. La sección 4.6 nombra las tecnologías        utilizadas para la implementación. En la sección 4.7 se realiza una muestra de        la interfaz de la aplicación de conteo y, por último, en la sección 4.8 se muestra        el resumen del presente capítulo. 

 

.

 

4.2. Arquitectura general 

 

En la Figura 4.1 se muestra un diagrama general del sistema        desarrollado, mostrando las interacciones entre los componentes principales        que participan. Como se puede observar en la figura existe una separación       

lógica entre cliente y servidor, la cual indica el estilo arquitectónico       

client/server elegido para el sistema.   

 

Figura 4.1 - Diagrama general -   

Por un lado se pueden ver las aplicaciones que conforman el lado        cliente, estas pueden ser aplicaciones móviles o web. Provee una interfaz de        usuario, que permite a los pasajeros ver la posición de los colectivos en tiempo        real y consultar la cantidad de personas de cada uno de ellos, mediante        peticiones al servidor. 

 

La arquitectura elegida posee la característica de permitir que se        agreguen nuevos clientes de manera sencilla como así distintos tipos de        clientes, lo que brinda una ventaja en la escalabilidad. Además, permite la        centralización del control, es decir, los accesos, recursos e integridad de los       

datos son controlados por el servidor de forma que un programa cliente        defectuoso o no autorizado no pueda dañar el sistema [14]

 

Por otro lado, el servidor se encarga de realizar diferentes tareas. Una        de ellas es, como se ve en la figura, recibir los eventos de viajes externos que        realizan los pasajeros y almacenarlos en la base de datos. A su vez recibe las        peticiones de la aplicación cliente, para luego realizar el cálculo de la cantidad        de pasajeros de los colectivos correspondientes y enviar la respuesta al cliente.        Como último punto, realiza el cálculo de las predicciones de bajada        periódicamente analizando el historial de viajes de cada pasajero, las cuales        almacena en la base de datos. 

 

La Figura 4.2 ilustra un diagrama de despliegue/deployment        (estructural) para poder mostrar el despliegue físico de información generada        por el programa de software en los componentes de hardware . 3

 

 

Figura 4.2 - Diagrama de deployment -   

A continuación se explican brevemente los principales componentes        involucrados tanto en el cliente como en el servidor. En los siguientes puntos        del capítulo se explicará con mayor detalle los componentes del sistema para       

poder explicar de forma más específica la materialización de la aplicación, a        niveles de diseño e implementación.  

 

Cliente: 

 

Interfaz de Usuario:     Componente que permite la interacción del        usuario con la aplicación. De esta manera, el usuario puede hacer        peticiones para que luego este componente pueda plasmar la        información requerida en un mapa. 

 

Peticiones: Conjunto de clases que permiten la comunicación del        cliente con el servidor mediante peticiones.  

 

Servidor: 

 

Captura y procesamiento de eventos: Componente encargado              de capturar y procesar los viajes de los pasajeros de manera que        éstos puedan ser correspondidos con una determinada zona y        etiqueta. 

 

Almacenamiento de la información: Este componente se              encarga de almacenar en una base de datos los eventos de los        pasajeros ya procesados y las predicciones realizadas para cada        uno de ellos. 

 

Predicción: En este componente se encuentran el conjunto de        clases que permiten analizar el historial de viajes de los pasajeros        para luego poder predecir las bajadas de los colectivos. 

Cálculo de pasajeros:      Componente encargado de calcular el          número de personas dentro de cada colectivo circulante para de        esta manera poder enviarle una respuesta a la petición del        cliente. 

 

 

4.3. Fase de entrenamiento 

 

En la presente sección se desarrolla la etapa de entrenamiento que        engloba tanto la captura de los eventos de viajes externos producidos por los        pasajeros, como las predicciones de bajada para cada uno de ellos. 

 

4.3.1. Captura de la información 

 

Cada vez que un pasajero realiza un viaje de colectivo realiza el pago        mediante la tarjeta magnética, la cual permite almacenar los datos del viaje        mencionado.  En la Figura 4.3 se puede observar a través del diagrama        UseCaseMap (diagrama que muestra el flujo de interacción entre los        componentes involucrados) como es el flujo de ingreso de información de un        viaje específico. 

Figura 4.3 - UseCaseMap del ingreso de información ante un evento de viaje -   

Como se ve en la Figura 4.3, toda la información correspondiente a un        evento de viaje se debe procesar antes de su almacenamiento, es decir, el        componente “Captura y procesamiento de eventos” realiza lo mencionado                para que luego el componente         “Almacenamiento” guarde la información        procesada en la base de datos. A continuación, se detallará cómo se realiza el        procesamiento antes mencionado.

 

 

Posición y sentido de los colectivos (procesamiento de eventos