# GeoCampus: Documentación del Desarrollo

Este apartado tiene como finalidad poder brindar la información necesaria respecto al desarrollo de la aplicación GeoCampus.
< GeoCampus: Servicio de geolocalización de lugares de interés en la universidad

## Introducción

Esta documentación aportara información respecto a las herramientas de desarrollo utilizadas durante el curso con el fin de poder obtener la aplicación móvil GeoCampus .Se pretende dar datos respecto al funcionamiento de la aplicación , así como sus requisitos mínimos , el tipo de arquitectura utilizado, entre otros.

## Riesgos

| ID | RIESGO | EFECTO | MITIGACION |
| Gestión de recursos. ||||
| 1 | Tiempo de desarrollo reducido. | Retrasos en las entregas de prototipos y documentación necesaria. | Planificación anticipada y adecuada de acuerdo a los requisitos funcionales del sistema |
| 2 | Recursos humanos insuficientes. | Retrasos en los tiempos de entrega del proyecto. | Contratación de personal extra para el proyecto. |
| 3 | Recursos económicos insuficientes para continuar con todas las etapas del proyecto. | Retraso en los tiempos de entrega. Retraso en los pagos al personal. | Re-Planificación del alcance del proyecto y de las funcionalidades iniciales para la versión beta.. |
| 4 | Estimación optimista de tiempo de desarrollo. | Retraso en los tiempos de entrega. | Estudio detallado del alcance del proyecto y de los requisitos solicitados, por parte del equipo de desarrollo. |
| 5 | Retiro de un integrante del equipo de trabajo. | Acumulación de trabajo para el restante grupo. Retraso en tiempos de entrega y desarrollo. | Revaluación de requisitos para minimizarlos y adecuarlos al nuevo grupo de trabajo. Subcontratación de un nuevo desarrollador. |
| 6 | Integración de un nuevo desarrollador al equipo. | Retrasos en tiempos de entrega, en la medida en que se demore el entrenamiento del nuevo integrante. | Establecer metodologías de desarrollo y documentación estándar. Documentar los avances del proyecto y cada una de la modificaciones realizadas al mismo. |
| 7 | Insuficiencia de recursos de hardware para el desarrollo. | Retrasos en los tiempos de entrega de documentación y sistema. | Evaluación adecuada de los requisitos del sistema, minimizar necesarios y que permitan terminar la entrega de todo en el tiempo establecido. |
| 8 | Baja productividad por parte del equipo de desarrollo. | Retrasos en los tiempos de entrega de sistema y documentación. | Establecer tiempos de entrega internos, en la empresa, para evaluar avances de cada uno de los integrantes del equipo de trabajo. Evaluación continua de los avances individuales y colectivos del grupo de desarrolladores. |
| 9 | Mala distribución de carga de trabajo | Salida de un integrante del grupo de trabajo. Retraso en tiempos de entrega y desarrollo | Analizar con detenimiento los requisitos del sistema y dividirlos equitativamente dentro del grupo de desarrolladores. Compromiso individual con el proyecto por parte de cada uno de los integrantes del grupo de trabajo. |
| Dificultades de desarrollo. ||||
| 10 | Desconocimiento de los lenguajes de programación y tecnologías a emplearse para el desarrollo del proyecto. | Retrasos en la entrega del sistema y documentación. | Elaboración de una propuesta de desarrollo, que contemple solo y únicamente las tecnologías que dentro del grupo de trabajo se conozcan claramente. División de tareas adecuada, dentro del grupo de trabajo, que permita el aprendizaje de las tecnologías necesarias dentro del tiempo de desarrollo sin incurrir en retrasos para su entrega final. Establecer tareas claras de acuerdo a las capacidades de cada uno de los integrantes del equipo para maximizar el tiempo y desarrollo del sistema y documentación. |
| 11 | Insuficiencia de recursos destinados al desarrollo del producto final | Retraso en tiempos de entrega de sistema y documentación. Reducción de requisitos de sistema y posible insatisfacción con el producto final. | Análisis detallado de los requisitos solicitados, elaboración de un plan de desarrollo que los contemple y determine los recursos necesarios para alcanzarlos. Negociación de precio de producto, acorde con el plan de desarrollo y estimación realizada por el equipo desarrollador. |
| Riesgos Externos. ||||
| 12 | Manifestaciones públicas inesperadas | Impedimento de reuniones. | Establecimiento de varias vías de comunicación entre el equipo de desarrollo. Realización de videoconferencias entre equipo de desarrolladores. |

### Valores para la Gestión de Riesgos

Se tomaron encuenta los siguientes valores para elaborar la tabla de respuesta a los riesgos posibles en la elaboración de esta aplicación.
| Valores de Probabilidad | Valores de Probabilidad | Valores de Impacto | Valores de Impacto |
| Muy Bajo | 0.10 | Muy Bajo | 0.10 |
| Bajo | 0.30 | Bajo | 0.20 |
| Moderado | 0.50 | Moderado | 0.40 |
| Alto | 0.70 | Alto | 0.60 |
| Muy Alto | 0.90 | Muy Alto | 0.80 |

### Matriz de Impacto y Calificación de Riesgos Identificados

El color de la matriz indica cual será el rango de valores que será alto (rojo), moderado (amarillo) y bajo (verde). Estos valores son asignados al combinar el valor de probabilidad de que ocurra el evento y el impacto que tendría sobre el desarrollo del sistema.
Calificación de Riesgos Identificados en el desarrollo de Geocampus.

### Respuestas ante los Riesgos

De acuerdo a los riesgos arriba mencionados, se elaboró un plan de respuesta para cada uno de los riesgos calificados como Altos(Rojo).
De igual forma cada una de las respuestas tiene asignada un responsable de ejecución y seguimiento.
| ID | Estrategia | Descripción | Responsable |
| 1 | Mitigar | Se deberá tomar adecuadamente los requisitos, revisarlos varias veces en conjunto con el equipo de desarrollo para elaborar el cronograma de desarrollo y propuesta pertinente. | Arquitecto de Software |
| 4 | Mitigar | Una vez que se tengan los requisitos definidos y aceptados por ambas partes, el equipo de desarrolladores debe elaborar concienzudamente el tiempo estimado de elaboración y presentación pertinente de cada una de las etapas del sistema, estimación que la deben realizar con una ampliación de tiempo de un 15% adicional para eliminar o reducir posibles retrasos. | Arquitecto de Software Equipo de Desarrollo |
| 8 | Mitigar | Cada integrante del equipo de desarrollo deberá documentar y presentar sus avances periódicamente para la evaluación conjunta y determinar si existen retrasos o fallas en su trabajo, de esta manera | Lider de Proyecto |
| 9 | Mitigar | Se debe realizar una división de la carga laboral entre todos los integrantes del equipo de trabajo, determinando las mejores cualidades de cada uno para las distintas áreas de desarrollo del sistema. | Lider de Proyecto Equipo de Desarrollo |

## Tecnologías

a. Herramientas configuradas
b. Dispositivos conectados

## Metodología
### SCRUM

Elegimos la metodología SCRUM dado que el tiempo disponible para el proyecto era muy corto y debíamos destinar mayores roles en el desarrollo y además de que la documentación se haría siguiendo el estándar ITIL.

### Reuniones

Dado las limitaciones de tiempo hemos tenido las siguientes reuniones:
* Días de clase de la asignatura
* Reuniones semanales
* Uso de las herramientas Trello y WhatsApp

### Nuestros Sprints

Nuestros Sprints están distribuidos en:
* Documentación
* Diseño
* Desarrollo
* Testing
* Lanzamiento

## Arquitectura

GeoCampus cuenta con una Arquictura de funionamiento donde se tienen los siguientes elementos:
* Equipo del Usuario - SO Android
* Base de Datos Local - propia de equipos Android
* Internet como medio de comunicación
* Web Service - para puntos de ubicación predeterminados
* Base de Datos Remota - Almacena puntos predeterminados

## Requisitos del Sistema

* Sistema Operativo Android 4 o superior
* Equipo con GPS
* Cámara integrada
* Espacio en memoria de 5MB

## Casos de Uso
### Crear GeoPunto

* El usuario arranca la aplicación.
* El sistema muestra la pantalla de Inicio de la aplicación, con las opciones "Crear", "Visualizar" , "Gestionar" y "Actualizar" .
* El usuario selecciona la opción "Crear".
* El sistema muestra las coordenadas de la posición actual y la opción "Tomar Foto" para tomar una foto del lugar .
* El sistema le permite añadir alguna etiqueta a su posición actual .
* Para que la creación finalice correctamente , el usuario selecciona "Crear GeoPunto" .

### Visualizar GeoPunto

* El usuario arranca la aplicación.
* El sistema muestra la pantalla de Inicio de la aplicación, con las opciones "Crear", "Visualizar" , "Gestionar" y "Actualizar" .
* El usuario selecciona la opción "Visualizar".
* El sistema muestra un mapa con la opción de seleccionar el filtrado de lugares según una etiqueta o mostrar todos los puntos .
* El sistema le permite al usuario mostrar solo los puntos generados por el mismo usuario .

### Gestionar GeoPuntos

* El usuario arranca la aplicación.
* El sistema muestra la pantalla de Inicio de la aplicación, con las opciones "Crear", "Visualizar" , "Gestionar" y "Actualizar" .
* El usuario selecciona la opción "Gestionar".
* El sistema muestra todos los puntos creados por el usuario junto la etiqueta asignada.
* El sistema le permite al usuario eliminar o ver la foto de un lugar específico .

## Licencia

El tipo de licenciamiento de GeoCampus es GPL (GNU General Public License) , el cual brinda la oportunidad a los usuarios finales de poder hacer uso de la aplicación , ya sea para estudiar, compartir y/o modificar .

## Descargos de Responsabilidad General

El equipo de GeoCampus mantiene este servidor con el objetivo de mejorar el acceso público a la información de los sitios de interés publicados por los usuarios de la aplicación móvil. Este es un servicio de desarrollo coninuo. Aunque intentamos mantener la información precisa y al día, no podemos garantizarlo. Haremos lo posible por corregir los errores que nos sean señalados.
Los documentos de desarrollo y mantenimiento se encuentran publicados y disponibles al acceso del publico, así como el código fuente de la aplicación. Los datos publicados por los usuarios de la aplicación son almacenados y protegidos siguiendo La Ley Orgánica de Protección de Datos de España.
Traducciones de cualquier material a otros idiomas aparte del español, servirán solamente como una conveniencia a los miembros del público que no leen español. Hemos intetentado a proveer una traducción correcta del material original en español, pero debido a dificultades de traducción, podría existir diferencias pequeñas. Referencias identificando al documento original en español, están disponibles para la mayoría de los documentos que no estén en español.

## Costes de Desarrollo

A. Costes directos Los costes directos del proyecto pueden ser los siguientes: • Personal
B. Costes indirectos. B.1. Costes indirectos del proyecto • Sistemas informáticos
* Software de ayuda al desarrollo
B.2. Costes generales • Personal administrativo - Reuniones= 10 (pasajes+alimentos) * 5 (integrantes) * 9 (reuniones semanales) = 450.00 • Servicios generales
COSTE TOTAL ESTIMADO DEL PROYECTO GEOCAMPUS = CI + CG = 1776.20