Biblioteca UCE - Universidad Central del Ecuador

Anuncio
UNIVERSIDAD CENTRAL DEL ECUADOR
FACULTAD DE INGENIERÍA, CIENCIAS FÍSICAS Y MATEMÁTICA
CARRERA DE INGENIERÍA INFORMÁTICA
SISTEMA WEB DE UBICACIÓN GEOGRÁFICA Y TRAZO DE RUTAS
DE TRANSPORTE PARA LLEGAR A LOS COLEGIOS DE QUITO
TRABAJO DE GRADUACION, PREVIO LA OBTENCIÓN DEL TÍTULO DE
INGENIERO INFORMÁTICO
AUTOR: Granizo Pilataxi Sergio Leonardo
TUTOR: M.Sc. Mauro Leonardo Rosas Lara
QUITO, 12 DE MAYO
2016
DEDICATORIA
A mi madre que amo con todo mi corazón,
a mi novia que quiero tanto
y a mis futuros hijos.
ii
AGRADECIMIENTO
El autor expresa su agradecimiento a:
Ing. Benjamín Sandoval Bonilla, gerente general de la empresa DCA Sistemas que me
permitió laborar en su organización, para demostrar mi capacidad y formar parte de
manera fundamental en mis estudios universitarios y por ende en la obtención del
título de ingeniero informático
A todas las personas, amigos y familiares que hicieron posible cumplir este gran
sueño en la vida.
iii
AUTORIZACION DE AUTORIA INTELECTUAL
Yo SERGIO LEONARDO GRANIZO PILATAXI en calidad de autor del Proyecto
integrador titulado: SISTEMA WEB DE UBICACIÓN GEOGRAFICA Y TRAZO DE
RUTAS DE TRANSPORTE PARA LLEGAR A LOS COLEGIOS DE QUITO, autorizo
a la Universidad Central del Ecuador hacer uso de todos los contenidos que me
pertenecen o 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.
Asimismo, autorizo a la Universidad Central del Ecuador para que realice la
digitalización y publicación de este trabajo en el repositorio virtual, de conformidad a
lo dispuesto en el Art. 144 de la Ley Orgánica de Educación Superior.
Quito, 12 de mayo de 2016
Sergio Leonardo Granizo Pilataxi
CI: 1719855171
Telf.: 0997009187
Email: [email protected]
iv
v
CALIFICACION DEL TRIBUNAL
vi
RESULTADO DEL TRABAJO DE GRADUACION
vii
CONTENIDO
pág.
DEDICATORIA
ii
AGRADECIMIENTO
iii
AUTORIZACION DE LA AUTORIA INTELECTUAL
iv
APROBACION DEL TUTOR DE TRABAJO DE TITULACION
v
CALIFICACION DEL TRIBUNAL
vi
RESULTADO DEL PROYECTO INTEGRADOR
vii
CONTENIDO
viii
LISTA DE TABLAS
x
LISTA DE FIGURAS
xi
RESUMEN INFORMATIVO
xv
RESUMEN INFORMATIVO (INGLES)
xvi
1. INTRODUCCION
1.1 Introducción .......................................................................................................... 1
1.2 Definición del Problema ....................................................................................... 1
1.3 Antecedentes ........................................................................................................ 1
1.4 Formulación del Problema ................................................................................... 2
1.2.4 Justificación ....................................................................................................... 3
1.2.5 Módulos de la Aplicación .................................................................................. 5
1.2.5.1 Módulo I: Módulo de Conexión ...................................................................... 6
1.2.5.2 Modulo II: Módulo de Transacciones............................................................. 7
1.2.5.3 Módulo III: Módulo de Búsqueda y Geolocalización .................................... 8
1.2.5.4 Módulo IV: Módulo de Administración .......................................................... 9
1.2.5.5 Módulo V: Módulo de Seguridad.................................................................. 10
viii
2. MARCO REFERENCIAL
2.1 Estado del Arte................................................................................................... 12
2.1.2 Evaluación de alternativas .............................................................................. 15
2.1.3 Implicaciones ................................................................................................... 16
3. METODOLOGIA DE DESARROLLO
3.1 Valores de la Metodología XP ........................................................................... 28
3.2 Fases de la Metodología..................................................................................... 29
3.2.1 Fase 1: Estudio de Factibilidad ....................................................................... 29
3.2.2 Fase 2: Análisis y Diseño Global .................................................................... 36
3.2.3 Fase 3: Desarrollo ............................................................................................ 37
3.2.4 Fase 4: Puesta en Producción ........................................................................ 37
3.3. Plataforma Tecnológica.................................................................................... 38
3.3.1 Arquitectura de la Aplicación Web ................................................................ 38
4. MARCO ADMINISTRATIVO
4.1 Recursos ............................................................................................................. 51
4.1.1 Técnicos – Tecnológicos................................................................................ 51
4.1.2 Humano ........................................................................................................... 52
5. CONCLUSIONES
6. RECOMENDACIONES
7. CITAS BIBLIOGRAFICAS
ANEXOS
ix
LISTA DE TABLAS
pág.
1. Campos y Descripción de los datos obtenidos
3
2. Colegios Mejor Puntuados de Quito según SENESCYT
12
3. Cuadro comparativo de metodologías
15
4. Valores de la metodología XP
18
5. Cuadro Comparativo de lenguajes de programación
20
6. Cuadro comparativo de IDE’s de Desarrollo
22
7. Cuadro Comparativo de Servidores de Aplicaciones
23
8. Cuadro Comparativo de Frameworks
24
9. Cuadro Comparativo de Sistemas Gestores de Bases de Datos
25
10. Lista de Procedimientos para manejo y uso de la aplicación web
29
11. Clase Conexión
36
12. Clase Colegio
37
13. Clase ColegioController
38
14. colegio.js
40
15. mapa.js
41
16. ubicación.js
41
17. Marcadores de la aplicación
47
18. Resumen Herramientas de desarrollo
49
x
LISTA DE FIGURAS
pág.
1. Módulos de la aplicación
5
2. Módulo de Conexión
6
3. Módulo de Transacciones
6
4. Ejemplo de un SIG
7
5. Usuario Administrador
8
6. Análisis de Seguridad
9
7. Colegio Sebastián de Benalcazar, mejor renqueado según SENESCYT
13
8. Problemática Actual
14
9. Casos de Uso
28
10. Diagrama Lógico de los Procesos
30
11. Diagrama del patrón de diseño MVC
32
12. Arquitectura de la Aplicación Web
33
13. Estructura de la aplicación
34
14. Muestra de la tabla de colegios en Postgresql
35
15. Diagrama de las páginas de la aplicación
39
16. Esquema Cliente – Servidor
42
17. Servicio web sin estado
43
18. Servicios uniformes
44
19. Arquitectura en Capas
44
20. Pantalla inicial del test del servicio web
45
21. Lista de Colegios en formato XML
45
xi
22. Búsqueda de colegios por Id
47
23. Plataforma Java
48
24. Antoine Picon
56
25. Pantalla de Inicio
57
26. Pantalla de Inicio con credenciales
58
27. Marcadores
59
28. Datos de un colegio
60
29. Combo
61
30. Búsqueda de colegios
62
31. Trazo de Rutas
63
32. Información de un colegio
64
xii
RESUMEN
“SISTEMA WEB DE UBICACIÓN GEOGRAFICA Y TRAZO DE RUTAS DE
TRANSPORTE PARA LLEGAR A LOS COLEGIOS DE QUITO, MODALIDAD
PROYECTO INTEGRADOR”
Autor: Sergio Leonardo Granizo Pilataxi
Tutor: Mauro Leonardo Rosas Lara
La tecnología y la ciencia son los pilares de una cadena evolutiva en la historia del ser
humano, contribuyendo al desarrollo global, abarcando todas las áreas que involucran
al mismo, principalmente conllevando al crecimiento económico y social.
Un avance de la ciencia y la tecnología lo forman las Tecnologías de la Información y
las Comunicaciones (TIC) y con ello el uso del INTERNET, instrumento que ha
marcado una huella imborrable en el desarrollo de la sociedad de hoy.
De esta manera se hace necesaria la creación de una aplicación informática que
muestre de manera gráfica, la localización de cada colegio y además despliegue la
información necesaria y pertinente para obtener un mejor conocimiento de las
unidades educativas que se encuentran ubicadas en Quito y regidas por el Ministerio
de Educación, los beneficios que puede lograr con esta aplicación, entre ellos, mejor
conocimiento en cuanto a localización, distancia y tiempo de llegada al colegio que
necesite.
PALABRAS CLAVES: /APLICACIÓN WEB / LOCALIZACIÓN DE MAPAS/
PLATAFORMA DE SERVICIO (PAAS)/ BASE DE DATOS (SGBD)/ PATRON DE
DISEÑO MVC/ ARQUITECTURA CLIENTE SERVIDOR/
xiii
ABSTRACT
TITLE: “WEB SYSTEM FOR GEOGRAPHICAL LOCATION AND ROUTES STROKE
TO ARRIVE AT COLLEGES OF QUITO, INTEGRATOR PROJECT MODE”
Author: Sergio Leonardo Granizo Pilataxi
Tutor: Mauro Leonardo Rosas Lara
Technology and science are the pillars of an evolutionary chain in human history,
contributing to global development, covering all areas involving the same, mainly
leading to economic and social growth. An advance of science and technology is
formed by the Information Technology and Communications (TIC) and thus the use of
the Internet, an instrument that has marked an indelible mark on the development of
today's society. Thus the creation of a computer application that shows graphically the
location of each school and also display the information necessary and relevant for a
better understanding of educational units are located in Quito and governed is
necessary, by the Ministry of Education, the benefits that can be achieved with this
application, including better knowledge in terms of location, distance and time of arrival
at school need.
KEYWORDS: / WEB APPLICATION/ LOCATION MAP / PLATFORM AS A SERVICE
(PAAS) / DATABASE (DBMS) / DESIGN PATTERN MVC / CLIENT SERVER
ARCHITECTURE /
I CERTIFY that the above and foregoing is a true and correct
translation of the original document in Spanish.
___________________________
VERDEZOTO COBOS BEATRIZ DEL CARMEN
Certified Translator
ID: 1708508591
xiv
1. INTRODUCCION
1.1 Introducción
La educación secundaria en la actualidad demanda calidad y es vital que nuestra
sociedad sepa cuáles son las instituciones que pueden aportar un buen servicio a los
estudiantes, ya sea por su ubicación, jornada, especialidades que ofrece, entre otras
cosas, para ello es necesario tener una aplicación gráfica y en tiempo real con el fin
de llegar a los colegios y con una recopilación optima de los datos con el fin de elegir
la mejor opción para nuestros hijos.
1.2 Definición del Problema
Actualmente es muy difícil detectar la ubicación geográfica de un gran número de
colegios de Quito de forma digital, ya que muchos no constan en los registros de
Google Maps, razón por la cual se dificulta mucho conocer información relevante
como:

Dirección del colegio

Número de estudiantes

Numero de especialidades

Número de alumnos que se encuentran cursando en Educación General
Básica y en bachillerato

Jornada de estudios (Matutina o vespertina)

Distancia en km.

Tiempo aproximado para llegar al colegio
1.3 Antecedentes
Desde el pasado ha sido un verdadero dilema conocer las instituciones educativas que
ofertan la educación secundaria de nuestros hijos, ya sea por desconocimiento o por
desinterés; esto crea un estancamiento, ocasionado por la falta de explotación del
1
mercado académico y la no optimización del tiempo, lo que hace que perdamos
recursos valioso como tiempo y dinero, aislándonos así de todas las oportunidades
que se encuentran presentes, estos problemas se solucionaran con el desarrollo de
una aplicación web que cubrirá estas falencias
1.4 Formulación del Problema
Debido a la particular forma geográfica de la ciudad de Quito y a la escasez de
información web disponible sobre la mayoría de los colegios de Quito es muy difícil
ubicarlos en tiempo real, y más complicado aún obtener datos relevantes respecto a la
proyección académica de la institución, así como trazar una ruta óptima de llegada a la
institución académica destino.
Considerando la problemática antes mencionada, se pretende aplacar y disminuir este
desconocimiento de los colegios de Quito, que se encuentran legalmente registrados
en los bancos de Datos del Ministerio de Educación del Ecuador, de tal forma que
podamos acceder a la mayor cantidad de colegios viables en la forma más eficiente
posible, mediante el proyecto SISTEMA WEB DE UBICACIÓN GEOGRAFICA Y
TRAZO DE RUTAS DE TRANSPORTE PARA LLEGAR A LOS COLEGIOS DE QUITO
1.2.3 Objetivos
1.2.3.1 Objetivo General
Crear un sistema web de ubicación geográfica y trazo de rutas de transporte
para llegar a los colegios de Quito
1.2.3.2 Objetivos Específicos
• Colocar a los colegios de Quito en una App usando coordenadas de longitud y
latitud
• Relacionar por medio de posición, las distancias y proximidades existentes
entre el usuario y las unidades educativas
2
• Trazar una ruta por medio de marcadores, usando la posición del usuario y el
colegio destino
1.2.4 Justificación
Dado que actualmente es muy difícil detectar la ubicación geográfica de un gran
número de colegios de Quito de forma digital, pues muchos no constan en los registros
de Google Maps, razón por la cual se dificulta mucho conocer información relevante
como:
•
Nombre de la institución
•
Dirección de la institución
•
Rector o autoridad máxima de la institución
•
Teléfonos de la institución
•
Número de estudiantes
•
Numero de especialidades
•
Página Web de la institución educativa (siempre y cuando disponga de un
sitio web)
•
Jornada de estudios de los alumnos (matutino o vespertino)
•
Entre otras cosas.
El proyecto integrador SISTEMA WEB DE UBICACIÓN GEOGRAFICA Y TRAZO DE
RUTAS DE TRANSPORTE PARA LLEGAR A LOS COLEGIOS DE QUITO, avalado
por la prestigiosa Universidad Central del Ecuador, propone obtener esta información
de forma rápida, clara y oportuna; para ofrecer una solución tecnológica y muy fácil de
utilizar y así apoyar a la comunidad de Quito con una aplicación informática que
provea toda la información antes mencionada, además, dicha aplicación funcionará en
tiempo real.
Esta aplicación informática, tendrá una arquitectura cliente – servidor sobre un patrón
de diseño Modelo Vista Controlador, eso significa que cualquier usuario que se
3
conecte a internet por medio de algún dispositivo, podrá acceder a la aplicación, sin
preocuparse por los problemas de visualización, pues la app, es responsiva
Para comprender de forma más clara, veamos la siguiente tabla a manera de ejemplo
Tabla 1. Campos y Descripción de los datos obtenidos
Campo
Descripción
Es el nombre del colegio o Instituto, en caso de ser Instituto
Colegio
se precederá el nombre del Instituto con la palabra
“Instituto” Ejm: AMAZONAS
Es el nombre completo del rector, rectora o autoridad
Rector
máxima de la institución, no se toma en cuenta títulos como:
Ing. Dr. Mg., etc. Ejm: Molina Villacis Dino Isaias
Es la dirección donde se encuentra ubicada la institución
Dirección
educativa Ejm: Lauro Guerrero S/N e Iturralde
Es la jornada de estudios que ofrece la institución a sus
Jornada
estudiantes Ejm: Matutina y Vespertina
Es la modalidad de estudios que ofrece la institución a sus
Modalidad
estudiantes Ejm: Presencial
Número de estudiantes que se encuentran en Educación
General Básica o EGB Ejm: EGB: 1280
Número de Estudiantes Número de estudiantes que se encuentran en los cursos
superiores con alguna especialidad o Diversificado Ejm:
Diversificado: 1251
Es el nombre de la especialidad o especialidades que
ofrece la institución a sus estudiantes Ejm: Unificado, Área
Especialidades
de Comercio y Administración
Es el número o números de los teléfonos convencionales
Teléfonos
(añadido la extensión 02) que posee la institución Ejm:
022611611 022612736 022612608
Es el link del sitio web oficial de la institución, en caso de no
Informes
disponer, se colocará la etiqueta “No dispone de Sitio Web”
Ejm: www.colegioamazonas.edu.ec
Hay que indicar que el formato de la información lo provee el Ministerio de Educación
del Ecuador, razón por la cual, nuestra aplicación no puede alterar ningún campo
antes mencionado, solo se puede acceder a ellos a través de un servicio web que
funciona en tiempo real
1.2.5 Alcance
El alcance del proyecto, es llegar a tomar los datos antes mencionado de cada colegio
y trazar una ruta, siempre y cuando físicamente sea posible (Por Ejemplo: No se
4
podría trazar una ruta, si el usuario está en otro continente), entre el usuario y el
destino, a la vez que se calcula la distancia y el tiempo promedio entre ambos puntos,
usando cualquier dispositivo que tenga conexión a internet (PC, laptop, Smartphone,
etc.) y soporte un navegador web
1.2.5 Módulos de la Aplicación
El SISTEMA WEB DE UBICACIÓN GEOGRAFICA Y TRAZO DE RUTAS DE
TRANSPORTE PARA LLEGAR A LOS COLEGIOS DE QUITO está compuesto de 5
módulos:

Módulo de Conexión

Módulo de Transacciones

Módulo de Búsqueda y Geolocalización

Módulo de Administración

Módulo de Seguridad
Los cuales se detallan a continuación en el siguiente diagrama:
5
Módulo de
Conexión
Módulo de
Seguridad
Módulo de
Transacciones
SISTEMA WEB DE
UBICACIÓN
GEOGRAFICA Y
TRAZO DE RUTAS DE
TRANSPORTE PARA
LLEGAR A LOS
COLEGIOS DE QUITO
Módulo de
Búsqueda y
Geolocalización
Módulo de
Administración
Figura 1. Módulos de la aplicación
1.2.5.1 Módulo I: Módulo de Conexión
El SISTEMA WEB DE UBICACIÓN GEOGRAFICA Y TRAZO DE RUTAS DE
TRANSPORTE PARA LLEGAR A LOS COLEGIOS DE QUITO, utiliza doble conexión.
Conexión a través de JDBC
Se toma en cuenta elementos como:
JDBC: Conector que sirve para vincular la base de datos con Netbeans y el servidor
de aplicaciones
6
Clase Conexión: Para extraer los datos que obtenemos de Postgresql, usando
sentencias SQL.
Ficheros XML de Persistencia: Para manejar de forma adecuada las conexiones de la
aplicación
Conexión a través de Servicio Web
Ficheros de JavaScript: Para crear funciones especiales que permitan extraer los
datos de un servicio web REST, para ello se utiliza el path o url que genera el servicio
web y por medio del método GET se extrae la información requerida
Ficheros JQuery: Para manejar de forma adecuada las conexiones de la aplicación
Figura 2. Módulo de Conexión
1.2.5.2 Modulo II: Módulo de Transacciones
Una transacción es un conjunto de órdenes que se ejecutan formando una unidad de
trabajo, este módulo se encarga del manejo eficiente de las transacciones, algunas
características son:
Finalizar las transacciones exitosamente con un commit
Una transacción que no termita exitosamente se cancela (rollback).
7
En JDBC por omisión cada sentencia sql, se compromete tan pronto se ejecuta, es
decir una conexión funciona por defecto en modo auto-commit
Además del JDBC, se hará uso del framework Java Server faces (Primefaces) para
gestionar las transacciones de una manera más óptima y sistematizada.
Figura 3. Módulo de transacciones
1.2.5.3 Módulo III: Módulo de Búsqueda y Geolocalización
En este módulo se describe el funcionamiento del módulo de búsqueda por medio de
la utilización de un API de Google Maps que actualmente es muy utilizada en los
Sistemas de Información Geográfica (SIG), la cual por medio de coordenadas de
latitud y longitud(x, y), nos representará gráficamente la posición del colegio
API de Google Maps: Es un conjunto de API que le permiten superponer datos propios
sobre un mapa de Google Maps personalizado para crear aplicaciones web y móviles
con la potente plataforma de mapas de Google, incluso con imágenes satelitales,
Street View, perfiles de elevación, indicaciones sobre cómo llegar, mapas con estilos,
demografía, análisis y una amplia base de datos de ubicaciones.
Sistema de Información Geográfica (SIG): Es un conjunto de herramientas que integra
y relaciona diversos componentes (usuarios, hardware, software, procesos) que
8
permiten la organización, almacenamiento, manipulación, análisis y modelización de
grandes cantidades de datos procedentes del mundo real que están vinculados a una
referencia espacial, facilitando la incorporación de aspectos sociales-culturales,
económicos y ambientales que conducen a la toma de decisiones de una manera más
eficaz.
Figura 4. Ejemplo de un SIG (http://resources.arcgis.com)
1.2.5.4 Módulo IV: Módulo de Administración
En este módulo se pueden crear, modificar y eliminar usuarios para el manejo de la
aplicación así como la configuración de sus respectivos permisos.
Además de eso el módulo permite a los administradores gestionar el servicio de la
aplicación, pudiendo incluso aumentar su escalabilidad.
9
Figura 5. Usuario Administrador
1.2.5.5 Módulo V: Módulo de Seguridad
En este módulo se define las políticas de seguridad de la aplicación web, para prevenir
el acceso no autorizado ya sea de manera interna o externa, para ello se restringe el
acceso a los usuarios a través de un nombre de usuario y contraseña que deberá ser
ingresado obligatoriamente, por otro lado el usuario solo posee permisos de lectura, es
decir, no es posible alterar la base de datos, desde las páginas de navegación que se
muestra al cliente.
Para complementar se realizó el siguiente análisis en donde se involucran los tres
agentes importantes de la organización como son la parte administrativa, organización,
y la parte tecnológica
10
Figura 6. Análisis de Seguridad
11
2. MARCO REFERENCIAL
2.1 Estado del Arte
A nivel nacional el desconocimiento sobre las unidades educativas que están a
nuestro alrededor y que pueden servir para la educación de nuestros hijos es muy alto,
es decir, la población desconoce muchos aspectos fundamentales, incluso la ubicación
del colegio en el que quiere o debe poner a su hijo, algunos aspectos que influyen
para este desconocimiento son:

Tomar la decisión en poco tiempo

No pedir consejo a nadie o consultar sólo con determinadas personas

Valorar en exceso un solo aspecto de la Educación

De entre el personal del colegio, interesarse sólo por los profesores

Despreocuparse de las relaciones sociales y de la tecnología

Olvidarse de la orientación psicopedagógica y la atención personalizada

Fijarse en las dimensiones y el número de instalaciones, pero no en su cuidado
Entre otros
La regla de oro: “Piensa en las condiciones de tu hijo antes que en las condiciones del
colegio”
Y aunque el desconocimiento de la tecnología es menor, hay muchas personas que si
bien algo conocen sobre los colegios, se desconocen puntos bien importantes como:

Conocer cuál es la localización exacta del colegio

Saber la distancia y el tiempo aproximado que le va a tomar al estudiante en
llegar al colegio, desde la casa

Saber las especialidades que dicha institución ofrece

Conocer el nombre del rector, rectora o autoridad máxima del colegio

Conocer los números telefónicos o el sitio web del colegio, para mayor
información que se requiera.
12
Ranking
Colegio
Promedio
1
Sebastián de Benalcazar
812,9
2
Cardenal Spellman
812,3
3
Técnico Experimental de Aviación Civil
796,5
4
Unidad Educativa Municipal Experimental Eugenio Espejo
793,4
5
Marista
791,1
6
Técnico Salesiano Don Bosco
770
7
San Luis Gonzaga
768,9
8
Unidad Naval César Endara
768,4
9
Cinco de junio
764,2
10
San Gabriel
764,05
11
Juan Pío Montufar
763,04
12
Giovanni Antonio Farina
762,4
13
Colegio Militar Eloy Alfaro
757,3
14
Quitumbe
756,9
15
Sagrado Corazón de Jesús
751
16
Instituto Nacional Mejía
748,7
17
De América M. A. Carrillo de Mata M.
748,2
18
La Salle
743,7
19
Ambato
742,2
20
Santa María Eufrasia
741,6
Tabla 2. Colegios Mejor Puntuados de Quito según SENESCYT (Tomado de EL
COMERCIO)
13
Figura 7. Colegio Sebastián de Benalcazar, mejor renqueado según SENESCYT
Ante esto la Universidad Central del Ecuador se siente en la obligación de mitigar este
desconocimiento y se ha planteado un propósito muy ambicioso que consiste en crear
una aplicación Informática, específicamente para ubicar colegios y obtener su
información, así como el trazado de rutas para llegar en un tiempo aproximado.
El inconveniente actual que tiene la sociedad quiteña, es que al no existir una
aplicación que nos despliegue la información apropiada de las instituciones educativas
de Quito, hay muchas que no son conocidas, dado que tampoco existe un sistema que
trace la ruta de manera apropiada, se hace difícil llegar en un tiempo optimo al lugar
que se necesita acceder.
Actualmente se cuenta con el servicio de Google Maps que permite ubicar un colegio y
trazar la ruta, pero su uso es un tanto engorroso pues no está atomizado hacia la
necesidad del cliente, por otro lado el usuario debe señalar o escribir el origen, para
que trace la ruta, si el usuario tiene desconocimiento de las calles, de la ciudad y del
gran número de avenidas, se le va resultar sumamente complicado, con el proyecto
SISTEMA WEB DE UBICACIÓN GEOGRAFICA Y TRAZO DE RUTAS DE
TRANSPORTE PARA LLEGAR A LOS COLEGIOS DE QUITO se pretende minimizar
todos estos inconvenientes para que la aplicación puede ser usada por cualquier tipo
de usuario
14
Figura 8. Problemática Actual
Todos estos inconvenientes han impulsado para crear el SISTEMA WEB DE
UBICACIÓN GEOGRAFICA Y TRAZO DE RUTAS DE TRANSPORTE PARA LLEGAR
A LOS COLEGIOS DE QUITO
2.1.2 Evaluación de alternativas
Existen algunas alternativas que se podrían tomar en cuenta:
-
La alternativa más sencilla es no hacer nada, obviamente el proyecto, no
tendría razón, no se va obtener la información que requiere, el trabajo, es repetitivo y
rutinario y solamente lo podrán hacer un grupo reducido de usuarios
-
Colocar varias personas para realizar el trabajo de censo en cada colegio, si
tomamos en cuenta, que solo a nivel privado existen más de 800 instituciones, se
tendría que contratar un número importante de colaboradores, y habría además que
re-contratarlos cada año para ir actualizando nuestra base de conocimiento, sin tomar
en cuenta el lado impredecible de las personas, la dependencia hacia los empleados,
la parte administrativa también sería muy tediosa, ya que habría que visitar los
colegios previamente para obtener los permisos de ingreso por parte de los rectores y
demás autoridades, Luego esta información se debería publicar en las redes sociales
para llegar masivamente a la mayoría de personas
-
Otra alternativa, sería que la Universidad lance una campaña muy agresiva de
marketing y publicidad, en la prensa, contratar cuñas en la radio y en la televisión, para
15
que llegar al usuario con tal fuerza que todo el mercado de estudiantes venga a
nosotros, y capacitarlos para que obtengan todo el conocimiento que la aplicación les
proporciona, esta alternativa es demasiado arriesgada y tan costosa que sale del
presupuesto
2.1.3 Implicaciones
La tecnología y la ciencia son los pilares fundamentales de una cadena evolutiva en la
historia del ser humano, contribuyendo al desarrollo global, abarcando todas las áreas
que involucran al mismo, principalmente conllevando al crecimiento económico y
social.
El avance de la ciencia y la tecnología lo forman las Tecnologías de la Información y
las Comunicaciones (TIC), el desarrollo de aplicaciones informáticas cada vez mas
útiles y sofisticadas; el uso del INTERNET, instrumento que ha marcado una huella
imborrable en el desarrollo de la sociedad de hoy.
De esta manera se hace necesaria la creación de un sistema informático de
georeferenciación que muestre de manera gráfica, la localización de cada colegio, que
trace la ruta optima de desplazamiento y sobre todo obtenga la información necesaria
y pertinente para los usuarios que día a día necesitan conocer los beneficios que
ofrecen las instituciones de la ciudad de Quito.
Los beneficios que se puede lograr con esta aplicación son:

Mejor toma de decisión al elegir un colegio para estudiar

Conocimiento de tiempo y distancia entre origen y destino

Optimización del tiempo para recorridos

Mejor conocimiento de los colegios de Quito

Facilidad de uso para usuarios no informáticos.
Una vez analizados todos estos factores, y la viabilidad que supone desarrollar un
proyecto de tales características, es necesario elegir una metodología adecuada para
la elaboración del proyecto denominado: SISTEMA WEB DE UBICACIÓN
GEOGRAFICA Y TRAZO DE RUTAS DE TRANSPORTE PARA LLEGAR A LOS
COLEGIOS DE QUITO
16
Selección de la Metodología y Herramientas de Desarrollo
Enfoque de
desarrollo
Características
Interacción con
el usuario
Proceso de
desarrollo
Usabilidad en
aplicaciones
móviles
Proceso de
gestión del
proyecto
Se centra en las
mejores prácticas
para la gestión de
todo tipo de
proyectos
Un comienzo
organizado y
controlado
Un desarrollo
organizado y
controlado,
Un final organizado y
controlado
Revisiones periódicas
de los progresos.
Flexibilidad en las
decisiones.
Dirección de control
automática “Gestión
por Excepción”.
Buena comunicación
El cliente forma el
equipo de desarrollo
hasta la entrega del
software
Releases cortos
Diseño Simple
Pruebas y
Refactorización
Programación en
parejas
Propiedad colectiva
Integración continua
Estándar de
codificación
Se ajusta aplicaciones
al desarrollo todo
tipo de proyectos
informáticos
Reunión de
planificación
9
8
7
Se centra en la
gestión de proyectos,
en situaciones en las
que es difícil
planificar el futuro.
El
software
es
desarrollado por un
equipo
de
autoorganización
en
incrementos.
Los
cambios que deben
aplicarse se registran
en un backlog. El
“Scrum Master” es el
encargado de resolver
los problemas que
impiden
que
el
equipo
trabaje
eficazmente
El usuario interactúa
todo el tiempo con el
desarrollo
del
software
Equips de Scrum
Product backlog
Sprint
Revision del Sprint
8
8
6
Proceso de
configuración
del software
No especificado
1
Proceso de
gestión de
procesos
No especificado
1
7
No especificado
No especificado
17
Se centra en la mentalidad de
los desarrolladores
guiándolos a través del
desarrollo y enfocándose en
la calidad del producto final
Planificación, pequeñas
emisiones, diseño sencillo,
pruebas, y refactorización,
programación en parejas,
propiedad colectiva,
integración continua, semana
40-h
8
8
8
Se
centra
en
proyectos
más
grandes,
no
específicamente en
aplicaciones móviles
Scrum Master
Reunión
de
planificación
de
Sprint
Reunión scrum diaria
Descripción
6
7
1
1
Peso
Descripción
Extreme Programing (XP)
Peso
Descripción
Scrum
Peso
Prince 2
9
8
El cliente permanece fuera
del proyecto hasta finalizar
cada etapa de desarrollo
Elegir un requisito
Escribir una prueba
Verificar que la prueba
falla
Escribir la
implementación
Ejecutar las pruebas
automatizadas.
Se ajusta perfectamente al
diseño de aplicaciones
móviles
Reuniones de planificación
Se actualiza la lista de
requisitos tachando el
requisito implementado.
Asimismo se agregan
requisitos que se hayan visto
como necesarios durante este
ciclo y se agregan requisitos
de diseño
No especificado
7
8
9
7
8
1
Manejo de
errores
Aceptación
los planes del
proyecto se centran
en obtener resultados
concretos, y no sólo
en la planificación de
las actividades
Satisfacción del
programador.
Solución de errores
de programas
8
9
Algunas prácticas son
imposibles de
eliminar ya que son
necesarias para
mantener las otras en
su lugar
5
Pequeños y Medianos
8
Menor que 10
9
Iterativo y rápido
8
Estilo de código
Limpio y sencillo
Entorno
tecnológico
Requiere rápida
retroalimentación
Equipos en un mismo
lugar y equipos
distribuidos
Colaborativo y
cooperativo
Flexibilidad
Tamaño de los
proyectos
Tamaño de
equipo
Estilo de
desarrollo
Entorno físico
Cultura de
negocio
Mecanismos de
abstracción
Curva de
aprendizaje
Scrum,
es
una
metodología,
muy
bien
recomendada,
por su efectividad en
la
detección
de
errores
Ha sido utilizada por
grandes empresas
como Google y
Yahoo con resultados
muy satisfactorios
Algunos proyectos
por ser muy grandes,
se vuelven muy
difíciles de manejar
8
9
XP es una de las
metodologías con mayor
acogida en el campo
profesional, ya que está
orientada precisamente a
crear el software a partir de
los errores
Continua expandiéndose
debido a sus buenos
resultados
9
9
8
Es una metodología propia,
que tiene un campo de
acción especifico en el
desarrollo de apps móviles,
por lo tanto posee mayor
flexibilidad
7
8
Pequeños y medianos
8
8
Menor que 10
9
Iterativo y rápido
8
Iterativo
8
7
No especificado
1
Limpio y sencillo
7
7
No especificado
1
Requiere retroalimentación
7
7
No especificado
1
No especificado
1
7
No especificado
1
Colaborativo
7
Orientado a objetos
7
Orientado a objetos
7
Orientado a objetos
7
Mediana
8
Compleja
6
Mediana
8
Sumatoria
Peso
Porcentual
13
8
69
%
Pequeños, Medianos
y grandes
Múltiples equipos
menores que 10
Sumatoria
Porcentual
11
2
56
%
Sumatoria
Porcentual
14
4
72
%
Tabla 3. Cuadro Comparativo de Metodologías
De acuerdo a la Tabla 3 la Metodología seleccionada es XP, ya que es la que mejor se
adapta a nuestro proyecto, tomando en cuenta que la aplicación a desarrollar, debe
superar muchos test y además tomando en cuenta el tiempo de desarrollo con el que
contamos, es ideal tener una curva de aprendizaje no muy compleja, esta
metodología, tiene un mejor enfoque hacia tendencia móvil
18
REQUERIMIENTOS TÉCNICOS PARA DESARROLLAR LA APLICACIÓN
LENGUAJES DE PROGRAMACION
Compatibilidad con
desarrollo de apps móviles
Compilado
Peso
8
8
PHP
Descripción
Es el lenguaje
más flexible,
potencial y de
alto rendimiento
de este tipo de
lenguajes, la
aplicación más
famosa diseñada
con este
lenguaje es la
red social de
Facebook
Compilado
Peso
8
Python
Descripción
Lenguaje de
programación
interpretado,
cuya filosofía
hace hincapié
en una sintaxis
que favorezca
un código
legible para la
creación de
apps móviles
9
Multiplataforma
9
7
GNU Public
(GPL) Libre,
abierta, con
copyleft
8
8
N. 8
5
N. 4
Sistema
Operativo
6
Licencia
N. 6
Ranking
(Puesto)
10
Flexibilidad
6
9
- Mayor soporte
en línea
5
Multiplatafor
ma
8
- Amplio
Soporte y
Documentaci
ón
7
9
Libre
(compatible
GPL)
- Es muy
flexible, en
entornos web
8
Lenguaje de
programación
interpretado, en
una sola pasada
8
Libre, sin
copyleft (similar
a BSD original)
9
4
8
Multiplataforma
- Expandible y
potente
- Tiene
bibliotecas
disponibles
- Seguro
8
No es muy
compatible con
el desarrollo de
aplicaciones
moviles
Interpretado,
reflexivo y
orientado a
objetos
9
N. 1
Peso
Multiparadig
ma
programación
orientada a
objetos,
programación
imperativa y
programación
funcional
8
GNU Public
(GPL) Libre,
abierta, con
copyleft
Ruby
Descripción
Compilado
Multiparadigma
Imperativo,
Orientado a
objetos,
Procedural y
Reflexivo
Multiplataform
a
Peso
8
Orientado a
objetos,
Imperativo
Soporte
Paradigma
Java, tiene
muchas
cualidades
poderosas que
lo hacen
prioritario al
momento de
diseñar una
aplicación
móvil
Tipo de
lenguaje
Java
Descripción
8
8
19
- Flexible
- Orientado
a objetos
- Código
más
legible
- Soporte en
línea
8
7
- Flexible
- Orientado a
objetos
- Código más
legible
- Soporte en
línea
7
7
Curva de
aprendizaje
Conectividad
con BD
- No existen
JDBC para
BDs poco
comerciales,
algunas
8
Documentación
Existe mucha
documentación
en le web
9
Existe mucha
documentación
en le web
9
Documentació
n variada
8
Poca
documentación
6
Desarrollo
Web
Java tiene
muchas
herramientas
para desarrollar
proyectos web
10
PHP fue creado
para desarrollar
proyectos web
10
Orientado al
desarrollo web
también
9
Pocos
framework para
desarrollo web
7
8
Todavía no es
un lenguaje muy
maduro para
compararlo con
Java
5
Integración con otras
plataformas
Portabilidad
Robustez
- Dificultad
Moderada
Peso
Muy Robusto
A bajo nivel se
limita la
portabilidad.
Java puede
integrarse con
gestores de
bases de datos,
motores de
reglas,
servidores
remotos,
gestores NoSql,
etc
Sumatoria
Porcentual
8
10
- Fácil de
aprender
- Capacidad de
conectar con
múltiples BDs
Robusto
8
Portable
10
Integración
limitada y
menor que Java
141
88%
Sumatoria
Porcentual
9
- Dificultad
Moderada
8
- Dificultad
Moderada
8
8
La conexión
can bases de
datos es un
tanto compleja
6
La conexión can
bases de datos es
un tanto
compleja
6
8
Robusto
9
Portable
7
Integración
limitada y
menor que
Java
7
Integración
limitada y
menor que Java
Sumatoria
Porcentual
126
79%
Sumatoria
Porcentual
130
81%
9
A bajo nivel se
limita la
portabilidad.
6
7
105
66%
Tabla 5. Cuadro comparativo de Lenguajes de Programación
De acuerdo a la Tabla 5 el lenguaje de programación Java, tiene muchas cualidades
poderosas que lo hacen prioritario al momento de diseñar una aplicación móvil, entre
las cualidades que favorecieron a Java, tenemos que el proyecto necesita integrarse a
varios componentes distintos como son html, css, xhtml, bootstrap, jquery, javascript,
servidor de base de datos, servidor de aplicaciones, cloud de openshift.
Necesitamos un Lenguaje robusto que satisfaga toda esta demanda, Java es el mejor
rankeado y además de eso, hay muy buena documentación para suplir las falencias
que se presenten en el camino
20
IDE DE DESARROLLO
Características
Editor
Controlador de
Versiones
(CVS)
Interfaz
Configuración
Robustez
Eclipse
Descripción
La compilación es en
tiempo real. Tiene pruebas
unitarias, integración con
Ant,
asistentes(wizards)
para creación de proyectos,
clases test y refactorización
8
Posee un controlador de
versiones CVS
9
Es menos intuitivo que los
otros
IDs
de
Java,
personalizable
7
Interfaz intuitiva y
completamente
personalizable
8
En
proyectos
avanzados
se
vuelve compleja la
configuración
8
8
Presenta
limitaciones,
proyectos
complejos
6
En proyectos avanzados se
vuelve
compleja
la
configuración
Es robusto
Programación
Distribuida
Es muy útil para proyectos
que usen programación
distribuida
13,25 segundos
Compleja
Sumatoria
Porcentual
Posee un editor de
texto muy intuitivo
con la sintaxis y
autocompletado
Peso
9
Permite comunicarse con
bases de datos externas
Peso
10
JCreator
Descripción
Incluyen la gestión
de proyectos,
plantillas, resaltado
de sintaxis
personalizable,
vistas de clase, etc.
Dispone de un editor de
texto con resaltado de
sintaxis.
Conectividad
con BD’s
Tiempo de
ejecución
Curva de
aprendizaje
Peso
9
No posee CVS
9
8
8
7
83
83%
Netbeans
Descripción
Edición
JavaScript,
soporte para usar
estructuras Spring
de soporte web,
Peso
10
Posee un editor de
texto muy
intuitivo con la
sintaxis y
autocompletado
No posee CVS
9
7
Integración con
pocas BD’s
Es muy limitado
para proyectos de
programación
distribuida
1,74 segundos
Mediana
Sumatoria
Porcentual
en
8
6
5
8
8
73
73%
7
Interfaz muy
intuitiva y fácil de
usar
La configuración
es menos
complejas que en
los otros IDE’s
Es más robusto y
estable que los
otros IDE’s
La integración
MySQL y
Postgresql es más
óptima y además
se puede
compartir
bibliotecas entre
proyectos
dependientes.
Es muy útil para
proyectos que
usen
programación
distribuida
11,20 segundos
10
10
10
10
8
8
Mediana
Sumatoria
Porcentual
8
90
90%
Tabla 6. Cuadro comparativo de IDEs de Desarrollo
De acuerdo a la Tabla 6 y tomando en cuenta, los requerimientos de la aplicación, se
utilizara Netbeans como IDE prioritario, por su interfaz amigable con el usuario,
facilidad para crear archivos exportables *.war. Además se necesitará la creación de
un servicio web tipo REST y el mejor IDE para esta tarea, en base a la experiencia
adquirida en proyectos anteriores es Netbeans combinado con Glassfish y Wildfly
21
SERVIDOR DE APLICACIONES
Glassfish
Descripción
Diseñado
específicamente
para trabajar con
aplicaciones
escritos en Java
Diseño
Integración con
IDE’s
Conexión
Remota
Manejo EJB
Manejo Web
services
Compatibilidad
con Openshift
Instalación
Interfaz
Intuitivo
Robustez
Operaciones
por segundo
Tiempo medio
respuesta
Tiempo mex,
respuesta
90% tiempo
respuesta
Soporte
Peso
Solo se integra
con Netbeans
Compleja
Soporta EJB´s
sin ningún
problema
Permite crear
Web services de
una manera muy
fácil y sencilla
No es
compatible
Es muy fácil de
instalar
Muy intuitivo,
fácil de usar,
viene preconfiguradoo
con Netbeans
Es bastante
completo, para
aprender en un
entorno
experimental
6988,9
0,242
1,519
0,6
Peso
9
8
7
TomCat
Descripción
Es simplemente un
servidor HTTP y Java
servletcontainer
Se integra con cualquier
IDE de Java
Dificultad Moderada
Peso
8
9
7
No soporta EJB´s
10
4
No Soporta Web services
10
4
9
Es compatible, ero solo
con características
básicas
Es muy ligero, no
requiere instalación
Hay que configurarlo
manualmente, con viene
integrado con Netbeans
8
Es un tanto limitado para
medianos y grandes
proyectos
1
9
8
9
9
9
Ya no posee
soporte
6
Sumatoria
Porcentual
112
80%
6615,3
3
9
8
5
7
0,358
6
3,693
7
0,75
8
Posee soporte limitado
7
Sumatoria
Porcentual
92
66%
Jboss Wildfly
Descripción
JBoss es un servidor
completo de Java EE
servidores de
aplicaciones,
incluyendo un
contenedor EJB
Se integra con
cualquier IDE de Java
Compleja
Soporta EJB´s sin
ningún problema
La Creación de Web
Services es un tanto
compleja
Es muy compatible
con Openshift
Es muy ligero, no
requiere instalación
Hay que configurarlo
manualmente, con
viene integrado con
Netbeans
Es muy completo,
actualmente es mejor
que Glassfish y
Tomcat, funciona para
cualquier entorno
6802,1
0,3
2,606
0,675
Posee mas soporte que
los otros servidores de
aplicaciones
Sumatoria
Porcentual
Peso
9
9
7
10
8
8
9
8
9
8
7
8
9
8
117
84%
Tabla 7. Cuadro comparativo de Servidores de Aplicaciones
De acuerdo a la tabla 7 y tomando en cuenta que la aplicación requiere un servidor de
completo, robusto y compatible con el manejo de servicios web, usaremos Glassfish,
aunque para la replicación usaremos Jboss Wildfly también, porque el servidor espejo,
se ejecuta sobre plataforma RedHat es muy útil en este caso, sobre todo para el
acceso online. El único servidor que definitivamente no será usado es Tomcat por sus
limitaciones en cuanto al manejo de EJB’s para la arquitectura MVC
22
FRAMEWORKS
Características
MVC
Implementaciones
Licencia
Compatibilidad
con Ajax
i18n y l10n
multilenguaje
compatibilidad
groovy/scala
Curva de
aprendizaje
Compatibilidad
con JS
Documentacion
Compatibilidad
con Bootstrap
JSF
Descripción
Posee un controlador
central que se
encarga de manejar
todas las peticiones
del cliente y
gestionar su ciclo de
vida.
El código JSF con el
que creamos las
vistas es muy
parecido al HTML
estándar.
Peso
10
Se puede usar para
arquitectura MVC
MyFaces,
RichFaces,
ICEFaces y Mojarra
GPL
8
5
SpringMVC
Descripción
A pesar de que no
impone ningún modelo
de programación en
particular, este
framework se ha vuelto
popular, al ser
considerado una
alternativa, sustituto, e
incluso un
complemento al
modelo EJB
Peso
8
Creado específicamente
para arquitectura MVC
9
No dispone
1
No dispone
1
10
GPL
10
Apache GPL
10
50%
5
50%
5
100%
10
50%
5
100%
10
50%
5
100%
10
50%
5
50%
5
Facil
9
Mediana
6
Mediana
6
9
Muy básicamente
7
Muy básicamente
7
9
Documentación
muy buena
8
JSF permite
introducir JavaScript
en la página
JSF posee mucha
documentación en la
web
Se puede integrar
con bootstrap para
realizar aplicaciones
responsivas
10
Al no ser
compatible, las
vistas quedan
atadas al
dispositivo en el
cual se renderizan
Mediana
9
Configuración
Peso
Peso
7
7
Facil
Compatibilidad
con apps móviles
Struts
Descripción
Es por el
momento el más
difundido de los
frameworks open
source en el
ámbito java,
consta de un
servlet que actúa
de controlador
central que recibe
todas las
peticiones de los
clientes
Se puede usar para
arquitectura MVC
Es compatible,
existen muchas
aplicaciones en la
actualidad
Sumatoria
Porcentual
9
110
85%
8
Se puede integrar con
bootstrap
4
7
Es compatible
aunque no es
natural al mapeo
de los datos
ingresados
Sumatoria
Porcentual
Posee documentación
variada
6
81
62%
8
Compleja, ya que por
cada servicio que se
tenga se necesita un
archivo XML de
configuración.
El contenedor de
Spring no es ligero, no
es recomendable su uso
en aplicaciones
móviles.
Sumatoria
Porcentual
5
4
86
66%
Tabla 8. Cuadro Comparativo de Frameworks
De acuerdo a la Tabla 8 el Framework seleccionado es JSF, ya que la aplicación
posee abundante código JavaScript y JQuery, Además vamos interactuar con el API
de Google Maps y con Twitter Bootstrap
23
SISTEMA GESTOR DE BASE DE DATOS
Diseño
Manejo de bases
no relacionales
Es un sistema de
gestión de bases de
datos muy robusto y
funciona de una
manera muy optima
al combinarlo con
Java
No dispone
PgAdmin
Administrador
10
5
9
250 MB de espacio
en disco duro
Recursos
250 MB de RAM
Es un sistema de
gestión de bases de
datos relacional,
multihilo y
multiusuario con más
de seis millones de
instalaciones.
No dispone
Mysqladmin
10
512 RAM
1 GB Memoria
Virtual
1 GB disco duro
Arquitectura del
sistema 32/64 bits
9
9
GPL y Propietaria
9
8
Árbol R-/R+ (Tablas
MyISAM
solamente),
Hash (Tablas HEAP
solamente)
8
Hash, reversa y Mapa
de bits
7
9
Cursor, Trigger,
Funciones,
Procedimiento, Rutina
externa
9
10
Atomicidad
9
10
Consistencia
9
9
Aislamiento
9
10
Durabilidad, Tabla
temporal y Vista
materializada
10
9
Árbol R-/R+, Hash,
Expresión, Parcial
Objetos
soportados
nativamente
Dominio, Cursor,
Trigger, Funciones,
Procedimiento,
Rutina externa
9
Cursor, Trigger,
Funciones,
Procedimiento,
Rutina externa
Atomicidad
10
Atomicidad
10
Consistencia
9
Aislamiento
10
Durabilidad, Tabla
temporal
9
Rango
Hash
Compuesto
(Rango+Hash) Lista
9
Rango
Hash
Compuesto
(Rango+Hash)
Lista
Rango
Particionamiento
Lista
9
GPL y Propietaria
Manejo
De
Índices
Durabilidad, Tabla
temporal
7
7
Licencia BSD
Aislamiento
9
Permite almacenar
documentos completos
dentro del tipo de
datos xml para realizar
operaciones y
búsquedas de manera
jerárquica e integrarlo
con búsquedas
relacionales
DB2 Express-C
(Licencia gratuita para
proyectos open
source)
8
8
Licencia
Características
fundamentales
nativas
5
Es un motor de base
de datos relacional que
integra XML de
manera nativa
256 MB RAM
2 GB de Disco Duro
Arquitectura del
sistema 32/64 bits
Arquitectura del
sistema 32/64 bits
Consistencia
9
Descripción
Peso
Descripción
DB2 Express
Peso
Descripción
MySQL
Peso
Postgresql
Soporte
Soporte empresarial
disponible.
9
Soporte empresarial
disponible.
9
El Soporte es casi nulo
para la versión gratuita
3
Sistema
Operativo
Multiplataforma.
9
Multiplataforma.
9
Multiplataforma.
9
24
Compatibilidad
con tecnologías
web
Ampliamente
popular - Ideal para
tecnologías Web.
Potencia
Su SQL es estándar
y fácil de aprender
y muy potente
Instalación y
Configuración
Fácil de Instalar y
configurar
9
SOA
Dispone de
Arquitectura SOA
8
Facilidad de
instalar, la
configuración es un
poco complejan.
Dispone de
Arquitectura SOA
Documentación
Existe gran cantidad
de documentación,
aunque sin
experticia,
configurar llega a
ser un caos.
9
Un gran porcentaje
de las utilidades de
MySQL no están
documentadas.
Interfaz Intuitivo
Posee una interface
muy sencilla y fácil
de entender
9
No es intuitivo, como
otros programas
Seguridad
Velocidad al
crear y ejecutar
consultas
Tipos de Datos
Peso
Es fácil de vulnerar
sin protección
adecuada.
9
Ampliamente
popular - Ideal para
tecnologías Web.
9
9
Su SQL, es muy
completo y potente
9
6
Muy rápido
Es fácil de vulnerar
sin protección
adecuada.
Reducida cantidad
de tipos de datos.
Sumatoria
Porcentual
Facil de instalar y
configurar
8
Dispone de
Arquitectura SOA
9
6
6
7
200
87%
8
Amplia cantidad de
tipos de datos
Sumatoria
Porcentual
8
195
85%
7
El SQL de DB2 es
muy potente.
9
Muy rápido
8
Tiene más orientación
hacia la parte
administrativa de la
empresa
9
8
La mayoría de
documentación es para
la versión de pago, los
recursos son limitados
al usar DB2 gratuito
5
No es intuitivo, como
otros programas
6
Es fácil de vulnerar
sin protección
adecuada.
6
Lentitud crear y
ejecutar consultas.
Reducida cantidad de
tipos de datos, en la
versión gratuita
Sumatoria
Porcentual
5
7
167
73%
Tabla 9. Cuadro comparativo de Sistemas Gestores de Base de Datos
De acuerdo a la Tabla 9 el Sistema Gestor de base de datos seleccionado es
Postgresql, ya que es una gestor muy robusto, fácil de usar, y ocupa pocos recursos,
para disminuir el peso de la aplicación en el servidor, para administrar la base de datos
se usará pgadmin
Ya se han realizado proyectos anteriores, por lo que se dispone de más experiencia en
cuento a la configuración del SGBD, la base local se ejecutara en Windows en el
puerto 5432 y la base remota en RedHat en el puerto 5433, dado que Postgresql es
compatible con ambos sistemas operativos no hay ningún problema relevante en su
configuración
Además se necesitará software auxiliar como:
25
Framework responsivo Bootstrap Twitter: Es un framework o conjunto de
herramientas de Código abierto para diseño de sitios y aplicaciones web de índole
responsivo
JQuery: Es una biblioteca de JavaScript, creada inicialmente por John Resig, que
permite simplificar la manera de interactuar con los documentos HTML, manipular el
árbol DOM, manejar eventos, desarrollar animaciones y agregar interacción con la
técnica AJAX a páginas web
Google Maps: : Es un servidor de aplicaciones de mapas en la web que pertenece a
Alphabet Inc. Ofrece imágenes de mapas desplazables, así como fotografías por
satélite del mundo e incluso la ruta entre diferentes ubicaciones o imágenes a pie de
calle con Google Street View
Arc Gis: es un grupo de componentes de software que permiten trabajar con datos en
forma de arreglos con la finalidad de representar mapas, para luego ser desplegados
en la pantalla
Plataforma OpenShift: es una plataforma de aplicaciones de nube que automatiza el
hosting, configuración, implementación y administración de pilas de aplicaciones en un
entorno de nube flexible
Git: Es un software de control de versiones pensado en la eficiencia y la confiabilidad
del mantenimiento de versiones de aplicaciones cuando éstas tienen un gran número
de archivos de código fuente
RubyGem: Es un gestor de paquetes para el lenguaje de programación Ruby que
proporciona un formato estándar y autocontenido (llamado gem) para poder distribuir
programas o librerías en Ruby
26
3. METODOLOGÍA DE DESARROLLO
Luego de un exhaustivo análisis y de acuerdo a la Tabla 3 del capítulo anterior se
llegó a la conclusión que la mejor opción en cuanto a metodologías de desarrollo de
software compatibles con las características del proyecto es: Xtreme Programming (de
ahora en adelante XP) o Programación Extrema, frente a otras metodologías como
SCRUM o Prince2 que también son muy buenas, pero en otro tipo de proyectos
informáticos.
La metodología XP o Programación Extrema es la más destacada en cuanto al
manejo de procesos ágiles, pues, brinda un mayor control y visibilidad del proyecto a
corto, mediano y largo plazo, esta metodología es sumamente útil porque aplica mayor
énfasis en la adaptabilidad del proyecto antes que en su pre-visualización.
Tomando en cuenta que en el proyecto SISTEMA WEB DE UBICACIÓN
GEOGRAFICA Y TRAZO DE RUTAS DE TRANSPORTE PARA LLEGAR A LOS
COLEGIOS DE QUITO, es altamente cambiante pues integra varios paradigmas de
programación, las modificaciones en el desarrollo son prácticamente inevitables, por lo
tanto es de vital importancia aplicar XP para agilizar su desarrollo y minimizar su
complejidad
Se puede considerar la programación extrema como la adopción de las mejores
metodologías de desarrollo de acuerdo a lo que se pretende llevar a cabo con el
proyecto, y aplicarlo de manera dinámica durante el ciclo de vida del software.
XP también incorpora al usuario como parte activa durante toda el ciclo de desarrollo
del software, razón por la cual, se estará interactuando de manera continua con los
clientes, cada vez que se cumpla un hito en el desarrollo del sistema, obviamente cada
avance debe contar con la aprobación del cliente y si se genera algún tipo de error o
alguna duda se tomarán accione como:

Revisión del código

Corrección de errores

Refactorización del Código
A continuación se mencionará los Valores más importantes de la metodología XP y su
relación con el proyecto que se está realizando
27
3.1 Valores de la Metodología XP
Valor
Simplicidad
Descripción
Valor en la aplicación web
Se simplifica el diseño para
La app se ha creado en base al
agilizar el desarrollo y
patrón de diseño MVC,
facilitar el mantenimiento.
precisamente pensando en su
fácil mantenimiento y en la
agilidad del desarrollo
Comunicación
Retroalimentación
Debe comentarse sólo
Se ha comentado la definición
aquello que no va a variar,
de cada método, tanto en
por ejemplo el objetivo de
clases java como en funciones
una clase o la funcionalidad
JavaScript de acuerdo a su
de un método.
importancia y prioridad
Al realizarse ciclos muy
Constantemente se han venido
cortos tras los cuales se
realizando pruebas unitarias y
muestran resultados, se
de integración para mejorar el
minimiza el tener que
rendimiento de la aplicación
rehacer partes que no
cumplen con los requisitos
Siempre diseñar y
Se ha tratado de optimizar el
programar para hoy y no
tiempo de la mejor forma
para mañana
posible para programar la
aplicación en el menor tiempo,
Coraje
pero con la mayor calidad
posible, es decir, programar
con eficiencia, eficacia y
efectividad
Una de las mayores cualidades
Respeto
Los miembros del equipo
que se resaltan en el desarrollo
respetan el trabajo del resto
de este proyecto integrador es
no haciendo
precisamente el respeto por el
menos a otros
trabajo al momento de
programar
Tabla 10. Valores de la Metodología XP
28
3.2 Fases de la Metodología
3.2.1 Fase 1: Estudio de Factibilidad
Esta fase tendrá como objetivo relevar y analizar en líneas generales los
requerimientos y características globales de la aplicación a desarrollar, a fin de
establecer el alcance del sistema y el esfuerzo necesario para su desarrollo, de forma
que se pueda conformar una propuesta lo más precisa posible.
En los casos en que sea factible, es conveniente mencionar la descripción de la
aplicación y los requerimientos necesarios para su desarrollo.
Descripción de la aplicación: La aplicación web, será gestionada a través de un
servidor de aplicaciones (Glassfish en el servidor local y Wildfly en el servidor remoto),
haciendo uso de la Plataforma online como servicio (PaaS) OpenShift RedHat y se
podrá acceder al aplicativo escribiendo su Localizador Único de Recursos (URL)
mediante un navegador web (Internet Explorer, Mozilla Firefox, Google Chrome, etc.)
Una vez ingresado en el portal web de la aplicación se requiere usuario y contraseña
para la autenticación, solamente por fines académicos dicho usuario y contraseña,
mientras la aplicación tenga un uso no comercial, serán admin
Posteriormente se desplegará una ventana dividida en dos partes. En la parte superior
estarán dos botones de color azul para Trazar Ruta y Regresar y en la segunda parte
estará el mapa con unos marcadores de color rojo, que al pulsar sobre ellos,
proporcionaran la información de cada colegio, Luego al presionar el botón Trazar
Ruta, se desplegará un combo jsf para elegir el colegio al que se desea ir, también se
puede escribir el nombre del colegio sino se desea seleccionar de la lista, luego al
presionar el botón IR, se trazará la ruta desde la ubicación en la que se encuentra el
usuario hasta la ubicación del colegio seleccionado
Finalmente al pulsar sobre el icono del colegio, se mostrará la información relevante,
así como la distancia en kilómetros y el tiempo aproximado en horas y minutos que le
tomará al usuario hasta llegar al colegio, usando algún vehículo
29
Requerimientos Técnicos para desarrollar la aplicación
Herramienta
Descripción
JDK
Es un kit de herramientas de desarrollo para la
creación de programas en Java
Netbeans
Es un entorno de desarrollo integrado libre para
aplicaciones de Java
Glassfish
Servidor de Aplicaciones en la máquina local
Postgresql
Sistema gestor de base de datos
Pgadmin
Administrador de la base de datos
Wildfly
Servidor de aplicaciones remoto
OpenShift
Plataforma como Servicio
JSF
Frimework Java Server faces
Bootstrap Twitter
Frameworj Responsivo
JQuery
Bibliotecas de JavaScript
API Google Maps
Elementos de Google Maps para visualizar puntos de
referencia
Tabla 11. Herramientas para desarrollo
Además se necesitará software auxiliar como:
Arc Gis
Es un grupo de componentes de software que
permiten trabajar con datos en forma de arreglos con
la finalidad de representar mapas
Git
Software de control de versiones
RubyGem
Gestor de paquetes para Ruby
Tabla 12. Software Auxiliar
Hardware

Computadora con procesador: Core i7 2.50 GHz,

Memoria RAM 2GB,

Disco Duro de 50 GB.

Conexión permanente a internet
30
Casos de Uso
Figura 9. Casos de uso
A continuación detallaremos los actores principales y los casos de uso que tenemos
en la aplicación
Actores
Usuario Administrador: Es la persona que gestiona la aplicación, si se necesita,
mantenimiento, refactorización del código, configuración de los módulos, actualización
o algún tipo de cambio adicional; este actor puede realizar tareas especificas
Usuario: Es el cliente o usuario final, es decir la persona que únicamente usara la
aplicación como producto final una vez terminado el proyecto, desde la capa del
cliente
Casos de Uso
Modificar Usuarios y contraseñas: Si la aplicación necesita un mayor nivel de
formalidad o seguridad para la puesta en producción es necesario mejorar el ingreso y
gestión de usuarios
31
Figura 10. Modificar usuario y contraseña
Trazar Ruta: Consiste en dibujar la ruta entre origen y destino usando la aplicación
Lo primero que se necesita es conocer la posición actual del usuario, para ello se
necesita conocer la latitud y longuitud del origen.
Google Maps, utiliza dos objetos propios que funcionen de manera similar a un GPS
llamados coords.latitude y coords.longitude para almacenar esta información.
Para obtener la latitud y longuitud del colegio destino, solo lo tomaremos de la base de
datos, cuando el usuario seleccione el nombre del colegio que desea visitar.
De esta manera ya tenemos los datos correspondientes de origen y destino
Para trazar la ruta, se utilizaran dos objetos propios del API de Google Maps:
 DirectionService: Calcula la ruta, siempre y cuando sea posible, entre el
origen y el destino
 DirectionRenderer: Muestra la trayectoria de la ruta en el mapa, tomando
como entrada la información que le provee el DirectionService
32
Estos dos objetos ya viene pre configurados, solo hay que instanciarlos y usar sus
atributos
Figura 11. Trazar Ruta
Testear métodos: Consiste en probar regularmente los métodos para medir su
eficiencia, velocidad, rendimiento, utilidad; los métodos siempre son susceptibles de
mejora o desuso dependiendo la evolución de la aplicación, estos pueden ser
refactorizados, actualizados, eliminados o a su vez se pueden crear nuevos métodos
para reemplazar a métodos obsoletos
Figura 12. Testear Métodos
Ingresar al Portal: Consiste netamente en colocar en la barra del navegador web la
dirección URL (Localizador Único de Recursos) de la aplicación, en este caso:
http://database-geolocalizacion.rhcloud.com/EjemploWildfly , luego en la pantalla de
ingreso, poner su usuario y contraseña (Por fines netamente académico ambos serán
admin) y finalmente visualizar la primera página
Figura 13. Ingresar al Portal
33
Mostrar lista de colegios en el Mapa: Despliega la lista de todos los colegios de la
capital, y permite seleccionar cualquiera de ellos
Figura 14. Mostrar lista de colegios
Procesos
PASO
1
1.1
2
ACTIVIDAD
Ingresar al portal de la aplicación
Iniciar Sesión
Registro
2.1
Ingresar Datos Personales
2.2
Crear Usuario
3
Enviar Registro
4
Ingresar usuario y contraseña
5
Mostrar lista de colegios en el mapa
6
Seleccionar colegios
7
Trazar ruta para llegar al colegio seleccionado
8
Mostrar información relevante del colegio
Tabla 13. Lista de Procedimientos para manejo y uso de la aplicación web
34
35
Figura 15. Diagrama de Secuencia
Diagrama de Secuencia
3.2.2 Fase 2: Análisis y Diseño Global
Se analizará a bajo nivel cada requerimiento documentado en la etapa anterior y se
realizará un diseño global de los principales circuitos del sistema. El resultado de esta
etapa será el “Análisis de Requerimientos”, con el cual se confeccionará la “Propuesta
Definitiva”.
Descripción Lógica de los procesos del Sistema
Figura 16. Diagrama Lógico de los Procesos
36
3.2.3 Fase 3: Desarrollo
Se compone de varias etapas bien diferenciadas y repetitivas por cada submódulo del
sistema (llamadas iteraciones):
a) Diseño Detallado: Se elaborarán las Especificaciones de Diseño de cada
programa del sistema, se realizará un análisis de las herramientas, para elegir
las más adecuadas y acordes para nuestro sistema, también se realizará un
análisis de los lenguajes de programación, para elegir el programa más robusto
y que cumpla con los requerimientos del proyecto
b) Desarrollo: Se codificará cada uno de los programas especificados en la etapa
anterior usando la plataforma Java
c) Control de Calidad: se realizarán las pruebas unitarias y de integración
necesarias para que la calidad de los programas desarrollados sea la más
óptima posible. Esta etapa incluye el ajuste de los módulos con calidad
inaceptable.
d) Implementación: se lleva a cabo la integración de los programas, la carga
inicial y la confección del archivo ejecutable o *.jar que será colocado en el
servidor OpenShift para que el cliente pueda acceder y usar la aplicación en
tiempo real,. También se procederá a cargar un manual de usuario en caso de
que se requiera algún tipo de capacitación relativa al manejo del software.
3.2.4 Fase 4: Puesta en Producción
Esta etapa tiene lugar cuando ya se terminó de desarrollar todos los módulos del
sistema. Su función es realizar los ajustes requeridos para que el mismo pueda
llevarse a producción, realizar la carga inicial y migración definitiva de los datos,
parametrizar el sistema, e implementarlo en el servidor adecuado, de ser necesario,
comprar un dominio y darle un nombre formal al URL que direcciona a la aplicación.
Para la fase final del proyecto se procederá a entregar el proyecto con los respectivos
manuales
37
Manual de Ejecución de Código Compilado
Manual de Ejecución de Código Fuente
Manual de Instalación en Entorno PC
Manual de Instalación en máquina virtual
Manual de Instalación de Herramientas
Guía Rápida de Usuario (Ver Anexo F, en Sección Anexos)
3.3. Plataforma Tecnológica
3.3.1 Arquitectura de la Aplicación Web
La arquitectura de la aplicación Web, se basará en un patrón de diseño bastante bien
conocido llamado MVC (Modelo – Vista - Controlador) y varias capas.
El modelo–vista–controlador (MVC) es un patrón de arquitectura de software que
separa los datos y la lógica de negocio de una aplicación de la interfaz de usuario y el
módulo encargado de gestionar los eventos y las comunicaciones. Para ello MVC
propone la construcción de tres componentes distintos que son el modelo, la vista y el
controlador, es decir, por un lado define componentes para la representación de la
información, y por otro lado para la interacción del usuario.
Este patrón de arquitectura de software se basa en las ideas de reutilización de código
y la separación de conceptos, características que buscan facilitar la tarea de desarrollo
de aplicaciones y su posterior mantenimiento
Rápidamente el patrón MVC se define de la siguiente manera
Modelo: Contiene el núcleo de la funcionalidad (dominio) de la aplicación, encapsula el
estado de la aplicación, es independiente del controlador y la Vista
Vista: Es la presentación del Modelo, puede acceder al modelo pero nunca cambiar su
estado, puede ser notificada cuando hay un cambio de estado en el Modelo
Controlador: Reacciona a la petición del cliente, ejecutando la acción adecuada y
creando el modelo pertinente.
38
Figura 17. Diagrama de la arquitectura MVC
39
38
Figura 18. Arquitectura de la Aplicación Web
se muestra en la siguiente aplicación
La aplicación contiene varios componentes integrados, la arquitectura y el diseño total de la aplicación
Como se mencionó anteriormente el patrón de diseño MVC, permite separar de
manera eficiente el diseño de la lógica de negocios
Contraejemplo:
Se tomará el caso de algo tan sencillo como son el HTML y las CSS. Al principio, en el
HTML se mezclaba tanto el contenido como la presentación. Es decir, en el propio
HTML tenemos etiquetas como "font" que sirven para definir las características de una
fuente, o atributos como "bgcolor" que definen el color de un fondo. El resultado es
que tanto el contenido como la presentación estaban juntos y si algún día
pretendíamos cambiar la forma con la que se mostraba una página, estábamos
obligados a cambiar cada uno de los archivos HTML que componen una web, tocando
todas y cada una de las etiquetas que hay en el documento. Con el tiempo se observó
que eso no era práctico y se creó el lenguaje CSS, en el que se separó la
responsabilidad de aplicar el formato de una web
En el entorno Netbeans, la aplicación tiene la siguiente estructura
A continuación analizaremos las capas de la arquitectura de la aplicación
Capa de Información: Se compone de la base de datos y del SGBD que permite
centralizar datos, administrarlos en forma eficiente y proveer acceso a los datos
almacenados con programas de aplicación.
39
40
Figura 19. Diagrama de Clases de la aplicación
Capa de Acceso a Datos: Conecta la Capa de Negocios con la Capa de Información,
generalmente se conecta con un JDBC y se usa clases Java (Clase Conexión y Clase
Colegio) en un paquete llamado conexión, y aunque se puede acceder directamente a
los datos, lo recomendable es usar un framework de persistencia. Como Hibernate o el
propio JPA...
En esta capa se encuentran distribuidas las clases de la siguiente forma:
PAQUETE CONEXIÓN
Clase Conexión
Clase Colegio
Para una mejor descripción y detalle de las clases, observar el Anexo D (Sección
Anexos)
Capa de Negocio: Presenta el modelo de la aplicación, es decir, las reglas y la lógica
de negocios representados en los componentes EJB (Enterprise Java Bean) que están
dentro de un contenedor EJB
En la arquitectura de Netbeans la capa de Negocio se encuentra dentro del paquete
controlador y la lógica del negocio en sí, se encapsula en la clase ColegioController a
través de notaciones EJB
En esta capa se encuentra la clase que permite controlar los métodos del objeto
Colegio
PAQUETE CONTROLADOR
Clase ColegioController
Para una mejor descripción y detalle de las clases, observar el Anexo D (Sección
Anexos)
Capa de Presentación: Comprende todos los componentes del Contenedor Web,
como Servlets, Páginas JSF, el API incrustado de Google Maps y los diferentes scripts
de JQuery y Bootstrap que estamos integrando.
41
Capa del Cliente Web: Es la presentación de la interfaz gráfica de la aplicación, al
usuario a través de un navegador web.
A continuación se detallan las paginas jsf que forma la vista de la aplicación

index.xhtml

mapa.xhtml

avance2.xhtml

template.xhtml
index.xhtml
•El usuario ingresa a
la aplicación, usando
su nombre de
usuario y su
contraseña
mapa.xhtml
•El usuario, observa
el mapa y elije el
colegio al cual
quiere dirigirse
avance2.xhtml
template.xhtml
• Esta pagina muestra la
ruta entre el origen y el
destino, además
muestra la distancia y el
tiempo aproximado
hasta llegar al colegio
Esta página es una plantilla que contiene los
elementos mas importantes que se van a
mostrar, es muy útil para reutilización del
código y mantenimiento de la vista de la
aplicación
Figura 20. Diagrama de las páginas de la aplicación
Además, se hará uso de archivos JavaScript para agregar funcionalidad cuando el
usuario genere algún evento, por ejemplo: pulsar algún botón para establecer
conexión con el servicio web para acceso a los datos
42
Clases de tipo JavaScript
Son pseudoclases ya que propiamente no son archivos que van a ser compilados por
la Java Virtual Machine (JVM), sino mas bien, es código fuente de JavaScript
estructurado al estilo de clase Java, es decir con métodos y funciones pero propios de
JavaScript
Estos ficheros están organizados en directorios, que a su vez en la idea conceptual, se
podría decir que son paquetes
Colegios.js
PAQUETE MAPAS
Mapa.js
Ubicación.js
Para una mejor descripción y detalle de las clases, observar el Anexo D (Sección
Anexos)
WEB SERVICE REST
REST deriva de "REpresentational State Transfer", que traducido vendría a ser
“transferencia de representación de estado”, un servicio REST no tiene estado
(stateless), lo que quiere decir que, entre dos llamadas cualesquiera, el servicio pierde
todos sus datos. Esto es, que no se puede llamar a un servicio REST y pasarle unos
datos (p. ej. un usuario y una contraseña) y esperar que “nos recuerde” en la siguiente
petición. De ahí el nombre: el estado lo mantiene el cliente y por lo tanto es el cliente
quien debe pasar el estado en cada llamada.
REST es un estilo de arquitectura para desarrollar servicios. Los servicios web que
siguen este estilo deben cumplir con las siguientes premisas:
Cliente/Servidor: Como los servicios web son cliente servidor y definen un interface
de comunicación entre ambos separando completamente las responsabilidades entre
ambas partes.
43
Figura 21. Esquema Cliente – Servidor
(http://www.arquitecturajava.com/servicios-rest/)
Sin estado: Son servicios web que no mantienen estado asociado al cliente .Cada
petición que se realiza a ellos es completamente independiente de la siguiente. Todas
las llamadas al mismo servicio serán idénticas.
Figura 22. Servicio Web sin estado
(http://www.arquitecturajava.com/servicios-rest/)
Cache: El contenido de los servicios web REST se puede cachear de tal forma que
una vez realizada la primera petición al servicio el resto puedan apoyarse en la cache
si fuera necesario.
44
Figura 23. Caché (http://www.arquitecturajava.com/servicios-rest/)
Servicios Uniformes: Todos lo servicios REST compartirán una forma de invocación
y métodos uniforme utilizando los métodos GET, POST, PUT, DELETE
Figura 24. Servicios uniformes (http://www.arquitecturajava.com/servicios-rest/)
Arquitectura en Capas: Todos los servicios REST están orientados hacia la
escalabilidad y un cliente REST no será capaz de distinguir entre si esta realizando
una petición directamente al servidor, o se lo esta devolviendo un sistema de caches
intermedio o por ejemplo existe un balanceador que se encarga de redirigirlo a otro
servidor.
45
Figura 25. Arquitectura en Capas
(http://www.arquitecturajava.com/servicios-rest/)
Para ver el correcto funcionamiento del servicio web se procederá ha realizar algunos
test usando el IDE Netbeans
Pruebas del Servicio Web REST
Para verificar el buen funcionamiento del servicio web de la aplicación, se procederá a
realizar un importante paso dentro de la metodología XP, que es la parte
correspondiente a Pruebas.
El Web Service fue creado usando el entorno Netbeans, el test lo realizaremos con
este mismo IDE, aunque tambien se puede utilizar software específicos de Test como
SoapUI
46
Figura 26. Pantalla inicial del test del servicio web
Figura 27. Lista de Colegios en formato XML
47
Figura 28. Búsqueda de Colegio por Id
Es importante mencionar que en un servicio web REST, los datos se pueden
transportar tanto en formato JSON como en formato XML, para diferenciar ambos
formatos, puede observar el Anexo E que se muestra en la sección de Anexos
En el proyecto, el servicio web, está contenido dentro de un archivo exportable
llamado WebServiceWSJSP.war en el directorio C:/database/deployments/, si por
alguna razón el WebService no permite el acceso a los datos, se recomienda reiniciar
el servidor de aplicaciones para solucionar este inconveniente
Descripción de los marcadores
Como ya se mencionó anteriormente, en la aplicación se muestran diferentes
marcadores (algunos marcadores son propios de google maps y otros son
personalizados por el autor) para diferenciar tanto al usuario como al colegio destino
usando sus respectivas coordenadas
48
Marcadores
Imagen
Nombre
Descripción
Este marcador aparece en la pantalla
inicial de la aplicación, cada marcador
representa a un colegio de la capital
Colegio
ecuatoriana
Este marcador aparece únicamente
cuando se ha seleccionado el destino al
Colegio
que se desea llegar
Este marcador representa al usuario,
aparece en las coordenadas en donde
Usuario
se encuentre el usuario, cuando desea
trazar una determinada ruta
Tabla 29. Marcadores de la aplicación
49
4. MARCO ADMINISTRATIVO
4.1 Recursos
4.1.1 Técnicos – Tecnológicos
Para la realización del proyecto integrador denominado: SISTEMA WEB DE
UBICACIÓN GEOGRAFICA Y TRAZO DE RUTAS DE TRANSPORTE PARA LLEGAR
A LOS COLEGIOS DE QUITO y el producto final se dispuso de herramientas
tecnológicas actualizadas, las cuales son:
Hardware:

Computadora Portátil Sony Vaio con procesador: Core i5-2450M 2.50 GHz,
Memoria RAM instalada 10,00GB,

Disco Duro de 500 GB.

Disco duro externo de 1 TB para almacenamiento de respaldo (backup)

Acceso a Internet permanente.
Software para el desarrollo:
En la siguiente tabla a modo de resumen listaremos las herramientas de desarrollo de
software que se han venido mencionando en capítulos anteriores
Herramienta
Descripción
JDK
Es un kit de herramientas de desarrollo para la
creación de programas en Java
Netbeans
Es un entorno de desarrollo integrado libre para
aplicaciones de Java
Glassfish
Servidor de Aplicaciones en la máquina local
Postgresql
Sistema gestor de base de datos
Pgadmin
Administrador de la base de datos
Wildfly
Servidor de aplicaciones remoto
OpenShift
Plataforma como Servicio
Git
Software de control de versiones
RubyGem
Gestor de paquetes para Ruby
51
JSF
Frimework Java Server faces
Bootstrap
Frameworj Responsivo
JQuery
Bibliotecas de JavaScript
API Google Maps
Elementos de Google Maps para visualizar puntos de
referencia
Tabla 15. Resumen herramientas de desarrollo
4.1.2 Humano
Sergio Granizo, Egresado de la carrera de Ingeniería Informática de la Universidad
Central del Ecuador, se encargará de programar los módulos de la aplicación en Java
y de realizar las respectivas pruebas unitarias y de integración para su óptimo
funcionamiento
Msc. Mauro Rosas, Tutor del proyecto, se encargará de revisar la documentación del
proyecto, así como de verificar el óptimo funcionamiento del sistema durante todas sus
fases, desde su diseño hasta la puesta en marcha.
52
5. CONCLUSIONES
 Una aplicación basada en un sistema de georeferenciación orientada
específicamente a la búsqueda de colegios y trazo de rutas es muy útil, porque
muchos ciudadanos desconocen cuantas Instituciones educativas (Colegios e
Institutos) existen en las inmediaciones de su barrio y/o parroquia; Esto
conlleva a tomar malas decisiones y es una desventaja para padres y
estudiantes
 Con el avance del desarrollo del software y la mejora de las metodologías
ágiles ahora es posible construir aplicaciones de gran calidad, robustez y
ponerlas en un hosting estable y seguro como OpenShift RedHat, con una
mínima inversión económica, sin el riesgo que nos pueda imponer el tiempo, ya
que esta Plataforma como servicio no caduca y está al alcance del alumnado
universitario que desee desarrollar este tipo de proyectos
 El avance de la tecnología demanda que todas las aplicaciones sean de tipo
responsivo, la aplicación desarrollada cumple plenamente con este
requerimiento por lo tanto se adapta fácilmente a cualquier tipo de tamaño o
resolución de pantalla de los dispositivos sin perder su calidad visual y
maniobrabilidad
 A través del Middleware, se logró desarrollar una aplicación de tipo hibrido que
relacionó lo mejor de cada componente (Google Maps, Java, JavaScript, etc.)
para producir un producto útil y fácil de utilizar, tomando en cuenta un principio
básico de las aplicaciones modernas, ya que tienen que ser orientadas a
servicios, razón por la cual se ancló la aplicación a un servicio web de tipo
REST para que los datos sean tratados de la mejor forma posible.
 El desarrollo de la tecnología hace fundamental el uso del internet como
herramienta esencial para la solución de problemas cotidianos que
necesariamente implica la construcción de aplicaciones más allá del ámbito
local, impulsando aun más los sistemas en tiempo real y todo lo referente al
paradigma de la web 3.0
liii
 Este tipo de aplicaciones permiten cohesionar de mejor manera la educación
con la tecnología y despertar el interés de todos los agentes
implicados(Empresa Privada, Población, Ministerios y Universidades) para
mejorar el proceso de acceso a la información, selección y capacitación a la
comunidad
 Además del campo académico, la Geolocalización puede desempeñar un rol
fundamental en otras áreas como: Control de Transito Vehicular, Localización
de puntos estratégicos en caso de emergencia, Definición de Zonas de
Vulnerabilidad ya sea por la pobreza o por el nivel de delincuencia,
Posicionamiento para determinadas actividades comerciales de las empresas,
entre otras cosas
 El proyecto Sistema localizador de Colegios y Ruteo (SILCOR) esta destinado
a persistir en el tiempo, ya que su arquitectura de desarrollo está basado en el
patrón de diseño MVC(Modelo Vista Controlador), el cual simplifica y facilita
considerablemente su mantenimiento, migración y sostenimiento
 Las aplicaciones diseñadas en capas son mas fáciles de proteger porque
tienen separadas las vistas(Capa del Cliente) de tal manera que el usuario
desconoce por completo, la lógica de negocio(Capa de Negocio) y la base de
datos(Capa de Persistencia)
liv
6. RECOMENDACIONES
 Actualmente se usa un host de la plataforma OpenShift RedHat que nos
proporciona un dominio un tanto extenso y difícil de entender o memorizar, se
recomienda contratar un host pagado para tener un dominio más apropiado en
caso de que la aplicación se vuelva comercializable o a su vez sea acogida por
alguna empresa privada o alguna entidad del gobierno como el Ministerio de
Educación
 La aplicación actualmente posee un gran número de elementos integrados, se
recomienda analizar más profundamente todas las herramientas actuales que
existen de desarrollo, así como las nuevas tendencias y los paradigmas de
programación para que la aplicación sea un poco más ligera, entendible,
portable y se vaya innovando para que pueda perdurar en el tiempo
 Se recomienda continuar con el desarrollo de la aplicación tomando en cuenta
la funcionalidad de la aplicación para que el sistema pueda mejorar y
convertirse en un sistema experto que incluso pueda tomar decisiones como:
¿Qué tipo de colegio necesita el estudiante?, ¿Qué tipo de Jornada es la más
apta para el estudiante?, etc. utilizando técnicas de Minería de Datos y
Business Intelligence.
 Se recomienda ampliar el tipo de Instituciones Educativas que pueden ser
localizadas en la aplicación, se puede extender la base de conocimientos, para
que el Sistema localice Universidades, Centros de Capacitación Particulares,
Infocentros, Escuelas, Escuelas para niños especiales, etc.
 Se recomienda aumentar el alcance, pues actualmente solo se toma en cuenta
las instituciones educativas que pertenecen a la ciudad de Quito, pero se
podría incluir mas espacio geográfico, incluso abarcar toda la región continental
ecuatoriana
lv
 Se recomienda integrar el API de Google Maps con la banco de datos de la
Secretaría Nacional de Transporte del Ecuador para unificar las bases de
conocimiento y poder agregar mayor funcionalidad a la aplicación como Rutas
de los buses o de recorridos que dispone cada colegio
 Se recomienda incorporar elementos multimedia en la aplicación como: vista en
tres dimensiones, realidad aumentada o videos de las unidades educativas que
el usuario visite para que tenga una idea más clara del destino que va a
conocer
 En el caso de ir caminando, se recomienda realizar algunos criterios de
selección para predecir de mejor forma el tiempo que se va a demorar una
persona en llegar al destino, por ejemplo un atleta demorará menos tiempo en
llegar en comparación con una persona de la tercera edad, a pesar de ir por la
misma ruta
 Con el paso del tiempo indudablemente la base de datos del sistema va a
seguir creciendo, razón por la cual se recomienda crear un sistema de
replicación o de backups, para tener un respaldo, en caso que la aplicación
colapse o sufra algún daño que afecte los datos o su estructura como tal.
 Actualmente no se toman casos especiales al trazar la ruta como: Huelgas,
desfiles o algún tipo de eventos, se recomienda unificar la base de datos con la
información que provea la policía Nacional al respecto de estos contratiempos
para mejorar la eficiencia de la aplicación
 Para un mejor manejo de los datos a futuro se recomienda la elaboración de un
DataMars o un DataWareHouse para mejorar los tiempos de respuesta de la
aplicación, así como el mejoramiento y la creación de nuevas políticas en la
lógica del negocio
lvi
GLOSARIO
ANCHO DE BANDA: Medida de la cantidad de información que puede pasar por una
vía, expresada en bits/segundo (o algún múltiplo).
API: Es un conjunto de reglas (código) y especificaciones que las aplicaciones pueden
seguir para comunicarse entre ellas: sirviendo de interfaz entre programas diferentes
de la misma manera en que la interfaz de usuario facilita la interacción humanosoftware.
APLICACIÓN: Programa diseñado para una determinada función
APPLE: Primera compañía fabricante de computadoras personales y creadora de la
computadora Macintosh
ARCHIVO: Conjunto de datos relacionados.
AUTOMATIZACIÓN: Realización de una combinación específica de acciones por una
máquina, sin la ayuda de personas.
BACKUP: Copias de archivos, equipos de reemplazo o procedimientos alternativos
disponibles para ser usados en caso de emergencias producidas por fallas totales o
parciales de un sistema computacional.
BANCO DE DATOS: Colección de archivos de datos, de tipo histórico, utilizados para
consultas específicas de algún tema en particular.
BASE DE DATOS RELACIONAL: Colección de datos organizada y relacionada, para
evitar duplicaciones y permitir la obtención de datos combinados, satisfaciendo la
necesidad de usuarios con diferentes necesidades de información.
CSS: Es un lenguaje utilizado en la presentación de documentos HTML. Un
documento HTML viene siendo coloquialmente “una página web”. Entonces podemos
decir que el lenguaje CSS sirve para organizar la presentación y aspecto de una
página web
GOOGLE MAPS: Es un servidor de aplicaciones de mapas en la web que pertenece a
Alphabet Inc. Ofrece imágenes de mapas desplazables, así como fotografías por
satélite del mundo e incluso la ruta entre diferentes ubicaciones o imágenes a pie de
calle con Google Street View
lvii
GIS. Es un conjunto de herramientas para unir, almacenar y presentar datos
espaciales sobre el mundo que nos rodea.
HTML es el lenguaje que se emplea para el desarrollo de páginas de internet. Está
compuesto por una seríe de etiquetas que el navegador interpreta y da forma en la
pantalla
MARCADOR. Es un icono o imagen que sirve para mostrar al usuario puntos de
interés en un mapa de Google Maps
MVC: Modelo Vista Controlador (MVC) es un estilo de arquitectura de software que
separa los datos de una aplicación, la interfaz de usuario, y la lógica de control en tres
componentes distintos.
PC: Computador personal de escritorio
WORKFLOW: Flujo de trabajo
lviii
7. BIBLIOGRAFIA
1. RUEDA, Francisco; QUINTERO, Alejandro; RUEDA, Julieta; LEON, Mauricio,
(1995), Metodología para el desarrollo de aplicaciones Cliente-Servidor, descargado
del internet el 12 de enero de 2016
2. GRANELL, Carlos, (2013), Future trends in geospatial information management,
descargado del internet el 16 de enero del 2016
3. AVILA, Clara, (2012), Foursquare para empresas, descargado el 10 de noviembre
del 2015
4. BELTRAN, Gerson, (2012), Geolocalización y redes sociales: un mundo social, local
y móvil, descargado el 10 de noviembre de 2015
5. AMAYA, Daniel, (2013), Metodologías ágiles en el desarrollo de aplicaciones para
dispositivos móviles, descargado el 10 de noviembre de 2015
6. http://datos.gob.es/content/herramientas-de-procesado-visualizacion-de-datos,
descargado el 16 de enero del 2016
7. https://desocultar.files.wordpress.com/2010/04/google-geolocalizacion-decontenidos-maps-y-earth.pdf, descargado el 20 de enero del 2016
53
ANEXOS
54
ANEXO A
Artículo: La importancia de la Geolocalización en tu negocio
La Geolocalización es mucho más que una moda. Las grandes empresas,
como Google, Facebook o Groupon, ya han apostado por ella. Y qué no decir
de Foursquare…
En esta época que nos ha tocado vivir, parece que queremos que todo el mundo
sepa lo que hacemos, adónde vamos y con qué frecuencia lo hacemos (dichosas
redes sociales). Más allá de este eterno debate, lo cierto es que es posible que las
empresas utilicen los servicios de la geolocalización para obtener pingües
beneficios.
Todos tenemos que estar de acuerdo en que la geolocalización influye cada vez más
en las decisiones de compra del usuario, tanto en el qué comprar como en el dónde
hacerlo…
Tomado de http://www.contunegocio.es/
ANEXO B
Articulo: Evolución de la Geolocalización y el GPS
Gestión de flotas, recursos humanos, servicios de seguridad... Las aplicaciones
que la geolocalización tiene en las empresas son cada vez más numerosas. Y es que
este sistema hace que todo se vea, que todo se sepa, que todo se controle. Bueno,
quizás la afirmación suene un poco exagerada e, incluso, recuerde a la obra 1984, de
George Orwell. Pero, hasta cierto punto, ésta es la esencia de la geolocalización, una
tecnología que permite ubicar, según coordenadas espaciales, a una persona u objeto
mediante un dispositivo. La definición es de Juan Miguel Gómez, profesor de la EAE
Business School y de la Universidad Carlos III de Madrid.
55
Las herramientas claves son el GPS, que determina la posición de un elemento a
través de satélites, y el RFID, que trabaja con radiofrecuencia. “Se podría decir que
estos dos componentes son el hardware de la tecnología”…
El software, mientras, estaría constituido por los planos y mapas sobre los que se
realizan las identificaciones; mapas suministrados por servicios como Google Maps o
Mapquest, “este último muy empleado en Estados Unidos, pero poco en Europa”.
Recientemente, Apple adquirió la compañía de mapas Placebase, lo que da una idea
de la relevancia de este instrumento…
Tomado de http://www.emprendedores.es/
ANEXO C
Noticia: El catedrático de Historia de la Arquitectura y la Tecnología de la
Universidad de Harvard Antoine Picon, presidente de la Fundación Le Corbusier
de París opina: “
La creciente importancia del espacio en relación a los desarrollos tecnológicos como la
Geolocalización y la realidad aumentada explica el papel estratégico de los mapas en
la evolución de la experiencia urbana” (15 de diciembre 2015)
Figura 30. Antoine Picon
Tomado de: http://www.20minutos.es/noticia/2626270/0/presidente-fundacion-lecorbusier-disertara-segovia-sobre-auge-ciudades-inteligentes/#xtor=AD15&xts=467263
56
ANEXO D
PAQUETE CONEXIÓN
Clase Conexión
Descripción: esta clase permite conectarse con el gestor de base de datos a través de
un componente jdbc, en esta clase, se crea una conexión que permite extraer los
datos de los colegios para posteriormente ser tratados en los objetos que manejan la
lógica de Negocio
Conexión
Atributos
Private LinkedList<Colegio> listar_tag;
Private Colegio tag_html;
Private Statement st;
Private ResultSet rs;
Métodos
Public getListar_tag;
Public setListar_tag(LinkedList<Colegio> colegios);
Public getTag_html;
Public setTag_html(Colegio colegio);
Public getListar_tag;
Public setListar_tag(Colegio colegio);
Public getSt;
Public setSt(Statement st);
Public getRs;
Public setRs(Result Rs);
Tabla 16. Clase Conexión
Clase Colegio
Descripción: Esta clase es una entidad que sirve para mapear los objetos java con las
tablas y campos de la base de datos, para ello se crea un atributo de tipo privado por
cada campo que maneja la tabla
Colegio
Atributos
private Integer id;
private String provincia;
private String canton;
private String parroquia;
private String nombreInstitucion;
private String codigoInstitucion;
private String direccion;
private String latitud;
private String longuitud;
private String representanteInstitucion;
private String telefonos;
57
private String sostenimiento;
private String regimenEscolar;
private String jornada;
private String modalidad;
private String nivelEducacion;
private String especialidadBachillerato;
private String tipoEducacion;
private Integer basico;
private Integer diversificado;
Métodos
public Integer getId() ;
public void setId(Integer id) ;
public String getProvincia();
public void setProvincia(String provincial);
public String getCanton() ;
public void setCanton(String canton) ;
public String getParroquia() ;
public void setParroquia(String parroquia) ;
public String getNombreInstitucion() ;
public void setNombreInstitucion(String nombreInstitucion) ;
public String getCodigoInstitucion() ;
public void setCodigoInstitucion(String codigoInstitucion) ;
public String getDireccion() ;
public void setDireccion(String direccion) ;
public String getLatitud() ;
public void setLatitud(String latitud) ;
public String getLonguitud() ;
public void setLonguitud(String longuitud) ;
public String getRepresentanteInstitucion() ;
public void setRepresentanteInstitucion(String representanteInstitucion) ;
public String getTelefonos() ;
public void setTelefonos(String telefonos) ;
public String getSostenimiento() ;
public void setSostenimiento(String sostenimiento) ;
public String getRegimenEscolar() ;
public void setRegimenEscolar(String regimenEscolar) ;
public String getJornada() ;
public void setJornada(String jornada) ;
public String getModalidad() ;
public void setModalidad(String modalidad) ;
public String getNivelEducacion() ;
public void setNivelEducacion(String nivelEducacion) ;
public String getEspecialidadBachillerato() ;
public void setEspecialidadBachillerato(String especialidadBachillerato) ;
public String getTipoEducacion() ;
public void setTipoEducacion(String tipoEducacion) ;
public Integer getBasico() ;
public void setBasico(Integer basico);
public Integer getDiversificado() ;
public void setDiversificado(Integer diversificado);
Tabla 17. Clase Colegio
58
Clase ColegioController
Descripción: esta clase permite Controlar los elementos de la clase colegio, permite
separar los datos, de la funcionalidad de la aplicación, para tener mayor control sobre
la aplicación y poder realizar auditorías de seguridad y mantenimiento de una forma
más rápida y sencilla
ColegioController
Atributos
private Colegio colegio;
private List<Colegio> colegios;
Métodos
public Colegio getColegio() ;
public void setColegio(Colegio colegio) ;
public List<Colegio> getColegios() ;
public void setColegios(List<Colegio> colegios);
public ColegioController();
Tabla 18. Clase ColegioController
Colegios.js
Descripción: Este archivo permite conectarse con el gestor de base de datos a través
de un servicio web tipo REST, en esta clase, se crea una conexión que permite extraer
los datos de los colegios a través de un URL para posteriormente ser tratados,
lanzados o mostrados en la interface de la aplicación por medio de páginas tipo
facelets
Colegios.js
Atributos
Var request;
Var colegio;
Métodos
Function llenar();
Function llenarC(colegio)
Tabla 19. Colegios.js
mapa.js
Descripción: Este archivo permite desplegar el mapa inicial con una latitud y longuitud
establecidas por default cuando la aplicación se ejecuta, además coloca marcadores
59
propios del Api de Google Maps en dicho mapa tomando como referencia la latitud y
Longuitud de todos los colegios de la capital, y cuando se pulsa sobre algún marcador
se despliega un cuadro de diálogo para mostrar sus datos relevantes
mapa.js
Atributos
var myLatlng;
var map;
var request;
Métodos
Function initMap();
Function mostrarColegios(colegios)
Tabla 20. mapa.js
ubicacion.js
Descripción: Este archivo permite tomar los datos del controlador y de los scripts
anteriores para trazar la ruta entre el usuario y el destino, inicialmente se registrara la
ubicación del usuario para trazar el origen de la trayectoria
ubicacion.js
Atributos
var gMapa;
var gCoder;
var gLatLon;
var ds = new google.maps.DirectionsService();
var dr = new google.maps.DirectionsRenderer();
var markerColegio = new google.maps.Marker();
var combo1;
Métodos
function getMapa();
function initM();
function fn_mal();
function fn_ok(rta);
function capturarTrazar();
function trazarRuta();
function fnRutear(resultados, status);
Tabla 21. Ubicación.js
60
ANEXO E
Colegio ALANGASI en formato XML
<basico>571</basico>
<canton>QUITO</canton>
<codigoInstitucion>17H01448</codigoInstitucion>
<direccion> ABDON CALDERON OE1-144 Y ELOY ALFARO</direccion>
<diversificado>419</diversificado>
<especialidadBachillerato>Area de Comercio y Administracion, Area Tecnico
Industrial,Ciencias,Unificado</especialidadBachillerato>
<id>5</id>
<jornada>Matutina</jornada>
<latitud>-0.306333</latitud>
<longuitud>-78.416389</longuitud>
<modalidad>Presencial</modalidad>
<nivelEducacion>EGB y Bachillerato</nivelEducacion>
<nombreInstitucion>ALANGASI</nombreInstitucion>
<parroquia>ALANGASI</parroquia>
<provincia>PICHINCHA</provincia>
<regimenEscolar>Sierra</regimenEscolar>
<representanteInstitucion>DIAZ TIPAN CARLOS HUMBERTO</representanteInstitucion>
<sostenimiento>Fiscal</sostenimiento>
<telefonos>022788105 022787414 022787322</telefonos>
<tipoEducacion>NO DISPONE</tipoEducacion>
Colegio ALANGASI en formato JSON
{"basico":571,"canton":"QUITO","codigoInstitucion":"17H01448","direccion":" ABDON CALDERON OE1-144 Y
ELOY ALFARO","diversificado":419,"especialidadBachillerato":"Area de Comercio y Administracion, Area
Tecnico Industrial,Ciencias,Unificado","id":5,"jornada":"Matutina","latitud":"-0.306333","longuitud":"78.416389","modalidad":"Presencial","nivelEducacion":"EGB y
Bachillerato","nombreInstitucion":"ALANGASI","parroquia":"ALANGASI","provincia":"PICHINCHA","regimenEscol
ar":"Sierra","representanteInstitucion":"DIAZ TIPAN CARLOS
HUMBERTO","sostenimiento":"Fiscal","telefonos":"022788105 022787414 022787322","tipoEducacion":"NO
DISPONE"}
61
ANEXO F
Guía Rápida del Usuario
Para facilitar el uso de la aplicación, se ha generado una guía rápida de usuario con la
finalidad de que las personas que quieran usar el software puedan hacerlo muy
rápidamente
1. Ingresar al link de la aplicación:
http://databasegeolocalizacion.rhcloud.com/EjemploWildfl
y
Se nos desplegará la pantalla de
ingreso
Figura 31. Pantalla de Inicio
62
2. Colocar el usuario y la contraseña
para ingresar a la aplicación
Hay que mencionar que por
motivos netamente académicos el
usuario y la contraseña son Admin
Figura 32. Pantalla de Inicio con
credenciales
63
3. Al ingresar al sistema, se
desplegará esta pantalla, todos
los colegios e institutos que están
registrados en el Ministerio de
Educación están representados
por marcadores de color rojo
Figura 33. Marcadores
64
4. Si pulsamos sobre algún
marcador, se nos desplegará la
información relevante, como se
muestra en la pantalla
Figura 34. Datos de un colegio
65
5. Al presionar en el botón Trazar
Ruta, se nos aparecerá una
pantalla con nuestra ubicación
actual y un combo con la lista
de todos los colegios de Quito
que constan en el banco de
Datos del Ministerio de
Educación
Figura 35. Combo
66
6. En el combo que aparece en la
aplicación, se puede
seleccionar el colegio que
desea o buscar el colegio
escribiendo el nombre de la
Institución
Figura 36. Búsqueda de colegios
67
7. Luego de haber elegido el
colegio que vamos a rutear(en
el ejemplo se escogió al
colegio ALBERT EINSTEIN)
pulsamos en el botón IR, y
automáticamente nos trazará la
ruta, y nos mostrará la
distancia y el tiempo
aproximado que se demorará
el usuario en llegar a la
institución, en este caso 47.7
km y 1 hora respectivamente
Figura 37. Trazo de Rutas
68
8. Luego que se ha trazado la ruta y
se desea conocer la información
del colegio, debemos pulsar sobre
el marcador que identifica al
colegio
y se nos
desplegará la información de la
institución, de manera similar a lo
que observamos en la captura de
la pantalla
Figura 38. Información de un colegio
69
Descargar