View
236
Download
0
Category
Preview:
Citation preview
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
ii
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
. Kalin. TM
iii
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
iv
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
viii
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 -
ix
CAPÍTULO 2 - 9 -
2 MARCO TEÓRICO - 9 -
2.1 Antecedentes - 9 -
2.2 Aplicaciones Móviles - 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 - 20 -
2.3.1 Estructura de una Aplicación web - 21 -
2.4 Desarrollo de Aplicaciones Web - 21 -
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 -
x
CAPITULO 3 - 38 -
3 SOLUCIÓN PROPUESTA - 38 -
Introducción - 38 -
3.1 DESCRIPCIÓN DEL HARDWARE PARA EL DESARROLLO DEL PROTOTIPO - 39 -
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: - 45 -
3.2 DESCRIPCIÓN DE LAS COMUNICACIONES - 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 - 70 -
3.4.1 Simulación de Cálculo de Distancias - 74 -
3.5 Información de Tipos de Parqueaderos - 75 -
xi
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 - 110 -
4.5 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 - 116 -
4.6.1 Diseño de Clases - 116 -
xii
4.6.2 Diseño de Casos de Uso - 118 -
4.7 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 - 144 -
ANEXOS B. - 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 - 4 -
xiii
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. - 43 -
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) - 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 -
xiv
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 - 80 -
xv
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 -
xvi
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 DEL PARQUEADERO,HACIENDO USO DE 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
xvii
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
xviii
CERTIFICADO
YO, LCDA. VICTORIA MARGARITA CARRILLO CARRASCO,
PORTADORA DE 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.
- 1 -
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:
- 2 -
CAPÍTULO 1
1 PRESENTACIÓN DEL PROBLEMA
1.1 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
Corpaire1, 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”
- 3 -
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.
- 4 -
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
- 5 -
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.
- 6 -
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 sobre otro tipo de
estacionamientos no cerrados como 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.
- 7 -
Aforo ocupado.
1.6 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
- 8 -
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.
- 9 -
CAPÍTULO 2
2 MARCO TEÓRICO
2.1 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
- 10 -
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:
- 11 -
• 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 DocumentsToGo3, 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.
- 12 -
• 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.
- 13 -
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.
- 14 -
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:
- 15 -
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.
- 16 -
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
Figura 2.1 Cuota de Mercado
Autor: Tesista
Fuente Gartner
0%
49%
11%
17%
20%
3%
CUOTA DE MERCADO
Syambian
Android
Reasearch in Motion
IOS
Microsoft
Otros
- 17 -
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
- 18 -
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.
- 19 -
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
- 20 -
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
- 21 -
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
- 22 -
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
- 23 -
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
- 24 -
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
- 25 -
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
- 26 -
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
- 27 -
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
- 28 -
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.
- 29 -
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 y que funcionen en cualquier
dispositivo de acceso a internet.
- 30 -
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.
- 31 -
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
- 32 -
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
- 33 -
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
- 34 -
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
- 35 -
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
- 36 -
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
- 37 -
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, BEEP4, JABBER5, 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
- 38 -
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
- 39 -
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
- 40 -
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 ingresar información en sus pantallas
táctiles 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 se decidió seleccionar el
Smartphone Samsung Galaxy S4 (ver en la figura) 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
- 41 -
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ón6 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),
- 42 -
de dilución geométrica7 (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
- 43 -
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
- 44 -
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
- 45 -
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 para aplicar las
comunicaciones que se va utilizar para manejar el intercambio de
información entre el servidor y los clientes Smartphone se hará uso de
- 46 -
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.
• UMTS8/3G: Es el estándar de tercera generación que viene
8 UMTS (Universal Mobile Telecommunications System o servicio universal de telecomunicaciones móviles).
- 47 -
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
- 48 -
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,
- 49 -
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
- 50 -
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 incluir
soporte de programas ,librerías entre otros software para ayudar a
desarrollar y unir diferentes componentes de un proyecto permitiendo a
diseñadores y programadores concentrarse en los requerimientos del
proyecto ,reduciendo los posibles problemas 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
- 51 -
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.
- 52 -
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
- 53 -
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
- 54 -
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 JSP9 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
- 55 -
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
- 56 -
• 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.
- 57 -
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
- 58 -
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 CORBA10
• 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
- 59 -
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)
- 60 -
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
- 61 -
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á
- 62 -
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
- 63 -
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, middleware11
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
- 64 -
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
- 65 -
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.
- 66 -
• 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:
- 67 -
• 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:
- 68 -
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,
- 69 -
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
- 70 -
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
- 71 -
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
- 72 -
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:
𝑂𝑛𝐶 𝑝 = 𝑆𝑆𝑛 (𝜑𝑎 ) ∗ 𝑆𝑆𝑛 (𝜑𝑏) + [𝑂𝑛𝐶 𝜑𝑎 ∗ 𝑂𝑛𝐶𝜑𝑏 ∗ 𝑂𝑛𝐶(𝜆𝑎 − 𝜆𝑏)]
- 73 -
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 = 𝑛𝑛𝑔𝐿𝑆, 𝑆𝐶𝐿𝑆, − 1𝐶𝑛𝑔 , 𝑛𝑆𝐶𝐿𝑆
- 74 -
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
- 75 -
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
- 76 -
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
- 77 -
universidades, por nombrar algunas tenemos:
1. Jorge Washington entre av. 12 de Octubre y Tamayo. 2. Gral. Francisco Robles entre av. 12 de Octubre y Tamayo. 3. Vicente Ramón Roca entre av. 12 de Octubre y Tamayo. 4. Jerónimo Carrión entre av. 12 de Octubre y Tamayo. 5. Ignacio de Veintimilla entre av. 12 de Octubre y Tamayo. 6. Mena Caamaño entre av. 12 de Octubre e Isabel La Católica. 7. Tamayo entre av. Colón y Luis Cordero. 8. Camilo Destruge entre Francisco Salazar y av. Colón. 9. 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
- 78 -
CAPITULO 4
4 DESARROLLO DEL SOFTWARE DEL PROTOTIPO
4.1 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 Q-
Parking.
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
- 79 -
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 RUP RAD XP Estimación de requerimientos y alcances
2 1 1
Integra todos los ciclos de desarrollo tradicionales
2 0 1
Puntos de control específicos 2 1 2 Utiliza prototipos 2 1 1 Relación costo vs cambios en las fases de desarrollo.
2 0 0
Interacción con el usuario en todas 1 2 2
- 80 -
las fases de desarrollo Posibilidad de trabajar con herramientas CASE
2 2 2
Interacción con el usuario en la fase de desarrollo
0 1 2
Nivel de conocimiento previo de la metodología
2 0 0
Reutilización de componentes 2 2 1
Tabla 4.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
- 81 -
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.
- 82 -
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.
- 83 -
4.2.2 ARTEFACTOS
ARTEFACTOS NOMBRE /VERSIÓN FUNCIÓN
Análisis, Diseño y Documentación
Rational Rose
Enterprise v7.0 Full Modelado de Negocio y
modelado del sistema.
Power Designer 16 Diseño de la base de
Datos
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
Desarrollo
JDK 1.7 Herramientas de
desarrollo para la
creación de programas
en Java.
Eclipse Índigo Entorno de desarrollo
integrado para
aplicaciones web
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.
- 84 -
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
- 85 -
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
- 86 -
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
- 88 -
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
Cajero
Es la persona a cargo de mantener el
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
Teléfono Numero de dígitos que indican el número de
teléfono de la residencia
Cédula Numero de dígitos que indica su identificación
única de la persona
Tabla 4.3 Descripción Clase Cajero
Autor :Tesista
Fuente: Propia
Clase Descripción
Parqueadero Edificación en la que se estacionaran los
vehículos
Atributo Descripción
Nombre_Parqueadero Sustantivo para identificar el parqueadero
Dirección Lugar geográfico donde se encuentra ubicado el
parqueadero
Teléfono Numero de dígitos que indican el número de
teléfono de la residencia
- 89 -
Celular Numero de dígitos que indica su el número
telefónico móvil
Capacidad Información que permite conocer el número de
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 Numero de dígitos que indica su identificación
única de la persona
Ruc Numero de dígitos que indica su identificación
única de la persona
Dirección Lugar geográfico donde se encuentra su residencia
Teléfono Numero de dígitos que indican el número de
teléfono de la residencia
Celular 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
- 90 -
Clase Descripción
Plaza Ticket Es la acción de alquiler un lugar en el parqueadero
Atributo Descripción
Fecha Indica en el momento en el que se está realizando
la transacción de alquiler
Hora_llegada Indica la hora de ingreso de automotor al
parqueadero
Hora_salida Indica la hora de salida en el cual el automotor
abandona el parqueadero
Placa Numero de alfanumérico de identificación del
automotor
Tarifa 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 Descripción
Factura Documento que indica el costo del alquiler del
parqueadero ha sido cancelado
Atributo Descripción
Número Indica un número que identifica a la factura
Hora_llegada Indica la hora de ingreso de automotor al
parqueadero
Hora_salida Indica la hora de salida en el cual el automotor
abandona el parqueadero
Placa 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
Subtotal
Lugar en la factura donde se ubicara el costo parcial
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
- 91 -
valor agregado.
Total Lugar donde se ubicara el monto total a cancelar
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 Descripción
Cantidad Tiempo en horas de consumo del automotor
Hora-llegada Indica la hora de ingreso de automotor al
parqueadero
Hora-salida Indica la hora de salida en el cual el automotor
abandona el parqueadero
Placa Numero de alfanumérico de identificación del
automotor
Tarifa Valor que se le va a cobrar por el tipo de vehículo
Pecio Indica el precio de la tarifa que ha consumido el
automotor
Precio final 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
- 92 -
Clase Descripción
Tarifa Es el lugar donde se va fijar el valor que se va a
cobrar por el servicio.
Atributo Descripción
Tipo vehículo Es el tipo de automotor que uso el servicio
Pecio Indica el precio de la tarifa que ha consumido el
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.
- 93 -
WEB PARA LA ADMINISTRACIÓN DEL PARQUEADERO de
nominado Q-PARKING para así 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
- 94 -
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-
PRINCIPALES
DESCRIPCIÓN
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
- 95 -
• Actores Secundario .- Son los actores que son necesarios para que
inicie el funcionamiento de las actividades en el parqueadero
ACTORES
SECUNDADARIO DESCRIPCIÓN
Cliente /SmartCliente
Es la persona que está contratando el servicio
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
Figura 4.5 Diagrama de Actores
Autor : Tesista
Fuente: Propia
ADMINISTRADOR CAJERO CLIENTE
SISTEMA DE BUSQUEDA DE PARQUEADEROS QUITOPARK
- 96 -
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
- 97 -
Figura 4.6 Diagrama de casos de uso del módulo de Administración
Autor :Tesista
Fuente: Propia
Generar Reportes
Gestionar Tarifas
Gestionar Parqueadero
Gestionar Usuarios
Gestionar Plazas de Aparcamiento
Administrador
- 98 -
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
GESTIONAR TARIFAS
Descripción 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
Pago Prepago
Gestionar Cortesia
Cliente SmartPhone
Cliente Parqueadero
Cliente
Registrar Ingreso
Pagar Alquiler<<extend>>
<<extend>>
Reserva plaza
<<extend>>
<<extend>>Registrar Salida
Cajero
- 99 -
Flujo Básico
Paso
Acción
1 El actor invoca al caso de uso de
uso Gestionar Tarifa ingresando a
la sección tipo de cobro para
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
Flujo Alternativo
Paso
Acción
4 En el segundo paso, el actor puede
buscar los datos e referentes a las
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
- 100 -
Excepciones
2 El actor podrá ingresar nuevas
tarifas en caso de que estas no
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
- 101 -
Flujo Básico
Paso Acción
1 El cajero invoca al caso de uso
Gestionar Clientes ingresando a la
sección de Cliente para poder realizar
las acciones necesarias.
2 El cajero solicita e ingresa al sistema la
información personal al Cliente
3 El Cajero puede guardar los datos.
Flujo Alternativo Paso Acción
4 En el paso 2 ,el cajero solicita e ingresa
al sistema la información de los
vehículos del cliente
Post- condición El Actor puede salir de la sección de Clientes.
Excepciones Paso Acción
1 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
- 102 -
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
Flujo básico
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.
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
- 103 -
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 Acción
Tabla 4.15 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
- 104 -
Actores Administrador
Flujo Básico
Paso Acción
1 El actor invoca al caso de uso gestionar
Parqueadero ingresando a la sección
Configuración para poder realizar las
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.
Flujo Alternativo
Paso Acción
4 En el paso 2, el actor puede, modificar
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
Excepciones
Paso Acción
2 El actor no podrá eliminar parámetros
preestablecidos
Tabla 4.16 Descripción Caso de uso “Gestionar Parqueadero”.
Autor: Tesista
Fuente: Propia
- 105 -
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
- 106 -
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 QP CU -06
Nombre Gestionar Reservas
Descripción
Permite registrar la reserva de uno o varios
espacios en el parqueadero, tomado como
cortesías después de la consulta si hay espacio
desde un Smartphone.
Actores Cajero, Cliente
- 107 -
Precondición
Ingresar al sistema donde se mostrara en la
pantalla si se generó una consulta vía SMS desde
un Smartphone
Flujo Básico
Paso Acción
1 El actor invoca al caso de uso Reservar-
Cortesí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
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
Flujos Alternativos
Paso Acción
4 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.
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
- 108 -
Excepciones
Paso Acción
2 El actor no podrá ingresar una nueva
reserva en caso de que no exista la
disponibilidad de sitios en el
parqueadero
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
- 109 -
Flujo Básico
Paso Acción
1 El cajero invoca al caso de uso Generar
Factura ingresando a la sección
principal facturar 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 Acción
4 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 El actor puede salir de la sección de facturación.
Excepciones Paso Acción
1 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
- 110 -
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
- 111 -
• 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
Figura 4.8 Diagrama de Paquetes de Análisis
Autor: Tesista
Fuente: Propia
Gestión Clientes
Gestión Parqueadero
Gestión Facturación
- 112 -
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
Diagrama de Análisis de Clases
Figura 4.9 Diagrama de Análisis de Clases
Autor: Tesista
Fuente: Propia
- 114 -
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.
- 115 -
Diagrama de colaboración:
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
: Actor
: Pantalla
: Controlador : Base de Datos
2: Ingresar Datos
Proyecto:Sistema Prototipo Busqueda de ParqueaderoModelo: Diagrama de ColaboraciónActor: Carlos Toscano Moreno
1: Seleccionar Operación
7: Mostrar Resultados
3: Válidar Datos6: Mostrar Resultados de la Operacion
4: Guardar Datos
5: Obtener Resultados
- 116 -
información ingresada no cumpla con los parámetros
establecidos 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
- 117 -
DISEÑO DE CLASES
Figura 4.11 Diseño de Clases del Sistema Q-Parking
Autor: Tesista
Fuente: Propia
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
Figura 4.12 Diagrama de secuencia “Gestionar Tarifa”
Autor: Tesista
Fuente: Propia
Gestión Tarifas
7: Presentar Resultado
6: Mostrar Resultado Operación5: Obtener Resultados BDD
4: Guardar Datos
3: Validar Datos
2: Ingresar Datos
1: Seleccionar Operación
Administrador
UI:Tarifas Control Tarifas Tarifas
7: Presentar Resultado
6: Mostrar Resultado Operación5: Obtener Resultados BDD
4: Guardar Datos
3: Validar Datos
2: Ingresar Datos
1: Seleccionar Operación
- 119 -
DIAGRAMA DE SECUENCIA GESTIONAR CLIENTES
Figura 4.13 Diagrama de secuencia “Gestionar Clientes”
Autor: Tesista
Fuente: Propia
DIAGRAMA DE SECUENCIA GESTIONAR USUARIOS
Figura 4.14 Diagrama de secuencia “Gestionar Usuarios”
Autor: Tesista
Fuente: Propia
Gestionar Clientes
3: Validar Datos
7: Mostrar Resultados
6: Mostrar Resultado de la Operación
5: Obtener Resultado BDD
4: Guardar Datos
2: Seleccionar Operación
1: Seleccionar Operación
Cajero
UI Clientes Control Clientes Clientes
3: Validar Datos
7: Mostrar Resultados
6: Mostrar Resultado de la Operación
5: Obtener Resultado BDD
4: Guardar Datos
2: Seleccionar Operación
1: Seleccionar Operación
Gestionar Usuarios
7: Mostrar Resultados
6: mostrar Resultado de la Operación
5: Obtener Resultados BDD
4: Guardar Datos
3: Validar Datos
2: Ingresar Datos
1: Seleccionar Operación
Administrador
UI:Usuario Control Usuarios Usuarios
7: Mostrar Resultados
6: mostrar Resultado de la Operación
5: Obtener Resultados BDD
4: Guardar Datos
3: Validar Datos
2: Ingresar Datos
1: Seleccionar Operación
- 120 -
DIAGRAMA DE SECUENCIA GESTIONAR RESERVAS
Figura 4.15 Diagrama de secuencia “Gestionar Reserva”
Autor: Tesista
Fuente: Propia
DIAGRAMA DE SECUENCIA GESTIONAR PARQUEADERO
Figura 4.16 Diagrama de secuencia “Gestionar Parqueaderos”
Autor: Tesista
Fuente: Propia
DIAGRAMA DE SECUENCIA GESTIONAR INGRESO
Gestión Reserva
7: Presentar Resultados
6: Mostrar Resultado Operación
5: Obtener Resultados BDD
4: Guardar Datos
3: Validar Datos
2: Ingresar datos
1: Seleccionar Operacion
Cajero
UI:Reservas Control de Reservas Reservas
7: Presentar Resultados
6: Mostrar Resultado Operación
5: Obtener Resultados BDD
4: Guardar Datos
3: Validar Datos
2: Ingresar datos
1: Seleccionar Operacion
Gestionar Parqueaderos
7: Mostrar Resultados
6: Mostrar Resultados Operación
5: Obtener Resultados BDD
4: Guardar Datos3: Validar Datos
2: Ingresar Datos
1: Seleccionar Operación
Administrador
Ui:Parqueadero Control Parqueadero Parqueadero
7: Mostrar Resultados
6: Mostrar Resultados Operación
5: Obtener Resultados BDD
4: Guardar Datos3: Validar Datos
2: Ingresar Datos
1: Seleccionar Operación
- 121 -
Figura 4.17 Diagrama de secuencia “Gestionar Ingreso”
Autor: Tesista
Fuente: Propia
DIAGRAMA DE SECUENCIA GESTIONAR SALIDA
Figura 4.18 Diagrama de secuencia “Gestionar Salida”
Autor: Tesista
Fuente: Propia
Gestionar Ingreso
4: Guardar Datos
1: Seleccionar Operacion
2: Ingresar datos
3: Validar Datos
5: Obtener Resultados BDD
6: Mostrar Resultado Operación
7: Presentar Resultados
Cajero2
Control de IngresoUI:Ingreso Ingreso
4: Guardar Datos
1: Seleccionar Operacion
2: Ingresar datos
3: Validar Datos
5: Obtener Resultados BDD
6: Mostrar Resultado Operación
7: Presentar Resultados
Gestionar Salida
7: Mostrar Resultados
1: Seleccionar Operación
2: Seleccionar Operación
4: Guardar Datos
5: Obtener Resultado BDD
6: Mostrar Resultado de la Operación
3: Validar Datos
Cajero
UI:Salida Control Salida Salida
7: Mostrar Resultados
1: Seleccionar Operación
2: Seleccionar Operación
4: Guardar Datos
5: Obtener Resultado BDD
6: Mostrar Resultado de la Operación
3: Validar Datos
- 122 -
DIAGRAMA DE SECUENCIA GESTIONAR PAGAR ALQUILER
Figura 4.19 Diagrama de secuencia “Gestionar Pagos Alquiler”
Autor: Tesista
Fuente: Propia
DIAGRAMA DE SECUENCIA GESTIONAR BUSCAR GEO-REFERENCIA
Figura 4.20 Diagrama de secuencia “Gestionar Geo-Referencia”
Autor: Tesista
Fuente: Propia
DIAGRAMA DE SECUENCIA GESTIONAR BUSCAR PARQUEADERO
Gestionar Pago Alquiler
7: Presentar Resultados
6: Mostrar Resultado Operación
5: Obtener Resultados BDD
3: Validar Datos
2: Ingresar datos
1: Seleccionar Operacion
4: Guardar Datos
Cajero.
Control de PagoUI:Pago Pagos
7: Presentar Resultados
6: Mostrar Resultado Operación
5: Obtener Resultados BDD
3: Validar Datos
2: Ingresar datos
1: Seleccionar Operacion
4: Guardar Datos
Gestionar Localización
1: Seleccionar Operación
2: Ingresar Datos
3: Validar Operación4: Guardar Datos
5: Obtener Resultado BDD
6: Mostrar Resultado Operación
7: Presentar Resultado
Cliente.
UI Localizador Contol Localizador Localizador
1: Seleccionar Operación
2: Ingresar Datos
3: Validar Operación4: Guardar Datos
5: Obtener Resultado BDD
6: Mostrar Resultado Operación
7: Presentar Resultado
- 123 -
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
Gestionar Buscar Parqueadero
7: Presentar Resultado
6: Mostrar Resultado Operación
5: Obtener Resultado BDD
4: Guardar Datos3: Validar Operación
2: Ingresar Datos
1: Seleccionar Operación
Cliente
UI SmartPhone Contol Smartphone Smartphone
7: Presentar Resultado
6: Mostrar Resultado Operación
5: Obtener Resultado BDD
4: Guardar Datos3: Validar Operación
2: Ingresar Datos
1: Seleccionar Operación
- 124 -
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.
- 125 -
4.7.1 MODELO CONCEPTUAL
Figura 4.22 Modelo Conceptual de la Base de Batos Q-Parking
Autor: Tesista
Fuente: Propia
Conceptual Data ModelModel: PDMQPCPackage: Diagram: ConceptualDiagram_1Author: Carlos Toscano Date: 13/06/2013 Version: 4.0.1
Reference_19
Reference_2
Reference_17
Reference_4
Reference_7
Reference_18
Reference_9Reference_10
Reference_11
Reference_12
Reference_13
Reference_15
Reference_16
Reference_14
reserva
id_reservaplacalongitudlatitudfecha_reservaestado
<pi> SerialVariable characters (10)F%8F%8TimestampVariable characters (20)
<M>
pk_vehiculo <pi>
cliente
id_clientenombreruccedulatelefono_fijotelefono_movildireccionid_parqueadero
<pi> SerialVariable characters (100)Variable characters (15)Variable characters (15)Variable characters (15)Variable characters (15)Variable characters (50)Integer
<M>
pk_cliente <pi>
parqueadero
id_parqueaderonombrelatitudlongituddirecciontelefono_fijotelefono_movilplazas_disponiblesplazas_ocupadascapacidadestadologinclaveserie
<pi> SerialVariable characters (50)F%8F%8Variable characters (100)Variable characters (15)Variable characters (15)IntegerIntegerIntegerIntegerVariable characters (20)Variable characters (20)Variable characters (20)
<M>
pk_parqueadero <pi>
plaza_ticket
id_plaza_ticketplacafecha_ingresofecha_salidatipoestado
<pi> SerialVariable characters (15)TimestampTimestampVariable characters (20)Variable characters (20)
<M>
pk_plaza <pi>
factura
id_facturanumerofechasubtotalivatotalestadoid_parqueaderoserieid_usuario
<pi> SerialLong integerTimestampF%8F%8F%8Variable characters (20)IntegerVariable characters (20)Integer
<M>
pk_factura <pi>
detalle_factura
id_det_facturaplacanumero_horasprecio_horafecha_ingresofecha_salidaid_plaza
<pi> SerialVariable characters (10)F%8F%8TimestampTimestampInteger
<M>
pk_detalle_factura <pi>
tarifa
id_tarifatipo_vehiculoprecioid_parqueadero
<pi> SerialVariable characters (10)F%8Integer
<M>
Key_1 <pi>
AutorizacionSri
id_autorizacionsrinumero_autorizacionnumero_inicialnumero_finalautorizacion_fechacaducidad_fecha
<pi> SerialIntegerIntegerIntegerDateDate
<M>
pk_autorizacion <pi>
pagina
id_paginanombreurlicones_menuordenperfi l_creacionfecha_creacionperfi l_modificacionfecha_modificacion
<pi> SerialVariable characters (30)Variable characters (50)Variable characters (50)BooleanIntegerIntegerDateIntegerDate
<M>
pk_pagina <pi>
pagina_rol
id_pagrolperfi l_creacionfecha_creacionperfi l_modificacionfecha_modificacion
<pi> SerialIntegerDateIntegerDate
<M>
pk_pagina_rol <pi>
perfi l
id_perfi lperfi l_creacionfecha_creacionperfi l_modificacionfecha_modificacion
<pi> SerialIntegerDateIntegerDate
<M>
pk_perfi l <pi>
persona
id_personanombreapellidocedulafecha_nacimientomail_personalmail_institucionaldireccion
<pi> SerialVariable characters (30)Variable characters (40)Variable characters (10)DateVariable characters (50)Variable characters (50)Variable characters (50)
<M>
pk_persona <pi>
rol
id_rolnombreperfi l_creacionfecha_creacionperfi l_modificacionfecha_modificacionid_pagina
<pi> SerialVariable characters (30)IntegerDateIntegerDateInteger
<M>
pk_rol <pi>
usuario
id_usuariousuariocontraseniaperfi l_creacionfecha_creacionperfi l_modificacionfecha_modificacionfecha_caducidad_contraseniaid_parqueadero
<pi> IntegerVariable characters (20)Variable characters (32)IntegerDateIntegerDateDate<Undefined>
<M>
pk_usuario <pi>
infoParqueadero
id_infoParqueaderonombredireccionlatitudlongitud
<pi> SerialVariable characters (50)Variable characters (50)F%8F%8
<M>
id_infoparqueadero <pi>
tipo_parqueadero
id_tipo_parqueaderonombredescripcion
<pi> SerialVariable characters (50)Variable characters (60)
<M>
id_tipo_parqueadero <pi>
- 126 -
4.7.2 MODELO FÍSICO
Figura 4.23 Modelo Físico de la Base de Datos Q- Parking
Autor: Tesista
Fuente: Propia
FK_INFOPARQ_REFERENCE_TIPO_PAR
Physical Data Model
Model: PDMQP
Package:
Diagram: PhysicalDiagram_1
Author: Carlos Toscano Date: 13/06/2013
Version: 4.0.1
FK_PLAZA_TI_REFERENCE_PARQUEAD
FK_DETALLE__REFERENCE_FACTURA
FK_PLAZA_TI_REFERENCE_TARIFA
FK_AUTORIZA_REFERENCE_PARQUEAD FK_RESERVA_REFERENCE_PARQUEAD
FK_USUARIO_REFERENCE_PERSONA
FK_PERFIL_REFERENCE_USUARIO
FK_PERFIL_REFERENCE_ROL
FK_PAGINA_R_REFERENCE_ROL
FK_PAGINA_R_REFERENCE_PAGINA
FK_PAGINA_REFERENCE_PAGINA
FK_FACTURA_REFERENCE_CLIENTE
FK_FACTURA_REFERENCE_AUTORIZA
reserva
id_reservaid_parqueaderoplacalongitudlatitudfecha_reservaestado
SERIALINT4VARCHAR(10)FLOAT8FLOAT8TIMESTAMPVARCHAR(20)
<pk><fk>
cliente
id_clientenombreruccedulatelefono_fijotelefono_movildireccionid_parqueadero
SERIALVARCHAR(100)VARCHAR(15)VARCHAR(15)VARCHAR(15)VARCHAR(15)VARCHAR(50)INT4
<pk>
parqueadero
id_parqueaderonombrelatitudlongituddirecciontelefono_fijotelefono_movilplazas_disponiblesplazas_ocupadascapacidadestadologinclaveserie
SERIALVARCHAR(50)FLOAT8FLOAT8VARCHAR(100)VARCHAR(15)VARCHAR(15)INT4INT4INT4INT4VARCHAR(20)VARCHAR(20)VARCHAR(20)
<pk>
plaza_ticket
id_plaza_ticketid_parqueaderoid_tarifaplacafecha_ingresofecha_salidatipoestado
SERIALINT4INT4VARCHAR(15)TIMESTAMPTIMESTAMPVARCHAR(20)VARCHAR(20)
<pk><fk1><fk2>
factura
id_facturaid_clienteid_autorizacionsrinumerofechasubtotalivatotalestadoid_parqueaderoserieid_usuario
SERIALINT4INT4INT8TIMESTAMPFLOAT8FLOAT8FLOAT8VARCHAR(20)INT4VARCHAR(20)INT4
<pk><fk1><fk2>
detalle_factura
id_det_facturaid_facturaplacanumero_horasprecio_horafecha_ingresofecha_salidaid_plaza
SERIALINT4VARCHAR(10)FLOAT8FLOAT8TIMESTAMPTIMESTAMPINT4
<pk><fk>
tarifa
id_tarifatipo_vehiculoprecioid_parqueadero
SERIALVARCHAR(10)FLOAT8INT4
<pk>
AutorizacionSri
id_autorizacionsriid_parqueaderonumero_autorizacionnumero_inicialnumero_finalautorizacion_fechacaducidad_fecha
SERIALINT4INT4INT4INT4DATEDATE
<pk><fk>
pagina
id_paginapag_id_paginanombreurlicones_menuordenperfi l_creacionfecha_creacionperfi l_modificacionfecha_modificacion
SERIALINT4VARCHAR(30)VARCHAR(50)VARCHAR(50)BOOLINT4INT4DATEINT4DATE
<pk><fk>
pagina_rol
id_pagrolid_rolid_paginaperfi l_creacionfecha_creacionperfi l_modificacionfecha_modificacion
SERIALINT4INT4INT4DATEINT4DATE
<pk><fk1><fk2>
perfi l
id_perfi lid_usuarioid_rolperfi l_creacionfecha_creacionperfi l_modificacionfecha_modificacion
SERIALINT4INT4INT4DATEINT4DATE
<pk><fk1><fk2>
persona
id_personanombreapellidocedulafecha_nacimientomail_personalmail_institucionaldireccion
SERIALVARCHAR(30)VARCHAR(40)VARCHAR(10)DATEVARCHAR(50)VARCHAR(50)VARCHAR(50)
<pk>
rol
id_rolnombreperfi l_creacionfecha_creacionperfi l_modificacionfecha_modificacionid_pagina
SERIALVARCHAR(30)INT4DATEINT4DATEINT4
<pk>
usuario
id_usuarioid_personausuariocontraseniaperfi l_creacionfecha_creacionperfi l_modificacionfecha_modificacionfecha_caducidad_contraseniaid_parqueadero
INT4INT4VARCHAR(20)VARCHAR(32)INT4DATEINT4DATEDATE<Undefined>
<pk><fk>
infoParqueadero
id_infoParqueaderoid_tipo_parqueaderonombredireccionlatitudlongitud
SERIALINT4VARCHAR(50)VARCHAR(50)FLOAT8FLOAT8
<pk><fk>
tipo_parqueadero
id_tipo_parqueaderonombredescripcion
SERIALVARCHAR(50)VARCHAR(60)
<pk>
4.7.3 DESCRIPCIÓN DE OBJETOS DE LA BASE DE DATOS
Objeto de Información Parqueadero
Atributos Restricciones Actividad Descripción
Nombre
Latitud
Longitud
Dirección
Teléfono fijo
Teléfono móvil
Capacidad
Plazas
Disponibles
Plazas Ocupadas
El nombre, latitud,
longitud, dirección
y capacidad del
parqueadero son
únicos y
obligatorios
Actividad: Ingresar Nombre
Parqueadero
Origen: Ninguna
Agente: Administrador
Pre-condiciones: -Ninguna
Post-condiciones: Aumenta Parqueaderos
disponibles al sistema.
Actividad: Eliminar Parqueadero
Origen: Ingresar tipo insumo
Agente: Administrador
Pre-condiciones: Buscar Parqueadero Validar que no se encuentre en
documentos asociados.
Post-condiciones: -Disminuye Parqueadero
disponibles al sistema
En el objeto
Parqueadero
permite almacenar
la información del
parqueadero
registrado como
nombre, geo
referencia ,
dirección
,capacidad , etc.
Tabla 4.20 Glosario de “Gestionar Parqueadero”.
Autor: Tesista
Fuente: Propia
Objeto de Información Plaza_ticket
Atributos Restricciones Actividad Descripción
Placa
Fecha_ingreso
Fecha_salida
Tipo
Estado
Los atributos placa
,fecha_ingreso,
fecha_salida son
únicos y obligatorios
Actividad: Ingresar Placa
Origen: Ninguna
Agente: Cajero
Pre-condiciones: -Ninguna
Post-condiciones: Aumenta Placa disponibles al sistema.
Actividad: Eliminar placa
Origen: Ingresar placa
Agente: cajero
Pre-condiciones: Buscar placa Validar que no se encuentre en
documentos asociados.
Post-condiciones: -Disminuye placa disponibles al sistema
En el objeto
Plaza_ticket
permite
registrar la
placa del
automotor que
usa la plaza de
aparcamiento
Tabla 4.21 Glosario de “Gestionar Plaza Ticket”.
Autor: Tesista
- 128 -
Fuente propia
Objeto de Información Tarifa
Atributos Restricciones Actividad Descripción
Tipo _
vehículo
Precio
Los atributos tipo
vehículo, precio
únicos y
obligatorios
Actividad: Ingresar Tarifa ,precio
Origen: Ninguna
Agente: Administrador
Pre-condiciones: -Ninguna
Post-condiciones: Aumenta Tarifa, disponibles al
sistema.
Actividad: Eliminar Tarifa
Origen: Ingresar Tarifa
Agente: Administrador
Pre-condiciones: Buscar Tarifa Validar que no se encuentre en
documentos asociados.
Post-condiciones: -Disminuye tarifas disponibles al
sistema
En el objeto Tarifa
permite registrar
el tipo de vehículo
y asignarle un
precio
Tabla 4.22 Glosario de “Gestionar Tarifa”.
Autor: Tesista
Fuente propia
Objeto de Información Reserva
Atributos Restricciones Actividad Descripción
Placa
Longitud
Latitud
Fecha_reserva
Estado
Los datos de
placa, longitud,
latitud son únicos
y obligatorios.
Actividad: Guardar reservación
Origen: Ninguna Agente: Cajero, Administrador.
Pre-condiciones: Ninguna
Post-condiciones: Reservación guardada en el sistema
Actividad: Eliminar reservación
Origen: Guardar reservación Agente: Cajero, administrador
Pre-condiciones: Buscar y seleccionar reservación
Post-condiciones: Reservación eliminada del sistema
En el objeto
Reserva
permite
registrar la
reserva del
parqueadero
que se realiza
por medio del
Smartphone
pidiendo como
datos la placa y
la geo-ferencia
Tabla 4.23 Glosario de “Gestionar Reserva”.
Autor: Tesista
Fuente: Propia
- 129 -
Objeto de Información: AutorizacionSri
Atributos Restricciones Actividad Descripción
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
Actividad: Guardar autorización
Origen: Ninguna
Agente: Administrador
Pre-condiciones: Ninguna
Post-condiciones: Autorización guardada en el sistema.
Actividad: Eliminar autorización.
Origen: Guardar autorización
Agente: Administrador
Pre-condiciones: Buscar y seleccionar autorización.
No tener ninguna factura asociada a
la autorización.
Post-condiciones: Autorización eliminada del sistema.
En el objeto
AutorizacionSri
permite registrar
la autorización
desde número
inicial hasta el
número total de
autorizaciones
asignadas del
parqueadero
Tabla 4.24 Glosario de “Gestionar Autorización SRI”.
Autor: Tesista
Fuente propia
Objeto de Información: Factura
Atributos Restricciones Actividad Descripción
Numero
Fecha
Subtotal
Iva
Total
Estado
Serie
id_autorizacionsri
id_cliente
id_usuario
Los datos de serie, número, cliente, RUC y cédula son únicos y obligatorios. Fecha, subtotal12,
subtotal, subtotal, IVA,
total y estado son
obligatorios.
Una factura contendrá al menos un ítem en sus listas.
-Subtotal12, subtotal0,
subtotal, descuento, IVA
total son positivos.
El valor es positivo.
Actividad: Ingresar factura
Origen: Ingresar orden.
Agente: Cajero, administrador.
Pre-condiciones: Generar cuenta
Post-condiciones: Se ingresa factura al sistema con
estado activo.
Actividad: Anular factura
Origen: Ingresar factura.
Agente: Cajero, Administrador
Pre-condiciones: Buscar y seleccionar factura.
Post-condiciones: Se ingresa factura con estado
anulado
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
Tabla 4.25 Glosario de “Gestionar Factura”.
Autor: Tesista
Fuente propia
- 130 -
Objeto de Información: Detalle_Factura
Atributos Restricciones Actividad Descripción
Id_det_factura
Id_factura
Placa
Numero_horas
Precio_horas
Fecha_ingreso
Fecha_salida
id_plaza
Los datos de placa, número de horas, precio son únicos y obligatorios. Una factura contendrá al menos un detalle_factura como ítem en sus listas.
-Subtotal12, subtotal0,
subtotal, descuento, IVA
total son positivos.
El valor es positivo.
Actividad: Ingresar detalles factura
Origen: Ingresar placa.
Agente: Cajero, administrador.
Pre-condiciones: Generar iten
Post-condiciones: Se ingresa detalle a la factura del
sistema con estado activo.
Actividad: Anular detalle
Origen: Ingresar detalle_factura.
Agente: Cajero, Administrador
Pre-condiciones: Buscar y seleccionar detalle factura.
Post-condiciones: Se ingresa detalle_factura con
estado anulado
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
Tabla 4.26 Glosario de “Gestionar Detalle Factura”.
Autor: Tesista
Fuente: Propia
Objeto de Información: Cliente
Atributos Restricciones Actividad Descripción
Id_cliente
nombre
ruc
cedula
teléfono_fijo
teléfono_movil
dirección
id_parqueadero
El número de cédula o
RUC son únicos y
obligatorios
El nombre y la
dirección son
obligatorios.
Actividad: Ingresar cliente
Origen: Ninguna
Agente: Cajero, administrador.
Pre-condiciones: Ninguna
Post-condiciones: Se agrega un cliente al sistema.
Actividad: Eliminar cliente
Origen: Ingresar cliente
Agente: Administrador
Pre-condiciones: Buscar y seleccionar cliente.
Que no tenga facturas asociadas
Post-condiciones: Cliente eliminado del sistema
En el objeto
Cliente permite
almacenar los
datos de los
clientes que hacen
uso de las plazas
de aparcamiento.
Tabla 4.27 Glosario de “Gestionar Cliente”.
Autor: Tesista
Fuente: Propia
- 131 -
Objeto de Información: Tipo Parqueadero
Atributos Restricciones Actividad Descripción
Id_tipo_parq
ueadero
Nombre
Descripción
El nombre y
descripción son
únicos y
obligatorios
.
Actividad: Ingresar
tipo_parqueadero
Origen: Ninguna
Agente: Administrador.
Pre-condiciones: Ninguna
Post-condiciones: Se agrega un tipo de parqueadero
al sistema.
Actividad: Eliminar tipo_parqueadero
Origen: Ingresar tipo_parqueadero
Agente: Administrador
Pre-condiciones: Buscar y seleccionar tipo_parqueadero.
Que no tenga información parqueadero
asociadas
Post-condiciones: Tipo_parqueadero eliminado del sistema
En el objeto
Tipo_parqueadero
permite almacenar la
información de los
distintos tipos de
parqueaderos que
existen en el distrito
metropolitano de Quito.
Tabla 4.28 Glosario de “Gestionar Tipo Parqueadero”.
Autor: Tesista
Fuente: propia
Objeto de Información: Info_parqueadero
Atributos Restricciones Actividad Descripción
Id_infoPar
queadero
Id_tipo_par
queadero
nombre
dirección
latitud
longitud
El nombre
,dirección, latitud y
longitud son
únicos y
obligatorios
.
Actividad: Ingresar
Info_parqueadero
Origen: ingresar tipo_parqueadero
Agente: Administrador.
Pre-condiciones: Tipo_parqueadero
Post-condiciones: Se agrega un parqueadero al sistema.
Actividad: Eliminar info_parqueadero
Origen: Ingresar tipo_parqueadero
Agente: Administrador
Pre-condiciones: Buscar y seleccionar
info_parqueadero. Que no tenga información
tipo_parqueadero asociadas Post-condiciones: info_parqueadero eliminado del sistema
En el objeto
info_parqueadero
permite almacenar
la formación y
localización de las
direcciones y la geo
referencia de los
mismos.
Tabla 4.29 Glosario de “Gestionar Tipo Parqueadero”.
Autor: Tesista
Fuente: Propia
- 132 -
Objeto de Información: Usuario
Atributos Restricciones Actividad Descripción
Fecha de creación
Contraseña
Fecha de caducidad de
contraseña
Fecha de creación
Fecha de modificación
Perfil de creación
Perfil de modificación
Usuario
Apellido
Cédula
Dirección
Fecha de nacimiento
Mail institucional
Mail personal
Nombre
El usuario es
único y obligatorio
La contraseña,
nombre, apellido,
cédula, mail
(personal), mail
(institucional) son
ítem obligatorios.
Actividad: Ingresar Usuario
Origen: Ninguna
Agente: Súper
administrador, administrador.
Pre-condiciones: Ninguna
Post-condiciones: Se agrega un usuario al
sistema.
Actividad: Eliminar usuario
Origen: Ingresar usuario
Agente: Súper
administrador, Administrador
Pre-condiciones: Buscar y seleccionar usuario.
Post-condiciones: Cliente eliminado del sistema
En el objeto Usuario
permite almacenar la
información de
personas que van a
registrarse como parte
del parqueadero
Tabla 4.30 Glosario de “Gestionar Usuario”.
Autor: Tesista
Fuente propia
Objeto de Información: Perfil
Atributos Restricciones Actividad Descripción
Fecha de creación
Fecha de
modificación
Perfil de creación
Perfil de
modificación
Ninguna
Actividad: Gestionar Perfil
Origen: Ingresar Usuario
Agente: Súper administrador.
Pre-condiciones: Buscar usuario
Post-condiciones: Se gestiona uno o varios Roles para
el Perfil.
Actividad: Seleccionar perfil
Origen: Ingresar usuario
Agente: Administrador
Pre-condiciones: Seleccionar nuevos Roles.
Post-condiciones: Se actualizan los Roles del Perfil.
En el objeto Perfil
permite almacenar los
perfiles que se le
puede dar a un
usuario del sistema
con sus respectivas
acciones
Tabla 4.31 Glosario de “Gestionar Perfil”.
Autor: Tesista
Fuente: Propia
- 133 -
Objeto de Información: Rol
Atributos Restricciones Actividad Descripción
Fecha de creación
Fecha de modificación
Perfil de creación
Perfil de modificación
Id_pagina
Ninguna
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
Agente: Súper administrador.
Pre-condiciones: El Nombre y URL deben existir en
el Sistema.
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.
En el objeto Rol
permite
almacenar el rol
que manejar el
usuario según el
perfil que se le
asigne.
Tabla 4.32 Glosario de “Gestionar Rol”.
Autor: Tesista
Fuente: Propia
- 134 -
Objeto de Información: Pagina
Atributos Restricciones Actividad Descripción
Menú
Fecha de creación
Fecha de modificación
Nombre
Orden
Perfil de creación
Perfil de modificación
URL
El nombre y
URL son
obligatorios
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 Origen: Ingresar página
Agente: Súper administrador
Pre-condiciones: Buscar y seleccionar página.
-Confirmar edición.
-Post-condiciones:
-Se actualizan los cambios
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
En el objeto
Pagina permite
almacenar los Url
de las paginas
Tabla 4.33 Glosario de “Gestionar Pagina”.
Autor: Tesista
Fuente propia
- 135 -
Objeto de Información: Permisos
Atributos Restricciones Actividad Descripción
• Fecha de
creación
• Fecha de
modificación
• Perfil de creación
• Perfil de
modificación
-Ninguna
Actividad: Gestionar Permisos
Origen: Ingresar Usuario
Agente: Master
Pre-condiciones: -Seleccionar un Rol
Post-condiciones: -Se genera permisos para el rol
Actividad: Seleccionar
Permisos
Origen: Ninguna
Agente: master
Pre-condiciones: -Seleccionar un Rol
-Seleccionar permisos.
-Confirmar edición. Post-condiciones: -Se editan permisos para el rol.
En el objeto Permisos
permite almacenar los
permisos que se le
asigna al rol de un
usuario
Tabla 4.34 Glosario de “Gestionar Permiso”.
Autor: Tesista
Fuente: Propia
Objeto de Información: Persona
Atributos Restricciones Actividad Descripción
nombre
apellido
cedula
fecha de
nacimiento
mail_personal
mail_institucional
dirección
-Nombre, apellido,
Cedula son
campos
obligatorios
Actividad: Gestionar Persona
Origen: ninguno
Agente: administrador
Pre-condiciones: -Ninguna
Post-condiciones: -Se agrega los datos persona al
sistema
Actividad: Seleccionar Persona
Origen: Ingresar Persona
Agente: administrador
Pre-condiciones: -selecciona un usuario
-Asigna un rol
Post-condiciones: -Se editan permisos usuario
En el objeto Persona
permite almacenar los
datos delos trabajadores
del parqueadero para
asignarlos como usuarios
y roles
Tabla 4.35 Glosario de “Gestionar Persona”.
Autor: Tesista
Fuente: Propia
- 136 -
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, farmacias, centros
- 137 -
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.
- 138 -
6 GLOSARIO
A
API: Application Programming Interface (en español interfaz de
programación de aplicaciones), es el conjunto 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.
- 139 -
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
- 140 -
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%B3viles-
qu%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
- 141 -
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-arquitectura-
blackberry-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-Applications-
Part-2
24. WIKIPEDIA.ORG,”rup”,(2012) Descargado el 24 de julio de 2012 desde ,
http://es.wikipedia.org/wiki/Proceso_Unificado_de_Rational
- 142 -
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/
- 145 -
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
- 146 -
- 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 , se desplegará la pantalla
- 147 -
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.
- 148 -
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).
- 149 -
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.
- 150 -
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.
- 151 -
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.
- 152 -
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 Menú principal Usuario Cajero
- 153 -
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.
- 154 -
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 Gestión Reservas
- 155 -
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.
- 156 -
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.
- 158 -
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”.
- 159 -
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:
- 160 -
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.
- 161 -
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.
- 162 -
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
- 163 -
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
- 164 -
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
- 165 -
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.
- 167 -
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.
- 168 -
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):
- 169 -
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.
- 170 -
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.
- 171 -
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.
- 172 -
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.
- 173 -
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.
- 174 -
Paquete WEB-INF (Librerías)
Figura E.27 Librerías principales Fuente propia.
Figura E.28 Librerías implementadas
Fuente propia.
- 175 -
ESTRUCTURA BASE DEL SISTEMA MÓVIL ANDROID q-parking
Paquete src (Código fuente)
Figura E.29 Paquetes fuente Fuente propia.
- 176 -
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.
- 177 -
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.
- 178 -
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.
Recommended