academia/docs/architecture/diagrams/01-use-cases.puml

93 lines
2.4 KiB
Plaintext

@startuml use-cases
!theme plain
skinparam actorStyle awesome
skinparam packageStyle rectangle
skinparam usecaseBackgroundColor #F8F9FA
skinparam usecaseBorderColor #495057
skinparam actorBackgroundColor #007AFF
title Sistema de Registro de Estudiantes - Diagrama de Casos de Uso
actor "Estudiante" as student
actor "Administrador" as admin
rectangle "Sistema de Inscripción Académica" {
' Autenticación (ambos actores)
usecase "Iniciar sesión" as UC_LOGIN
usecase "Recuperar contraseña" as UC_RECOVER
' Solo estudiantes
usecase "Registrarse" as UC_REGISTER
usecase "Activar cuenta" as UC_ACTIVATE
usecase "Ver dashboard personal" as UC_DASHBOARD
usecase "Ver materias disponibles" as UC_SUBJECTS
usecase "Inscribirse en materia" as UC_ENROLL
usecase "Cancelar inscripción" as UC_UNENROLL
usecase "Ver mis inscripciones" as UC_MY_ENROLL
usecase "Ver compañeros de clase" as UC_CLASSMATES
' Solo administrador
usecase "Gestionar estudiantes\n(CRUD)" as UC_CRUD
usecase "Ver todos los estudiantes" as UC_LIST
usecase "Crear estudiante" as UC_CREATE
usecase "Editar estudiante" as UC_EDIT
usecase "Eliminar estudiante" as UC_DELETE
' Validaciones (includes)
usecase "Validar límite de créditos\n(máx 9 créditos)" as UC_VAL_CREDITS
usecase "Validar restricción de profesor\n(no repetir profesor)" as UC_VAL_PROF
}
' Relaciones Estudiante
student --> UC_REGISTER
student --> UC_LOGIN
student --> UC_ACTIVATE
student --> UC_RECOVER
student --> UC_DASHBOARD
student --> UC_SUBJECTS
student --> UC_ENROLL
student --> UC_UNENROLL
student --> UC_MY_ENROLL
student --> UC_CLASSMATES
' Relaciones Admin
admin --> UC_LOGIN
admin --> UC_RECOVER
admin --> UC_CRUD
admin --> UC_LIST
' Extensiones CRUD
UC_CRUD ..> UC_CREATE : <<include>>
UC_CRUD ..> UC_EDIT : <<include>>
UC_CRUD ..> UC_DELETE : <<include>>
' Validaciones inscripción
UC_ENROLL ..> UC_VAL_CREDITS : <<include>>
UC_ENROLL ..> UC_VAL_PROF : <<include>>
note right of UC_ENROLL
Reglas de negocio:
- Máximo 3 materias (9 créditos)
- No puede tener 2 materias
del mismo profesor
- Requiere cuenta activada
end note
note right of UC_CLASSMATES
Solo muestra nombres
de compañeros por materia
end note
note right of UC_ACTIVATE
El estudiante recibe
código de activación
al registrarse
end note
note bottom of admin
Acceso completo al
CRUD de estudiantes
end note
@enduml