Desarrollo de una aplicación móvil para aparear animales - Juan José Navarro Albarracín

Página creada Lucas Villanueva
 
SEGUIR LEYENDO
Desarrollo de una aplicación móvil para aparear animales - Juan José Navarro Albarracín
Desarrollo de una aplicación móvil para
 aparear animales

 Entrega Final
 Ingeniería del Software

 Juan José Navarro Albarracín

Director: Alberto Abelló - Departamento de Servicios e Ingeniería de Sistemas de Información
 29 de junio de 2021
Desarrollo de una aplicación móvil para aparear animales - Juan José Navarro Albarracín
Agradecimientos

 Me gustaría agradecer este proyecto y su significado a diferentes personas. En primer
lugar, a las personas que me apoyaron con la idea de hacer una aplicación para juntar
 mascotas y se la tomaron en serio. En segundo lugar, a mi familia que han sido las
 personas encargadas de detectar errores que podía tener la aplicación y sugerirme
 mejoras que ellos echaban en falta. En tercer lugar, me gustaría agradecer a mis
 compañeros de carrera que han estado siempre conmigo apoyándome y motivándome,
 en especial a Iván, Pau y Lucas que son los que me han tenido que aguantar el mayor
 tiempo. Por último, me gustaría agradecer a todos los profesores de la carrera que me
 han enseñado muchas cosas y han hecho posible que este proyecto se lleve a cabo, en
especial a mi director de proyecto, Alberto Abello que me ha guiado y me ha ayudado a
 alcanzar los objetivos de este proyecto.

 ¡Gracias a todos y todas!

 1
Desarrollo de una aplicación móvil para aparear animales - Juan José Navarro Albarracín
RESUMEN

 Cada vez hay más gente interesada en tener mascotas recién nacidas para poder criarlas
desde que son pequeñas. Con la crisis cada vez se compran menos animales en las tiendas
 y aumentan las ventas particulares que son más económicas. Dichos particulares buscan
 perfiles de mascotas concretos. A parte, por circunstancias personales me toco sufrir una
 enfermedad que pasan los animales los cuales nunca han tenido relaciones sexuales. Por
estos motivos me plantee la siguiente pregunta: ¿Existe alguna manera de poder ayudar
 a toda esa gente y a esas personas que han sufrido el mismo problema que yo?

Como trabajo de final de grado se presenta Animal Pairs, una aplicación multiplataforma
para poner en contacto 2 personas que tengan mascotas y estén interesados en que dichos
 animales se conozcan. A lo largo del documento podremos encontrar un análisis
 exhaustivo previo al desarrollo, explicaciones de las decisiones tomadas y toda la
 información necesaria acerca de la aplicación y cómo utilizarla.

 2
Desarrollo de una aplicación móvil para aparear animales - Juan José Navarro Albarracín
RESUM

 Cada cop n’hi ha més gent interessada en tenir mascotes nadons per poder criar-les des
que són petites. Amb la crisi, cada cop es compren menys animals a les tendes i augmenten
 les ventes de particulars que són més econòmiques. Aquests particulars busquen perfils de
mascotes molt concrets. A part d’això, per circumstancies personals, vaig haver de sofrir una
malaltia que passen els animals que no han tingut cap relació sexual. Per aquets motius hem
 vaig plantejar la següent pregunta: Existeix una manera de poder ajudar a tota aquesta
 gent i a aquelles persones que han patit el mateix problema que jo?

 Com a treball de final de grau es presenta Animal Pairs, una aplicació multi plataforma per
 poder posar en contacte 2 persones que tinguin mascotes i estiguin interessats en que
 aquestes es coneguin. Al llarg d’aquest document podem trobar un anàlisi exhaustiu previ
 al desenvolupament, explicacions de les decisions presses i tota la informació necessària
 sobre l’aplicació i com utilitzar-la

 3
Desarrollo de una aplicación móvil para aparear animales - Juan José Navarro Albarracín
ABSTRACT

 More and more people are interested in having newborn pets to be able to raise them
 since they are small. With the crisis, less and less animals are bought in stores and private
 sales are increasing. These persons are looking for specific pet profiles. Besides, due to
personal circumstances I had to suffer from a disease that the animals, which have never had
 relations, go through. For these reasons I asked myself the following question: Is there any
 way to help all those people and those people who have suffered the same problem as me?

 As a final degree project, we present Animal Pairs, a multiplatform application to put in
contact 2 people who have pets and are interested in getting to know each other. Throughout
the document we can find an exhaustive analysis previous to the development, explanations
of the decisions taken and all the necessary information about the application and how to use
 it.

 4
Desarrollo de una aplicación móvil para aparear animales - Juan José Navarro Albarracín
Índice

 1. Contexto 10
 1.1. Introducción ........................................................................................... 10
 1.2. Términos y definiciones ........................................................................... 11
 1.3. Identificación del problema ...................................................................... 12
 1.4. Stakeholders ........................................................................................... 13
 2. Justificación 14
 2.1. Análisis de mercado ................................................................................ 14
 2.2. Conclusiones .......................................................................................... 15
 3. Alcance del proyecto 16
 3.1. Objetivos................................................................................................ 16
 3.2. Requisitos no funcionales......................................................................... 17
 3.3. Obstáculos y riesgos ................................................................................ 17
 4. Metodología y rigor 19
 4.1. Sistema de control de versiones ................................................................ 20
 4.2. Sistema de Gestión de Proyecto ................................................................ 21
 5. Tecnologías 22
 5.2. Entorno de desarrollo integrado ................................................................ 23
 5.3. Plataforma de nube .................................................................................. 23
 5.4. Diseño ................................................................................................... 24
 6. Descripción de tareas 26
 6.1. Tareas de gestión de proyecto ................................................................... 26
 6.2. Tareas de desarrollo de prototipos ............................................................. 27
 6.2.1. Tareas de Diseño .............................................................................. 27
 6.2.2. Prototipo de Login ............................................................................ 28
 6.2.3. Prototipo de Chat .............................................................................. 29
 6.2.4. Prototipo de Perfil............................................................................. 29
 6.2.5. Prototipo de Búsqueda ...................................................................... 30
 7. Estimaciones y Gantt 32
 8. Gestión de los riesgos 34
 8.1. Inexperiencia tecnologías utilizadas .......................................................... 34

 5
Desarrollo de una aplicación móvil para aparear animales - Juan José Navarro Albarracín
8.2. Fechas de entregas fijadas ........................................................................ 34
 8.3. Bugs ...................................................................................................... 34
9. Presupuestos 35
 9.1. Identificación de los costes ....................................................................... 35
 9.1.1. Costes de Personal ............................................................................ 35
 9.1.2. Costes generales ............................................................................... 36
 9.2. Estimación de costes ............................................................................... 38
 9.2.1. Coste de imprevistos ......................................................................... 38
 9.3. Control de Gestión .................................................................................. 39
10. Análisis y diseño 41
 10.1. Modelo conceptual .................................................................................. 41
 10.1.1. Diagrama de clases ........................................................................... 41
 10.1.2. Restricciones de integridad................................................................ 42
 10.2. Modelo de casos de uso ........................................................................... 43
 10.2.1. Casos de uso .................................................................................... 44
 10.2.2. Actores ........................................................................................... 44
 10.2.3. Paquete ........................................................................................... 45
 10.3. Modelo de comportamiento ...................................................................... 46
 10.3.1. Diagrama de secuencia ..................................................................... 46
 10.3.2. Contratos de operación del sistema .................................................... 57
 10.4. Modelo de estados ................................................................................... 61
 10.4.1. Diagrama de estados ......................................................................... 61
11. Mockups 63
 11.1. Registro ................................................................................................. 63
 11.1.1. Pantalla inicio sesión ........................................................................ 63
 11.1.2. Pantalla Creación perfil .................................................................... 64
 11.1.3. Pantalla Recuperar Contraseña .......................................................... 66
 11.2. Búsqueda ............................................................................................... 67
 11.3. Chat ....................................................................................................... 69
 11.4. Perfil...................................................................................................... 71
12. Implementación 73
 12.1. Librerías................................................................................................. 74
 12.1.1. Syncfusion ...................................................................................... 74

 6
Desarrollo de una aplicación móvil para aparear animales - Juan José Navarro Albarracín
12.1.2. Xamarin Firebase ............................................................................. 74
13. Manual de usuario 76
 13.1. Requerimientos ....................................................................................... 76
 13.2. Uso de la aplicación ................................................................................ 76
 13.2.1. Registro Usuario .............................................................................. 76
 13.2.2. Inicio Sesión .................................................................................... 78
 13.2.3. Navegación ..................................................................................... 79
 13.2.4. Ver perfil animal .............................................................................. 81
 13.2.5. Dar Like .......................................................................................... 82
 13.2.6. Mantener conversación ..................................................................... 83
 13.2.7. Ver Perfil ........................................................................................ 85
 13.2.8. Ajustes ............................................................................................ 85
 13.2.9. Cerrar sesión ................................................................................... 85
14. Sostenibilidad 86
 14.1. Autoevaluación ....................................................................................... 86
 14.2. Dimensión Ambiental .............................................................................. 86
 14.3. Dimensión Económica ............................................................................. 88
 14.4. Dimensión Social .................................................................................... 90
15. Conclusiones 93
 15.1. Planificación final ................................................................................... 93
 15.2. Objetivos del proyecto ............................................................................. 93
 15.3. Trabajo futuro ......................................................................................... 94
 15.4. Conclusiones personales .......................................................................... 94
Referencias 96

 7
Desarrollo de una aplicación móvil para aparear animales - Juan José Navarro Albarracín
Índice de Tablas
 Tabla 1. Número de animales de raza en España .............................................................. 11
 Tabla 2. Comparación funcionalidades entre las diferentes Apps del mercado ............... 15
 Tabla 3. Comparativa Frameworks (Fuente: OpenWebinars[18]).................................... 22
 Tabla 4. Resumen de las tareas del proyecto. ................................................................... 32
 Tabla 5. Salario neto y bruto según en función del rol ..................................................... 35
 Tabla 6. Resumen del coste del proyecto dividido en roles. ............................................. 36
 Tabla 7. Resumen de costes de Software. ......................................................................... 37
 Tabla 8. Resumen de los costes de Hardware ................................................................... 37
 Tabla 9. Resumen del coste del mobiliario. ...................................................................... 38
 Tabla 10. Resumen del coste de los imprevistos. ............................................................. 38
 Tabla 11. Tabla resumen de los costes totales detallados del proyecto. ........................... 39

Índice de figuras
 Figura 1. Censo de animales domésticos en España el 2019 según ANFAAC. ............... 10
 Figura 2. Flujo de la metodología prototipada. ................................................................. 19
 Figura 3. Diagrama de Gantt de las tareas del proyecto. .................................................. 33
 Figura 4. Diagrama de clases del sistema ......................................................................... 41
 Figura 5. Diagrama de casos de uso ................................................................................. 45
 Figura 6. Patrón MVVM (Fuente: Microsoft) .................................................................. 73

Índice de diagramas

 Diagrama 1. Diagrama secuencia Inicio sesión. ............................................................... 46
 Diagrama 2. Diagrama de secuencia Registrar perfil ....................................................... 47
 Diagrama 3. Diagrama de secuencia Recuperar contraseña ............................................. 48
 Diagrama 4. Diagrama de secuencia Búsqueda animales. ............................................... 49
 Diagrama 5. Diagrama de secuencia Dar un Like. ........................................................... 50
 Diagrama 6. Diagrama de secuencia Comprobar si es match. ......................................... 51
 Diagrama 7. Diagrama de secuencia Obtener Chats. ....................................................... 52
 Diagrama 8. Diagrama de secuencia Obtener un Chat ..................................................... 52
 Diagrama 9. Diagrama de secuencia Enviar mensaje....................................................... 53

 8
Desarrollo de una aplicación móvil para aparear animales - Juan José Navarro Albarracín
Diagrama 10. Diagrama de secuencia Obtener perfil. ...................................................... 54
 Diagrama 11. Diagrama de secuencia Modificar Perfil. .................................................. 55
 Diagrama 12. Diagrama de secuencia función validar email ........................................... 56
 Diagrama 13. Diagrama de secuencia validación de la contraseña. ................................. 57
 Diagrama 14. Diagrama de estados. ................................................................................. 62

Índice de MockUps

 MockUp 1. Pantalla inicio Sesión ..................................................................................... 46
 MockUp 2. Pantalla inicio sesión con alert Error ............................................................. 47
 MockUp 3. Pantalla Creación Cuenta ............................................................................... 48
 MockUp 4. Pantalla creación de perfiles .......................................................................... 49
 MockUp 5. Pantalla creación de perfiles con Error .......................................................... 50
 MockUp 6. Pantalla recuperar contraseña......................................................................... 51
 MockUp 7. Pantalla recuperar contraseña con Error ........................................................ 52
 MockUp 8. Pantalla de búsqueda ..................................................................................... 52
 MockUp 9. Desplegable Pantalla de búsqueda ................................................................ 53
 MockUp 10. Perfil de mascota ......................................................................................... 54
 MockUp 11. Pantalla de chats ........................................................................................... 55
 MockUp 12. Pantalla de chat ........................................................................................... 56
 MockUp 13. Pantalla perfil .............................................................................................. 57

 9
1. Contexto

1.1. Introducción

El proyecto de fin de grado “Desarrollo de una aplicación móvil para aparear animales” es
un trabajo que pertenece a los estudios de Grado de Ingeniería Informática para la Facultad de
Informática de Barcelona (FIB), Universidad Politécnica de Barcelona, para la especialidad de
Ingeniería del Software. Este trabajo se ha realizado de manera independiente, es decir, dentro
de la modalidad A de la universidad, sin tener ninguna vinculación con ninguna empresa.

Hoy en día casi todo el mundo tiene una mascota en casa. El año 2019 según la Asociación
Nacional de Fabricantes de Alimentos para Animales de Compañía (ANFAAC) [1] en España
casi un 40% de los hogares tienen una mascota, que son aproximadamente unos 28 millones
de animales. Es complicado saber con exactitud el número de animales censados en España ya
que no todas las mascotas se registran. También encontramos el inconveniente que, al fallecer,
no se comunica y por tanto siguen constando en el censo. Dicho esto, según los datos del censo
de mascotas en el 2019, podemos decir que la mascota predominante en España es el pez,
seguido de cerca por los pájaros y los perros. Después tenemos a los gatos, reptiles y mamíferos
pequeños con un número bastante más reducido.

 Figura 1. Censo de animales domésticos en España el 2019 según ANFAAC.

De todos los animales domésticos que hay en España, los perros son los animales que más se
crían. A la hora de emparejar dos perros se tienen en cuenta muchos factores que hacen más

 10
complicada esta tarea. Una de las cosas que más se valora en un perro es el pedigrí, lo que los
hace más valiosos y necesarios para las competiciones. Según la Real Sociedad Canina de
España el número de perros de raza es de 2,5 millones, es decir un 37% de los perros censados
son de raza [2].

 Tabla 1. Número de animales de raza en España

En los últimos años en España ha aumentado el negocio de la cría de perros ya sea de
particulares o de empresas que se dedican a ello. Este negocio está aumentado debido a que la
mayoría de personas prefieren tener a los perros cuando son cachorros y criarlos desde
pequeños a adoptar o acoger un perro cuando ya es adulto.

1.2. Términos y definiciones

 ● Pedigrí: Cuando hablamos de pedigrí hacemos referencia a un certificado de
 familia de un perro. Este documento indica que el perro tiene varias generaciones de
 raza pura [3].

 ● Perros de raza: Se entiende por perros de raza o perros de raza pura a aquellos
 perros que descienden de dos perros de la misma raza.

 ● Cría: Al hacer referencia a la cría de perros estamos hablando de personas o
 empresas que se encargan de poner dos animales para que tengan descendencia y hacer
 negocio de estas.

 11
● Apareamiento: Este término es muy utilizado cuando hablamos de animales.
 Consiste en juntar a dos animales de géneros distintos, un macho y una hembra para
 que el macho eyacule en el interior de la hembra con el fin de procrear o reproducirse.

1.3. Identificación del problema

Cada vez hay más personas se dedican a la cría de animales de compañía ya sea con el fin de
hacer negocio o simplemente para beneficio personal. Esto hace que a la hora de aparear dos
animales las personas quieran que sean de la misma raza, ya que al mezclar razas no sabes la
descendencia que tendrán.

Para aparear a un animal de compañía con otro, se deben tener en cuenta diversos factores. Es
importante encontrar a un animal del género contrario, de la misma raza y, por último, que sea
de la zona a la que pertenece la persona implicada. Poder combinar estas tres características es
complicado, pero es más complicado si tenemos que hacerlo con los animales que uno mismo
conoce, es decir, de su círculo más cercano. Por este motivo muchas veces podemos ver en
internet anuncios en los que se ofrece el apareamiento de un animal con las condiciones
deseadas para la otra parte.

También podemos ver que encontrar a un animal de una raza concreta no siempre es posible y
más cuando hablamos de razas que pueden ser raras. El mismo problema surge cuando se busca
un animal con pedigrí.

Por otro lado, para poder aparear a un animal con otro de su misma raza se debe conocer a
alguien que tenga dicho animal, ponerse en contacto con dicha persona y comunicarle si estaría
dispuesto a aparearlo. Esto no siempre es posible ya que no todas las personas están dispuestas
o bien, puede que no se conozca a nadie que tenga un animal con las características necesarias
para iniciar el proceso de apareamiento.

Otro problema añadido por el que es necesario el apareamiento entre animales es un proceso
mental por el que pasan las hembras conocido como “embarazo psicológico”. Este proceso solo
ocurre en perros ya que necesitan ovular para que les pase y las gatas solo ovulan cuando el
macho las monta [4]. Le llamamos proceso porque no se puede llamar enfermedad como tal y
consiste en que la hembra se comporta como si hubiese parido o estuviese a punto. Esto hace
que tengan un fuerte cambio tanto mental como físico incluso llegando a sacar leche por las
mamas. Este proceso puede afectar gravemente a la hembra haciéndola sufrir. Este es un
proceso que pasan todas las hembras, solo que a unas se les manifiesta y a otras no. Las hembras
que se han apareado alguna vez en su ciclo vital, tienen menos probabilidad de padecer este

 12
proceso mental. Este es un motivo adicional por el que se recomienda aparear a las hembras al
menos una vez.

1.4. Stakeholders

Los stakeholders, también denominados como actores implicados, son los beneficiarios del
proyecto, las personas afectadas por este o las personas que están directamente implicadas. Los
stakeholders son muy importantes en todo proyecto porque te ayudan a definir correctamente
este. Debido a que va dirigido a estos actores, deberemos tener en cuenta su opinión, sus
preocupaciones y sus requerimientos. A continuación, mostraré una lista con los diferentes
stakeholders de este proyecto:

 ● Desarrollador: Como único desarrollador del proyecto, yo seré uno de los
 principales stakeholders ya que me encargaré de realizar las pruebas de test, desarrollar
 el código de la aplicación y realizar toda la documentación del mismo.

 ● Tutor TFG: El tutor de este trabajo de final de grado, Alberto Abelló es un
 stakeholder importante, ya que se encargará de dirigir el TFG y que siga la dirección
 correcta.

 ● Personas con mascota: Toda persona que tenga una mascota en casa es un
 stakeholder muy importante, más concretamente aquellos que quieran aparear a su
 mascota.

 ● Criaderos de animales: Los criadores que no tengan una hembra y un macho
 de la misma raza serán un stakeholder cuando decidan tener crías para esa raza de
 animal concreta.

 13
2. Justificación

2.1. Análisis de mercado

El mundo animal está creciendo cada vez más y el número de mascotas domésticas también.
Por este motivo en los últimos tiempos han surgido varias apps en el mercado con las que es
posible encontrar mascotas de otras personas. A continuación, mostraré una lista de estas
aplicaciones, las analizaremos y haremos una comparativa entre ellas. Una vez acabada esta
comparativa definiremos en qué se diferencia nuestra solución y que adapta de las soluciones
existentes.

 ● MatchDog [5]: Es una aplicación multiplataforma desarrollada por unos
 estudiantes de México. Esta aplicación tiene una interfaz muy sencilla e intuitiva.
 Permite buscar perros según la raza y la distancia a la que se encuentran. En esta
 aplicación debes registrarte, poner fotos de la mascota e indicar su raza, edad y género.
 También da la posibilidad de poner una foto del dueño. Una vez introducidos los filtros
 deseados muestra todos los perros que coinciden con la búsqueda. Si las dos partes se
 dan un me gusta, pueden iniciar un chat. También da la posibilidad de guardar el animal
 en favoritos, lo que hará que cuando se modifique el perfil salga una notificación.
 A parte de esto, también ofrece diferentes servicios como pueden ser entrenamientos,
 veterinarios, etc. Simplemente pone una breve descripción y un número de contacto.

 ● Twindog [6]: Twindog es una aplicación muy similar a la conocida “Tinder”
 que sirve para encontrar pareja o amigos para personas. En esta aplicación se pueden
 introducir fotos y datos del perro, pero también se debe poner información sobre la
 persona o dueño. Esto permite utilizar la app para buscar un animal para tu mascota y
 también buscar una persona para el dueño. En los filtros de la aplicación permite
 escoger el género de los dueños que se quieren mostrar. Twindogs muestra perros
 aleatoriamente, según tus filtros. Si las dos partes dan un me gusta, pueden iniciar un
 chat. Este funcionamiento es una copia del funcionamiento que tiene la aplicación
 Tinder.

 ● GetPet [7]: Esta app no permite encontrar una mascota con el fin de aparear, si
 no que permite encontrar una mascota para adoptar. Pese a eso, el funcionamiento de
 la aplicación es similar al que deseamos. Según un filtro de búsqueda va mostrando
 diferentes animales. Cada animal mostrado tiene la posibilidad de darle un like. En caso
 de que sea recíproco, se puede iniciar un chat.

 14
● SocialAnimals [8]: SocialAnimals es una aplicación que permite conectar a
 diferentes mascotas mediante un chat. No es solo eso, sino que también tiene la función
 de red social para mascotas. Además, tiene diferentes funcionalidades como pueden ser
 un calendario de eventos, publicaciones, creación de grupos, etc. Es una aplicación muy
 completa que da la posibilidad de ponerte en contacto con protectoras y adoptar
 animales. También permite publicar anuncios, ofertas y descuentos.

2.2. Conclusiones

A continuación, se muestra una tabla con las diferentes opciones que hay actualmente en el
mercado y lo que ofrece cada una.

Tabla 2. Comparación funcionalidades entre las diferentes Apps del mercado

Como podemos ver en la comparativa, las diferentes apps del mercado dan soporte a todas las
funcionalidades que podría necesitar el usuario, pero ninguna cumple todos los requisitos. La
aplicación más completa que hay ahora en el mercado es Social Animals, pero tiene un
problema y es que no se centra solo en buscar al animal adecuado, sino que es una red social
para animales y tiene demasiadas funcionalidades. Esto hace que los usuarios no la usen o no
la vean con buenos ojos si solo buscan encontrar un animal adecuado.

También tenemos la aplicación MatchDogs que es la más parecida a lo que queremos obtener,
pero tiene un problema que es que solo está disponible para perros, cuando nosotros
permitiremos diferentes animales.

 15
3. Alcance del proyecto

Este proyecto consiste en desarrollar una aplicación para móvil con la que poder buscar
mediante unos filtros, animales concretos. Mostrará una lista con los resultados y por cada
animal mostrado, habrá la posibilidad de que los usuarios indiquen que dicho animal les gusta.
Si el usuario al que pertenece ese animal devuelve el me gusta, se activará la opción de chatear
para poder concertar el encuentro.
Al registrar un animal habrá la opción de poner diferentes fotos, una descripción, la edad, el
género y la raza. También será posible poner una imagen del usuario al que pertenece el animal
para que los demás usuarios sepan quién es el dueño.

3.1. Objetivos

El objetivo principal de este proyecto es poder poner en contacto dos animales que están
buscando hacer amigos o aparearse. Para conseguirlo tendremos que cumplir unos subobjetivos
obligatorios:

 ● Facilitar la búsqueda de un animal: Utilizando un sistema de filtros con
 suficientes opciones para encontrar a los animales deseados.

 ● Proporcionar contacto entre ambas partes: Utilizando un sistema de chat en
 el momento de la coincidencia.

 ● Permitir comparación entre distintos animales: Mediante una lista con todos
 los posibles resultados, los usuarios podrán comparar unos animales con otros y decidir
 los que más les interesan.

 ● Permitir privacidad de ciertos usuarios: Los usuarios podrán decidir si incluir
 información personal, una fotografía suya y una breve descripción sobre ellos o por el
 contrario prefieren preservar su intimidad y no mostrar más información que la del
 animal.

 16
3.2. Requisitos no funcionales

Una vez definidos los objetivos y subobjetivos del proyecto, es necesario determinar los
requisitos no funcionales del mismo que permitirán garantizar un buen funcionamiento de la
aplicación:

 ● Apariencia: La aplicación debe ser visualmente bonita y atraer a los diferentes
 usuarios que puedan usarla.

 ● Seguridad y privacidad: La aplicación tiene que asegurar que los datos serán
 solo accesibles por los usuarios autorizados.

 ● Usabilidad: Se espera que la aplicación sea sencilla de utilizar y muy intuitiva.
 Cualquier usuario que acceda a ella debe ser capaz de acceder a todas las
 funcionalidades disponibles.

 ● Extensibilidad: El sistema debe ser construido de tal manera que la
 incorporación de nuevas funcionalidades afecte de la menor manera posible.

 ● Escalabilidad: La aplicación debe estar preparada para un incremento en el
 número de usuarios.

 ● Fiabilidad y disponibilidad: La aplicación debe ser fiable para los usuarios y
 evitar caídas, por lo que debe estar disponible el servicio que ofrece en todo momento.

 ● Legislación: La aplicación debe cumplir con la legislación vigente y con las
 leyes de protección de datos RGPD [9] y LOPD [10].

3.3. Obstáculos y riesgos

Durante el desarrollo pueden surgir diferentes obstáculos, por eso necesitamos conocerlos antes
de comenzar para poder afrontarlos:

 ● Inexperiencia en las tecnologías utilizadas: El utilizar tecnologías de las
 cuales el desarrollador no tiene conocimientos hace que se complique ya que va a
 necesitar aprenderlas y por tanto perder un tiempo necesario para desarrollar.

 17
● Fechas de entrega fijadas: Tener unas fechas de entrega fijas hace que, si surge
cualquier contratiempo o problema, no se pueda modificar y por tanto entregar un
producto inacabado o con defectos.

 ● Bugs: El desarrollo de una aplicación va ligado con la aparición de bugs. La
cuestión es el tiempo que se tarda en resolver estos bugs. El problema puede aparecer
cuando se tarda demasiado tiempo en resolver un bug y por tanto estancarse en el
desarrollo de la aplicación.

 18
4. Metodología y rigor

La metodología de un proyecto es una parte muy importante ya que determinará la forma en
que nos organizaremos a lo largo del proyecto. Hay diferentes tipos de metodología. La más
utilizada es la de tipo Agile [11], ya que permite al equipo de proyecto estructurarse de una
manera determinada y dividir el proyecto en pequeños sprints de corta duración con la finalidad
de marcar unos objetivos a corto plazo. Esta metodología es adecuada para proyectos que
esperan adaptarse a los cambios que puedan surgir a lo largo del desarrollo o a las diferentes
necesidades que pueda tener el cliente.

Puesto que en este proyecto no tenemos ningún cliente que nos marque unos objetivos a
cumplir, ni tampoco hay un equipo de trabajo para poder repartir los diferentes roles que esta
metodología requiere, considero que no es adecuada.

La metodología más adecuada para este tipo de proyecto es la prototipada [12]. La metodología
de prototipos permite a los desarrolladores crear solo el prototipo de la solución para demostrar
su funcionalidad a los clientes. Esta metodología consiste en construir el proyecto en poco
tiempo, usando los programas adecuados y no se deben utilizar muchos recursos. Este modelo
se basa en prueba y error ya que si al usuario no le gusta una parte del prototipo significa que
la prueba falló por lo cual se debe corregir el error que se tenga hasta que el usuario quede
satisfecho. En este caso, el usuario que identificará si está conforme seré yo como desarrollador
y mi tutor del TFG.

 Figura 2. Flujo de la metodología prototipada.

 19
Esta metodología tiene sus ventajas y desventajas:

 a) Ventajas

 ● Permite reducir significativamente el riesgo de fallos e identificar los riesgos
 potenciales en una etapa temprana y se pueden tomar medidas rápidamente.
 ● Identifica el alcance del refinamiento y, en consecuencia, acomoda los
 nuevos cambios en los requisitos dados.
 ● No modifica el flujo del ciclo de vida.

 b) Desventajas

 ● El desarrollador puede caer en la tentación de ampliar el prototipo para
 construir el sistema final sin tener en cuenta los compromisos de calidad.
 ● No se aprecian demasiadas modificaciones en el proyecto...

Para llevar un buen control y seguimiento del proyecto y controlar las diferentes versiones del
mismo, utilizaremos un conjunto de herramientas que nos facilitarán este control.

4.1. Sistema de control de versiones

 ● Git [13]: Git es un sistema de control de versiones de código abierto. Es el más
 utilizado para la gestión de proyectos.

 ● GitHub [14]: GitHub es un servicio que permite gestionar y administrar
 repositorios, además de llevar un control y registro de cualquier cambio en el código.

 ● GitFlow [15]: GitFlow es un flujo de trabajo que se basa en un conjunto de
 ramas que se utilizaran según la tarea que llevemos a cabo. La idea es tener una rama
 master que siempre será estable y tener una rama develop donde tendremos nuestro
 proyecto cambiante. Por último, la idea es crear una rama por cada funcionalidad o
 historia de usuario. Una vez acabada esta funcionalidad la incluiremos en la rama
 develop.

 20
4.2. Sistema de Gestión de Proyecto

 ● Taiga [16]: Taiga es una herramienta de software libre y código abierto, que
 permite gestionar proyectos ágiles, además permite gestionar issues. Permite crear
 historias de usuarios y puntuarlas, ver una gráfica de cómo avanza el proyecto y
 gestionar el backlog, entre otras muchas funcionalidades.

 21
5. Tecnologías

En el desarrollo de una aplicación es necesario utilizar diversas herramientas con finalidades
totalmente diferentes. Por este motivo es importante evaluar las diferentes opciones y valorar
cual es la mejor opción en cada caso.

5.1. Framework

El framework es un conjunto estandarizado de conceptos, prácticas y criterios para enfocar un
tipo de problemática particular [17]. Un framework permite agilizar los procesos de desarrollo
ya que evita tener que escribir código de forma repetitiva, asegura unas buenas prácticas y la
consistencia del código.

Para poder escoger un framework adecuado hay que tomar una decisión importante que es
saber si nuestra aplicación será multiplataforma o nativa. En caso de ser nativa tiene muchas
ventajas de eficiencia, pero limitamos el mercado a un tipo de móvil, ya que no hay tiempo
para desarrollar dos aplicaciones nativas, una en cada plataforma (Android y iOS). Por este
motivo, se tomó la decisión de realizar una aplicación multiplataforma.
Una vez tomada esta decisión era necesario comparar los distintos frameworks posibles y ver
cuál era el más adecuado.

 React Native Flutter Xamarin Cordova/Ionic

 Lenguaje Javascript Dart C# HTML, CSS,
 (+Java y Objective-C) JS

 Rendimiento Casi nativo Casi nativo Casi nativo Moderado

 Interfaz Componentes Componentes Componentes HTML, CSS
 nativos propios nativos

 Comunidad Muy activa y Poco popular Relativamente Bastante
 grande popular popular

 Reusabilidad 90% código 50%-90% código 96% código 98% código

Tabla 3. Comparativa Frameworks (Fuente: OpenWebinars [18])

Después de comparar varios de los frameworks más utilizados en el mercado, como podemos
ver en la tabla 3, Xamarin es el único que utiliza C#, un lenguaje que siempre me ha atraído

 22
bastante. También podemos ver que tiene características muy similares a React y Flutter, pero
con una diferencia, que es más reusable su código. Esto hace que facilite la programación al
desarrollador.
Como podemos ver también es bastante popular por lo tanto hay información suficiente en caso
de bloqueo.

5.2. Entorno de desarrollo integrado

Un entorno de desarrollo integrado (IDE) es una aplicación informática que proporciona
servicios para facilitarle el desarrollo de software al desarrollador o programador.
Normalmente un entorno de desarrollo consiste en:

 • Un editor de código fuente
 • Un compilador y/o un intérprete
 • construir herramientas de automatización
 • Un depurador

Dado que el framework ya lo hemos decidido, el entorno de desarrollo integrado debe ser
apropiado para dicho framework.

Xamarin pertenece a Microsoft y por tanto el IDE más adecuado para este framework seria
Visual Studio, que pertenece también a Microsoft. Visual Studio cuenta con una extensión de
Xamarin que permite instalar el framework en el IDE.

5.3. Plataforma de nube

La computación en la nube es un término general para la prestación de servicios alojados a
través de Internet, y permite consumir recursos informáticos como una utilidad en lugar de
tener que construir y mantener infraestructuras de computación propias.

Por este motivo es necesario escoger una plataforma de nube que permita gestionar estos datos
que deseamos almacenar en la nube. Las plataformas de nube más utilizadas actualmente son:
AWS [19], Microsoft Azure [20] y Firebase [21].
Estos 3 servicios tienen características muy similares. Inicialmente pensé en escoger Microsoft
Azure, ya que pertenece a Microsoft y por tanto sería bastante adecuado puesto que se han
seleccionado dos opciones de Microsoft para el desarrollo de esta aplicación. El inconveniente
que tiene esta plataforma es que es totalmente nueva para mí y eso hace que sea necesario

 23
investigar e invertir tiempo en descubrir cómo funciona y como almacenar datos en ella. Por
este motivo decidí comparar esta plataforma con Firebase.
La ventaja de esta plataforma es que ya he trabajado con ella y por tanto no es necesario invertir
tiempo en descubrir cómo funciona o como utilizarla dentro de mi aplicación.
Comparando ambas posibilidades he conseguido descubrir que Google Cloud está más
orientado al usuario y ofrece una serie de servicios que facilitan la vida al programador como
son el acceso con Google y la autenticación de usuarios. Microsoft Azure está orientado más
al mundo empresarial.
Por otro lado, tenemos Amazon Web Services, que como podemos ver en la comparativa que
realizan en profundidad en la web “embersoftware” [22], podemos corroborar que Firebase es
la mejor opción.

Por estos motivos finalmente decidí escoger Firebase.

Una vez decidida la plataforma, era importante escoger correctamente el tipo de base de datos
a utilizar, ya que Firebase tiene 2 bases de datos distintas:

 • Real-Time Database: Es la base de datos original de Firebase. Es una solución
 eficiente destinada a las apps para dispositivos móviles que necesitan estados
 sincronizados entre los clientes en tiempo real.
 • Cloud Firestore: Es la base de datos más reciente de Firebase para el desarrollo de
 apps para dispositivos móviles. Aprovecha lo mejor de Realtime Database. Se pueden
 realizar consultas rápidas y complejas.

Database utiliza un sistema de JSON para almacenar sus datos, mientras que Firestore utiliza
un sistema de colecciones, más conocido como diccionario. Firestore almacena los datos por
parejas clave, valor.

Debido a que Firestore es más moderno, utiliza lo mejor que tiene Database además de tener
funcionalidades extra como las consultas complejas, he decidido utilizar Firestore como base
de datos.

5.4. Diseño

Por último, en cuanto a tecnologías se refiere es necesario determinar que programa se utilizará
para realizar el diseño de la aplicación.

Hay una gran variedad de programas que permiten realizar las plantillas de nuestra aplicación
y con cierta facilidad. El más conocido y con mayor potencial es Adobe XD [23]. Adobe XD

 24
permite diseñar todo tipo de componentes totalmente personalizados. Es una herramienta muy
potente y muy utilizada para el diseño. También permite realizar el flow que seguirá nuestra
aplicación cada vez que se realiza una acción en la pantalla. Como podemos ver es una
herramienta muy potente y, pero realmente no necesitamos una herramienta tan potente puesto
que el peso de este proyecto está en el desarrollo. En caso de ser diseñador seria la herramienta
escogida.
En este caso es más sencillo utilizar una aplicación que nos facilite un poco el trabajo y nos de
los componentes diseñados. Esto hará que el tiempo de creación de las pantallas se reduzca
puesto que simplemente habrá que posicionarlos en la pantalla, no crearlos desde 0 como en
Adobe XD.
Por estos motivos la aplicación que se ha escogido es Balsamiq [24], que como hemos
comentado anteriormente, tiene unos componentes nativos de cada plataforma que nos
permitirán crear unos MockUps muy conseguidos para hacernos una idea de cómo quedará la
aplicación.

 25
6. Descripción de tareas

En todo proyecto es importante desgranarlo en partes y saber definir que función va a tener
cada parte y en qué va a consistir. Esto nos permite llevar un control exhaustivo del proyecto.
Por ese motivo a continuación se definirán las tareas a realizar en este proyecto. Como hemos
escogido una metodología basada en prototipos, las tareas de este proyecto se dividirán en dos
grupos, tareas de gestión del proyecto y tareas de desarrollo de prototipos. Para cada tarea se
especificará un identificador, las horas estimadas, un título, una descripción, las dependencias
que tiene la tarea y los recursos utilizados.

6.1. Tareas de gestión de proyecto

 ● GP1 → Alcance y contextualización del proyecto (20h): Realización de la
 primera entrega de la documentación del proyecto. Consta del contexto, la justificación,
 el alcance del proyecto, la metodología escogida y las referencias.
 Dependencias: -
 Recursos Humanos: Desarrollador.
 Recursos Materiales: PC, Google drive, Word, Excel, Generador APA [25]

 ● GP2 → Planificación temporal (10h): Realización de la segunda entrega de la
 documentación del proyecto. Consta de la descripción de tareas, estimaciones, Gantt y
 gestión de riesgos.
 Dependencias: GP1
 Recursos Humanos: Desarrollador.
 Recursos Materiales: PC, Google Drive, Word, GanttProject [26]

 ● GP3 → Presupuestos y sostenibilidad (15h): Realización de la tercera entrega
 de la documentación del proyecto. Consta de los presupuestos para la identificación,
 estimación y control de los costes y un informe de sostenibilidad.
 Dependencias: GP2
 Recursos Humanos: Desarrollador
 Recursos Materiales: PC, Google Drive, Word, Excel

 ● GP4 → Documento final (70h): Realización de la documentación final del
 proyecto. Consta de toda la documentación relacionada con el proyecto.
 Dependencias: GP1, GP2, GP3
 Recursos Humanos: Desarrollador y tutor TFG
 Recursos Materiales: PC, Google Drive, Word

 26
● GP5 → Refinamiento prototipo (0,5h): Al finalizar un prototipo se realiza una
 reunión para aceptar el prototipo finalizado o para escoger los cambios que hay que
 realizar.
 Dependencias: -
 Recursos Humanos: Desarrollador y tutor TFG.
 Recursos Materiales: PC, Google Meet [27]

6.2. Tareas de desarrollo de prototipos

Dentro del desarrollo de prototipos tenemos diferentes partes, la parte de diseño y la parte de
desarrollo.

6.2.1. Tareas de Diseño

 ● DMU → MockUps (10h): Diseño de las plantillas de las diferentes pantallas
 que tendrá la aplicación.
 Dependencias: -
 Recursos Humanos: Desarrollador
 Recursos Materiales: Balsamiq, PC

 ● DBD → Diseño de Base de Datos (15h): Diseño de la base de datos en la que
 se almacenarán los datos de la aplicación
 Dependencias: -
 Recursos Humanos: Desarrollador
 Recursos Materiales: PC, DrawIO [28], Firebase

 ● DBE → Diseño del BackEnd (15h): Diseño del BackEnd de la aplicación.
 Dependencias: DBD
 Recursos Humanos: Desarrollador
 Recursos Materiales: PC, VisualStudio

Por lo que respecta a la parte del desarrollo, debido a la metodología escogida, dividiremos esta
parte en prototipos. Cada prototipo corresponderá a las diferentes funcionalidades o apartados
que tendrá la aplicación:

 27
6.2.2. Prototipo de Login

 ● PL1 → Creación de la pantalla de login (30h): Implementación de la parte
 visual de la pantalla de logIn.
 Dependencias: DMU
 Recursos Humanos: Desarrollador
 Recursos Materiales: PC, Visual Studio [29], Xamarin [30]

 ● PL2 → Implementación lógica LogIn (30h): Implementación de la lógica
 necesaria para poder iniciar sesión en la aplicación.
 Dependencias: PL1
 Recursos Humanos: Desarrollador
 Recursos Materiales: PC, Visual Studio, Xamarin

 ● PL3 → Cifrado de contraseña (15h): Implementación del cifrado de
 contraseñas para dar más seguridad a los usuarios que utilicen la aplicación.
 Dependencias: PL2
 Recursos Humanos: Desarrollador
 Recursos Materiales: PC, Visual Studio, Xamarin

 ● PL4 → Conexión con la Base de Datos (10h): Integración de la base de datos
 para poder almacenar los usuarios y poder gestionarlos.
 Dependencias: PL2, DBD
 Recursos Humanos: Desarrollador
 Recursos Materiales: PC, Visual Studio, Xamarin, Firebase

 ● PL5 → Creación de perfil (20h): Implementación de la pantalla que permite
 crear un nuevo usuario.
 Dependencias: DBD, PL2, PL4
 Recursos Humanos: Desarrollador
 Recursos Materiales: PC, Visual Studio, Xamarin, Firebase

 28
6.2.3. Prototipo de Chat

 ● PC1 → Creación pantalla de Chat (25h): Implementación del diseño
 necesario para el prototipo de Chat.
 Dependencias: DMU
 Recursos Humanos: Desarrollador
 Recursos Materiales: PC, Visual Studio, Xamarin

 ● PC2 → Implementación lógica básica (25h): Implementación de la lógica más
 básica del prototipo de chat. Esta consistirá en mostrar por pantalla los mensajes que
 voy escribiendo
 Dependencias: PC1
 Recursos Humanos: Desarrollador
 Recursos Materiales: PC, Visual Studio, Xamarin

 ● PC3 → Conectividad entre dos usuarios (30h): Implementación de la lógica
 necesaria para conectar dos usuarios y poder mostrar los mensajes que se envían.
 Dependencias: DBD, PC1
 Recursos Humanos: Desarrollador
 Recursos Materiales: PC, Visual Studio, Xamarin, Firebase

 ● PC4 → Cifrado de los mensajes (20h): Implementación del cifrado de
 mensajes que se envían a través de la aplicación.
 Dependencias: PC2
 Recursos Humanos: Desarrollador
 Recursos Materiales: PC, Visual Studio, Xamarin

6.2.4. Prototipo de Perfil

 ● PP1 → Creación pantalla de Perfil (30h): Implementación del diseño de la
 pantalla de perfil.
 Dependencias: DMU
 Recursos Humanos: Desarrollador
 Recursos Materiales: PC, Visual Studio, Xamarin

 29
● PP2 → Modificación perfil (20h): Implementación de la lógica de la pantalla
 de perfil. Permitirá al usuario modificar información básica del perfil del usuario
 incluidas las fotografías.
 Dependencias: PP1, DBD
 Recursos Humanos: Desarrollador
 Recursos Materiales: PC, Visual Studio, Xamarin, Firebase

 ● PP3 → Eliminación de perfil (15h): Implementación de la lógica que permite
 eliminar un usuario.
 Dependencias: PP1, DBD
 Recursos Humanos: Desarrollador
 Recursos Materiales: PC, Visual Studio, Xamarin, Firebase

6.2.5. Prototipo de Búsqueda

 ● PB1 → Creación pantalla Búsqueda (30h): Implementación de la pantalla de
 búsqueda.
 Dependencias: DMU
 Recursos Humanos: Desarrollador
 Recursos Materiales: PC, Visual Studio, Xamarin

 ● PB2 → Implementación de la lógica (25h): Implementación de la lógica
 necesaria para mostrar una lista de mascotas.
 Dependencias: PB1
 Recursos Humanos: Desarrollador
 Recursos Materiales: PC, Visual Studio, Xamarin

 ● PB3 → Filtro de búsqueda (25h): Implementación del filtro que permita al
 usuario mostrar una lista de mascotas concretas.
 Dependencias: PB2, DBD
 Recursos Humanos: Desarrollador
 Recursos Materiales: PC, Visual Studio, Xamarin, Firebase

 30
● PB4 → Formato Match (25h): Implementación de la funcionalidad que
 permite dar Me Gusta a una mascota de la lista y que en caso que sea recíproco activa
 el chat entre ambos.
Dependencias: PB1
Recursos Humanos: Desarrollador
Recursos Materiales: PC, Visual Studio, Xamarin

 31
7. Estimaciones y Gantt

En la tabla 4, podemos ver un resumen de las diferentes tareas y la estimación en horas de cada
una. Además, veremos las dependencias y recursos que necesitaremos para realizar cada una.

Tabla 4. Resumen de las tareas del proyecto.

A continuación, en la figura 3, veremos un diagrama de Gantt en el que se desglosan las
diferentes tareas a lo largo del tiempo. En este diagrama podemos ver el inicio y el final del
proyecto. Como podemos apreciar el proyecto tiene una estimación de finalizar el 17 de junio,
2 semanas antes de la presentación de dicho proyecto. Esto está pensado a propósito ya que se
dejan 2 semanas por si se alarga alguna tarea o alguna estimación se queda corta. Además, hay
que realizar una presentación del proyecto que eso también requiere cierto tiempo de
preparación y ese periodo es ideal.

 32
Figura 3. Diagrama de Gantt de las tareas del proyecto.

 33
8. Gestión de los riesgos

Como ya hemos visto previamente hay una serie de riesgos y obstáculos que pueden aparecer
a lo largo del proyecto. En caso que estos aparezcan debemos evitar que paralicen el desarrollo
o retrasen demasiado los plazos estimados. Para conseguir que esto no pase, vamos a dar unas
posibles soluciones a estos problemas.

8.1. Inexperiencia tecnologías utilizadas

Uno de los problemas que más impacto puede tener en el proyecto es el utilizar tecnologías de
las cuales no se tienen conocimiento para desarrollar la aplicación, como es el caso de Xamarin
y Microsoft Azure. Para minimizar estos riesgos se estudiarán previamente las dos tecnologías
a utilizar y se realizarán tutoriales para iniciarse en dichas tecnologías. Además, se
sobreestimarán las horas de las tareas que requieren la utilización de estas tecnologías. Como
recurso adicional se utilizará un curso especializado en las tecnologías utilizadas y documentos
relacionados con estas.

8.2. Fechas de entregas fijadas

Este es un problema con una incidencia muy baja en el proyecto ya que no afecta a la duración
de este debido a que desde el principio del mismo se conocen todas las fechas y ya se estiman
todos los procesos y tareas teniéndolas en cuenta. Para resolver este problema se añaden a la
estimación 10h por si en algún caso no se ha planificado correctamente tener un pequeño
margen. No se necesitarán recursos adicionales.

8.3. Bugs

Uno de los mayores problemas en el mundo de la programación son los bugs, es decir errores
de compilación o de comportamiento de la aplicación. Para minimizar el impacto que tienen
estos errores en la aplicación es necesario realizar un proceso de testing y debug exhaustivo
cada vez que se finaliza una tarea. Para realizar estas pruebas se utilizarán potenciales usuarios
externos para que hagan pruebas en la aplicación además de las pruebas que realice el
desarrollador. No se utilizarán recursos materiales adicionales, pero sí que se utilizarán
recursos humanos adicionales, que serán usuarios potenciales externos.

 34
También puede leer