Saltar a contenido

Diagrama de clases

El diagrama de clases muestra las clases principales del sistema, sus atributos, métodos y relaciones. Incluye operaciones principales del comportamiento esperado.

classDiagram
    class Usuario {
        -int idUsuario
        -String nombre
        -String correo
        -String contrasena
        -String estado
        +iniciarSesion()
        +cerrarSesion()
        +modificarDatos()
        +consultarDatos()
    }

    class Administrador {
        +registrarUsuario()
        +modificarUsuario()
        +desactivarUsuario()
        +asignarRol()
        +consultarAuditoria()
    }

    class Rol {
        -int idRol
        -String nombre
        -String descripcion
        +crearRol()
        +modificarRol()
        +asignarPermiso()
    }

    class Aspirante {
        -int idAspirante
        -String nombre
        -String correo
        -String tipo
        +registrarse()
        +crearSolicitud()
        +cargarDocumento()
        +consultarEstadoSolicitud()
    }

    class Estudiante {
        -int idEstudiante
        -String codigo
        -String estadoAcademico
        +consultarExpediente()
        +consultarCalificaciones()
        +consultarAsistencia()
        +solicitarEvaluacionFinal()
        +descargarCertificado()
    }

    class ProgramaPosgrado {
        -int idPrograma
        -String titulo
        -String tipo
        -String modalidad
        -int horasTotales
        -int creditos
        -String estado
        +registrarPrograma()
        +calcularCreditos()
        +enviarRevision()
        +aprobarPrograma()
    }

    class EdicionPrograma {
        -int idEdicion
        -int numeroEdicion
        -Date fechaInicio
        -Date fechaFin
        -int capacidad
        +crearEdicion()
        +cerrarEdicion()
        +consultarMatricula()
    }

    class Convocatoria {
        -int idConvocatoria
        -Date fechaPublicacion
        -String requisitos
        -String estado
        +publicar()
        +cerrar()
        +consultarRequisitos()
    }

    class SolicitudMatricula {
        -int idSolicitud
        -Date fechaSolicitud
        -String estado
        -String observaciones
        +guardarBorrador()
        +enviarSolicitud()
        +validarDocumentos()
        +aprobar()
        +rechazar()
    }

    class Documento {
        -int idDocumento
        -String tipo
        -String nombreArchivo
        -String estadoValidacion
        +cargar()
        +validar()
        +rechazar()
        +descargar()
    }

    class ExpedienteDigital {
        -int idExpediente
        -Date fechaApertura
        -String estado
        +abrir()
        +agregarDocumento()
        +registrarNovedad()
        +exportar()
    }

    class Matricula {
        -int idMatricula
        -Date fechaMatricula
        -String estado
        +registrar()
        +cancelar()
        +consultar()
    }

    class Calificacion {
        -int idCalificacion
        -String valor
        -Date fecha
        +registrar()
        +modificar()
        +consultar()
    }

    class Asistencia {
        -int idAsistencia
        -Date fecha
        -Boolean presente
        +registrar()
        +modificar()
        +consultar()
    }

    class EvaluacionFinal {
        -int idEvaluacionFinal
        -Date fechaDefensa
        -String resultado
        +programarDefensa()
        +registrarResultado()
        +generarActa()
    }

    class Reporte {
        -int idReporte
        -String tipo
        -Date fechaGeneracion
        +generar()
        +exportarPDF()
        +exportarExcel()
        +exportarXML()
    }

    Usuario <|-- Administrador
    Usuario <|-- Aspirante
    Aspirante <|-- Estudiante

    Usuario "1" --> "1..*" Rol
    ProgramaPosgrado "1" --> "0..*" EdicionPrograma
    EdicionPrograma "1" --> "0..1" Convocatoria
    Convocatoria "1" --> "0..*" SolicitudMatricula
    SolicitudMatricula "1" --> "1..*" Documento
    SolicitudMatricula "0..1" --> "1" Matricula
    Matricula "1" --> "1" Estudiante
    Estudiante "1" --> "1" ExpedienteDigital
    ExpedienteDigital "1" --> "0..*" Calificacion
    ExpedienteDigital "1" --> "0..*" Asistencia
    ExpedienteDigital "1" --> "0..1" EvaluacionFinal
    Reporte ..> Matricula
    Reporte ..> Calificacion