-
Notifications
You must be signed in to change notification settings - Fork 0
Modelo de Dominio
Matias Peñaloza edited this page Dec 9, 2025
·
2 revisions
Es importante tener en cuenta que esta app utilizara GradeSolver como motor para las predicciones. Esta herramienta tiene una entrada y salida bien definidas, por lo que en el modelo de dominio se verán campos/atributos que referencian a inputs/outputs de la herramienta.
classDiagram
Estudiante "1" --> "0..*" Semestre : cursa
Semestre "1" --> "1..*" Ramo : contiene
Ramo "1" --> "0..*" Horario : tiene bloques
Ramo "1" --> "1..*" Evaluacion : se compone de
Ramo "1" --> "1..*" Regla : se rige por
Evaluacion "0..1" --> "0..1" Evento : se agenda en
Ramo "1" --> "0..*" Evento : tiene hitos
Ramo "1" ..> "0..1" Prediccion : genera
Prediccion "1" --> "1..*" EstadoRegla : detalla cumplimiento
Prediccion "1" --> "0..*" NotaSugerida : propone notas
class Estudiante {
+String nombre
+String correo
}
class Semestre {
+String nombre [ Ej: "2025-1" ]
+Boolean esActual
}
class Ramo {
+String nombre
+String color [ Hex ]
+String estrategiaSolver [ uniform | heaviest_focus ]
}
class Horario {
+Enum diaSemana [ Lunes..Sabado ]
+Time horaInicio
+Time horaFin
+String ubicacion [ Ej: Aula 204 ]
+String tipo [ Catedra/Lab/Ayudantia ]
}
class Evento {
+DateTime fechaHora
+String titulo
+String ubicacion
+String descripcion [ Ej: "Traer calculadora" ]
}
class Evaluacion {
+String nombre
+Float peso [ 0.0 - 1.0 ]
+Float nota [ Nullable ]
+List~String~ tags
}
class Regla {
+Enum tipo [ global_avg | min_grade... ]
+Float target [ Ej: 55.0 ]
+String tagFilter [ Ej: "labs" ]
}
class Prediccion {
+Enum estadoGlobal [ guaranteed | possible | impossible ]
+String mensajeLimitante [ Ej: "Falla por Min Lab" ]
+String estrategiaUsada
}
class EstadoRegla {
+String descripcionRegla
+Float puntajeActual
+Float objetivo
+Enum estado [ guaranteed | possible | impossible ]
}
class NotaSugerida {
+String nombreEvaluacion
+Float notaMinima
}