resources/views/pages/frontend/docs/uml-casos-uso-general.md
Última modificación: 24 Oct, 2026

1.1 Diagrama General de Casos de Uso

Este diagrama modela la vista funcional de alto nivel de Mañuti, delimitando las fronteras entre los actores que interactúan con el sistema y los límites de cada paquete o subsistema operativo.


1. Explicación y Semántica del Diagrama

El modelado define qué operaciones de negocio pueden ser iniciadas y por quién, aislando los permisos de administración de los accesos públicos:

  • Actores:
    • Invitado (Guest): Usuario anónimo sin sesión activa en el protocolo HTTP. Solo interactúa con la puerta de enlace perimetral (Login y recuperación de contraseña).
    • Usuario Registrado: Operador autenticado. Posee credenciales válidas y gestiona su propio perfil extendido (EAV).
    • Administrador: Operador con capacidades elevadas otorgadas por el sistema RBAC Aditivo. Orquesta identidades, catálogos, configuraciones y bitácoras forenses.
    • Sistema (Horizon/Cron): Actor automatizado no humano. Ejecuta tareas en segundo plano, balanceo de colas, purga de logs y eventos asíncronos.
  • Paquetes Lógicos:
    • Módulo de Autenticación: Puntos de entrada y salida protegidos contra ataques CSRF y fuerza bruta.
    • Gestión de Usuarios y Perfil: Administración de cuentas, catálogo de capacidades y atributos dinámicos EAV.
    • Seguridad y Auditoría: Observabilidad forense inmutable en MongoDB, bitácora de accesos y monitor de concurrencia.
    • Configuración: Mantenimiento dinámico de variables del sistema y diccionarios de datos recursivos.

2. Cómo se Lee este Diagrama

  1. De izquierda a derecha: Los actores inician los casos de uso señalados por flechas continuas sólidas (-->).
  2. Límites de Sistema (subgraph): Cada caja agrupa responsabilidades afines; un actor solo puede ejecutar casos de uso contenidos dentro de cajas para las cuales su rol tenga capacidades registradas.
  3. Línea de Servicio Automatizado: La flecha del actor Sistema hacia el caso de uso UC7 representa la ejecución asíncrona de jobs mediante workers de Horizon, sin intervención de una interfaz gráfica humana.

3. Implementación en el Framework Mañuti

  • Rutas de Invitado: Enrutadas bajo el middleware guest en routes/web.php (/login, /forgot-password).
  • Rutas de Usuario: Enlazadas al middleware auth y al controlador de perfil App\Http\Controllers\ProfileController.
  • Rutas de Administración: Blindadas por la combinación de middlewares ['auth', 'no-cache', 'auditar', 'check.session', 'can:...'].
  • Procesamiento del Sistema: Automatizado vía php artisan horizon y el planificador en routes/console.php.

4. Diagrama Mermaid

flowchart LR
    %% Actores
    Guest("Invitado")
    User("Usuario Registrado")
    Admin("Administrador")
    System("Sistema (Horizon/Cron)")

    %% Módulos
    subgraph "Módulo de Autenticación"
        UC1(["Iniciar Sesión (Dual)"])
        UC2(["Recuperar Contraseña"])
    end

    subgraph "Gestión de Usuarios y Perfil"
        UC3(["Gestionar Perfil (EAV)"])
        UC4(["Gestionar Usuarios (CRUD)"])
        UC5(["Asignar Roles y Permisos"])
    end

    subgraph "Seguridad y Auditoría"
        UC6(["Ver Bitácora de Accesos"])
        UC7(["Ver Auditoría Forense (Mongo)"])
        UC8(["Gestionar Sesiones Activas"])
    end

    subgraph "Configuración"
        UC9(["Administrar Catálogos"])
        UC10(["Configuración Global"])
    end

    %% Relaciones
    Guest --> UC1
    Guest --> UC2
    
    User --> UC1
    User --> UC3
    
    Admin --> UC3
    Admin --> UC4
    Admin --> UC5
    Admin --> UC6
    Admin --> UC7
    Admin --> UC8
    Admin --> UC9
    Admin --> UC10

    System -->|Procesa Jobs en background| UC7

Enlaces Relacionados

Edita este documento en >> uml-casos-uso-general.md
← Volver a la Landing Page