|
|
### Metodología
|
|
### Metodología
|
|
|
|
|
|
|
|
Como metodología de trabajo para el proyecto se empleará **_Combat Agile_**<sup>[]</sup>. Esta metodología se basa en el marco de trabajo **_Scrum_**, heredando todas sus fases y productos. Los desarrollos basados en **_Scrum_** dividen el trabajo en **Sprints**, los cuales son etapas de aproximadamente 4 semanas de duración. A lo largo de cada Sprint se realizan una serie de hitos que permiten identificar el trabajo pendiente y auditar si el desarrollo progresa hacia el objetivo.
|
|
Como metodología de trabajo para el proyecto se empleará **_Combat Agile_**<sup>[]</sup>. Esta metodología se basa en el marco de trabajo **_Scrum_**, heredando todas sus fases y productos. Los desarrollos basados en _Scrum_ dividen el trabajo en **Sprints**, los cuales son etapas de aproximadamente 4 semanas de duración. A lo largo de cada Sprint se realizan una serie de hitos que permiten identificar el trabajo pendiente y auditar si el desarrollo progresa hacia el objetivo.
|
|
|
|
|
|
|
|
Los hitos se describen a continuación:
|
|
Los hitos de _Scrum_ son los que se describen a continuación:
|
|
|
|
|
|
|
|
1. **Sprint Planning**:
|
|
1. **Sprint Planning**:
|
|
|
Se define el trabajo del Product Backlog (PB) que se realizará durante el Sprint. Los desarrolladores desglosan cada ítem del PB seleccionado en tareas concretas llamadas _Issues_. Durante esta fase también se establece el objetivo del Sprint y se crea el **Sprint Backlog**, que incluye el objetivo, los PBIs seleccionados y los Issues generados a partir de estos PBIs.
|
|
Se define el trabajo del _Product Backlog_ (PB) que se realizará durante el Sprint. Los desarrolladores desglosan cada ítem del PB seleccionado en tareas concretas llamadas _Issues_. Durante esta reunión también se establece el objetivo del Sprint para constituir el **_Sprint Backlog_**, que incluye el objetivo del Sprint, los PBIs seleccionados y los Issues generados a partir de estos PBIs.
|
|
|
|
|
|
|
|
2. **Daily Scrum**:
|
|
2. **Daily Scrum**:
|
|
|
Reunión diaria de máximo 15 minutos en la que el equipo informa sobre las tareas realizadas, las pendientes y los impedimentos encontrados.
|
|
Reunión diaria de máximo 15 minutos en la que el equipo informa sobre las tareas realizadas, las pendientes y los impedimentos encontrados.
|
|
|
|
|
|
|
|
3. **Sprint Review**:
|
|
3. **Sprint Review**:
|
|
|
Al finalizar el Sprint, se presenta el trabajo completado a los stakeholders para recibir retroalimentación y actualizar el Product Backlog según sea necesario.
|
|
Al finalizar el Sprint, se presenta el trabajo completado a todo el personal interesado en este, especialmente al **cliente**, para recibir retroalimentación y actualizar el PB según sea necesario.
|
|
|
|
|
|
|
|
4. **Sprint Retrospective**:
|
|
4. **Sprint Retrospective**:
|
|
|
El equipo analiza cómo ha trabajado durante el Sprint y propone mejoras a implementar en los siguientes Sprints. En esta reunión se abordan únicamente aspectos metodológicos, no relacionados con el producto.
|
|
El equipo analiza cómo ha trabajado durante el Sprint y propone mejoras a implementar en los siguientes Sprints. En esta reunión se abordan únicamente aspectos metodológicos, no relacionados con el producto.
|
|
|
|
|
|
|
|
Basándose en los principios del _Manifiesto Ágil_<sup>[]</sup> y en Scrum, la metodología **Combat Agile** se caracteriza por cinco puntos clave:
|
|
Basándose en los principios del _Manifiesto Ágil_<sup>[]</sup> y en Scrum, la metodología _Combat Agile_ se caracteriza por cinco puntos clave:
|
|
|
|
|
|
|
|
1. **Flexible**: Permite trabajar con distintas configuraciones de equipo y diferentes niveles de urgencia (estratégico o de combate).
|
|
1. **Flexible**: La configuración del equipo se adapta en función del trabajo que haya que realizar.
|
|
|
2. **Eficiente**: Emplea un enfoque "only-once" que fomenta la autodocumentación y el diseño emergente, siguiendo buenas prácticas y promoviendo la colaboración entre perfiles funcionales y técnicos mediante **Behavior-Driven Development (BDD)**.
|
|
2. **Eficiente**: Emplea un enfoque "only-once" que fomenta la autodocumentación y el diseño emergente, siguiendo buenas prácticas y promoviendo la colaboración entre perfiles funcionales y técnicos mediante **Behavior-Driven Development (BDD)**.
|
|
|
3. **Accesible**: Se implementa de forma rápida y fácil de asimilar por todos los integrantes, adoptándose progresivamente con herramientas mínimas para facilitar su propagación.
|
|
3. **Accesible**: Se implementa utilizando la mínima cantidad de herramientas específicas para evitar que surjan barreras técnicas.
|
|
|
4. **Enfocado**: Prioriza las tareas que generan mayor valor, reduciendo incertidumbre mediante retroalimentación temprana.
|
|
4. **Enfocado**: Prioriza las tareas que generan mayor valor y reducen al máximo la incertidumbre del proyecto.
|
|
|
5. **Lean**: Se revisa cada proceso para optimizar su eficiencia en cada iteración.
|
|
5. **Lean**: Se revisa cada proceso para optimizar su eficiencia en cada iteración.
|
|
|
|
|
|
|
|
### Tecnología
|
|
### Arquitectura
|
|
|
|
|
|
|
|
El **frontend** en Vue.js ofrece una interfaz de usuario dinámica y receptiva, permitiendo una interacción fluida y eficiente con el **backend**. Mediante llamadas **API RESTful**, el frontend se comunica con el backend para ejecutar operaciones basadas en los permisos de los usuarios. El backend gestiona la **lógica de negocio** y las **operaciones de datos** utilizando el arquetipo "Medusa", que integra **Spring Data**, su propia **seguridad y autenticación contra Active Directory**, y emplea **Spring Data Rest** para exponer el API con **endpoints HATEOAS de nivel 3**<sup>[]</sup>. Por último, **MySQL** proporciona un almacenamiento rápido y eficiente para datos estructurados.
|
|
La arquitectura de la aplicación se basará en un enfoque **full stack<sup>[]</sup>**, con el **frontend** desarrollado en **Vue.js versión 3<sup>[]</sup>** y el **backend** utilizando el arquetipo de defensa _Medusa_ (basado en **Spring Boot<sup>[]</sup>**, el framework más utilizado de Java<sup>[]</sup>) y **MySQL<sup>[]</sup>** como gestor de base de datos. Tan solo se desarrollará el cliente web para ordenador ya que no se prevé que la aplicación tenga que ser utilizada desde ningún otro dispositivo.
|
|
|
|
|
|
|
|
### Arquitectura
|
|
### Tecnología
|
|
|
|
|
|
|
|
La **arquitectura** de la **aplicación web** se basa en un enfoque **full stack**<sup>[]</sup>, con un **frontend** desarrollado en **Vue.js** versión 3 y un **backend** robusto utilizando el arquetipo de defensa "Medusa" y **MySQL** como gestor de base de datos.
|
|
El **frontend** en Vue.js ofrece una interfaz de usuario dinámica y receptiva, permitiendo una interacción fluida y eficiente con el **backend**. Mediante llamadas **API RESTful**, el frontend se comunica con el backend para ejecutar operaciones basadas en los permisos de cada usuarios. El backend gestiona la **lógica de negocio** y las **operaciones de datos** utilizando el arquetipo _Medusa_, que integra **Spring Data JPA<sup>[]</sup>**, su propia **seguridad y autenticación contra Active Directory<sup>[]</sup>**, y emplea **Spring Data REST<sup>[]</sup>** para exponer la API con **endpoints HATEOAS de nivel 3<sup>[]</sup>**. Por último, **MySQL** proporciona un almacenamiento rápido y eficiente para datos estructurados.
|
|
|
|
|
|
|
|
### Calendario de plazos
|
|
### Calendario de plazos
|
|
|
|
|
|
|
|
El desarrollo de **Deméter** se dividirá en diferentes **Sprints** hasta alcanzar, como mínimo, un **MVP**.
|
|
El desarrollo de Deméter se dividirá en diferentes Sprints hasta alcanzar, como mínimo, un **Mínimo Producto Viable<sup>[]</sup> (MVP)**.
|
|
|
|
|
|
|
|
| **Plazos** | **Etapa** |
|
|
| **Plazos** | **Sprint** |
|
|
|
| ------------------------- | --------------------- |
|
|
| ------------------------- | ---------- |
|
|
|
| 01-30 septiembre | Sprint 3 |
|
|
| 1 abril - 15 mayo | 1 |
|
|
|
| 01-28 octubre | Sprint 4 |
|
|
| 20 mayo - 16 junio | 2 |
|
|
|
| 29 octubre - 18 noviembre | Sprint 5 |
|
|
| 1 - 30 septiembre | 3 |
|
|
|
| 1-2 diciembre | Exposición Resultados |
|
|
| 1 - 28 octubre | 4 |
|
|
|
|
| 29 octubre - 18 noviembre | 5 |
|
|
|
|
|
|
|
|
### Tecnologías y entornos
|
|
### Otras tecnologías y entornos
|
|
|
|
|
|
|
|
- **FrontEnd**: Desarrollo basado en HTML5, CSS y JavaScript, utilizando **Vue.js** versión 3 con Options API y **Bootstrap** versión 5.
|
|
- **FrontEnd**: Desarrollo basado en HTML5<sup>[]</sup>, CSS<sup>[]</sup> y JavaScript<sup>[]</sup>, utilizando **Vue.js** versión 3 con Options API<sup>[]</sup> y **Bootstrap<sup>[]</sup>** versión 5.
|
|
|
- **BackEnd**: Desarrollo de API REST en **Java** con **Spring Boot** y el arquetipo de defensa "Medusa".
|
|
- **Herramientas de desarrollo**: IDE **Eclipse<sup>[]</sup><sup>[]</sup>** para Java y Spring Boot; IDE **Visual Studio Code<sup>[]</sup>** para el frontend.
|
|
|
- **Almacenamiento de Datos**: Base de datos gestionada con **MySQL**.
|
|
- **Control de versiones**: Uso de **Git<sup>[]</sup>** para control de versiones, con repositorio en **GitLab<sup>[]</sup>**.
|
|
|
- **Herramientas de desarrollo**: IDE **Eclipse** para Java y Spring Boot; IDE **Visual Studio Code** para frontend.
|
|
- **Cliente API REST**: _Postman<sup>[]</sup>_ y _Bruno<sup>[]</sup>_. |
|
|
- **Control de versiones**: Uso de **Git** para control de versiones, con repositorio en **GitLab**. |
|
|