scieee AI-readable full text Open interactive document viewer

WalkingGes

Urbón Domínguez, Fernando

Abstract

Grado en Ingeniería Informática

Full text

E.T.S Ingenier´ıa Inform´atica Trabajo Fin de Grado Grado en Ingenier´ıa Inform´atica Menci´on Ingenier´ıa de Software WalkingGes Autor: D. Fernando Urb´on Dom´ınguez . E.T.S Ingenier´ıa Inform´atica Trabajo Fin de Grado Grado en Ingenier´ıa Inform´atica Menci´on Ingenier´ıa de Software WalkingGes Autor: D. Fernando Urb´on Dom´ınguez Tutor: D˜na. Margarita Gonzalo Tasis i Resumen Internet forma parte de nuestro d´ıa a d´ıa y siempre estamos conectados. Una de las cosas para las que solemos entrar en internet es consultar informaci´on acerca de rutas y senderos para hacer con nuestra familia o amigos. Existen websites donde se pueden compartir las rutas que realizamos y podemos ver datos sobre ellas. Cada website ofrece unas caracter´ısticas diferentes, pero en muchos de estos sitios no podemos compartir nuestras publicaciones solo con nuestros amigos y simplemente podemos compartir nuestras actividades p´ublicamente para que lo vean todos los usuarios que accedan. Adem´as, nos encontramos con funcionalidades de pago que hace que muchos usuarios dejen de usar estas aplicaciones, porque no est´an dispuestos a pagar por ello. Este trabajo consistir´a en desarrollar una aplicaci´on para poder compartir senderos, rutas e informaci´on sobre estos. Podremos elegir con quien compartir nuestras publicaciones y toda la funcionalidad ser´a gratuita. ii Abstract Internet is part of our daily life and we are always interconnected. One of the reasons why we usually connect to internet is to try to find information about routes and trails to do with our family and friends. There are websites where the routes we take, can be shared and we can see data about them. Each website offers different characteristics, but in many of these sites we cannot share our publications only with our friends and we can simply share our activities publicly so that all users who access it can see it. We also find payment functionalities that make many users stop using these applications, because they are not willing to pay for it. This work will consist on developing an application to share trails, routes and information about them. With it we will be able to choose who we share our publications with and all the functionality will be free. iii Agradecimientos Me gustar´ıa agradecer el apoyo que he recibido a toda mi familia, especialmente, a mis padres y mi hermana, con quienes convivo y han vivido de cerca conmigo esta etapa que, en ocasiones, no ha resultado nada f´acil. Tambi´en quiero agradecer a mis amigos por haber estado ah´ı siempre, en los momentos f´aciles y dif´ıciles y que tantas veces nos hemos servido de apoyo unos a otros. Y por supuesto, no quiero olvidarme de esas personas que ya no est´an y tanto deseaban verme terminar y que est´en d´onde est´en, s´e que me han enviado su fuerza y ver´an mis logros con una sonrisa. GRACIAS A TODOS iv ´ Indice de contenido 1. Introducci´on 1 1.1. Motivaci´on.................................... 1 1.2. Objetivos .................................... 1 1.3. Contenidodelamemoria............................ 2 1.4. Contexto..................................... 2 1.5. Websitesexistentes............................... 3 1.5.1. Wikiloc ................................. 3 1.5.2. Strava .................................. 8 1.5.3. Cicloide ................................. 13 1.5.4. Misrutas................................. 16 2. Gesti´on y planificaci´on del proyecto 21 2.1. Introducci´on................................... 21 2.2. Gesti´onderiesgos................................ 22 2.2.1. Identificaci´on y an´alisis de los riesgos . . . . . . . . . . . . . . . . . 23 2.2.2. Planderiesgos ............................. 24 2.3. Planificaci´on................................... 27 2.3.1. Visi´on general del proyecto . . . . . . . . . . . . . . . . . . . . . . . 27 2.3.2. Recursos................................. 27 2.3.3. Entregables ............................... 28 2.3.4. Organizaci´on del proyecto . . . . . . . . . . . . . . . . . . . . . . . 29 2.3.5. Distribuci´on temporal del proyecto . . . . . . . . . . . . . . . . . . 30 2.3.6. Seguimiento y supervisi´on de riesgos . . . . . . . . . . . . . . . . . 31 2.3.7. Costes.................................. 31 3. An´alisis 33 3.1. Requisitos.................................... 33 3.1.1. Requisitos funcionales . . . . . . . . . . . . . . . . . . . . . . . . . 33 3.1.2. Requisitos no funcionales . . . . . . . . . . . . . . . . . . . . . . . . 35 3.1.3. Requisitos de informaci´on . . . . . . . . . . . . . . . . . . . . . . . 35 3.2. Casosdeuso................................... 36 3.2.1. Diagrama de casos de uso . . . . . . . . . . . . . . . . . . . . . . . 36 3.2.2. Descripci´on de casos de uso . . . . . . . . . . . . . . . . . . . . . . 37 3.3. Modelodedominio ............................... 46 3.3.1. Descripci´on de las clases del modelo de dominio . . . . . . . . . . . 46 v vi ´ INDICE DE CONTENIDO 4. Dise˜no 49 4.1. Arquitectura................................... 49 4.2. Patronesutilizados ............................... 52 4.2.1. Patr´on Modelo-Vista-Presentador (MVP) . . . . . . . . . . . . . . . 52 4.2.2. D.A.O (Data Object Access) . . . . . . . . . . . . . . . . . . . . . . 53 4.3. Diagramas de secuencia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 4.3.1. CU1Registro .............................. 55 4.3.2. CU2 Iniciar sesi´on . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 4.3.3. CU3 Cerrar sesi´on . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 4.3.4. CU4 Administrar publicaciones . . . . . . . . . . . . . . . . . . . . 58 4.3.5. CU5 Crear publicaci´on . . . . . . . . . . . . . . . . . . . . . . . . . 59 4.3.6. CU6 Eliminar publicaci´on . . . . . . . . . . . . . . . . . . . . . . . 60 4.3.7. CU7 Buscar publicaci´on . . . . . . . . . . . . . . . . . . . . . . . . 61 4.3.8. CU8 Buscar usuario . . . . . . . . . . . . . . . . . . . . . . . . . . 62 4.3.9. CU9A˜nadirruta ............................ 63 4.3.10. CU10 Eliminar ruta . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 4.3.11. CU11 A˜nadir amigo . . . . . . . . . . . . . . . . . . . . . . . . . . 65 4.3.12. CU12 Eliminar amigo . . . . . . . . . . . . . . . . . . . . . . . . . . 66 4.3.13.CU13Verperfil............................. 67 4.3.14. CU14 Modificar datos de usuario . . . . . . . . . . . . . . . . . . . 68 4.3.15. CU15 Modificar foto de perfil . . . . . . . . . . . . . . . . . . . . . 69 4.3.16. CU16 Modificar configuraci´on privacidad . . . . . . . . . . . . . . . 70 4.3.17. CU17 Eliminar usuario . . . . . . . . . . . . . . . . . . . . . . . . . 71 4.4. Basededatos .................................. 72 4.5. Usabilidad.................................... 73 4.5.1. Atributos de usabilidad . . . . . . . . . . . . . . . . . . . . . . . . . 73 4.5.2. ¿A qui´en va destinada la aplicaci´on que se va a desarrollar? . . . . . 74 5. Implementaci´on 75 5.1. Entornotecnol´ogico............................... 75 5.1.1. Herramientas utilizadas en el desarrollo del proyecto . . . . . . . . . 75 5.1.2. Tecnolog´ıas usadas en el proyecto . . . . . . . . . . . . . . . . . . . 75 5.1.3. Seguridad de la base de datos . . . . . . . . . . . . . . . . . . . . . 78 6. Pruebas 79 7. Conclusiones y trabajo futuro 85 7.1. Conclusiones................................... 85 7.2. Trabajofuturo ................................. 85 Anexo 87 Manual de instalaci´on 89 Manual de usuario 93 Bibliograf´ıa 104 CAP´ ITULO 1. INTRODUCCI ´ ON 3 Publicaciones y rutas Es importante distinguir entre publicaciones y rutas. Las rutas ser´a simplemente el mapa con el recorrido que se ha realizado. Una publicaci´on estar´a compuesta por un t´ıtulo, una descripci´on, una ruta e im´agenes. Formato de los mapas Aunque hay varios formatos de archivo para los mapas, se ha decidido usar el formato gpx, debido a que es el m´as extendido. GPX establece una forma est´andar para el intercambio y almacenamiento de informaci´on de mapas en dispositivos GPS, tel´efonos inteligentes y ordenadores. Debido al formato GPX, el software de un dispositivo puede leer datos creados en diferentes equipos. 1.5. Websites existentes Antes de desarrollar el proyecto, es conveniente conocer otros websites y aplicaciones m´oviles que existen actualmente, as´ı como analizar sus virtudes y carencias. Procederemos a analizar sitios similares, veremos sus ventajas y desventajas, una peque˜na descripci´on y conclusiones sobre estas. 1.5.1. Wikiloc Wikiloc [4] es uno de los websites m´as famosos sobre rutas y senderos con m´as de 7 millones y medio de usuarios registrados y casi 22 millones de rutas compartidas. En este website podemos subir las rutas, tanto desde nuestro dispositivo m´ovil como desde nuestro ordenador, subiendo un archivo gpx o creando la ruta manualmente. Nos permite crear las rutas con casi 80 deportes diferentes, divididos en categor´ıas: a pie, bicicleta, escalada, nieve, agua, motor, con animales, aire, sobre ruedas... Es un website bastante completo, pero para acceder a todas sus funcionalidades hay que pagar una tarifa y as´ı podremos consultar la meteorolog´ıa, navegar sin anuncios, buscar rutas por usuario, etc. Adem´as, este website tambi´en dispone de aplicaci´on para iOS y Android para poder consultar y subir rutas con nuestro tel´efono m´ovil. Para descargar la aplicaci´on solo hay que buscar Wikiloc en la tienda de iOS o Android e instalarla. Para acceder a la p´agina s´olo hay que entrar en su url: www.wikiloc.com A continuaci´on se muestran varias capturas de pantalla con algunas de las funciones que nos ofrece Wikiloc en su website: . 4CAP´ ITULO 1. INTRODUCCI ´ ON Figura 1.1: Wikiloc. Filtros b´usqueda En la figura 1.1 podemos ver los filtros que Wikiloc nos proporciona para poder hacer una b´usqueda m´as concreta y encontrar m´as r´apidamente la ruta que queremos encontrar. . CAP´ ITULO 1. INTRODUCCI ´ ON 5 Figura 1.2: Wikiloc. Resultados de b´usqueda En la figura 1.2 vemos las rutas disponibles insertando en el cuadro de b´usqueda la palabra Valladolid. En cada ruta que nos muestra podemos ver con qu´e deporte se realizo la ruta y algunas caracter´ısticas c´omo la distancia, el desnivel, las valoraci´on que ha recibido del resto de usuarios y algunas im´agenes. . 6CAP´ ITULO 1. INTRODUCCI ´ ON Figura 1.3: Wikiloc. Detalles de ruta En la figura 1.3 nos muestra los detalles de una de las rutas que hab´ıamos encontrado en la b´usqueda anterior. En ella podemos ver el mapa por donde transcurre la ruta, una amplia descripci´on que ha proporcionado el usuario y en la parte derecha una serie de datos como la distancia, el desnivel y si la ruta es c´ıclica. M´as abajo, encontramos las im´agenes de la ruta y datos sobre el tiempo que se tard´o en realizar la ruta y la fecha en la que hizo la ruta el usuario. Adem´as, en la parte superior nos muestra un bot´on para poder descargar el archivo de la ruta por si queremos usarlo fuera de Wikiloc. . CAP´ ITULO 1. INTRODUCCI ´ ON 7 Figura 1.4: Wikiloc. Opciones para subir rutas En la figura 1.4 tenemos las opciones que nos ofrece Wikiloc para crear rutas. Podemos grabar las rutas desde nuestro tel´efono m´ovil, seleccionar un fichero GPS, crear la ruta manualmente o sincronizar nuestra cuenta con distintas marcas de dispositivos dise˜nados para monitorizar nuestras actividades deportivas. . 8CAP´ ITULO 1. INTRODUCCI ´ ON Ventajas •Interfaz f´acil de usar. •Uno de los sitios con mayor n´umero de rutas. •La b´usqueda a˜nade filtros para elegir el tipo de deporte que deseamos encontrar, la distancia, desnivel, dificultad... como podemos ver en la figura 1.1 •Permite la descarga de las rutas para usarlas en otras web o aplicaciones. Se puede ver el bot´on para descargar en la figura 1.3 •Casi 80 deportes diferentes. •Hasta 5 formas distintas de crear las rutas dentro de la p´agina como podemos ver en la figura 1.4 Desventajas •Para poder acceder a toda su funcionalidad hay que pagar. •En la opci´on gratuita de la web hay publicidad que a veces puede resultar molesta. •Algunos filtros en la b´usqueda solo se pueden usar si tienes Wikiloc Premium. Conclusiones . Al ser este website uno de los m´as conocidos podemos encontrar en ´el muchas rutas y senderos para realizar. Adem´as, esta p´agina cuenta con aplicaci´on m´ovil y es f´acil aprender a utilizarla tanto en nuestro m´ovil como en el ordenador, pudiendo ver las rutas que hemos realizado nosotros o nuestros amigos y subir rutas nuevas. Es uno de los websites m´as completos para hacer senderismo. 1.5.2. Strava Strava [5] es una p´agina orientada a deportistas, en ella podemos encontrar m´as de 30 deportes como bicicleta, carrera, nataci´on, esqu´ı, crossfit y por supuesto, senderismo. Aunque las actividades destacadas son correr y bicicleta, podemos subir cualquier actividad de las que dispone. Muestra bastantes estad´ısticas sobre las actividades que realizamos, pero para acceder a muchas de sus funcionalidades, como ver el ritmo cardiaco, hay que pagar. Adem´as de ser un website, tambi´en podemos tener la aplicaci´on de Strava en nuestro m´ovil. Para eso, solo tendremos que buscar Strava en la tienda de iOS o Android e instalarla. Si queremos acceder a su website, tendremos que entrar en su url: www.strava.com A continuaci´on vemos algunas de las funciones que nos ofrece este website: . CAP´ ITULO 1. INTRODUCCI ´ ON 9 Figura 1.5: Strava. Detalles de ruta En la figura 1.5 vemos los detalles que nos muestra Strava de una ruta, en la parte superior tenemos el t´ıtulo, la distancia recorrida, el tiempo que hemos tardado en realizar la actividad y el ritmo medio. M´as abajo nos muestra nuestro ritmo desglosado por kil´ometros y al lado tenemos el mapa con la ruta realizada. Y en la parte inferior podemos ver un gr´afico d´onde se muestra el ritmo que hemos seguido en cada instante de la actividad. Cabe destacar que los datos mostrados y la situaci´on de estos en la pantalla varia seg´un el deporte que se haya realizado. 10 CAP´ ITULO 1. INTRODUCCI ´ ON . Figura 1.6: Strava. Crear ruta con archivo En la figura 1.6 vemos en la parte izquierda distintas opciones para subir una actividad a la plataforma. En la opci´on seleccionada podemos cargar nuestras actividades mediante la subida de archivos. C´omo se ve en la imagen, nos deja subir hasta 25 archivos a la vez y estos deben ser de uno de los 3 formatos especificados. M´as abajo nos da la opci´on de importar actividades desde otros servicios. Podemos automatizar la subida desde otros websites directamente a Strava. . CAP´ ITULO 1. INTRODUCCI ´ ON 11 Figura 1.7: Strava. Crear ruta manual En la figura 1.7 hemos seleccionado la opci´on de Entrada manual para subir crear una nueva ruta. Como se ve en la imagen nos solicita una serie de datos como la distancia, duraci´on, altitud, deporte, fecha y nos deja a˜nadir un t´ıtulo y una descripci´on a nuestra actividad. Esta actividad se crea sin mapa y solo muestra los datos que hemos a˜nadido al resto de usuarios. En esta imagen y en la anterior podemos ver que en la parte inferior nos muestra publicidad sobre su aplicaci´on para iOS y Android. . 12 CAP´ ITULO 1. INTRODUCCI ´ ON Figura 1.8: Strava. Suscripci´on En la figura 1.8 se muestra la p´agina de suscripci´on del website. Nos resume las funcionalidades a˜nadidas de las que podremos disfrutar en caso de suscripci´on y nos muestra un bot´on para proceder a realizar el pago. Las funcionalidades m´as importantes a las que tendremos acceso en caso de realizar la suscripci´on son la planificaci´on de rutas, acceso al registro de entrenamiento, podremos definir objetivos y comparar los tiempos que hagamos en una actividad con actividades pasadas que se hayan realizado en el mismo recorrido. . CAP´ ITULO 1. INTRODUCCI ´ ON 19 dificultad y escribir una descripci´on. Tambi´en debemos a˜nadir la fecha y algunos datos m´as como la distancia y el desnivel. Uno de los datos que podemos modificar al crear la ruta es la visibilidad. Aqu´ı podemos elegir si queremos que la ruta sea p´ublica y pueda verla todo el que entre en la p´agina sin necesidad de registrarse o si, por el contrario, queremos que nuestra ruta sea privada. Figura 1.15: Misrutas. Detalles de ruta En la figura 1.15 podemos ver los detalles que se muestran sobre una de las rutas que hay en la p´agina. Nos mostrar´a datos sobre la fecha, la velocidad, tiempo, distancia y elevaci´on. Adem´as tambi´en tendremos un mapa con la ruta dibujada y un gr´afico donde podemos ver el desnivel en cada instante. En la parte superior de la imagen podemos ver que tenemos un bot´on con el que podremos compartir la ruta, aunque la ´unica opci´on que nos aparece al pulsar el bot´on es compartir con facebook. Tambi´en tenemos un bot´on de Descargar, en el que podemos descargar la ruta que estamos viendo en 8 formatos diferentes. 20 CAP´ ITULO 1. INTRODUCCI ´ ON Ventajas •Interfaz muy sencilla. •Permite descargar las rutas para poder usarlas en otros websites o aplicaciones. •Es gratuita. •Permite subir rutas sin necesidad de registrarse. Desventajas •La interfaz no es nada atractiva. •No permite hacer amigos, solo puedes ver las rutas de ese usuario al pinchar en ´el. •La b´usqueda tiene solamente 3 filtros. •Hay ´unicamente 4 deportes. Conclusiones . En este website encontramos funciones b´asicas y no tiene tantas opciones como los anteriores. Debido a que tiene solo funciones b´asicas su uso es sencillo pero la interfaz no es nada atractiva debido a una est´etica demasiado b´asica. Como no es muy popular no encontramos muchas rutas en ella y es probable que si necesitamos encontrar rutas espec´ıficas prefiramos utilizar otras p´aginas con m´as opciones de b´usqueda y mayor n´umero de resultados. Cap´ıtulo 2 Gesti´on y planificaci´on del proyecto 2.1. Introducci´on Este proyecto est´a orientado a crear un website para compartir rutas y senderos. En este cap´ıtulo se proporciona la informaci´on necesaria para controlar la planificaci´on y el desarrollo del proyecto. Para la realizaci´on del proyecto, se emplear´a el Proceso Unificado para realizar el proyecto mediante fases y de forma iterativa e incremental. Los tres elementos claves que resumen el proceso unificado son: •Dirigido por los casos de uso. •Centrado en la arquitectura. •Es iterativo e incremental. El proceso unificado se divide en varias fases, donde cada fase define un conjunto de objetivos, actividades, productos y evaluaci´on de hitos: •Inicio: En esta fase tendremos que establecer el ´ambito y los l´ımites del proyecto, habr´a que localizar los casos de uso cr´ıticos, estimar el coste y la planificaci´on temporal del proyecto completo y estimar los riesgos potenciales. •Elaboraci´on: Es la parte m´as cr´ıtica del proceso. A partir de aqu´ı la arquitectura, los requisitos y los planes de desarrollo son estables. Ya hay menos riesgos y se puede planificar el resto del proyecto con menor incertidumbre. •Construcci´on: En esta fase minimizamos los costes de desarrollo optimizando recursos e impidiendo la realizaci´on de trabajo “dos veces”. Conseguimos versiones utilizables del proyecto (alfa, beta...). •Transici´on: En esta fase hay que conseguir que el usuario sea capaz de mantener el producto, conseguir la aceptaci´on del usuario que lo entregado es completo y consistente con el criterio de evaluaci´on fijado en la versi´on inicial del proyecto y conseguir un producto final tan r´apido y eficiente respecto al coste como pr´actico. 21 22 CAP´ ITULO 2. GESTI ´ ON Y PLANIFICACI ´ ON DEL PROYECTO Figura 2.1: Etapas proceso unificado 2.2. Gesti´on de riesgos Un riesgo es un evento o una condici´on inciertos que, si ocurren, tienen un efecto positivo o negativo sobre los objetivos del proyecto. Los riesgos se relacionan con posibles problemas futuros, no con los actuales. Implican, por tanto, una posible causa y su efecto. Es importante hacer una buena gesti´on de riesgos para minimizar la probabilidad de que ocurran y puedan tener un impacto negativo sobre el proyecto. Una buena gesti´on de riesgos debe realizarse al inicio del proyecto y se compone de varias fases: •Identificar los riesgos: En esta fase hay que buscar la mayor cantidad de riesgos posibles que puedan afectar a nuestro proyecto. Para identificar los riesgos se puede comenzar con una tormenta de ideas, hay que realizar una valoraci´on de los riesgos e identificar los riesgos de forma sistem´atica porque conforme avanza el proyecto pueden encontrarse nuevos riesgos o los ya existentes pueden evolucionar. •An´alisis de los riesgos: En esta fase analizamos los riesgos identificados en la fase anterior. Tendremos que eliminar riesgos redundantes y combinar riesgos relacionados, tambi´en tendremos que analizar las causas de los riesgos e identificar si varios riesgos tienen causas comunes y ordenaremos los riesgos seg´un la probabilidad de que ocurran y su gravedad. •Planificar la respuesta de los riesgos: Hay distintas estrategias de resoluci´on para los riesgos: ◦Evitaci´on del riesgo: previene la ocurrencia del riesgo, reduce la probabilidad a cero. ◦Protecci´on del riesgo: reduce la probabilidad del riesgo antes de que ocurra. ◦Reducci´on del riesgo: reduce la consecuencia del riesgo despu´es de que ocurra. CAP´ ITULO 2. GESTI ´ ON Y PLANIFICACI ´ ON DEL PROYECTO 23 ◦Investigar el riesgo: obtener m´as informaci´on sobre el riesgo para eliminar o reducir la incertidumbre sobre ´el. ◦Reservar el riesgo: utilizar la planificaci´on reservada previamente o la holgura del presupuesto. ◦Transferencia del riesgo: reorganizar las cosas para desplazar el riesgo a otra parte, como por ejemplo a otro grupo. Hay que considerar tambi´en la posibilidad de aceptaci´on del riesgo, que se produce cuando el coste de la evitaci´on del riesgo es mayor que el coste que supone si se produce. •Monitorizar y controlar los riesgos: En esta fase se vigilar´a la posible aparici´on de un escenario de riesgo, se vigilar´an los riesgos ya identificados, se recogen estad´ısticas y se actualiza la base de datos de riesgos. 2.2.1. Identificaci´on y an´alisis de los riesgos En este apartado identificaremos los posibles riesgos que pueden afectar al proyecto. Para ello veremos los distintos tipos de riesgos que podemos encontrar: •De proyecto: son los debidos a las restricciones de recursos, relacionados con proveedores, problemas de coordinaci´on interna del equipo o del grupo, financiaci´on no adecuada. Los riesgos de proyecto se pueden dividir en: ◦Conocidos: son aquellos que han sido identificados y analizados, por lo que se puede planificar una acci´on preventiva. ◦Predecibles: son aquellos que se pueden extrapolar de la experiencia de proyectos anteriores. ◦Impredecibles: son aquellos dif´ıciles de predecir por adelantado y por tanto no pueden ser tratados. •De proceso: son los debidos a proceso software no documentado, falta de revisiones efectivas, no prevenci´on de defectos, proceso de dise˜no pobre, gesti´on pobre de requisitos, planificaci´on ineficaz. •De producto: son los debidos a la falta de experiencia en el dominio, dise˜no complejo, requisitos incompletos. Para clasificar los riesgos analizaremos su impacto y la probabilidad de que ocurran. Seg´un la probabilidad les podemos agrupar de la siguiente manera: •Muy alta •Alta •Media •Baja 24 CAP´ ITULO 2. GESTI ´ ON Y PLANIFICACI ´ ON DEL PROYECTO •Muy baja Seg´un su impacto en el proyecto tenemos la siguiente clasificaci´on: •Catastr´ofico •Cr´ıtico •Marginal •Despreciable Por tanto, seg´un el impacto y la probabilidad podemos cuantificar el riesgo como se muestra en la siguiente imagen: Figura 2.2: Matriz impacto/probabilidad A continuaci´on, se muestran los riesgos que se han identificado para el proyecto: Riesgo Tipo R01. Las herramientas elegidas son demasiado complejas. Proyecto R02. Variaci´on de requisitos. Producto R03. Enfermedad o baja. Proyecto R04. Fallo de software. Proyecto R05. Fallo de hardware. Proyecto R06. Fallo de red. Proyecto R07. Planificaci´on optimista. Proyecto Tabla 2.1: Riesgos identificados 2.2.2. Plan de riesgos Describiremos cada riesgo identificado, analizaremos su probabilidad e impacto y elaboraremos un plan para intentar mitigarlos o evitarlos. CAP´ ITULO 2. GESTI ´ ON Y PLANIFICACI ´ ON DEL PROYECTO 25 R01. Las herramientas elegidas son demasiado complejas. Probabilidad Media Impacto Marginal Descripci´on Para el desarrollo del proyecto se va a trabajar con herramientas nuevas, alguna de ellas puede ser m´as complicada de lo que se piensa y tener un aumento de tiempo en el aprendizaje o incluso tener que cambiar las herramientas debido a que estas no se ajustan a lo que necesitamos exactamente. Fase/Actividad Etapas de elaboraci´on y construcci´on. Plan de mitigaci´on Ajustar la planificaci´on para dedicar m´as tiempo al estudio de las herramientas nuevas. Plan de contingencia El proyecto se ver´a retrasado. Tabla 2.2: Descripci´on del riesgo R01 R02. Variaci´on de requisitos. Probabilidad Media Impacto Marginal Descripci´on Alg´un requisito puede verse modificado porque no es posible realizarlo o aparecen requisitos nuevos. Fase/Actividad Etapas de elaboraci´on y construcci´on. Plan de mitigaci´on Habr´a que modificar los requisitos para poder realizarlo. Plan de contingencia Se modificar´a el requisito para que sea posible su implementaci´on. Tabla 2.3: Descripci´on del riesgo R02 R03. Enfermedad o baja. Probabilidad Baja Impacto Catastr´ofico Descripci´on Este riesgo puede ocurrir si el alumno cae enfermo y abandona de forma temporal el proyecto. Fase/Actividad Cualquier etapa del proyecto. Plan de mitigaci´on Habr´a que modificar la planificaci´on del proyecto para ajustarla al tiempo restante. Plan de contingencia Si el tiempo de retraso es muy grande, habr´a que retrasar el tiempo de entrega o aplazarlo para el a˜no siguiente. Tabla 2.4: Descripci´on del riesgo R03 . 26 CAP´ ITULO 2. GESTI ´ ON Y PLANIFICACI ´ ON DEL PROYECTO R04. Fallo de software. Probabilidad Baja Impacto Marginal Descripci´on El software necesario puede fallar por cualquier motivo y necesitar la reinstalaci´on de este o buscar software nuevo para la realizaci´on del proyecto. Fase/Actividad Cualquier etapa del proyecto. Plan de mitigaci´on Habr´ıa que proceder a la reinstalaci´on de software o buscar software nuevo para la realizaci´on del proyecto. Plan de contingencia Si se tarda mucho en arreglar el problema, podr´ıa afectar a la planificaci´on del proyecto y retrasar su entrega. Tabla 2.5: Descripci´on del riesgo R04 R05. Fallo de hardware. Probabilidad Baja Impacto Cr´ıtico Descripci´on El equipo donde se est´a desarrollando puede estropearse y tener que proceder a formatearlo o reparar alguna parte del equipo. Fase/Actividad Cualquier etapa del proyecto. Plan de mitigaci´on Se podr´ıa adquirir un equipo nuevo, repararlo o proceder a su formateo. Plan de contingencia Si se tarda mucho en realizar la reparaci´on, podr´ıa afectar a la planificaci´on del proyecto y retrasar su entrega. Tabla 2.6: Descripci´on del riesgo R05 R06. Fallo de red. Probabilidad Baja Impacto Marginal Descripci´on El servicio de red contratado puede fallar por alg´un problema y tener que llamar para que lo reparasen. Fase/Actividad Cualquier etapa del proyecto. Plan de mitigaci´on Se podr´ıa contratar un servicio de red diferente o esperar a que un t´ecnico proceda a su reparaci´on. Plan de contingencia Si se tarda mucho en solucionar el problema, podr´ıa afectar a la planificaci´on del proyecto y retrasar su entrega. Tabla 2.7: Descripci´on del riesgo R06 . CAP´ ITULO 2. GESTI ´ ON Y PLANIFICACI ´ ON DEL PROYECTO 27 R07. Planificaci´on optimista. Probabilidad Media Impacto Cr´ıtico Descripci´on Al no tener experiencia previa en la realizaci´on de proyectos completos, la planificaci´on podr´ıa no encajar con una planificaci´on real. Fase/Actividad Cualquier etapa del proyecto. Plan de mitigaci´on Habr´ıa que ajustar el tiempo para las etapas en la que se necesite m´as tiempo. Plan de contingencia La fecha de entrega del proyecto se ver´ıa retrasada. Tabla 2.8: Descripci´on del riesgo R07 2.3. Planificaci´on 2.3.1. Visi´on general del proyecto Objetivos y ´ambito del proyecto WalkingGes es un website orientado a compartir y ver rutas y senderos. Este sitio nos puede ayudar a conocer lugares nuevos donde practicar senderismo. Adem´as, en nuestras publicaciones podemos incluir un texto dando nuestro punto de vista sobre el sendero que puede ser ´util para los dem´as usuarios de la p´agina. El website estar´a disponible para cualquier ordenador que tenga acceso a una conexi´on de red y un navegador y este, ser´a completamente gratuito. Suposiciones y restricciones •Restricciones de recursos: los miembros del equipo de trabajo ser´an dos, tutor y alumno. El tutor har´a de cliente para dar indicaciones de lo que se requiere en la web y el alumno har´a de gestor, analista, desarrollador, dise˜nador y tester del proyecto. •Restricciones de aplicaci´on: la gesti´on de los mapas no podr´a ser desarrollada con un gestor de pago. •Restricciones de planificaci´on: el proyecto debe estar acabado en Septiembre de 2020. 2.3.2. Recursos •Recursos humanos: ◦Fernando Urb´on Dom´ınguez, persona que desarrollar´a el proyecto. ◦Margarita Gonzalo Tasis, tutora y encargada de la supervisi´on y control del desarrollo del proyecto. 28 CAP´ ITULO 2. GESTI ´ ON Y PLANIFICACI ´ ON DEL PROYECTO •Recursos t´ecnicos: Hardware: ◦Ordenador port´atil Lenovo Ideapad 330 Software: ◦Astah Professional 8.2.0 ◦Code Writer ◦Sistema Operativo Windows 10 64 bits ◦WampServer, compuesto por: Apache MySQL PHP ◦Google Chrome 2.3.3. Entregables •Fase de inicio: ◦Introducci´on y contexto. ◦Gesti´on y planificaci´on del proyecto. ◦Prototipo inicial. •Fase de elaboraci´on: ◦Especificaci´on de requisitos. ◦Especificaci´on de casos de uso. ◦Modelo de an´alisis. ◦Dise˜no inicial de la web. ◦Prototipo de la web. •Fase de construcci´on: ◦Versi´on beta de la web. ◦Versi´on inicial del manual de usuario. ◦Documento de pruebas. •Fase de transici´on: ◦Versi´on final del proyecto. ◦Manual de instalaci´on. ◦Manual de usuario. ◦Documento final de la memoria. CAP´ ITULO 3. AN ´ ALISIS 35 3.1.2. Requisitos no funcionales Id Nombre Descripci´on Prioridad RNF01 Conexi´on a internet El sistema deber´a tener conexi´on a internet para usar la web. Alta RNF02 Manual de usuario Se debe proporcionar un manual de usuario donde se explique detalladamente el uso de la web. Alta RNF03 Base de datos El sistema utilizar´a una base de datos relacional. Alta RNF04 Email ´unico El email asociado a un usuario deber´a ser ´unico en el sistema. Alta RNF05 Nombre de usuario ´unico El nombre de usuario asociado a un usuario deber´a ser ´unico en el sistema. Alta RNF06 Base de datos encriptada La base de datos debe permitir encriptar los datos para cumplir la Ley de Protecci´on de Datos Alta Tabla 3.3: Descripci´on de requisitos no funcionales 3.1.3. Requisitos de informaci´on Id Nombre Descripci´on Prioridad RI01 Datos de usuario El sistema deber´a guardar la informaci´on del usuario (Nombre, nombre de usuario, contrase˜na, g´enero, fecha de nacimiento, email) Alta RI02 Datos de mapas El sistema deber´a guardar la informaci´on de los mapas (Nombre, archivo de la ruta) Alta RI03 Datos de publicaci´on El sistema deber´a guardar la informaci´on de las publicaciones (Fecha, t´ıtulo, descripci´on, ruta asociada, estado, im´agenes) Alta Tabla 3.4: Descripci´on de requisitos de informaci´on . 36 CAP´ ITULO 3. AN ´ ALISIS 3.2. Casos de uso Un caso de uso es una secuencia de acciones que un sistema lleva a cabo y da lugar a un resultado para un actor particular. Los diagramas de casos de uso sirven para especificar la funcionalidad y el comportamiento de un sistema mediante su interacci´on con los usuarios u otros sistemas. 3.2.1. Diagrama de casos de uso Figura 3.1: Diagrama de casos de uso CAP´ ITULO 3. AN ´ ALISIS 37 3.2.2. Descripci´on de casos de uso CU1 Registro Actor Usuario Precondiciones No tiene Postcondiciones El usuario queda registrado en el sistema Secuencia normal 1. El usuario selecciona la opci´on “Registrarse”. 2. El sistema muestra una pantalla con los datos necesarios para el registro. 3. El usuario introduce nombre, nombre de usuario, email, contrase˜nas, fecha de nacimiento y g´enero y pulsa el bot´on “Crear cuenta”. 4. El sistema muestra la pantalla principal con la sesi´on iniciada. Excepciones 2a. El usuario cierra la aplicaci´on sin finalizar el caso de uso. 3a. Las contrase˜nas no coinciden, el sistema muestra un error y el caso de uso contin´ua en el punto 2. 4a. El nombre de usuario ya existe, el sistema muestra un error y el caso de uso contin´ua en el punto 2. 4b. El email ya est´a registrado en el sistema, el sistema muestra un error y el caso de uso contin´ua en el punto 2. Tabla 3.5: Descripci´on del caso de uso CU1 . 38 CAP´ ITULO 3. AN ´ ALISIS CU2 Iniciar sesi´on Actor Administrador, Usuario Precondiciones El usuario debe estar registrado en el sistema Postcondiciones El usuario inicia sesi´on en el sistema Secuencia normal 1. El usuario selecciona la opci´on “Iniciar sesi´on”. 2. El sistema muestra una pantalla con los datos necesarios para iniciar sesi´on (nombre de usuario y contrase˜na). 3. El usuario introduce los datos y pulsa el bot´on “Iniciar sesi´on”. 4. El sistema muestra la pantalla principal con la sesi´on iniciada. Excepciones 3a. El usuario sale de la pantalla sin finalizar el caso de uso. 4a. El usuario ha introducido un usuario que no existe, el sistema muestra un error y el caso de uso contin´ua en el punto 2. 4b. El usuario ha introducido mal la contrase˜na, el sistema muestra un error y el caso de uso contin´ua en el punto 2. Tabla 3.6: Descripci´on del caso de uso CU2 CU3 Cerrar sesi´on Actor Administrador, Usuario Precondiciones El usuario debe haber iniciado sesi´on en el sistema Postcondiciones El usuario cierra sesi´on en el sistema Secuencia normal 1. El usuario selecciona la opci´on “Salir”. 2. El sistema muestra la pantalla de inicio de sesi´on. Excepciones - Tabla 3.7: Descripci´on del caso de uso CU3 . CAP´ ITULO 3. AN ´ ALISIS 39 CU4 Administrar publicaciones Actor Administrador Precondiciones El usuario debe haber iniciado sesi´on en el sistema Postcondiciones Las publicaciones administradas quedan publicadas o denegadas. Secuencia normal 1. El usuario selecciona la opci´on “Administrador”. 2. El sistema muestra una pantalla con las publicaciones pendientes de Aceptar o Denegar. 3. El usuario acepta o deniega la publicaci´on. 4. El sistema muestra confirmaci´on de la acci´on realizada. Excepciones 3a. El usuario sale de la pantalla sin finalizar el caso de uso. Tabla 3.8: Descripci´on del caso de uso CU4 CU5 Crear publicaci´on Actor Usuario Precondiciones El usuario debe haber iniciado sesi´on en el sistema Postcondiciones El usuario crea una publicaci´on Secuencia normal 1. El usuario selecciona la opci´on “Crear publicaci´on”. 2. El sistema muestra una pantalla con los datos necesarios para crear una publicaci´on. 3. El usuario introduce t´ıtulo, descripci´on, ruta e im´agenes. 4. El sistema muestra la publicaci´on creada. Excepciones 2a. El usuario cierra la pantalla sin finalizar el caso de uso. 3a. El usuario no introduce alg´un dato, el sistema muestra un error y el caso de uso contin´ua en el punto 2. Tabla 3.9: Descripci´on del caso de uso CU5 . 40 CAP´ ITULO 3. AN ´ ALISIS CU6 Eliminar publicaci´on Actor Usuario Precondiciones El usuario debe haber iniciado sesi´on en el sistema Postcondiciones El usuario elimina una publicaci´on del sistema Secuencia normal 1. El usuario selecciona “Perfil” y luego va a la secci´on “Publicaciones”. 2. El sistema muestra las publicaciones que hemos creado. 3. El usuario pulsa dentro de una publicaci´on en la opci´on “Borrar publicaci´on”. 4. El sistema requiere confirmaci´on para realizar la acci´on. 5. El usuario selecciona “S´ı”. 6. El sistema muestra confirmaci´on de la acci´on realizada. Excepciones 3a. El usuario cierra la pantalla sin finalizar el caso de uso. 5a. El usuario selecciona “No 2 el caso de uso contin´ua en el punto 2. Tabla 3.10: Descripci´on del caso de uso CU6 CU7 Buscar publicaci´on Actor Usuario Precondiciones El usuario debe haber iniciado sesi´on en el sistema Postcondiciones - Secuencia normal 1. El usuario introduce una b´usqueda y pulsa “Buscar”. 2. El sistema muestra las publicaciones que coinciden con la b´usqueda. Excepciones - Tabla 3.11: Descripci´on del caso de uso CU7 CU8 Buscar usuario Actor Usuario Precondiciones El usuario debe haber iniciado sesi´on en el sistema Postcondiciones - Secuencia normal 1. El usuario introduce una b´usqueda y pulsa “Buscar”. 2. El sistema muestra los usuarios que coinciden con la b´usqueda. Excepciones - Tabla 3.12: Descripci´on del caso de uso CU8 . CAP´ ITULO 3. AN ´ ALISIS 41 CU9 A˜nadir ruta Actor Usuario Precondiciones El usuario debe haber iniciado sesi´on en el sistema Postcondiciones El usuario a˜nade una ruta en el sistema Secuencia normal 1. El usuario selecciona “Perfil”, luego va a la secci´on “Rutas”, despu´es selecciona la opci´on “A˜nadir ruta”. 2. El sistema muestra una pantalla con los datos necesarios para a˜nadir una ruta. 3. El usuario introduce el t´ıtulo y carga el fichero de la ruta. 4. El sistema muestra la ruta creada en el sistema. Excepciones 2a. El usuario cierra la pantalla sin finalizar el caso de uso. 3a. El usuario carga un fichero incorrecto, el sistema muestra un error y el caso de uso contin´ua en el punto 2. Tabla 3.13: Descripci´on del caso de uso CU9 CU10 Eliminar ruta Actor Usuario Precondiciones El usuario debe haber iniciado sesi´on en el sistema Postcondiciones El usuario elimina una ruta del sistema Secuencia normal 1. El usuario selecciona “Perfil 2 luego va a la secci´on “Rutas”. 2. El sistema muestra las rutas que hemos subido. 3. El usuario pulsa dentro de una ruta en la opci´on “Borrar ruta”. 4. El sistema requiere confirmaci´on para realizar la acci´on. 5. El usuario selecciona “S´ı”. 6. El sistema muestra confirmaci´on de la acci´on realizada. Excepciones 3a. El usuario cierra la pantalla sin finalizar el caso de uso. 5a. El usuario selecciona “No” y el caso de uso contin´ua en el punto 2. 6a. El sistema informa que la ruta est´a asignada a alguna publicaci´on y no se puede eliminar. El caso de uso contin´ua en el punto 2. Tabla 3.14: Descripci´on del caso de uso CU10 . 42 CAP´ ITULO 3. AN ´ ALISIS CU11 A˜nadir amigo Actor Usuario Precondiciones El usuario debe haber iniciado sesi´on en el sistema Postcondiciones El usuario a˜nade un usuario a su lista de amigos Secuencia normal 1. El usuario realiza el caso de uso “Buscar usuario”. 2. El sistema muestra una pantalla con los usuarios encontrados. 3. El usuario entra en el perfil del usuario que quiere a˜nadir como amigo. 4. El sistema muestra el perfil del usuario seleccionado. 5. El usuario selecciona la opci´on “A˜nadir como amigo”. 6. El sistema muestra un mensaje de que la operaci´on se ha realizado correctamente. Excepciones 2a, 3a, 4a, 5a. El usuario cierra la pantalla sin finalizar el caso de uso. 4b. El usuario quiere seleccionar otro usuario y selecciona la opci´on “Volver al listado de usuarios”, el caso de uso contin´ua en el punto 2. Tabla 3.15: Descripci´on del caso de uso CU11 CU12 Eliminar amigo Actor Usuario Precondiciones El usuario debe haber iniciado sesi´on en el sistema Postcondiciones El usuario elimina un usuario de su lista de amigos Secuencia normal 1. El usuario entra en el perfil del amigo a eliminar. Puede hacerlo a trav´es del caso de uso “Buscar usuario” o bien entrando en “Perfil”, “Amigos” y seleccionando el perfil del usuario que queremos eliminar. 2. El sistema muestra el perfil del usuario seleccionado. 3. El usuario selecciona la opci´on “Eliminar de mis amigos”. 4. El sistema muestra un mensaje de que la operaci´on se ha realizado correctamente. Excepciones 2a. El usuario cierra la pantalla sin finalizar el caso de uso. Tabla 3.16: Descripci´on del caso de uso CU12 . CAP´ ITULO 3. AN ´ ALISIS 43 CU13 Ver perfil Actor Usuario Precondiciones El usuario debe haber iniciado sesi´on en el sistema Postcondiciones El sistema muestra el perfil del usuario Secuencia normal 1. El usuario selecciona la opci´on “Perfil”. 2. El sistema muestra una pantalla con el perfil del usuario. Excepciones - Tabla 3.17: Descripci´on del caso de uso CU13 CU14 Modificar datos de usuario Actor Usuario Precondiciones El usuario debe haber iniciado sesi´on en el sistema Postcondiciones Los datos del usuario quedan modificados Secuencia normal 1. El usuario selecciona la opci´on “Ajustes”. 2. El sistema muestra una pantalla con los datos del usuario para ser modificados. 3. El usuario modifica los datos que quiere cambiar y pulsa el bot´on “Guardar cambios”. 4. El sistema muestra un mensaje de que la operaci´on se ha realizado correctamente. Excepciones 2a, 3a. El usuario cierra la pantalla sin finalizar el caso de uso. 3b. El usuario rellena alg´un dato con un valor no v´alido, el sistema muestra un error y el caso de uso contin´ua en el punto 2. Tabla 3.18: Descripci´on del caso de uso CU14 . 44 CAP´ ITULO 3. AN ´ ALISIS CU15 Modificar foto de perfil Actor Usuario Precondiciones El usuario debe haber iniciado sesi´on en el sistema Postcondiciones La foto de perfil queda modificada Secuencia normal 1. El usuario selecciona la opci´on “Ajustes”, luego selecciona “Foto de perfil”. 2. El sistema muestra una pantalla con la foto de perfil actual y nos permite seleccionar un archivo para una foto de perfil nueva. 3. El usuario selecciona la opci´on “Seleccionar archivo” y posteriormente “Cambiar imagen”. 4. El sistema nos muestra en la pantalla la imagen de perfil modificada. Excepciones 2a, 3a. El usuario cierra la pantalla sin finalizar el caso de uso. 3b. El usuario selecciona un archivo no v´alido, el sistema muestra un error y el caso de uso contin´ua en el punto 2. Tabla 3.19: Descripci´on del caso de uso CU15 CU16 Modificar configuraci´on privacidad Actor Usuario Precondiciones El usuario debe haber iniciado sesi´on en el sistema Postcondiciones Los nuevos ajustes de privacidad quedan guardados Secuencia normal 1. El usuario selecciona la opci´on “Ajustes”, luego selecciona “Privacidad”. 2. El sistema muestra una pantalla con los ajustes de privacidad actuales. 3. El usuario puede modificar las opciones que desee y pulsar en el bot´on “Guardar cambios”. 4. El sistema muestra un mensaje de que la operaci´on se ha realizado correctamente. Excepciones 2a, 3a. El usuario cierra la pantalla sin finalizar el caso de uso. Tabla 3.20: Descripci´on del caso de uso CU16 . CAP´ ITULO 4. DISE ˜ NO 51 . Figura 4.3: Diagrama de clases del modelo Figura 4.4: Diagrama de clases de la capa de persistencia 52 CAP´ ITULO 4. DISE ˜ NO 4.2. Patrones utilizados En este apartado veremos los patrones utilizados para el proyecto. 4.2.1. Patr´on Modelo-Vista-Presentador (MVP) El patr´on Modelo-Vista-Presentador o MVP es un patr´on derivado del conocido MVP o Modelo-Vista-Controlador. En la siguiente imagen se pueden ver las diferencias entre MVC y MVP. La diferencia principal entre estos dos patrones es la dependencia entre el modelo y la vista, presente en MVC pero no en MVP. Figura 4.5: Diferencias entre MVC y MVP El patr´on MVP permite separar la capa de presentaci´on de la l´ogica de la misma, de tal forma que queda totalmente separado el funcionamiento de la interfaz de su representaci´on en pantalla. El presentador es el que comunica la vista con el modelo, de forma que la vista no tiene conocimiento de que el modelo existe. Este patr´on se divide en tres elementos: •Vista: es la encargada de mostrar los datos en la interfaz de usuario. Contiene una referencia al presentador, invoc´andolo cada vez que se realiza una acci´on sobre la interfaz. •Presentador: es el encargado de mediar entre la vista y el modelo. Esta capa decide que ocurre cuando se interact´ua con la vista y tambi´en recupera los datos del modelo y se los devuelve a la vista. •Modelo: es el encargado de gestionar los datos. Es la l´ogica de negocio. CAP´ ITULO 4. DISE ˜ NO 53 4.2.2. D.A.O (Data Object Access) El patr´on Arquitect´onico Data Access Object (DAO) [27] nos permite hacer nuestra aplicaci´on lo m´as independiente posible de una base de datos concreta. El patr´on DAO proporciona los m´etodos necesarios para insertar, actualizar, borrar y consultar la informaci´on. Por otra parte, la capa de negocio solo se preocupa por l´ogica de negocio y utiliza el DAO para interactuar con la fuente de datos En el siguiente diagrama podemos ver el patr´on DAO aplicado a nuestra base de datos. Figura 4.6: Diagrama de clases de la capa de persistencia 54 CAP´ ITULO 4. DISE ˜ NO CAP´ ITULO 4. DISE ˜ NO 55 4.3. Diagramas de secuencia 4.3.1. CU1 Registro Figura 4.7: Diagrama de secuencia CU1 56 CAP´ ITULO 4. DISE ˜ NO 4.3.2. CU2 Iniciar sesi´on Figura 4.8: Diagrama de secuencia CU2 CAP´ ITULO 4. DISE ˜ NO 57 4.3.3. CU3 Cerrar sesi´on Figura 4.9: Diagrama de secuencia CU3 58 CAP´ ITULO 4. DISE ˜ NO 4.3.4. CU4 Administrar publicaciones Figura 4.10: Diagrama de secuencia CU4 CAP´ ITULO 4. DISE ˜ NO 59 4.3.5. CU5 Crear publicaci´on Figura 4.11: Diagrama de secuencia CU5 60 CAP´ ITULO 4. DISE ˜ NO 4.3.6. CU6 Eliminar publicaci´on Figura 4.12: Diagrama de secuencia CU6 CAP´ ITULO 4. DISE ˜ NO 67 4.3.13. CU13 Ver perfil Figura 4.19: Diagrama de secuencia CU13 68 CAP´ ITULO 4. DISE ˜ NO 4.3.14. CU14 Modificar datos de usuario Figura 4.20: Diagrama de secuencia CU14 CAP´ ITULO 4. DISE ˜ NO 69 4.3.15. CU15 Modificar foto de perfil Figura 4.21: Diagrama de secuencia CU15 70 CAP´ ITULO 4. DISE ˜ NO 4.3.16. CU16 Modificar configuraci´on privacidad Figura 4.22: Diagrama de secuencia CU16 CAP´ ITULO 4. DISE ˜ NO 71 4.3.17. CU17 Eliminar usuario Figura 4.23: Diagrama de secuencia CU17 72 CAP´ ITULO 4. DISE ˜ NO 4.4. Base de datos Para realizar el proyecto se ha elegido usar una base de datos relacional: MySQL. En esta secci´on podemos ver el esquema de la base de datos para la aplicaci´on. En este diagrama se representan las tablas, las relaciones entre ellas y los campos necesarios para la aplicaci´on. Figura 4.24: Diagrama de la base de datos CAP´ ITULO 4. DISE ˜ NO 73 4.5. Usabilidad La usabilidad se refiere a la capacidad de un software de ser comprendido, aprendido, usado y ser atractivo para el usuario, en condiciones espec´ıficas de uso. [32] 4.5.1. Atributos de usabilidad Facilidad de aprendizaje Se refiere a la facilidad para aprender a usar un sistema. Hay que tener en cuenta la facilidad para aprender lo m´as b´asico y la facilidad para aprender todas las funcionalidades. Nos hemos preguntado si es posible para el usuario deducir como usar el sistema explorando la interfaz y probando acciones. Para resolver nuestra duda, hemos dejado probar nuestro sistema a varias personas y las funcionalidades que m´as les ha costado encontrar han sido cambiadas de ubicaci´on en la interfaz o se han incluido algunos botones nuevos para ellas. Facilidad de recuerdo C´omo es de f´acil recordar como usar el sistema, una vez aprendido. Se ha procurado poner en la interfaz nombres claros y precisos que ayuden al usuario a recordar como llevar a cabo las tareas que quieren realizar en el sistema. Adem´as, d´onde aparecen im´agenes para representar alguna funci´on, al poner el cursor encima, nos informar´a del nombre de la funci´on a la que accederemos al pulsar. Tambi´en se ha a˜nadido alg´un bot´on con informaci´on d´onde se ha considerado necesario. Por ejemplo, al poner el cursor encima de la campana del men´u superior, nos informar´a de que la imagen representa las notificaciones. Al acercar el cursor al logo de informaci´on del ranking nos informar´a en qu´e consiste el ranking del sitio. Eficiencia Es el esfuerzo que le supone al usuario realizar lo que quiere con un determinado sistema. Nos preguntamos si una vez que los usuarios han aprendido a usar el sistema, pueden usarlo para llevar a cabo sus tareas con un alto nivel de productividad. Para lograr que el sistema sea eficiente se ha intentado simplificar las tareas que se pueden realizar para poderlas hacer lo m´as r´apido posible sin informaci´on innecesaria. Seguridad/Tolerancia al error Nos referimos a la forma en qu´e protege el sistema de condiciones peligrosas o situaciones no deseables. 74 CAP´ ITULO 4. DISE ˜ NO Cualquier usuario puede cometer errores al usar el sitio y por eso debemos evitar estos errores o en caso de que se den, tomar medidas para que los usuarios se recuperen de ellos. En nuestro website, por ejemplo, se han creado cuadros de alerta para acciones delicadas, como eliminar un amigo o borrar una publicaci´on. Al pulsar en uno de los botones mencionados, nos aparecer´a un mensaje d´onde tendremos que confirmar la acci´on para efectuarla o podremos cancelar en caso de que se trate de un error. 4.5.2. ¿A qui´en va destinada la aplicaci´on que se va a desarrollar? Este website est´a destinado a todo el p´ublico interesado en el senderismo, pueden ser de cualquier edad y cualquier lugar, aunque est´a especialmente creada para personas comprendidas entre 18 y 60 a˜nos, ya que creemos que este p´ublico es el que m´as puede estar interesado en el senderismo y en ese rango de edades la mayor´ıa de personas tienen un buen manejo de la tecnolog´ıa y podr´an usar la p´agina. Para entender mejor cu´al es el p´ublico objetivo hemos recopilado tres historias de usuario: •Juan, hombre de 40 a˜nos de Burgos, sus amigos le han hablado del website y ´el ha decidido entrar y registrarse para ver las rutas que tienen y encontrar entre las rutas de sus amigos alguna ruta sencilla para hacer el fin de semana con su mujer y sus hijos. •Patricia, mujer de 30 a˜nos de Valladolid, sus amigas y ella han decidido viajar este verano a Alicante y quiere encontrar alguna ruta por la zona para practicar senderismo esos d´ıas. •Laura, mujer de 55 a˜nos de Zamora, debido a su trabajo pasa muchas horas sentada en la oficina y lleva tiempo pensando en buscar alguna ruta para hacer senderismo, por eso decide registrarse en la p´agina y empezar a buscar rutas por su zona para poder hacer en su tiempo libre. Cap´ıtulo 5 Implementaci´on 5.1. Entorno tecnol´ogico 5.1.1. Herramientas utilizadas en el desarrollo del proyecto •Como editor LaTeX: se ha empleado la versi´on online a trav´es de la plataforma overleaf (www.overleaf.com). •La realizaci´on de copias de seguridad se ha realizado mediante Dropbox. •Para realizar los diagramas UML, se ha usado Astah Professional. •Para la elaboraci´on de la web y la edici´on de c´odigo se ha utilizado Code Writer. •Como servidor local para la web se ha usado Wampserver, el cual contiene Apache, MySQL y PHP. •Tambi´en se ha usado un servidor gratuito para poder ver el proyecto en l´ınea, para ello se ha usado Heroku. [28] 5.1.2. Tecnolog´ıas usadas en el proyecto PHP Figura 5.1: Logo PHP PHP es un lenguaje de c´odigo abierto muy popular especialmente adecuado para el desarrollo web y que puede ser incrustado en HTML. PHP se utiliza para generar p´aginas 75 76 CAP´ ITULO 5. IMPLEMENTACI ´ ON web din´amicas y por lo tanto, podemos vincularlo a una base de datos para que su contenido sea cambiante. Durante el TFG se ha utilizado la versi´on 7.3.1 y para las dudas relacionadas con el c´odigo se ha consultado el manual de PHP [24]. Las ventajas por las que se ha elegido PHP como lenguaje de programaci´on son las siguientes: •El lenguaje PHP es de uso libre y gratuito. •Los entornos de desarrollo son de r´apida y f´acil configuraci´on. •Es uno de los lenguajes m´as usados y eso hace que existan gran cantidad de tutoriales y ejemplos. •Completamente orientado al desarrollo de aplicaciones web din´amicas y p´aginas con acceso a una base de datos. •El c´odigo escrito en PHP es invisible al navegador ya que se ejecuta del lado del servidor y los resultados que muestra el navegador son HTML. •Posee gran versatilidad para la conexi´on con la mayor´ıa de bases de datos que existen en la actualidad. Leaflet Figura 5.2: Logo Leaflet Leaflet es una biblioteca JavaScript de c´odigo abierto ampliamente utilizada para crear aplicaciones de mapas web [2]. Es compatible con la mayor´ıa de plataformas m´oviles y de escritorio y admite HTML5 Y CSS3. Leaflet est´a dise˜nado teniendo en cuenta la simplicidad , el rendimiento y la facilidad de uso . Funciona de manera eficiente en todas las principales plataformas m´oviles y de escritorio y se puede ampliar con muchos complementos. . CAP´ ITULO 6. PRUEBAS 83 Test 21 Modificar configuraci´on de privacidad Resultado esperado El usuario elige sus opciones de privacidad y el sistema guarda los datos. Resultado obtenido Se ha obtenido el resultado esperado. Tabla 6.21: Prueba modificar configuraci´on de privacidad (2) Test 22 Administrar publicaciones Resultado esperado El usuario elige una acci´on para la publicaci´on y el sistema modifica el estado de la publicaci´on. Resultado obtenido El estado de la publicaci´on no se guarda correctamente. Tabla 6.22: Prueba administrar publicaciones (1) Test 23 Administrar publicaciones Resultado esperado El usuario elige una acci´on para la publicaci´on y el sistema modifica el estado de la publicaci´on. Resultado obtenido Se ha obtenido el resultado esperado. Tabla 6.23: Prueba administrar publicaciones (2) Test 23 Eliminar usuario Resultado esperado El usuario elige eliminar la cuenta y el sistema borra los datos. Resultado obtenido Se ha obtenido el resultado esperado. Tabla 6.24: Prueba eliminar usuario 84 CAP´ ITULO 6. PRUEBAS Cap´ıtulo 7 Conclusiones y trabajo futuro 7.1. Conclusiones Se ha realizado este website para hacer m´as f´acil la compartici´on de rutas entre las personas aficionadas al senderismo. Con este proyecto se facilita encontrar nuevas rutas y descubrir sitios nuevos. Se ha intentado realizar esta memoria de la forma m´as clara posible para poder entender c´omo se ha desarrollado la aplicaci´on y el funcionamiento de esta. Hoy en d´ıa, est´a en auge hacer deportes al aire libre, pero muchos websites piden una suscripci´on para poder acceder a toda su funcionalidad y muchas personas no est´an dispuestas a pagar por ello. 7.2. Trabajo futuro Se proponen algunas mejoras para, en el futuro, poder extender la funcionalidad del website: •Poder subir mapas en m´as formatos •Al pulsar el mapa, poder abrirlo en otras aplicaciones •Iniciar sesi´on mediante otras redes sociales como por ejemplo Facebook •A˜nadir m´as idiomas 85 Anexo 87 Manual de instalaci´on Para instalar WalkingGes en un sistema Windows tendremos que seguir una serie de pasos: •Descargar WampServer en la siguiente p´agina: https://sourceforge.net/projects/wampserver/files pulsando sobre ”Download Latest Version”. •Pulsamos sobre el archivo descargado y procedemos a la instalaci´on. En el paso para seleccionar componentes, marcaremos la casilla MySQL. •Al finalizar la instalaci´on, copiaremos la carpeta adjunta llamada WalkingGes al directorio ...wamp64/www/ •Para realizar la siguiente parte de la instalaci´on, tendremos que asegurarnos que tenemos MySQL en el Path de Windows. Para ello tenemos que acceder al Panel de control en nuestro ordenador y entrar en la opci´on: Sistema. Aqu´ı pulsaremos en Configuraci´on avanzada del sistema y posteriormente en Variables de entorno. En variables del sistema deberemos elegir la variable Path y pulsar el bot´on editar. Aqu´ı nos saldr´an una serie de rutas, d´onde deberemos a˜nadir MySQL. Para ello a˜nadimos una nueva ruta que depender´a de d´onde hayas instalado WampServer en tu ordenador, en mi caso a˜nado: C:\wamp64\bin\mysql\mysql5.7.24\bin. •Procedemos a ejecutar el script que realizar´a los cambios necesarios para el correcto funcionamiento del website. Tendremos que ir a ...wamp64/www/WalkingGes/scripts y pulsar sobre el archivo instalacionWindows con el bot´on derecho del rat´on y ejecutar como administrador. •Despu´es de esto accederemos en el navegador a: localhost/phpmyadmin, donde elegiremos para iniciar sesi´on, usuario: root y servidor: MySQL. Al acceder, pulsaremos sobre el bot´on de la parte superior donde pone Importar, aqu´ı daremos a seleccionar archivo y cargaremos el archivo walkingges.sql que est´a en la carpeta ...wamp64/www/WalkingGes/scripts y daremos a continuar, con esto, nos cargar´a la base de datos. •Finalmente, tendremos que ir a WampServer para modificar el fichero php.ini. Para acceder al fichero, deber´a salir abajo a la derecha el simbolo de WampServer y pulsando sobre ´el, iremos a PHP, php.ini. Dentro de este archivo buscaremos max file uploads y detr´as del = escribiremos 30. 89 •Ya tenemos la aplicaci´on lista para usar, solo tenemos que acceder en el navegador a localhost/WalkingGes. Para instalar WalkingGes en un sistema Linux tendremos que seguir una serie de pasos: •Procedemos a la instalaci´on del servidor ejecutando las siguientes l´ıneas en el terminal: sudo apt install tasksel sudo tasksel install lamp-server •Copiaremos la carpeta adjunta llamada WalkingGes al directorio /var/www/html/ mediante el terminal, en mi caso: sudo cp -r /home/Fernando/Descargas/WalkingGes /var/www/html/WalkingGes •Procedemos a ejecutar el script que realizar´a los cambios necesarios para el correcto funcionamiento del website. Tendremos que ir a /var/www/html y abriendo un terminal en esta carpeta ejecutaremos: sudo su para tener permisos de administrador y posteriormente: sh WalkingGes/scripts/instalacionLinux.sh •Finalmente, tendremos que ir a /etc/php/7.2/apache2 para modificar el fichero php.ini. En mi caso he editado el fichero con vi y para ello, situ´andome en la carpeta /etc/php/7.2/apache2, ejecutamos en el terminal: sudo vi php.ini Tendremos que buscar max file uploads y detr´as del = escribiremos 30. •Ya tenemos la aplicaci´on lista para usar, solo tenemos que acceder en el navegador a localhost/WalkingGes. Finalmente, tambi´en se ha desplegado la aplicaci´on en Heroku, por tanto, para poder acceder a la aplicaci´on WalkingGes solo hace falta tener conexi´on a internet. Tendremos que abrir nuestro navegador y acceder al siguiente url: https://sheltered-retreat-14358.herokuapp.com Una vez entremos en el enlace, ya podremos iniciar sesi´on o ir a la p´agina de registro y utilizar el website. Para poder probar la aplicaci´on, se han creado varios usuarios de prueba, de los cu´ales se proporciona su usuario y contrase˜na para poder acceder sin necesidad de registro: •Usuario (administrador): fernando. Contrase˜na: 1234 •Usuario: laura. Contrase˜na: 1234 •Usuario: juan. Contrase˜na: 1234 •Usuario: patricia. Contrase˜na: 1234 Si pulsamos en el icono “+”podemos a˜nadir una nueva ruta Figura 7.8: Pantalla de perfil. Nueva ruta En esta vista podemos a˜nadir una nueva ruta con su t´ıtulo y adjuntando el archivo de la ruta. Si pulsamos en la pesta˜na amigos nos encontraremos lo siguiente. Figura 7.9: Pantalla de perfil. Amigos En esta vista vemos los amigos que tenemos en la aplicaci´on y podemos eliminar a quien ya no queramos tener como amigo. Si queremos ver la informaci´on de nuestro perfil podemos pulsar en Informaci´on. Figura 7.10: Pantalla de perfil. Informaci´on En esta pesta˜na vemos nuestros datos personales. Podemos elegir cu´al de esta informaci´on mostramos a los dem´as usuarios en los ajustes de privacidad, c´omo veremos m´as adelante. Los usuarios que tengan permiso de administrador, podr´an entrar en el men´u de Administrador. Figura 7.11: Pantalla de administrador Aqu´ı veremos las publicaciones pendientes de aprobar o rechazar y podremos: •Aprobar la publicaci´on y que sea publicada en la aplicaci´on, visible para todos los amigos del usuario que la public´o. •Rechazar la publicaci´on porque el administrador considere que no es apta para la aplicaci´on y que la publicaci´on no se muestre. Si accedemos a las notificaciones podremos ver las peticiones de amistad pendientes Figura 7.12: Pantalla de notificaciones En esta vista podremos: •Aceptar las peticiones de amistad pendientes y que ese usuario se convierta en nuestro amigo. •Rechazar las peticiones de amistad y que el usuario no pueda ser tu amigo ni ver tus publicaciones. Si pulsamos en el men´u superior en Ajustes, iremos a la pantalla de configuraci´on. Por defecto, se mostrar´an primero los ajustes relacionados con los datos personales. Figura 7.13: Pantalla de ajustes. Datos personales En esta vista podremos: •Modificar los datos que se muestran, que son los datos que introducimos en el registro a la p´agina. •Eliminar nuestra cuenta de la plataforma, junto con todos nuestros datos. •Cambiar a otros men´us de ajustes en las opciones de la izquierda de la pantalla: Datos personales, Foto de perfil, Privacidad Si accedemos, dentro de ajustes, al men´u de la foto de perfil, podremos subir una foto para modificar esta en la aplicaci´on. Figura 7.14: Pantalla de ajustes. Foto de perfil En esta vista podremos seleccionar una foto de nuestro ordenador para subir y modificar nuestra foto de perfil. Si accedemos al men´u de privacidad, nos mostrar´a la siguiente pantalla. Figura 7.15: Pantalla de ajustes. Privacidad En esta pantalla podemos elegir quien puede ver los datos que tenemos registrados en nuestra cuenta, permiti´endonos, dependiendo del dato, mostr´arselo a nadie, solo a nuestros amigos o a todo el mundo que est´e registrado en la plataforma. Bibliograf´ıa [1] [Online] Redeszone. Instalar WAMP. URL: https://www.redeszone.net/windows/comoinstalar-wamp-un-servidor-http-php-y-mysql-todo-en-uno/ (visitado 15-06-2021) [2] [Online] Leaflet. Leaflet, una biblioteca de JavaScript para mapa interactivos. URL: https://leafletjs.com/ (visitado 15-06-2021) [3] [Online] MappingGIS. C´omo crear un mapa con Leaflet. URL: https://mappinggis.com/2013/06/como-crear-un-mapa-con-leaflet/ (visitado 1506-2021) [4] [Online] Wikiloc. Website de rutas y senderos Wikiloc. URL: https://es.wikiloc.com/ (visitado 15-06-2021) [5] [Online] Strava. Website de rutas y senderos Strava. URL: https://www.strava.com/ (visitado 15-06-2021) [6] [Online] Cicloide. Website de rutas y senderos Cicloide. URL: https://www.cicloide.com/ (visitado 15-06-2021) [7] [Online] Misrutas. Website de rutas y senderos Misrutas. URL: https://misrutas.net/ (visitado 15-06-2021) [8] [Online] Github. Leaflet Documentation. URL: http://leaflet.github.io/Leaflet.draw/docs/leafletdraw-latest.html (visitado 15-06-2021) [9] [Online] GitHub. Leaflet cargar archivos. URL: https://github.com/makinacorpus/Leaflet.FileLayer (visitado 15-06-2021) [10] [Online] MappingGIS. Visualizaci´on de datos GPS en mapas web con Leaflet. URL: https://mappinggis.com/2018/09/publicacion-web-de-datos-gps-con-leaflet (visitado 15-06-2021) [11] [Online] GitHub. Leaflet-GPX, funciones para mapas con Leaflet. URL: https://github.com/mpetazzoni/leaflet-gpx/blob/main/gpx.js (visitado 15-06-2021) [12] [Online] Datoweb. Subir varias im´agenes con php multiupload. URL: https://datoweb.com/post/2307-subir-varias-imagenes-con-php-multiupload (visitado 15-06-2021) 105 [13] [Online] Pablo Blanco. Verificar tipos de archivos subidos con php. Variable $ FILES. URL: https://www.pabloblanco.es/verficar-tipo-archivo-con-php/ (visitado 15-06-2021) [14] [Online] EsCSS. Truncar textos con CSS. URL: https://escss.blogspot.com/2015/11/texto-truncado-CSS.html (visitado 15-06-2021) [15] [Online] GitHub. Insertar bot´on de pantalla completa en Leaflet. URL: https://github.com/brunob/leaflet.fullscreen (visitado 15-06-2021) [16] [Online] AlejandroJS. Insertando un bot´on de pantalla completa en LeafletJS. URL: https://alejandrojs.wordpress.com/2017/09/12/insertando-un-boton-depantalla-completa-en-leafletjs/ (visitado 15-06-2021) [17] [Online] Favicon Generator. Generador de favicon. URL: https://realfavicongenerator.net/ (visitado 15-06-2021) [18] [Online] Manual de LaTeX. Tutoriales paso a paso de LaTeX. URL: https://manualdelatex.com/tutoriales (visitado 15-06-2021) [19] [Online] Minisconlatex. C´omo cambiar el nombre de las tablas y figuras. URL: http://minisconlatex.blogspot.com/2013/10/como-cambiar-el-nombre-deltitulo-del.html (visitado 15-06-2021) [20] [Online] Padan-Aram. Numeraci´on de p´aginas estilo Romano. URL: http://padanaram.blogspot.com/2011/08/latex-numeracion-de-paginas-estilo.html (visitado 15-062021) [21] [Online] Alciro. S´ımbolos matem´aticos en LaTeX. URL: http://www.alciro.org/alciro/Matematicas-Web-LaTeX 14/Simbolos-MatematicosLaTeX 103.htm (visitado 15-06-2021) [22] [Online] Mauricio Anderson. Curso de Latex - Referencias y bibliograf´ıa. URL: https://mauricioanderson.com/curso-latex-referencias-bibliografia-bibtex/ (visitado 15-06-2021) [23] [Online] Gesti´on de Proyectos Software, Carlos Blanco Bueno y Felix ´ Oscar Garc´ıa Rubio. Universidad de Cantabria, OpenCourseWare 2015. URL: https://ocw.unican.es/pluginfile.php/274/course/section/194/GP-t5.pdf (visitado 1506-2021) [24] [Online] Manual de PHP. URL: https://www.php.net/manual/es/index.php (visitado 15-06-2021) [25] [Online] jQuery. URL: https://jquery.com/ (visitado 15-06-2021) [26] [Online] AJAX. URL: https://api.jquery.com/jquery.ajax/ (visitado 15-06-2021) [27] [Online] Patr´on arquitect´onico DAO. URL: https://www.oscarblancarteblog.com/2018/12/10/dataaccess-object-dao-pattern/ (visitado 15-06-2021) [28] [Online] Servidor Heroku. URL: https://heroku.com/ (visitado 15-06-2021) [29] [Online] Esteban Romero. Heroku. URL: https://estebanromero.com/herramientasemprender-desarrollar-proyectos/heroku-una-plataforma-para-la-creacion-deaplicaciones/ (visitado 15-06-2021) [30] Pablo de la Fuente. Apuntes de la asignatura Planificaci´on y Gesti´on de Proyectos. Tema 2: Planificaci´on de Proyectos. Gesti´on del Tiempo. Universidad de Valladolid. [31] Pablo de la Fuente. Apuntes de la asignatura Planificaci´on y Gesti´on de Proyectos. Tema 3: Proceso Unificado. Universidad de Valladolid. [32] Apuntes de la asignatura Interacci´on Persona-Computador. Tema 2: Usabilidad. Universidad de Valladolid. [33] Apuntes de la asignatura Tecnolog´ıas para el desarrollo de software. Tema 2: Pruebas de software. Universidad de Valladolid.