Arquitectura Dominio - misw-ds-en-nube/assistrack GitHub Wiki

Modelo de dominio

Grupo 4 · Entrega 1 · Home

1. Propósito y alcance del modelo de dominio

1.1. Propósito

El modelo de dominio tiene como propósito representar los conceptos, relaciones y reglas de negocio que rigen el seguimiento semanal de las actividades realizadas por monitores y asistentes graduados en cursos y proyectos académicos.

Este modelo busca establecer una comprensión común del problema y servir como base para el diseño e implementación del backend, identificando los elementos fundamentales del sistema, sus responsabilidades y las restricciones que deben cumplirse para garantizar la consistencia de la información.

A diferencia del modelo de datos, que define cómo se organiza y almacena la información en la base de datos, el modelo de dominio se enfoca en representar los conceptos del negocio, sus comportamientos y las reglas que determinan cómo interactúan.

1.2. Alcance

El modelo de dominio comprende los siguientes aspectos:

  • Usuarios y roles: identificación de los actores del sistema y sus responsabilidades, considerando que una persona puede desempeñar diferentes roles.
  • Períodos académicos: definición de los períodos que regulan la creación de cursos y proyectos.
  • Cursos y proyectos: representación de los espacios académicos supervisados por los profesores.
  • Vinculaciones: asociación de monitores y asistentes graduados a cursos o proyectos, incluyendo el rol desempeñado y las horas semanales contratadas.
  • Seguimiento semanal: registro de las tareas realizadas, el tiempo invertido, los estados de las actividades y su asociación con una semana operativa.
  • Reglas de negocio: restricciones relacionadas con las horas contratadas, la cantidad de monitorías, la combinación de roles y las condiciones temporales de los registros.
  • Reportes semanales: representación de los reportes individuales generados mediante inteligencia artificial a partir de las actividades registradas.

Para la primera entrega, el modelo se concentra en los conceptos y comportamientos necesarios para la implementación del backend, conforme a las restricciones de alcance definidas en la documentación del proyecto.

Quedan fuera del alcance funcional de esta entrega la detección automática de ausencia de reporte, las notificaciones internas, los procesos formales de revisión, aprobación o rechazo de tareas, el restablecimiento de contraseñas por parte del administrador y la desactivación de usuarios. Tampoco se requiere implementar el frontend.

Estas exclusiones corresponden al alcance de implementación de la primera entrega y no necesariamente al alcance futuro del sistema.

2. Glosario del dominio

El glosario establece un lenguaje común para describir los conceptos del sistema de seguimiento semanal de monitores y asistentes graduados, facilitando su comprensión y uso consistente durante el diseño y desarrollo de la solución.

Término Definición
Usuario Persona registrada en la plataforma que puede autenticarse y acceder a las funcionalidades correspondientes a los roles que tiene asignados.
Rol Perfil que determina las funciones y permisos de un usuario dentro del sistema. Los roles disponibles son administrador, profesor, monitor y asistente graduado.
Asignación de rol (UsuarioRol) Asociación que establece qué roles tiene asignados un usuario. Una persona puede tener varios roles simultáneamente.
Período académico Ciclo académico identificado por un código, fechas de inicio y cierre, y un estado. Determina cuándo está habilitada la creación de cursos y proyectos.
Espacio académico Curso o proyecto asociado a un período académico y bajo la responsabilidad de un profesor. Puede encontrarse activo o cerrado.
Vinculación Asociación entre un usuario, un rol de monitor o asistente graduado y un espacio académico. Establece las horas semanales contratadas y permite gestionar de manera independiente cada participación académica.
Horas contratadas Cantidad de horas semanales establecidas para una vinculación. No pueden modificarse mediante operaciones ordinarias, salvo rectificación administrativa autorizada.
Rectificación de vinculación Corrección excepcional realizada por un administrador sobre una vinculación existente. Permite conservar un historial de los valores anteriores y nuevos, el responsable y el motivo del cambio.
Tarea Registro de una actividad realizada por un monitor o asistente graduado dentro de una vinculación y una semana determinada. Contiene título, descripción, estado, horas invertidas y observaciones.
Estado de tarea Condición de una tarea. Los únicos valores permitidos son abierto, en desarrollo y finalizado.
Adjunto Archivo asociado a una tarea que sirve como evidencia complementaria de una actividad registrada.
Semana operativa Intervalo temporal utilizado para el seguimiento de actividades. Comienza el lunes y finaliza el domingo.
Horas reportadas Tiempo invertido en una tarea, registrado en horas enteras. Se diferencia de las horas semanales contratadas en una vinculación.
Reporte tardío Registro de una actividad correspondiente a una semana ya cerrada. Se identifica automáticamente como tardío y no puede modificarse después de su creación.
Lote de reportes Solicitud realizada manualmente por un profesor para generar reportes individuales de sus monitores y asistentes graduados correspondientes a una semana específica.
Reporte semanal Documento individual en formato PDF generado mediante inteligencia artificial, que sintetiza las tareas, descripciones, observaciones y horas reportadas por una persona durante una semana determinada, sin evaluar su desempeño.

3. Diagrama del modelo de dominio

Modelo entidad-relación

Lectura del diagrama y conclusiones:

4. Entidades y objetos de valor

4.1 Entidades

Entidad Identidad Atributos clave Responsabilidad
Usuario
PeriodoAcademico
EspacioAcademico (Curso/Proyecto)
Vinculacion
Tarea
ReportePDF

4.2 Objetos de valor y enumeraciones

Elemento Valores / forma Reglas
Rol RN-01
TipoEspacio curso, proyecto RN-06
EstadoEspacio activo, cerrado RN-08
EstadoTarea abierto, en desarrollo, finalizado RN-27, RN-28
Semana RN-29
HorasContratadas RN-12

5. Relaciones y cardinalidades

Relación Cardinalidad Observaciones
Usuario — Rol RN-01
Usuario — Vinculacion RN-02
EspacioAcademico — Vinculacion
Vinculacion — Tarea RN-21
PeriodoAcademico — EspacioAcademico RF-03.2

6. Agregados y límites de consistencia

Agregado Raíz Contiene Invariantes que protege

7. Reglas e invariantes del dominio

Invariante Entidad responsable Regla Tipo de validación
Máx. 22 h como asistente graduado RN-14 Bloqueante
Máx. 3 monitorías y 12 h RN-15, RN-16 Bloqueante
Monitoría ≤ 40 % (redondeo hacia arriba) RN-17, RN-18 Bloqueante
Horas contratadas inmutables RN-12 Bloqueante
Tarea tardía no editable RN-32, RN-33 Bloqueante
Espacio cerrado en solo consulta RN-09 Bloqueante

8. Estados y transiciones

8.1 Estado de la tarea

8.2 Estado del espacio académico

8.3 Condición temporal del registro

9. Servicios de dominio

10. Correspondencia con el código

Concepto del dominio Paquete / archivo Prueba

Decisiones de diseño

D-0X ·

  • Contexto:
  • Alternativas consideradas:
  • Justificación y compromisos:
  • Hipótesis:
⚠️ **GitHub.com Fallback** ⚠️