UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE INGENIERÍA CIENCIAS FÍSICAS Y MATEMÁTICA CARRERA DE INGENIERÍA INFORMÁTICA ANÁLISIS, DISEÑO Y DESARROLLO DE UNA APLICACIÓN MÓVIL PARA ENCONTRAR UNA PLAZA DE APARCAMIENTO A TRAVÉS DE UN DISPOSITIVO MÓVIL CON GPS Y UN ENTORNO WEB PARA LA ADMINISTRACIÓN DEL PARQUEADERO , HACIENDO USO DE TECNOLOGÍAS Y MARCOS DE DESARROLLO DE SOFTWARE LIBRE. TRABAJO DE GRADUACIÓN PREVIO LA OBTENCIÓN DEL TÍTULO DE INGENIERO INFORMÁTICO AUTOR: TOSCANO MORENO CARLOS ALBERTO TUTOR: ING. FREDDY EDUARDO SUÁREZ CRUZ QUITO - ECUADOR 2015 DEDICATORIA Esta tesis se la dedico a mi Dios quién supo guiarme por el buen camino, darme fuerzas para seguir adelante y no desmayar en los problemas que se presentaban, enseñándome a encarar las adversidades sin perder nunca la dignidad ni desfallecer en el intento. Para mi Mamita Pía por su apoyo, esfuerzo, consejos, comprensión, amor, ayuda en los momentos difíciles, por su valentía de migrar para ayudarme con los recursos necesarios para estudiar. Y me han dado todo lo que soy como persona, mis valores, mis principios, mi carácter, mi empeño, mi perseverancia, mi coraje para conseguir mis objetivos . ii Kalin. TM AGRADECIMIENTO Por todas tus bendiciones y por las alegrías en mi vida te agradezco Señor. Ya que me has dado la calma y la sabiduría para tener firmeza en lo que siempre me he propuesto. Al amor de mi vida, mamita Pía, a ti mi mamita preciosa por aconsejarme y mostrarme el mejor camino a seguir, por inculcarme buenos valores, pensamientos de siempre superarme, por tu esfuerzo y valentía para sacarme adelante, gracias por tu apoyo y amor incondicional. A mi papito Chulo que siempre me inculco el hecho de ser cada día mejor y luchar fuerte para alcanzarlo. A mi hermana Patty, que más que hermana ha sido como una madre apoyándome y dándome un “Si puedes hermano si tú triunfas yo triunfo”. A mis hermanos Alex, Diego y Byron por alentarme y brindarme su cariño y su buen humor. A mi Gabita, mi amor bello gracias por tu apoyo incondicional, por el amor, paciencia, por tu alegría y por darme aliento cuando sentía desfallecer. Kalin. TM iii AUTORIZACIÓN DE LA AUTORÍA INTELECTUAL Yo, Toscano Moreno Carlos Alberto en calidad de autor del trabajo de tesis realizada sobre ANÁLISIS, DISEÑO Y DESARROLLO DE UNA APLICACIÓN MÓVIL PARA ENCONTRAR UNA PLAZA DE APARCAMIENTO A TRAVÉS DE UN DISPOSITIVO MÓVIL CON GPS Y UN ENTORNO WEB PARA LA ADMINISTRACIÓN DEL PARQUEADERO , HACIENDO USO DE TECNOLOGÍAS Y MARCOS DE DESARROLLO DE SOFTWARE LIBRE, por la presente autorizo a la UNIVERSIDAD CENTRAL DEL ECUADOR, hacer uso de todos los contenidos que me pertenecen o de parte de los que contiene esta obra, con fines estrictamente académicos o de investigación. Los derechos que como autor me corresponden, con excepción de la presente autorización, seguirán vigentes a mi favor, de conformidad con lo establecido en los artículos 5, 6, 8,19 y demás pertinentes de la Ley de Propiedad Intelectual y su Reglamento. Quito, 24 días del mes de julio de 2015 _________________ TOSCANO MORENO CARLOS ALBERTO C.C. 1716061096 iv CERTIFICACIÓN TUTOR v vi CALIFICACIÓN TRIBUNAL vii CONTENIDO DEDICATORIA II AGRADECIMIENTO III AUTORIZACIÓN DE LA AUTORÍA INTELECTUAL IV CERTIFICACIÓN TUTOR V CALIFICACIÓN TRIBUNAL VII CONTENIDO VIII LISTA DE FIGURAS XII LISTA DE TABLAS XIV RESUMEN XVI ABSTRACT XVII CERTIFICADO XVIII CREDENCIALES XIX CAPÍTULO 1 -2- 1 PRESENTACIÓN DEL PROBLEMA -2- 1.1 Planteamiento del Problema -2- 1.2 Aplicación informática para resolver el problema planteado. -2- 1.3 INTERROGANTES DE LA INVESTIGACIÓN -4- 1.4 OBJETIVOS -4- 1.4.1 General. -4- 1.4.2 Específicos. -5- 1.5 ALCANCE -5- 1.6 JUSTIFICACIÓN -7- viii CAPÍTULO 2 -9- 2 MARCO TEÓRICO -9- 2.1 Antecedentes 2.2 Aplicaciones Móviles -9- 10 - 2.2.1 Tipos de Aplicaciones para Dispositivos Móviles - 10 - 2.2.2 Sistemas Operativos para Dispositivos Móviles - 12 - 2.2.3 Plataformas de Desarrollo para Dispositivos Móviles - 17 - 2.2.4 Tipos de Dispositivos Móviles - 18 - 2.2.5 Categorías de dispositivos móviles - 19 - 2.3 Aplicaciones Web 2.3.1 2.4 - 20 - Estructura de una Aplicación web - 21 - 21 - Desarrollo de Aplicaciones Web 2.4.1 Arquitectura Web - 21 - 2.4.2 Patrón Modelo Vista Controlador (MVC) - 23 - 2.4.3 Servidor Web - 25 - 2.4.4 Navegador Web o Browser - 25 - 2.4.5 Web Hosting - 26 - 2.4.6 Tipos de alojamiento en un Web Hosting - 26 - 2.4.7 Dominios - 28 - 2.4.8 Estándares de Diseño Web - 29 - 2.4.9 Beneficios del uso de estándares web - 30 - 2.4.10 Tecnología GPS (Sistema de Posicionamiento Global) - 31 - 2.4.11 Arquitectura del sistema GPS - 31 - 2.4.12 Principios de funcionamiento del sistema GPS - 32 - 2.5 SISTEMAS DE COORDENADAS - 33 - 2.5.1 Coordenadas Proyectadas - 33 - 2.5.2 Coordenadas Cartesianas - 34 - 2.5.3 Coordenadas Geográficas - 35 - 2.6 Web services - 36 - ix CAPITULO 3 - 38 - 3 - 38 - SOLUCIÓN PROPUESTA Introducción - 38 - 3.1 - 39 - DESCRIPCIÓN DEL HARDWARE PARA EL DESARROLLO DEL PROTOTIPO 3.1.1 Teléfono inteligente (Smartphone). - 39 - 3.1.2 Sistema de Posicionamiento Global “GPS” - 41 - 3.1.3 Computador - 45 - El sistema prototipo se albergará en un equipo de las siguientes características: 3.2 DESCRIPCIÓN DE LAS COMUNICACIONES - 45 - 45 - 3.2.1 Redes móviles WWAN - 46 - 3.2.2 Servicios web (Web Service) - 47 - 3.2.3 RESTful Web Services - 48 - 3.2.4 Tipo JSON - 49 - 3.3 DESCRIPCIÓN DEL SOFTWARE - 49 - 3.3.1 Marco de Desarrollo (Java, Android) - 49 - 3.3.2 Plataforma de desarrollo Java - 51 - 3.3.3 Plataforma Java Enterprise Edition o Java EE - 53 - 3.3.4 Servidor de Aplicación Jboss AS - 53 - 3.3.5 Eclipse IDE - 53 - 3.3.6 Java Server Faces - 54 - 3.3.7 Primefaces - 56 - 3.3.8 Ajax - 57 - 3.3.9 EJB Enterprise JavaBeans - 58 - 3.3.10 Arquitectura de EJB - 58 - 3.3.11 SGBD PostgreSQL - 60 - 3.3.12 Sistema Operativo Android de Google - 62 - 3.4 Modelo Matemático 3.4.1 3.5 - 70 - Simulación de Cálculo de Distancias - 74 - Información de Tipos de Parqueaderos - 75 - x 3.5.1 De Borde: - 76 - 3.5.2 Intermodales - 76 - 3.5.3 Zona Azul - 76 - 3.5.4 Zona Azul universitaria - 76 - 3.5.5 Cetro HISTÓRICO - 77 - CAPITULO 4 - 78 - 4 DESARROLLO DEL SOFTWARE DEL PROTOTIPO - 78 - 4.1 Gestión del Proyecto Prototipo - 78 - 4.2 Metodología de desarrollo de software - 79 - 4.2.1 Metodología RUP (Proceso Racional Unificado) - 80 - 4.2.2 ARTEFACTOS - 83 - 4.3 ANÁLISIS Y DISEÑO DEL SISTEMA PROTOTIPO - 84 - 4.3.1 Especificaciones de Requerimientos - 84 - 4.3.2 Requisitos Candidatos - 84 - 4.3.3 Contexto del Sistema Prototipo - 85 - 4.4 Modelo de Dominio - 86 - 4.4.1 Diccionario De Clases - 88 - 4.4.2 Requisitos Funcionales - 92 - 4.4.3 Descripción General - 93 - 4.4.4 Identificación de Actores - 94 - 4.4.5 Especificaciones de Casos de Uso - 96 - 4.4.6 Requisitos No Funcionales 4.5 - 110 - Análisis - 111 - 4.5.1 Análisis de la Arquitectura - 111 - 4.5.2 Análisis de Clases - 112 - 4.5.3 Análisis de Casos de Uso - 114 - 4.6 Diseño 4.6.1 - 116 - Diseño de Clases - 116 - xi 4.6.2 4.7 Diseño de Casos de Uso - 118 - Implementación de la Base de Datos - 123 - 4.7.1 MODELO CONCEPTUAL - 125 - 4.7.2 MODELO FÍSICO - 126 - 4.7.3 DESCRIPCIÓN DE OBJETOS DE LA BASE DE DATOS - 127 - 5 CONCLUSIONES Y RECOMENDACIONES - 136 - 5.1 CONCLUSIONES - 136 - 5.2 RECOMENDACIONES - 137 - 6 GLOSARIO - 138 - 7 BIBLIOGRÁFIA - 140 - ANEXOS - 143 - ANEXOS A - 144 - MANUAL DE USUARIO APLICACIÓN WEB SYSQP ANEXOS B. - 144 - - 157 - MANUAL DE USUARIO APP Q-PARKING - 157 - ANEXOS C. - 166 - MANUAL DE TÉCNICO - 166 - LISTA DE FIGURAS FIGURA 1.1 DIAGRAMA GENERAL DE LA APLICACIÓN xii -4- FIGURA 2.1 CUOTA DE MERCADO - 16 - FIGURA 2.2 ESQUEMA GENERAL DE LAS TECNOLOGÍAS WEB. - 22 - FIGURA 2.3 FUNCIONAMIENTO DE UNA APLICACIÓN MVC - 24 - FIGURA 2.4 MODELO MULTICAPAS JAVA - 25 - FIGURA 2.5 COORDENADAS PROYECTADAS - 33 - FIGURA 2.6 COORDENADAS CARTESIANAS - 34 - FIGURA 2.7 COORDENADAS GEOGRÁFICAS - 35 - FIGURA 2.8 ESTRUCTURA WEB SERVICES - 36 - FIGURA 3.1 DIAGRAMA DE FUNCIONAMIENTO DE LA APLICACIÓN - 39 - FIGURA 3.2 SAMSUNG GALAXY S4 - 40 - FIGURA 3.3 (DOP) DILUCIÓN DE LA PRECISIÓN GEOMÉTRICA - 42 - FIGURA 3.4 SEÑAL DE RADIO DE SATÉLITE 1 VIAJA A TRAVÉS DE MENOS DE LA ATMÓSFERA, LO QUE RESULTA EN UNA MENOR DISTORSIÓN. SATÉLITE 2 ES BAJO EN EL HORIZONTE, SIN EMBARGO, LO QUE RESULTA EN UNA DISTORSIÓN ATMOSFÉRICA SIGNIFICATIVA. FIGURA 3.5 - 43 - LA DISTORSIÓN EN SEÑALES DE RADIO SON CORREGIDAS POR LA COMBINACIÓN DE SEÑALES SATELITALES (1 Y 2) CON INFORMACIÓN DE CORRECCIÓN TRANSMITIDA VÍA ESTACIONES TERRESTRES GPS (3 Y 4) - 43 - FIGURA 3.6 ERRORES DE ESFÉRICOS - 44 - FIGURA 3.7 ERROR POR EFECTO MÚLTIPLE - 44 - FIGURA 3.8 ESPECIFICACIONES DE COMPUTADOR SERVIDOR - 45 - FIGURA 3.9 RED DE ÁREA EXTENDIDA INALÁMBRICA (WWAN) - 46 - FIGURA 3.10 RESTFUL WEB SERVICES - 48 - FIGURA 3.11 JAVA VIRTUAL MACHINE - 52 - FIGURA 3.12 COMPILACIÓN Y EJERCITACIÓN DE UN PROGRAMA JAVA - 52 - FIGURA 3.13 IDE ECLIPSE - 54 - FIGURA 3.14 CONTROLADOR (MANAGED BEAN) - 56 - FIGURA 3.15 TECNOLOGÍAS AGRUPADAS BAJO EL CONCEPTO DE AJAX - 57 - FIGURA 3.16 ARQUITECTURA EJB - 59 - FIGURA 3.17 CONEXIÓN JQPL (JAVA PERSISTENCE QUERY LANGUAGE) - 60 - FIGURA 3.18 PGADMIN, ADMINISTRACIÓN BASE DE DATOS - 62 - FIGURA 3.19 ARQUITECTURA DE ANDROID - 64 - FIGURA 3.20 CICLO DE VIDA DE UN ACTIVITY - 68 - FIGURA 3.21 IDE ECLIPSE – PARA ANDROID - 69 - FIGURA 3.22 ANDROID DEVELOPER TOOLS - 70 - xiii FIGURA 3.23 DIVISIÓN DE LA TIERRA POR MERIDIANOS - 71 - FIGURA 3.24 TRIANGULO ESFÉRICO - 71 - FIGURA 3.25 CONVERTIDOR DE COORDENADAS - 74 - FIGURA 3.26 CALCULADOR DE DISTANCIAS ENTRE DOS PUNTOS DE LA TIERRA - 75 - FIGURA 4.1 CICLO DE VIDA DE UN PROYECTO - 78 - FIGURA 4.2 CRONOGRAMA QPARKUING - 79 - FIGURA 4.4 MODELO DE DOMINIO - 87 - FIGURA 4.5 DIAGRAMA DE ACTORES - 95 - FIGURA 4.6 DIAGRAMA DE CASOS DE USO DEL MÓDULO DE ADMINISTRACIÓN - 97 - FIGURA 4.7 DIAGRAMA GENERAL DE LOS CASO DE USO DEL PROTOTIPO - 98 - FIGURA 4.8 DIAGRAMA DE PAQUETES DE ANÁLISIS - 111 - FIGURA 4.9 DIAGRAMA DE ANÁLISIS DE CLASES - 113 - FIGURA 4.10 MODELO COLABORACIÓN DE MANTENIMIENTO BÁSICO - 115 - FIGURA 4.11 DISEÑO DE CLASES DEL SISTEMA Q-PARKING - 117 - FIGURA 4.12 DIAGRAMA DE SECUENCIA “GESTIONAR TARIFA” - 118 - FIGURA 4.13 DIAGRAMA DE SECUENCIA “GESTIONAR CLIENTES” - 119 - FIGURA 4.14 DIAGRAMA DE SECUENCIA “GESTIONAR USUARIOS” - 119 - FIGURA 4.15 DIAGRAMA DE SECUENCIA “GESTIONAR RESERVA” - 120 - FIGURA 4.16 DIAGRAMA DE SECUENCIA “GESTIONAR PARQUEADEROS” - 120 - FIGURA 4.17 DIAGRAMA DE SECUENCIA “GESTIONAR INGRESO” - 121 - FIGURA 4.18 DIAGRAMA DE SECUENCIA “GESTIONAR SALIDA” - 121 - FIGURA 4.19 DIAGRAMA DE SECUENCIA “GESTIONAR PAGOS ALQUILER” - 122 - FIGURA 4.20 DIAGRAMA DE SECUENCIA “GESTIONAR GEO-REFERENCIA” - 122 - FIGURA 4.21 DIAGRAMA DE SECUENCIA “GESTIONAR BUSCA PARQUEADERO” - 123 - FIGURA 4.22 MODELO CONCEPTUAL DE LA BASE DE BATOS Q-PARKING - 125 - FIGURA 4.23 MODELO FÍSICO DE LA BASE DE DATOS Q- PARKING - 126 - LISTA DE TABLAS TABLA 2.1 CUOTA DEL MERCADO DE SISTEMAS OPERATIVOS ABIERTOS PARA SMARTPHONE - 16 - TABLA 4.1 CUADRO DE COMPARACIÓN DE METODOLOGÍAS xiv - 80 - TABLA 4.2 ARTEFACTOS DE METODOLOGÍA - 83 - TABLA 4.3 DESCRIPCIÓN CLASE CAJERO - 88 - TABLA 4.4 DESCRIPCIÓN CLASE PARQUEADERO - 89 - TABLA 4.5 DESCRIPCIÓN CLASE CLIENTE - 89 - TABLA 4.6 DESCRIPCIÓN CLASE PLAZA TICKET - 90 - TABLA 4.7 DESCRIPCIÓN CLASE FACTURA - 91 - TABLA 4.8 DESCRIPCIÓN CLASE DETALLE_FACTURA - 91 - TABLA 4.9 DESCRIPCIÓN CLASE TARIFA - 92 - TABLA 4.10 ACTORES PRINCIPALES Q-PARKING - 94 - TABLA 4.11 ACTORES SECUNDARIO Q-PARKING - 95 - TABLA 4.12 CASOS DE USO GENERALES Q-PARKING - 96 - TABLA 4.13 DESCRIPCIÓN CASO DE USO “GESTIONAR TARIFA”. - 100 - TABLA 4.14 DESCRIPCIÓN CASO DE USO “GESTIONAR CLIENTE”. - 101 - TABLA 4.15 DESCRIPCIÓN CASO DE USO “GESTIONAR USUARIOS”. - 103 - TABLA 4.16 DESCRIPCIÓN CASO DE USO “GESTIONAR PARQUEADERO”. - 104 - TABLA 4.17 DESCRIPCIÓN CASO DE USO “GESTIONAR PLAZA DE APARCAMIENTO”. - 106 - TABLA 4.18 DESCRIPCIÓN CASO DE USO “GESTIONAR RESERVAS”. - 108 - TABLA 4.19 DESCRIPCIÓN CASO DE USO “GESTIONAR FACTURA”. - 109 - TABLA 4.20 GLOSARIO DE “GESTIONAR PARQUEADERO”. - 127 - TABLA 4.21 GLOSARIO DE “GESTIONAR PLAZA TICKET”. - 127 - TABLA 4.22 GLOSARIO DE “GESTIONAR TARIFA”. - 128 - TABLA 4.23 GLOSARIO DE “GESTIONAR RESERVA”. - 128 - TABLA 4.24 GLOSARIO DE “GESTIONAR AUTORIZACIÓN SRI”. - 129 - TABLA 4.25 GLOSARIO DE “GESTIONAR FACTURA”. - 129 - TABLA 4.26 GLOSARIO DE “GESTIONAR DETALLE FACTURA”. - 130 - TABLA 4.27 GLOSARIO DE “GESTIONAR CLIENTE”. - 130 - TABLA 4.28 GLOSARIO DE “GESTIONAR TIPO PARQUEADERO”. - 131 - TABLA 4.29 GLOSARIO DE “GESTIONAR TIPO PARQUEADERO”. - 131 - TABLA 4.30 GLOSARIO DE “GESTIONAR USUARIO”. - 132 - TABLA 4.31 GLOSARIO DE “GESTIONAR PERFIL”. - 132 - TABLA 4.32 GLOSARIO DE “GESTIONAR ROL”. - 133 - TABLA 4.33 GLOSARIO DE “GESTIONAR PAGINA”. - 134 - TABLA 4.34 GLOSARIO DE “GESTIONAR PERMISO”. - 135 - TABLA 4.35 GLOSARIO DE “GESTIONAR PERSONA”. - 135 - xv RESUMEN ANÁLISIS, DISEÑO Y DESARROLLO DE UNA APLICACIÓN MÓVIL PARA ENCONTRAR UNA PLAZA DE APARCAMIENTO A TRAVÉS DE UN DISPOSITIVO MÓVIL CON GPS Y UN ENTORNO WEB PARA LA ADMINISTRACIÓN PARQUEADERO,HACIENDO USO DE DEL TECNOLOGÍAS Y MARCOS DE DESARROLLO DE SOFTWARE LIBRE. El presente proyecto nació de la necesidad de aportar con una solución informática que permita a los ciudadanos y turistas del Distrito Metropolitano de Quito buscar y reservar una plaza de aparcamiento para su vehículo de forma fácil y eficiente mediante el uso de dispositivos móviles (Smartphones, tablets, etc); así como también facilite a los dueños de los parqueaderos la administración y facturación de sus plazas de aparcamiento. La construcción de esta aplicación se lo realizo bajo una plataforma de software libre con estándares de desarrollo JAVA JEE6, modelo MVC y siguiendo una de las metodologías más usadas en el desarrollo de software RUP. DESCRIPTORES: JAVA JEE6/ SERVIDOR DE APLICACIONES JBOSS AS7 / FRAMEWORK JSF / PRIMEFACES / API EJB / SERVICIOS WEB REST / JAVASCRIPT OBJECT NOTATION JSON / POSTSGRESQL / ANDROID / GOOGLE PLAY SERVICES xvi ABSTRACT ANALYSIS, DESIGN AND DEVELOPMENT OF A MOBILE APPLICATION TO FIND A PARKING THROUGH A MOBILE DEVICE WITH GPS AND A WEB ENVIRONMENT FOR THE ADMINISTRATION OF PARKING, USING TECHNOLOGIES AND FRAMEWORKS FREE SOFTWARE DEVELOPMENT. his project was born from the need to provide a solution that allows citizens and tourists of the Metropolitan District of Quito search for and reserve a parking space for your vehicle easily and efficiently by using mobile devices (smartphones, tablets , etc); as well as facilitate the owners of the parking administration and billing of their parking spaces. The construction of this application would perform under a free software platform development with JAVA JEE6 standards, MVC model and following one of the most used methods in software development RUP. DESCRIPTORS: JAVA JEE6 / SERVER JBOSS AS7 / FRAMEWORK JSF / PRIMEFACES / API EJB / WEB SERVICES REST/ JAVASCRIPT OBJECT NOTATION JSON / POSTSGRESQL / ANDROID / GOOGLE PLAY SERVICES xvii CERTIFICADO YO, LCDA. VICTORIA PORTADORA DE MARGARITA CARRILLO CARRASCO, LA CÉDULA DE CIUDADANÍA 1703898674, PROFESORA DE INGLÉS, CERTIFICO QUE LA TRADUCCIÓN AL INGLÉS DEL RESUMEN DE TESIS PERTENECIENTE AL SEÑOR TOSCANO MORENO CARLOS ALBERTO, C.C.1716061096 CORRESPONDE AL TEXTO ORIGINAL EN ESPAÑOL TESIS SOBRE. “ANÁLISIS, DISEÑO Y DESARROLLO DE UNA APLICACIÓN MÓVIL PARA ENCONTRAR UNA PLAZA DE APARCAMIENTO A TRAVÉS DE UN DISPOSITIVO MÓVIL CON GPS Y UN ENTORNO WEB PARA LA ADMINISTRACIÓN DEL PARQUEADERO , HACIENDO USO DE TECNOLOGÍAS Y MARCOS DE DESARROLLO DE SOFTWARE LIBRE”. ATENTAMENTE QUITO, 24 DE JULIO DE 2015. xviii CREDENCIALES xix INTRODUCCIÓN El presente trabajo tiene como objetivo aplicar los conocimientos y experiencia adquiridos a lo largo de la carrera de Ingeniería Informática, con un enfoque muy profesional que junto al profundo deseo de investigación e innovación ayuden a contrarrestar uno de los aspectos que afecta a la problemática de congestión vehicular que en la actualidad se vive en el Distrito Metropolitano de Quito, lo que se pretende es aportar con una solución informática, que facilite a los conductores de vehículos a encontrar de forma rápida y eficiente una plaza de aparcamiento y realizar una reserva de la misma desde sus dispositivos móviles(Smartphone). La siguiente tesis se desarrollará en base al siguiente contenido: -1- CAPÍTULO 1 1 1.1 PRESENTACIÓN DEL PROBLEMA Planteamiento del Problema El tema de la movilidad en la ciudad de Quito se complica cada vez más, ya que actualmente en el hipercentro de la ciudad (determinado entre el sector de la “Y” y la Villaflora) se produce una circulación aproximada de 900 mil vehículos por día, lo que quiere decir que en los sectores de mayor actividad alrededor de 35 mil vehículos demandan plazas de estacionamiento, según la Corpaire 1, a los que hay que añadir aquellos que ingresan a diario con fines comerciales, educación o salud, lo que ocasiona varios cuellos de botella en la capital, principalmente durante las horas pico. El problema puede ser tan grande como se lo quiera ver pues esto no solo sucede en Quito sino también en Guayaquil, Bogotá, Caracas en fin muchas otras ciudades con dificultades de tránsito y es en ciudades como éstas que aparcar un automóvil se vuelve muy difícil. La oferta de estacionamientos es deficitaria, lo cual genera conflictos de tránsito, afectaciones ambientales y pérdida de tiempo, derivados del exceso de circulación que no tiene otro propósito que encontrar un sitio de parqueo. 1.2 Aplicación informática para resolver el problema planteado. Se propone un aplicación informática que ayude a disminuir los problemas de tráfico vehicular a través de una herramienta que facilite a los conductores a obtener información desde su 1 CORPAIRE Corporación Municipal para el Mejoramiento del Aire de Quito” -2- dispositivo móvil (Smartphone) sobre los estacionamientos más próximos a su ubicación e iniciar una reserva a una de las plazas disponibles en el Sistema de Estacionamientos en el Distrito Metropolitano de Quito. Esta aplicación para dispositivo móvil (Smartphone) con módulo GPS permitirá enviar con tan solo un par de clic, información acerca de la posición del vehículo y una solicitud de una plaza de aparcamiento. La transmisión de estos datos se realiza a través tecnología web service, que es quien hará el trabajo de pasarela de mensajería al servidor en donde finalmente se aplican algoritmos para la búsqueda del parqueadero más cercano y enviar una respuesta a la solicitud del usuario, a su vez esta información se deberá enlazar a cualquier mapa disponible en internet como Google Maps para ubicar con exactitud las posibles rutas hacia el parqueadero escogido siguiendo el trazado de rutas generadas por aplicación de Google Maps. Y en caso de que el conductor decida reservar una de las plazas disponibles, inicie una sesión de reserva únicamente dando un clic. Por medio de una aplicación web se ofrece la administración completa del estacionamiento para que mantengan sus datos actualizados (aforo disponible, aforo ocupado, ubicación y coordenadas del estacionamiento, etc.), facturen los aparcamientos y administren tarifas. -3- Figura 1.1 Diagrama general de la aplicación Autor: Tesista Fuente: Diseño Propio 1.3 INTERROGANTES DE LA INVESTIGACIÓN ¿Quién hará uso de esta aplicación? Los dueños de vehículos que posean un dispositivo móvil con módulo GPS que estén interesados en buscar un estacionamiento más próximo a su ubicación. Los dueños de estacionamientos para mantener un registro y un control del alquiler y reservas de sus plazas en la base de datos a fin de prestar un mejor servicio a sus clientes. 1.4 OBJETIVOS 1.4.1 GENERAL. Crear una aplicación para dispositivos móviles (Smartphone), que con tan solo un par de clic el usuario encuentre una plaza disponible en uno de los parqueaderos más próximos a su -4- posición para aparcar su vehículo, haciendo uso de tecnología y de marcos de desarrollo de software libre. 1.4.2 ESPECÍFICOS. Analizar, diseñar y desarrollar una aplicación móvil que junto a la tecnología GPS determinará la posición del vehículo y enviará una petición al servidor para la búsqueda de plazas disponibles de aparcamiento, a través de servicios web, el cual responde a ésta petición luego consultar la base de datos y aplicar algoritmos . Analizar, diseñar y desarrollar una aplicación web a través de la cual los administradores de los parqueaderos podrán mantener el control del alquiler de plazas, reservas, facturación, actualización de sus datos en tiempo real. Realizar un estudio de las posibles soluciones informáticas líderes en el desarrollo aplicaciones móviles como lo son el entorno de desarrollo IOS de Apple VS Android de Google, elegir el que mejor se ajuste a nuestras necesidades, justificar y demostrar el porqué de nuestra elección. 1.5 ALCANCE El alcance de la tesis se ha definido en los siguientes puntos: Cumplir rigurosamente lo propuesto en cada uno de los capítulos que contienen el presente trabajo de titulación. Seguir una metodología de desarrollo de software que se adapte al tipo de aplicación a desarrollar, tiempo y recursos disponibles e incluir documentación en cada una de las etapas. Gestión del proyecto. -5- Aplicación móvil para Smartphone con GPS con plan de datos o internet, que estén bajo el sistema operativo elegido por el desarrollador de esta tesis luego del estudio realizado entre IOS vs Android de Google, las versiones y modelos mínimos bajo los cuales funcionará la aplicación se determinarán de igual forma luego de este estudio como parte del capítulo 3. Esta aplicación móvil muy sencilla de usar permitirá realizar una búsqueda de parqueadero vía móvil con tan solo un par de clic, de modo que no sea una distracción para el conductor sino una ayuda rápida y eficiente para encontrar una plaza disponible. Esta aplicación móvil además proporciona información valiosa para el conductor estacionamientos no sobre cerrados otro tipo como de los estacionamientos de borde, intermodales, zona azul y zona azul universitaria. Desarrollo de la aplicación web para la administración de estacionamientos cerrados con sus respectivos módulos de, alquiler, reservas y facturación de plazas, además la aplicación web goza de: Definición de claves y privilegios de los usuarios del sistema (administradores y cajeros, etc.). Cuadros tarifarios según tipo de vehículo, día, hora. Listado de control de vehículos en estacionamiento. Listado de reservas vía móvil. Facturación de plazas. Aforo disponible. -6- 1.6 Aforo ocupado. JUSTIFICACIÓN Los aspectos que respaldan este trabajo a nivel social, económico y técnico, sustentando el valor de esta tesis son: A nivel social. La importancia del desarrollo de este proyecto radica en crear una aplicación que resuelva en parte del problema de las ciudades con altos índices congestión vehicular. Ayudará significativamente a reducir tiempo en conseguir una plaza de estacionamiento, mejorando así la movilización automotriz y por ende aporta a mitigar el problema congestión vehicular, por otro lado es una forma de ganar clientes para los administradores de los parqueaderos que hagan uso del sistema. La aplicación pretende ser puesta al alcance de la comunidad del Distrito Metropolitano de Quito para que pueda ser descargada sin costo alguno desde las tiendas de aplicaciones para dispositivos móviles, será muy fácil de instalar y usar, en un dispositivo móvil (Smartphone) que cuente con plan de datos o internet. El empleo de la aplicación móvil además de ser un servicio para que la comunidad busque un parqueadero si así lo requiere durante sus actividades domésticas, de trabajo o sociales se busca emplearlo para: Una gestión y administración inteligente de plazas de aparcamiento de los parqueaderos de la ciudad de Quito. Incrementar la velocidad de circulación pues la aplicación -7- móvil junto a la aplicación Google Maps mostrará al conductor la posición de los parqueaderos más cercanos. Disminuir la congestión vehicular y el malestar que causa. Reducir las complicaciones en la movilización y el tiempo en buscar y parquear un automóvil. Prevenir multas impuestos por el sistema Pico y Placa a los ciudadanos residentes en Quito y a aquellos que vienen a la ciudad desde otros cantones o provincias. A nivel económico. Considerando que se va a trabajar bajo marcos de desarrollo de código abierto como Java, PostgreSQL como motor de base de datos y JBoss como servidor de aplicaciones no se estima ningún costo en lo que respecta a las licencias. A nivel técnico. Uso de tecnologías y marcos de desarrollo líder a nivel mundial como: Apple (IOS), Google (Android) y Java EE sobre JBoss; tecnologías que en un no muy lejano futuro acaparen el mercado de las comunicaciones móviles, con sus muy completos dispositivos móviles (Smartphone) los cuales ofrecen la posibilidad de instalación de programas. -8- CAPÍTULO 2 2 2.1 MARCO TEÓRICO Antecedentes Hoy en día el parque automotor de la ciudad de Quito ha crecido vertiginosamente lo cual ha generado la falta de espacio donde estacionar este gran grupo de vehículos, en vista de esto el sector público y privado ha visto la necesidad de generar y mejorar parqueaderos existentes en la ciudad. Con esta medida buscan mejorar la movilidad de los automotores de manera que los conductores no parqueen los automotores en espacios no adecuados para este propósito. Al existir una alta demanda de vehículos en las entradas de los parqueaderos (públicos y privados) produce congestión al momento de movilizarse por las zonas aledañas, además el problema se agudiza cuando los usuarios luego de una larga espera al momento de llegar a la entrada del estacionamiento se encuentran con la noticia de que el parqueadero ya no cuenta con plazas de aparcamiento libres. Por lo cual el sistema prototipo Q-PARKING denominado de hoy en adelante en el desarrollo de este proyecto de titulación, presenta una propuesta a este problema creando una herramienta de consulta y reserva de una plaza de aparcamiento disponible en los parqueadero más cercanos a su posición, a través de un Smartphone (teléfono inteligente). Se desea aclarar que lejos de la realidad esta pensar que la -9- creación de un sistema de consulta motive a los ciudadanos a sacar sus vehículos y saturar las estrechas calles de la ciudad, sino más bien, el proyecto busca que los vehículos sean mejor estacionados y no ocupen lugar inapropiado en la vía dejando espacio libre al tránsito de las personas, bicicletas y vehículos. 2.2 Aplicaciones Móviles Según, Alertaenlinea.gov [1]- Aplicaciones móviles: Qué son y cómo funcionan, (2011), define: Una aplicación móvil es un programa que se puede descargar y acceder directamente desde un teléfono (Smartphone) o desde algún otro móvil. Aplicación móvil Web Aquella que necesita de un navegador web o browser para ejecutarse, la aplicación y datos pueden residir remotamente en un servidor u obtenerse del mismo dispositivo móvil. Aplicación nativa .Es aquella que se instala en el propio dispositivo como cualquier otra aplicación y se desarrolla utilizando un lenguaje de programación compatible con el sistema operativo del dispositivo móvil o de un framework de desarrollo (Java ME, .Net Compact Framework, etc.). 2.2.1 TIPOS DE APLICACIONES PARA DISPOSITIVOS MÓVILES Según, Edukanda [2] - Desarrollo de las aplicaciones para móviles, (2011), indica: Se pueden crear distintas aplicaciones para nuestros dispositivos móviles, como por ejemplo: - 10 - • Aplicaciones de sistema, estas aplicaciones estarán relacionadas al funcionamiento de nuestro terminal, como podrían ser compresores de archivos, seguridad del terminal, registro de llamadas, gestión de mensajes, etc. • Aplicaciones ofimáticas, las aplicaciones ofimáticas son aquellas que nos permiten trabajar con documentos de texto, hojas de cálculo, Excel, ficheros PDF, etc. Las más comunes son QuickOffice 2y DocumentsToGo 3, aunque son de pago. • Organización: este tipo de aplicaciones irán destinadas a la organización de nuestros datos, contactos, notas, etc. Como podrían ser el calendario, gestor de contactos, etc. • Aplicaciones web: Para poder utilizar este tipo de aplicaciones hará falta una conexión de Internet en nuestro móvil. Un ejemplo de este tipo de aplicaciones serían: el GPS, correo electrónico, Google Maps, navegadores web, etc. Dentro de la categoría anterior podríamos incluir también las aplicaciones relacionadas con las redes sociales, como: Facebook, Twitter, Hi5, etc. • Aplicaciones de accesibilidad: este tipo de aplicaciones facilitará el uso del terminal para personas con algún tipo de discapacidad. Ejemplos de este tipo de aplicaciones sería: reconocimiento de voz, reconocimiento de caracteres, lectura de texto, etc. 2 Quickoffice es una exclusiva suite de productividad para dispositivos móviles que permite a los usuarios ver, crear y editar archivos de texto, presentaciones y hojas de cálculo. 3 DocumentstoGo es una aplicación para Android y otros sistemas operativos que te permite visualizar y acceder a documentos en formato PDF, así como editar archivos de Microsoft Office Word, Excel y Power Point. - 11 - • Existen otros tipos de aplicaciones como las multimedia, los juegos, etc. 2.2.2 SISTEMAS OPERATIVOS PARA DISPOSITIVOS MÓVILES Los sistemas operativos (SO) en un dispositivo móvil (Smartphone) tiene el mismo concepto que en un computador. La única diferencia entre un SO de un computador y un SO de móvil es que los procesos son menos complejos y están orientados a la conectividad inalámbrica en este último y por ende su SO también lo es. La generalización en los últimos años de teléfonos móviles, Smartphone, PDAs, Tablet, etc., ha generado una importante necesidad de aplicaciones para este tipo de dispositivos. Las prestaciones de los dispositivos móviles se incrementan día a día, posibilitando la implementación de aplicaciones muy interesantes debido a: Las siguientes ventajas • Acceso a Internet y conectividad mediante Bluetooth. • Envío de mensajes cortos. • Aceleración 2D y 3D. • Reproducción de video y sonido. • Cámara integrada. • Información de localización GPS. • Sensores de orientación. • Etc. Limitaciones de los dispositivos móviles: La necesidad de ahorrar energía obliga a utilizar procesadores con una capacidad de cómputo limitada y baja frecuencia de reloj. - 12 - El uso intensivo de cálculos, gráficos, sonido, conexiones inalámbricas etc. limita la vida de la batería. La memoria disponible es muy limitada en comparación con la de un computador ordinario. El almacenamiento de datos persistente también es muy limitado: memoria interna + tarjetas SD o similar De acuerdo a estas características, prestaciones y limitaciones tenemos los siguientes Sistemas operativos para dispositivos en orden de mayor utilización en el mercado. Android de Google Inc. (libre y de código abierto) Según Wiki-Android, [3] (2012), define: Android es un sistema operativo basado en Linux, enfocado para ser utilizado en dispositivos móviles con pantalla táctil como teléfonos inteligentes o tabletas inicialmente desarrollados por Android Inc, respaldado económicamente por Google. El software del sistema operativo Android se compone de aplicaciones que se ejecutan en un framework Java de aplicaciones orientadas a objetos sobre el núcleo de las librerías Java en una máquina virtual Dalvik con compilación en tiempo de ejecución. Las bibliotecas están escritas en lenguaje C, un framework OpenCore, una base de datos relacional SQLite, una API gráfica OpenGL es 2D ,3D, una motor de renderizado WebKit, un motor gráfico SGL, SSL y una librería estándar C Versiones de Android C: Cupcake (v1.5), Magdalena glaseada. D: Donut (v1.6), Rosquilla. E: Éclair (v2.0/v2.1), pastel francés conocido en España como pepito, petisú, suso o canuto. F: Froyo (v2.2), (Abreviatura de «Frozen Yogurt») Yogur Helado. - 13 - G: Gingerbread (v2.3), Pan de jengibre. H: Honeycomb (v3.0/v3.1/v3.2), Panal de miel. I: Ice Cream Sandwich (v4.0), Sandwich de helado. J: JellyBean (v4.1), Judía de gelatina. Jelly Bean (Gummy Bear) (v4.2) Jelly Bean (v4.3) KitKat (v 4.4) Lollipop (v5.0) iOS de Apple Inc. (De código cerrado, propietario) Según Wiki-IOS-Sistema Operativo. (2012),[4] define: iOS es un sistema operativo desarrollado por Apple Inc. para los dispositivos móviles iPod touch, iPhone e iPad. Está basado en una variante del Mach kernel de Mac OS X. que a su vez está basado en Darwin BSD, y por lo tanto es un sistema operativo Unix. BlackBerry OS de RIM (de código cerrado, propietario) Según, Wiki-BlackBerry OS, (2012), [6] define: BlackBerry OS es un sistema operativo móvil desarrollado por BlackBerry para sus dispositivos BlackBerry. El sistema permite multitarea y tiene soporte para diferentes métodos de entrada adoptados por Research In Motion (RIM) para su uso en computadoras de mano Características El SO BlackBerry está claramente orientado a su uso profesional como gestor de correo electrónico y agenda. Desde la cuarta versión se puede sincronizar el dispositivo con el correo electrónico, el calendario, tareas, notas y contactos de Microsoft Exchange Server además es compatible también con Lotus Notes y Novell GroupWise. Symbian de Nokia y Accenture (licencia abierta al público) Según, Wikipedia-Symbian OS, (2012), [5] define: - 14 - Symbian fue un sistema operativo producto de la alianza de varias empresas de telefonía móvil,aunque los orígenes de Symbian no son atribuibles 100% a Nokia, fue esta empresa la que hizo que esta plataforma evolucionara hasta la versión que conocemos hoy en día como Symbian Bell. Este es uno de los sistemas operativos para móviles más conocidos, ya que Nokia (empresa que hasta hace unos años lideraba por mucho el market-share) ha equipado la gran mayoría de sus dispositivos con este sistema operativo. web OS de HP (ciertas partes de código abierto) Según, Wikipedia- web OS, (2012), [8] define: web OS es un sistema operativo para dispositivos móviles que se ejecuta en el kernel de Linux, inicialmente desarrollado por Palm, que se lanzó con la Palm Pre . • Características La interfaz gráfica de usuario de webOS fue diseñada para dispositivos con pantalla táctil. Incluye un conjunto de aplicaciones para el manejo de la información personal y usa tecnologías web como HTML5, JavaScript y CSS. Windows Phone de Microsoft (de código cerrado, propietario) Según, Wikipedia- Windows Phone, (2012), [9] define: Windows Phone es un sistema operativo móvil desarrollado por Microsoft, como sucesor de la plataforma Windows Mobil. A diferencia de su predecesor, está enfocado en el mercado de consumo generalista en lugar del mercado empresarial Con Windows Phone, Microsoft ofrece una nueva interfaz de usuario que integra varios servicios propios como SkyDrive, Skype y Xbox Live en el sistema operativo. - 15 - Según, Gartner, Cuota del mercado de Sistemas Operativos abiertos para Smartphone. (2012) [13] Un estudio de Gartner puede observar que en los próximos años los sistemas operativos móviles que lideraran cuota de mercado de dispositivos móviles están resumidos en el siguiente cuadro. Tabla 2.1 Cuota del mercado de Sistemas Operativos abiertos para Smartphone Autor: Tesista Fuente: Gartner CUOTA DE MERCADO 3% 0% Syambian 20% 49% Android Reasearch in Motion 17% IOS 11% Microsoft Otros Figura 2.1 Cuota de Mercado Autor: Tesista Fuente Gartner - 16 - Como se puede observar en el resumen de la tabla Symbian se desploma permitiendo que la cuota en el mercado sea liderada por Android, seguido por Microsoft y iOS de Apple muy de cerca, por lo que nos permite prever que desarrollar esta aplicación de titulación debe estar más orientada a escoger el sistema operativo que va a liderar el mercado lo que facilitara que la aplicación a desarrollarse despunte y sea atractiva para los usuarios finales. 2.2.3 PLATAFORMAS DE DESARROLLO PARA DISPOSITIVOS MÓVILES Las plataformas de desarrollo es el entorno de software común en el cual se desenvuelve la programación de un grupo definido de aplicaciones. Comúnmente se encuentra relacionada directamente a un sistema operativo; sin embargo, también es posible encontrarla ligada a una familia de lenguajes de programación o a una Interfaz de programación de aplicaciones (API por sus siglas en inglés). El desarrollo de aplicaciones móviles con lleva a tener varias consideraciones de acuerdo al propósito y escenarios para los que van hacer utilizados, también depende de los sistemas operativos que utilicen los proveedores de Teléfonos móviles. Sería conveniente tener un estándar para plataformas de desarrollo de aplicación móviles pero existen diversas plataformas que fueron creadas para impulsar ciertos dispositivos lo cual trae inconvenientes en cuanto a portabilidad, efectividad y mantenimiento. A continuación se describe las plataformas: Symbian (S60 y UIQ): C++ con librerías nativas, desarrollada en Qt estándar C ++, Symbian también se pueden programar con Python , Java ME , Flash Lite , Rubí, NET , Web Runtime (WRT) Widgets y - 17 - Standard C / C + +,apoyado con una base de datos SQLite y SQL Windows Phone: .NET Compact Framework, una versión limitada d e .NET apoyado en una base de datos SQL Server PalmOS: C/C++, con librerías nativas Android: Java con librerías nativas (no J2ME) su almacenamiento utiliza SQLite, una base de datos liviana Java Mobile Edition (J2ME) para múltiples plataformas, especialmente Symbian BlackBerry:Java SDK 7.1 con una base de datos BlackBerry Enterprise Server 2.2.4 TIPOS DE DISPOSITIVOS MÓVILES Según, (Wikipedia, Dispositivo móvil. (2012),[20] define: ¿Qué es un dispositivo móvil? Un dispositivo móvil se puede definir como un aparato de tamaño pequeño, con algunas capacidades de procesamiento, con conexión permanente o intermitente a una red, con memoria limitada, que asido diseñado específicamente para una función, pero que puede llevar a cabo otras funciones más generales. De acuerdo con esta definición existen multitud de dispositivos móviles, desde los reproductores de audio portátiles hasta los navegadores GPS, pasando por los teléfonos móviles (Smartphone), los PDAs o los Tablet PCs. Nosotros en este trabajo nos centraremos en teléfonos inteligentes o llamados Smartphone Teléfono inteligente (Smartphone en inglés) es un término comercial para denominar a un teléfono móvil que ofrece la posibilidad de instalación de programas para incrementar el procesamiento de datos y la conectividad. - 18 - PDA (del inglés personal digital assistant (asistente digital personal)), también denominado computador de bolsillo u organizador personal, es una computadora de mano originalmente diseñada como agenda electrónica la cual nos permite realizar ciertas funciones que se lo harían en un computador , editar texto, ver películas etc. . Una tableta (del inglés: tablet o tabletcomputer) es un tipo de computadora portátil, de mayor tamaño que un Smartphone o una PDA, integrado en una pantalla táctil (sencilla o multitáctil) con la que se interactúa primariamente con los dedos o una pluma stylus (pasiva o activa), sin necesidad de teclado físico ni ratón. Estos últimos se ven reemplazados por un teclado virtual y, en determinados modelos, por una mini-trackball integrada en uno de los bordes de la pantalla. 2.2.5 CATEGORÍAS DE DISPOSITIVOS MÓVILES Dispositivo móvil de datos limitado (Limited Data Mobile Device): dispositivos que tienen una pantalla pequeña, principalmente basada en pantalla de tipo texto con servicios de datos generalmente limitados a SMS y acceso WAP. Un típico ejemplo de este tipo de dispositivos son los teléfonos móviles. Dispositivo móvil de datos básico (Basic Data Mobile Device): dispositivos que tienen una pantalla de mediano tamaño, (entre 120 x 120 y 240 x 240 píxeles), menú o navegación basada en íconos por medio de una «rueda» o cursor, y que ofrecen correo electrónico, lista de direcciones, SMS, y un navegador web básico. Un típico ejemplo de este tipo de dispositivos son los BlackBerry , iPhone y los teléfonos inteligentes. Dispositivo móvil de datos mejorado (Enhanced Data Mobile Device): dispositivos que tienen pantallas de medianas a grandes (por encima de los 240 x 120 píxeles), navegación de tipo stylus, y - 19 - que ofrecen las mismas características que el dispositivo móvil de datos básicos más aplicaciones nativas como aplicaciones de Microsoft Office Mobile (Word, Excel, PowerPoint) y aplicaciones corporativas usuales, en versión móvil, como Sap, portales intranet, etc. Este tipo de dispositivos incluyen los sistemas operativos como Android, IOS, BlackBerry OS , etc. 2.3 Aplicaciones Web Según, (Wikipedia, Aplicaciones Web. (2015),[20] define: Una aplicación Web es un sistema informático que los usuarios utilizan accediendo a un servidor web a través de Internet. Las aplicaciones web son populares debido a lo práctico del navegador web como cliente ligero y cuya facilidad para actualizar y mantener aplicaciones web sin distribuir e instalar software en los potenciales clientes. Las aplicaciones Web se están desplegando en Internet y en intranets corporativas y extranets, donde tienen el potencial para aumentar la productividad y cambiar la forma en que las empresas, grandes y pequeñas hacen negocios. Ventajas: Proporcionan portabilidad, dado que puedes ejecutarlas desde cualquier computador con conexión a internet u otra red, la facilidad de mantener y actualizar dichas aplicaciones sin la necesidad de distribuir e instalar un software en miles de potenciales clientes. También la posibilidad de ser ejecutadas en múltiples plataformas. Proporcionan escalabilidad puesto que son fáciles de actualizar e implementar. Proveen alta concurrencia ya que las aplicaciones basadas en web pueden realmente ser utilizadas por múltiples usuarios al mismo - 20 - tiempo Desventaja: Las aplicaciones web requieren navegadores web totalmente compatibles para funcionar 2.3.1 ESTRUCTURA DE UNA APLICACIÓN WEB Una aplicación Web normalmente está estructurada por lo general como una aplicación de tres capas las cuales en su forma más común como primera capa tenemos el navegador web y un motor capaz de usar alguna tecnología web dinámica (como por ejemplo: PHP, Java Servlets o ASP, ASP.NET, CGI, Cold Fusion, embPerl, Python como lenguajes de programación) que constituye la capa intermedia. Por último, una base de datos constituye la tercera y última capa. El navegador web manda peticiones a la capa intermedia que ofrece servicios valiéndose de consultas y actualizaciones a la base de datos y a su vez proporciona una interfaz de usuario En la actualidad el uso de esta arquitectura mediante la adición de componentes de hardware permite que se balance la carga en los servidores web y de la aplicación. 2.4 Desarrollo de Aplicaciones Web 2.4.1 ARQUITECTURA WEB Los sitios web son una conjunción muy compleja de distintos sistemas integrados entre sí (Bases de datos, servidores, redes, componentes de backup y seguridad, etc.). El modo de crear los documentos HTML ha variado a lo largo de la - 21 - corta vida de las tecnologías Web pasando desde las primeras páginas escritas en HTML almacenadas en un fichero en el servidor Web hasta aquellas que se generan al vuelo como respuesta a una acción del cliente y cuyo contenido varía según las circunstancias. Además, el modo de generar páginas dinámicas ha evolucionado, desde la utilización del CGI (Common Gateway Interface), hasta los servlets pasando por tecnologías tipo Java Server Pages. Todas estas tecnologías se encuadran dentro de aquellas conocidas como Server Side, ya que se ejecutan en el servidor web. Otro aspecto que complica el panorama son las inclusiones del lado del cliente, Client Side, que se refieren a las posibilidades de que las páginas lleven incrustado código que se ejecuta en el cliente, como por ejemplo JavaScript y programas Java. El esquema general de la situación se puede ver en la Figura 2.1, donde se muestran cada tipo de tecnología involucrada en la generación e interacción de documentos Web. Figura 2.2 Esquema general de las tecnologías Web. Autor: Tesista Fuente: Introducción a las aplicaciones Web - 22 - Aspectos Generales en Arquitectura Web Las aplicaciones desarrolladas para la web son muy populares por su fácil Escalabilidad, Separación de responsabilidades, Portabilidad, Utilización de componentes en los servicios de infraestructura, Gestión de la sesión de usuario, Aplicación de patrones de diseño que hace más factible el desarrollo de las aplicaciones. 2.4.2 PATRÓN MODELO VISTA CONTROLADOR (MVC) Aunque originalmente MVC fue desarrollado para aplicaciones de escritorio, ha sido ampliamente adaptado como arquitectura para diseñar e implementar aplicaciones web en los principales lenguajes de programación. MVC (Model-Controller-View) es un patrón de desarrollo software muy extendido en internet que separa claramente tres elementos claves en el desarrollo de aplicaciones: la parte del diseño (View), la parte de negocio (Modelo) y la parte del Control o workflow (Controller). Este modelo de desarrollo ha obtenido una gran aceptación a partir de su implementación en Java a través del framework Detallemos mejor estos 3 componentes claves: • Modelo: El modelo de objetos, es la parte de la aplicación que implementa la lógica de negocio. Son las clases que representan nuestros datos básicos • Vista: Las vistas son componentes que muestran parte del - 23 - modelo de negocio al usuario. • Controlador: Es el corazón de la aplicación y es el que controla la interacción/worflow seleccionando parte de un modelo y mostrándolo mediante una vista al usuario. Veamos cómo funciona: 1. El usuario, solicita unos datos al controlador vía una url 2. El controlador pide al modelo, los datos solicitados por el usuario 3. El controlador recibe los datos seleccionados del modelo 4. El controlador solicita la vista asociada a estos datos 5. El controlador recibe la vista que carga esos datos 6. El controlador devuelve al usuario la Jsp que carga los datos solicitados Figura 2.3 Funcionamiento de una aplicación MVC Autor:Tesista Fuente: Mi blog técnico - 24 - Figura 2.4 Modelo Multicapas Java Autor: Tesista Fuente: globalmentoring 2.4.3 SERVIDOR WEB El servidor web o servidor HTTP es un programa que está esperando permanentemente las solicitudes de conexión mediante el protocolo HTTP por parte de los clientes web, dependiendo del tipo de petición, el servidor web buscara una página web o bien ejecutara un programa en el servidor de cualquier modo, siempre devolverá algún tipo de resultado HTML al cliente o navegador o realiza la petición. El servidor es la parte fundamental en el desarrollo de aplicaciones web. 2.4.4 NAVEGADOR WEB O BROWSER El navegador puede considerarse como una interfaz de usuario universal. Dentro de sus funciones están la petición de las páginas Web, la presentación adecuada de sus contenidos y la gestión de los posibles errores que se puedan producir - 25 - 2.4.5 WEB HOSTING Según, Wiki –Alojamiento Web. (2012),[11] define: El alojamiento web (en inglés web hosting) es el servicio que provee a los usuarios de Internet un sistema para poder almacenar información, imágenes, vídeo, o cualquier contenido accesible vía web. en este caso la analogía alojamiento web o alojamiento de páginas web, se refiere al lugar que ocupa una página web, sitio web, sistema, correo electrónico, archivos etc. en internet o más específicamente en un servidor que por lo general hospeda varias aplicaciones o páginas web. 2.4.6 TIPOS DE ALOJAMIENTO EN UN WEB HOSTING Alojamiento gratuito es un alojamiento limitado donde por lo general agregan publicidad en los sitios y tienen un espacio y transito limitado Alojamiento compartido En este tipo de servicio se alojan clientes de varios sitios en un mismo servidor, gracias a la configuración del programa servidor web. Resulta una alternativa muy buena para pequeños y medianos clientes, es un servicio económico debido a la reducción de costos ya que al compartir un servidor con cientos miles o millones de personas o usuarios el costo se reduce drásticamente para cada uno, y tiene buen rendimiento. Entre las desventajas de este tipo de hospedaje web hay que mencionar sobre todo el hecho de que compartir los recursos de hardware de un servidor entre cientos o miles de usuarios disminuye notablemente el desempeño del mismo. Es muy usual también que las fallas ocasionadas por un usuario repercutan en los demás por lo que el administrador del servidor debe tener suma - 26 - cautela al asignar permisos de ejecución y escritura a los usuarios Alojamiento de imágenes Este tipo de hospedaje se ofrece para guardar imágenes en internet, la mayoría de estos servicios son gratuitos y las páginas se valen de la publicidad colocadas en su página al subir la imagen Alojamiento revendedor Este servicio de alojamiento está diseñado para grandes usuarios o personas que venden el servicio de hospedaje a otras personas. Estos paquetes cuentan con gran cantidad de espacio y de dominios disponibles para cada cuenta. Así mismo estos espacios tienen un límite de capacidad de clientes y dominios alojados y por ende exige buscar un servidor dedicada. Servidores virtuales (VPS, Virtual Private Server) La empresa ofrece el control de una computadora aparentemente no compartida, que se realiza mediante una máquina virtual. Así se pueden administrar varios dominios de forma fácil y económica, además de elegir los programas que se ejecutan en el servidor. Por ello, es el tipo de producto recomendado para empresas de diseño y programación web. Servicio de Alojamiento Dedicado Un servidor dedicado es una computadora comprada o arrendada que se utiliza para prestar servicios dedicados, generalmente relacionados con el alojamiento web y otros servicios en red. A diferencia de lo que ocurre con el alojamiento compartido, en donde los recursos de la máquina son compartidos entre un número indeterminado de clientes, en el caso de los servidores dedicados, generalmente es un sólo cliente el que dispone de - 27 - todos los recursos de la máquina para los fines por los cuales haya contratado el servicio Colocación (housing) Este servicio consiste básicamente en vender o alquilar un espacio físico de un centro de datos para que el cliente coloque ahí su propia computadora. La empresa le da la corriente y la conexión a Internet, pero el servidor lo elige completamente el usuario (hasta el hardware). Alojamiento web en la nube (cloudhosting) El alojamiento web en la "nube" (cloudhosting) está basado en las tecnologías más innovadoras que permiten a un gran número de máquinas actuar como un sistema conectadas a un grupo de medios de almacenamiento, tiene ventajas considerables sobre las soluciones de web hosting tradicionales tal como el uso de recursos. La seguridad de un sitio web alojado en la "nube" (cloud) está garantizada por numerosos servidores en lugar de sólo uno. La tecnología de computación en la nube también elimina cualquier limitación física para el crecimiento en tiempo real y hace que la solución sea extremadamente flexible. 2.4.7 DOMINIOS Un dominio o nombre de dominio es el nombre que identifica un sitio web. Cada dominio tiene que ser único en Internet. Un solo servidor web puede servir múltiples páginas web de múltiples dominios, pero un dominio sólo puede apuntar a un servidor. - 28 - Un dominio se compone normalmente de tres partes: de tres uves dobles (www), el nombre de la organización y el tipo de organización (com). Los tipos de organización más comunes son .COM, .NET, .MIL, y .ORG, que se refieren a comercial, network, militar, y organización (originalmente sin ánimo de lucro, aunque ahora cualquier persona puede registrar un dominio .org). Puesto que Internet se basa en direcciones IP, y no en nombres de dominio, cada servidor web requiere de un servidor de nombres de dominio (DNS) para traducir los nombres de los dominios a direcciones IP. Cada dominio tiene un servidor de nombre de dominio primario y otro secundario. 2.4.8 ESTÁNDARES DE DISEÑO WEB Según, Maestros del Web- Estándares Web (2014), [29] define: Los estándares web son un conjunto de recomendaciones dadas por el World Wide Web Consortium (W3C) y otras organizaciones internacionales acerca de cómo crear e interpretar documentos basados en la Web. Son un conjunto de tecnologías orientadas a brindar beneficios a la mayor cantidad de usuarios, asegurando la vigencia de todo documento publicado en la Web. El objetivo es crear un Web que trabaje mejor para todos, con sitios accesibles a más personas dispositivo de acceso a internet. - 29 - y que funcionen en cualquier 2.4.9 BENEFICIOS DEL USO DE ESTÁNDARES WEB Un sitio basado en estándares web mostrará una mayor consistencia Visual. Gracias al uso de XHTML para el contenido y CSS para la apariencia, se puede transformar rápidamente un sitio, sin importar que se trate de una página web o miles, realizando cambios en un solo lugar. Los documentos que separan apariencia de contenido usan menos código, además, CSS permite conseguir efectos que antes requerían el uso de JavaScript e imágenes, por lo que los sitios basados en estándares utilizan menos ancho de banda y se muestran más rápido a los usuarios, mejorando dramáticamente la experiencia de estos. Los documentos basados en XHTML válido son más relevantes para los motores de búsqueda, contienen mayor información y menos código, por lo que un sitio basado en estándares web tendrá una mejor posición. De igual manera, la posición en directorios, editados por humanos, se verá beneficiada pues el sitio será más usable. XHTML es una aplicación de XML, por lo que el contenido puede ser procesado de muchas formas, permitiendo la creación de sitios extensibles. El uso de validadores nos permite crear XHTML bien formado. Un sitio basado en estándares web es compatible con todos los navegadores actuales, y lo será con versiones futuras. Funcionará tan bien en un PC, un navegador aural y un teléfono móvil dentro de diez años. - 30 - Un sitio basado en estándares web es más fácil de mantener y actualizar, el código es más simple, de esta forma se elimina la dependencia de un solo desarrollador. Un sitio basado en estándares web es más accesible, permitiendo a personas con discapacidades utilizar su contenido. 2.4.10 TECNOLOGÍA GPS (SISTEMA DE POSICIONAMIENTO GLOBAL) Según, Biblioteca-ArcGIS Resource Center (2012),[21] define: El Sistema de posicionamiento Global (“GPS” Global Positioning System) o NAVSTAR, (NAVigator System and Ranging) es un sistema global de navegación por satélite (“GNSS” Global Navigation Satellite System) que permite determinar en todo el mundo la posición de un objeto, una persona o un vehículo con una precisión hasta de centímetros (si se utiliza GPS diferencial), aunque lo habitual son unos pocos metros de precisión. 2.4.11 ARQUITECTURA DEL SISTEMA GPS El sistema se descompone en tres segmentos básicos, los dos primeros de responsabilidad militar: • Segmento espacio, formado por 24 satélites GPS con una órbita de 26560 Km. de radio y un periodo de 12 h. • Segmento control, que consta de cinco estaciones monitoras encargadas de mantener en órbita los satélites y supervisar su correcto funcionamiento, • Antenas terrestres que envían a los satélites las señales que deben transmitir y una estación experta de supervisión de todas las operaciones y segmento usuario, formado por las antenas y los receptores pasivos situados en tierra. Los receptores, a partir de los mensajes que provienen de cada satélite visible, calculan - 31 - distancias y proporcionan una estimación de posición y tiempo 2.4.12 PRINCIPIOS DE FUNCIONAMIENTO DEL SISTEMA GPS El sistema GPS tiene por objetivo calcular la posición de un punto cualquiera en un espacio de coordenadas (x,y,z), partiendo del cálculo de las distancias del punto a un mínimo de tres satélites cuya localización es conocida. La distancia entre el usuario (receptor GPS) y un satélite se mide multiplicando el tiempo de vuelo de la señal emitida desde el satélite por su velocidad de propagación. Para medir el tiempo de vuelo de la señal de radio es necesario que los relojes de los satélites y de los receptores estén sincronizados, pues deben generar simultáneamente el mismo código. Ahora bien, mientras los relojes de los satélites son muy precisos los de los receptores son osciladores de cuarzo de bajo costo y por tanto imprecisos. Las distancias con errores debidos al sincronismo se denominan pseudo-distancias. La desviación en los relojes del receptor les añade una incógnita más que hace necesario un mínimo de cuatro satélites para estimar correctamente las posiciones En el cálculo de las pseudo-distancias hay que tener en cuenta que las señales GPS son muy débiles y se hallan inmersas en el ruido de fondo inherente al planeta en la banda de radio. Este ruido natural está formado por una serie de pulsos aleatorios, lo que motiva la generación de un código pseudo-aleatorio artificial por los receptores GPS como patrón de fluctuaciones. En cada instante un satélite transmite una señal con el mismo patrón que la serie pseudo-aleatoria generada por el receptor. En base a esta sincronización, el receptor calcula la distancia realizando un desplazamiento temporal de su código pseudo-aleatorio hasta lograr la coincidencia con el código recibido; este desplazamiento corresponde al tiempo de vuelo de la señal. Este proceso se realiza - 32 - de forma automática, continua e instantánea en cada receptor. 2.5 SISTEMAS DE COORDENADAS Según, ArcGIS Resource Center. (2012), [21] define: Un sistema de coordenadas nos permite la definición de la posición de un objeto relativo en otros objetos y al centro de coordenadas. Los sistemas de coordenadas más utilizados para representar la superficie de la tierra son: 2.5.1 COORDENADAS PROYECTADAS Un sistema de coordenadas proyectadas está definido en una superficie plana, de dos dimensiones En este sistema, las localizaciones son identificadas por coordenadas x, y en una cuadrícula, con origen al centro de dicha cuadrícula. Cada posición tiene dos valores que la referencian a la localización central. Un valor especifica la posición horizontal y el otro valor la posición vertical. Los dos valores son llamados coordenada X y coordenada Y Figura 2.5 Coordenadas Proyectadas Autor: Tesista - 33 - Fuente: ArcGIS Resource Center 2.5.2 COORDENADAS CARTESIANAS En este sistema de coordenadas, una posición se define en un espacio tridimensional por las coordenadas (x, y, z) (Ver Figura 2.9). Los ejes de coordenadas se determinan de la siguiente forma: • El eje X pasa por el centro de la tierra y por el meridiano principal de Greenwich. • El eje Y forma un ángulo de 90° con los otros dos ejes. • El eje Z pasa por el centro de la tierra y por los polos Figura 2.6 Coordenadas Cartesianas Autor:Tesista Fuente: ArcGIS Resource Center - 34 - 2.5.3 COORDENADAS GEOGRÁFICAS Utilizan una superficie esférica tridimensional para definir las localizaciones sobre la superficie terrestre. En este sistema cualquier punto sobre la superficie terrestre se determina con dos ángulos medidos desde el centro de la tierra, que se llaman latitud y longitud (Ver Figura 2.7). La longitud de un punto es el ángulo medido a lo largo del ecuador desde cualquier punto de la tierra. Las líneas verticales de igual longitud son círculos máximos que pasan por los polos y se llaman meridianos. La longitud se mide con respecto a un meridiano principal, que es el meridiano de Greenwich (longitud cero). La latitud de un punto es el ángulo medido desde el centro de la tierra hacia el norte, entre el Ecuador y la posición de un punto sobre la superficie terrestre. Las líneas horizontales de igual latitud se llaman paralelos. Se toma el Ecuador terrestre como la línea de latitud cero. Figura 2.7 Coordenadas Geográficas Autor: Tesista Fuente: ArcGIS Resource Center - 35 - 2.6 Web services Figura 2.8 Estructura Web services Autor: Tesista Fuente: Wordpress.com Según wiki-Servicio web. (2013), [25] define: Servicios web es un conjunto de protocolo y estándares que sirve para intercambiar datos entre aplicaciones. Distintas aplicaciones de software desarrolladas en lenguajes de programación diferentes, y ejecutados sobre cualquier plataforma, pueden utilizar los servicios web para intercambiar datos en redes de computadores como Internet Estándares Empleados WEB SERVICES • XML: Estándar para describir datos y crear etiquetas, las características especiales son la independencia de datos o la separación de los contenidos de su presentación. • SOAP : Especificación XML para la formación de mensajes - 36 - intercambiados entre los sistemas distribuidos y la red • WSDL: Lenguaje de descripción de servicios web, identifica los métodos, funciones y parámetros necesarios para invocar un determinado servicio. Ventajas de los servicios web. • Aportan interoperabilidad entre aplicaciones de software independientemente de sus propiedades o de las plataformas sobre las que se instalen. • Los servicios Web fomentan los estándares y protocolos basados en texto, que hacen más fácil acceder a su contenido y entender su funcionamiento • Independencia del modo de transporte. SOAP puede funcionar sobre múltiples protocolos de transporte, como por ejemplo HTTP, HTTPS, HTTP-R, BEEP 4, JABBER 5, IIOP, SMTP o FTP. • Independencia del lenguaje de programación. El servidor y el cliente no necesitan estar escritos en el mismo lenguaje 4 BEEP (Blocks Extensible Exchange Protocolo ) responsable del transporte de mensajes entre las Aplicaciones de red - 37 - CAPITULO 3 3 SOLUCIÓN PROPUESTA Introducción Debido a la gran demanda y popularidad de dispositivos móviles entre los cuales tenemos los Smartphone (teléfonos inteligentes), con sistema operativo Android de Google, representan una nueva oportunidad de acceso para los sistemas informáticos. Frente a esta articulación se propone el diseño de un sistema prototipo de consulta y reserva de plazas en parqueaderos más cercano, el cual busca facilitar la información de disponibilidad de los parqueaderos que se registren a este sistema, permitiendo conocer el número de plazas libres y como resultado del mismo descongestionar las vías para el normal desenvolvimiento de los dueños de los automotores en las calles. De manera general el sistema de búsqueda propuesto basa su estructura en una aplicación web en donde los usuarios pueden utilizar accediendo a un servidor web a través de Internet o de una intranet mediante un navegador. Viendo en concepto tenemos: Clientes. Parqueaderos que usan un módulo web para la administración y facturación de las plazas de aparcamiento. Dueños de vehículos que usen el aplicativo móvil para la consultar plaza disponible y parqueadero más cercano. Servidor.- aloja a los módulos web, servicios web que serán consumidos por los clientes 5 JABBER es un protocolo abierto y extensible basado en XML, originalmente ideado para mensajería instantánea - 38 - Figura 3.1 Diagrama de Funcionamiento de la aplicación Autor: Teista Fuente: Tesista Por lo cual para el presente proyecto prototipo se ha escogido los siguientes Plataformas de programación para desarrollar la aplicación, 3.1 DESCRIPCIÓN DEL HARDWARE PARA EL DESARROLLO DEL PROTOTIPO Durante las última década hemos visto como la industria de la tecnología celular ha crecido a pasos acelerados por lo que es común encontrar dispositivos móviles (Smartphone) que ya no se limitan a solo llamar o enviar mensajes de texto, se podría decir que se han unificado múltiples dispositivos como (cámaras de fotos, dispositivos GPS, agendas electrónicas y aplicaciones lo que les hace más atractivos para el uso de los usuarios. Es por eso que no es tan difícil decidirse por un dispositivo móvil (Smartphone) que se adapte a las necesidades del desarrollo de esta aplicación de titulación. Razón por la cual, para mejorar la eficiencia de la solución se decidió integrar tecnología soportada en el equipo estandarizado como el que se detalla a continuación 3.1.1 TELÉFONO INTELIGENTE (SMARTPHONE). Es un teléfono inteligente (Smartphone) que incorpora un sistema - 39 - operativo para móviles, con capacidad de computación más avanzada y conectividad 3G/4G lo que permite acceso a internet de alta velocidad en prácticamente cualquier lugar donde se disponga. Los modelos actuales permiten táctiles ingresar información en sus pantallas añaden funcionalidades como cámara de fotos, reproductores multimedia, dispositivos GPS, navegadores web optimizados para sitios móviles. Acceso a datos de alta velocidad es proporcionada por una red Wi-Fi y de banda ancha móvil Entre los sistemas operativos móviles que posee estos teléfonos inteligentes modernos incluyen Google Android, de Apple iOS , Nokia Symbian , RIM BlackBerry OS , Samsung Bada , Microsoft Windows Phone , Hewlett-Packard webOS. Debido a lo anteriormente expuesto Smartphone se decidió seleccionar Samsung Galaxy S4 (ver en la figura) el debido a su tecnología táctil, GPS incluido, por el sistema operativo (Google Android 4.2) de grandes prestaciones, su procesador y conectividad 3G/4G que ayudara y garantizara una respuesta rápida y fluida de los datos a utilizarse en la aplicación que se desarrolla para este mismo dispositivo. Figura 3.2 Samsung Galaxy S4 Fuente: Sansung.com - 40 - 3.1.2 SISTEMA DE POSICIONAMIENTO GLOBAL “GPS” Ségún, THE CODE PROJECT, “Writing your own GPS Applicactions: Part2”, (2013) [23] define: Sistema de Posicionamiento Global (“GPS”, Global Positioning System), es un sistema de navegación global por satélite (“GNSS”, Global Navigation Satellite System) que permite determinar el posicionamiento y localización de un objeto en cualquier parte del globo terrestre • Funcionamiento de un GPS Su funcionamiento se basa en una red de 24 satélites puestos en órbita sobre el globo terráqueo con trayectorias sincronizadas para cubrir toda la superficie del mismo, utilizando el método de trilateración 6 inversa (triangulación) el receptor localiza automáticamente como mínimo 3 satélites de dicha red. El receptor GPS utiliza la información enviada por los satélites (tiempo en la que emitieron las señales, localización de los mismo) para tratar de sincronizar su propio reloj con el reloj atómico que poseen los satélites para luego calcular la distancia de cada satélite respecto al punto de medición y finalmente determinar la posición relativa respecto de los satélites involucrados. Cada satélite indica que el receptor se encuentra en un punto en la superficie de la esfera, con centro en dicho satélite y de radio la distancia total hasta el receptor. Obteniendo información de dos satélites se nos indica que el receptor se encuentra sobre la circunferencia que resulta cuando se intersecan las dos esferas. Es así como obteniendo información de más de tres satélites, eliminamos el inconveniente de la falta de sincronización de los relojes pudiendo así determinar una posición 3-D exacta (latitud, longitud y altitud) que además utiliza el principio 6 La trilateración es un método matemático para determinar las posiciones relativas de objetos usando la geometría de triángulos de forma análoga a la triangulación. A diferencia de ésta, que usa medidas de ángulo (junto con al menos una distancia conocida para calcular la localización del sujeto), - 41 - de dilución geométrica 7 (GDop o DOP Dilución de precisión) (Ver Figura 3-3) para tener una mayor precisión. Figura 3.3 (DOP) Dilución de la precisión geométrica Autor: Tesista Fuente: ArcGIS Resource Center • CAUSAS DE ERROR DE PRECISIÓN DEL GPS Existen varios fenómenos que pueden causar una mala precisión. Por ejemplo, cuando las señales de radio por satélite son transmitidas, estas son distorsionadas por la tropósfera y especialmente por la ionósfera. De hecho, los satélites que vuelan muy por debajo del horizonte no son buenos para conseguir una buena resolución (obtención de coordenadas) porque las señales viajan a través de la atmósfera. Algunos dispositivos GPS pueden inclusive excluir estos satélites de una solución para evitar los problemas de precisión que ellos podrían causar (Ver Figura 3.4). 7 Dilución geométrica es el Proceso de unión de dos o más polígonos mediante la eliminación de los lados comunes - 42 - Figura 3.4 Señal de radio de satélite 1 viaja a través de menos de la atmósfera, lo que resulta en una menor distorsión. Satélite 2 es bajo en el horizonte, sin embargo, lo que resulta en una distorsión atmosférica significativa. Autor: Tesista Fuente: ArcGIS Resource Center Afortunadamente, la distorsión atmosférica puede ser medida y corregida en su mayor parte. Esto se logra mediante el uso de estaciones terrestres GPS (Ver Figura 3.5). Figura 3.5 La distorsión en señales de radio son corregidas por la combinación de señales satelitales (1 y 2) con información de corrección transmitida vía estaciones terrestres GPS (3 y 4) Autor: Tesista Fuente: ArcGIS Resource Center - 43 - También existen errores de precisión si los satélites se salen de su órbita (errores de efemérides, (Ver Figura 3.6) o por señales retardadas (denominado efecto múltiple, (Ver Figura 3.7) producidas por rebote de las señales en edificios u otros obstáculos. Figura 3.6 Errores de Esféricos Autor: Tesista Fuente: ArcGIS Resource Center Figura 3.7 Error por efecto múltiple Autor: Tesista Fuente: ArcGIS Resource Center - 44 - Para seleccionar el hardware del GPS, no se tuvo dificultad alguna ya que como en el Smartphone ya viene incluido con este dispositivo no se incurrió en este gasto. Lo que facilita la configuración a la hora de probar el funcionamiento y abstracción de los datos de geo referencia del usuario de la aplicación móvil. 3.1.3 COMPUTADOR EL SISTEMA PROTOTIPO SE ALBERGARÁ EN UN EQUIPO DE LAS SIGUIENTES CARACTERÍSTICAS: Figura 3.8 Especificaciones de Computador Servidor Autor: Tesista Fuente: PropiaTesista 3.2 DESCRIPCIÓN DE LAS COMUNICACIONES Según el análisis que se ha realizado comunicaciones que se va para aplicar las utilizar para manejar el intercambio de información entre el servidor y los clientes Smartphone se hará uso de - 45 - tecnología basada en servicios web, conexiones de redes móviles y el uso de tramas JSON 3.2.1 REDES MÓVILES WWAN Figura 3.9 Red de área extendida inalámbrica (WWAN) Autor: Tesista Fuente: Redes móviles Son redes globales que abarcan países e incluso el planeta entero y que dotan de comunicaciones a nivel internacional. Debido al alto coste de implantación suelen ser redes privadas o gubernamentales que se utilizan para multitud de servicios que explicaremos a continuación: • GSM/2G: Sistema de comunicación móvil de segunda generación que soporta transmisión de voz y datos. Su velocidad es baja 9,6KB/s, tiene mucho tiempo de establecimiento (15segundos) y se tarifica por tiempo no por datos. • GPRS/2.5G: Surge para apaliar los déficit del GSM, con velocidades más altas (40 a 115 Kbps) que permiten conexión aceptables a Internet. Se tarifica por volumen de datos y no por tiempo. • 8 UMTS 8/3G: Es el estándar de tercera generación que viene UMTS (Universal Mobile Telecommunications System o servicio universal de telecomunicaciones móviles). - 46 - a proporcionar más velocidades de datos para permitir servicios de datos del tipo video llamada, localización y comercio electrónico. Su velocidad es de 2Mbps y también se tarifica por volumen de datos y no por tiempo. • La 4G La principal diferencia con las generaciones predecesoras será la capacidad para proveer velocidades de acceso mayores de 100 Mbit/s en movimiento y 1 Gbit/s en reposo, manteniendo una calidad de servicio (QoS) de punta a punta de alta seguridad que permitirá ofrecer servicios de cualquier clase en cualquier momento, en cualquier lugar, con el mínimo coste posible Por lo anterior expuesto y como se hace uso de un Smartphone con el cual se ha contratado un paquete de datos que soporta tecnología 3G y 4G lo que facilita y ayuda en la descarga y envió de datos desde el Smartphone al servidor de aplicación y viceversa. 3.2.2 SERVICIOS WEB (WEB SERVICE) En la presente aplicación se hará uso de servicios web que proporciona un medio estándar de interoperabilidad entre aplicaciones de software que se ejecutara en una variedad de plataformas, los cuales prestan servicios simples que pueden interactuar entres si para ofrecer servicios de valor añadido sofisticado En el plano conceptual, un servicio es un componente de software que se proporciona a través de una dirección de red o de la nube a la cual se accede. El consumidor y el proveedor de servicios utilizan mensajes para el intercambio de información que le da la solicitud de invocación y la respuesta se da en forma de documentos según las capacidades tecnológicas del receptor. Lo cual permite hacer uso de uno de los tipos de servicios web que se adapta a nuestra aplicación por lo que escogimos como - 47 - herramienta para transferir información es: RESTful Web services 3.2.3 RESTFUL WEB SERVICES Figura 3.10 RESTful Web Services Autor: Tesista Un servicio web RESTful (también llamada web RESTful API) es una implementación simple de servicios web que usa el protocolo HTTP con los principios de Representación de Transferencia de Estado (REST). Este es un estilo de arquitectura de software para sistemas hipermedia distribuidos en la World Wide Web. En un servicio web RESTful cumple con el objetivo principal de acceso a los recursos y a su vez a estos recursos los pude modificar, actualizar, hasta crear recursos propios para que puedan ser consumidos por otros usuarios. La definición de servicio web REST puede ser considerados en tres aspectos que logran la conexión con los recursos a ser consumidos. • El URI es una cadena de caracteres corta que identifica inequívocamente un recurso base para el servicio Web, - 48 - Normalmente estos recursos son accesibles en una red o sistema • El tipo MIME de los datos compatibles con el servicio web. Esto es a menudo JSON, XML o YAML, pero puede ser cualquier otro tipo MIME válido. • El conjunto de las operaciones apoyadas por el servicio web utilizando métodos HTTP (por ejemplo, POST, GET, PUT o DELETE). 3.2.4 TIPO JSON Entre los datos compatibles con el servicio web se ha decidido utilizar los datos JSON que es un texto basado en estándar abierto diseñado para un legible intercambio de datos El formato JSON se utiliza a menudo para realizar transmisión de datos estructurados sobre una conexión de red. Se utiliza principalmente para transmitir datos entre un servidor y la aplicación web, que sirve como una alternativa a XML. 3.3 DESCRIPCIÓN DEL SOFTWARE 3.3.1 MARCO DE DESARROLLO (JAVA, ANDROID) Con el crecimiento exponencial de Internet en los últimos años, las aplicaciones Web se han convertido en una parte básica y común dentro del desarrollo de software, estas han acaparado la atención no solo de la empresas que desean formar parte de este nuevo mundo, sino de aquellas que se han dedicado a las herramientas de desarrollo de software Dentro del desarrollo de este tipo de aplicaciones, Java juega un papel muy importante actualmente, ya que este es uno de los usos más comunes que se le da a este lenguaje de programación, además que - 49 - representa uno de los mejores medios para construir dichas aplicaciones, para el desarrollo de la aplicación utilizaremos un marco de desarrollo o framework que dentro del ambiente de desarrollo de software, es una estructura de soporte en la cual otro proyecto de software puede ser organizado y desarrollado ,típicamente un framework puede soporte de programas ,librerías entre otros software incluir para ayudar a desarrollar y unir diferentes componentes de un proyecto permitiendo a diseñadores y programadores concentrarse en los requerimientos proyecto ,reduciendo los posibles problemas del con las tecnologías utilizadas . Por lo cual se nos hace fácil utilizar el famoso patrón de diseño Modelo Vista Controlador (MVC, Model-View-Controller) que nos permitirá separar la lógica de la aplicación (Modelo) y la interfaz de usuario (Vista). Finalmente entre los muchos framework existentes en el mercado utilizaremos un framework de interfaz de usuario como Java Server Faces (JSF) para crear aplicaciones web en Java que sean dinámicas ,robustas y altamente escalables y cuya filosofía está basada en el uso de componentes para el desarrollo web acompañado de AJAX que no es un framework pero ayudara a reducir él envió de request al servidor y trata de realizar la mayor parte de las operaciones en la parte del cliente para acelerar y mejorar la interacción con los usuarios. De igual manera que las aplicaciones web en los últimos tiempos se han ido posesionando, de igual manera las aplicaciones móviles se están haciendo muy populares debido al uso de dispositivos móviles con altas prestaciones como las Tablet y Smartphone lo cual hace prever que estas aplicaciones serán muy utilizadas, por la facilidad de interactuar y acceder a recursos de los servidores de aplicaciones. En este nivel también se encuentran las aplicaciones desarrolladas en Android de Google, que usan un lenguaje de java y una máquina virtual Dalvik que permite generar códigos más eficientes pensando en - 50 - procesadores más pequeños y este constituye el framework de aplicación el cual representa fundamentalmente el conjunto de herramientas de cualquier aplicación a desarrollarse en Android. 3.3.2 PLATAFORMA DE DESARROLLO JAVA Para el desarrollo de esta aplicación de titulación se va a tomar como lenguaje de programación a Java por ser un lenguaje que presta todas las garantías en cuanto a seguridad, flexibilidad y por ser software libre de licencias. La plataforma Java es el nombre de un entorno o plataforma de computación capaz de ejecutar aplicaciones desarrolladas usando el lenguaje de programación Java u otros lenguajes que compilen a bytecode y un conjunto de herramientas de desarrollo. En su forma más simple, el entorno en tiempo de ejecución de Java está conformado por una Máquina Virtual de Java o JVM, un conjunto de bibliotecas Java y otros componentes necesarios para que una aplicación escrita en lenguaje Java pueda ser ejecutada. El JRE actúa como un "intermediario" entre el sistema operativo y Java. La JVM es el programa que ejecuta el código Java previamente compilado (bytecode) mientras que las librerías de clases estándar son las que implementan el API de Java. Ambas JVM y API deben ser consistentes entre sí, de ahí que sean distribuidas de modo conjunto. Un usuario sólo necesita el JRE para ejecutar las aplicaciones desarrolladas en lenguaje Java, mientras que para desarrollar nuevas aplicaciones en dicho lenguaje es necesario un entorno de desarrollo, denominado JDK, que además del JRE (mínimo imprescindible) incluye, entre otros, un compilador para Java. - 51 - Figura 3.11 Java Virtual Machine Autor: Tesista Fuente: Clear Minds It En el tiempo de ejecución, el bytecode es normalmente interpretado o compilado a código nativo para la ejecución, aunque la ejecución directa por hardware del bytecode por un procesador Java también es posible. Figura 3.12 Compilación y Ejercitación de un programa Java Autor: Tesista Fuente: Clear Minds It - 52 - 3.3.3 PLATAFORMA JAVA ENTERPRISE EDITION O JAVA EE Es una plataforma de programación, parte de la Plataforma Java para desarrollar y ejecutar software de aplicaciones en el lenguaje de programación Java. Permite utilizar arquitecturas de multicapas distribuidas y se apoya ampliamente en componentes de software modulares ejecutándose sobre un servidor de aplicaciones. 3.3.4 SERVIDOR DE APLICACIÓN JBOSS AS Es un servidor de aplicaciones y Web uno de los más completos que implementa la plataforma Java, Enterprise Edition (Java EE), Al estar basado en Java, JBoss puede ser utilizado en cualquier sistema operativo para el que esté disponible la máquina virtual de Java 3.3.5 ECLIPSE IDE Eclipse es una plataforma de desarrollo open source basada en Java. Es un desarrollo de IBM cuyo código fuente fue puesto a disposición de los usuarios. En sí mismo Eclipse es un marco y un conjunto de servicios para construir un entorno de desarrollo a partir de componentes conectados (plug-in). Hay plug-ins para el desarrollo de Java (JDT Java Development Tools) así como para el desarrollo en C/C++, COBOL, etc - 53 - Figura 3.13 IDE Eclipse Autor: Tesista Fuente: Propia 3.3.6 JAVA SERVER FACES En el desarrollo de la aplicación prototipo se hará uso de JSF que es un framework que nos permite simplificar el desarrollo de interfaces de usuario de esta aplicación Java para la web basada en el patrón MVC JSF utiliza paginas JSP 9 para generar vistas, añadiendo bibliotecas de etiquetas propias para crear los elementos de formularios HTML. JSF nos permite asociar a cada vista con formularios un conjunto de objetos java manejados por un controlador (Managed beans) que facilitan la manipulación y visualización de los valores mostrados en los diferentes elementos de los formularios. Normalmente las aplicaciones web se construyen como un conjunto de pantallas con las que va interactuando el usuario. Estas 9 JSP es una tecnología que ayuda a los desarrolladores de software a crear páginas web dinámicas basadas en HTML, XML - 54 - pantallas contienen textos, botones, imágenes, tablas y elementos de selección que el usuario modifica. Todos estos elementos estarán agrupados en formularios HTML, que es la manera en que las páginas web envían la información introducida por el usuario al servidor. La principal función del controlador JSF es asociar a las pantallas, clases java que recogen la información introducida y que disponen de métodos que responden a las acciones del usuario. JSF nos resuelve de manera muy sencilla y automática muchas tareas como son las siguientes. • Muestra datos al usuario en cajas de texto y tablas. • Recoge los datos introducidos por el usuario en los campos del formulario. • Controla el estado de los controles del formulario según el estado de la aplicación, activando, ocultando o añadiendo y eliminando controles y demás elementos • Realiza validaciones y conversiones de los datos introducidos por el usuario • Rellena campos, listas, combos y otros elementos a medida que el usuario va interactuando con la pantalla • Controla los eventos que ocurren en los controles (pulsaciones de teclas, botones y movimientos del ratón). Las aplicaciones JSF están formadas por los siguientes elementos principales: • Páginas JSP que incluyen los formularios JSF. Estas páginas generarán las vistas de la aplicación - 55 - • Beans java que se conectan con los formularios JSF • Clases java para la lógica de negocio y utilidades. • Ficheros de configuración, componentes a medida y otros elementos del framework. • Resto de recursos de la aplicación web: recursos estáticos, JavaScript y otros elementos. En la Figura 3.13 poder observar un esquema como se interrelacionan los controladores (Managed Bean) con las paginas xhtml para el funcionamiento de las páginas que el usuario final va manejar para hacer las peticiones al servidor. Figura 3.14 Controlador (Managed Bean) Autor : Tesista Fuente: Clear Minds it 3.3.7 PRIMEFACES Prime Faces es un componente para JavaServer Faces (JSF) de código abierto que cuenta con un conjunto de componentes enriquecidos que facilitan la creación de las aplicaciones web. - 56 - Primefaces está bajo la licencia de Apache License V2. Una de las ventajas de utilizar Primefaces, es que permite la integración con otros componentes como por ejemplo RichFaces. 3.3.8 AJAX AJAX, acrónimo de Asynchronous JavaScript And XML (JavaScript asíncrono y XML), es una técnica de desarrollo web para crear aplicaciones interactivas o RIA (Rich Internet Applications). Estas aplicaciones se ejecutan en el cliente, es decir, en el navegador de los usuarios mientras se mantiene la comunicación asíncrona con el servidor en segundo plano. De esta forma es posible realizar cambios sobre las páginas sin necesidad de recargarlas, mejorando la interactividad, velocidad y usabilidad en las aplicaciones. As tecnologías que forman AJAX son: • XHTML y CSS, para crear una presentación basada en estándares. • DOM, para la interacción y manipulación dinámica de la presentación. • XML, XSLT y JSON, para el intercambio y la manipulación de información. • XMLHttpRequest, para el intercambio asíncrono de información. • JavaScript, para unir todas las demás tecnologías. Figura 3.15 Tecnologías agrupadas bajo el concepto de AJAX Autor: Tesista Fuente: Tecnologías Ajax - 57 - 3.3.9 EJB ENTERPRISE JAVABEANS En el desarrollo del prototipo también vamos hacer uso de los Enterprise JavaBeans (también conocidos por sus siglas EJB) son una de las API que forman parte del estándar de construcción de aplicaciones empresariales J2EE (ahora JEE 6.0) de Oracle Corporation (inicialmente desarrollado por Sun Microsystems). Su especificación detalla cómo los servidores de aplicaciones proveen objetos desde el lado del servidor Los EJB nos permiten realizar lo siguiente: • Comunicación remota utilizando CORBA 10 • Transacciones • • • • Control de la concurrencia Eventos utilizando JMS (Java messaging service) Servicios de nombres y de directorio Seguridad Ubicación de componentes en un servidor de aplicaciones. • Los EJB proporcionan un modelo de componentes distribuido estándar del lado del servidor. El objetivo de los EJB es dotar al programador de un modelo que le permita abstraerse de los problemas generales de una aplicación empresarial (concurrencia, transacciones, persistencia, seguridad, etc.) para centrarse en el desarrollo de la lógica de negocio en sí. El hecho de estar basado en componentes permite que éstos sean flexibles y sobre todo reutilizables. 3.3.10 ARQUITECTURA DE EJB Los EJBs se ejecutan dentro de un contenedor EJB. Un servidor JEE consta de un contenedor Web y un contenedor EJB. 10 Common Object Request Broker Architecture (CORBA) es un standard definido por el Object Management Group (OMG) que permite que diversos componentes de software escritos en múltiples lenguajes de programación y que corren en diferentes computadoras puedan trabajar juntos - 58 - Figura 3.16 Arquitectura EJB Autor: Tesista Fuente: Clear Minds It La ventaja de trabajar con EJBs es que no tenemos q reinventar la rueda y utilizamos todos los servicios de infraestructura que ya nos brinda el servidor de aplicaciones y nos concentramos en desarrollar la lógica de la aplicación. Existen 2 tipos de componentes EJB: Session Beans y Message Driven Beans (mdbs) como se muestra en la Figura 3.12. Con respecto a la arquitectura de capas los Session Beans y los mdbs implementan la capa de lógica de negocio, mientras que los Entities trabajan en la capa de persistencia. Los MDBs nos permiten manejar procesos asíncronos y se utilizan también para los procesos de integración, a diferencia de los Session Beans, utilizan un mecanismo de comunicación por mensajería en lugar de invocación remota (RMI) Mediante JPA podemos mapear los objetos java a tablas y registros de la base de datos, además podemos ejecutar sentencias en la base a nivel de objetos, utilizando JPQL (Java Persistence Query Language) - 59 - lo cual nos permite una fácil programación a la hora de utilizar los recursos de la base de datos. Figura 3.17 Conexión JQPL (Java Persistence Query Language) Autor : Tesista Fuente: Clear Minds It 3.3.11 SGBD POSTGRESQL Es un SGBD relacional orientado a objetos y libre. Publicado bajo la licencia BSD. Características Algunas de sus principales características son, entre otras: • Alta concurrencia Mediante un sistema denominado MVCC (Acceso concurrente multiversión, por sus siglas en inglés) PostgreSQL permite que mientras un proceso escribe en una tabla, otros accedan a la - 60 - misma tabla sin necesidad de bloqueos. Cada usuario obtiene una visión consistente de lo último a lo que se le hizo commit. Esta estrategia es superior al uso de bloqueos por tabla o por filas común en otras bases, eliminando la necesidad del uso de bloqueos explícitos. • Amplia variedad de tipos nativos PostgreSQL provee nativamente soporte para: Números de precisión arbitraria. Texto de largo ilimitado. Figuras geométricas (con una variedad de funciones asociadas). Direcciones IP (IPv4 e IPv6). Bloques de direcciones estilo CIDR. Direcciones MAC. Arrays. Adicionalmente los usuarios pueden crear sus propios tipos de datos, los que pueden ser por completo indexables gracias a la infraestructura GiST de PostgreSQL. Algunos ejemplos son los tipos de datos GIS creados por el proyecto PostGIS. • Claves ajenas también denominadas Llaves ajenas o Claves Foráneas (foreign keys). • Disparadores (triggers): Un disparador o trigger se define como una acción específica que se realiza de acuerdo a un evento, cuando éste ocurra dentro de la base de datos. En PostgreSQL esto significa la ejecución de un procedimiento almacenado basado en una determinada acción sobre una tabla específica. Ahora todos los disparadores se definen por seis características: El nombre del disparador o trigger El momento en que el disparador debe arrancar El evento del disparador deberá activarse sobre... La tabla donde el disparador se activará - 61 - La frecuencia de la ejecución La función que podría ser llamada Para la administración de la base de datos se usara PgAdmin que es una herramienta de código abierto, donde tiene una interfaz gráfica que nos permitirá usar como herramienta de consultas SQL, disponible para para varios sistemas operativos Microsoft Windows, Linux, FreeBSD, Mac OSX y Solaris. Figura 3.18 PgAdmin, Administración Base de Datos Autor: Tesista Fuente: Propia 3.3.12 SISTEMA OPERATIVO ANDROID DE GOOGLE Para el desarrollo de la aplicación prototipo se tomó este sistema operativo por el fácil acceso a herramientas de desarrollo, por ser de código abierto y por su gran crecimiento en la cuota del mercado de sistemas para dispositivos móviles. Para el desarrollo de la aplicación para el dispositivo móvil se utilizara el - 62 - sistema operativo Android en su versión de la lista de paquetes disponibles seleccionaremos las de“Android SDK Platform-tools“ (Figura 3.16) las plataformas “ Android 4.1 (API 16)” y “Android 2.2 (API 8)“, y el paquete extra “Android Support Library“, lo cual significa que la aplicación correrá en Smartphone con versiones de 2.2 (Froyo) como versión mínima y V4.2 (Jelly Bean) versión máxima Android es una plataforma para dispositivos móviles que contiene una fuente de software donde se incluyen un sistema operativo, middleware 11 y aplicaciones básicas para el usuario, con las siguientes características: • Desarrollo rápido de aplicaciones, que sean reutilizables y verdaderamente portables entre diferentes dispositivos. • Cuenta con su propia máquina virtual, Dalvik, que interpreta y ejecuta Código escrito en Java. • Permite la representación de gráficos 2D y 3D. • Posibilita el uso de bases de datos. • Soporta un elevado número de formatos multimedia. • Servicio de localización GSM. • Controla los diferentes elementos hardware: Bluetooth, Wi-Fi, cámara fotográfica o de vídeo, GPS, acelerómetro, infrarrojos, etc. • Cuenta con un entorno de desarrollo muy cuidado mediante un SDK disponible de forma gratuita. • Ofrece un plugin para uno de los entornos de desarrollo más populares, Eclipse, y un emulador integrado para ejecutar las aplicaciones Un dispositivo Android cuenta con la siguiente arquitectura (Figura 12), la misma que se procederá a detallar sus componentes más importantes. 11 Middleware es un software de computadora que conecta componentes de software o aplicaciones para que puedan intercambiar datos o comunicarse entre si - 63 - Figura 3.19 Arquitectura de Android Autor: Tesista Fuente: Scoop.it La capa más inmediata es la que corresponde al núcleo de Android, utiliza el núcleo de Linux 2.6 como una capa de abstracción para el hardware disponible en los dispositivos móviles, la cual contiene los drivers necesarios para cualquier componente de hardware pueda ser utilizado. Cabe recalcar que el fabricante es el encargado de crear las correspondientes librerías de control o drivers. La siguiente capa corresponde con las librerías utilizadas por Android, estas han sido escritas utilizando C/C++ y proporcionan a Android la mayor parte de sus capacidades y características: • La librería libc incluye todas las cabeceras y funciones según el estándar del lenguaje C. Todas las demás librerías se definen en este lenguaje. • La librería SurfaceManager es la encargada de componer los - 64 - diferentes elementos de navegación de pantalla. Gestiona también las ventanas pertenecientes a las distintas aplicaciones activas en cada momento. • OpenGL/SL y SGL representan las librerías gráficas y por tanto sustentan la capacidad gráfica de Android. • La librería MediaPlayer proporciona todos los códecs necesarios para el contenido multimedia soportado en Android (vídeo, audio, imágenes estáticas y animadas, etc.) • A través de la librería SQLite, Android ofrece la creación y gestión de bases de datos relacionales. • La librería WebKit proporción un motor para las aplicaciones de tipo navegador, y forma el núcleo del actual navegador incluido por defecto en la plataforma Android. En este nivel también se encuentran las librerías de Android, entre las cuales Encontramos las CoreLibraries, estas están desarrolladas en lenguaje java, y la máquina virtual Dalvik, que constituyen el framework de aplicaciones el cual representa fundamentalmente el conjunto de herramientas de cualquier aplicación. Dentro de este framework de aplicaciones podemos mencionar algunas de las librerías más importantes: • Activity Manager: Importante conjunto de APIs que gestiona el ciclo de vida de las aplicaciones en Android. • Windows Manager: Gestiona las ventanas de las aplicaciones • TelephoneManager: Incluye todas las APIs vinculadas a las funcionalidades propias del teléfono (llamadas, mensajes, etc.) • Content Providers: Permite a cualquier aplicación compartir sus datos con las demás aplicaciones de Android. Por ejemplo, gracias a esta API la información de contactos, agenda, mensajes, etc. Será accesible para otras aplicaciones. - 65 - • View System: Proporciona un gran número de elementos para poder construir interfaces de usuario (GUI), como listas, mosaicos, botones, check-boxes, tamaño de ventanas, control de las interfaces mediante tacto o teclado, etc. Incluye también algunas vistas estándar para las • funcionalidades más frecuentes. Location Manager: Posibilita a las aplicaciones la obtención de información de localización y posicionamiento. • Location Manager: Posibilita a las aplicaciones la obtención de información de localización y posicionamiento. • Notification Manager: Permite que las aplicaciones usen un mismo formato para comunicar al usuario eventos que ocurran durante su ejecución, por ejemplo, una llamada entrante, un mensaje recibido, conexión Wi-Fi disponible, ubicación en un punto determinado, etc La máquina virtual Dalvik ha sido optimizada y adaptada a las peculiaridades propias de los dispositivos móviles (menor capacidad de proceso, baja memoria, alimentación por batería, etc.) y trabajar con ficheros de extensión .dex (DalvikExecutables). Dalvik no trabaja directamente con el bytecode de Java, sino que lo transforma en un código más eficiente que el original, pensado para procesadores pequeños. Los ficheros .class de Java se compilan en ficheros .dex, de forma que cada fichero.dex puede contener varias clases. Después, este resultado se comprime en un único archivo de extensión .apk (AndroidPackage), el cual es el que se distribuirá a los dispositivos móviles. Una vez vista la arquitectura de Android, debemos revisar cuáles son los componentes básicos de una aplicación: - 66 - • Activity: Un componente Activity refleja una determinada actividad llevada a cabo por una aplicación y se asocia típicamente a una ventana o interfaz de usuario. • BroadcastIntent Receiver: Se utiliza para lanzar una ejecución dentro de la aplicación actual cuando un determinado evento se produzca. El sistema lanzará la aplicación si es necesario cuando el evento monitorizado tenga lugar. • Service: Representa una aplicación ejecutada sin interfaz de usuario y que generalmente tiene lugar en segundo plano mientras otras aplicaciones son las que están activas en la pantalla del dispositivo. • Content Provider: Una clase que implemente este componente contendrá una serie de métodos que permite almacenar, recuperar, actualizar y compartir los datos de una aplicación ya sea en archivos o la base de datos SQLite. Cada uno de los componentes básicos de Android tiene un ciclo de vida bien definido; esto implica que el desarrollador puede controlar en cada momento en qué estado se encuentra dicho componente, pudiendo así programar las acciones. El componente Activity, probablemente el más importante tiene el siguiente ciclo de vida: - 67 - Figura 3.20 Ciclo de vida de un Activity Fuente: Scoop it En la Figura 3.20 podemos observar que entre los principales eventos que tenemos son: • onCreate(), onDestroy(): Abarcan todo el ciclo de vida. Cada uno de estos métodos representan el principio y el fin de la actividad • onStart(), onStop(): Representan la parte visible del ciclo de vida. Desde onStart() hasta onStop(), la actividad será visible para el usuario. • onResume(), onPause(): Delimitan la parte útil del ciclo de vida. Desde onResume() hasta onPause(), la actividad no es visible. La mayoría de las medidas de seguridad entre el sistema y las aplicaciones deriva de los estándares de Linux 2.6. Por defecto, - 68 - ninguna aplicación tiene permiso para realizar ninguna operación o comportamiento que pueda impactar negativamente en la ejecución de otras aplicaciones o del sistema operativo. La única forma de poder saltar estas restricciones impuestas por Android, es mediante la declaración explícita de un permiso que autorice a llevar a cabo una determinada acción. Entorno de desarrollo Incluye un emulador de dispositivos, herramientas para depuración de memoria y análisis del rendimiento del software. El entorno de desarrollo integrado es Eclipse (actualmente 3.4, 3.5 o 3.6) usando el plugin de Herramientas de Desarrollo de Android. Figura 3.21 IDE Eclipse – Para Android Autor: Tesista Fuente: Tesista - 69 - Figura 3.22 Android Developer Tools Autor: Tesista Fuente: Tesista Con todo lo anterior expuesto se ha desarrollado la siguiente propuesta de solución para mitigar la búsqueda de parqueadero en el Distrito Metropolitano de Quito, siempre tomando en cuenta que esta solución no quiere decir que lejos de la realidad está pensar que la creación de un sistema de consulta motive a los ciudadanos a sacar sus vehículos y saturar las estrechas calles de la ciudad, sino más bien, el proyecto busca que los vehículos sean mejor estacionados y no ocupen un indeseado lugar en las vías, dejando más espacio libre al tránsito de personas, vehículos y bicicletas. 3.4 Modelo Matemático Lo que se pretende con este modelo matemático es determinar la distancia más corta entre el auto y los parqueaderos disponibles que es la esencia de nuestro proyecto, para definirlo se hará uso de la metodología fundamental que usa la teoría aceptada de la ciencia fundamental para obtener ecuaciones. Para localizar un punto sobre la superficie de la Tierra, es necesario conocer primero las coordenadas donde se encuentra ubicado ese punto, es decir, la latitud (paralelos) y la longitud. Conocer el valor de las - 70 - coordenadas es imprescindible para poder ubicar la posición del automóvil por medio del uso del GPS del Smartphone. Figura 3.23 División de la tierra por Meridianos Autor: Tesista Fuente: ArcGIS Resource Center Si tenemos dos puntos de la tierra cuya posición exacta conocemos por sus coordenadas geográficas, el valor de la distancia que los separa lo proporciona la trigonometría esférica. Figura 3.24 Triangulo Esférico Autor: Tesista Fuente: ArcGIS Resource Center - 71 - Consideremos el triángulo esférico de vértices A, B y el polo Norte P. Los lados de este triángulo esférico son: • AB = p = distancia entre A y B • AP = b = 90° - latitud del punto A • BP = a = 90° - latitud del punto B El ángulo P del triángulo esférico, es decir el formado por los lados a y b vale: 𝑃 = Á𝑛𝑛𝑛𝑛𝑛 𝑂𝑂 − Á𝑛𝑛𝑛𝑛𝑛 𝑂𝑂 𝑃 = 𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿 𝑝𝑝𝑝𝑝𝑝 𝐵 − 𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿 𝑝𝑝𝑝𝑝𝑝 𝐴 Aplicando la primera fórmula de Bessel de la trigonometría esférica (Teorema del Coseno): 𝐶𝐶𝐶 𝑝 = 𝐶𝐶𝐶 𝑎 ∗ 𝐶𝐶𝐶 𝑏 + 𝑆𝑆𝑆 𝑎 ∗ 𝑆𝑆𝑆 𝑏 ∗ 𝐶𝐶𝐶 𝑃 La latitud de un punto se suele expresar habitualmente por la letra griega φ, mientras que para la longitud se reserva la letra griega λ. Usando esta simbología la expresión anterior se escribe: 𝐶𝐶𝐶 𝑝 = 𝐶𝐶𝐶 (90 − 𝜑𝑎 ) ∗ 𝐶𝐶𝐶 (90 − 𝜑𝑏 ) + 𝑆𝑆𝑆 (90 − 𝜑𝑎 ) ∗ 𝑆𝑆𝑆 (90 − 𝜑𝑏 ) ∗ 𝐶𝐶𝐶 (𝜆𝑎 + 𝜆𝐵 ) El valor complementario de la latitud 90 – suele recibir el nombre de colatitud. Entonces 𝐶𝐶𝐶 (90 − 𝜑𝑎 ) = 𝑆𝑆𝑆𝜑𝑎 𝐶𝐶𝐶 (90 − 𝜑𝑏 ) = 𝑆𝑆𝑆𝜑𝑏 Luego: 𝐶𝐶𝐶 𝑝 = 𝑆𝑆𝑆 (𝜑𝑎 ) ∗ 𝑆𝑆𝑆 (𝜑𝑏 ) + [𝐶𝐶𝐶 𝜑𝑎 ∗ 𝐶𝐶𝐶𝜑𝑏 ∗ 𝐶𝐶𝐶(𝜆𝑎 − 𝜆𝑏 )] - 72 - Considerando a la tierra como una esfera de radio ecuatorial a, la distancia den función del lado p (en grados): 𝑑 = 𝑝 ∗ 2 ∗ 𝜋 ∗ 𝑎/360 𝑝 = 𝑑 ∗ 360/(2 ∗ 𝜋 ∗ 𝑎) De modo que con el valor a = 6378’1 Km 𝑝 = 𝑑 ∗ 111′3 = 𝑑/𝑘 Llamando k=111’3, que expresa la distancia en kilómetros entre dos paralelos separados por un grado de latitud. Sustituyendo en la expresión anterior: 𝐶𝐶𝐶 𝑝 = 𝑆𝑆𝑆 (𝜑𝑎 ) ∗ 𝑆𝑆𝑆 (𝜑𝑏 ) + [𝐶𝐶𝐶 𝜑𝑎 ∗ 𝐶𝐶𝐶𝜑𝑏 ∗ 𝐶𝐶𝐶(𝜆𝑎 − 𝜆𝑏 )] Y despejado la distancia 𝐷 = 𝑘𝑘𝑘𝑘𝑘{𝑆𝑆𝑆 (𝜑𝑎 ) ∗ 𝑆𝑆𝑆 (𝜑𝑏 ) + [𝐶𝐶𝐶 𝜑𝑎 ∗ 𝐶𝐶𝐶𝜑𝑏 ∗ 𝐶𝐶𝐶(𝜆𝑎 − 𝜆𝑏 )]} Para obtener la distancia entre dos puntos de la Tierra, deberás partir de los datos de latitud y longitud. Como los datos normalmente los tenemos en grados, minutos y segundos, debes convertirlos a grados simples o notación decimal usando la fórmula: 𝑔𝑔𝑔𝑔 𝑠𝑠𝑠𝑠𝑠𝑠𝑠 = 𝑔𝑔𝑔𝑔° + (𝑚𝑚𝑚′⁄60) + (𝑠𝑠𝑠′′⁄60/60)) ∗ (±1), +1 = 𝑛𝑛𝑛𝑛𝑛, 𝑒𝑒𝑒𝑒, - 73 - − 1𝑠𝑠𝑠 , 𝑜𝑜𝑜𝑜𝑜 3.4.1 SIMULACIÓN DE CÁLCULO DE DISTANCIAS Para la simulación se utilizara Microsoft Office Excel, donde primero se realiza la conversión de grados, minutos y segundos a solo grados para luego multiplicar por la constante como se detalla más adelante. Figura 3.25 Convertidor de Coordenadas Autor: Tesista Fuente: Propia Y luego convertirlos a radianes 𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟 = 𝑔𝑔𝑔𝑔 𝑠𝑠𝑠𝑠𝑠𝑠 ∗ 𝜋 180 Para aplicarlos en la ecuación: 𝑃 = 𝑆𝑆𝑆(𝑙𝑙𝑙𝑙𝑙𝑙𝑙1) ∗ 𝑆𝑆𝑆(𝑙𝑙𝑙𝑙𝑙𝑙𝑙2) + [𝐶𝐶𝐶(𝑙𝑙𝑙𝑙𝑙𝑙𝑙1) ∗ 𝐶𝐶𝐶(𝑙𝑙𝑙𝑙𝑙𝑙𝑙2) ∗ 𝐶𝐶𝐶(𝑙𝑙𝑙𝑙𝑙𝑙𝑙1 − 𝑙𝑙𝑙𝑙𝑙𝑙𝑙2)] 𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷 (𝑔𝑔𝑔𝑔 𝑠𝑠𝑠𝑠𝑠𝑠) = 𝐴𝐴𝐴𝐴(𝑃) ∗ 180 𝜋 Para obtener la distancia en kilómetros no olvidar considerar que 1° = 111 mil kilómetros 𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷 (𝐾𝐾) = 𝐷 ∗ 111,194 - 74 - Para obtener la distancia en Millas 𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷 (𝑀𝑀𝑀𝑀𝑀𝑀) = 𝐷 ∗ 69,09 Para verificar si los cálculos de la simulación fueron realizados con precisión se ingresa a la página web http://www.tutiempo.net/p/distancias/calcular_distancias.html Figura 3.26 Calculador de distancias entre dos puntos de la Tierra Autor:Tesiata Fuente: www.tutiempo.net 3.5 Información de Tipos de Parqueaderos Según, AGENCIA PÚBLICA DE NOTICIAS DE QUITO, ”Municipio de Quito” (2013) [15] define: En el sistema prototipo tendrá un módulo de información sobre los tipos de parqueaderos que ha implementado el municipio Metropolitano de Quito. Se verificara siempre y cuando el usuario tenga plan de datos para hacer la actualización de la información. Por consiguiente ha generado cinco tipos de parqueaderos según la - 75 - Corpaire alrededor del distrito Metropolitano como son: 3.5.1 DE BORDE: Que se encuentran ubicados en el perímetro de restricción del “pico y placa” como los que se encuentran en: 1. El Condado 2. Monteolivo 3. Cuscungo 4. Carapungo 5. Las Cuadras Entre estos suman un total de 1280 parqueaderos. 3.5.2 INTERMODALES Son parqueaderos que se encentran en el interior de la ciudad que promueven el intercambio modal en donde pueden dejar sus vehículos en estos estacionamientos y acceder al transporte público como El Trolebús, Eco vía, Corredor Central Norte y buses convencionales de transporte . Estos estacionamientos serían 1. Estación Trole "La Y" 2. Terminal Quitumbe 3. Río Coca (detrás de Terminal Interparroquial) 4. Plataforma La Ofelia 3.5.3 ZONA AZUL Los estacionamientos públicos localizados en el interior de este hipercentro, plazas para público de uso rotativo Por nombrar algunas 1. La Mariscal. 2. La Pradera. 3. La Carolina. 3.5.4 ZONA AZUL UNIVERSITARIA Son zonas que se encuentran en las cercanías de las diferentes - 76 - universidades, por nombrar algunas tenemos: 1. 2. 3. 4. 5. 6. 7. 8. 9. Jorge Washington entre av. 12 de Octubre y Tamayo. Gral. Francisco Robles entre av. 12 de Octubre y Tamayo. Vicente Ramón Roca entre av. 12 de Octubre y Tamayo. Jerónimo Carrión entre av. 12 de Octubre y Tamayo. Ignacio de Veintimilla entre av. 12 de Octubre y Tamayo. Mena Caamaño entre av. 12 de Octubre e Isabel La Católica. Tamayo entre av. Colón y Luis Cordero. Camilo Destruge entre Francisco Salazar y av. Colón. Francisco Salazar entre av. 12 de Octubre y Tamayo. 3.5.5 CETRO HISTÓRICO Son parqueaderos que se encuentran en la parte del centro históricoasi tenemos los siguientes: 1. CADISÁN 2. EL TEJAR 3. MONTÚFAR 1 4. MONTÚFAR 2 5. LA RONDA 6. SAN BLAS 7. YAKU - 77 - CAPITULO 4 4 4.1 DESARROLLO DEL SOFTWARE DEL PROTOTIPO Gestión del Proyecto Prototipo La gestión del proyecto prototipo está enfocado a definir los esfuerzos temporales para llevar acabo la creación del software QParking. Para esto se genera un diagrama de ciclo de vida clásico de un proyecto, para desarrollar el cronograma de actividades. Figura 4.1 Ciclo de vida de un proyecto Autor: Tesista Fuente: Internet Con lo declara anteriormente se procede a desarrollar el cronograma de tiempos y tareas para el software prototipo. El proyecto prototipo está constituido por 5 etapas que en este caso serían los capítulos de esta tesina que empieza a - 78 - desarrollarse desde marzo de 2012 a octubre de 2013 en un tiempo aproximado de la siguiente manera: Figura 4.2 Cronograma Qparkuing Autor: Tesista Fuente: Propia Para el desarrollo del prototipo se generaran 40 tareas que se irán realizando conforme se vaya culminando las etapas de cada capítulo que estén concadenadas para hacer optimo el desarrollo de esta tesina. El cronograma completo se podrá observar en los Anexos 4.2 Metodología de desarrollo de software Las metodologías imponen un proceso disciplinado sobre el desarrollo de software con el fin de hacerlo más predecible y eficiente. Características Estimación de requerimientos y alcances Integra todos los ciclos de desarrollo tradicionales Puntos de control específicos Utiliza prototipos Relación costo vs cambios en las fases de desarrollo. Interacción con el usuario en todas - 79 - RUP 2 RAD 1 XP 1 2 0 1 2 2 2 1 1 0 2 1 0 1 2 2 las fases de desarrollo Posibilidad de trabajar con herramientas CASE Interacción con el usuario en la fase de desarrollo Nivel de conocimiento previo de la metodología Reutilización de componentes Tabla 4.1 2 2 2 0 1 2 2 0 0 2 2 1 Cuadro de comparación de Metodologías Autor: Tesista Fuente: Internet Para el desarrollo de este prototipo he escogido una metodología ágil y estándar. Después de la comparación de las distintas metodologías 4.2.1 METODOLOGÍA RUP (PROCESO RACIONAL UNIFICADO) Según, WIKIPEDIA.ORG,”rup”, (2012) [24] define: Es un proceso de desarrollo de software y junto con el Lenguaje Unificado de Modelado UML, constituye la metodología estándar más utilizada para el análisis, implementación y documentación de sistemas orientados a objetos. El RUP no es un sistema con pasos firmemente establecidos, sino un conjunto de metodologías adaptables al contexto y necesidades de cada proyecto. Cambiar el “proceso de producción” de un negocio siempre significa un alto riesgo para el negocio y una gran inversión .Gracias a RUP se puede implementar una manera estándar y que sea comprensiva para los involucrados en el proceso de desarrollo del sistema ,ya sean analistas ,programadores e incluso los mismos clientes - 80 - RUP se basa en casos de uso para describir lo que se espera del Software y está muy orientado a la arquitectura del sistema, documentándose lo mejor posible, basándose en UML (Unified Modeling Language) como herramienta principal. RUP es un proceso muy general y muy grande, por lo que antes de usarlo habrá que adaptarlo a las características del prototipo. Por suerte ya hay muchos procesos descritos que son versiones reducidas del RUP. RUP es un proceso para el desarrollo de un proyecto de un software que define claramente quien, cómo, cuándo y qué debe hacerse en el proyecto. Como 5 características esenciales: • Guiado por los Casos de Uso, lo que permite conocer de la mejor manera las necesidades y requisitos en las que debe enfocarse el sistema a desarrollar. • Centrado en la Arquitectura, lo que permite focalizar las actividades de desarrollo en aquellas que conforman elementos críticos del sistema • Iterativo, lo que permite construir varias versiones del sistema antes de su finalización. • Unifica al equipo, debido a que todos los desarrolladores del sistema deben interactuar entre sí para lograr la culminación del sistema. • Divide el proceso, lo que permite mejorar el desarrollo ya que cada una de las fases cumple con varios objetivos específicos que permiten el control de los procesos. El desarrollo de este Proyecto de Titulación se basará en la Metodología RUP se desarrollará el prototipo de este proyecto a través de todas las fases de la metodología considerando únicamente una sola iteración. - 81 - El ciclo de vida RUP Figura 4.3 El ciclo de vida RUP es una Autor: Tesista Fuente:Wikipedia Una vez analizada la metodología RUP y sus características, se puede concluir que es la mejor solución para el desarrollo del diseño y prototipo de un sistema de búsqueda de parqueaderos Q-PARKING, ya que permitirá definir de manera clara y ordenada quién, cómo, cuándo y qué es lo que se debe hacer durante el desarrollo del proyecto. - 82 - 4.2.2 ARTEFACTOS ARTEFACTOS NOMBRE /VERSIÓN Rational Rose Modelado de Negocio y Enterprise v7.0 Full modelado del sistema. Power Designer 16 Diseño de la base de Datos Análisis, Diseño y Documentación FUNCIÓN Microsoft Project 2010 Etapas de la Gestión de Proyecto Microsoft Visio 2010 Construcción de Diagramas Microsoft Office 2010 Construcción de la Documentación JDK 1.7 Herramientas de desarrollo para la creación de programas en Java. Eclipse Índigo Entorno de desarrollo integrado para aplicaciones web Desarrollo Eclipse/ ADT con plug-in Android Entorno de desarrollo integrado para aplicaciones móviles Android PostgreSQL v9 SGBD relacional orientado a objetos, para almacenamiento de datos Tabla 4.2 Artefactos de Metodología Autor : Tesista Fuente: Propia Para modelar los diferentes artefactos de la metodología RUP que se va a presentar en este proyecto, se va utilizar las herramientas Rational Rose Enterprise v7.0 Full, Power Designer 16 y Microsoft Office Visio 2010. - 83 - Entre otros mencionados en la tabla (4.3) 4.3 ANÁLISIS Y DISEÑO DEL SISTEMA PROTOTIPO 4.3.1 ESPECIFICACIONES DE REQUERIMIENTOS En el análisis se busca obtener todos los requerimientos que el sistema prototipo debe cumplir para satisfacer las necesidades del usuario final El Proceso Unificado de Desarrollo realiza los siguientes pasos para poder capturar los requerimientos del sistema prototipo que se va a desarrollar • Revisar Requisitos Candidatos • Entender el Contexto del Sistema Prototipo • Capturar Requisitos Funcionales • Capturar Requisitos no Funcionales 4.3.2 REQUISITOS CANDIDATOS Se elaborara una lista de características que los desarrolladores podrían implementar en el Prototipo, estos requisitos no son estáticos ya que se puede agregar nuevos o quitar dependiendo si se añaden nuevos módulos en el desarrollo del prototipo Gestión de Usuarios El sistema prototipo Q-PARKING llevara un registro de los usuarios que podrán manejar la aplicación creando roles para las diferentes actividades dependiendo del perfil otorgado a cada usuario siendo estas actividades como crear, eliminar o modificar datos de los clientes y de usuarios - 84 - Gestionar Facturas El sistema prototipo Q-PARKING permitirá emitir facturas impresas donde se detallara el costo que el cliente debe cancelar por el tiempo de uso de la plaza de aparcamiento. Gestionar Tarifas El sistema prototipo Q-PARKING permitirá gestionar las tarifas para el uso de las plazas de aparcamiento así también las tarifas de cortesía para clientes que envíen mensajes para la localización del parqueadero más próximo y decidan reservar la plaza de aparcamiento. 4.3.3 CONTEXTO DEL SISTEMA PROTOTIPO En el Contexto del Sistema Prototipo se pueden encontrar dos formas de aplicación, ya sea con la utilización de Modelos de Dominio o con el Modelo de Negocio, que permite comprender de mejor manera los conceptos propios del Dominio del Sistema que se va a desarrollar. Modelo de Dominio.- puede utilizarse para capturar y expresar el entendimiento ganado en un área bajo análisis como paso previo al diseño de un sistema, se lo representa con un diagrama de clases que permite describir los conceptos más importantes del sistema como los objetos del dominio y se enlaza unos con otros Modelo de Negocios.- Se los representa con un diagrama de Casos de Uso que permite describir los procesos de negocios que podrá soportar el sistema, estableciendo las necesidades que se requieren en cada proceso. Para modelar el Contexto del sistema Q-PARKING, se utiliza el Modelo del Dominio, que ayudará a describir los conceptos - 85 - destacados del sistema prototipo. 4.4 Modelo de Dominio El modelo de Dominio permite representar los conceptos más relevantes del dominio relacionados unos con otros. Presentados como uno o más diagramas de clases y que contiene, no conceptos propios de un sistema de software sino como un concepto de la propia realidad física - 86 - Modelo de Dominio Figura 4.4 Modelo de Dominio Autor: Tesista Fuente: Propia - 87 - 4.4.1 DICCIONARIO DE CLASES En la sesión del Diccionario de clases, se realizara una breve descripción de cada clase correspondiente al diagrama de clases de Dominio con sus respectivos atributos Clase Descripción Es la persona a cargo de mantener el Cajero funcionamiento de alquiler de plaza de aparcamiento Atributo Descripción Nombre Sustantivo con el que se identifica al Usuario Apellido Sustantivo con el que se identifica al Usuario Numero de dígitos que indican el número de Teléfono teléfono de la residencia Numero de dígitos que indica su identificación Cédula única de la persona Tabla 4.3 Descripción Clase Cajero Autor :Tesista Fuente: Propia Clase Parqueadero Descripción Edificación en la que se estacionaran los vehículos Atributo Nombre_Parqueadero Dirección Teléfono Descripción Sustantivo para identificar el parqueadero Lugar geográfico donde se encuentra ubicado el parqueadero Numero de dígitos que indican el número de teléfono de la residencia - 88 - Numero de dígitos que indica su el número Celular telefónico móvil Información que permite conocer el número de Capacidad autos que pueden ingresar Latitud / longitud Geo referencia donde está ubicado el parqueadero Tabla 4.4 Descripción Clase Parqueadero Autor :Tesista Fuente: Propia Clase Descripción Cliente Persona que va alquilar el servicio de parqueadero Atributo Descripción Nombre Sustantivo para identificar el cliente Apellido Sustantivo para identificar el cliente Cedula Ruc Dirección Teléfono Celular Numero de dígitos que indica su identificación única de la persona Numero de dígitos que indica su identificación única de la persona Lugar geográfico donde se encuentra su residencia Numero de dígitos que indican el número de teléfono de la residencia Numero de dígitos que indican el número de teléfono de su móvil Tabla 4.5 Descripción Clase Cliente Autor :Tesista Fuente: Propia - 89 - Clase Plaza Ticket Descripción Es la acción de alquiler un lugar en el parqueadero Atributo Fecha Hora_llegada Hora_salida Placa Tarifa Descripción Indica en el momento en el que se está realizando la transacción de alquiler Indica la hora de ingreso de automotor al parqueadero Indica la hora de salida en el cual el automotor abandona el parqueadero Numero de alfanumérico de identificación del automotor Valor que se le va a cobrar por el tipo de vehículo Tabla 4.6 Descripción Clase Plaza Ticket Autor :Tesista Fuente: Propia Clase Factura Descripción Documento que indica el costo del alquiler del parqueadero ha sido cancelado Atributo Número Hora_llegada Hora_salida Placa Descripción Indica un número que identifica a la factura Indica la hora de ingreso de automotor al parqueadero Indica la hora de salida en el cual el automotor abandona el parqueadero Numero de alfanumérico de identificación del automotor Tarifa Valor que se le va a cobrar por el tipo de vehículo Fecha Indica la fecha en la que se emite la factura Lugar en la factura donde se ubicara el costo parcial Subtotal del servicio de parqueadero por el tiempo que el cliente ha dispuesto del mismo Iva Lugar en la factura donde se pondrá el impuesto al - 90 - valor agregado. Lugar donde se ubicara el monto total a cancelar Total por el alquiler de la plaza de aparcamiento. Tabla 4.7 Descripción Clase Factura Autor :Tesista Fuente: Propia Clase Descripción Detalle _Factura Es el lugar de la factura donde se va a describir el consumo del servicio Atributo Cantidad Hora-llegada Hora-salida Placa Tarifa Pecio Precio final Descripción Tiempo en horas de consumo del automotor Indica la hora de ingreso de automotor al parqueadero Indica la hora de salida en el cual el automotor abandona el parqueadero Numero de alfanumérico de identificación del automotor Valor que se le va a cobrar por el tipo de vehículo Indica el precio de la tarifa que ha consumido el automotor En este lugar se indica el precio total del costo por el alquiler de la plaza de aparcamiento Tabla 4.8 Descripción Clase Detalle_Factura Autor :Tesista Fuente: Propia - 91 - Clase Descripción Es el lugar donde se va fijar el valor que se va a Tarifa cobrar por el servicio. Atributo Descripción Tipo vehículo Es el tipo de automotor que uso el servicio Indica el precio de la tarifa que ha consumido el Pecio automotor Id _ parqueadero Es el parqueadero al cual pertenecen dichas tarifas Tabla 4.9 Descripción Clase Tarifa Autor: Tesista Fuente: Propia 4.4.2 REQUISITOS FUNCIONALES Por medio de los requisitos funcionales se podrá representar la unidad del sistema Q-PARKING, para ello se recurrirá a la utilización de Casos de Uso y la identificación de los actores. Previo a la definición de los requerimientos se realizara la descripción general del sistema, de acuerdo a ciertas condiciones del estándar IEEE 830-199812 (Recommended Practice for Software Requirements Specifications); lo cual permite entender de mejor manera las características generales que manejara el sistema. Introducción • Propósito Mediante la especificación de requerimiento de software se puede definir las funciones y las restricciones que tendrá el APLICACIÓN MÓVIL PARA ENCONTRAR UNA PLAZA DE APARCAMIENTO A TRAVÉS DE UN DISPOSITIVO MÓVIL CON GPS Y UN ENTORNO 12 IEEE 830-1998. Este estándar describe las estructuras posibles, contenido deseable, y calidades de una especificación de requisitos del software. - 92 - WEB PARA LA ADMINISTRACIÓN DEL PARQUEADERO nominado Q-PARKING para así de poder dar a conocer a los desarrolladores las especificaciones que debe cumplir el sistema y que a su vez ellos puedan entender de manera clara todas las características que debe tener el sistema. 4.4.3 DESCRIPCIÓN GENERAL • Perspectiva del Producto “Q-PARKING” es un sistema que permite buscar el parqueadero más cercano al usuario que use un Smartphone con GPS, además también permite la administración de las plazas de aparcamiento y tener un depósito de las direcciones, capacidad de los parqueaderos que se encuentran al rededor del Distrito Metropolitano de Quito. • Funciones del Producto Para conocer las funciones del producto se puede ir a la parte donde se encuentra los Requerimientos Candidatos ya que en esta sección se encuentran descritas de manera general las funciones del sistema Q-PARKING. • Restricciones El sistema no permitirá agregar más roles de los que describieron anteriormente, funcionara en Smartphone con sistema operativo Android. No generara asientos contables necesarios para el SRI. El sistema no generará sistema de tickets. El sistema solo generara reportes básicos El sistema solo admitirá mensajes de texto según las especificaciones para luego ser contestados por el servidor de localización de parqueaderos - 93 - 4.4.4 IDENTIFICACIÓN DE ACTORES A continuación se realizara la identificación de los Actores que interactúan con el sistema búsqueda de parqueadero más cercano Q-PARKING Se divide en actores principales y secundarios: • Actores Principales.- Son los actores que permiten realizar el funcionamiento de las actividades en el parqueadero ACTORES- DESCRIPCIÓN PRINCIPALES Administrador Persona que se encarga del manejo total del sistema, podrá acceder a todas las funciones del mismo Cajero Persona encargada únicamente de administrar el módulo de facturación y recaudación del sistema Tabla 4.10 Actores Principales Q-Parking Autor : Tesista Fuente: Propia - 94 - • Actores Secundario .- Son los actores que son necesarios para que inicie el funcionamiento de las actividades en el parqueadero ACTORES DESCRIPCIÓN SECUNDADARIO Cliente Es la persona que está contratando el servicio /SmartCliente de alquiler de la plaza de aparcamiento que puede ser un cliente presencial o un cliente con dispositivo móvil (Smartphone) Tabla 4.11 Actores Secundario Q-Parking Autor :Tesista Fuente: Propia SISTEMA DE BUSQUEDA DE PARQUEADEROS QUITOPARK ADMINISTRADOR CAJERO Figura 4.5 CLIENTE Diagrama de Actores Autor : Tesista Fuente: Propia - 95 - 4.4.5 ESPECIFICACIONES DE CASOS DE USO La captura de los casos de uso que realmente se requieren para la implementación del sistema exige que se conozca a profundidad las necesidades del usuario y del cliente. Lista de Casos de Uso Nro. CASO DE USO QP CU -01 Gestionar Tarifas QP CU -02 Gestionar Clientes QP CU -03 Gestionar Usuarios QP CU -04 Gestionar Parqueadero QP CU -05 Gestionar Plaza Aparcamiento QP CU -06 Gestionar Reservas QP CU -07 Gestionar Factura Tabla 4.12 Casos de uso Generales Q-Parking Autor :Tesista Fuente: Propia - 96 - Gestionar Plazas de Aparcamiento Generar Reportes Gestionar Usuarios Administrador Gestionar Tarifas Gestionar Parqueadero Figura 4.6 Diagrama de casos de uso del módulo de Administración Autor :Tesista Fuente: Propia - 97 - Cajero <<extend>> <<extend>> Cliente SmartPhone Reserva plaza <<extend>> Registrar Ingreso Registrar Salida Gestionar Cortesia Pagar Alquiler <<extend>> Cliente Parqueadero Pago Prepago Cliente Figura 4.7 Diagrama General de los caso de uso del Prototipo Autor :Tesista Fuente: Propia • Descripción de Casos de Uso del Sistema QP CU -01 Gestionar Tarifa CASO USO QP CU -01 Nombre Descripción GESTIONAR TARIFAS Permite ingresar ,buscar y modificar valores del costo del alquiles del parqueadero según el tipo de vehículo, tipo de cobro Actores Administrador Precondición Ingresar al sistema con perfil de administrador - 98 - Paso 1 Acción El actor invoca al caso de uso de uso Gestionar Tarifa ingresando a la sección tipo de cobro para Flujo Básico realizar la acción de crear tarifas 2 El actor decide crear una nueva tarifa para lo cual el actor debe ingresar todos los datos necesarios como nombre de la tarifa ,el valor , el tiempo 3 El actor selecciona la opción de guardar la nueva tarifa creada y que se realice los cambios en la base de datos Paso Acción 4 En el segundo paso, el actor puede buscar los datos e referentes a las Flujo Alternativo tarifas, para cual ingresa a la sección de tarifas y se despliegan los datos de las diferentes tarifas. 5 En el segundo paso, el actor puede modificar los datos de las tarifa, para lo cual, primero debe de realizar una búsqueda de la tarifa a modificar. Post-condición El actor puede modificar la información de las tarifas o puede salir de la sección Gestionar Tarifas. Paso Acción - 99 - 2 El actor podrá ingresar nuevas tarifas en caso de que estas no Excepciones existan ,y para ello deberá ser un usuario con perfil de administrador 4 El actor puede buscar los datos de la tarifa, solo si es que ha sido ingresado previamente los datos de dicha tarifa. 5 El actor puede modificar los datos de las tarifas siempre y cuando se haya ingresado previamente los datos de dicha tarifa. Tabla 4.13 Descripción Caso de uso “Gestionar Tarifa”. Autor : Tesista Fuente: Propia Los otros actores del sistema podrán invocar al caso de uso “gestionar Tarifas”, pero únicamente a manera de consultas. QP CU -02 Gestionar Clientes CASO DE USO QP CU -02 Nombre Gestionar Clientes Descripción Permite ingresar los datos de los Clientes Que alquila la Plaza del Parqueadero Actores Cajero, Administrador Precondición Ingresar al sistema con perfil de Cajero - 100 - Paso Acción El cajero invoca al caso de uso 1 Flujo Básico Gestionar Clientes ingresando a la sección de Cliente para poder realizar las acciones necesarias. El cajero solicita e ingresa al sistema la 2 información personal al Cliente El Cajero puede guardar los datos. 3 Flujo Alternativo Paso Acción En el paso 2 ,el cajero solicita e ingresa 4 al sistema la información de los vehículos del cliente Post- condición Excepciones El Actor puede salir de la sección de Clientes. Paso 1 Acción El cajero únicamente podrá registrar un cliente por vehículo ingresado. Tabla 4.14 Descripción Caso de uso “Gestionar Cliente”. Autor : Tesista Fuente: Propia - 101 - QP CU -03 Gestionar Usuarios Caso de uso QP CU -03 Nombre Gestionar Usuarios Descripción Se encuentra en la página principal, permite ingresar, buscar y modificar los usuarios del sistema de parqueadero. Actor Administrador Precondición Ingresar al sistema con perfil de administrador Paso Acción 1 El actor invoca al caso de uso Gestionar Usuarios ingresando a la sección de usuario para poder realizar las acciones necesarias. Flujo básico 2 El actor decide ingresar un nuevo usuario para lo cual el actor debe ingresar todos los datos necesarios , Además deberá asignarle un rol predefinido 3 El actor selecciona la opción de guardar para que se guarden los cambios realizados en la base de datos. Paso Acción 4 En el paso 3 el actor puede buscar los datos referentes a los usuarios, para cual ingresa a la sección de usuarios y se - 102 - Flujo Alternativo despliegan los datos del usuario al que desea buscar. 5 En el paso 3 el actor puede modificar los datos de los usuarios, para lo cual, primero debe de realizar una búsqueda para luego ingresar los datos que se desea modificar. Post-condición El actor puede modificar la información de los usuarios o puede salir de la sección de gestionar usuarios Excepciones Paso Tabla 4.15 Acción Descripción Caso de uso “Gestionar Usuarios”. Autor: Tesista Fuente: Propia Los actores del sistema no podrán invocar al caso de uso “Gestionar Usuarios”, ya que el generar usuarios no les corresponde a ningún otro perfil. QP CU -04 Gestionar Parqueadero CASO DE USO QP CU -04 Nombre Gestionar Parqueadero Descripción Permite gestionar los parámetros de los Parqueaderos - 103 - Actores Administrador Paso 1 Acción El actor invoca al caso de uso gestionar Parqueadero ingresando a la sección Configuración para poder realizar las Flujo Básico acciones necesarias. 2 El actor ingresa los parámetros generales del parqueadero como nombre ,latitud ,longitud ,dirección ,teléfono móvil, teléfono fijo, capacidad , plazas libres y ocupadas 3 El actor selecciona la opción salir para cerrar la interfaz. Paso 4 Acción En el paso 2, el actor puede, modificar Flujo Alternativo los parámetros del parqueadero 5 En el paso 2, el actor puede, eliminar los parámetros del parqueadero. Post-Condición El actor puede salir de la sección parqueadero y regresar a la pantalla principal Paso Excepciones 2 Acción El actor no podrá eliminar parámetros preestablecidos Tabla 4.16 Descripción Caso de uso “Gestionar Parqueadero”. Autor: Tesista Fuente: Propia - 104 - QP CU-05 Gestionar de Plazas de Aparcamiento Caso de uso QP CU -05 Nombre Gestionar Plaza de Aparcamiento Descripción Permite gestionar una plaza para ser alquilada Actor Cajero Precondición Ingresa al sistema, ingresa al módulo principal para tomar los datos del vehículo. Flujo Básico Paso Acción 1 El actor invoca al caso de uso Gestionar Plaza de Aparcamiento en el módulo principal para poder realizar las acciones necesarias 2 El actor ingresa los parámetros generales para la plaza de aparcamiento principalmente la placa del vehículo ,se carga automáticamente la fecha de llegada, hora de llegada, usuario que ingresa el vehículo, selecciona el tipo de tarifa y tener un secuencial de número de vehículos en el parqueaderos 3 El actor selecciona la opción de salir para cerrar el interface Flujo alternativo Paso Acción 4 En el paso 2 puede ingresar a ver los - 105 - vehículos que están en la plaza del parqueadero ,así también buscar los vehículos que están en el parqueadero 5 En el paso 2 también se puede eliminar los vehículos del parqueadero 6 En el paso 2 el actor puede seleccionar Tarifas creadas, para asignar a la plaza que se va alquilar. Post –Condiciones El actor puede salir de la sección Gestión de plazas de Aparcamiento Excepciones Paso Acción 2 No se podrá registrar el vehículo si no se escoge la tarifa para ser registrado Tabla 4.17 Descripción Caso de uso “Gestionar Plaza de Aparcamiento”. Autor : Tesista Fuente: Propia QP CU-06 Gestionar Reservas Caso de uso Nombre QP CU -06 Gestionar Reservas Permite registrar la reserva de uno o varios Descripción espacios en el parqueadero, tomado como cortesías después de la consulta si hay espacio desde un Smartphone. Actores Cajero, Cliente - 106 - Ingresar al sistema donde se mostrara en la Precondición pantalla si se generó una consulta vía SMS desde un Smartphone Paso 1 Acción El actor invoca al caso de uso ReservarCortesías sitios ingresados a la sección de Reservar- Cortesías para poder realizar las acciones necesarias. 2 El actor luego de leer el mensaje de reserva decide ingresar una nueva reserva para lo cual el actor debe ingresar los datos de la placa del Flujo Básico vehículo que llega por mensaje SMS. 3 El actor selecciona la opción de guardar para que se guarde los cambios realizados en la base de datos y generar la Reserva-Cortesía Paso 4 Acción En el paso 2, el actor puede, en cambio, buscar las reservas realizadas 5 En el paso 2, el actor puede, en cambio, modificar las reservas, para lo cual primero debe de realizar una búsqueda para luego ingresar los datos que desea modificar. Flujos Alternativos 6 En el paso 2, el actor puede, cancelar las reservas, para lo cual primero debe de realizar una búsqueda para luego deshabilitarle. Post –Condición El actor puede salir de la sección de reservas - 107 - Paso 2 Acción El actor no podrá ingresar una nueva reserva en caso de que no exista la disponibilidad de sitios en el parqueadero Excepciones 2 El actor puede buscar los datos de las reserva, solo si es que ha sido ingresado previamente los datos de la misma 5 El actor puede modificar los datos de la reserva, siempre y cuando se haya ingresado previamente los datos a la misma. Tabla 4.18 Descripción Caso de uso “Gestionar Reservas”. Autor: Tesista Fuente: Propia QP CU -07 Gestionar Facturas Caso de uso QP CU -07 Nombre Gestionar Factura Descripción Permite buscar el número de placa del vehículo para registrar el pago del alquiler de la plaza de aparcamiento Actor Cliente, Cajero Precondición Ingresar con perfil de Cajero - 108 - Paso 1 Acción El cajero invoca al caso de uso Generar Flujo Básico Factura ingresando principal facturar a la sección para poder realizar las acciones necesarias. 2 El cliente presenta el número de placa para ser buscada en el sistema. 3 El sistema muestra el total de del monto a pagar además del tiempo que estuvo aparcado el vehículo, así también la fecha Paso 4 Acción En el paso 2 el cliente indica el número de placa para salir del sistema 5 En el paso 2 el cliente presenta si su reservación fue vía SMS con un tiempo de cortesía para que el cajero generar el monto a pagar. Post .condición Excepciones El actor puede salir de la sección de facturación. Paso 1 Acción El cajero no podrá generar el cobro si el cliente no se ha registrado en el sistema vía SMS. Tabla 4.19 Descripción Caso de uso “Gestionar Factura”. Autor: Tesista Fuente: Propia - 109 - 4.4.6 REQUISITOS NO FUNCIONALES Son las especificaciones que debe cumplir en el momento de juzgar el funcionamiento del sistema como por ejemplo Interfaces Las interfaces que el sistema prototipo presentará, deberá ser amigables e intuitiva para el usuario, de esta manera se facilitarán los procesos que deben seguir para desempeñar correctamente las actividades del parqueadero y el sistema de búsqueda en el Smartphone. El sistema prototipo únicamente presentara sus interfaces en el idioma español. Para todos los eventos del sistema prototipo se presentaran mensajes detallados como informativos, disponibilidad y de emergencia. • Seguridad El sistema garantizara acceso en base a los permisos asignados a cada perfil de usuario. El administrador.- tendrá acceso a la administración del sistema. Los cajeros.- Tienen acceso al módulo de consulta y facturación, además podrá facturar la salida de los usuarios del parqueadero. • Cumplimiento de Estándares Este sistema Prototipo cumplirá con los estándares de programación de Java EE6 - 110 - • Limitación de Hardware Las limitaciones de hardware que presente este sistema prototipo dependerán de los equipos que sean utilizados para su implementación y uso. 4.5 Análisis En esta fase se procedio a detallar desde el punto de vista del programador todo el requisito obtenido, mostrando la funcionalidad interna del sistema prototipo 4.5.1 ANÁLISIS DE LA ARQUITECTURA En este desarrollo se identificará cada paquete de análisis del sistema prototipo. Para la identificación de los paquetes de análisis, se toma en cuenta el criterio de la agrupación de casos que puedan dar soporte a un determinado actor. A continuación se determinaran los siguientes paquetes: Gestión Parqueaderos Gestión Clientes Gestión Facturación Gestión Clientes Gestión Parqueadero Figura 4.8 Gestión Facturación Diagrama de Paquetes de Análisis Autor: Tesista Fuente: Propia - 111 - 4.5.2 ANÁLISIS DE CLASES Para realizar el Análisis de Clases se debe tomar en cuenta las clases que fueron determinadas anteriormente, una vez que se haya identificado las clases necesarias para que puedan llevarse a cabo los casos de uso, se procede a describir con detalle sus atributos y responsabilidades. Se puede identificar las responsabilidades de las clases con los diagramas de secuencia, ya que en ellos se podrá describir las acciones que realizan las clases en los casos de uso - 112 - Diagrama de Análisis de Clases Figura 4.9 Diagrama de Análisis de Clases Autor: Tesista Fuente: Propia 4.5.3 ANÁLISIS DE CASOS DE USO Para poder describir las interacciones entre las clases del sistema se procederá a utilizar los Diagramas de Colaboración, ya que estos facilitan realizar un correcto Análisis de los casos de Uso del sistema Prototipo Un diagrama de colaboración es una forma alternativa al diagrama de secuencia de mostrar un escenario. Este tipo de diagrama muestra las interacciones entre objetos organizados en tono a los objetos y a enlaces entre ellos. Un diagrama de secuencia muestra la interacción de un conjunto de objetos en una aplicación a través del tiempo y se modela para cada caso de uso. Mientras que el diagrama de casos de uso permite el modelado de una vista del negocio del escenario, el diagrama de secuencia contiene detalles de implementación del escenario, incluyendo los objetos y clases que se usan para implementar el escenario y mensajes intercambiados entre los objetos. - 114 - Diagrama de colaboración: 2: Ingresar Datos 1: Seleccionar Operación : Pantalla 7: Mostrar Resultados : Actor 6: Mostrar Resultados de la Operacion 3: Válidar Datos 5: Obtener Resultados 4: Guardar Datos : Base de Datos : Controlador Proyecto:Sistema Prototipo Busqueda de Parqueadero Modelo: Diagrama de Colaboración Actor: Carlos Toscano Moreno Figura 4.10 Modelo Colaboración de Mantenimiento Básico Autor: Tesista Fuente: Propia El modelo de caso de uso de Colaboración de Mantenimiento Básico, los actores (Administrador, Cajero) podrá participar en las diferentes operaciones al manejar el sistema prototipo Descripción de los Procesos Básicos que se pueden realizar 1. Una vez ingresado el actor al sistema selecciona las operaciones que va a realizar ya sea estas Ingresar, Guardar, Eliminar y Buscar. 2. Se procede a ingresar los datos de Clientes, Parqueaderos según el actor (Administrador, Cajero )y su perfil 3. Se valida la información que se ingresó, en caso de que la - 115 - información establecidos ingresada no cumpla con los parámetros según los datos que pida el sistema ,saltaran mensajes informativos o de emergencia de los datos ingresados 4. Se realizaran operaciones según seleccione el actor ya sean de ingresar, buscar o guardar en la base de datos. 5. Se obtiene los resultados de la base de datos según la operación realizada en el punto 4. 6. En el interface del sistema muestra el resultado de las operaciones por medio de mensajes informativos o de emergencia según la operación solicitada por el actor. 4.6 Diseño En esta etapa se definirá la arquitectura del sistema prototipo, donde se encuentran definidos los requerimientos tanto funcionales como no funcionales que fueron descritos anteriormente. 4.6.1 DISEÑO DE CLASES En el Diseño de Clases se elaborara un diagrama de clases con lo que nos permitirá cumplir el objetivo principal del rol de cada clase en la realización de los casos de uso elaborado - 116 - DISEÑO DE CLASES Figura 4.11 Diseño de Clases del Sistema Q-Parking Autor: Tesista Fuente: Propia - 117 - 4.6.2 DISEÑO DE CASOS DE USO Los diseños de caso de uso permiten identificar las clases del diseño dentro de los respectivos subsistemas, para poder diseñar las interacciones entre los objetos • DIAGRAMAS DE MODELO DE CASOS DE USO DE DISEÑO DIAGRAMA DE SECUENCIA GESTIONAR TARIFA Gestión Tarifas UI:Tarifas Control Tarifas Tarifas Administrador 1: Seleccionar Operación 2: Ingresar Datos 3: Validar Datos 4: Guardar Datos 5: Obtener Resultados BDD 6: Mostrar Resultado Operación 7: Presentar Resultado Figura 4.12 Diagrama de secuencia “Gestionar Tarifa” Autor: Tesista Fuente: Propia DIAGRAMA DE SECUENCIA GESTIONAR CLIENTES Gestionar Clientes UI Clientes Control Clientes Clientes Cajero 1: Seleccionar Operación 2: Seleccionar Operación 3: Validar Datos 4: Guardar Datos 5: Obtener Resultado BDD 6: Mostrar Resultado de la Operación 7: Mostrar Resultados Figura 4.13 Diagrama de secuencia “Gestionar Clientes” Autor: Tesista Fuente: Propia DIAGRAMA DE SECUENCIA GESTIONAR USUARIOS Gestionar Usuarios UI:Usuario Control Usuarios Usuarios Administrador 1: Seleccionar Operación 2: Ingresar Datos 3: Validar Datos 4: Guardar Datos 5: Obtener Resultados BDD 6: mostrar Resultado de la Operación 7: Mostrar Resultados Figura 4.14 Diagrama de secuencia “Gestionar Usuarios” Autor: Tesista Fuente: Propia - 119 - DIAGRAMA DE SECUENCIA GESTIONAR RESERVAS Gestión Reserva UI:Reservas Control de Reservas Reservas Cajero 1: Seleccionar Operacion 2: Ingresar datos 3: Validar Datos 4: Guardar Datos 6: Mostrar Resultado Operación 5: Obtener Resultados BDD 7: Presentar Resultados Figura 4.15 Diagrama de secuencia “Gestionar Reserva” Autor: Tesista Fuente: Propia DIAGRAMA DE SECUENCIA GESTIONAR PARQUEADERO Gestionar Parqueaderos Ui:Parqueadero Control Parqueadero Parqueadero Administrador 1: Seleccionar Operación 2: Ingresar Datos 3: Validar Datos 4: Guardar Datos 5: Obtener Resultados BDD 6: Mostrar Resultados Operación 7: Mostrar Resultados Figura 4.16 Diagrama de secuencia “Gestionar Parqueaderos” Autor: Tesista Fuente: Propia DIAGRAMA DE SECUENCIA GESTIONAR INGRESO - 120 - Gestionar Ingreso UI:Ingreso Control de Ingreso Ingreso Cajero2 1: Seleccionar Operacion 2: Ingresar datos 3: Validar Datos 4: Guardar Datos 6: Mostrar Resultado Operación 7: Presentar Resultados 5: Obtener Resultados BDD Figura 4.17 Diagrama de secuencia “Gestionar Ingreso” Autor: Tesista Fuente: Propia DIAGRAMA DE SECUENCIA GESTIONAR SALIDA Gestionar Salida UI:Salida Control Salida Salida Cajero 1: Seleccionar Operación 2: Seleccionar Operación 3: Validar Datos 4: Guardar Datos 5: Obtener Resultado BDD 6: Mostrar Resultado de la Operación 7: Mostrar Resultados Figura 4.18 Diagrama de secuencia “Gestionar Salida” Autor: Tesista Fuente: Propia - 121 - DIAGRAMA DE SECUENCIA GESTIONAR PAGAR ALQUILER Gestionar Pago Alquiler Control de Pago UI:Pago Pagos Cajero. 1: Seleccionar Operacion 2: Ingresar datos 3: Validar Datos 4: Guardar Datos 6: Mostrar Resultado Operación 7: Presentar Resultados Figura 4.19 5: Obtener Resultados BDD Diagrama de secuencia “Gestionar Pagos Alquiler” Autor: Tesista Fuente: Propia DIAGRAMA DE SECUENCIA GESTIONAR BUSCAR GEO-REFERENCIA Gestionar Localización UI Localizador Contol Localizador Localizador Cliente. 1: Seleccionar Operación 2: Ingresar Datos 3: Validar Operación 4: Guardar Datos 5: Obtener Resultado BDD 6: Mostrar Resultado Operación 7: Presentar Resultado Figura 4.20 Diagrama de secuencia “Gestionar Geo-Referencia” Autor: Tesista Fuente: Propia DIAGRAMA DE SECUENCIA GESTIONAR BUSCAR PARQUEADERO - 122 - Gestionar Buscar Parqueadero UI SmartPhone Contol Smartphone Smartphone Cliente 1: Seleccionar Operación 2: Ingresar Datos 3: Validar Operación 4: Guardar Datos 5: Obtener Resultado BDD 6: Mostrar Resultado Operación 7: Presentar Resultado Figura 4.21 Diagrama de secuencia “Gestionar Busca Parqueadero” Autor: Tesista Fuente: Propia 4.7 Implementación de la Base de Datos Se debe partir desde la construcción del modelo de Datos Relacional, para realizar la implementación de la base de datos para lo cual se tomó en cuenta el modelo de clases en un modelo de dato, tomando en cuenta que un modelo de clase se puede convertir en una entidad en la base de datos así como en un objeto en la programación en el momento de mapear la base para generar el código java. • Determinación de las Relaciones Para la implementación de la base de datos es fundamental estructurar un Modelo Conceptual y un Modelo Físico lo cual nos permitirá observar en forma clara como están relacionadas las entidades, para ello se utiliza la herramienta Power Designer 16 para los dos modelos. Modelo Conceptual: Se trata de obtener el esquema conceptual de la base de datos a partir de la lista descriptiva de objetos y asociaciones identificadas en la organización durante el análisis, así también como el tipo de relación - 123 - que van a tener entre las entidades Modelo Físico: representa la estructura física de los datos, permite observar la forma en que se crearan las entidades, pues además de su relación se especificara el tipo de atributo de cada entidad y su longitud. - 124 - 4.7.1 MODELO CONCEPTUAL <pi > i d_i nfoparqueadero <pi > parqueadero Autori zaci onSri i nfoParqueadero i d_i nfoParqueadero nombre di recci on l ati tud l ongi tud Seri al <M> Vari abl e characters (50) Vari abl e characters (50) F%8 F%8 i d_autori zaci onsri numero_autori zaci on numero_i ni ci al numero_fi nal autori zaci on_fecha caduci dad_fecha pk_autori zaci on <pi > Seri al Integer Integer Integer Date Date i d_parqueadero <pi > nombre l ati tud l ongi tud di recci on tel efono_fi j o tel efono_movi l pl azas_di sponi bl es pl azas_ocupadas capaci dad estado l ogi n cl ave seri e <M> Reference_9 <pi > Reference_19 Reference_18 ti po_parqueadero i d_ti po_parqueadero nombre descri pci on <pi > i d_ti po_parqueadero <pi > Seri al <M> Vari abl e characters (50) Vari abl e characters (60) cl i ente i d_cl i ente nombre ruc cedul a tel efono_fi j o tel efono_movi l di recci on i d_parqueadero pk_cl i ente <pi > Seri al Vari abl e Vari abl e Vari abl e Vari abl e Vari abl e Vari abl e Integer <M> characters (100) characters (15) characters (15) characters (15) characters (15) characters (50) Reference_17 pk_factura <pi > Seri al <M> Long i nteger T i mestamp F%8 F%8 F%8 Vari abl e characters (20) Integer Vari abl e characters (20) Integer <pi > pk_detal l e_factura i d_pl aza_ti cket pl aca fecha_i ngreso fecha_sal i da ti po estado pk_pl aza pk_pagi na <pi > <pi > <pi > Seri al <M> Vari abl e characters (15) T i mestamp T i mestamp Vari abl e characters (20) Vari abl e characters (20) <pi > Seri al <M> Vari abl e characters (10) F%8 F%8 T i mestamp T i mestamp Integer <pi > Seri al <M> Vari abl e characters (10) F%8 Integer <pi > usuari o i d_usuari o usuari o contraseni a perfi l _creaci on fecha_creaci on perfi l _modi fi caci on fecha_modi fi caci on fecha_caduci dad_contraseni a i d_parqueadero pk_usuari o pk_pagi na_rol <pi > <pi > Integer <M> Vari abl e characters (20) Vari abl e characters (32) Integer Date Integer Date Date <Undefi ned> <pi > i d_persona nombre apel l i do cedul a fecha_naci mi ento mai l _personal mai l _i nsti tuci onal di recci on <pi > Seri al Vari abl e Vari abl e Vari abl e Date Vari abl e Vari abl e Vari abl e <M> characters (30) characters (40) characters (10) Reference_11 Reference_12 characters (50) characters (50) characters (50) <pi > pagi na_rol i d_pagrol perfi l _creaci on fecha_creaci on perfi l _modi fi caci on fecha_modi fi caci on <pi > persona pk_persona Reference_16 i d_tari fa ti po_vehi cul o preci o i d_parqueadero Key_1 pagi na Seri al <M> Vari abl e characters (30) Vari abl e characters (50) Vari abl e characters (50) Bool ean Integer Integer Date Integer Date pk_vehi cul o Seri al <M> Vari abl e characters (10) F%8 F%8 T i mestamp Vari abl e characters (20) Reference_7 detal l e_factura <pi > Reference_10 <pi > pl aza_ti cket <pi > i d_pagi na nombre url i con es_menu orden perfi l _creaci on fecha_creaci on perfi l _modi fi caci on fecha_modi fi caci on reserva i d_reserva pl aca l ongi tud l ati tud fecha_reserva estado characters (20) characters (20) characters (20) Reference_2 Reference_4 Reference_14 characters (100) characters (15) characters (15) tari fa <pi > i d_det_factura pl aca numero_horas preci o_hora fecha_i ngreso fecha_sal i da i d_pl aza <M> characters (50) <pi > pk_parqueadero factura i d_factura numero fecha subtotal i va total estado i d_parqueadero seri e i d_usuari o Seri al Vari abl e F%8 F%8 Vari abl e Vari abl e Vari abl e Integer Integer Integer Integer Vari abl e Vari abl e Vari abl e perfi l Seri al Integer Date Integer Date <M> <pi > rol Reference_15 i d_rol nombre perfi l _creaci on fecha_creaci on perfi l _modi fi caci on fecha_modi fi caci on i d_pagi na pk_rol Figura 4.22 i d_perfi l perfi l _creaci on fecha_creaci on perfi l _modi fi caci on fecha_modi fi caci on <pi > Seri al <M> Vari abl e characters (30) Integer Date Integer Date Integer Reference_13 <pi > Modelo Conceptual de la Base de Batos Q-Parking Autor: Tesista Fuente: Propia - 125 - pk_perfi l <pi > Seri al Integer Date Integer Date <M> <pi > Conceptual Data Model Model : PDMQPC Package: Di agram: Conceptual Di agram_1 Author: Carl os T oscano Date: 13/06/2013 Versi on: 4.0.1 4.7.2 MODELO FÍSICO reserva Autori zaci onSri i nfoParqueadero parqueadero i d_reserva <pk> SERIAL i d_parqueadero INT 4 <fk> i d_parqueadero SERIAL <pk> pl aca VARCHAR(10) nom bre VARCHAR(50) l ongi tud FLOAT 8 l ati tud FLOAT 8 l ati tud FLOAT 8 l ongi tud FLOAT 8 FK_AUT ORIZA_REFERENCE_PARQUEAD FK_RESERVA_REFERENCE_PARQUEAD fecha_reserva T IM EST AM P di recci on VARCHAR(100) estado VARCHAR(20) tel efono_fi j o VARCHAR(15) tel efono_m ovi l VARCHAR(15) pl azas_di sponi bl es INT 4 FK_FACT URA_REFERENCE_AUT ORIZA pl azas_ocupadas INT 4 capaci dad INT 4 FK_INFOPARQ_REFERENCE_T IPO_PAR factura estado INT 4 i d_factura SERIAL <pk> l ogi n VARCHAR(20) tari fa i d_cl i ente INT 4 <fk1> cl ave VARCHAR(20) i d_tari fa SERIAL <pk> i d_autori zaci onsri INT 4 <fk2> seri e VARCHAR(20) VARCHAR(10) ti po_vehi cul o num ero INT 8 ti po_parqueadero preci o FLOAT 8 fecha T IM EST AM P i d_ti po_parqueadero SERIAL <pk> INT 4 i d_parqueadero subtotal FLOAT 8 FK_PLAZA_T I_REFERENCE_PARQUEAD nom bre VARCHAR(50) i va FLOAT 8 descri pci on VARCHAR(60) total FLOAT 8 estado VARCHAR(20) pl aza_ti cket i d_parqueadero INT 4 i d_pl aza_ti cket SERIAL <pk> cl i ente VARCHAR(20) seri e FK_PLAZA_T I_REFERENCE_T ARIFA i d_parqueadero INT 4 <fk1> i d_usuari o INT 4 i d_cl i ente SERIAL <pk> i d_tari fa INT 4 <fk2> nom bre VARCHAR(100) pl aca VARCHAR(15) ruc VARCHAR(15) fecha_i ngreso T IM EST AM P cedul a VARCHAR(15) FK_DET ALLE__REFERENCE_FACT URA fecha_sal i da T IM EST AM P tel efono_fi j o VARCHAR(15) FK_FACT URA_REFERENCE_CLIENT E ti po VARCHAR(20) tel efono_m ovi l VARCHAR(15) estado VARCHAR(20) usuari o di recci on VARCHAR(50) detal l e_factura i d_usuari o INT 4 i d_parqueadero INT 4 i d_det_factura SERIAL <pk> i d_persona INT 4 i d_factura INT 4 <fk> usuari o VARCHAR(20) persona pl aca VARCHAR(10) contraseni a VARCHAR(32) num ero_horas FLOAT 8 i d_persona SERIAL <pk> perfi l _creaci on INT 4 FK_USUARIO_REFERENCE_PERSONA preci o_hora FLOAT 8 nom bre VARCHAR(30) fecha_creaci on DAT E fecha_i ngreso T IM EST AM P apel l i do VARCHAR(40) perfi l _m odi fi caci on INT 4 T IM EST AM P fecha_sal i da VARCHAR(10) cedul a fecha_m odi fi caci on DAT E i d_pl aza INT 4 fecha_naci m i ento DAT E fecha_caduci dad_contraseni a DAT E VARCHAR(50) m ai l _personal i d_parqueadero <Undefi ned> m ai l _i nsti tuci onal VARCHAR(50) pagi na_rol di recci on VARCHAR(50) FK_PERFIL_REFERENCE_USUARIO i d_pagrol SERIAL <pk> FK_PAGINA_REFERENCE_PAGINA INT 4 i d_rol <fk1> perfi l INT 4 i d_pagi na <fk2> i d_perfi l SERIAL <pk> perfi l _creaci on INT 4 <fk1> i d_usuari o INT 4 DAT E fecha_creaci on i d_rol INT 4 <fk2> perfi l _m odi fi caci on INT 4 perfi l _creaci on INT 4 fecha_m odi fi caci on DAT E fecha_creaci on DAT E pagi na perfi l _m odi fi caci on INT 4 i d_pagi na SERIAL <pk> fecha_m odi fi caci on DAT E FK_PAGINA_R_REFERENCE_ROL pag_i d_pagi na INT 4 <fk> VARCHAR(30) nom bre FK_PAGINA_R_REFERENCE_PAGINA FK_PERFIL_REFERENCE_ROL url VARCHAR(50) Physi cal Data M odel rol i con VARCHAR(50) i d_i nfoParqueadero i d_ti po_parqueadero nom bre di recci on l ati tud l ongi tud SERIAL INT 4 VARCHAR(50) VARCHAR(50) FLOAT 8 FLOAT 8 es_m enu orden perfi l _creaci on fecha_creaci on perfi l _m odi fi caci on fecha_m odi fi caci on <pk> <fk> i d_autori zaci onsri i d_parqueadero num ero_autori zaci on num ero_i ni ci al num ero_fi nal autori zaci on_fecha caduci dad_fecha SERIAL INT 4 INT 4 INT 4 INT 4 DAT E DAT E <pk> <fk> BOOL INT 4 INT 4 DAT E INT 4 DAT E i d_rol nom bre perfi l _creaci on fecha_creaci on perfi l _m odi fi caci on fecha_m odi fi caci on i d_pagi na Figura 4.23 SERIAL VARCHAR(30) INT 4 DAT E INT 4 DAT E INT 4 <pk> Modelo Físico de la Base de Datos Q- Parking Autor: Tesista Fuente: Propia - 126 - <pk> <fk> M odel : PDM QP Package: Di agram : Physi cal Di agram _1 Author: Carl os T oscano Versi on: 4.0.1 Date: 13/06/2013 4.7.3 DESCRIPCIÓN DE OBJETOS DE LA BASE DE DATOS Objeto de Información Parqueadero Atributos Restricciones Actividad Descripción Actividad: Ingresar Nombre Parqueadero Origen: Ninguna Agente: Administrador Pre-condiciones: Nombre -Ninguna Latitud Longitud El nombre, latitud, Dirección longitud, dirección Teléfono fijo y capacidad del Teléfono móvil parqueadero son Capacidad únicos y Plazas obligatorios Post-condiciones: Aumenta Parqueaderos disponibles al sistema. Actividad: Eliminar Parqueadero Origen: Ingresar tipo insumo Agente: Administrador Pre-condiciones: Disponibles Buscar Parqueadero Plazas Ocupadas Validar que no se encuentre en En el objeto Parqueadero permite almacenar la información del parqueadero registrado como nombre, geo referencia , dirección ,capacidad , etc. documentos asociados. Post-condiciones: -Disminuye Parqueadero disponibles al sistema Tabla 4.20 Glosario de “Gestionar Parqueadero”. Autor: Tesista Fuente: Propia Objeto de Información Plaza_ticket Atributos Restricciones Actividad Descripción Actividad: Ingresar Placa Origen: Ninguna Agente: Cajero Pre-condiciones: Placa Fecha_ingreso Fecha_salida Tipo Estado -Ninguna En el objeto Post-condiciones: Plaza_ticket Los atributos placa Aumenta Placa disponibles al sistema. permite ,fecha_ingreso, Actividad: Eliminar placa registrar la fecha_salida son Origen: Ingresar placa placa del únicos y obligatorios Agente: cajero automotor que Pre-condiciones: usa la plaza de Buscar placa aparcamiento Validar que no se encuentre en documentos asociados. Post-condiciones: -Disminuye placa disponibles al sistema Tabla 4.21 Glosario de “Gestionar Plaza Ticket”. Autor: Tesista Fuente propia Objeto de Información Tarifa Atributos Restricciones Actividad Descripción Actividad: Ingresar Tarifa ,precio Origen: Ninguna Agente: Administrador Pre-condiciones: -Ninguna Post-condiciones: Aumenta Tarifa, disponibles al Tipo _ vehículo Precio Los atributos tipo sistema. vehículo, precio Actividad: Eliminar Tarifa únicos y Origen: Ingresar Tarifa obligatorios Agente: Administrador Pre-condiciones: En el objeto Tarifa permite registrar el tipo de vehículo y asignarle un precio Buscar Tarifa Validar que no se encuentre en documentos asociados. Post-condiciones: -Disminuye tarifas disponibles al sistema Tabla 4.22 Glosario de “Gestionar Tarifa”. Autor: Tesista Fuente propia Objeto de Información Reserva Atributos Restricciones Actividad Descripción Actividad: Guardar reservación Placa Los datos de Longitud placa, longitud, Latitud latitud son únicos Fecha_reserva y obligatorios. Estado Origen: Ninguna En el objeto Agente: Cajero, Administrador. Reserva Pre-condiciones: permite Ninguna registrar la Post-condiciones: reserva del Reservación guardada en el sistema parqueadero Actividad: Eliminar reservación que se realiza Origen: Guardar reservación por medio del Agente: Cajero, administrador Smartphone Pre-condiciones: pidiendo como Buscar y seleccionar reservación datos la placa y Post-condiciones: la geo-ferencia Reservación eliminada del sistema Tabla 4.23 Glosario de “Gestionar Reserva”. Autor: Tesista Fuente: Propia - 128 - Objeto de Información: AutorizacionSri Atributos Restricciones Actividad Descripción Actividad: Guardar autorización Origen: Ninguna Agente: Administrador numero_autorizaci on numero_inicial numero_final autorización_fecha caducidad_fecha El número de autorización, número factura inicial, número factura final, fecha autorización y fecha caducidad son obligatorios Pre-condiciones: En el objeto Ninguna AutorizacionSri Post-condiciones: permite registrar Autorización guardada en el sistema. la autorización Actividad: Eliminar autorización. desde número Origen: Guardar autorización inicial hasta el Agente: Administrador número total de Pre-condiciones: autorizaciones Buscar y seleccionar autorización. asignadas del No tener ninguna factura asociada a parqueadero la autorización. Post-condiciones: Autorización eliminada del sistema. Tabla 4.24 Glosario de “Gestionar Autorización SRI”. Autor: Tesista Fuente propia Objeto de Información: Factura Atributos Restricciones Actividad Actividad: Ingresar factura Los datos de serie, Origen: Ingresar orden. número, cliente, RUC y Numero Fecha Subtotal Iva Total Estado Serie id_autorizacionsri id_cliente id_usuario Agente: Cajero, administrador. cédula son únicos y Pre-condiciones: obligatorios. Generar cuenta Fecha, subtotal12, Post-condiciones: subtotal, subtotal, IVA, Se ingresa factura al sistema con total y estado son estado activo. obligatorios. Una factura contendrá al menos un ítem en sus listas. -Subtotal12, subtotal0, subtotal, descuento, IVA total son positivos. El valor es positivo. Tabla 4.25 Descripción Actividad: Anular factura Origen: Ingresar factura. Agente: Cajero, Administrador Pre-condiciones: Buscar y seleccionar factura. Post-condiciones: Se ingresa factura con estado anulado Glosario de “Gestionar Factura”. Autor: Tesista Fuente propia - 129 - En el objeto Factura permite generar una lista de ítem para poder facturar y generar el valor a cobrar por el uso de la plaza de aparcamiento Objeto de Información: Detalle_Factura Atributos Restricciones Actividad Descripción Actividad: Ingresar detalles factura Origen: Ingresar placa. Los datos de placa, Agente: Cajero, administrador. número de horas, precio Pre-condiciones: Id_det_factura son únicos y Generar iten Id_factura obligatorios. Post-condiciones: Placa Una factura contendrá al Se ingresa detalle a la factura del Numero_horas menos un sistema con estado activo. Precio_horas detalle_factura como Actividad: Anular detalle Fecha_ingreso ítem en sus listas. Origen: Ingresar detalle_factura. Fecha_salida -Subtotal12, subtotal0, Agente: Cajero, Administrador id_plaza subtotal, descuento, IVA Pre-condiciones: total son positivos. Buscar y seleccionar detalle factura. El valor es positivo. Post-condiciones: En el objeto detalle_Factura es almacenar las placas para luego esta sean facturadas según el número de horas que el automóvil permanece en el estacionamiento Se ingresa detalle_factura con estado anulado Tabla 4.26 Glosario de “Gestionar Detalle Factura”. Autor: Tesista Fuente: Propia Objeto de Información: Cliente Atributos Restricciones Actividad Descripción Actividad: Ingresar cliente Origen: Ninguna Agente: Cajero, administrador. Pre-condiciones: Ninguna Id_cliente nombre El número de cédula o Post-condiciones: ruc RUC son únicos y Se agrega un cliente al sistema. cedula obligatorios teléfono_fijo El nombre y la Actividad: Eliminar cliente teléfono_movil dirección son Origen: Ingresar cliente dirección obligatorios. Agente: Administrador Pre-condiciones: id_parqueadero Buscar y seleccionar cliente. Que no tenga facturas asociadas Post-condiciones: Cliente eliminado del sistema Tabla 4.27 Glosario de “Gestionar Cliente”. Autor: Tesista Fuente: Propia - 130 - En el objeto Cliente permite almacenar los datos de los clientes que hacen uso de las plazas de aparcamiento. Objeto de Información: Tipo Parqueadero Atributos Restricciones Actividad Descripción Actividad: Ingresar tipo_parqueadero Origen: Ninguna Agente: Administrador. Pre-condiciones: El nombre y Id_tipo_parq descripción son ueadero únicos y Nombre obligatorios Descripción . Ninguna En el objeto Post-condiciones: Tipo_parqueadero Se agrega un tipo de parqueadero permite almacenar la al sistema. información de los Actividad: Eliminar tipo_parqueadero distintos tipos de Origen: Ingresar tipo_parqueadero parqueaderos que Agente: Administrador existen en el distrito Pre-condiciones: metropolitano de Quito. Buscar y seleccionar tipo_parqueadero. Que no tenga información parqueadero asociadas Post-condiciones: Tipo_parqueadero eliminado del sistema Tabla 4.28 Glosario de “Gestionar Tipo Parqueadero”. Autor: Tesista Fuente: propia Objeto de Información: Info_parqueadero Atributos Restricciones Actividad Descripción Actividad: Ingresar Info_parqueadero Origen: ingresar tipo_parqueadero Agente: Administrador. Pre-condiciones: En el objeto Tipo_parqueadero info_parqueadero ,dirección, latitud y Post-condiciones: permite almacenar longitud son Se agrega un parqueadero al sistema. la formación y nombre únicos y Actividad: Eliminar info_parqueadero localización de las dirección obligatorios Origen: Ingresar tipo_parqueadero direcciones y la geo latitud . Agente: Administrador referencia de los Pre-condiciones: Buscar y seleccionar mismos. Id_infoPar queadero El nombre Id_tipo_par queadero longitud info_parqueadero. Que no tenga información tipo_parqueadero asociadas Post-condiciones: info_parqueadero eliminado del sistema Tabla 4.29 Glosario de “Gestionar Tipo Parqueadero”. Autor: Tesista Fuente: Propia - 131 - Objeto de Información: Usuario Atributos Restricciones Actividad Descripción Actividad: Ingresar Usuario Fecha de creación Origen: Ninguna Contraseña Agente: Súper Fecha de caducidad de administrador, administrador. contraseña Pre-condiciones: Fecha de creación El usuario es Fecha de modificación único y obligatorio Perfil de creación La contraseña, Perfil de modificación nombre, apellido, Usuario cédula, mail Apellido (personal), mail Cédula (institucional) son Dirección ítem obligatorios. Fecha de nacimiento Ninguna Post-condiciones: Se agrega un usuario al sistema. Actividad: Eliminar usuario Origen: Ingresar usuario Agente: Súper En el objeto Usuario permite almacenar la información de personas que van a registrarse como parte del parqueadero administrador, Administrador Pre-condiciones: Mail institucional Buscar y seleccionar usuario. Mail personal Post-condiciones: Nombre Cliente eliminado del sistema Tabla 4.30 Glosario de “Gestionar Usuario”. Autor: Tesista Fuente propia Objeto de Información: Perfil Atributos Restricciones Actividad Descripción Actividad: Gestionar Perfil Origen: Ingresar Usuario Agente: Súper administrador. Pre-condiciones: Fecha de creación Fecha de modificación Perfil de creación Ninguna Perfil de modificación Buscar usuario En el objeto Perfil Post-condiciones: permite almacenar los Se gestiona uno o varios Roles para perfiles que se le el Perfil. puede dar a un Actividad: Seleccionar perfil usuario del sistema Origen: Ingresar usuario con sus respectivas Agente: Administrador acciones Pre-condiciones: Seleccionar nuevos Roles. Post-condiciones: Se actualizan los Roles del Perfil. Tabla 4.31 Glosario de “Gestionar Perfil”. Autor: Tesista Fuente: Propia - 132 - Objeto de Información: Rol Atributos Restricciones Actividad Descripción Actividad: Crear Rol Origen: Ninguna Agente: Súper administrador. Pre-condiciones: El Nombre y URL deben existir en el Sistema. Post-condiciones: Se crea un nuevo Rol en el Sistema Actividad: Editar Rol Origen: Ninguna Fecha de creación Agente: Súper administrador. Fecha de modificación Perfil de creación Pre-condiciones: Ninguna El Nombre y URL deben existir en Perfil de modificación el Sistema. Id_pagina Post-condiciones: Se modifica un Rol en el Sistema. Actividad: Eliminar Rol Origen: Ingresar Rol Agente: Súper administrador Pre-condiciones: Seleccionar Rol. Confirmar acción Post-condiciones: Se elimina un Rol. Tabla 4.32 Glosario de “Gestionar Rol”. Autor: Tesista Fuente: Propia - 133 - En el objeto Rol permite almacenar el rol que manejar el usuario según el perfil que se le asigne. Objeto de Información: Pagina Atributos Restricciones Actividad Descripción Actividad: Agregar Página Origen: Ninguna Agente: Súper administrador. Pre-condiciones: Ninguna Post-condiciones: Se agrega una página en el sistema Actividad: Editar página Menú Origen: Ingresar página Fecha de creación Agente: Súper administrador Fecha de modificación Nombre Orden Perfil de creación El nombre y URL son obligatorios Pre-condiciones: En el objeto Buscar y seleccionar página. Pagina permite -Confirmar edición. almacenar los Url -Post-condiciones: de las paginas Perfil de modificación -Se actualizan los cambios URL editados en la página. Actividad: Eliminar página Origen: Ingresar página Agente: Súper administrador Pre-condiciones: -Buscar y seleccionar página. -Confirmar acción. Post-condiciones: -Se elimina la página del sistema Tabla 4.33 Glosario de “Gestionar Pagina”. Autor: Tesista Fuente propia - 134 - Objeto de Información: Permisos Atributos Restricciones Actividad Descripción Actividad: Gestionar Permisos Origen: Ingresar Usuario Agente: Master Pre-condiciones: -Seleccionar un Rol • Post-condiciones: Fecha de -Se genera permisos para el rol creación • Fecha de Actividad: Seleccionar -Ninguna modificación • Perfil de creación • Perfil de Permisos Origen: Ninguna Agente: master modificación En el objeto Permisos permite almacenar los permisos que se le asigna al rol de un usuario Pre-condiciones: -Seleccionar un Rol -Seleccionar permisos. -Confirmar edición. Post-condiciones: -Se editan permisos para el rol. Tabla 4.34 Glosario de “Gestionar Permiso”. Autor: Tesista Fuente: Propia Objeto de Información: Persona Atributos Restricciones Actividad Descripción Actividad: Gestionar Persona Origen: ninguno Agente: administrador Pre-condiciones: -Ninguna nombre Post-condiciones: apellido cedula -Nombre, apellido, fecha de Cedula son nacimiento campos mail_personal obligatorios -Se agrega los datos persona al sistema Actividad: Seleccionar Persona Origen: Ingresar Persona mail_institucional Agente: administrador dirección En el objeto Persona permite almacenar los datos delos trabajadores del parqueadero para asignarlos como usuarios y roles Pre-condiciones: -selecciona un usuario -Asigna un rol Post-condiciones: -Se editan permisos usuario Tabla 4.35 Glosario de “Gestionar Persona”. Autor: Tesista Fuente: Propia - 135 - 5 CONCLUSIONES Y RECOMENDACIONES 5.1 CONCLUSIONES El desarrollo del sistema Q-Parking, brinda la posibilidad de tener información de forma inmediata sobre plazas de aparcamiento que estén disponible, con el objetivo de tomar una decisión precisa al momento de dirigirse a una parqueadero y evitar el estrés de la congestión vehicular a las entradas de los estacionamientos. Como resultado de una continua investigación y desarrollo se logró obtener un aplicativo móvil con una interfaz muy atractiva, sencilla y útil, que permitirá tomar la decisión de buscar un parqueadero que tenga plazas de aparcamiento disponibles así también como información de los diferentes tipos de parqueaderos existentes en el Distrito Metropolitano de Quito. La utilización de tecnologías basadas en software libre permite la generación de aplicaciones web y móviles, robusto, seguros y con alta rentabilidad ya que permite a los programadores no tener limitaciones a la hora de desarrollas aplicaciones según el concepto I+D+i (Investigación, desarrollo e innovación). Cabe aclarar que lejos de utilizar esta aplicación no se debe pensar que se va a mitigar los problemas de movilidad en las calles estrechas del Distrito Metropolitano de Quito, sino más bien el uso del sistema nos permitirá tener a la mano una aplicación que nos ayude a optimizar el tiempo al buscar una plaza de aparcamiento. Es importante recalcar que este proyecto tiene como visión el ser aplicado no solo para parqueaderos, también se podría implementar en distintos tipos de negocios como pueden ser hoteles, restaurantes, supermercados, - 136 - farmacias, centros comerciales, lugares turísticos, etc. 5.2 RECOMENDACIONES En la implementación del sistema se debe considerar las siguientes recomendaciones Que para el alojamiento de la aplicación Web y la base de datos se utilice Cloudhosting para reducir los costos que implica el mantenimiento de servidores físicos en un data center. Los servidores tanto como para la aplicación web como para la base de datos deben tener sistema operativo Linux. Es recomendable utiliza un dispositivo móvil que cumpla con los requerimientos mínimos para que al momento del despliegue de los mapas estos se visualicen sin dificultad. - 137 - 6 GLOSARIO A API: Application programación de Programming Interface aplicaciones), es el (en español conjunto de interfaz de funciones y procedimientos (o métodos, en la programación orientada a objetos) que ofrece cierta biblioteca para ser utilizado por otro software como una capa de abstracción. Son usadas generalmente en las bibliotecas. F Frecuencia de reloj: Indica la velocidad a la que un computador realiza sus operaciones más básicas, como sumar dos números o transferir el valor de un registro a otro. Se mide en ciclos por segundo (hercios). Framework: Es una estructura conceptual y tecnológica de soporte definido, normalmente con artefactos o módulos de software concretos, que puede servir de base para la organización y desarrollo de software. Típicamente, puede incluir soporte de programas, bibliotecas, y un lenguaje interpretado, entre otras herramientas H HTTP: Hypertext Transfer Protocol (en español protocolo de transferencia de hipertexto), es el protocolo usado en cada transacción de la World Wide Web. I IDE: es un entorno de programación, consiste en un editor de código, un compilador, un depurador y un constructor de interfaz gráfica (GUI). J Java ME: La plataforma Java Micro Edition (Java ME), o anteriormente Java 2 Micro Edition (J2ME), es una especificación de un subconjunto de la plataforma Java orientada a proveer una colección certificada de APIs de desarrollo de software para dispositivos con recursos restringidos. - 138 - M Metadatos: Son datos que describen otros datos. Metadatos, es un término que se refiere a datos sobre los propios datos. R SGBD: Sistema de Gestión de Bases de Datos, es un conjunto de programas que permiten el almacenamiento, modificación y extracción de la información en una base de datos. T Touchpad: Es un término tecnológico inglés para referirse a un panel táctil que permite controlar un cursor o facilitar la navegación a través de un menú o de cualquier interfaz gráfica. U URL: Uniform Resource Locator (es español localizador de recursos uniforme), es una secuencia de caracteres, de acuerdo a un formato modélico y estándar, que se usa para nombrar recursos en Internet para su localización o identificación. W Web Service (en inglés, Web Service o Web services) es una tecnología que utiliza un conjunto de protocolos y estándares que sirven para intercambiar datos entre aplicaciones - 139 - 7 BIBLIOGRÁFIA 1. ALERTAENLINEA.GOV, “Aplicaciones móviles: Qué son y cómo funcionan”. (2011). Descargado el 21 marzo de 2012 desde http://alertaenlinea.gov/articulos/s0018-aplicaciones-m%C3%B3vilesqu%C3%A9-son-y-c%C3%B3mo-funcionan 2. EDUKANDA.ES, “mediatecaweb”. (2011). Descargado el 21 marzo de 2012 desde http://www.edukanda.es/mediatecaweb/data/zip/1164/page_07.htm 3. WIKIPEDIA.ORG,Articulo,”Android” (2012). Descargado el 21 marzo de 2012 desde http://es.wikipedia.org/wiki/Android 4. WIKIPEDIA.ORG, Articulo,”Apple_iOS” (2012).Descargado el 21 marzo de 2012 desde http://es.wikipedia.org/wiki/Apple_iOS 5. WIKIPEDIA.ORG, Articulon, ”Symbian_OS” (2012) Descargado el 21 marzo de 2012 desde http://es.wikipedia.org/wiki/Symbian_OS 6. WIKIPEDIA.ORG,Articulo,”Research In Motion” (2012) Descargado el 22 marzo de 2012 desde http://es.wikipedia.org/wiki/Research_In_Motion 7. WIKIPEDIA.ORG,Articulo,”Palm_OS “(2012) Descargado el 22 marzo de 2012 desde http://es.wikipedia.org/wiki/Palm_OS 8. WIKIPEDIA.ORG, Articulo, WebOS “(2012) Descargado el 22 marzo de 2012 https://es.wikipedia.org/wiki/WebOS 9. WIKIPEDIA.ORG, Articulo,“Windows Phone” (2012) Descargado el 22 marzo de 2012 desde http://es.wikipedia.org/wiki/Windows_Phone 10. WIKIPEDIA.ORG,Articulo- Dispositivos Móviles (2012) Descargado el 27 marzo de 2012 desde http://es.wikipedia.org/wiki/Dispositivos_moviles 11. WIKIPEDIA.ORG,”Alojamiento web” (2012) Descargado el 2 abril 2012 desde http://es.wikipedia.org/wiki/Alojamiento_web 12. INTRODUCCIÓN A LAS APLICACIONES WEB. (2012) Descargado el 16 abril de 2012 desde http://www.infor.uva.es/~jvegas/cursos/buendia/pordocente/node11.html 13. GARTNER, Newsroom. (2012) Descargado el 18 de abril de 2012 desde http://www.gartner.com/it/page.jsp?id=1622614 14. ACERCA DE IOS PARA EL DESARROLLO, La arquitectura de iOS (2011) Descargado el 18 de mayo 2012 desde, http://developer.apple.com/library/ios/#documentation/Miscellaneous/Conceptual/ iPhoneOSTechOverview/IPhoneOSOverview/IPhoneOSOverview.html 15. AGENCIA PÚBLICA DE NOTICIAS DE QUITO, “Municipio de Quito - 140 - implementará 3 tipos de parqueaderos cuando se aplique el Pico y Placa” (2012) descargado el 22 de julio desde, http://www.noticiasquito.gob.ec/Noticias/news_user_view/municipio_de_q uito_implementara_3_tipos_de_parqueaderos_cuando_se_aplique_el_pico_y_pl aca--139 16. DISPOSITIVOS MÓVILES, IOS Apple (2012) Descargado el 18 de mayo de 2012 desde, http://dmovilesras.blogspot.com/2012/05/ios-apple.html 17. SCRBD, Blackberry Os (2012) Descargado el 18 de mayo del 2012 desde , http://es.scribd.com/doc/59607230/Blackberry-OS 18. BLACKBERRY. DEVCITE, Introducción a la arquitectura de BlackBerry (2012) ,Descargado el 22 de Mayo de 2012 desde , http://blackberry.devcite.com/2010/04/15/introduccion-a-la-arquitecturablackberry-i/ 19. PINSIM.COM, smc, Sistema Móvil celular (2009), Descargado el 25 de mayo de 2012 desde ,http://pinsim.com/conceptos/smc-sistema-movil-celular.html 20. WIKIPEDIA.ORG,”Dispositivo móvil” (2012), Descargado el 25 de junio de 2012 desde https://es.wikipedia.org/wiki/Dispositivo_m%C3%B3vil 21. BIBLIOTECA,”ArcGIS Resource Center” (2012), Descargado el 30 de mayo de 2013 desde , http://help.arcgis.com/es/arcgisdesktop/10.0/help/index.html#//003r0000000p000 000 22. WIKIPEDIA, “Global Positioning System “(2013) Descargado el 30 de mayo de 2013 desde , http://es.wikipedia.org/wiki/Sistema_de_posicionamiento_global 23. THE CODE PROJECT, “Writing your own GPS Applicactions: Part2”, (2013 ) Descargado el 30 de mayo de 2013 desde , http://www.codeproject.com/Articles/9115/Writing-Your-Own-GPS-ApplicationsPart-2 24. WIKIPEDIA.ORG,”rup”,(2012) Descargado el 24 de julio de 2012 desde , http://es.wikipedia.org/wiki/Proceso_Unificado_de_Rational - 141 - 25. WIKIPEDIA.ORG, Web Service (2012), descargado el 03 de julio de 2012 desde, http://es.wikipedia.org/wiki/Servicio_web 26. CARTOVIRTUAL, “Sistema de Coordenada” (2012) ,Descargado el 13 de septiembre de 2012 desde, http://www.cartovirtual.es/aprendizaje/cursoTIG/index.html 27. WIKIPEDIA.ORG,”Corva”, (2012), descargado el 16 de octubre de 2012 desde, http://es.wikipedia.org/wiki/CORBA 28. WIKIPEDIA.ORG,” Aplicación Web”, (2015) descargado el 25 de junio de 2015 desde https://es.wikipedia.org/wiki/Aplicaci%C3%B3n_web 29. MAESTROS DEL WEB, ”Estándares Web” ,(2014) ,descargado el 22 de julio desde, http://www.maestrosdelweb.com/estandaresweb/ - 142 - ANEXOS - 143 - ANEXOS A MANUAL DE USUARIO APLICACIÓN WEB SYSQP - 144 - REQUISITOS PARA LA IMPLEMENTACIÓN DEL SISTEMA Hardware Aplicación web (Servidor) - 2 GB de memoria RAM (mínimo) y 4 GB (recomendado). - 20 GB de espacio libre en disco para la aplicación. - 1 TB de espacio libre en disco para la base de datos. - Procesador de 1 GHz (mínimo) y 2 GHz (recomendado). Aplicación web (Cliente) - 1 GB de memoria RAM (mínimo) y 2 GB (recomendado). - Procesador de 1 GHz (mínimo) y 2 GHz (recomendado). Software Aplicación web (Servidor Web) - La aplicación web es multiplataforma, puede ser implementada en un servidor de cualquier sistema operativo (Windows, Linux, Macintosh). - JDK 7. Java Development Kit versión 7. - JBoss AS7, servidor de aplicaciones para J2EE. Aplicación web (Cliente Web) - Navegador de internet con versiones mínimas: - Google Chrome versión mínima 4.0.223 - 145 - - Mozilla Firefox 32. APLICACIÓN WEB Ingreso Al Sistema Para el ingreso a la aplicación Web siempre hay que tomar encuentra que el servidor este levantado con la IP que le hayan asignado, luego de esa verificación procedemos a levanta la aplicación y el navegador digitar la IP del servidor, el puerto del servidor y el nombre del proyecto; Dar ENTER. Inmediatamente aparece la pantalla de ingreso al Sistema Figura D.1 Pantalle de ingreso al sistema web Se debe ingresar la información solicitada y dar clic en el botón Se debe llenar la pantalla de ingreso (para ingresar como Cajero, Administrador o como Master-Admin, más la contraseña asignada) una vez ingresado dar clic en - 146 - , se desplegará la pantalla principal según el perfil escogido. Ingreso Al Sistema Como Usuario Master-Admin Se desplegara un menú en la parte superior en el cual podemos escoger que es lo que deseamos realizar Gestionar Seguridad Dando clic el botón se desplegará el menú de GESTIONAR SEGURIDAD en la parte izquierda: Gestión de Permisos Dando clic el botón este nos permite El usuario Master-Admin muestra el siguiente menú principal, que contiene los ítems GESTIONAR SEGURIDAD. - 147 - Figura D.2 Menú principal Usuario Master-Admin Gestionar Parqueaderos Si damos clic en el botón se desplegara el menú que permite GESTIONAR PARQUEADEROS el cual ayudará a agregar parqueaderos en el Sistema de Estacionamientos del Distrito Metropolitano. Dando clic el botón nos permite salir de la aplicación al menú principal. Ingreso Al Sistema Como Usuario Administrador Se debe ingresar como usuario “adminSanBlas” y la clave :”admin” proporcionada El usuario Administrador muestra el siguiente Menú principal, que contiene los ítems GESTIÓN DE ADMINISTRACIÓN, GESTIONAR SEGURIDAD, LOGOUT (salir). - 148 - Gestión de Administración Dando clic el botón resaltado se desplegará el menú de la Gestión de Administración como la figura siguiente. Figura D.3 Menú principal Usuario Administrador En el menú se desplegara dos botones los cuales nos permite realizar las siguientes actividades Gestión Autorización Sri • Dando clic el botón se desplegara la pantalla en donde se podrá ingresar el Número de Autorización, con el número inicial de la factura y el número final de la misma, así también la fecha de la autorización y la caducidad de la misma. - 149 - Figura D.4 Autorización Datos Sri Gestión de Tarifas • Dando clic el boton se desplegara la pantalla donde se podrá Gestionar las Tarifas que tendrá el parqueadero con el precio de las mismas. Figura D.5 Gestión de Tarifas Gestión de la Seguridad Dando clic el botón resaltado se desplegará el menú de la Gestión de Seguridad como la figura siguiente. - 150 - Figura D.6 Gestión de Seguridad Gestión de Usuarios Dando clic el botón se desplegará una pantalla en la cual se podrá Gestionar los Usuarios que intervendrán en el parqueadero creando usuario y se le asignará un perfil con el cual actuara en el sistema. Figura D.7 Gestión de Usuarios Gestión de Perfiles Dando clic en el botón nos permitirá gestionar las páginas, roles y asignar permisos al usuario creado para la atención en el parqueadero. - 151 - Figura D.8 Gestión de Perfiles Ingreso Al Sistema Como Usuario Cajero Para ingresar como Usuario Cajero nos logeamos con el usuario y contraseña asignado en este caso ingresamos como Usuario: cajaSanBlas y clave: caja Figura D.9 Menú principal Usuario Cajero Gestionar Alquilar Plazas Una vez ingresado, se desplegara el siguiente menú dando clic en el botón en el cual nos permitirá gestionar el Alquiler de Plazas del parqueadero. En el menú se despliega cuatro botones como de visualiza en la siguiente imagen: Figura D.10 - 152 - Menú principal Usuario Cajero Gestionar Clientes Al dar clic en el botón se desplegara la siguiente pantalla en la cual se podrá ingresar los datos de los clientes Figura D.11 Gestión Clientes Gestionar Plazas Al dar clic en el botón se desplegara la siguiente pantalla en la cual se podrá ingresar los vehículos que llegan al parqueadero y se mostrara la información de plazas ocupadas y disponibles. - 153 - Figura D.12 Gestión Plazas Gestionar Clientes Al dar clic en el botón se desplegara la siguiente pantalla en la cual se podrá gestionar las reservas en parqueadero o las reservas enviadas mediante la aplicación instalada en el dispositivo móvil y una vez receptada y el usuario llegue al parqueadero inicie su instancia en el parqueadero. Figura D.13 - 154 - Gestión Reservas Gestionar Factura Al dar clic en el botón se desplegara la siguiente pantalla en la cual se podrá generar la factura de la instancia del vehículo Figura D.14 Gestión Facturacion Cliente Al dar clic el botón permite buscar de una lista de clientes registrados para agregar a la factura. Consumidor Final Al dar clic en el botón agregara en la factura al cliente como consumidor final. Buscar Se puede buscar una placa ingresando en la casilla y dando clic en el botón ; la cual se agregara como detalle para ser facturada. - 155 - Agregar Placa Al dar clic en el botón Permite agregar más placa al detalle de la factura escogiendo de la lista que se desplegara Imprimir Al dar clic en el botón se imprimirá la factura generada Eliminar Si desea eliminar una placa, selecciónela de la LISTA DE PLACAS a ser facturadas haciendo clic en el botón ELIMINAR. Factura Al ingresar el número de factura a buscar, dar clic en el botón . Permite buscar facturas almacenadas para luego mandar a imprimir. - 156 - ANEXOS B. MANUAL DE USUARIO APP Q-PARKING - 157 - MANUAL DE USUARIO APP Q-PARQUINK INTRODUCCION Propósito del Documento El presente documento está dirigido a entregar las pautas de operación del App “Q-Parking”. Este sistema permite la gestión de requerimientos para encontrar el parqueadero más cercano a nuestra aplicación Para acceder a la aplicación primero se debe descargar de Play Store Requerimientos Los requerimientos del equipo móvil para la instalación de la aplicación “Q-Parking”. • Versión mínima de Android: 3.0 • Acceso a Internet. (Plan de Datos) • Nota: debido a que la consulta de mapas es mediante el servicio de Internet, la velocidad de la aplicación dependerá de la velocidad de conexión a Internet que se tenga en el equipo DESCARGA DE LA APLICACIÓN Para descargar la aplicación debemos entrar desde el dispositivo móvil a Google Play (Play Store) y buscar ahí la aplicación con el nombre de “Q-Parking”. - 158 - Figura E.1 Descarga de Aplicación QParking Fuente propia. Una vez instalada la aplicación en el Smartphone, la podremos encontrar en la sección de Aplicaciones, para iniciarla hay que dar un clic que sobre el ícono de la aplicación (app). Figura E.2 . Icono de la Aplicación Fuente propia. Una vez dado el clic se desplegara la pantalla principal del App de la siguiente manera: - 159 - Figura E.3 . Pantalla Principal del App-QParking Fuente propia. En la pantalla principal se desplegará cuatro botones que se describirá a continuación: Buscar Parqueaderos Si damos clic en el botón se desplegara un mapa con una lista de parqueaderos más cercanos a la posición actual del vehículo en donde dará la información de la distancia y la dirección que se encuentran los parqueaderos donde se podrá reservar una plaza de aparcamiento. - 160 - Figura E.4 . Buscar Parqueadero Fuente propia. Al presionar en un parqueadero escogido de la lista, le enviara a una pantalla donde se desplegara un mapa con su posición actual y la del parqueadero escogido, en el cual podrá utilizar el sistema de navegación de Google Map para fijar la ruta para llegar a él, además se podrá hacer una reservación de una plaza de aparcamiento en el parqueadero escogido, basta con ingresar la placa de su vehículo con se indica en la siguiente gráfica. - 161 - Figura E.5 . Reservar Parqueadero Fuente propia. Una vez presionado el parqueadero de la lista en el recuadro PLACA se deberá ingresar la placa de su vehículo para que sea registrada, presionar el botón RESERVA se enviara el número de placa para ser reservada una plaza en el parqueadero escogido. Importante el servidor le responderá si su reservación es exitosa no. Información Parqueaderos Al presionar el botón le enviara a una pantalla donde podrá visualizar información de los diferentes tipos de parqueaderos existentes en el Distrito Metropolitano de Quito - 162 - Figura E.6 . Información Parqueadero Fuente propia. Se desplegara 4 tipos de parqueaderos: 1. Parqueaderos de Borde 2. Parqueadero de Zona Azul. 3. Parqueaderos de Zona Universitaria. 4. Parqueadero del Centro Histórico 5. Intermodales Parqueaderos Borde Que se encuentran ubicados en el perímetro de restricción del “pico y placa” como los que se encuentran en: • El Condado • Monteolivo • Cuscungo • Carapungo • Las Cuadras - 163 - Parqueaderos Zona Azul Los estacionamientos públicos localizados en el interior de este hipercentro, plazas para público de uso rotativo. Parqueaderos de Zona Universitaria. Son zonas que se encuentran en las cercanías de las diferentes universidades Parqueadero del Centro Histórico Son parqueaderos que se encuentran en la parte del centro histórico así tenemos los siguientes: Parqueadero Intermodales Son parqueaderos que se encentran en el interior de la ciudad que promueven el intercambio modal en donde pueden dejar sus vehículos en estos estacionamientos y acceder al transporte público como El Trolebús, Eco vía, Corredor Central Norte y buses convencionales de transporte Mis Reservas Al dar clic en el botón desplegara la pantalla en donde se podrá visualizar la información de la reserva efectuada o cancelar la misma - 164 - Figura E.7 . Mis Reservas Fuente propia. PICO Y PLACA Dando clic en el botón desplegara una pantalla de información sobre los días que aplica la restricción del pico y placa. Figura E.8 . Información del Pico –Placa Fuente propia. - 165 - ANEXOS C. MANUAL DE TÉCNICO - 166 - MANUAL TÉCNICO ESTRUCTURA BASE DEL SISTEMA APLICACIÓN WEB Figura E.9 Pantalla explorador de paquetes fuente Fuente propia. JavaSource Paquete que contiene todo el código fuente, fue distribuido de la siguiente manera siguiendo el estándar modelo - vista - controlador. Controladores (Lógica de negocio) Paquetes de Controladores (módulo administración): Figura E.10 Paquete edu.uce.sysqp.administracion.controlador Fuente propia. - 167 - Paquetes de Controladores (módulo facturación): Figura E.11 Paquete edu.uce.sysqp.facturacion.controladores Fuente propia. Paquetes de Controladores (módulo seguridades): Figura E.12 Paquete edu.uce.sysqp.seguridad.controladores Fuente propia. Paquetes de Controladores (módulo servidor): Figura E.13 Paquete edu.uce.sysqp.servidor.controlador Fuente propia. Servicios (Persistencia con la base de datos) Paquetes de Servicios (módulo administración): Figura E.14 Paquete edu.uce.sysqp.administracion.servicio Fuente propia. Paquetes de Servicios (módulo facturación): - 168 - Figura E.15 Paquete edu.uce.sysqp.facturacion.servicios Fuente propia. Paquetes de Servicios (módulo seguridad): Figura E.16 Paquete edu.uce.sysqp.seguridad.servicios Fuente propia. Paquetes de Servicios comunes: Figura E.17 Paquete edu.uce.syscavi. servicios.commons Fuente propia. - 169 - Paquete entidades JPA Figura E.18 Paquete edu.uce.sysqp.entidades Fuente propia. Estructura base de una entidad JPA Figura E.19 Entidad JPA Parqueadero Fuente propia. - 170 - Paquete de utilitarios Figura E.20 Paquete edu.uce.sysqp.controladores.commons Fuente propia. Paquete Servicios web Figura E.21 Paquete edu.uce.sysqp.webservices Fuente propia. Entidades móviles para usar en los servicios web, clases planas basadas en las entidades JPA. Figura E.22 Paquete edu.uce.sysqp.entidades.movil Figura D.15 Fuente propia. - 171 - Estructura básica de un servicio web. Figura E.23 Paquete servicio web recuperar parqueadero ms cercano Fuente propia. Configuración JBoss Figura E.24 Configuración ant-build-properties Fuente propia. - 172 - WebContent (Vista) Contiene todos los paquetes para modelar la vista. Figura E.25 Paquete WebContent Fuente propia. Paquete páginas xhtml Figura E.26 Paquete WebContent Fuente propia. - 173 - Paquete WEB-INF (Librerías) Figura E.27 Librerías principales Fuente propia. Figura E.28 Librerías implementadas Fuente propia. - 174 - ESTRUCTURA BASE DEL SISTEMA MÓVIL ANDROID q-parking Paquete src (Código fuente) Figura E.29 Paquetes fuente Fuente propia. - 175 - Actividades (Controladores) Figura E.30 Actividades Fuente propia. Gestión de la librería google-play-services_lib Figura E.31 Librería google-play-services_lib Fuente propia. Figura E.32 Añadir la Librería google-play-services_lib Fuente propia. - 176 - Objetos de aplicación Estructura base de objetos de aplicación, conocidos también como variables de sesión. Figura E.33 Objetos de aplicación (datos en sesión). Fuente propia. Tareas asincrónicas Para soportar versiones superiores a Android 4.0 Figura E.34 Esquema general de una tarea asincrónica Fuente propia. - 177 - Utilitarios Figura E.35 Utilitarios Fuente propia. Consumidor servicios web Cliente consumidor de los servicios web, que realiza petición y espera una respuesta del servidor. Figura E.36 Cliente consumidor de servicios web Fuente propia. - 178 - Archivo Manifest Archivo principal de Android en donde se pone en manifiesto: versión soportada mínima y máxima, permisos de red, actividades principales y secundarias. Figura E.37 Archivo Manifest Fuente propia. - 179 -