50 lines
1.2 KiB
Plaintext
50 lines
1.2 KiB
Plaintext
|
|
@startuml state-enrollment
|
||
|
|
!theme plain
|
||
|
|
skinparam stateBackgroundColor #F8F9FA
|
||
|
|
skinparam stateBorderColor #495057
|
||
|
|
|
||
|
|
title Estado de Inscripción del Estudiante
|
||
|
|
|
||
|
|
[*] --> SinMaterias : Registro inicial
|
||
|
|
|
||
|
|
state "Sin Materias" as SinMaterias {
|
||
|
|
state "0 créditos" as cred0
|
||
|
|
}
|
||
|
|
|
||
|
|
state "Inscripción Parcial" as Parcial {
|
||
|
|
state "3 créditos\n(1 materia)" as cred3
|
||
|
|
state "6 créditos\n(2 materias)" as cred6
|
||
|
|
}
|
||
|
|
|
||
|
|
state "Inscripción Completa" as Completa {
|
||
|
|
state "9 créditos\n(3 materias)" as cred9
|
||
|
|
}
|
||
|
|
|
||
|
|
SinMaterias --> Parcial : inscribir(materia)
|
||
|
|
Parcial --> Parcial : inscribir(materia)\n[créditos < 9]
|
||
|
|
Parcial --> Completa : inscribir(materia)\n[créditos = 6]
|
||
|
|
Completa --> Parcial : cancelar(inscripción)
|
||
|
|
Parcial --> SinMaterias : cancelar(inscripción)\n[única materia]
|
||
|
|
|
||
|
|
note right of Completa
|
||
|
|
No puede inscribir
|
||
|
|
más materias
|
||
|
|
end note
|
||
|
|
|
||
|
|
note left of Parcial
|
||
|
|
<b>Validaciones en cada inscripción:</b>
|
||
|
|
- Límite de créditos
|
||
|
|
- No repetir profesor
|
||
|
|
- Materia no duplicada
|
||
|
|
end note
|
||
|
|
|
||
|
|
state validacion <<choice>>
|
||
|
|
|
||
|
|
SinMaterias --> validacion : intenta inscribir
|
||
|
|
Parcial --> validacion : intenta inscribir
|
||
|
|
|
||
|
|
validacion --> Parcial : [válido]
|
||
|
|
validacion --> [*] : [inválido]\nmuestra error
|
||
|
|
|
||
|
|
@enduml
|