forked from Arquisoft/wichat_0
-
Notifications
You must be signed in to change notification settings - Fork 0
Registro de decisiones arquitectonicas
Miguel edited this page Feb 18, 2025
·
26 revisions
Este documento recoge las decisiones arquitectónicas clave tomadas durante el desarrollo del proyecto, clasificadas por importancia y documentadas según la plantilla de Arq42. Se incluyen justificaciones, impactos y alternativas evaluadas.
- Alfredo Jirout Cid -- UO288443
- Nicolas Guerbartchouk Pérez -- UO293912
- Miguel Olamendi de Yaxte Alonso -- UO285022
- Manuel García Baldó -- UO295497
ID | Título | Fecha | Importancia | Enlace |
---|---|---|---|---|
001 | Herencia del proyecto del año anterior | 11-02-2025 | Muy Alta | ADR-001 |
002 | Estrategia de ramificación Git Flow | 04-02-2025 | Media | ADR-002 |
003 | Sistema de Gestión de Base de Datos a usar | 18-02-2025 | Media | ADR-003 |
- Fecha: 11-02-2025
- Estado: Aprobada
- Contexto: Se consideraron varias opciones para iniciar el desarrollo del proyecto, incluyendo comenzar desde cero o reutilizar una base existente desarrollada por alumnos del año anterior.
- Decisión: Se decidió heredar el proyecto del año anterior disponible en GitHub como base para el desarrollo.
- Justificación: El equipo tiene mayor familiaridad con un sistema basado en Java, lo que facilita el desarrollo inicial. Además, se aprovecha código ya desarrollado y probado, reduciendo el tiempo de implementación.
- Consecuencias: Se parte de una base funcional, pero se debe realizar una evaluación y refactorización del código existente para adaptarlo a los nuevos requerimientos.
- Alternativas consideradas: Desarrollo desde cero, uso de otro proyecto base distinto.
- Fecha: 04-02-2025
- Estado: Aprobada
- Contexto: Se necesita una estrategia de gestión de ramas eficiente y conocida para el desarrollo colaborativo.
-
Decisión: Se adopta Git Flow como estrategia de ramificación, con una rama principal
develop
que contiene las últimas características de la siguiente release. - Justificación: Git Flow es un enfoque ampliamente reconocido que facilita el control de versiones y la integración continua.
- Consecuencias: Se mejora la organización del código, pero requiere disciplina en la gestión de ramas.
- Alternativas consideradas: Trunk-based development, GitHub Flow.
- Fecha: 18-02-2025
- Estado: Aprobada
- Contexto: Tenemos la necesidad de concretar qué sistema de gestión de bases de datos vamos a usar en el proyecto. La base de datos debe ser capaz de manejar eficientemente la información relacionada con los usuarios, su historial de participación, la generación de preguntas y respuestas, y la integración con los servicios de la aplicación.
- Decisión: Se adopta MySQL como sistema de gestión de bases de datos del proyecto. En el entorno de desarrollo local, se usará HSQLDB para facilitar las pruebas sin necesidad de configurar un sistema gestor de bases de datos.
- Justificación: Se debe configurar correctamente la conexión a MySQL en producción y pruebas. Queda pendiente la implementación de estrategias de backup y recuperación.
- Consecuencias: Se debe configurar correctamente la conexión a MySQL en producción y pruebas. Se debe implementar la estrategia de backup y recuperación.
- Alternativas consideradas: MongoDb, MariaDB, PostgreSQL, etc
Según la plantilla:
- Fecha: XX-XX-2025
- Estado: Aprobada | Propuesto | Reemplazado
- Contexto: Se requiere una base de datos que permita manejar grandes volúmenes de datos y consultas flexibles.
- Decisión: Se elige MongoDB por su capacidad de escalar horizontalmente y su compatibilidad con el modelo de datos del proyecto.
- Justificación: MongoDB ofrece flexibilidad en el esquema y un buen soporte para consultas complejas.
- Consecuencias: Mayor facilidad de desarrollo, pero requiere una estrategia de indexación eficiente.
- Alternativas consideradas: PostgreSQL, MariaDB, MongoDB.
- Salvo que se indique lo contrario todos los participantes han participado en la toma de decisiones.
- El registro de decisiones arquitectónicas se introducirá en la documentación de GitHub Pages del proyecto [modelo Arq42 - Punto 9]: (https://arquisoft.github.io/wichat_es4b/#section-design-decisions)
- Se establece la estructura para el registro arquitectónico. Las decisiones se documentarán en Issues con la etiqueta ADR (https://github.com/Arquisoft/wichat_es4b/issues?q=label%3AADR%20), en la Wiki del proyecto (aquí) y en la documentación del (Modelo Arq42 - Punto 9).