Cuando un sistema es pequeño, puede alcanzar con un único diagrama y una lista corta de casos de uso. Pero en sistemas grandes, la cantidad de actores, funcionalidades, relaciones y reglas puede crecer rápidamente.
Para mantener el modelo comprensible, conviene organizar los casos de uso en paquetes, áreas funcionales o vistas separadas. Esta organización permite navegar el sistema por partes y evita diagramas enormes, saturados de líneas y difíciles de validar.
Organizar no significa cambiar el comportamiento del sistema. Significa presentar la información de una manera más clara y mantenible.
En UML, un paquete es un contenedor lógico que agrupa elementos relacionados. En casos de uso, puede usarse para reunir funcionalidades de una misma área, módulo, proceso, actor o versión.
Por ejemplo, en un sistema de turnos médicos, pueden existir paquetes como Gestión de turnos, Administración de agendas, Gestión de pacientes, Notificaciones y Reportes.
En sistemas grandes, los paquetes permiten separar casos de uso por áreas funcionales. Así, en lugar de mostrar todo en un único diagrama, se puede trabajar con una vista general y luego con diagramas más específicos para cada paquete.
Organizar casos de uso ayuda a:
Una forma frecuente es agrupar los casos de uso por área funcional. Cada paquete representa un conjunto de funcionalidades relacionadas.
Ejemplo en un sistema de turnos médicos:
También se puede organizar por actor principal. Esta vista resulta útil cuando se revisa el sistema con un tipo específico de usuario.
Ejemplo:
Esta organización ayuda a validar si cada actor tiene cubiertos sus objetivos principales.
En algunos sistemas conviene agrupar por procesos de negocio. Por ejemplo, en una clínica podrían existir procesos como Gestión de atención, Gestión administrativa, Gestión de pagos y Gestión de comunicación con pacientes.
Esta vista es útil cuando el análisis comienza desde procesos amplios y luego baja a casos de uso concretos.
Cuando el sistema se entrega por etapas, puede ser útil organizar casos de uso por versión o incremento.
Ejemplo:
Esta organización ayuda a conectar el modelo con la planificación.
En sistemas grandes conviene tener una vista general que muestre los paquetes principales y luego vistas detalladas para cada paquete.
La vista general responde qué grandes áreas funcionales existen. Las vistas detalladas muestran actores, casos de uso y relaciones dentro de cada área.
Un error frecuente es intentar mostrar todo el sistema en un único diagrama. Aunque sea posible, el resultado suele ser difícil de leer y revisar.
Si el diagrama tiene demasiadas líneas cruzadas, actores repetidos y elipses pequeñas, probablemente conviene dividirlo en diagramas por paquetes.
Los paquetes deben tener nombres claros y representativos. Conviene usar nombres del dominio o del área funcional, no nombres técnicos internos.
Buenos ejemplos:
Nombres como Módulo A, Backend 1 o Servicios internos no ayudan a validar funcionalidad con usuarios.
Algunos casos de uso pueden estar relacionados con varios paquetes. Por ejemplo, Autenticar usuario puede ser común a muchas áreas, y Enviar notificación puede ser usado desde Turnos, Pagos o Reportes.
En estos casos se puede crear un paquete de funcionalidades comunes o documentar claramente qué casos de uso reutilizan ese comportamiento.
La organización por paquetes facilita la trazabilidad. Si cambia una regla de agenda, probablemente afecte al paquete Administración de agendas y a algunos casos relacionados con Turnos.
Esto ayuda a estimar impacto, actualizar documentación y revisar pruebas asociadas.
Muchas veces los paquetes se relacionan con permisos. Por ejemplo, el paquete Administración puede estar disponible solo para administradores, mientras que el paquete Turnos puede estar disponible para pacientes y recepcionistas.
Esta relación no reemplaza la especificación de seguridad, pero ayuda a visualizar qué áreas del sistema usa cada actor.
Una posible organización para un sistema de turnos médicos podría ser:
| Paquete | Casos de uso principales | Actores frecuentes |
|---|---|---|
| Gestión de turnos | Solicitar turno, Modificar turno, Cancelar turno. | Paciente, Recepcionista. |
| Administración de agendas | Configurar horarios, Bloquear disponibilidad, Registrar profesional. | Administrador, Médico. |
| Notificaciones | Enviar confirmación, Enviar recordatorio. | Servicio de mensajería, Paciente. |
| Reportes | Generar reporte de turnos, Consultar ausencias. | Administrador, Dirección. |
Para decidir cómo agrupar, conviene preguntar:
Al organizar casos de uso, suelen aparecer estos errores:
Antes de cerrar la organización del modelo, conviene revisar:
En sistemas grandes, organizar los casos de uso es tan importante como identificarlos. Una buena estructura permite mantener el modelo legible, facilitar la revisión y conectar los casos de uso con planificación, permisos y pruebas.
Los paquetes deben usarse como una herramienta de claridad. En el próximo tema estudiaremos la priorización de casos de uso.