AUTOR: Marco Vinicio García Yunga...ii DERECHOS DE AUTOR Yo, MARCO VINICIO GARCÍA YUNGA, en...
Transcript of AUTOR: Marco Vinicio García Yunga...ii DERECHOS DE AUTOR Yo, MARCO VINICIO GARCÍA YUNGA, en...
UNIVERSIDAD CENTRAL DEL ECUADOR
FACULTAD DE INGENIERÍA, CIENCIAS FÍSICAS Y MATEMÁTICA
CARRERA DE INGENIERÍA INFORMÁTICA
Desarrollo de una aplicación móvil, para implementar el uso de vehículo compartido en
la Facultad de Ingeniería, Ciencias Físicas y Matemática
Trabajo de titulación modalidad Proyecto Integrador,
Previo a la obtención del título de Ingeniero Informático
AUTOR: Marco Vinicio García Yunga
TUTOR: Ing. Milton Giovanny Moncayo Unda
Quito, 2018
ii
DERECHOS DE AUTOR
Yo, MARCO VINICIO GARCÍA YUNGA, en calidad de autor y titular de los derechos
morales y patrimoniales del trabajo de titulación “DESARROLLO DE UNA
APLICACIÓN MÓVIL, PARA IMPLEMENTAR EL USO DE VEHÍCULO
COMPARTIDO EN LA FACULTAD DE INGENIERÍA, CIENCIAS FÍSICAS Y
MATEMÁTICA”, de modalidad PROYECTO INTEGRADOR, de conformidad con el
Art. 114 del CÓDIGO ORGÁNICO DE LA ECONOMÍA SOCIAL DE LOS
CONOCIMIENTOS, CREATIVIDAD E INNOVACIÓN, concedemos a favor de la
Universidad Central del Ecuador una licencia gratuita, intransferible y no exclusiva para
el uso no comercial de la obra, con fines estrictamente académicos. Conservamos a mi
favor todos los derechos de autor sobre mi obra, establecidos en la normativa citada.
Así mismo, autorizo a la Universidad Central del Ecuador para que realice la
digitalización y publicación de este trabajo de titulación en el repositorio virtual, de
conformidad a lo dispuesto en el Art, 144 de la Ley Orgánica de Educación Superior.
El autor declara que la obra objeto de la presente autorización es original en su forma de
expresión y no infringe el derecho de autor de terceros, asumiendo la responsabilidad por
cualquier reclamación que pudiera presentarse por esta causa y liberando a la Universidad
de toda responsabilidad.
En la ciudad de Quito a los 23 días del mes de noviembre del año 2018.
_______________________________
MARCO VINICIO GARCÍA YUNGA
C.I.: 1722508593
iii
APROBACIÓN DEL TUTOR
En mi calidad de Tutor del Trabajo de Titulación, presentado por MARCO VINICIO
GARCÍA YUNGA, para optar por el Grado de Ingeniero Informático; cuyo título es:
DESARROLLO DE UNA APLICACIÓN MÓVIL, PARA IMPLEMENTAR EL
USO DE VEHÍCULO COMPARTIDO EN LA FACULTAD DE INGENIERÍA,
CIENCIAS FÍSICAS Y MATEMÁTICA, considero que dicho trabajo reúne los
requisitos y méritos suficientes para ser sometido a la presentación pública y evaluación
por parte del tribunal examinador que se designe.
En la ciudad de Quito a los 23 días del mes de noviembre del año 2018.
_______________________
Ing. Milton Giovanny Moncayo Unda
DOCENTE-TUTOR
C.C. 171893338-3
iv
DEDICATORIA
A mis Padres, mi familia y amigos más cercanos.
v
AGRADECIMIENTOS
Deseo expresar mi eterno agradecimiento a mis Padres, quienes siempre estuvieron para
apoyarme a lo largo de toda mi carrera universitaria, y a toda mi familia que siempre
confió en mí y me alentaban para seguir adelante con mis sueños.
Extiendo mis más sinceros sentimientos de agradecimiento al Ing. Giovanny Moncayo,
tutor de mi trabajo de titulación, quien siempre estuvo pendiente de los avances que
realizaba en el desarrollo de la aplicación.
Un agradecimiento especial al Ingeniero David Arruelas, gran compañero a lo largo de
toda mi carrera universitaria e incluso después de esta, quien, sin sus consejos, enseñanzas
y tutorías no habría sido posible la culminación de mi trabajo de titulación.
A mis compañeros de la carrera de Ingeniería Informática, con quienes vivimos y
compartimos buenos momentos, con los cuales formé más que solo una amistad,
formamos una hermandad que espero perdure y sobreviva al paso de los años.
Finalmente agradeceré a todos los ingenieros docentes de la Facultad de Ingeniería de la
Universidad Central del Ecuador, por el conocimiento y experiencias compartidas a mi
persona.
vi
CONTENIDO
Pág.
DERECHOS DE AUTOR ............................................................................................................. ii
APROBACIÓN DEL TUTOR ..................................................................................................... iii
DEDICATORIA ...........................................................................................................................iv
AGRADECIMIENTOS ................................................................................................................ v
LISTA DE FIGURAS ................................................................................................................... ix
LISTA DE TABLAS ..................................................................................................................... xi
RESUMEN ................................................................................................................................... xii
ABSTRACT ................................................................................................................................ xiii
INTRODUCCIÓN ........................................................................................................................ 1
1. ANÁLISIS DEL PROBLEMA ............................................................................................. 3
1.1 Antecedentes ................................................................................................................. 3
1.2 Planteamiento del Problema .......................................................................................... 3
1.3 Definición del Problema ................................................................................................ 7
1.4 Objetivos ....................................................................................................................... 8
1.4.1 Objetivo General ................................................................................................... 8
1.4.2 Objetivos Específicos ........................................................................................... 8
1.5 Justificación ................................................................................................................... 8
1.6 Alcance del proyecto .................................................................................................... 9
1.7 Limitaciones del proyecto ........................................................................................... 10
2. MARCO TEÓRICO ............................................................................................................ 12
2.1 Marco Conceptual ....................................................................................................... 12
2.1.1 Vehículo Compartido .......................................................................................... 12
2.1.2 Dispositivo Móvil ................................................................................................ 13
2.1.3 Aplicación Móvil ................................................................................................. 13
2.1.3.1 Aplicaciones Nativas ....................................................................................... 14
2.1.3.2 Aplicaciones Web Nativas (Híbridas) ............................................................. 14
2.2 Marco Técnico – Herramientas de Desarrollo ............................................................ 15
2.2.1 Android ............................................................................................................... 16
2.2.2 Arquitectura Android .......................................................................................... 17
vii
2.2.3 Apache Cordova .................................................................................................. 19
2.2.4 NODE.JS ............................................................................................................. 20
2.2.5 Android SDK...................................................................................................... 20
2.2.5 HTML – HTML5 ............................................................................................... 21
2.2.6 CSS ..................................................................................................................... 22
2.2.7 JavaScript ............................................................................................................ 23
2.2.8 JQuery ................................................................................................................. 25
2.2.9 JQuery Mobile ..................................................................................................... 28
2.2.10 Google Maps API - GMaps ................................................................................. 30
2.2.10.1 GMaps ............................................................................................................... 30
2.2.11 PHP .................................................................................................................... 31
2.2.12 MySQL ............................................................................................................... 33
3. METODOLOGÍA ............................................................................................................... 37
3.1 Metodología Extreme Programming (XP) .................................................................. 37
3.1.1 Historias de Usuario ............................................................................................ 38
3.1.2 Roles XP .............................................................................................................. 39
3.1.3 Proceso XP .......................................................................................................... 40
3.1.4 Prácticas XP ........................................................................................................ 43
Justificación ............................................................................................................................. 45
4. DESARROLLO DEL PROYECTO .................................................................................... 46
4.1 Requerimientos Funcionales ....................................................................................... 46
4.1.1 Actores ................................................................................................................ 46
1. Conductor ................................................................................................................ 46
2. Pasajero ................................................................................................................... 47
4.1.2 Historias de Usuario ............................................................................................ 47
4.1.3 Casos de Uso ....................................................................................................... 48
4.1.4 Descripción de los casos de uso .......................................................................... 49
4.2 Requerimientos No Funcionales ................................................................................. 56
4.3 Diseño de la Base de Datos ......................................................................................... 56
4.4 Arquitectura Física de la Aplicación Móvil ................................................................ 57
4.5 Arquitectura Lógica de la Aplicación Móvil ............................................................... 58
4.5.1 Capa de Presentación .......................................................................................... 58
4.5.2 Capa de Lógica del Negocio ............................................................................... 59
viii
4.5.3 Capa de Almacenamiento .................................................................................... 59
4.6 Fases del desarrollo de la Aplicación Móvil ............................................................... 59
4.6.1 Exploración y Planificación ................................................................................ 59
4.6.2 Diseño ................................................................................................................. 60
4.6.3 Programación basada en Iteraciones ................................................................... 61
4.6.4 Implementación y Producción ............................................................................. 61
4.7 Puesta en Producción .................................................................................................. 62
5. CONCLUSIONES .............................................................................................................. 64
6. RECOMENDACIONES ..................................................................................................... 65
BIBLIOGRAFÍA ......................................................................................................................... 67
ANEXOS..................................................................................................................................... 71
ANEXO A ................................................................................................................................... 72
ANEXO B ................................................................................................................................... 88
ANEXO C ................................................................................................................................... 92
ix
LISTA DE FIGURAS
Figura 1. Porcentaje de la muestra que posee vehículo (Aneloa Chipantasi & Cerda
Tanguila, 2016) ................................................................................................................. 5
Figura 2. Frecuencia de uso del vehículo (Aneloa Chipantasi & Cerda Tanguila, 2016) 5
Figura 3. Número de pasajeros por vehículo (Aneloa Chipantasi & Cerda Tanguila,
2016) ................................................................................................................................. 5
Figura 4. Uso de una misma ruta (Aneloa Chipantasi & Cerda Tanguila, 2016) ............. 6
Figura 5. Intención para llevar a un integrante de la UCE en el vehículo (Aneloa
Chipantasi & Cerda Tanguila, 2016) ................................................................................ 6
Figura 6. Intención de viajar en el auto de otro integrante de la UCE (Aneloa Chipantasi
& Cerda Tanguila, 2016) .................................................................................................. 6
Figura 7. Intención de participar en la iniciativa de vehículo compartido (Aneloa
Chipantasi & Cerda Tanguila, 2016) ................................................................................ 7
Figura 8. Sistemas operativos más usados en el mundo
(https://elpais.com/tecnologia/2017/04/04/actualidad/1491296467_396232.html) ....... 16
Figura 9. Arquitectura de Android (Martínez, 2011) ..................................................... 17
Figura 10. Representación de un árbol de objetos (DOM). (McFarlin, 2016) ............... 26
Figura 11. Resultado del uso de la librería GMaps (García , 2018) ............................... 31
Figura 13. Funcionamiento del lenguaje PHP. (Álvarez A. M., 2001) .......................... 32
Figura 14. Motores de almacenamiento de MySQL. (UNIOJEDA, 2011) .................... 35
Figura 15. Evolución de los largos ciclos de desarrollo en cascada (a) a ciclos iterativos
más cortos (b) y a lo realizado en XP. (Acebal, 2002) ................................................... 41
Figura 16. Las prácticas se refuerzan entre sí. (Letelier & Penadés, 2006) ................... 44
Figura 17. Diagrama de casos de uso (Realización propia) ........................................... 49
Figura 18. Diagrama del caso de uso Registrarse (Realización propia) ......................... 50
Figura 19. Diagrama del caso de uso Iniciar Sesión (Realización propia) ..................... 51
Figura 20. Diagrama del caso de uso Iniciar Registrar Vehículo (Realización propia) . 51
Figura 21. Diagrama del caso de uso Crear Ruta (Realización propia) ......................... 52
x
Figura 22. Diagrama del caso de uso Cancelar Ruta (Realización propia) .................... 53
Figura 23. Diagrama del caso de uso Buscar Ruta (Realización propia) ....................... 53
Figura 24. Diagrama del caso de uso Escoger y Reservar Ruta (Realización propia) ... 54
Figura 25. Diagrama del caso de uso Cancelar la reserva en una ruta (Realización
propia) ............................................................................................................................. 54
Figura 26. Diagrama del caso de uso Calificar Servicio (Realización propia)............... 55
Figura 27. Diagrama del modelo entidad-relación de la Base de Datos de la App
(Realización propia) ....................................................................................................... 57
Figura 28. Arquitectura física de la aplicación móvil (Realización propia) ................... 58
Figura 29. Página de descarga de la aplicación móvil (Realización propia) .................. 62
Figura 30. Versión final de la aplicación móvil (Realización propia)............................ 63
xi
LISTA DE TABLAS
Tabla 1 .Población de la Facultada (Aneloa Chipantasi & Cerda Tanguila, 2016) .......... 4
Tabla 2. Ventajas y desventajas de una aplicación móvil nativa
(https://www.lancetalent.com/blog/tipos-de-aplicaciones-moviles-ventajas-
inconvenientes/) .............................................................................................................. 14
Tabla 3. Ventajas y desventajas de una aplicación móvil híbrida
(https://www.lancetalent.com/blog/tipos-de-aplicaciones-moviles-ventajas-
inconvenientes/) .............................................................................................................. 15
Tabla 4. Cuadro comparativo ventajas y desventajas de Android (Rodríguez, 2014) ... 17
Tabla 5. Modelo de una plantilla de Historia de Usuario usada en la metodología XP
(Realización propia) ....................................................................................................... 38
Tabla 6. Resumen de las historias de usuario definidas para el aplicativo. (Realización
Propia)) ........................................................................................................................... 48
xii
TÍTULO: Desarrollo de una aplicación móvil para implementar el uso de Vehículo
Compartido en la Facultad de Ingeniería, Ciencias Físicas y Matemáticas.
Autor: Marco Vinicio García Yunga
Tutor: Ing. Milton Giovanny Moncayo Unda
RESUMEN
El término y la práctica del Vehículo Compartido ha sido un éxito desde hace varios años
a nivel mundial. No solo por la sencillez que conlleva la idea, sino que es el resultado de
usar el sentido común en una sociedad que poco a poco va aceptando la idea de una
economía colaborativa. Es así como en este Trabajo de Fin de Grado se ha propuesto
como objetivo el crear, desarrollar e implementar una aplicación móvil que permita a la
comunidad universitaria de la Facultad de Ingeniería de la Universidad Central del
Ecuador, ofertar el servicio de vehículo compartido. Esta aplicación móvil permitirá a un
individuo perteneciente a la comunidad universitaria, ejercer cualquiera de los dos roles
principales definidos en el servicio de vehículo compartido: ser conductor o pasajero, es
decir, ser la persona que pone a disposición su vehículo para el servicio o el interesado en
reservar una vacante en este. De esta manera se pretende lograr una mejor y eficiente
movilidad de la comunidad universitaria y una mayor integración y solidaridad entre los
individuos que pertenecen a esta, así como también la optimización de recursos y un
modelo de transporte, como ya se mencionó, más eficiente y seguro.
PALABRAS CLAVE: VEHÍCULO COMPARTIDO / COMUNIDAD
UNIVERSITARIA / APLICACIÓN MÓVIL
xiii
TITLE: Development of a mobile application to implement the use of vehicle shared in
the Faculty of engineering, physical sciences and mathematics
Author: Marco Vinicio García Yunga
Tutor: Ing. Milton Giovanny Moncayo Unda
ABSTRACT
Shared Vehicle, term and practice has been a success for several years worldwide. Not
only for the simplicity of the idea, it is the result of using common sense in a society that
is slowly accepting the idea of a collaborative economy. For this reason, in this Project,
the objective has been to create, develop and implement a mobile application that allows
the university community of the Engineering Faculty of the Central University of Ecuador
to offer the shared vehicle service. This mobile application will allow an individual of the
university community to take any of the two main roles defined in the shared vehicle
service: be a driver or passenger, it means, be the person who makes available your
vehicle for the service or interested in reserving a vacancy in this service. In this way, it
is intended to achieve a better and efficient mobility of the university community and
greater integration and solidarity among the individuals that belong to it, as well as the
optimization of resources and a transport model, as already mentioned, more efficient and
safer.
KEYWORDS: SHARED VEHICLE / UNIVERSITY COMMUNITY / MOBILE
APPLICATION
1
INTRODUCCIÓN
El término Carpooling, que en nuestro idioma representa la idea del Vehículo
Compartido, ha sido un éxito ya desde hace varios años a nivel global. No solo por la
sencillez que conlleva la idea, sino que es el resultado de usar el sentido común en una
sociedad que poco a poco va aceptando la idea de una economía colaborativa. Esto no
significa que la práctica del auto compartido recién esté tomando fuerza a nivel mundial,
al contrario, esta ha existido hace décadas, si no que gracias a la tecnología y a la facilidad
de comunicación con la que contamos ahora esta se ha modernizado y mejorado
exponencialmente.
Varias décadas atrás no podíamos conocer si una persona estaba dispuesta a brindar un
servicio de transporte en su propio vehículo o la ruta que este tomaría para realizar un
viaje que coincidiera con las necesidades de sus iguales en la sociedad. Se podría decir
que el auto compartido era una actividad netamente ligada al azar, donde se debían dar
varias circunstancias para que dos o más personas que tengan un mismo destino, se
encuentren y estén dispuestos a compartir gastos y beneficios de un viaje.
Ahora, como lo mencionamos antes, gracias a la tecnología y la facilidad que tenemos
para comunicarnos unos con otros, la práctica de vehículo compartido está a la
disposición de cualquier persona con solo dar un clic. Se han creado aplicaciones que
facilitan y dan seguridad a la práctica de esta actividad y gracias a estas tanto empresas,
como centros de estudios y comunidades impulsan y recompensan la práctica de esta.
Es conocido, como estudiante de la Universidad Central del Ecuador, que transportarse
desde o hacia el campus universitario conlleva muchas situaciones de incomodidad e
inseguridad en varios niveles. El escenario que se nos presenta se presta para implementar
una solución al problema en donde existe un gran contraste entre una parte de la
comunidad universitaria que están expuestos a sufrir algún percance debido a los horarios
de salida o a no poderse movilizar por falta de recursos económicos, con la otra parte de
la comunidad universitaria que posee un vehículo propio y viaja solo en el mismo. Pues
bien, si esta actividad (vehículo compartido o carpooling) ha tenido tanto éxito en Europa
y EE. UU., porque no aplicarla, potenciarla y modernizarla en nuestra propia universidad.
2
Es aquí donde nace la necesidad de dar a conocer y fomentar la práctica del vehículo
compartido por medio de una aplicación móvil para la Universidad Central del Ecuador,
donde los integrantes de la comunidad universitaria (Docentes, Empleados y Personal
Administrativo y de Servicios) que estén dispuestas a brindar este servicio les resulte más
fácil darlo a conocer, así como a las personas que les beneficiaría este servicio, se les
facilite enterarse del mismo.
3
1. ANÁLISIS DEL PROBLEMA
1.1 Antecedentes
Estudios previos han analizado los problemas que enfrenta el actual modelo de movilidad
vehicular desde y hacia el campus de la Universidad Central del Ecuador basándose para
ello en datos estadísticos y aportaciones teóricas recientes donde se expone algunos de
los principios que deben de regir en un modelo de movilidad sostenible, uno de los
grandes retos para las ciudades del siglo XXI. (Aneloa Chipantasi & Cerda Tanguila,
2016)
1.2 Planteamiento del Problema
La Universidad Central del Ecuador ubicada en el centro del Distrito Metropolitano de
Quito se compone aproximadamente de 37000 estudiantes, 2200 profesores y 1500
administrativos Según datos de la dirección general administrativa, de acuerdo con el
registro de las tarjetas magnéticas que se utilizan para ingresar con vehículo a los predios
universitarios, existen registrados alrededor de 2000 vehículos. (Aneloa Chipantasi &
Cerda Tanguila, 2016). Con estos datos se puede inferir que la gran mayoría de
integrantes de la comunidad universitaria usa el sistema de transporte público para llegar
y salir de los predios, con los conocidos problemas de tráfico, seguridad y poco confort
que existen en la ciudad de Quito.
El desarrollo de las TIC ha facilitado el aparecimiento de nuevos modelos de transporte
a nivel mundial y local, tales como Uber, Cabify, BlaBlaCar, SocialCar, etc. los mismos
que basan su funcionamiento en que cualquier persona con auto puede publicar sus
asientos libres en la web o aplicaciones móviles, especificando en su anuncio el trayecto
y el precio por cada plaza y tramo. Con la reserva online, los pasajeros interesados en el
viaje pueden contactar con los conductores a través del sistema de mensajería pública o
4
de una aplicación. Si deciden viajar juntos, el pasajero realiza la reserva y paga online el
precio estipulado para la plaza contratada.
Partiendo de este último modelo se propone diseñar una plataforma informática sobre la
cual se implementará un modelo de transporte sostenible, inicialmente gratuito, el mismo
que será usado inicialmente por miembros de la Facultad de Ingeniería, Ciencias Físicas
y Matemática, con el objetivo de mejorar la movilidad de la comunidad universitaria
cuando esta sale de sus instalaciones fomentando la solidaridad con las personas que más
necesitan, así como también la integración social.
Con el fin de evaluar la acogida que tendrá el modelo de transporte con estas
características, se realizó una encuesta a una muestra representativa de la Facultad de
Ingeniería, Ciencias Físicas y Matemáticas de la Universidad Central del Ecuador en el
año 2016. (Aneloa Chipantasi & Cerda Tanguila, 2016).
Recuperaremos algunos de los datos obtenidos en dicha encuesta para analizar la
aceptación que esta propuesta obtuvo entre el personal de la Facultad de Ingeniería.
Tabla 1 .Población de la Facultada (Aneloa Chipantasi & Cerda Tanguila, 2016)
El tamaño de la muestra fue de 125 personas (56.8% son Masculino y el 43.2% son
femenino.)
De 125 encuestados 18.4% tiene o usa un vehículo privado para llegar y salir del campus
universitario.
5
Figura 1. Porcentaje de la muestra que posee vehículo (Aneloa Chipantasi &
Cerda Tanguila, 2016)
Del porcentaje que posee un vehículo, el 56.5% del mismo usa al menos 3 veces a la
semana su vehículo para movilizarse de la universidad a su domicilio y viceversa.
Figura 2. Frecuencia de uso del vehículo (Aneloa Chipantasi & Cerda Tanguila,
2016)
Del porcentaje que posee un vehículo, el 64% viaja solo o con un pasajero y el resto lleva
más de un pasajero.
Figura 3. Número de pasajeros por vehículo (Aneloa Chipantasi & Cerda
Tanguila, 2016)
Del porcentaje que posee un vehículo, el 82.6% usa frecuentemente la misma ruta para
llegar y salir de la universidad.
6
Figura 4. Uso de una misma ruta (Aneloa Chipantasi & Cerda Tanguila, 2016)
Del porcentaje que posee un vehículo, el 91.3% están dispuestos a llevar a un integrante
de la UCE en su vehículo.
Figura 5. Intención para llevar a un integrante de la UCE en el vehículo (Aneloa
Chipantasi & Cerda Tanguila, 2016)
Del total de encuestados, el 78.3%, está dispuesto a viajar en el vehículo de otra persona
que tenga un mismo destino o cercano a este.
Figura 6. Intención de viajar en el auto de otro integrante de la UCE (Aneloa
Chipantasi & Cerda Tanguila, 2016)
7
Del total de encuestados, el 92% está de acuerdo con la iniciativa de vehículo compartido
para la comunidad universitaria.
Figura 7. Intención de participar en la iniciativa de vehículo compartido (Aneloa
Chipantasi & Cerda Tanguila, 2016)
Tomando como base los resultados analizados en esta encuesta, se puede concluir que
existe el interés en la comunidad universitaria, para el desarrollo de una aplicación de
vehículo compartido en la Universidad Central del Ecuador.
1.3 Definición del Problema
La iniciativa para el desarrollo de una aplicación móvil que brinde un servicio de vehículo
compartido se basa en proponer un mecanismo para que los integrantes de la comunidad
universitaria de la Facultad de Ingeniería, Ciencias Físicas y Matemáticas (FICFM), que
tienen vehículo particular, puedan brindar un servicio de transporte a cuantos compañeros
sea posible en los horarios y días que le sea posible. De esta manera se pretende lograr
una mejor y eficiente movilidad de la comunidad universitaria y una mayor integración y
solidaridad entre sus integrantes, así como también la optimización de recursos y un
modelo de transporte, como ya se mencionó, más eficiente y seguro.
Para conseguir el objetivo planteado, se procederá al desarrollo de una herramienta
informática que se adapte a las características de los usuarios de la Facultad de Ingeniería,
Ciencias Físicas y Matemáticas (FICFM) de la Universidad Central del Ecuador, la cual
facilite y masifique la compartición del vehículo particular.
8
1.4 Objetivos
1.4.1 Objetivo General
Desarrollar una aplicación móvil que permita implementar el uso del vehículo compartido
en la Facultad de Ingeniería, Ciencias Físicas y Matemáticas.
1.4.2 Objetivos Específicos
• Desarrollar una aplicación móvil nativa para dispositivos móviles que tengan
como sistema operativo Android.
• Recolectar y generar una base de información con datos útiles para un estudio
futuro, de la movilidad en la Universidad Central del Ecuador.
1.5 Justificación
El presente proyecto se justifica porque a través de la aplicación móvil para el uso de
vehículo compartido, se mejorará la movilidad del estudiante desde la facultad, hacia su
domicilio, se brindará mayor confort y seguridad al viajar en un vehículo privado y no en
trasporte público; se optimizará el uso del vehículo al aumentar el índice de posibles
ocupantes, y se colaborará con el medio ambiente al disminuir las emisiones de CO2.
Incluso con el uso de la aplicación, se pretende fomentar la integración de la comunidad
de la Facultad de Ingeniería, y la solidaridad hacia las personas más vulnerables.
Este y otros proyectos planeados a implementarse en un futuro, primero en la facultad de
Ingeniería y luego en todo el campus universitario, forman parte del concepto al cual la
Universidad Central del Ecuador aspira llegar, el mismo es el término Smart University
(Universidad Inteligente) que representa a un centro de estudio auto sustentable, “
espacios de conocimiento de gran eficacia que no solo usen las tecnologías de la
Información para beneficio propio, sino para alcanzar una eficiencia operacional y
9
medioambiental al margen de las necesidades de la sociedad en general ”. (Bakken,
Uskov, Penumatsa, & Doddapaneni, 2014)
Se ha replanteado un objetivo específico establecido en el plan de tesis original, el cual
indicaba que la aplicación ofrecerá un servicio alternativo de transporte, seguro y de
calidad para la comunidad universitaria. El mismo, al momento, no se podrá verificar si
se cumplió o no en consideración de que la aplicación debe de tener un período de
funcionamiento mínimo para recolectar datos y generar con estos una base de datos sólida
con la que se pueda realizar una encuesta de servicio dirigida a la comunidad universitaria,
con lo cual, se procederá a realizar el estudio y análisis respectivo para concluir si la
aplicación móvil cumplió con este objetivo. Es así como este objetivo se validará en un
futuro proyecto de titulación que será propuesto por el Ing. Aldrín Flores, docente de la
Facultad de Ingeniería, Ciencias Físicas y Matemáticas de la Universidad Central del
Ecuador, en donde se hará un análisis de negocio con los datos recolectados por la
aplicación.
1.6 Alcance del proyecto
Dentro de la aplicación se definirá un solo perfil de usuario, el cual podrá ejercer
cualquiera de los dos siguientes roles, según sea su necesidad en el momento. Estos roles
son los siguientes: Pasajero y Conductor.
A continuación, se detallan las actividades que el usuario final podrá realizar en cada uno
de estos roles.
• Pasajero. - Es aquel rol, en donde el usuario final NO posee un vehículo, por lo
tanto, podrá realizar las siguientes actividades:
- Realizar una búsqueda de una ruta deseada.
- Seleccionar y reservar un asiento en la ruta y/o vehículo propuesta por un
conductor.
- Observar la disponibilidad de asientos del vehículo que recorrerá la ruta deseada.
10
• Conductor. - Es aquel rol, donde el usuario final SI posee un vehículo, por lo
tanto, podrá realizar las siguientes actividades:
- Registrar en la aplicación un vehículo de su propiedad.
- Crear la ruta a recorrer desde la Facultad de Ingeniería de la UCE hacia cualquier
punto, definiendo el horario de partida, número de asientos disponibles y punto
de encuentro.
• En ambos roles, el usuario final estará dispuesto a calificar el servicio recibido en
la ruta. En el rol de conductor al usuario final calificará la satisfacción con la ruta
creada por este mismo, en tanto que, en el rol de pasajero el usuario final calificará
el servicio y el circuito recibido en la ruta en la cual ha reservado.
• La aplicación funcionará con rutas solo desde la UCE hasta cualquier punto de la
ciudad, esto debido a que se aprovechará la red inalámbrica de internet que tiene
la Universidad. Aunque esta también puede ser usada mediante un servicio de
datos móviles que el solicitante tenga contratado.
1.7 Limitaciones del proyecto
o La aplicación se implementará inicialmente para la Facultad de Ingeniería,
Ciencias Físicas y Matemáticas de la Universidad Central del Ecuador.
o La aplicación móvil se desarrollará para dispositivos con sistema operativo
Android y la misma estará disponible para su descarga en un servidor privado
el cual constará de una página web de presentación de la aplicación y el enlace
directo de descarga. El enlace es el siguiente:
URL: https://gmoncayoresearch.com/carpoolingUCE/
o Las rutas que creará el conductor tendrán como único punto de partida la
Facultad de Ingeniería, Ciencias Físicas y Matemáticas de la UCE, hacia
cualquier otro punto de la urbe. Esto debido a que la aplicación necesita de
internet para poder hacer uso de ella y se va a aprovechar la disponibilidad de
11
la red inalámbrica de internet con la que cuenta la Universidad Central del
Ecuador.
o Se ha definido 4 puntos estratégicos en la facultad para que funcionen como
puntos de partida para el inicio de una ruta creada. Dichos puntos de partida
se han escogido, ya que son los más cercanos a los parqueaderos con los que
cuenta la Facultad de Ingeniería, en donde se encontrarían los vehículos listos
para el inicio de una ruta.
12
2. MARCO TEÓRICO
2.1 Marco Conceptual
2.1.1 Vehículo Compartido
Varios años atrás el término Carpooling o vehículo compartido era desconocido en Latino
América y la simple idea de compartir nuestro auto con un completo desconocido
generaba y genera aún sentimientos de inseguridad, desconfianza e incomodidad. Como
respuesta ante esta incertidumbre se han creado compañías y asociaciones que han sacado
al mercado sistemas y aplicaciones web al servicio de personas que desean brindar y usar
el servicio de vehículo compartido, para hacer del mismo una práctica más común, segura
y llevadera en la sociedad.
La práctica del vehículo compartido se ha modernizado en nuestros tiempos y cada vez
es más popular, como una nueva opción para transportarse de un lugar a otro con otras
personas que tiene el mismo destino. Y no solo que es más llevadero realizar un viaje
acompañado, sino que, con esta alternativa de movilización, los gastos que conllevan a
realizar el trayecto disminuyen debido a que los mismos se dividen entre más
participantes.
El vehículo compartido, aparte de ser un concepto, es una tendencia a nivel mundial
creada con el objetivo de cuidar el medio ambiente reduciendo las emisiones de CO2, así
como reducir el caos vehicular y el tráfico en ciudades congestionadas por la gran
cantidad de vehículos particulares. Este concepto encierra una práctica tan sencilla como
lo es el viajar varias personas en un mismo vehículo con un destino en común,
optimizando así el uso del vehículo al utilizar todos los asientos que este tenga a
disposición. (Infobae, 2015)
Para poder entender un poco más lo que conlleva al desarrollo de una aplicación móvil,
en los siguientes apartados profundizaremos un poco más sobre los términos antes
utilizados para describir y comprender lo que se quiere lograr con este proyecto, no solo
a nivel tecnológico sino también a nivel social.
13
2.1.2 Dispositivo Móvil
Un dispositivo móvil es un aparato de computación portátil de un pequeño tamaño, que
consta de una pantalla, métodos de entrada de información (táctil o con un teclado
miniatura) y de un sistema operativo que le permite ejecutar más funciones para el que
originalmente fue creado. Pero una de sus características principales, es el concepto de
movilidad, diseñados en tamaños portables y de fácil uso durante su transporte. Además,
el concepto de movilidad engloba también a la facilidad que estos tienen para poderse
conectar a una red inalámbrica sin necesidad de cable alguno, dando la impresión de que
los datos mostrados mediante la red se encuentran almacenados en el propio dispositivo.
(Guevara Soriano, 2014)
2.1.3 Aplicación Móvil
Una aplicación móvil es un software o programa informático diseñado para ser ejecutado
en un dispositivo móvil, ya sea teléfonos inteligentes (smartphones), tablets o relojes
inteligentes (smartwatch). Estas son desarrolladas en lenguajes de programación
relativamente más simples que el de una computadora de escritorio y están orientadas a
un uso inalámbrico. Actualmente el desarrollo de aplicaciones móviles se encuentra en
su máximo auge, posicionando así a los desarrolladores de estos servicios como “la nueva
fuerza de negocio en las redes de esta y la próxima generación tecnológica”. (Gasca,
Camargo, & Medina, 2013)
El mercado de las aplicaciones móviles no para de crecer, siendo así que en la actualidad
podemos tener al alcance miles de ellas. Esto ha demostrado que cualquier servicio
disponible para máquinas de sobremesa, debe estar también disponible para dispositivos
móviles, por lo que muchos desarrolladores y empresas no pierden la oportunidad de crear
una aplicación que satisfaga la demanda de los usuarios. Pero, no todas las aplicaciones
móviles creadas son iguales, teniendo en cuenta su forma de funcionar y parámetros de
ejecución estas se pueden dividir en las siguientes clases:
• Aplicaciones Nativas
14
• Aplicaciones Híbridas
2.1.3.1 Aplicaciones Nativas
Este tipo de aplicaciones son desarrolladas para un sistema operativo en específico, ya
que deberá interactuar en gran parte con las características del hardware y software del
dispositivo. Esto significa un mayor costo de desarrollo, debido a que, si se desea tener
una aplicación disponible para cada uno de los sistemas operativos del mercado, se
debería crear una aplicación para cada uno de ellos. (IBM Software, 2012)
Tabla 2. Ventajas y desventajas de una aplicación móvil nativa
(https://www.lancetalent.com/blog/tipos-de-aplicaciones-moviles-ventajas-
inconvenientes/)
2.1.3.2 Aplicaciones Web Nativas (Híbridas)
Este tipo de aplicaciones, están desarrolladas en lenguajes propios y bastantes conocidos
para el ámbito web, como lo son HTML5, CSS, JavaScript. Se realizan de esta manera
porque se gana una ventaja significativa, ya que esta aplicación podrá ser ejecutada en
cualquier dispositivo sin importar el sistema operativo que rige a este y se adaptan
fácilmente al tamaño de pantalla de cualquier dispositivo. Lo que convierte a estas
aplicaciones en híbridas, es que también son desarrolladas para que interactúen con gran
parte del hardware del dispositivo y necesitan ser instaladas, como en las aplicaciones
nativas. (IBM Software, 2012)
15
Tabla 3. Ventajas y desventajas de una aplicación móvil híbrida
(https://www.lancetalent.com/blog/tipos-de-aplicaciones-moviles-ventajas-
inconvenientes/)
2.2 Marco Técnico – Herramientas de Desarrollo
Para el desarrollo de este proyecto integrador se ha decidido previamente implementarlo
y tenerlo disponible solo para el sistema operativo Android. Esto debido a que, al ser un
sistema desarrollado y administrado por Google, se nos brinda más facilidad y
herramientas gratuitas para el desarrollo de nuestra aplicación, así como lenguajes de
programación, librerías y plugin libres (Open source), al contrario de otros sistemas
operativos que basan todo su desarrollo y publicación en plataformas y lenguajes de
programación propietarios. Como anteriormente se menciona, se ha dado primordial
importancia en el uso de software libre dado que se pretende dejar una base con la que se
pueda trabajar en futuros proyectos a implementarse e integrarse en la universidad.
Al ser este un proyecto integrador realizado para el desarrollo e implementación en una
universidad pública y tomando en cuenta que el sistema operativo Android es uno de los
más usados en el Ecuador y Latinoamérica en general, nos ha parecido factible y con más
importancia que la aplicación esté disponible, en primer lugar, para el sistema operativo
de dispositivos móviles Android, cargada en un servidor lista para ser descargada,
esperando así una rápida popularización de esta.
16
Figura 8. Sistemas operativos más usados en el mundo
(https://elpais.com/tecnologia/2017/04/04/actualidad/1491296467_396232.html)
Las herramientas que a continuación se detallarán, han sido escogidas debido a su
popularidad, actualmente, en el desarrollo de aplicaciones móviles, a la vez que se han
adaptado con perfección a nuestras necesidades de desarrollo.
2.2.1 Android
Android es un sistema operativo que ha sido desarrollado por Google, está basado en
Linux y principalmente orientado a dispositivos móviles. Android es un conjunto de
herramientas y aplicaciones que están vinculadas a una distribución Linux. Por si solo no
es un sistema operativo, Android es un paquete que además de incluir un sistema
operativo, incluye un “runtime” de ejecución desarrollado en java, además de un conjunto
de librerías y aplicaciones desarrolladas también en java, que complementan todo el
concepto que representa Android. (Martínez, 2011)
Android es una plataforma de código abierto, gratuito que no requiere pago de licencia
alguna, esta libertad de código a permitido que Android se adapte y sea usado en la
mayoría de los dispositivos móviles existentes en la actualidad. De igual manera, al ser
de código abierto, es más fácil encontrar y reparar un error existente en alguna aplicación
ya que al no existir un término legal que impida indagar y modificar código libre, se
puede realizar inmediatamente y sin problemas la corrección necesaria para corregir el
error encontrado. (Basterra, Bertea, Borello, Castillo, & Venturi, 2017)
17
Tabla 4. Cuadro comparativo ventajas y desventajas de Android (Rodríguez, 2014)
2.2.2 Arquitectura Android
Android está compuesto por un conjunto de estructuras o capas, como ya se ha
mencionado, las cuales contienen respectivamente al sistema operativo, librerías,
aplicaciones básicas y demás elementos que conforman la arquitectura de Android. A
continuación, se explicará la funcionalidad de cada una de las capas que conforman esta
plataforma para móviles, para ello nos ayudaremos de un gráfico que nos brindará una
visión global y ayudará a entender la colaboración de servicios que existe entre cada capa.
Figura 9. Arquitectura de Android (Martínez, 2011)
18
• El Núcleo Linux. - Android comprende un núcleo de Linux en su versión 2.6 el
cual brinda servicios base del sistema como la gestión de memoria, gestión de
procesos y drivers, pila de protocolos y seguridad. Este núcleo Linux actúa
también como una capa de abstracción entre el hardware y el resto de la pila de
software. (Basterra, Bertea, Borello, Castillo, & Venturi, 2017)
• “Runtime” de Android. – Esta capa constituye el entorno de ejecución Android.
Conformada por librerías base (Core Libraries) con una multitud de clases y
funciones Java y la máquina virtual Dalvik que facilita la optimización de recursos
para la ejecución de las aplicaciones Android. Dadas las limitaciones a nivel de
memoria, está máquina virtual se encarga de crear instancias para que cada una
de las aplicaciones puedan ejecutar sus procesos. En las versiones más actuales de
Android, se ha reemplazado la máquina virtual Dalvik por ART, una nueva
máquina virtual que ha logrado reducir el tiempo de ejecución de procesos Java
en un 33%. (Girónes, 2011)
• Librerías Nativas. – En el mismo nivel de entorno de ejecución, se encuentran las
librerías nativas utilizadas por varios componentes del sistema Android. Estas se
basan en el lenguaje de programación C/C++ y compiladas en código nativo del
procesador. Entre las librerías más importantes que podemos encontrar aquí,
tenemos System C library, librerías de gráficos, librerías de medios, SQLite,
Librerías 3D, entre otros. El conjunto con el núcleo de Linux y estas librerías
nativas, conforman el corazón del funcionamiento del sistema Android. (Girónes,
2011)
• Entorno de Aplicación. – Representa al conjunto de herramientas de desarrollo de
cualquier aplicación Android. Esta capa se diseñó con el objetivo de simplificar
la reu0tilización de componentes, así, toda aplicación que se desarrolla para
Android, ya sean propias del dispositivo, desarrolladas por alguna compañía o
creada por desarrolladores independientes, utilizan el mismo conjunto de
frameworks y API aprovechando las características y capacidades ya creadas por
terceros o poniendo a disposición las que uno mismo cree.
19
• Aplicaciones. – En esta capa se encuentran el conjunto de aplicaciones bases
preinstaladas en el sistema Android, así como las que el usuario agregará
posteriormente. Todas estas aplicaciones harán uso de los servicios, frameworks,
API y librerías de las capas anteriores.
La mayoría de las aplicaciones son programadas y desarrolladas en Java, pero lo
que usan para ser ejecutadas es la máquina virtual propia del sistema Android
(Dalvik) antes mencionada. Esta crea instancias para cada aplicación a ejecutarse,
optimizando así memoria y recursos, que como sabemos, son bastante limitadas
en los dispositivos móviles.
2.2.3 Apache Cordova
Apache Cordova es un popular entorno de desarrollo para dispositivos móviles de código
abierto. Este entorno nos permite usar lenguajes y tecnologías estándar web como
HTML5, CSS y JavaScript para desarrollo multiplataforma, evitando así usar lenguajes y
APIs nativas de cada plataforma móvil como Android, IOS o Windows Phone. Con
Cordova podremos extender el uso y características de HTML, CSS y JavaScript para
trabajar con dispositivos móviles, al mismo tiempo que encapsula estos lenguajes para
ejecutarlos de manera similar en cualquier plataforma móvil. El resultado de este
framework son aplicaciones híbridas, es decir, que no son una aplicación móvil nativa
(debido a que la representación gráfica se ha desarrollado como vistas web) ni son
aplicaciones web (porque son aplicaciones empaquetadas para su distribución y además
tienen acceso a funciones y APIs nativas del dispositivo). Es así como podemos
desarrollar una aplicación y presentarla en multiplataformas, sin tener que
reimplementarlo con herramientas y lenguajes de cada plataforma móvil.
Cordova funciona sobre la plataforma Node.js, que también es un entorno
multiplataforma que puede ser ejecutado en cualquier sistema operativo, priorizando su
uso para la capa del servidor en la gestión de subida y bajada de datos entre una aplicación
y su servidor.
Ventajas de utilizar Apache Cordova. (Peris, 2016)
• Realizas una APP una única vez y funciona en todos los dispositivos.
20
• Alta compatibilidad (incluso con televisiones).
• Sólo hace falta saber programar HTML/JS.
• Sólo tienes que aprender la API de Apache Cordova
• Olvídate de aprender diferentes lenguajes
Desventajas de Apache Cordova. (Peris, 2016)
• No suele ser nativo (Tarda un poco más en procesarse)
• No suele tener soporte para efectos visuales de cada sistema operativo.
2.2.4 NODE.JS
Node.js es un entorno Javascript del lado de servidor que basa su trabajo en eventos,
proporcionando así un entorno de ejecución que compila y ejecuta Javascript a grandes
velocidades. Gracias a su modelo de funcionamiento en eventos, es ideal para la
programación asincrónica (bucle de eventos), poniendo a nuestro servicio una manera
fácil de construir aplicaciones de red que sean escalables y garantizando que un servidor
que ejecute une aplicación desarrollada en su base con Node.js podrá soportar miles de
conexiones y peticiones concurrentes (al mismo tiempo), sin que la aplicación sufra un
bloqueo o quede en punto muerto debido a la gran demanda. (Abernethy, 2011)
2.2.5 Android SDK
El Kit de Desarrollo de Software (Software Development Kit) de Android, es un paquete
que incluye un conjunto de herramientas de desarrollo para la plataforma móvil
mencionada. Con este podremos desarrollar aplicaciones y probarlos mediante la
ejecución de un emulador del sistema Android.
Es necesario tener e instalar el SDK de Android en nuestro proyecto, dado que el entorno
Cordova, para la compilación y construcción de un proyecto, pide por defecto una
plataforma en la cual trabajar. De esta manera la aplicación híbrida resultante, tomará
como APIs y librerías nativas a las proporcionadas por Android.
21
2.2.5 HTML – HTML5
El Lenguaje de Marcado de Hipertexto (HTML) es el lenguaje utilizado para crear y
construir páginas web. Los ficheros de HTML son ficheros de texto donde se describirá
todos los componentes de una página web. La descripción se basa en especificar en el
texto la estructura lógica del contenido que tendrá la página (títulos, artículos,
enumeraciones, etc.) además de complementos multimedia como imágenes y videos, por
medio de marcas también llamadas “tags”, las cuales van encerradas entre los caracteres
“<” y “>”; cada tag tendrá que ir tanto al inicio como al final de una declaración de código
ya que estas serán interpretadas por un navegador para mostrar el contenido de la página
web. Se puede sintetizar el concepto de HTML con los siguientes aspectos:
• Sencillo y fácil de aprender y usar.
• No necesita del uso de variables.
• No se compila.
• Su contenido e interacción se basan en etiquetas, llamadas tags.
• Permite escribir hipertexto.
Con el paso del tiempo el lenguaje HTML ha evolucionado a mejores versiones de si
misma, hasta la actualidad con la versión HTML5, en donde a parte del lenguaje de texto
tradicional, podemos hacer referencia a lenguajes externos como JavaScript, JQuery,
entre otros, expandiendo así el margen de desarrollo que nos puede proporcionar este
lenguaje. Lo que se quiere lograr con HTML5 es tener no solo un lenguaje, sino una
plataforma completa para el desarrollo de aplicaciones web que cada vez se asemejen y
tengan el mismo potencial que las aplicaciones de escritorio, donde la ejecución basada
en un navegador no implique falta de recursos o facilidades para resolver las necesidades
reales de los desarrolladores. (Álvarez, Galeano, & Peña, 2014)
HTML5 provee básicamente tres características importantes en el desarrollo web:
estructura, funcionalidad y estilo, gracias a que en esta versión se ha conseguido una
combinación completa y altamente dependiente entre los lenguajes HTML, CSS y
JavaScript, actuando, así como una sola unidad de desarrollo. Implementación necesaria
teniendo en cuenta la gran variedad de dispositivos e interfaces capaces de acceder a
22
internet, en donde un aspecto básico como la estructura y visualización se vuelven vitales
para el éxito o fracaso de la web. Para ello se necesitará trabajar tanto con contenido
estático como dinámico que puedan garantizar una estructura fuerte, organizada y flexible
adaptable a cualquier dispositivo e interfaz. (Gauchat, 2012)
2.2.6 CSS
Las Hojas de Estilo en Cascada (Cascading Style Sheets) es un lenguaje de diseño gráfico
que complementa y reduce la complejidad de HTML, para especificar como los
documentos web se presentan a los usuarios. CSS se ha convertido en la práctica por
excelencia para definir una separación entre el contenido de un documento web y la forma
en la que este se presenta gracias a características como capas, colores y fuentes. Es así
como podemos definir documentos diferentes de una página web y mantener una
estructura sólida, manteniendo en un documento todo el contenido web y en el otro su
personalización, a la vez, varios documentos de contenido pueden usar las mismas
características de personalización.
La especificación de HTML5 fue desarrollada considerando a CSS como el estándar a
cargo del diseño. Es así como la integración entre HTML y CSS es ahora vital para el
desarrollo web y se las considere tecnologías hermanas, siendo que oficialmente se traten
de dos tecnologías completamente separadas. (Gauchat, 2012)
Se puede sintetizar el concepto de CSS con los siguientes aspectos:
• Consistencia en el estilo de las páginas. – control centralizado de la presentación
de un documento web y reutilización de los documentos de personalización.
• Mayor control sobre la apariencia y la disposición de los elementos. – Con un
documento propio de personalización se mantiene un mejor control sobre la
estructura de la página web.
23
• Optimización de la descarga. – El navegador carga y actualiza con mayor rapidez
las páginas web debido a que solo leerá el documento de texto del contenido y en
este se instanciará el documento de presentación.
• Código de HTML más fácil y simple de mantener. – Se reduce y simplifica
considerablemente el código HTML dado que la personalización ya no es
necesaria realizarla dentro de las mismas etiquetas (tags) del contenido HTML.
• Interacción con JavaScript. - Se complementa con funciones y librerías que
proporcionan efectos o características especiales a los estilos definidos en el
documento de presentación.
2.2.7 JavaScript
JavaScript es un lenguaje de programación interpretado, del lado del cliente, orientado al
desarrollo web permitiendo mejoras en interfaz de usuarios y contenido dinámico. Nos
permite realizar actividades complejas en una página web que solo presentar contenido e
información estática. Actividades como presentar actualizaciones de contenido en tiempo
real, interacciones con mapas, animaciones, gráficos 2D/3D, entre otras. Es la tercera
capa que complementa a las tecnologías de desarrollo web (HTML – CSS - JavaScript).
Muchos de nosotros confundimos JavaScript con el lenguaje Java, siendo que ambos son
diferentes, aunque comparten una que otra singularidad. La principal diferencia es que
JavaScript, al ser un lenguaje interpretado, no necesita ser compilado ni necesita de
procesos intermedios para que este sea ejecutado, basta con un navegador para apreciar
todas sus funcionalidades en acción al instante.
Para aprovechar al máximo el potencial de desarrollo que nos provee JavaScript, ha
expandido sus características para hacerlo más portable y fácil de integrar a nuevas
tecnologías. Es así como junto a las Interfaz de Programación en Aplicaciones (APIs)
implementadas por defecto en los navegadores, dan como resultado funcionalidades más
complejas aún para ser implementadas con JavaScript, mediante técnicas de
programación sencillas. (Gauchat, 2012)
24
Las APIs son inserciones de líneas de código, incluso grandes bloques de código,
desarrollados y listos para usar e implementar las cuales permiten a los desarrolladores
hacerse con funcionalidades complejas que facilitan y minimizan el tiempo de
finalización de un proyecto web. Estas APIs pueden estar ya incluidas en un navegador
como ser creadas e implementadas por terceros. (Mozilla MDN web docs, 2015)
Objetos propios de JavaScript
En JavaScript podemos encontrar tres objetos nativos en el lenguaje, los cuales son:
• navigator: Este es el objeto que representa al navegador, contiene a pluggins y
APIs propias del buscador y nos brinda funcionalidades como: la Geolocalización,
acelerómetros, medidores de temperatura, entre otros.
• window: Este es el objeto que representa al tab del navegador, donde se
encuentran características tales como la resolución de la pantalla, la posición,
entre otras.
• document: Este es el objeto que representa a toda la página HTML. Aquí se
encuentra la estructura y características propias agregadas como imágenes,
videos, texto, etc.
Se puede sintetizar el concepto de JavaScript con los siguientes aspectos:
• Velocidad. – Es realmente rápido debido a que cualquier función implementada
mediante este lenguaje puede ejecutarse de inmediato, debido a que no necesita
ser compilado.
• Versatilidad. – Se combina con otros lenguajes y técnicas de desarrollo
complementando y complementándose a la vez. Puede ser usado y se adapta a una
gran cantidad de aplicaciones.
• Simplicidad. – Es fácil de aprender e implementar en cualquier proyecto web.
• Optimiza. – Reduce la demanda y carga del servidor que alberga un sitio web.
25
2.2.8 JQuery
Es una biblioteca multiplataforma de JavaScript que nos ayuda a simplificar la manera
en la que se interactúa y recorre los documentos HTML, el manejo de eventos,
animaciones y las interacciones AJAX para el desarrollo web. Esta biblioteca es
compatible con cualquier tipo de navegadores y nos permite cambiar el contenido de una
página web sin necesidad de recargarla, mediante la manipulación del árbol DOM
(Document Object Model) para el dinamismo de una web y peticiones AJAX. (Fuentes
Villarreal, 2013)
Entre las principales características de JQuery que podemos encontrar, tenemos:
• Encadenamiento de Métodos. – Permite que mediante una sola línea de código
podamos hacer mucho más de lo que lograríamos usando solamente las
características propias de JavaScript. Bastante útil al momento de recorrer el
DOM (árbol de objetos) de un documento HTML, en busca de un objeto en
específico. En pocas palabras, con JQuery hacemos más con menos líneas de
código.
• Alta compatibilidad entre navegadores. – Gracias a JQuery somos capaces de
desarrollar documentos web que no tendrán conflictos con la configuración
predeterminada de un navegador, ya sea con sus APIs o peticiones AJAX. Al
contrario, se integrarán y serán compatibles de inicio a fin.
• Iteración Implícita. – Los selectores usados por JQuery para encontrar un objeto
en el DOM basan su funcionamiento en iteraciones implícitas, esto nos da a
entender que evitaremos programar bucles de código para encontrar un objeto
que cumpla con ciertos parámetros dados. Esta búsqueda de elementos en
particular se podrá realizar en una sola línea de código.
Pero el potencial que nos ofrece esta librería se encuentra en la simplificación de ciertas
tareas, que si no fueran por JQuery serían demasiado complejas y problemáticas de
implementar. A continuación, repasaremos las tareas más importantes, en las que JQuery,
facilita nuestra vida de desarrolladores:
26
Recorrido del documento HTML
Al instante en que un navegador ejecuta una página web, el resultado que podemos
observar es una representación visual de lo que se conoce como DOM (árbol de objetos).
Este modelo generalmente lo asociamos con un árbol de estructura de datos, el cual consta
de nodos y cada nodo posee hojas.
Figura 10. Representación de un árbol de objetos (DOM). (McFarlin, 2016)
Con JQuery, la tarea de recorrer este árbol ya sea por sus nodos y hasta llegar a una de
sus hojas, es más intuitiva y fácil logrando así recuperar valores específicos con un
parámetro único de búsqueda. Esta es una de las tareas más importantes que realiza
JQuery, ya que a partir de esta se derivan otras igual de complejas, pero ya con una base
sólida de búsqueda, la tarea de manipulación de objetos se vuelve más simple aún.
(McFarlin, 2016)
Manipulación del documento HTML
Teniendo ya una base para la búsqueda de objetos, la manipulación de los mismos no es
un gran problema para JQuery. Esta librería posee muchas funciones que nos permiten
cambiar lo que el usuario final observa en una página web, tales como permitirnos ocultar
o mostrar elementos del documento HTML según cumplan ciertos parámetros de carga.
De igual manera podremos crear nuevos objetos e integrarlos a ya existentes, o
sobreponerlos para lograr una interacción más llamativa.
Estos son solo algunos ejemplos de la gran cantidad de funciones que la manipulación del
DOM nos permite realizar y gracias a la compatibilidad de esta con la mayoría de los
27
navegadores, no tendremos problema alguno con la variedad de dispositivos e interfaces
con las que accedemos al documento web. (McFarlin, 2016)
Manejo de Eventos
Debemos de tener en cuenta que cuando usamos la librería JQuery en el desarrollo de una
página web, al ser esta mostrada en un navegador, podrá responder a varios eventos al
mismo tiempo. Por ejemplo, cuando un usuario cliquea un objeto, presiona una tecla o se
desplaza con el ratón, el navegador responderá con una acción correspondiente al evento
que ha sucedido. Es decir, podemos personalizar la respuesta que nos devuelva un evento
realizado por el usuario y además sacar una ventaja o información de esta interacción.
Afortunadamente, jQuery hace esto mucho más fácil definiendo un nombre constante
para todos los eventos de manera que podemos usar el mismo nombre para un evento al
que estemos tratando de responder y funcionará a lo largo de los navegadores más
importantes. (McFarlin, 2016)
Ajax
Gracias a AJAX, hemos logrado que una página web pueda hacer una llamada al servidor,
recibir e interpretar la respuesta y actualizar una parte de la página sin tener que actualizar
está en su totalidad.
El problema radica en que depende el navegador que uno esté usando al momento de
ejecutar la página web, el código AJAX se interpretará e implementará de diferente
manera, teniendo así que escribir código AJAX específicamente para el navegador de
Microsoft, o para el de Google o para el de Apple. Bueno, este es el caso si no hacemos
uso de la librería JQuery que, gracias a su soporte para AJAX, podemos sacar ventaja de
las funcionalidades que este nos proporciona, sin preocuparnos de las inconsistencias al
ejecutar la web en varios navegadores. (McFarlin, 2016)
Escalabilidad
JQuery soporta complementos que permite la extensión del código base que tengamos
hasta el momento. Esto significa que nosotros, como desarrolladores, tenemos la opción
de aprovechar complementos que otras personas han codificado y de igual manera
podremos desarrollar e implementar nuestros propios complementos. Y gracias a sitios
28
como GitHub, estos complementos pueden estar disponibles y ser reutilizados por la
comunidad de desarrolladores del mundo. (McFarlin, 2016)
En fin, se puede sintetizar las ventajas que nos ofrece JQuery con los siguientes
enunciados:
• Ayuda a ahorrar extensas y largas líneas de código.
• Permite soporte y transparencia de las aplicaciones web en varios navegadores.
• Nos provee un mecanismo para la captura y personalización de eventos.
• Nos permite la manipulación de cualquier objeto del documento HTML.
2.2.9 JQuery Mobile
JQuery Mobile es un framework JavaScript diseñado y optimizado para el desarrollo de
aplicaciones web destinadas a ejecutarse en dispositivos móviles. El problema radicaba
en que el desarrollo de una aplicación móvil se volvía tedioso al tratar de adaptarla a todas
las dimensiones de los dispositivos móviles existentes. Con JQuery Mobile, aceleramos
el desarrollo centrándonos solo en la programación para un cumplir un fin, a la vez que
evitamos conocer la lógica de apariencia y dimensión para cada dispositivo móvil. El
objetivo principal de este framework es lograr una misma sensación de navegación por
parte de los usuarios finales en la mayoría de los dispositivos móviles. (Universidad de
Alicante, 2013)
Al igual que JQuery, que es la base de este framework, nos ahorra escribir grandes
cantidades de líneas de código al encapsular tareas en un solo método modificando el
código HTML para acelerar la velocidad de producción, además que agiliza la
optimización de las funciones nativas de un móvil para mejorar su rendimiento y
performance.
Características de JQuery Mobile
29
A parte de los beneficios ya expuestos, conoceremos las principales características que
pone a nuestra disposición este framework, las cuales son:
• Tiene como su base o núcleo la librería JQuery de JavaScript.
• Es compatible con la mayoría de los dispositivos y navegadores existentes en la
actualidad.
• Este framework nos da la opinión de usar temas personalizados que han sido
creado por terceros. Aunque tenemos también la opción de crear nuestros propios
temas.
• Fácil de aprender e implementar. Soporta HTML5 incluidas todas sus
características, evitando así el uso de scripts.
• Soporta múltiples plataformas como Android, IOS, Windos Mobile, etc. De igual
manera soporta la mayoría de los eventos que se pueden realizar con estas
plataformas.
Una de las principales desventajas de este framework es que algunas de las características
aquí expuestas no funcionan siempre a la perfección en dispositivos de baja gamma.
JQuery Mobile se integra y nivela su funcionamiento con HTML5, CSS y JavaScript,
pero no todos los dispositivos móviles cuentan con esta compatibilidad. Por ejemplo, en
los temas personalizados, existe la posibilidad de que funciones de la interfaz o efectos
no sean ejecutados en estos dispositivos que poseen recursos bastante limitados.
(Luttecke, 2014)
Como funciona JQuery Mobile
JQuery Mobile nos proporciona un marco de trabajo que incluye todos los componentes
necesarios para desarrollar aplicaciones móviles complejas. Este framework se desarrolla
por encima del centro de JQuery, por lo que tendremos acceso a las instalaciones claves,
entre las cuales están: búsqueda, acción y manipulación del modelo del objeto del
30
documento HTML (DOM), manipulación de eventos, comunicación con el servidor a
través de AJAX, y animación y efectos de elementos de las páginas web. (Ortiz, 2012)
Entonces podríamos decir que el funcionamiento de JQuery Mobile es bastante sencillo
de aplicarlo, ya que el desarrollador se encargará solo de la creación de documentos de
contenido en HTML y JQuery Mobile se encargará de transformar y manipular los
elementos del DOM (árbol de objetos) de estas páginas, teniendo como resultado una
interfaz de usuario atractiva e intuitiva para dispositivos móviles. Tener en cuenta que al
ser un lenguaje que no necesita de compilación para su funcionamiento, las
transformaciones de los objetos se realizarán cuando el navegador reciba el contenido del
documento HTML y estarán listas antes de que sean mostrados al usuario.
2.2.10 Google Maps API - GMaps
El API de Google Maps nos permite implementar y mostrar Google Maps en nuestras
aplicaciones web con el uso de JavaScript. Esta nos proporciona utilidades para manipular
los mapas y además añadir contenido al mapa mediante diversos servicios; este servicio
será gratuito siempre y cuando la aplicación web donde se la implemente sea igualmente
gratuita para los usuarios finales.
Para hacerse con el uso de la API de Google Maps, es necesario crear una cuenta de
Google y mediante esta solicitar una clave o licencia de uso a Google Developers. Esta
clave única está ligada a un dominio y un directorio de recursos de Google Maps. La API
es compatible con todos los navegadores
2.2.10.1 GMaps
GMaps es la librería JavaScript fundamental que hace posible la presentación de mapas
en una aplicación web. Se complementa con JQuery, lo que nos permite reducir el código
al máximo y comprenderlo mejor. Nos permite crear mapas con marcadores, rutas, áreas,
geolocalización, entre otras funciones.
Con esta creamos nuevas instancias para el uso de mapas en el documento web, cada una
de estas instancias al crearse son destinadas a un nodo del DOM que hará actuará como
un contenedor para el mapa.
31
El núcleo de esta librería está conformado por el objeto map el cual es una instancia de
GMaps. Esta es la clase fundamental de la librería y la encargada de manipular el mapa.
Para ello necesitamos brindarle tres datos claves, los cuales son:
• Elemento el: que nos proporciona la referencia al id del objeto map, creado para
un nuevo mapa.
• Latitud y Longitud (lat y lng): que representan las coordenadas geográficas del
centro del mapa a crearse.
(García, J.L., 2018)
Bastan solo estos datos para crear un mapa y realizar las modificaciones que deseemos al
mismo.
Figura 11. Resultado del uso de la librería GMaps (García , 2018)
2.2.11 PHP
El lenguaje PHP (Hypertext Preprocessor) es un lenguaje de código abierto,
popularmente usado para el desarrollo web y el cual tiene gran sinergia con otros
lenguajes de desarrollo web del lado del cliente, como lo es HTML o JavaScript. Lo que
diferencia a PHP de otros lenguajes que están orientados a ser ejecutados del lado del
cliente, es que PHP es ejecutado en el servidor resultando en la generación de HTML que
se envía al cliente para que sea mostrado a este. El cliente receptará este resultante, pero
no podrá conocer la fuente y el contenido de este código, de esta manera, cuando los
32
ficheros PHP se colocan en un servidor y se procesan aquí, el usuario final no tendrá
manera de conocer como fue generado dicho código ni la estructura que este tendrá.
PHP al ser un leguaje orientado a la estructura de servidor, debe ser ejecutado por un
servicio de servidor web, para ser masificado para los posibles clientes. Los archivos php
que se ejecutan en el servidor pueden accesar a bases de datos, conexiones de red, y otras
varias tareas más para tener como resultado una página única que será visto por los
clientes. Estos solo observarán una página con el código HTML resultante de la ejecución
de la PHP, la cual es compatible con todos los navegadores existentes en la actualidad.
(Álvarez A. M., 2001)
Es así como, al enfocarse a la programación de scripts del lado del servidor, las
posibilidades de desarrollo son infinitas. Se puede hacer cualquier cosa, como recopilar
datos de un formulario, generar contenido de páginas web dinámicas, recibir y enviar
información, etc.
Figura 12. Funcionamiento del lenguaje PHP. (Álvarez A. M., 2001)
Una de las características más potentes y destacables de PHP es su soporte para un amplio
abanico de bases de datos. Es compatible con las bases de datos más comunes, como
MySQL, Oracle, PostgreSql y ODBC. Escribir una página web con acceso a una base de
datos es increíblemente simple utilizando una de las extensiones específicas de bases de
33
datos (p.ej., para mysql), o utilizar una capa de abstracción como PDO, o conectarse a
cualquier base de datos que admita el estándar de Conexión Abierta a Bases de Datos por
medio de la extensión ODBC.
PHP está listo y preparado para realizar cualquier tipo de aplicaciones, gracias a la gran
y extensa librería de funciones con la que está dotado, librerías que van desde funciones
para realizar cálculos matemáticos avanzados, hasta conexiones con redes y bases de
datos, como se indicó anteriormente. Entre otras importantes capacidades de PHP,
tenemos: funciones para el envío de correos electrónicos, conexiones de red, carga de
archivos, entre una lista interminable de utilidades adicionales.
Sintaxis
PHP ejecuta solo el código que se encuentre entre sus delimitadores, o por defecto,
ejecuta solo el código que se encuentre en un archivo con extensión .php. Los
delimitadores más comunes son <?php para abrir una sección PHP y ?> para cerrarla.
Estos se usan con más frecuencia, cuando se inserta código php en páginas HTML, es así
que estos delimitadores nos permiten separar php del resto de código que es ejecutado
por el cliente. En lo que compete al tipo de variables y funciones de control que usa PHP,
es bastante parecido o casi similar al lenguaje C.
2.2.12 MySQL
MySQL es un sistema gestor de base de datos relacional, desarrollada y distribuida por
Oracle Corporation. Es considerada como la base de código abierto más popular del
mundo, sobre todo para entornos de desarrollo web, es así como este gestor es compatible
con la mayoría de los lenguajes de desarrollo web existentes en la actualidad.
Características de MySQL
• Está escrito y desarrollado en su base por C y C++.
• Está disponible y accesible para varias plataformas y diferentes tipos de sistemas
operativos.
• Disponibilidad para realizar aplicaciones y usos con los siguientes frameworks de
desarrollo: C, C++, Java, Perl, PHP, Python, etc.
34
• Hace uso eficiente de la potencia y capacidad de sistemas multiprocesador, gracias a
su implementación multihilo.
• Es compatible con las principales herramientas y plataformas de desarrollo con más
uso en la actualidad.
• El servidor está disponible como un programa separado para ser usado en un
ambiente cliente/servidor.
Tipos de Datos soportados por MySQL
• Integer
• Float
• Double
• Char
• Varchar
• Text
• Date
• Time
• DateTime, TimeStamp, Year
• Y tipos de datos especiales usados para Geolocalización
Sentencias y Funciones
• Soporte para las cláusulas GROUP BY y ORDER BY.
• Pueden usarse las funciones: COUNT(), COUNT(DISTINCT ...),AVG(), STD(),
SUM(), MAX() y MIN().
• Soporte para LEFT OUTER JOIN y RIGHT OUTER JOIN usando notación SQL
estándar.
• Las sentencias DELETE, INSERT y UPDATE retornan el número de filas que han
sido afectadas.
• Se puede mezclar tablas de diferentes bases de datos en la misma consulta.
Seguridad, Conectividad y Escalabilidad
MySql maneja un sistema propio de sistema de privilegios muy seguro, por lo tanto, la
verificación para cada base se la realiza basado en el host.
35
Los clientes pueden conectarse al servidor MySQL usando el protocolo de comunicación
TCP/IP sobre cualquier plataforma o pueden usar el conector ODBC (Open Database
Connectivity) que provee soporte a programas que vayan a ser usados por los clientes
para el desarrollo de algún proyecto.
Tiene gran potencial al momento de manejar gran cantidad de registros por base de datos.
Su uso se extiende a más de 50 millones de registros y más de 60000 tablas. Hasta 64
índices por tabla son permitidos. Cada índice puede consistir en 1 a 16 columnas.
(UNIOJEDA, 2011)
El motor de almacenamiento es el software que se encarga del manejo de estas tres
características. Este software maneja a todos los datos de una base, como se organizan y
la relación que tienen con otros datos de diferentes tablas, además que gestiona como se
almacenan y como son accedidos por los usuarios que tengan permisos para esta base.
También se encarga de mantener la seguridad y la integridad de toda la estructura que
encierra una sola base. Existen varios tipos de motor de almacenamiento que pueden ser
utilizados, los cuales se definen al momento de creación de una base y en las sentencias
de creación de tablas.
Figura 13. Motores de almacenamiento de MySQL. (UNIOJEDA, 2011)
ISAM: Acepta registros de longitud fija y variable. Los datos que se almacenan en esta
base toman el formato de la máquina en donde se está ejecutando la misma, esto lo
convierte en un motor de funcionamiento más rápido, pero dependiente de la máquina.
36
No soporta datos espaciales (geolocalización), y el tamaño máximo que acepta de una
tabla es de 4gb.
MyISAM: su característica principal es el manejo de tablas de datos no transaccionales,
por lo cual es usada frecuentemente en aplicaciones Web. Este motor consta con unos
índices integrados por una especie de bandera que indica si la tabla fue cerrada
correctamente.
InnoDB: este motor provee a MySQL con soporte a transacciones con capacidades para
las funciones commit y rollback (hacer y deshacer). Nos permite la implementación de
claves foráneas para crear relaciones entre tablas de la base, y gracias a esta función
podemos usar una sentencia SELECT en donde intervengan diferentes tipos de tablas. El
motor en cuestión está completamente integrado con el servidor MySQL, y es por esto
que puede mantener su propio buffer pool para mantener datos e índices en memoria
principal. InnoDB no tiene un límite de tamaño predefinido para las tablas ya que ha sido
diseñado de tal manera, que siempre trata de obtener el máximo rendimiento cuando se
procesa un gran volumen de datos. Como se mencionó anteriormente, es posible combinar
varias sentencias y aceptar cada una de estas al mismo tiempo con la función COMMIT,
y para deshacer los cambios realizados con esta función, ejecutamos la sentencia
ROLLBACK. (UNIOJEDA, 2011)
Una vez expuestos los diferentes tipos de motores de bases de datos que nos ofrece
MySQL y conociendo también sus características, se ha determinado que, para la
aplicación en cuestión a desarrollar, se va a usar el motor InnoDB, dado a que sus
características se adaptan bastante a las necesidades que demanda la funcionalidad que
tendrá la aplicación.
37
3. METODOLOGÍA
La metodología de desarrollo representa a una colección de documentación formal
referente a los procesos, las políticas y los procedimientos que intervienen en el desarrollo
del software. A continuación, se detallará la metodología a usar en el desarrollo de la
aplicación móvil de vehículo compartido.
3.1 Metodología Extreme Programming (XP)
En esta metodología se prioriza y promueve el trabajo en equipo, en donde se busca que
todos los desarrolladores involucrados en el proyecto aprendan en la práctica y se apoyan
mutuamente, potenciando así las relaciones interpersonales y propiciando un buen clima
de trabajo. Uno de los aspectos más importantes de esta metodología es que el usuario
forma una parte fundamental en el desarrollo de un proyecto, ya que entre desarrolladores
y clientes debe existir una fluida comunicación y realimentación continua en aspectos
técnicos, visuales y de funcionamiento del producto final. Es así como implementar
soluciones a revisiones de un usuario será mucho más fácil y simple.
La metodología XP es perfecta para proyectos en donde se sabe que los requisitos serán
imprecisos, cambiantes y adaptables, en busca de lograr la visión que el cliente o usuario
final tienen sobre el software a desarrollarse y estableciendo bases sólidas bajo cualquier
aspecto que pueda generar un alto riesgo técnico. Es así como se propone esta
metodología para “entregar el software que los clientes necesitan en el momento que lo
necesitan, respondiendo a cualquier requerimiento cambiante del cliente, aún en fases
avanzadas de desarrollo”. (Joskowicz, 2008)
La metodología XP basa su éxito en características esenciales que conforman la base de
esta teoría de desarrollo y que han sido organizados en tres apartados, los cuales son:
historias de usuario, roles, procesos y prácticas.
38
3.1.1 Historias de Usuario
Esta técnica es usada en la metodología XP para especificar los requerimientos del
software. Para ello se trabaja junto al usuario ya que es este quien describirá las
características que el sistema debe tener, ya sean estos requerimientos funcionales, como
no funcionales. Esta es una actividad bastante interactiva y dinámica, en donde una
historia de usuario propuesta puede cambiar, reemplazarse por una más específica o
general, modificar su enfoque o incluso eliminarse. Es imprescindible que cada historia
de usuario sea completamente comprensible y clara en sus limitaciones para que los
desarrolladores sean capaces de implementarlas en un tiempo acorde a la complejidad de
la funcionalidad que proveerá al sistema este requerimiento. (Letelier & Penadés, 2006)
En conclusión, las historias de usuario proporcionan los detalles sobre la estimación de
riesgos y cuánto tiempo llevará implementar el requerimiento de dicha historia. A
continuación, se muestra como es el formato de una plantilla de historia de usuario usada
en la metodología XP.
Historia de Usuario
Número: (Se define un número único para cada historia de
usuario. Este puede cumplir un estándar impuesto por el
líder del proyecto)
Nombre: (Se define un nombre que, describa a cortos rasgos,
la funcionalidad a implementar en ese requerimiento)
Usuario: (Se define los usuarios que se verán involucrados e interactuarán con la funcionalidad definida en esta historia de
usuario)
Prioridad en Negocio (Alta/Media/Baja): (Se define
el impacto que tendrá este requerimiento a nivel de negocio)
Riesgo en Desarrollo (Alta/Media/Baja): (Se define el
nivel de riego y complejidad que podría presentarse en el
desarrollo de esta funcionalidad)
Puntos Estimados: (Se definen puntos de control para el
requerimiento a desarrollarse)
Iteración Asignada: (Se definen ciclos de desarrollo a
ejecutarse en el desarrollo de este requerimiento)
Programador responsable: (Se da a conocer al o los desarrolladores involucrados en el desarrollo de este requerimiento)
Descripción: (Se describe con claridad y convicción lo que hará la funcionalidad a implementarse en esta historia de
usuario. Se describe como y que usuarios intervienen y que rol va a cumplir cada uno de ellos)
Observaciones: (Se definen aspectos a tener en cuenta durante el desarrollo del requerimiento expuesto en esta historia de
usuario)
Tabla 5. Modelo de una plantilla de Historia de Usuario usada en la metodología
XP (Realización propia)
39
Después de definir una historia de usuario, esta será descompuesta en tareas de
programación y asignadas a los desarrolladores para ser implementadas durante los ciclos
de desarrollo definidos para este requerimiento.
3.1.2 Roles XP
Desde su definición como metodología ágil, eXtreme Programming de Beck ha definido
roles de acción para los involucrados en el desarrollo de un proyecto. A continuación,
describiremos cada uno de estos roles y cuáles son sus responsabilidades.
• Programador. - El programador es la pieza fundamental en la metodología XP
y tendrá más responsabilidades en el desarrollo del proyecto que otro rol. Será el
responsable de producir, diseñar y probar el código del sistema. Deberá estar
dispuesto a recibir cualquier crítica o recomendación y mantener una
comunicación adecuada con otros programadores y los demás involucrados del
proyecto.
• Cliente. – El cliente, como lo habíamos mencionado, será el encargado de definir
las historias de usuario y especificaciones para realizar pruebas funcionales para
validar la correcta implementación del sistema. El cliente representa a los
usuarios finales que harán uso y se verán afectados por el sistema.
• Encargado de Pruebas o Tester. – Es el encargado de ayudar y apoyar al cliente
en la preparación/realización de las pruebas funcionales al sistema. Después de
ayudar en la ejecución de estas pruebas, también será el responsable de emitir y
hacer públicos los resultados obtenidos.
• Encargado de Seguimiento o Tracker. – Es el encargado de recoger, analizar y
publicar información sobre la marcha del proyecto sin afectar demasiado al
proceso. Supervisa el cumplimiento de las estimaciones y objetivos en cada
iteración de desarrollo sobre un requerimiento, y si es necesario determinará la
realización de un cambio necesario para lograr los objetivos de cada iteración.
40
• Entrenador o Coach. – Es el experto en la aplicación de la metodología XP y
responsable del proceso global del proyecto. Identifica las desviaciones e
interviene directamente para que el proceso se siga correctamente. Guiará y
aconsejará al grupo de desarrollo, tratando de no dañar su confianza y seguridad.
• Consultor. – Es un miembro externo del equipo involucrado en el desarrollo del
proyecto, pero que posee conocimiento de un tema en específico necesario para
el proyecto. Ayuda al equipo a resolver problemas en específicos pertinentes a su
conocimiento.
• Gestor o Big Boss. – Es el intermediario y favorece la relación entre usuarios y
desarrolladores. Cubre las necesidades del equipo y se asegura que cumplan sus
objetivos. Principalmente su labor es de coordinar tiempos de entrega y solución
de conflictos.
(Letelier & Penadés, 2006)
3.1.3 Proceso XP
Un proyecto XP, comprende en su ciclo de vida los siguientes puntos: entender lo que el
usuario necesita, estimar el tiempo y esfuerzo necesario para poder crear una solución a
la solicitud del cliente, y entregar este resultado como un producto final que cumpla con
las expectativas del cliente. Por lo general, los clientes no son capaces de especificar con
claridad sus requerimientos para el sistema al comienzo del proyecto, por lo que el ciclo
de vida de XP es un ciclo dinámico pensado para realizar cambios a corto y largo plazo,
y que estos cambios tengan el menor impacto posible en la continuación del desarrollo
del sistema. Para ello, se trata de realizar ciclos de desarrollo cortos llamados iteraciones,
procurando entregar resultados funcionales al final de cada ciclo. En cada ciclo se
realizará un análisis, diseño, desarrollo y pruebas funcionales para validar el correcto
desempeño de los requerimientos planteados para cada iteración. (Joskowicz, 2008)
41
Con estas iteraciones, no solo que optimizamos el tiempo y los recursos, sino que
dinamizamos todo el proceso de desarrollo de un sistema, a diferencia de otras
metodologías como lo podemos observar en la siguiente figura:
Figura 14. Evolución de los largos ciclos de desarrollo en cascada (a) a ciclos
iterativos más cortos (b) y a lo realizado en XP. (Acebal, 2002)
Acordamos que el ciclo de vida de un proyecto XP es muy dinámico, pero eso no significa
que podamos identificar fases durante el desarrollo de este. Es así como el ciclo de vida
ideal de XP consta de 6 fases, las cuales son:
I. Fase de Exploración. - En esta fase se define el alcance general del proyecto al
igual que los requerimientos funcionales y no funcionales del mismo. Para ello,
el cliente definirá las historias de usuario y a partir de estas los programadores
establecerán los tiempos y riesgos de desarrollo para cada requerimiento del
sistema. Esta fase dura un par de semanas, obteniendo al final un punto de partida
para determinar el objetivo general del sistema y un tiempo plazo total estimado
para el desarrollo y puesta en producción del proyecto.
II. Fase de Planificación. - La planificación es una fase relativamente corta, y es
aquí donde el cliente, el gestor del proyecto y los desarrolladores se ponen de
acuerdo para determinar la importancia y el orden, para implementar las historias
de usuario, y sus respectivos entregables. Esta fase se la lleva a cabo en una o
varias reuniones grupales de planificación, obteniendo al final de estas un
documento donde se identifica los entregables finales de cada una de las historias
de usuario.
42
III. Fase de Iteraciones. - Esta conforma la principal y más cuidadosa fase del ciclo
de desarrollo XP, es aquí donde todos los requerimientos del sistema son
desarrollados, generando al final de cada iteración un entregable funcional
correspondiente a una historia de usuario. Como lo mencionamos, las historias de
usuario definidas al inicio del proyecto no tienen el suficiente detalle para reflejar
la funcionalidad en su máximo potencial, por lo que al inicio de cada iteración se
realizan las tareas necesarias de análisis por parte del programador tomando en
cuenta todas las recomendaciones realizadas por el cliente, es así que podemos
inferir, que en esta fase el cliente va a cumplir un papel esencial.
IV. Fase de Producción. – Como mencionamos anteriormente, al final de cada ciclo
de desarrollo tendremos entregables totalmente funcionales y sin error alguno,
pero puede ser deseable por parte del cliente no poner el sistema en producción
hasta que no se tenga la funcionalidad completa del sistema. Es así que en esta
fase ya no se realizan desarrollos a nivel funcional del sistema, pero si se pueden
realizar tareas de revisión de rendimiento y ajustes adicionales que pueden
resultar en la inclusión de nuevas características a la versión final del sistema.
V. Fase de Mantenimiento. - Ya puesta a producción una primera versión del
sistema se debe de poner a disposición tareas de soporte al cliente, esto con el
objetivo de realizar mantenimiento inmediato ante posibles problemas
presentados en el sistema. Es así como se realizarán nuevas iteraciones para
corregir aspectos débiles del sistema, se implementarán y se seguirá brindando
soporte hasta la culminación de esta fase.
VI. Muerte del Proyecto. - Cuando se haya cubierto en su totalidad con el
cumplimiento e inclusión en el sistema de todas las historias de usuario, ni
tampoco existan en ejecución ningún ciclo de desarrollo extra para corregir
falencias, errores o necesidades del cliente en aspectos de funcionalidad,
rendimiento y confiabilidad del sistema, se podrá dar como terminado o muerto
el proyecto y entregar la documentación final del sistema.
(Joskowicz, 2008)
43
3.1.4 Prácticas XP
El objetivo primordial de la metodología XP es tratar de disminuir el costo que genera el
cambio en los diferentes ciclos de desarrollo a lo largo del proyecto, lo suficiente para
que el diseño evolutivo funcione. Esto se trata de conseguir, apoyándose en las nuevas
tecnologías disponibles y en la aplicación de las prácticas que se describen a continuación.
• El juego de la planificación: Engloba al proceso de comunicación entre el cliente
y los desarrolladores. El gestor del proyecto realiza una estimación del esfuerzo
requerido para la implementación de las historias de usuario y los clientes deciden
sobre el tiempo de las entregas de cada ciclo de desarrollo. El cliente establece la
prioridad de cada historia de usuario, de acuerdo con el valor que aporta para el
negocio.
• Entregas pequeñas: La idea es producir rápidamente versiones del sistema que
sean operativas, aunque obviamente no cuenten con toda la funcionalidad
pretendida para el sistema, pero sí que constituyan un resultado de valor para el
negocio. Una entrega no debería tardar más 3 meses.
• Metáfora: Una metáfora es una historia compartida que describe cómo debería
funcionar el sistema. El usuario y desarrolladores deben definir un grupo de
metáforas que identifiquen la funcionalidad del proyecto a realizarse.
• Pruebas: Las pruebas para el sistema son establecidas antes de comenzar a
desarrollar e implementar el código y son ejecutadas constantemente ante cada
modificación que se realice en el sistema. Los clientes intervienen en la creación
y ejecución de estas pruebas para cada historia de usuario que deba validarse.
• Refactorización (Refactoring): Este término conlleva una actividad de
reestructuración del código con el objetivo de evitar duplicación de código,
mejorar su legibilidad, simplificarlo y hacerlo más entendible para futuros
cambios. La refactorización mejora la estructura interna del código sin alterar su
comportamiento externo.
44
• Propiedad colectiva del código: El ya mencionado proceso de refactorización es
una antesala para aplicar este concepto en donde un programador puede cambiar
cualquier parte del código en cualquier momento. Con esta práctica se trata de
evitar que algún programador sea imprescindible para realizar cambios en alguna
parte del sistema.
• Cliente in-situ: El éxito del proyecto XP se debe a que es el cliente quien guía
constantemente el trabajo hacia lo que aportará mayor valor de negocio y los
desarrolladores pueden y deben resolver de manera inmediata cualquier duda
asociada.
• Estándares de programación: XP enfatiza la comunicación de los
programadores a través del código, con lo cual es indispensable que se sigan
ciertos estándares de programación. Los estándares de programación mantienen
el código legible para los miembros del equipo, facilitando los cambios.
(Letelier & Penadés, 2006)
Figura 15. Las prácticas se refuerzan entre sí. (Letelier & Penadés, 2006)
45
Justificación
Ya expuesta la metodología XP, podemos notar que es perfecta para aplicarla en el
desarrollo de nuestra aplicación móvil. Dado que será una aplicación que tendrá cambios
constantes en sus requerimientos, esta metodología dinámica jugará un papel importante
en la reducción de costo y tiempo de los cambios que se puedan realizar en alguna de las
etapas del ciclo de vida del proyecto.
Al ser una aplicación dirigida al uso, en su mayoría, de estudiantes, es y será
imprescindible escuchar las críticas a las primeras versiones del aplicativo y mediante
iteraciones de desarrollo procurar solventar las falencias que vayan apareciendo antes que
el aplicativo se disponga para producción.
De igual manera al ser un proyecto a corto plazo, se espera con esta metodología cumplir
los tiempos de entrega establecidos minimizando al máximo los riesgos que el desarrollo
de esta aplicación móvil implica.
En este sentido, de acuerdo con lo mencionado, se podrán hacer mejoras posteriores en el
aplicativo.
46
4. DESARROLLO DEL PROYECTO
4.1 Requerimientos Funcionales
Para determinar los requerimientos de la aplicación móvil a desarrollar, hemos aplicado
una de las bases de la Metodología XP, procediendo con la elaboración de historias de
usuario en donde se definen los actores e interacciones que tendrán cada uno de ellos con
las funcionalidades del aplicativo.
4.1.1 Actores
En este punto vale realizar una aclaración sobre la funcionalidad que tendrá el aplicativo,
y hay que tomar en cuenta que la aplicación será destinada para un usuario final, el cual
podrá ejercer cualquiera de los dos roles identificados a continuación, según sea su
necesidad en el momento, en el mismo perfil de usuario y en la misma aplicación.
Ahora, planteadas las historias de usuario y casos de uso, se ha podido identificar y
determinar a los actores o roles que interactuarán con la aplicación. A cada actor se le ha
asignado un nombre que representa y describe las actividades que podrá realizar en la
aplicación. Estos actores son los siguientes:
1. Conductor
En el rol de conductor, el usuario final podrá realizar las siguientes
actividades:
• Usuario final, externo al sistema.
• Crear un usuario para acceder al uso de la aplicación.
• Registrar los datos de un vehículo, el cual pondrá a disposición para
brindar el servicio de vehículo compartido.
• Crear y poner a disposición una ruta a recorrer.
47
• Determinar los parámetros del viaje, como hora, fecha y asientos
disponibles en el vehículo.
• Calificar el servicio en general al finalizar la ruta determinada.
2. Pasajero
En el rol de pasajero, el usuario final podrá realizar las siguientes actividades:
• Usuario final, externo al sistema.
• Crear un usuario para acceder al uso de la aplicación.
• Buscar rutas que sean de su interés.
• Consultar la disponibilidad de asientos en una ruta deseada.
• Escoger y reservar un asiento en una ruta deseada.
• Calificar el servicio en general al finalizar la ruta escogida.
4.1.2 Historias de Usuario
A continuación, se presenta una tabla que resume las historias de usuario planteadas y
aprobadas por el tutor del proyecto, para lo que será las funcionalidades con las que
contará el aplicativo.
Número Contexto Usuario Resultado / Comportamiento
esperado
1 Registrarse a la aplicación con las credenciales del correo institucional de la UCE
Usuario Aplicación
Solamente se podrá acceder a la aplicación con el usuario y clave pertenecientes a las credenciales del correo institucional.
2 Iniciar Sesión en la aplicación de un usuario ya registrado
Usuario Aplicación
Una vez registrado el usuario, este podrá ingresar al aplicativo con la clave y usuario registrados.
3 Registrar un vehículo que brindará el servicio de vehículo compartido
Usuario Aplicación
El usuario conductor registrará los datos de su vehículo en la base de datos de la aplicación, garantizando la factibilidad y seguridad del servicio.
4 Creación de la ruta a recorrer y disponibilidad
Usuario Aplicación
El conductor creará la ruta a recorrer, especificará la disponibilidad y establecerá los parámetros para el inicio de esta.
48
5 Cancelación de una ruta ya creada
Usuario Aplicación
El conductor podrá realizar la cancelación de una ruta que ha creado, siempre y cuando en esta no exista una reserva ya hecha.
6 Realizar una búsqueda de una ruta específica deseada
Usuario Aplicación
El usuario que desee usar el servicio deberá buscar una ruta que sea de su interés, para ello ingresará un parámetro de búsqueda y en base a este obtendrá un resultado, si existiese.
7 Reservar un asiento en la ruta propuesta por un conductor
Usuario Aplicación
Si existiese disponibilidad de asientos en una ruta, el pasajero podrá realizar la reserva de un asiento.
8 Cancelar la reserva de un asiento en una ruta propuesta por un conductor
Usuario Aplicación
El pasajero podrá realizar la cancelación de la reserva en una ruta, si ya no deseara participar en esta.
9 Calificación del servicio brindado y gestionado por la aplicación
Usuario Aplicación
Al final del servicio, todos los usuarios calificarán el nivel de satisfacción del viaje y podrán ingresar un comentario al respecto.
Tabla 6. Resumen de las historias de usuario definidas para el aplicativo.
(Realización Propia))
4.1.3 Casos de Uso
En el siguiente diagrama se muestra la interacción que cada actor identificado tiene en
cada uno de los casos de uso. Como hemos aclarado, el usuario final que descargue la
aplicación podrá ejercer cualquiera de estos dos roles al mismo tiempo según sea su
necesidad en el momento.
49
Figura 16. Diagrama de casos de uso (Realización propia)
4.1.4 Descripción de los casos de uso
• Registrarse
Actores: Usuario final en el rol de conductor o pasajero.
50
En primer lugar, el usuario final deberá descargar la aplicación desde la página
https://gmoncayoresearch.com/carpoolingUCE/ e instalarla en su celular. Ahora,
para poder ingresar a la aplicación, primero se debe realizar un proceso de
registro. Para ello el usuario deberá ingresar los datos requeridos en el formulario
de registro, asignar un usuario y contraseña para finalmente guardar el registro.
Posteriormente deberá confirmar su registro mediante un email que llegará al
correo electrónico ingresado en el formulario de registro.
Figura 17. Diagrama del caso de uso Registrarse (Realización propia)
• Iniciar Sesión
Actores: Usuario final en el rol de conductor o pasajero.
El usuario final podrá ingresar a la aplicación usando sus credenciales
correspondientes validadas en el proceso de registro. Una vez iniciada sesión en
la aplicación, el usuario podrá hacer uso de las funciones de esta.
51
Figura 18. Diagrama del caso de uso Iniciar Sesión (Realización propia)
• Registrar Vehículo
Actores: Usuario final en el rol de conductor.
Si el usuario final desea ofrecer el servicio de vehículo compartido, primero
deberá de registrar un vehículo de su propiedad. Para ello, deberá ingresar los
datos solicitados en el formulario de Agregar vehículo y guardar el registro. Con
este proceso el usuario estará listo para ofrecer el servicio.
Figura 19. Diagrama del caso de uso Iniciar Registrar Vehículo (Realización
propia)
52
• Crear una Ruta
Actores: Usuario final en el rol de conductor.
El usuario final que ejercerá en el momento como conductor, podrá realizar la
creación de una ruta, teniendo en cuenta que el punto de partida siempre va a ser
el campus universitario y el destino final será a su elección. Al crear la ruta
también determinará la fecha y hora de inicio del viaje, así como la disponibilidad
de asientos en su vehículo.
Figura 20. Diagrama del caso de uso Crear Ruta (Realización propia)
• Cancelar una Ruta
Actores: Usuario final en el rol de conductor.
Las rutas creadas por el usuario se guardarán en su perfil en la opción Mis Rutas
y aquí estarán disponibles para observar los datos de esta. También se tendrá la
opción de cancelar la ruta, pero de ya existir reservas hechas en esta, ya no se
podrá realizar el proceso de cancelación.
53
Figura 21. Diagrama del caso de uso Cancelar Ruta (Realización propia)
• Buscar Ruta
Actores: Usuario final en el rol de pasajero.
El usuario final que necesita usar el servicio de vehículo compartido podrá
realizar una búsqueda mediante un parámetro de ingreso, de las rutas que ha este
le puedan beneficiar. El parámetro de búsqueda corresponderá al nombre de un
sector de la ciudad y si existiese alguna coincidencia, se le presentará la ruta
encontrada.
Figura 22. Diagrama del caso de uso Buscar Ruta (Realización propia)
54
• Escoger y Reservar una Ruta
Actores: Usuario final en el rol de pasajero.
Cuando el usuario haya encontrado una ruta que se adapte a sus necesidades, este
podrá realizar una reserva en dicho trayecto.
Figura 23. Diagrama del caso de uso Escoger y Reservar Ruta (Realización
propia)
• Cancelar la reserva en una ruta
Actores: Usuario final en el rol de pasajero.
Si el usuario final desea cancelar la reserva realizada con anterioridad en una ruta
propuesta, deberá ingresar a la opción Mis Reservas y desde aquí se le dará la
opción de cancelar la reserva.
Figura 24. Diagrama del caso de uso Cancelar la reserva en una ruta
(Realización propia)
55
• Calificar Servicio
Actores: Usuario final en el rol de pasajero y conductor.
El usuario final, ya sea como pasajero o conductor, al finalizar el viaje tendrá la
opción de calificar el nivel de satisfacción con el servicio en general. La
calificación se realizará mediante el estándar de 5 estrellas. Esta calificación se la
realizará, en el caso del conductor, en la opción Mis Rutas y para el caso del
pasajero, la calificación la podrá realizar en la opción Mis Reservas. En estas dos
opciones se presentarán las rutas en las que ha participado un usuario, ya sea
como conductor o pasajero, respectivamente. Estas se seguirán presentando en el
perfil del usuario hasta que estos den una calificación a la ruta en la que han
participado.
Figura 25. Diagrama del caso de uso Calificar Servicio (Realización propia)
56
4.2 Requerimientos No Funcionales
• Seguridad: La aplicación solicitará un usuario y contraseña registrados para
poder ingresar a esta, controlando de esta manera el ingreso de usuarios no
autorizados o externos a la universidad. Se validará que solo se pueda usar correos
institucionales pertenecientes al dominio de la universidad, para registrarse en la
aplicación. Mencionar lo de la confirmación del correo
• Escalabilidad: Gracias a su diseño y arquitectura, la aplicación quedará
disponible a la integración de nuevas funciones y sistemas que puedan beneficiar,
en un futuro, la expansión y crecimiento de esta.
• Concurrencia: Al ser desarrollada en base a eventos asincrónicos, la aplicación
permitirá que varios usuarios interactúen con la misma al mismo tiempo, sin
generar un cuello de botella que pueda colapsar el servidor de la aplicación.
• Usabilidad: La interfaz de la aplicación será bastante intuitiva y fácil de usar para
el usuario. Al proponer un solo perfil de usuario para ambos roles que el usuario
final puede tomar mientras interactúa en la aplicación, se simplificará el uso de
esta, en lugar de proponer dos perfiles diferentes que podrían llegar a confundir
al usuario.
4.3 Diseño de la Base de Datos
A continuación, se muestra el modelo entidad-relación de la base de datos a
implementarse para la aplicación. Como se mencionó con anterioridad, el gestor de base
de datos a usarse para la aplicación será MySQL.
57
Figura 26. Diagrama del modelo entidad-relación de la Base de Datos de la App
(Realización propia)
4.4 Arquitectura Física de la Aplicación Móvil
La aplicación móvil será alojada por un dispositivo móvil con sistema operativo Android,
la cual interactuará con la base de datos presentada anteriormente elaborada en el gestor
de base de datos PostgreSQL, mediante servicios de tipo Web API proporcionados por
un servidor de aplicaciones elaborado en .Net en Visual Studio 2015. De igual manera
todas las funcionalidades de la aplicación serán proporcionadas por el servidor de
aplicaciones antes mencionado.
58
Figura 27. Arquitectura física de la aplicación móvil (Realización propia)
4.5 Arquitectura Lógica de la Aplicación Móvil
Para el desarrollo de esta aplicación móvil se ha implementado la arquitectura
multicapas, debido a que es más viable, eficiente y convencional en este tipo de
aplicaciones. Es así como se ha separado en capas diferentes la interfaz con la que
interactúa el usuario, la lógica de negocio y las operaciones a realizar en la base de datos.
4.5.1 Capa de Presentación
Aquí se encuentran todas las interfaces por medio de las cuales el usuario interactuará
con la aplicación. Por medio de esta capa se hará cumplir las reglas del negocio, en donde
se capturará y validará los datos ingresados por el usuario, así como se hará cumplir
reglamentos y restricciones en las funciones de la aplicación. El desarrollo de las
interfaces se ha realizado con el uso e implementación de HTML y CSS.
59
4.5.2 Capa de Lógica del Negocio
Esta capa contendrá el modelo de negocio de la aplicación, es decir, las funcionalidades
que le dan valor a esta. Es aquí donde se recibirán las peticiones de los usuarios y tras el
proceso respectivo, se enviarán respuestas al mismo. Esta capa nos permite relacionar y
comunicar a la capa de presentación con la capa de datos. Es por medio de esta capa que
presentaremos la información de los usuarios registrados y estos podrán hacer uso de
todas las funcionalidades con las que la aplicación consta.
4.5.3 Capa de Almacenamiento
Es en esta capa donde se almacenarán todos los datos y además es la encargada de darnos
acceso a los mismos. Por lo tanto, aquí residirá la base de datos implementada para esta
aplicación y además nos brindará los servicios necesarios para acceder e interactuar con
esta. Aquí se almacenará los datos de los usuarios que se registren en la aplicación, así
como datos generados en la interacción con las funciones de esta, como por ejemplo datos
de vehículos registrados y rutas creadas.
4.6 Fases del desarrollo de la Aplicación Móvil
Para la fase de desarrollo de la aplicación móvil se ha puesto en práctica la metodología
expuesta con anterioridad, al ser esta la que mejor se adaptaba a los recursos que se tenía
para la elaboración de este proyecto. A lo largo de todo el tiempo que se ha invertido en
el desarrollo de esta aplicación y poniendo en práctica la metodología XP, hemos
obtenido como resultado las siguientes fases de desarrollo.
4.6.1 Exploración y Planificación
Dentro de esta fase de desarrollo de la aplicación, se ha realizado la recolección de datos
necesarios para el planteamiento de los requerimientos funcionales y no funcionales de
la aplicación.
60
Para ello se tomó en cuenta el resultado y opiniones obtenidas en una encuesta realizada
sobre el tema de Vehículo Compartido en la Facultad de Ingeniería de la Universidad
Central del Ecuador en meses pasados. Además, se tomó en cuenta los consejos y
observaciones realizados por los propios ingenieros docentes que propusieron el tema en
un principio, siendo ellos también portavoces de las opiniones del alumnado en general
de la Facultad de Ingeniería.
El levantamiento de datos e información a nivel de campo fue un proceso de
investigación llevado a cabo por el desarrollador de la aplicación, en el cual se estudió
los diferentes puntos estratégicos de la facultad en los cuales sea más grande la
concurrencia de alumnos, para definirlos posteriormente como puntos de encuentro de
donde tendrían punto de partida las rutas creadas por los mismos alumnos.
De esta manera se definió las funcionalidades a presentar en la aplicación, así como los
usos que se le podría dar a esta.
4.6.2 Diseño
Se realizó un estudio y análisis de los requerimientos a cumplir con la aplicación, teniendo
en cuenta tiempo, presupuesto y alcance con lo cual se pudo definir las herramientas de
desarrollo a usar para la correcta elaboración y producción de la aplicación.
Al ser un proyecto para realizarse por un solo desarrollador se dio prioridad al uso de
herramientas conocidas y populares entre la comunidad informática, en las cuales el
desarrollador ya tuviera conocimiento y experiencia en las mismas para agilizar el
proceso, y en herramientas de software libre, para no tener problemas de presupuesto o
compra de licencias, que para un solo desarrollador podría ser bastante costoso
sobrellevar estos valores por sí mismo.
Como consecuencia se dio el uso de herramientas de código abierto, expuestas en
capítulos anteriores, las cuales a la vez son algunas de las más populares usadas a nivel
mundial para el desarrollo de aplicaciones móviles.
61
4.6.3 Programación basada en Iteraciones
La programación realizada para el desarrollo de la aplicación se ha realizado cumpliendo
los pasos descritos en la metodología usada para este proyecto. Se ha generado ciclos de
desarrollo en donde al final de cada uno de estos, se presentaba un entregable ya funcional
para la aplicación que correspondía a un requerimiento en concreto. Al final de cada uno
de los ciclos mencionados, se ha realizado un control de calidad para verificar que si se
está cumpliendo cada uno de los requerimientos que se ha fijado para la aplicación.
La programación se ha realizado usando como lenguaje de programación base a JQuery
Mobile, en conjunción con HTML y JavaScript para el desarrollo de la aplicación por
parte del Cliente y con el uso de lenguaje PHP para el desarrollo del complemento
funcional y lógico de la aplicación por parte del Servidor. En conjunto entre Cliente y
Servidor se ha obtenido una aplicación que cumple en cubrir todos los requerimientos
planteados en la fase de planificación, obteniendo así éxito en la aplicación de la
metodología planteada en su inicio.
4.6.4 Implementación y Producción
Al ya tener un producto que se podría decir que está terminado, funcional y cumple con
los requerimientos propuestos para la aplicación, entramos en la fase en la que el cliente
debe dar su visto bueno para poner el sistema en producción. En esta fase se ha realizado
pequeñas correcciones dispuestas por observaciones realizadas por el cliente final, en
este caso, por testers que pertenecen al alumnado de la facultad y por docentes de esta.
Se realizó pruebas funcionales finales y en cada una de estas pruebas se fue verificando
que cada uno de los requerimientos, tanto funcionales como no funcionales que se
propuso para la aplicación, se cumplan a cabalidad. Incluso se agregó nuevas
funcionalidades que en un principio no se tomó en cuenta para el desarrollo de la
aplicación
62
4.7 Puesta en Producción
En esta etapa se realizó una última revisión y verificación de la aplicación, en donde se
confirmó que esta si cumple con todos los requerimientos propuestos para este proyecto
en sus inicios. Como resultado de realizar el proceso antes mencionado, se decidió poner
en producción la aplicación.
Para llevar a cabo esta etapa final se decidió la contratación de un servidor privado en
donde se realizó la completa migración de la aplicación, incluido la base de datos en
donde se alojará toda la información recolectada por esta. Para el caso, se creó una página
web donde se da a conocer el enlace directo de descarga de la aplicación. A continuación,
se muestra el resultado final del desarrollo de la aplicación móvil, así como la página web
de descarga directa de esta.
https://gmoncayoresearch.com/carpoolingUCE/
Figura 28. Página de descarga de la aplicación móvil (Realización propia)
63
CarpoolingUCE App
Figura 29. Versión final de la aplicación móvil (Realización propia)
64
5. CONCLUSIONES
➢ Con este proyecto se ha puesto a disposición de la comunidad universitaria una
opción de transporte que mejorará la forma en la que los estudiantes, docentes y
administrativos se dirigen desde la universidad a sus respectivos destinos fuera de
ella. Es así como se ha implementado otra opción de movilización para la
comunidad universitaria, a parte de las demás opciones de movilización brindadas
por la actual administración municipal. La aplicación móvil puede ser descargada
de forma gratuita y usada para gestionar la oferta de vehículo compartido,
fomentando la unidad de la comunidad universitaria y valores como la
integración, colaboración y ayuda.
➢ Mediante la aplicación móvil se recolectará una gran cantidad de datos sobre los
estudiantes. Esta información recolectada, puede ser analizada y estudiada para
obtener conocimientos que ayuden en la creación e implementación de nuevos
procesos, aplicaciones y sistemas que mejoren la movilidad y atención que recibe
la comunidad universitaria en la actualidad.
➢ Se priorizó el desarrollo de la aplicación para dispositivos móviles con sistema
operativo Android, por ser este el sistema operativo más popular a nivel mundial,
así como también, al ser un sistema que basa su arquitectura en el software libre
por excelencia, se tenía más y mejores herramientas para su desarrollo
disponibles, sin tener que incurrir en costos por licencias de uso de estas.
65
6. RECOMENDACIONES
➢ La aplicación tiene un gran potencial para una posible expansión, que no sea un
concepto solo usado en la faculta de Ingeniería, si no que sea usado en toda la
Universidad Central del Ecuador. De igual manera se puede implementar nuevas
y mejores funcionalidades a la misma, siempre teniendo como meta el mejorar el
estilo de vida de la comunidad académica. También se recomienda realizar la
portabilidad de la aplicación para que esta esté disponible también en dispositivos
Apple con sistema operativo IOS y para dispositivos con sistema operativo
Microsoft.
➢ Se recomienda, para un futuro trabajo de titulación, implementar la aplicación en
la Facultada de Ingeniería, recolectar datos, analizarlos y estudiarlos para
proponer soluciones de movilidad a la comunidad universitaria. Como autor de la
tesis en cuestión, yo, Marco Vinicio García Yunga me comprometo en colaborar
con la asistencia y asesoría necesaria para realizar el lanzamiento oficial de la
aplicación y cooperar con la integración de este proyecto con un futuro proyecto
de análisis de datos que se realice en base a la información recolectada por la
aplicación.
➢ Se recomienda que la aplicación funcione en conjunto con otros proyectos
relacionados en el mismo tema, para tener un sistema más completo que brinde
un mejor servicio a la comunidad académica y de esta manera se convierta en un
referente tecnológico para futuros proyectos. Con esta herramienta en
funcionamiento, la facultad de Ingeniería fomenta en la Universidad Central del
Ecuador el acoger y apuntar al desarrollo del concepto conocido como Smart
University, en donde se pretende que la tecnología intervenga en todos los
aspectos administrativos y académicos de la universidad, con la intención de
mejorar el estilo de vida de estudiantes, docentes y administrativos.
➢ Se recomienda que la Facultad de Ingeniería de la Universidad Central del
Ecuador, realice una inversión económica en esta aplicación, para que la misma
66
pueda hacerse con más y mejores servicios ofrecidos por las aplicaciones de
Google que se han usado para el desarrollo de la aplicación. Es así como se debería
invertir en la compra de mejores credenciales de Google Maps, dado que las
actuales pertenecen al período gratuito de prueba que Google ofrece solo por el
período de un año.
➢ Se recomienda una mejor gestión de la base de datos de la aplicación, por el
momento esta se encuentra en un servidor privado, pero se aconseja que la base
tenga una réplica y los debidos procesos de respaldo (backup) en los servidores
de la Universidad Central del Ecuador.
67
BIBLIOGRAFÍA
(1) Abernethy, M. (Junio de 2011). ¿Simplemente qué es Node.js? (I.
Corporation, Editor) Recuperado el 13 de Abril de 2018, de
https://www.ibm.com/developerworks/ssa/opensource/library/os-
nodejs/index.html
(2) Acebal, C. (2002). eXtreme Programming (XP): un nuevo método de
desarrollo de software. Departamentode Informática, Área de Lenguajes y
Sistemas Informáticos, Universidad de Oviedo: Novatica.
(3) Álvarez, A. M. (2001). Qué es PHP. Recuperado el 20 de Agosto de 2018,
de https://www.desarrolloweb.com/articulos/392.php
(4) Álvarez, M. A., Galeano, D., & Peña, J. (2014). Manual del lenguaje de
marcación de HTML5.Desarrolladorweb.com. Recuperado el 13 de Abril de
2018, de http://exprimiendoopencms.com/export/sites/sagasuite/.galleries/test-
galeria-descarga/manual-lenguaje-html5.pdf
(5) Aneloa Chipantasi, N. E., & Cerda Tanguila, J. L. (2016). Aplicación móvil
para mejorar la movilidad de la comunidad universitaria de la universidad
central del ecuador utilizando “Vehículo Compartido”. Recuperado el 11 de
diciembre de 2017, de http://www.dspace.uce.edu.ec/bitstream/25000/7349/1/T-
UCE-0011-284.pdf
(6) Bakken, J. P., Uskov, V. L., Penumatsa, A., & Doddapaneni, A. (2014).
Smart Universities, Smart Classrooms and Students with Disabilities. Bradley
Universities, Illinois, USA: Springer, Cham.
(7) Basterra, Bertea, Borello, Castillo, & Venturi. (2017). Android OS Documentation
Release 0.1. (I. T. Córdoba, Ed.) Recuperado el 9 de Abril de 2018, de
https://media.readthedocs.org/pdf/androidos/latest/androidos.pdf
(8) Fuentes Villarreal, C. A. (Noviembre de 2013). ¿Qué es JQuery?
Recuperado el 14 de Abril de 2018, de https://www.northware mx/wp-
content/uploads/2013/11/Noviembre_Que_es_jQuery__Northware.pdf.
68
(9) García , J. L. (2018). GMaps.js: una forma muy fácil de publicar mapas en
la web. (W. mappinggis.com, Editor) Recuperado el 18 de Abril de 2018, de
https://mappinggis.com/2018/03/gmaps-js-una-forma-muy-facil-de-publicar-
mapas-en-la-web/
(10) Gasca, M. C., Camargo, L., & Medina, B. (2013). Metodología para el
desarrollo de aplicaciones móviles. Recuperado el 7 de Abril de 2018, de
file:///C:/Users/HP-User/Downloads/Dialnet-
MetodologiaParaElDesarrolloDeAplicacionesMoviles-4778503.pdf
(11) Gauchat, J. D. (2012). El gran libro de HTML5, CSS3 y Javascript (1ra
ed.). Gran Vía de les Corts Catalanes, Barcelona: Marcombo S.A.
(12) Girónes, J. T. (2011). El gran libro de Android (3ra ed.). Madrid, España
Península: Marcombo S.A.
(13) Guevara Soriano, A. (2014). Dispositivos Móviles. Revista Seguridad.
Recuperado el 7 de Abril de 2018, de https://revista.seguridad.unam.mx/numero-
07/dispositivos-moviles
(14) IBM Software. (2012). El desarrollo de aplicaciones móviles nativas, Web
o híbridas. (I. Corporation, Ed.) Recuperado el 8 de Abril de 2018, de
ftp://ftp.software.ibm.com/la/documents/gb/commons/27754_IBM_WP_Native_
Web_or_hybrid_2846853.pdf
(15) Infobae, R. V. (16 de Diciembre de 2015). Carpooling: qué es y cómo
funciona. Recuperado el 7 de Abril de 2018, de
https://www.infobae.com/2015/12/16/1776933-carpooling-que-es-y-como-
funciona
(16) Joskowicz, J. (2008). Reglas y Prácticas en eXtreme Programming. (U. d.
Vigo, Editor) Recuperado el 22 de Abril de 2018, de
http://iie.fing.edu.uy/~josej/docs/XP%20-%20Jose%20Joskowicz.pdf
(17) Letelier, P., & Penadés, M. C. (2006). Metodologías ágiles para el
desarrollo de software: eXtreme Programming (XP). Recuperado el 22 de Abril
de 2018, de http://www.cyta.com.ar/ta0502/b_v5n2a1.html
69
(18) Luttecke, C. (2014). ¿Qué es jQuery Mobile? Recuperado el 15 de Abril
de 2018, de http://www.jtech.ua.es/dadm/restringido/web/sesion05-apuntes.pdf
(19) Martínez, F. L. (2011). Aplicaciones para dispositivos móviles. (U. P.
Valencia, Ed.) Recuperado el 9 de Abril de 2018, de
https://riunet.upv.es/bitstream/handle/10251/11538/Memoria.pdf
(20) Máster en Desarrollo de Aplicaciones Android. (2017). Arquitectura de
Android. (U. P. Valencia, Ed.) Recuperado el 11 de Abril de 2018, de
http://www.androidcurso.com/index.php/recursos/31-unidad-1vision-general-y-
entorno-de-desarrollo/99-arquitectura-de-android
(21) McFarlin, T. (Mayo de 2016). ¿What Is JQuery? Recuperado el 14 de
Abril de 2018, de https://code.tutsplus.com/tutorials/what-is-jquery--cms-26232
(22) Mozilla MDN web docs. (2015). ¿Qué es JavaScript? Recuperado el 13
de Abril de 2018, de
https://developer.mozilla.org/es/docs/Learn/JavaScript/First_steps/Qu%C3%A9
_es_JavaScript
(23) Ortiz, E. C. (2012). Introducción a jQuery Mobile. IBM. (I. Corporation,
Editor) Recuperado el 18 de Abril de 2018, de
https://www.ibm.com/developerworks/ssa/library/wa-
jquerymobileupdate/index.html
(24) Peris, L. (Diciembre de 2016). Artìculo "Apache Cordova". Consultor
tecnológico y Programador PHP. Recuperado el 13 de Abril de 2018, de
https://luisperis.com/apache-cordova
(25) Rodríguez, A. (2014). Sistema Operativo Android. Recuperado el 9 de
Abril de 2018, de https://es.slideshare.net/AlondraAgueroRodriguez/sistema-
operativo-android-39540973
(26) UNIOJEDA. (2011). Fundamentos de MySQL. (E. d. Computación,
Editor) Recuperado el 25 de Agosto de 2018, de
https://anaylenlopez.files.wordpress.com/2011/03/fundamentos-de-
mysql_iiicorte.pdf
70
(27) Universidad de Alicante. (2013). Introducción a JQuery Mobile. (D. C.
IA, Editor) Recuperado el 15 de Abril de 2018, de
http://www.jtech.ua.es/dadm/restringido/web/sesion05-apuntes.pdf
71
ANEXOS
72
ANEXO A
Manual Técnico para el desarrollo de la aplicación móvil
Instalación de NODE.JS
Node.js es un lenguaje de programación que utiliza código JavaScript en el lado del
Backend, por lo que es extremadamente rápido para gestionar proyectos de gran tamaño
sin consumir mucho recurso.
Para descargarlo nos dirigimos a la página oficial de node.js
(https://nodejs.org/es/download/) y elegimos la versión que necesitemos. Para el caso será
la última versión para Windows de 64 bits.
Figura A 1 Instalación de Node.js (Realización Propia)
Una vez descargado el archivo, damos doble clic sobre este para empezar la instalación.
Se nos presentará una pantalla de inicio para comenzar con el proceso de instalación.
Damos en Next.
73
Figura A 2 Instalación de Node.js (Realización Propia)
Aceptamos los términos y condiciones de uso y presionamos Next.
Figura A 3 Instalación de Node.js (Realización Propia)
Elegimos el destino donde se instalará el software
74
Figura A 4 Instalación de Node.js (Realización Propia)
Elegimos los componentes a instalarse.
Figura A 5 Instalación de Node.js (Realización Propia)
Y finalmente damos clic en Install, para empezar con el proceso de instalación con todos
los parámetros antes definidos.
75
Figura A 6 Instalación de Node.js (Realización Propia)
Al terminar la instalación, presionamos el botón Finish para salir. Podemos comprobar
que la instalación se realizó correctamente, revisando si ya tiene una versión existente en
el sistema. Para esto en un terminal CMD de Windows, tipificamos node -v y se nos
deberá mostrar la versión que está instalada en el sistema.
Figura A 7 Instalación de Node.js (Realización Propia)
Figura A 8 Revisión de instalación de Node.js (Realización Propia)
76
Para el correcto funcionamiento de esta herramienta de desarrollo, se debe configurar sus
correspondientes variables de entorno. Para esto vamos al ícono de nuestro equipo, clic
derecho y propiedades.
Figura A 9 Configuración de Node.js (Realización Propia)
Se nos presentará una pantalla donde se muestran las características de nuestro equipo.
Aquí nos dirigimos a la opción Configuración avanzada del sistema.
Figura A 10 Configuración de Node.js (Realización Propia)
En la siguiente pantalla buscamos la opción Variables de entorno, y damos clic.
77
Figura A 11 Configuración de Node.js (Realización Propia)
En la sección que se denomina Variables del sistema, buscaremos la variable llamada
Path. Ingresamos a esta variable y agregamos la dirección de donde se instaló node.js.
Figura A 12 Configuración de Node.js (Realización Propia)
Con el botón Nuevo podremos agregar una nueva variable de entorno. Aquí agregamos
la dirección de node.js (C:\Program Files\nodejs\) y aceptamos.
78
Figura A 13 Configuración de Node.js (Realización Propia)
También revisaremos en esta sección, que se encuentre declarada la variable del software
de desarrollo de JAVA, ya que este es una parte fundamental para que node.js funcione a
la perfección y a la vez tengamos disponibles todas las herramientas Java para comenzar
con el desarrollo.
Figura A 14 Configuración de Node.js (Realización Propia)
Instalación de SDK de Android
Se recomienda que se instale por completo el software Android Studio, pero para el caso
pertinente solo necesitaremos el SDK de Android.
Para instalar las herramientas de desarrollo de Android (SDK), necesitamos descargar el
archivo correspondiente para comenzar la instalación. Para ello vamos a la página
79
https://android-sdk.uptodown.com/windows en donde se encuentra este archivo
disponible.
Figura A 15 Instalación de Android SDK (Realización Propia)
Una vez el archivo se haya descargado, damos doble clic en este para empezar con el
proceso de instalación. Se nos presentará la pantalla de inicio de la instalación y damos
en Next.
Figura A 16 Instalación de Android SDK (Realización Propia)
Escogemos la dirección de donde deseamos que se instale el SDK y damos Next.
80
Figura A 17 Instalación de Android SDK (Realización Propia)
A continuación, creamos un acceso directo para esta herramienta y comenzamos la
instalación con Install.
Figura A 18 Instalación de Android SDK (Realización Propia)
Finalizada la instalación ya tenderemos esta herramienta disponible para el desarrollo de
aplicaciones móviles con sistema operativo Android, además que tendremos ya
disponible la plataforma Android en nuestro equipo para integrarla con otros softwares
para el desarrollo de la aplicación, como se lo explicará más adelante.
81
Instalación de Apache Cordova
Este software será la base para crear y desarrollar nuestra aplicación. Para tener disponible
esta herramienta, necesariamente tenemos que tener ya instalado node.js ya que es sobre
esta plataforma que funciona Apache Cordova.
Para comenzar con la instalación de Cordova, nos dirigimos al directorio donde se instaló
node.js, buscamos un ícono que represente un terminal CDM y damos clic en este.
Figura A 19 Instalación de Apache Cordova (Realización Propia)
Ingresamos a este terminal y usaremos el comando $ npm install -g cordova para
empezar con la instalación de Cordova.
Figura A 20 Instalación de Apache Cordova (Realización Propia)
Una vez instalada esta herramienta, crearemos nuestro proyecto para comenzar con el
desarrollo de la aplicación. Para ello en este mismo terminal usaremos el comando $
cordova create MyApp para crear el proyecto.
82
Figura A 21 Creación de un proyecto en Apache Cordova (Realización Propia)
Ahora, ya que nuestro proyecto se tratará de una aplicación móvil que será ejecutada en
dispositivos móviles con sistema operativo Android, necesitamos agregar esta plataforma
a nuestro proyecto. Ya que anteriormente instalamos el SDK de Android y ya teníamos
disponible la plataforma de Android, usaremos el siguiente comando para agregar esta
plataforma al desarrollo de la aplicación $ cordova platform add android.
Figura A 22 Agregar plataforma Android a proyecto de Apache Cordova
(Realización Propia)
Con esto tendremos configurado y listo nuestro equipo para comenzar con el desarrollo
de la aplicación.
Instalación de servidor de prueba Apache (WAMPSERVER64)
Para realizar las pruebas pertinentes a la aplicación, necesitaremos un servidor de prueba
antes de subir la aplicación a un servidor de producción, para que esté disponible a los
estudiantes de la facultad de Ingeniería de la UCE.
Este servidor virtual de prueba, además nos brindará la herramienta de administración de
bases de datos MySQL, el cual se llama phpMyAdmin. Esta será necesaria al momento
de crear y administrar la base de datos externa de la aplicación.
Para empezar con la instalación de este servidor virtual, descargaremos el archivo
necesario desde la página oficial de esta herramienta, la cual es
83
http://www.wampserver.com/. Para el caso, escogeremos el instalador para un sistema
Windows de 64 bits.
Figura A 23 Instalación de Servidor Virtual WAMPSERVER (Realización Propia)
Una vez descargado el archivo, damos doble clic sobre este para empezar con la
instalación. Se nos presentará la pantalla de inicio de instalación y damos Next.
Figura A 24 Instalación de Servidor Virtual WAMPSERVER (Realización Propia)
Aceptamos los términos y condiciones de uso y damos Next.
84
Figura A 25 Instalación de Servidor Virtual WAMPSERVER (Realización Propia)
Escogemos la dirección en donde se instalará el software.
Figura A 26 Instalación de Servidor Virtual WAMPSERVER (Realización Propia)
Y empezamos con la instalación, usando el botón Install.
85
Figura A 27 Instalación de Servidor Virtual WAMPSERVER (Realización Propia)
Terminado la instalación, lo ejecutamos y tenemos que revisar que, en la barra de inicio
de Windows, el ícono del servidor se encuentre de color verde, esto significa que el
servidor está activo y funcionando correctamente.
Figura A 28 Instalación de Servidor Virtual WAMPSERVER (Realización Propia)
Y como antes lo mencionamos, este servidor nos pondrá a disposición también el
administrador de base de datos MySQL. Para ingresar a este damos clic en el ícono del
servidor y escogemos la opción phpMyAdmin.
86
Figura A 29 Instalación de Servidor Virtual WAMPSERVER (Realización Propia)
En el navegador se abrirá la pantalla de login de este administrador. Para ingresar a este
el usuario por defecto será root y damos en Continuar.
Figura A 30 Instalación de Servidor Virtual WAMPSERVER (Realización Propia)
Al ingresar, ya tendremos la opción de crear y modificar nuevas bases de datos MySQL,
para integrarlas al desarrollo de nuestra aplicación.
87
Figura A 31 Instalación de Servidor Virtual WAMPSERVER (Realización Propia)
88
ANEXO B
Manual de Instalación de la Aplicación CarpoolingUCE
Descargar la aplicación de la siguiente página web.
URL: https://gmoncayoresearch.com/carpoolingUCE/
Figura B 1 Descarga de la aplicación CarpoolingUCE en dispositivo móvil
(Realización Propia)
Una vez descargada la aplicación en un dispositivo móvil con sistema operativo Android,
procedemos a instalarla.
Figura B 2 APK de la aplicación CarpoolingUCE descargado en dispositivo móvil
(Realización Propia)
89
Si recibimos un mensaje de bloqueo debido a que la aplicación ha sido descargada de un
origen desconocido, procedemos a activar esta opción en nuestro dispositivo android.
Para ello elegimos la opción Ajustes.
Figura B 3 Mensaje de bloqueo al momento de instalar la aplicación
CarpoolingUCE en un dispositivo móvil (Realización Propia)
Se nos enviará a los ajustes del dispositivo móvil, aquí activamos la opción Orígenes
desconocidos.
Figura B 4 Activas Orígenes desconocidos en un dispositivo móvil (Realización
Propia)
90
Y aceptamos la activación de esta opción en el dispositivo movil.
Figura B 5 Aceptar activación de Orígenes desconocidos en un dispositivo móvil
(Realización Propia)
A continuación, ya se nos permitirá la correcta instalación de la aplicación móvil. Para
ellos usamos el botón Instalar.
Figura B 6 Instalación de la aplicación CarpoolingUCE en dispositivo móvil
(Realización Propia)
91
Después de instalar correctamente la aplicación, procedemos a abrirla. Para ello
seleccionamos el ícono de la aplicación CarpoolingUCE
Figura B 7 Inicio de la aplicación CarpoolingUCE en dispositivo móvil
(Realización Propia)
92
ANEXO C
Manual de Uso de la Aplicación CarpoolingUCE
Para poder ingresar a la aplicación, es necesario registrarse en la misma. Para ello
entramos en la opción REGISTRARSE.
Figura C 1 Registrarse en la aplicación (Realización Propia)
Se nos dirigirá a otra pantalla donde tenemos que ingresar todos los datos requeridos. Un
aspecto importante es que el email a usarse para el registro solo deberá ser el del correo
institucional proporcionado por la UCE, es decir que tenga el dominio
93
Figura C 2 Formulario de registro de la aplicación (Realización Propia)
Una vez ingresados y validados los datos en el formulario de registro, seleccionamos el
botón de Registrar. Se nos mostrará un mensaje de éxito y otro donde se indica que se
debe validar el registro, mediante un correo enviado el email institucional.
Figura C 3 Mensajes de éxito al registrarse en la aplicación (Realización Propia)
94
Para validar el proceso de registro, ingresar a su correo institucional y revisar en la
bandeja de entrada o correo no deseado, un email enviado por
[email protected] en donde se enviará un enlace de confirmación. Dar clic
en este enlace para finalizar con el proceso de registro.
Figura C 4 Correo de confirmación enviado al correo institucional del solicitante
(Realización Propia)
Ahora ya podremos ingresar a la aplicación con la cuenta creada. Para ello en Usuario
ingresamos el correo institucional y en Clave la contraseña ingresada en el proceso de
registro. Damos en INICIAR SESIÓN para ingresar a nuestra cuenta.
Figura C 5 Logueo a la aplicación (Realización Propia)
95
La primera pantalla en presentarse será la del perfil de usuario. Aquí se muestra toda
nuestra información y aquí tenemos la opción de agregar una foto de perfil presionando
la opción Agrega una foto para tu perfil.
Figura C 6 Sección Mi Perfil (Realización Propia)
En la parte inferior tenemos 4 opciones para ir a diferentes secciones de la aplicación y
para salir de la misma.
Figura C 7 Secciones de la aplicación (Realización Propia)
Seleccionado la opción Buscar podremos buscar las rutas disponibles, que han sido
creadas por otros usuarios. Tendremos dos opciones de búsqueda, una por Sector donde
solo se presentarán las rutas disponibles para el actual día, y otra donde se presentarán
todas las disponibles desde el actúa día en adelante.
96
Figura C 8 Sección Mi Perfil (Realización Propia)
Con el botón Mis Reservas podremos observar las reservas que hemos realizado en una
ruta disponible, además que podremos calificar en las rutas pasadas que hemos
participado. La calificación de la ruta se la hará mediante el parámetro de 5 estrellas. Para
regresar a la pantalla principal usamos el botón Atrás.
Figura C 9 Sección Mis Reservas (Realización Propia)
La siguiente sección de la pantalla principal es la de Mi Auto. En esta sección podremos
observar la información de un vehículo que hayamos registrado. También desde esta
Botón que dirige a
sección Mis
Reservas
97
sección nos podremos dirigir al formulario para el registro de un vehículo, en caso de que
deseemos crear y ofrecer una ruta de viaje.
Figura C 10 Sección Mi Auto (Realización Propia)
En el formulario de registro de vehículo, se nos pedirá ingresar datos importantes del auto
que usaremos para brindar una ruta. Aquí también podremos agregar una foto de nuestro
vehículo, la cual es obligatoria para terminar con el proceso de registro del auto.
Botón que dirige al
formulario de
registro del vehículo
98
Figura C 11 Formulario para registrar un vehículo (Realización Propia)
La siguiente sección de la pantalla principal es la de +Ruta. En esta sección podremos
crear y ofrecer una ruta de viaje para la comunidad universitaria. Tener en cuenta que
para crear una ruta debemos primero tener un auto registrado en nuestro perfil.
El formulario para crear una ruta nos requerirá que ingresemos la información necesaria
para crear una ruta y esta sea comprensible para los posibles pasajeros. En la opción
Punto de Encuentro, seleccionaremos de entre 4 puntos estratégicos de la facultad de
Ingeniería, donde será que se encuentra el vehículo listo para comenzar la ruta. En la
opción Punto de Llegada, ingresaremos la dirección de destino, lo cual será posible
mediante un buscador de direcciones o usando el mapa de Google, con su marcador.
99
Figura C 12 Sección Crear Ruta (Realización Propia)
Continuando con el formulario, se nos pedirá datos estratégicos de la ruta, como lo son la
fecha y hora de viaje, disponibilidad, sector de destino y los campos teléfono de contacto
y vehículo se añadirán automáticamente de las anteriores secciones explicadas en este
manual. Cabe recalcar que, para crear una ruta, obligatoriamente debe tener un vehículo
registrado en la cuenta del usuario.
Botón para ver un
mapa de los puntos
de encuentro
Mapa que indica la
dirección de destino
buscada
Sección de búsqueda
de direcciones
100
Figura C 13 Sección Crear Ruta (Realización Propia)
Con el botón Ver mis Rutas podremos observar las rutas que hemos creado y están
activas, además que podremos calificar las rutas pasadas que hemos creado y en las que
se ha participado. La calificación de la ruta se la hará mediante el parámetro de 5 estrellas.
Para regresar a la pantalla principal usamos el botón Atrás.
Figura C 14 Sección Mis Rutas Activas (Realización Propia)
Botón para dirigirse a
la opción Ver mis
rutas
Datos extraídos
automáticamente de
las secciones
anteriores
101
La última sección del menú inferior, pero observada desde la sección Mi Perfil, será el
botón que nos permita cerrar la sesión en la aplicación. Una vez cerrada la sesión,
debemos ingresar de nuevo el usuario y la clave para ingresar a la misma. Pero si la
aplicación se cierra con el botón Atrás del dispositivo móvil, esta mantendrá guardada la
sesión del usuario que ha ingresado con anterioridad a la aplicación.
Figura C 15 Botón para Salir y Cerrar Sesión en la aplicación (Realización Propia)
Ahora si no encontramos en cualquiera de las tres secciones: Buscar, Mi Auto, +Ruta;
este último botón cambiará por el de Perfil, el cual nos dirigirá a la pantalla principal de
Mi Perfil.
Figura C 16 Botón para dirigirse a la sección Mi Perfil (Realización Propia)
En la sección principal de la aplicación llamada Mi Perfil, constamos de dos botones
superiores que nos dirigen a otras dos secciones de la aplicación.
Figura C 17 Secciones adicionales en sección Mi Perfil (Realización Propia)
Este botón nos dirige
a la sección Acerca
de, donde se muestra
la información
general de la
aplicación
Este botón nos dirige a la
sección Ayuda, donde
encontraremos
referencias de los puntos
de encuentro de las rutas
102
Figura C 18 Secciones Acerca de y Ayuda de la aplicación (Realización Propia)
Para poder observar la trayectoria que tendrá una ruta que hayamos buscado y sea de
nuestra conveniencia, solo debemos dar clic encima de esta ruta y se nos desplegará toda
la información necesaria que debemos conocer de la ruta en donde reservaremos.
Figura C 19 Observar la información de una ruta propuesta (Realización Propia)
Clic en la ruta para ver
toda su información
103
Dentro de la información observaremos la ruta trazada en un mapa y también tendremos
la opción de Reservar Ruta. Con esta opción estamos optando por un asiento en la ruta
propuesta. No se podrá reservar más de una vez en la misma ruta y no se podrá reservar
en la ruta cuando la disponibilidad de esta sea de cero.
Figura C 20 Información de una ruta propuesta y opción de Reservar Ruta
(Realización Propia)
Una vez realizada la reserva en la ruta, podremos ver la misma en la sección Mis Reservas
que se explicó anteriormente. Aquí tendremos la opción de Cancelar la reserva realizada,
además de poder ver la información de la ruta nuevamente y el estado de esta. De igual
manera, aquí se presentarán rutas ya ejecutadas en las que hemos participado, con la razón
de que se las califique. Una vez calificadas, las rutas se retirarán de esta sección.
104
Figura C 21 Sección Mis Reservas, opciones Cancelar reserva y Calificar ruta
(Realización Propia)
Para el creador de la ruta, en la opción Ver mis rutas tendrá la opción de Cancelar la ruta,
siempre y cuando en esta ya no existan reservas hechas por otros usuarios. También podrá
Calificar el servicio recibido por los pasajeros en las rutas que este ha ejecutado con
anterioridad.
Figura C 22 Sección Mis Rutas, opciones Cancelar ruta y Calificar ruta
(Realización Propia)
Botón para Calificar el
servicio recibido en una
ruta en la cual hemos
participado
Botón para Cancelar la
reserva hecha en una
ruta
Botón para Cancelar
una ruta propuesta,
siempre y cuando en
esta ya no existan
reservas
Botón para Calificar el
servicio recibido en
una ruta que hemos
propuesto
105
Recuerde que, para poder hacer uso de esta aplicación, necesita estar conectado a una red
wifi o tener activo el plan de datos móviles de su dispositivo.
Figura C 23 Activar datos móviles o conectarse a una red wifi para hacer uso de la
aplicación (Realización Propia)