UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE …morales y patrimoniales del trabajo de titulación...
Transcript of UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE …morales y patrimoniales del trabajo de titulación...
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 web para vehículo compartido
Trabajo de Titulación modalidad Proyecto Integrador, previo a la obtención del título de
Ingeniero Informático.
AUTOR: Geovanny Cristian Quimis Calvachi
TUTOR: Ing. Aldrin Ismael Flores Suarez
Quito, 2018
ii
© DERECHOS DE AUTOR
Yo, Geovanny Cristian Quimis Calvachi, en calidad de autor y titular de los derechos
morales y patrimoniales del trabajo de titulación Desarrollo de una aplicación web para
vehículo compartido, 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, concedo 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. Conservo a mi favor todos los derechos de autor
sobre la 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.
Firma: ________________________
Geovanny Cristian Quimis Calvachi
CC. 171936354-9
Dirección electrónica: [email protected]
iii
APROBACIÓN DEL TUTOR
En mi calidad de Tutor del Trabajo de Titulación, presentado por GEOVANNY
CRISTIAN QUIMIS CALVACHI, para optar por el Grado de Ingeniero Informático;
cuyo título es: DESARROLLO DE UNA APLICACIÓN WEB PARA VEHÍCULO
COMPARTIDO, 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 21 días del mes de mayo de 2018.
_______________________________________
Ing. Aldrin Ismael Flores Suarez
DOCENTE-TUTOR
C.C. 100166218-6
iv
CONTENIDO
pág.
© DERECHOS DE AUTOR .................................................................................................. ii
APROBACIÓN DEL TUTOR .............................................................................................. iii
CONTENIDO ........................................................................................................................ iv
LISTA DE FIGURAS .......................................................................................................... vii
LISTA DE TABLAS ............................................................................................................. xi
LISTA DE ANEXOS ........................................................................................................... xii
RESUMEN .......................................................................................................................... xiii
ABSTRACT ........................................................................................................................ xiv
1. PRESENTACIÓN DEL PROBLEMA ........................................................................... 1
1.1 Antecedentes. .................................................................................................................. 1
1.2 Planteamiento del Problema. .......................................................................................... 1
1.3 Justificación. ................................................................................................................... 2
1.4 Objetivos. ........................................................................................................................ 2
1.4.1 Objetivo General......................................................................................................... 2
1.4.2 Objetivos Específicos. ................................................................................................ 2
1.5 Alcance. .......................................................................................................................... 2
1.6 Limitaciones. .................................................................................................................. 3
1.7 Análisis de Herramientas de Desarrollo. ........................................................................ 3
1.7.1 Lenguajes de Programación.. ........................................................................................ 3
1.7.2 Entorno de Desarrollo Integrado. .................................................................................. 4
1.7.3 Servidores de Aplicaciones.. ......................................................................................... 5
1.7.4 Interfaces de Usuarios. .................................................................................................. 5
1.7.5 Motor de Base de Datos. ............................................................................................... 6
v
2. MARCO TEÓRICO ....................................................................................................... 7
2.1 Arquitectura de Aplicaciones Multinivel. ...................................................................... 7
2.2 Metodología de Investigación. ....................................................................................... 7
2.3 Metodología de Desarrollo de Software. ........................................................................ 8
2.3.1 Revisión Metodologías. .............................................................................................. 8
2.3.2 Programación Extrema (XP). ................................................................................... 10
2.3.3 Roles XP. .................................................................................................................. 11
3. DESARROLLO DE LA APLICACIÓN. ..................................................................... 12
3.1 Planificación. ................................................................................................................ 12
3.1.1 Historias de Usuarios. ................................................................................................. 12
3.1.2 Plan de Entrega. .......................................................................................................... 14
3.1.3 Iteraciones. .................................................................................................................. 14
3.1.4 Reuniones. ................................................................................................................... 15
3.2 Diseño. .......................................................................................................................... 15
3.2.1 Proceso de Creación de Rutas. .................................................................................... 15
3.2.2 Proceso de Selección de Rutas. ................................................................................... 17
3.2.3 Modelo Entidad – Relación. ........................................................................................ 18
3.2.4 Reciclaje. ..................................................................................................................... 19
3.3 Desarrollo. .................................................................................................................... 19
3.3.1 Roles. ........................................................................................................................... 19
3.3.2 Creación de Ruta Mediante la Aplicación Web para Auto Compartido. .................... 21
3.3.3 Selección de Ruta Mediante la Aplicación Web para Auto Compartido. ................... 21
3.3.4 Reserva de Ruta Mediante la Aplicación Web para Auto Compartido. ..................... 22
3.4 Pruebas. ........................................................................................................................ 22
3.5 Pruebas en Navegadores Web. ..................................................................................... 22
3.6 Pruebas en Navegadores Web Dispositivos Móviles. .................................................. 26
4. PRUEBAS DE FUNCIONALIDAD Y RESULTADOS ............................................. 31
4.1 Pruebas. ........................................................................................................................ 31
vi
4.1.1 Prueba SQL Injection. ................................................................................................. 31
4.1.2 Prueba de Stress. ......................................................................................................... 33
5. CONCLUSIONES. ....................................................................................................... 35
6. RECOMENDACIONES. ............................................................................................. 36
BIBLIOGRAFÍA .................................................................................................................. 37
vii
LISTA DE FIGURAS
pág.
Figura 1. Arquitectura de tres niveles. (Deitel, 2008) ............................................................ 7
Figura 2. Fases de la Programación Extrema (Vilca, 2015) ................................................. 11
Figura 3. Proceso de Creación de Rutas. .............................................................................. 16
Figura 4. Proceso de Selección de Rutas. ............................................................................. 17
Figura 5. Modelo Entidad- Relación. ................................................................................... 18
Figura 6. Rol Administrador ................................................................................................. 19
Figura 7. Rol Usuario ........................................................................................................... 20
Figura 8. Pantalla Creación de Rutas.................................................................................... 21
Figura 9. Seleccionar ruta ..................................................................................................... 21
Figura 10. Reservación de Ruta ............................................................................................ 22
Figura 11. Pantalla de Ingreso de Credenciales Internet Explorer ....................................... 23
Figura 12. Visualización en Internet Explorer...................................................................... 23
Figura 13. Pantalla de Ingreso de Credenciales Google Chrome ......................................... 24
Figura 14. Visualización en Google Chrome ....................................................................... 24
Figura 15. Pantalla de Ingreso de Credenciales Mozilla Firefox ......................................... 25
viii
Figura 16. Visualización en Mozilla Firefox ........................................................................ 25
Figura 17. Configuración navegador móvil google chrome ................................................. 26
Figura 18. Pantalla de Ingreso de Credenciales Dispositivo Móvil ..................................... 27
Figura 19. Creación de Ruta desde un Dispositivo Móvil .................................................... 28
Figura 20. Selección de Ruta desde un dispositivo Móvil ................................................... 29
Figura 21. Reservación Ruta Dispositivo Móvil .................................................................. 30
Figura 22. Pantalla de autenticación. .................................................................................... 31
Figura 23. Prueba SQL Injection .......................................................................................... 32
Figura 24. Validación SQL Injection ................................................................................... 32
Figura 25. Configuración grupo de hilos .............................................................................. 33
Figura 26. Petición HTTP ..................................................................................................... 33
Figura 27. Informe agregado ................................................................................................ 34
Figura 28. Resultados en árbol ............................................................................................. 34
Figura A29. Acceso Auto Solidario ..................................................................................... 40
Figura A30. Información personal registro .......................................................................... 41
Figura A31. Usuario registro ................................................................................................ 42
Figura A32. Usuario no posee vehículo ............................................................................... 42
Figura A33. Registro datos vehículo .................................................................................... 43
ix
Figura A34. Confirmación usuarios ..................................................................................... 43
Figura A35. Publicar viajes .................................................................................................. 44
Figura A36. Fecha de inicio ................................................................................................. 44
Figura A37. Hora salida ....................................................................................................... 45
Figura A38. Origen ruta ....................................................................................................... 45
Figura A39. Origen ruta ....................................................................................................... 45
Figura A40. Selección Vehículo ........................................................................................... 46
Figura A41. Selección asientes disponibles ......................................................................... 46
Figura A42. Aporte pasajero ................................................................................................ 46
Figura A43. Información adicional ...................................................................................... 46
Figura A44. Botones publicar viajes .................................................................................... 47
Figura A45. Encuentra tu viaje ............................................................................................. 47
Figura A46. Filtro por Fecha ................................................................................................ 48
Figura A47. Filtro por Origen............................................................................................... 48
Figura A48. Ruta fuera de horario ........................................................................................ 48
Figura A49. Detalle de ruta .................................................................................................. 49
Figura A50. Información detalle de ruta .............................................................................. 50
Figura A51. Reserva exitosa ................................................................................................. 50
x
Figura A52. Error en la reserva ............................................................................................ 51
Figura A53. Menú usuario .................................................................................................... 51
Figura A54. Mi perfil ........................................................................................................... 52
Figura A55.Mis Vehículos ................................................................................................... 52
Figura A56. Mis rutas ........................................................................................................... 53
Figura A57. Administrador................................................................................................... 53
Figura B58. Formulario encuesta auto solidario .................................................................. 57
Figura B59. Resultados encuesta. ......................................................................................... 64
Figura B60. Análisis Urkund ................................................................................................ 65
xi
LISTA DE TABLAS
pág.
Tabla 1. Puntuación Herramientas. (Romero, 2018) .............................................................. 3
Tabla 2. Comparativo entre leguajes de programación. (Romero, 2018)............................... 3
Tabla 3. Comparativo entre entorno de desarrollo integrado (Romero, 2018)....................... 4
Tabla 4. Comparativo entre servidores de aplicaciones (Gómez, 2013) ................................ 5
Tabla 5. Comparativo entre interfaces de usuarios (Romero, 2018) ...................................... 5
Tabla 6. Comparación base de datos (Romero, 2018) ............................................................ 6
Tabla 7. Diferencias entre metodologías ágiles y no ágiles. (Letelier, 2006) ........................ 8
Tabla 8. Características y Fases de algunos métodos ágiles. (Letelier, 2006) ....................... 9
Tabla 9. Ranking de agilidad. (Letelier, 2006) ..................................................................... 10
Tabla 11. Roles XP. (Letelier, 2006) .................................................................................... 11
Tabla 12. Historias de Usuarios. ........................................................................................... 12
Tabla 13. Iteraciones............................................................................................................. 15
xii
LISTA DE ANEXOS
pág.
Anexo A……………………………………………………………………………………41
Anexo B……………………………………………………………………………………56
Anexo C……………………………………………………………………………………67
xiii
TITULO: Desarrollo de una aplicación web para vehículo compartido.
Autor: Geovanny Cristian Quimis Calvachi.
Tutor: Ing. Aldrin Ismael Flores Suarez
RESUMEN
En el presente proyecto de titulación, se desarrolló una aplicación web que permite difundir
la idea de auto compartido en la ciudad de Quito, utilizando herramientas de código abierto,
como medida para contribuir a la mejora de la movilidad e incentivar a que más personas
compartan su vehículo. La aplicación web facilitó la gestión de: usuarios, rutas y viajes. El
acceso se realiza mediante un registro, la información ingresada es verificada por el
administrador de la aplicación para que no existan problemas de seguridad.
PALABRAS CLAVE: APLICACIÓN WEB/AUTO COMPARTIDO/ MOVILIDAD/
RUTA/ SEGURIDAD
xiv
TITLE: Web development application for shared vehicle.
Author: Geovanny Cristian Quimis Calvachi.
Tutor: Ing. Aldrin Ismael Flores Suarez
ABSTRACT
In the present project, it developed a web application that allows you to disseminate the
idea of car sharing in the city of Quito, using open source tools, as a measure to contribute
to the improvement of mobility and encourage more people to share their vehicle. The web
application facilitated the management of users, routes and trips. Access is through the use
of a record, the information entered is not verified by the administrator of the application so
that there are no security problems.
KEYWORDS: WEB APPLICATION / AUTO SHARED / MOBILITY / ROUTE /
SECURITY
1
1. PRESENTACIÓN DEL PROBLEMA
1.1 Antecedentes.
En el Distrito Metropolitano de Quito debido al congestionamiento vehicular causado en
horas pico, rige una restricción en la circulación de ciertos automotores por seis horas cada
día, de acuerdo con el ultimo digito de la placa vehicular (Ordenanza Metropolitana 305 de
regulación de circulación vehicular pico y placa). Existe una subutilización del vehículo
privado, la tasa de ocupación es de 1.3 personas por vehículo (Costales,2010).
Estos aspectos afectan a la comunidad en su movilización diaria, los cuales mejorarían con
el criterio de auto compartido, ya que es una solución probada en varios países (Colombia,
Argentina, España, Portugal, etc.) generando resultados como: promover y facilitar la
solidaridad entre vecinos para ayudarse en pico y placa, aumentar el índice de ocupación
del vehículo, reducir el tráfico, mejora del medio ambiente, reducir la necesidad de
infraestructura de parqueaderos y fomentar el uso eficiente del vehículo privado.
1.2 Planteamiento del Problema.
La implementación de la medida pico y placa en la ciudad de Quito no ha sido solución,
porque esto incentivó al crecimiento del parque automotor complicando la movilidad
(Romero,2017), además un mayor número de autos circulando aumenta la contaminación.
De acuerdo a lo citado, podríamos manejar la idea de auto compartido como una alternativa
para optimizar el uso de vehículos privados.
2
1.3 Justificación.
En otros países existen aplicaciones web con este mismo objetivo de auto compartido, la
ventaja radica en que se desarrolló una aplicación web de acuerdo a la realidad de nuestra
ciudad Quito y puede ser utilizada por cualquier persona que se registre y valide la cuenta.
1.4 Objetivos.
1.4.1 Objetivo General.
Implementar y difundir la iniciativa de vehículo compartido mediante una aplicación web
para la comunidad.
1.4.2 Objetivos Específicos.
- Implementar una aplicación que administre y gestione la posibilidad de compartir
vehículo entre los miembros de la comunidad.
- Referenciar mediante mapas origen y destino de las rutas en la aplicación.
- Facilitar la búsqueda y reserva de rutas disponibles.
1.5 Alcance.
La aplicación web constara con dos perfiles: Administrador y Usuario. El perfil
Administrador permitirá gestionar usuarios. El perfil usuario permitirá publicar y encontrar
rutas, además de editar información básica personal y crear nuevos vehículos se tiene la
opción de mantener un registro histórico de los viajes realizados. La comunicación entre los
usuarios de la aplicación se la realizará mediante el número celular proporcionado por el
usuario que crea la ruta. La aplicación web será compatible para abrirla con dispositivos
móviles desde un navegador. Se tendrá una encuesta que permita conocer la experiencia de
usar la aplicación.
3
1.6 Limitaciones.
La aplicación web no posee confirmación de rutas por medio de mensajes.
La aplicación web no cuenta con respaldos automáticos de la base de datos.
No se tendrá una aplicación móvil de auto compartido.
No se tiene autenticación por medio de redes sociales.
La aplicación web no permite recuperar contraseñas.
1.7 Análisis de Herramientas de Desarrollo.
Para el análisis de herramientas se empleó la siguiente escala de medición, que se muestra
en la Tabla 1.
Tabla 1. Puntuación Herramientas.
Puntuación Niveles
0-3 Regular
4-7 Bueno
8-10 Excelente
1.7.1 Lenguajes de Programación. Entre los lenguajes que se van a analizar se
encuentran: Java, PHP y PHYTON.
Tabla 2. Comparativo entre leguajes de programación. (Romero, 2018)
Características Java PHP
Soporte Base de Datos 9 8
Compilación o Ejecución 9 9
Multiplataforma 9 9
Orientado a Objetos 9 5
Distribuido 8 7
Portabilidad 8 8
4
Documentación 9 8
Escalabilidad 9 9
Rendimiento 8 9
Popularidad 9 8
Tendencia en el mercado 9 9
Promedio 8.72 8.01
Siendo Java el lenguaje que obtuvo el promedio más alto, por tal motivo se utilizó para el
desarrollo de la aplicación web.
1.7.2 Entorno de Desarrollo Integrado.
Tabla 3. Comparativo entre entorno de desarrollo integrado (Romero, 2018)
Características
NetBeans
8
Eclipse
4.4
Curva Aprendizaje 8 8
Multiplataforma 9 9
Tiempo ejecución 9 8
Detección de errores 9 9
Proporciona un excelente soporte para el
desarrollo de aplicaciones.
9 9
Requerimientos Hardware 9 9
Configuración 9 9
Documentación 9 9
Integración otros Lenguajes de
Programación 9 9
Otros Plugin (Spring Boot) 9 9
Promedio 8.9 8.8
A pesar que no tiene el mejor promedio se eligió Eclipse 4.4 por la experticia que se tiene
en la herramienta.
5
1.7.3 Servidores de Aplicaciones. En la tabla 4 se muestra las principales características
de los servidores de aplicaciones, seleccionando JBoss para el desarrollo de la aplicación.
Tabla 4. Comparativo entre servidores de aplicaciones (Gómez, 2013)
Característica JBoss 4.2 GlassFish 2
Cumplimiento de las especificaciones de Java EE 5 parcial si
Uso de EJB 3.0 si si
Uso de JSP 2.1 y 2.5 si si
Soporte de JavaServer Faces 1.2 si si
Soporte para plug-in personalizados si si
Soporte para manejar reglas de negocio disponible disponible
Soporte para Hibernate 3.x si si
Soporte para JBoss Seam si si
Soporte de clustering si si
Soporte para conector Eclipse IDE si si
1.7.4 Interfaces de Usuarios.
Tabla 5. Comparativo entre interfaces de usuarios (Romero, 2018)
Características Icefaces Primefaces Bootfaces
Disponibilidad de componentes 8 9 9
Presentación 10 10 10
Facilidad para iniciar 9.33 9.7 10
Documentación disponible 8 9 9
Rendimiento 8 8 9
Promedio 8.666 9.14 9.4
Para la interface de usuario se selecciona Bootfaces por obtener el mejor promedio en las
características.
6
1.7.5 Motor de Base de Datos.
Tabla 6. Comparación base de datos (Romero, 2018)
Características
PostgreSQL
9.4
MySQL
5.7
Almacenamiento 10 9
Seguridades 10 10
Respaldos 10 10
Encriptación de datos 10 10
Características fundamentales 9.5 8.25
Acceso a datos 10 8.33
Funcionalidad 10 10
Promedio 9.93 9.37
El promedio más alto lo tiene PostgreSQL 9.4, por tal motivo se utilizó para el desarrollo
de la aplicación web.
7
2. MARCO TEÓRICO
2.1 Arquitectura de Aplicaciones Multinivel.
Las aplicaciones basadas en Web son aplicaciones multinivel (comúnmente conocidas
como aplicaciones de n niveles), que dividen la funcionalidad en niveles separados (es
decir, agrupaciones lógicas de funcionalidad). Aunque los niveles pueden localizarse en la
misma computadora, por lo general, los niveles de las aplicaciones basadas en Web residen
en computadoras separadas. En la figura 1 se presenta la estructura básica de una aplicación
web basada en tres niveles.
Figura 1. Arquitectura de tres niveles. (Deitel, 2008)
2.2 Metodología de Investigación.
Algunos métodos de investigación son los siguientes:
Método Deductivo: La deducción va de lo general a lo particular. El método deductivo es
aquél que parte los datos generales aceptados como valederos, para deducir por medio del
razonamiento lógico. (Rivas, 2008)
8
Método Inductivo: La inducción va de lo particular a lo general. Empleamos el método
inductivo cuando de la observación de los hechos particulares obtenemos proposiciones
generales. (Rivas, 2008)
En el proyecto se utilizó el método deductivo para el desarrollo de la aplicación web y para
el documento del trabajo de titulación.
2.3 Metodología de Desarrollo de Software.
2.3.1 Revisión Metodologías.
En la Tabla 7 se muestra las diferencias entre los métodos tradicionales y ágiles en el
desarrollo de software, de esta manera se sustentará la elección del método ágil que se
adapta para el Desarrollo de una Aplicación Web para vehículo compartido.
Tabla 7. Diferencias entre metodologías ágiles y no ágiles. (Letelier, 2006)
Metodologías Ágiles Metodologías Tradicionales
Constantes cambios durante el proyecto Resistencia a los cambios durante el
proyecto.
Menor control en los procesos Se tienen procesos con políticas o normas
No hay contrato Se tiene un contrato
Del equipo de desarrollo forma parte el
cliente.
Se utilizan reuniones para que el cliente
interactúe.
Grupos pequeños (<10 integrantes) y
trabajando en el mismo sitio
Grupos grandes y posiblemente
distribuidos
9
Pocos roles Mas roles
Menos énfasis en la arquitectura del
software
La arquitectura del software es esencial y
se expresa mediante modelos
Existen varios métodos ágiles de desarrollo de software, se realizará un análisis de 3
métodos con sus características y fases descritos en la Tabla 8.
Tabla 8. Características y Fases de algunos métodos ágiles. (Letelier, 2006)
Scrum Crystal XP
Es indicado para proyectos con
entornos complejos, donde se
necesita obtener resultados
rápidos, requisitos cambiantes o
poco definidos.
Se subdivide en varios tipos
de metodologías en función
a la cantidad de personas
que vaya a conformar el
proyecto. Puede ser usado
en proyectos pequeños,
consiste en valores, técnicas
y procesos. Crystal da vital
importancia a las personas
que componen el equipo
de un proyecto.
Integra un rango de buenas
prácticas de programación,
como las liberaciones frecuentes
del software, el mejoramiento
continuo del software y la
participación del cliente en el
equipo de desarrollo.
Todas las pruebas deben
ejecutarse con éxito cuando un
incremente se integra en el
sistema.
Fases Fases Fases
1. Pre-juego: Planeamiento. 1. Entrega frecuente. 1. Planificación.
2. Pro-juego: Montaje. 2. Comunicación osmótica. 2. Diseño.
3. Juego o Desarrollo. 3. Mejora Reflexiva. 3. Codificación.
4. Pos-Juego: Liberación. 4. Seguridad Personal. 4. Pruebas.
5. Foco.
6. Fácil acceso a usuarios
expertos.
10
La Tabla 9 muestra las características de cada metodología en base a un índice,
destacándose como las más agiles: XP, Scrum y Crystal.
Tabla 9. Ranking de agilidad. (Letelier, 2006)
Crystal Scrum XP
Resultados 5 5 5
Simplicidad 4 5 5
Adaptabilidad 5 4 3
Excelencia Técnica 3 3 4
Prácticas de colaboración 4 4 5
Media 4.2 4.2 4.4
Por lo cual se va a utilizar en el Desarrollo de una Aplicación Web para vehículo
compartido la metodología XP por tener el valor más alto en promedio.
2.3.2 Programación Extrema (XP). XP es el proceso ágil de más uso, organizada con
cuatro actividades estructurales: planeación, diseño, codificación y pruebas. XP sugiere
cierto número de técnicas innovadoras y poderosas, permite a un equipo ágil generar
entregas frecuentes de software, posee características y funcionalidades, que han sido
descritas y clasificadas según su prioridad por los participantes. (Pressman, 2010)
En la figura 3 se especifica más a detalle las fases de la programación extrema.
7. Ambiente técnico con
prueba automatizada.
11
Figura 2. Fases de la Programación Extrema (Vilca, 2015)
2.3.3 Roles XP.
En la tabla 5 se describirán los Roles de la Programación Extrema.
Tabla 10. Roles XP.
Roles Responsabilidades
Programador Es el encargado de crear el código del sistema.
Cliente Escribir las historias de usuarios.
Tester Ejecuta las pruebas y ayuda al cliente en las mismas.
Tracker Realiza seguimiento y retroalimentación.
Coach Responsable de todo el proceso.
Consultor
Suministra conocimientos técnicos necesarios en el
proyecto.
Gestor (Big
Boss) Encargado de tomar decisiones.
12
3. DESARROLLO DE LA APLICACIÓN.
Se aplicará la metodología ágil XP para el Desarrollo de una Aplicación Web para vehículo
compartido en base al análisis realizado.
3.1 Planificación.
3.1.1 Historias de Usuarios.
De las aplicaciones revisadas de auto compartido con en el Tutor del Proyecto se decidió
describir los siguientes requerimientos o características que debe tener el Desarrollo de una
Aplicación Web para vehículo compartido.
Tabla 11. Historias de Usuarios.
Número Nombre Historia Descripción
1 Diseño de la base de
datos
- Creación de tablas y relaciones de la base de
datos.
2 Registro de Usuarios - Desplegar un formulario para el ingreso de:
información personal, usuario y Vehículo.
- Se podrá ingresar o no el vehículo esto
determinará la pantalla para el acceso después
de la autenticación.
- Existirá una pantalla de confirmación de los
datos ingresados.
- Se puede volver a las pantallas anteriores en
el caso de que los datos ingresados no sean
correctos.
- Los datos de las pantallas anteriores se
13
mantienen a excepción de la contraseña que
tendrá que ser ingresada nuevamente.
- Definir las respectivas validaciones de cada
campo que se llena en el formulario.
3 Roles de usuarios - Crear dos tipos de roles: Administrador y
usuario.
- El Administrador validara al usuario
activándolo o desactivándolo.
- El usuario si tiene vehículo ingresara como
primera pantalla a Publicar los viajes.
- El usuario sino tiene vehículo ingresara como
primera pantalla a Encuentra tu viaje.
4 Publicar Viajes - Crear una fecha y hora de inicio para la ruta.
- Ingresar mediante referenciación de Google
maps el origen y el destino de la ruta dentro
del mapa de Ecuador.
- Cada usuario podrá registrar más de un auto
los cuales se desplegarán para la selección el
momento de crear la ruta.
- Mostrar un aporte en dólares que será
opcional.
- Mostrar información adicional para completar
el ingreso de la ruta.
- Al crear la ruta mediante un mensaje en
pantalla se confirma que el ingreso fue
exitoso, se mantiene la pantalla habilitado el
botón de limpiar para un nuevo ingreso.
5 Encuentra tu Viaje - Mostrar todas las rutas activas para la
selección.
- Filtrar por fecha las rutas activas para realizar
una búsqueda.
14
- Las rutas se inactivarán automáticamente
cuando no se tenga asientos disponibles y
cuando ya se haya cumplido la hora de salida.
6 Detalle de la Ruta - Mostrar el detalle de la ruta con la
información de quien creo la ruta y los datos
del vehículo.
- Si los tiempos del desarrollo de la aplicación
lo permiten colocar comentarios a cada ruta.
- Permitir la reserva de un asiento por cada
usuario.
7 Mi Perfil - Edición de la información básica del usuario.
8 Mis Vehículos - Edición de la información básica del o los
vehículos.
- Creación de un nuevo vehículo.
9 Mis Rutas - Se muestra un historial de las rutas y las rutas
actuales.
- El usuario que creó una ruta tiene la opción
de cancelar la misma.
3.1.2 Plan de Entrega.
Para el Desarrollo de una Aplicación Web para vehículo compartido se mantuvieron
reuniones con el objetivo de crear las historias de usuarios de la Tabla 6, se acordaron
entregas semanales para la elaboración del proyecto hasta cumplir con el tiempo de 6
meses.
3.1.3 Iteraciones.
Se designo 6 iteraciones para el desarrollo del proyecto las cuales se detallan en la Tabla 7,
las entregas se realizaron en los tiempos acordados y con las pruebas necesarias.
15
Tabla 12. Iteraciones.
Número de Número de Historia Contenido de las
Iteración de Usuario Historias
1 1 Diseño de la base de datos.
2 Registro de Usuarios.
2 3 Roles de Usuarios.
3 7 Mi Perfil
4 4 Publicar Viajes
5 Encuentra tu viaje
5 6 Visualizar Rutas
6 8 Mis Vehículos
9 Mis Rutas
3.1.4 Reuniones.
Las reuniones para las entregas se realizaron una vez por semana en el horario de 13:30 a
14:30 en las cuales se definieron nuevos requerimientos y mejoras para el Desarrollo de una
Aplicación Web para vehículo compartido.
3.2 Diseño.
En base a revisiones de aplicaciones de auto compartido se decidió estructurarlo de la
manera más fácil que no tenga complicaciones para gestionar las rutas y almacenarlas en
una base de datos para que se tenga un historial para cada usuario.
3.2.1 Proceso de Creación de Rutas.
Se diseño en la Figura 3, el proceso de creación de Rutas que funcionara en el Desarrollo de
una Aplicación Web para vehículo compartido.
16
Figura 3. Proceso de Creación de Rutas.
17
3.2.2 Proceso de Selección de Rutas.
Se diseño en la Figura 4, el proceso de selección de Rutas que funcionara en el Desarrollo
de una Aplicación Web para vehículo compartido, teniendo una referencia del Origen y del
destino.
Figura 4. Proceso de Selección de Rutas.
18
3.2.3 Modelo Entidad – Relación.
En la Figura 5 se muestra el modelo entidad – relación usado para el Desarrollo de una
Aplicación Web para vehículo compartido el cual contiene: 5 tablas principales con las
cuales se sigue correctamente el flujo de creación y selección de rutas, 3 tablas adicionales
que se deja para una futura mejora de la aplicación en cuanto a notificaciones y
calificaciones de usuarios.
Figura 5. Modelo Entidad- Relación.
19
3.2.4 Reciclaje.
Durante el Desarrollo de una Aplicación Web para vehículo compartido, se tuvo
requerimientos que no fueron tomados en cuenta al principio, por lo que se realizó una
refactorización en el caso de eliminación de rutas automáticamente y la inclusión del
código postal en los datos ingresados por los usuarios.
3.3 Desarrollo.
Para la implementación de la Aplicación Web para vehículo compartido, se decidió
realizarla directamente con el tutor del proyecto en un servidor temporal y de manera
remota.
3.3.1 Roles.
La aplicación Web para auto compartido tiene dos perfiles: Administrador y Usuario, los
cuales se detallarán a continuación:
• Rol Administrador.
El Rol administrador tiene los roles indicados en la Figura 6, también sería el encargado de
visualizar reportes en el caso de una mejora que se podría realizar a la aplicación.
Figura 6. Rol Administrador
20
• Rol Usuario.
Los roles de los usuarios se detallan en la Figura 7.
Figura 7. Rol Usuario
21
3.3.2 Creación de Ruta Mediante la Aplicación Web para Auto Compartido.
En la Figura 8 se muestra la pantalla para la creación de Rutas, la cual permite referenciar
el Origen y el destino de cualquier lugar dentro del mapa de Ecuador.
Figura 8. Pantalla Creación de Rutas
3.3.3 Selección de Ruta Mediante la Aplicación Web para Auto Compartido.
En la Figura 9 se muestran todas las rutas vigentes que puede ser filtradas para encontrarlas
de acuerdo a la fecha, destino y origen, además se informa del número de asientos
disponibles.
Figura 9. Seleccionar ruta
22
3.3.4 Reserva de Ruta Mediante la Aplicación Web para Auto Compartido.
En la Figura 10 se muestra la pantalla para la Reserva de la Ruta, la cual muestra el detalle
de cada ruta para información del usuario.
Figura 10. Reservación de Ruta
3.4 Pruebas.
3.5 Pruebas en Navegadores Web.
Se va a verificar el despliegue de la aplicación web para auto compartido en los diferentes
navegadores.
• Internet Explorer 11
En las siguientes Figuras se muestra la pantalla de ingreso de credenciales y de
visualización de los campos en el navegador Internet Explorer de la Aplicación Web para
auto compartido.
23
Figura 11. Pantalla de Ingreso de Credenciales Internet Explorer
Figura 12. Visualización en Internet Explorer
24
• Google Chrome.
En las siguientes Figuras se muestra la pantalla de ingreso de credenciales y de
visualización de los campos en el navegador Google Chrome de la Aplicación Web para
auto compartido.
Figura 13. Pantalla de Ingreso de Credenciales Google Chrome
Figura 14. Visualización en Google Chrome
25
• Mozilla Firefox.
En las siguientes Figuras se muestra la pantalla de ingreso de credenciales y de
visualización de los campos en el navegador Mozilla Firefox de la Aplicación Web para
auto compartido.
Figura 15. Pantalla de Ingreso de Credenciales Mozilla Firefox
Figura 16. Visualización en Mozilla Firefox
26
3.6 Pruebas en Navegadores Web Dispositivos Móviles.
La prueba se la va a realizar en un simulador de teléfono móvil que tiene instalado el
navegador Google Chrome.
Modelo: Sony Xperia XA Ultra.
Tamaño de pantalla: 1080 x 1920
En la Figura 18 se muestra la configuración a realizar en el navegador del dispositivo móvil
para que la visualización sea óptima.
Figura 17. Configuración navegador móvil google chrome
27
En la Figura 18 se muestra la pantalla de autenticación desde un dispositivo móvil,
permitiendo el acceso para ingresar a la aplicación.
Figura 18. Pantalla de Ingreso de Credenciales Dispositivo Móvil
28
Figura 19. Creación de Ruta desde un Dispositivo Móvil
29
Figura 20. Selección de Ruta desde un dispositivo Móvil
30
Figura 21. Reservación Ruta Dispositivo Móvil
En el resto de Figuras muestran las pantallas principales de la aplicación web para vehículo
desde un dispositivo móvil, visualizándose de mejor manera en dispositivos que tengan una
mayor resolución y tamaño de pantalla.
31
4. PRUEBAS DE FUNCIONALIDAD Y RESULTADOS
4.1 Pruebas.
4.1.1 Prueba SQL Injection.
La prueba de inyección SQL se la va a realizar al ingreso de los usuarios en la aplicación.
En la Figura 12 se muestran los campos que se podrían utilizar para el acceso sin un
registro.
Figura 22. Pantalla de autenticación.
Se digita la cadena: 'or'1'='1 en usuario y en clave mostrado en la Figura 13.
32
Figura 23. Prueba SQL Injection
Al ingresar la cadena se muestra un error de credenciales en la Figura 14, de no ser así se
tendría acceso a la aplicación sin registrarse. En este caso a aplicación web para auto
compartido no permitió el acceso cumpliendo las configuraciones de seguridad.
Figura 24. Validación SQL Injection
33
4.1.2 Prueba de Stress.
Se utilizó la herramienta Apache JMeter para realizar las siguientes pruebas de carga o
rendimiento:
En la figura 25 se muestra la configuración para 500 usuarios simultáneamente.
Figura 25. Configuración grupo de hilos
Se ingresa la dirección IP del servidor en el cual se encuentra la aplicación el puerto y la
ruta a donde se realizarán las peticiones.
Figura 26. Petición HTTP
34
En la figura 27 y 28 se muestran los reportes que ofrece la herramienta JMeter al realizar la
prueba.
Figura 27. Informe agregado
Figura 28. Resultados en árbol
Esta prueba se realizó con 500 y 1000 usuarios, verificando que el acceso a la aplicación
web no genere errores.
35
5. CONCLUSIONES.
La aplicación web para vehículo compartido permite gestionar rutas de una manera fácil,
mostrándose las rutas que tienen asientos disponibles y detallando la información para su
respectiva reserva.
El acceso a la aplicación web para vehículo compartido se lo puede realizar desde cualquier
navegador web tanto para computadores como dispositivos móviles.
La aplicación web para vehículo compartido permite actualizar datos del perfil del usuario,
crear vehículos y mantener un historial de los viajes realizados por cada usuario.
En la aplicación web para auto compartido se utilizó Google Maps para mostrar mediante
un mapa la ubicación exacta del origen y el destino de cada ruta.
Mediante un proceso que se ejecuta periódicamente en la base de datos de la aplicación
web para vehículo compartido, se controla que las rutas estén activas únicamente si están
dentro de la hora establecida.
Los filtros utilizados para la selección de rutas en la aplicación web para vehículo
compartido, además del orden que se muestran las rutas, facilitaron y guiaron a los usuarios
hacia la ruta de su preferencia.
36
6. RECOMENDACIONES.
El mantenimiento de la aplicación web para auto compartido se lo financiara mediante
publicidad, por lo que es necesario que sea difundida para tener una gran cantidad de
usuarios registrados.
Se recomienda tener una validación online del récord policial de cada usuario por motivos
de seguridad.
La aplicación web para auto compartido se recomienda abrirla desde dispositivos móviles
que tengan un tamaño de pantalla grande, por ejemplo: tablets, en el caso que la pantalla
sea de menor tamaño configurar el navegador como sitio de escritorio.
Se recomienda tener un módulo de calificación de usuarios que no fue considerado en el
diseño de la aplicación.
Se recomienda activar la recuperación de contraseñas mediante correo electrónico cuando
la aplicación web tenga su propio dominio.
Se recomienda tener una adecuada infraestructura para el óptimo funcionamiento de la
aplicación web.
37
BIBLIOGRAFÍA
Pressman, Roger. (2010). Ingeniería del Software un enfoque práctico. México: Mc Graw
Hill Editorial.
Sommerville, Ian. (2011). Ingeniería de Software. México: Pearson Educación.
Letelier (2006). Metodologías ágiles para el desarrollo de software: eXtreme Programming
(XP). Obtenido de: http://www.cyta.com.ar/ta0502/v5n2a1.htm.
Red Hat JBoss (2016). Red Hat JBoss Enterprise Application Platform. Obtenido de:
https://www.redhat.com/es/technologies/jboss-middleware/application-platform.
Vilca, Wladimir. (2015). Sistema para uso y control de la flota vehicular de la Universidad
Central del Ecuador. Obtenido de: http://www.dspace.uce.edu.ec/handle/25000/5170
Espinosa, Sophia. (2015). Auto compartido ¿una práctica de competencia desleal?.
Obtenido de: http://repositorio.usfq.edu.ec/handle/23000/4804
Infobae (2015). Carpooling: qué es y cómo funciona. Obtenido de:
https://www.infobae.com/2015/12/16/1776933-carpooling-que-es-y-como-funciona/
Costales, Vicente (2010). La tasa de ocupación es de 1,3 personas por auto en la ciudad.
Obtenido de: http://www.maz.ch/arbeiten/deza/wenzler/el_comercio_trafico.pdf.
Romero, Daniel (2017). El parque automotor aumenta y complica más la movilidad.
Obtenido de: http://www.elcomercio.com/actualidad/aumento-parque-automotor-quito-
movilidad.html
38
Romero, José (2017). Sistema Web para la Gestión y Control de la Entrada, Salida y
Mantenimiento Vehicular de la Universidad Central del Ecuador. Obtenido de:
http://www.dspace.uce.edu.ec/handle/25000/14331
Gomez, Jesus (2013). Análisis Comparativo Tomcat, JBoss y GlassFish. Obtenido de:
https://github.com/germaaan/trabajos_universidad/blob/master/3GII/ISE/trabajos/trabajo_fi
nal/README.md
Rivas, Colbert (2008). Método Inductivo y Método Inductivo. Obtenido de:
http://colbertgarcia.blogspot.com/2008/04/metodo-deductivo-y-metodo-inductivo.html
Bevilacqua, Juan (2010). Pruebas de estrés, carga y rendimiento. Obtenido de:
http://juanbevilacqua.blogspot.com/2010/03/pruebas-de-estres-carga-y-rendimiento.html
39
ANEXOS
40
ANEXO A
MANUAL DE USUARIO
Ingreso a la Aplicación.
Para el acceso a la aplicación desde cualquier navegador se debe ingresar en la siguiente
dirección: http://localhost:8081/acuWeb/, la pantalla de inicio que se muestra es la
siguiente:
Figura A29. Acceso Auto Solidario
Si es un usuario previamente registrado ingresar las credenciales, caso contrario completar
el registro.
41
Registro de Usuarios.
Para el registro de usuarios se tiene los siguientes formularios:
• Información Personal: Son campos obligatorios para la identificación de cada
usuario.
Número de cédula: Ingresar 10 dígitos sin guion.
Nombres: Ingresar de preferencia los dos nombres.
Apellidos: Ingresar de preferencia los dos apellidos.
Dirección: La dirección completa del domicilio.
Teléfono: Puede ser opcional para el ingreso del número convencional.
Celular: El número celular sirve para la coordinación de los usuarios en las rutas.
Correo: El correo personal de cada usuario.
Código Postal: Es un campo importante para tener una ubicación exacta, el cual
consta de 6 dígitos, en caso de no conocerlo automáticamente se direcciona al
link: http://www.codigopostal.gob.ec/, al dar click en el nombre del campo.
Figura A30. Información personal registro
42
• Usuario.
La clave a ingresar debe ser de 6 a 15 caracteres, tener al menos una letra mayúscula , una
letra minúscula, un digito y un carácter especial (@ # $ % ) para que sea una clave segura.
Figura A31. Usuario registro
• Vehículo.
Se permite registrar el vehículo del usuario, en caso de no tenerlo pasar al siguiente
formulario.
Figura A32. Usuario no posee vehículo
En caso de tener vehículo hay que registrar la siguiente información:
Color: Seleccionar el color del Vehículo.
Marca: Marca y modelo del vehículo.
Placa: Única para cada vehículo y de acuerdo al formato utilizado en Ecuador.
43
Número de asientos: Asientos disponibles para cada ruta.
Figura A33. Registro datos vehículo
• Confirmación.
Se muestra los datos ingresados para que el usuario los confirme, cabe indicar que de no
estar correcto puede regresar a los formularios anteriores.
Se recomienda acceder al anexo de Términos y Condiciones de Auto Solidario antes de
presionar en Aceptar.
Figura A34. Confirmación usuarios
44
Publicar Viajes.
En caso de registrar vehículos, la primera pantalla a mostrarse es la de Publicar Viajes, se
detallará los datos a ingresar en la creación de la ruta:
Figura A35. Publicar viajes
Fecha de Inicio: Fecha a la cual iniciará la ruta.
Figura A36. Fecha de inicio
45
Hora de salida: Hora a la cual se coordinará para el encuentro y salida de la ruta.
Figura A37. Hora salida
Origen: De preferencia ingresar barrios o direcciones exactas para detección en el mapa.
Obligatorio presionar el botón para ubicar en al mapa.
Figura A38. Origen ruta
Destino: De preferencia ingresar barrios o direcciones exactas para detección en el mapa.
Obligatorio presionar el botón para ubicar en al mapa.
Figura A39. Origen ruta
Vehículo: Se podrá seleccionar uno de los vehículos registrados con el cual se va a crear la
ruta.
46
Figura A40. Selección Vehículo
Asientos disponibles: De los asientos registrados se puede decidir ese momento que
número elegir.
Figura A41. Selección asientes disponibles
Aporte Pasajero: Es un valor que se definirá si es necesario para cubrir los gastos del viaje,
de preferencia por tratarse de auto solidario tendrá un valor 0.
Figura A42. Aporte pasajero
Información Adicional: Se puede ingresar información que puede ser relevante para cada
ruta, como lugares específicos de encuentro, por ejemplo:
Figura A43. Información adicional
47
En esta pantalla existe dos botones que nos permiten crear una ruta y limpiar la pantalla
para el ingreso de una nueva.
Figura A44. Botones publicar viajes
Encuentra tu Viaje.
Se muestra el listado de todas las rutas activas, es decir rutas con asientos disponibles y
rutas con hora de salida menor a la hora del servidor en la que se encuentre la aplicación
web, caso contrario las rutas se inhabilitan automáticamente.
Adicionalmente existen filtros que permite visualizar la ruta adecuada para cada usuario.
Figura A45. Encuentra tu viaje
En la Figura A46 se muestra un ejemplo de filtro por fecha con la ruta, adicionalmente se
puede filtrar por Origen, Destino.
48
Figura A46. Filtro por Fecha
Figura A47. Filtro por Origen
En caso que la hora de salida haya pasado y se intenta seleccionar la ruta, se despliega un
mensaje indicado que la ruta no se encuentra dentro del horario disponible.
Figura A48. Ruta fuera de horario
49
Detalle de Ruta.
En el detalle de ruta se muestra toda la información para que el usuario decida si puede
realizar una reservación, cada usuario puede reservar únicamente un asiento, pero si puede
registrarse en otras rutas, en este caso si se decide no ir en alguna ruta, en el menú Mis
Rutas que se explicara más adelante podrá eliminar y liberar el asiento disponible.
Figura A49. Detalle de ruta
En la Figura A49 se encuentra todo el detalle de la ruta que se muestra antes de realizar la
reserva, de esta manera se podrá coordinar directamente con el conductor mediante el
número celular cualquier información adicional.
50
Figura A50. Información detalle de ruta
Al momento de reservar se indica mensajes de reserva exitosa o si ya está registrado se
muestra un error.
Figura A51. Reserva exitosa
51
Figura A52. Error en la reserva
Menú Usuario.
Existen tres menús en la aplicación web que permite: editar información, crear nuevos
vehículos o eliminarlos y tener un historial de las rutas.
Figura A53. Menú usuario
• Mi Perfil.
La información que se puede editar es: teléfono, celular y correo electrónico.
52
Figura A54. Mi perfil
• Mis Vehículos.
Los usuarios pueden agregar nuevos vehículos para la creación de rutas así mismo
eliminarlos.
Figura A55.Mis Vehículos
• Mis Rutas.
Se tiene la opción de eliminar la reservar de la ruta, esto libera un asiento disponible en la
pantalla de rutas activas de ser el caso, además de guardar un historial que servirá de
respaldo de los viajes realizados.
53
Figura A56. Mis rutas
Administrador.
El usuario administrador puede activar o desactivar los usuarios en el caso que se encuentre
información ingresada que no sea correcta.
Figura A57. Administrador
54
ANEXO B
ENCUESTA AUTO SOLIDARIO
En la aplicación web para auto compartida se encuentra la opción de comentar la
experiencia mediante una encuesta que solo tienen acceso los usuarios registrados.
A continuación, se muestra el formulario de la encuesta realizada:
55
56
57
Figura B58. Formulario encuesta auto solidario
58
Los resultados de una muestra de 24 usuarios que utilizaron la aplicación subida a un
servidor de prueba son los siguientes:
59
60
61
62
63
64
Figura B59. Resultados encuesta.
65
ANEXO C
ANÁLISIS URKUND
Se realizó el análisis del documento informe final mediante la herramienta Urkund para
detectar posibles plagios, obteniendo un 0% de similitud.
Figura B60. Análisis Urkund