Saltar a contenido

Modelado UML del Sistema

En esta sección se formaliza el diseño técnico de la solución mediante el Lenguaje Unificado de Modelado (UML). Estos diagramas representan tanto la estructura estática de la información como el comportamiento dinámico de los procesos críticos.

Diagrama de Clases

El modelo de clases describe los elementos lógicos que conforman el prototipo. Se han definido entidades clave como Alumno, Dictamen y Asignación para modelar el flujo de la información académica.

Este diseño permite visualizar las relaciones fundamentales del sistema: * Un Alumno posee un único Dictamen activo. * Un Dictamen concentra el historial de evidencias y calificaciones. * La Asignación vincula al alumno con un Profesor específico para la tutoría de recuperación.

classDiagram
    class Alumno {
        +String boleta
        +String nombre
        +String correo
        +iniciarSesion()
        +consultarEstado()
    }

    class Dictamen {
        +int id
        +String archivoPDF
        +String estadoProceso
        +actualizarEstado()
    }

    class Asignacion {
        +Date fecha
        +String horario
        +registrar()
    }

    class Profesor {
        +String nombre
        +String academia
    }

    class Evidencia {
        +String archivo
        +Date fechaSubida
        +String estado
        +validar()
    }

    Alumno "1" *-- "1" Dictamen : tiene
    Dictamen "1" *-- "1" Asignacion : genera
    Asignacion "1" --> "1" Profesor : asignado_a
    Dictamen "1" *-- "0..*" Evidencia : contiene

Diagrama de Secuencia: Validación de Evidencias

Este diagrama detalla el flujo transaccional para la carga y validación del Acta de Calificación Final. Representa la interacción temporal entre el Alumno (quien sube la evidencia), el Sistema (que procesa y notifica) y el Jefe de Academia (quien valida).

El proceso destaca por implementar una lógica de "segregación de funciones": el alumno no puede modificar su estatus por sí mismo, y el Jefe de Academia requiere la evidencia digital para poder asentar la calificación.

sequenceDiagram
    autonumber
    actor Alumno
    participant Interfaz as App/Web
    participant Sistema as Backend (Firebase)
    participant BD as Firestore
    actor Jefe as Jefe de Academia

    Note over Alumno, Jefe: Fase de Carga de Evidencia
    Alumno->>Interfaz: Sube Foto Acta Final
    Interfaz->>Sistema: POST /evidencia
    Sistema->>BD: Update estado = "En Revisión"
    Sistema-->>Jefe: Notificación (Nueva Solicitud)

    Note over Alumno, Jefe: Fase de Validación
    Jefe->>Sistema: Consultar evidencias pendientes
    Sistema->>Jefe: Retorna lista y fotos

    alt Evidencia Ilegible
        Jefe->>Sistema: Rechazar Evidencia
        Sistema->>BD: Update estado = "Corrección Requerida"
        Sistema-->>Alumno: Notificar (Volver a subir)
    else Evidencia Correcta
        Jefe->>Sistema: Ingresa Calificación y Firma
        Sistema->>BD: Registrar Calificación
        Sistema->>BD: Update estado = "ACREDITADO"
        Sistema->>BD: Bloquear Registro (Integridad)
        Sistema-->>Alumno: Notificar Resultado Final
    end