¿Qué es un diagrama de casos de uso?
Un Diagrama de casos de usoes un plano comportamental utilizado para visualizar las relaciones entre los usuarios de un sistema (conocidos como actores) y las acciones o objetivos específicos que desean lograr (conocidos como casos de uso). En lugar de mostrar bucles lógicos paso a paso, un diagrama de casos de uso proporciona una visión general de alto nivel del alcance funcional de un sistema, convirtiéndolo en una excelente herramienta para definir los requisitos del proyecto, los límites del sistema y los flujos de trabajo de los interesados.
Con VPasCode, puedes crear instantáneamente diagramas de casos de uso claros y profesionales sin luchar contra la alineación visual del lienzo. Esta guía omite las notaciones oscuras y obsoletas y se centra únicamente en los elementos de sintaxis prácticos que necesitas para la documentación diaria de software.
Guía de sintaxis básica: elementos y construcciones
Crear un diagrama de casos de uso en PlantUML depende de unos pocos elementos estructurales sencillos envueltos dentro de tus etiquetas estándar @startuml y @enduml etiquetas.
1. Declaración de actores
Un actor representa una entidad externa que interactúa con tu aplicación (como un usuario humano, un servicio en segundo plano o una API de hardware externa). Declaras un actor utilizando la palabra clave actor seguida de un ID de atajo interno:
actor customer
actor admin como "Administrador del sistema" 
Consejo profesional: Usa la palabra clave como para asignar una cadena de visualización limpia y legible por humanos a IDs de actores complejos.
2. Definición de casos de uso
Un caso de uso representa un objetivo funcional o un proceso empresarial. Puedes definir un caso de uso de dos formas: encerrando el texto entre paréntesis (Tu caso de uso), o utilizando explícitamente la caso de usopalabra clave para formato complejo:
(Iniciar sesión en el panel de control)
caso de uso checkout como "Procesar pago con tarjeta de crédito" 
3. Mapeo de interacciones básicas
Para conectar tus actores con sus casos de uso correspondientes, utiliza líneas de relación básicas dirigidas o no dirigidas. También puedes agregar etiquetas de texto para añadir contexto crítico a una interacción:
customer --> (Iniciar sesión en el panel de control)
admin --> checkout : "Aprueba reembolsos" 
4. Relaciones avanzadas: Incluir y Extender
Cuando modelas comportamientos de sistemas complejos, con frecuencia necesitas mostrar dependencias entre diferentes casos de uso utilizando estereotipos estándar de UML:
- Incluir (Dependencia obligatoria):Indica que un caso de uso base depende de otro caso de uso auxiliar para completar con éxito su ejecución. Usa una línea de conexión punteada (
..>) añadida con una etiqueta de texto:Plantuml Edit Plantuml in VPasCode(Procesar compra) ..> (Verificar saldo) : <<incluir>>
- Extender (Comportamiento opcional/condicional):Indica que un flujo opcional puede derivar de un caso de uso base bajo condiciones específicas. Ten en cuenta que la flecha apunta desde el caso de uso de *extensión* de vuelta al caso de uso de *base*:
Plantuml Edit Plantuml in VPasCode
(Aplicar código promocional) ..> (Procesar compra) : <<extender>>
5. Imponer límites del sistema
Para distinguir claramente lo que sucede dentro de tu aplicación de software frente a lo que sucede externamente, utiliza el “rectángulopalabra clave para envolver sus casos de uso internos. Fundamentalmente, los actores deben permanecer fuera de este bloque contenedor para reflejar su estado como participantes externos:
actor cliente
rectángulo "Plataforma de Comercio Electrónico" {
(Navegar Catálogo)
(Agregar al Carrito)
}
cliente --> (Navegar Catálogo)
cliente --> (Agregar al Carrito) 
Mejores prácticas para diseños limpios
- Mantenga el texto breve:Los casos de uso siempre deben comenzar con un verbo claro y activo (por ejemplo, “Generar Informe”, “Actualizar Perfil”) en lugar de una oración larga.
- Aproveche los anclajes direccionales: Si sus actores y casos de uso se acumulan en una pila desordenada, use flechas direccionales espaciales como
-derecha->o-abajo->para guiar suavemente al motor de diseño hacia una estructura limpia y legible. - Aislar los límites del sistema: Siempre use un rectángulo de límite al documentar aplicaciones que interactúan con múltiples microservicios de terceros. Esto hace inmediatamente claro quién posee cada proceso.
Ejemplos reales de diagramas de casos de uso de PlantUML
Copie y pegue los siguientes planos prácticos directamente en su panel de editor en vivo de VPasCode para ver cómo se renderizan dinámicamente.
Ejemplo 1: Autenticación de usuario principal y gestión de cuentas
Este plano modela un ecosistema de aplicación estándar que contiene un usuario principal, un operador administrativo y una caja de límite que contiene los mecanismos de seguridad principales.
@startuml
' Establecer la orientación del diseño de izquierda a derecha
dirección izquierda a derecha
actor "Usuario Final" como usuario
actor "Administrador de Seguridad" como admin
rectángulo "Servicio de Proveedor de Identidad" {
(Iniciar Sesión)
(Restablecer Contraseña)
(Actualizar Datos del Perfil)
(Revisar Registros de Seguridad)
(Desactivar Cuentas)
}
usuario --> (Iniciar Sesión)
usuario --> (Restablecer Contraseña)
usuario --> (Actualizar Datos del Perfil)
(Revisar Registros de Seguridad) <-- admin
(Desactivar Cuentas) <-- admin
@enduml 
Desglose de sintaxis: La directiva dirección de izquierda a derecha fuerza al motor de diseño a colocar a los actores en las alas exteriores y hacer crecer los casos de uso horizontalmente en lugar de verticalmente. Observe cómo colocar las declaraciones de actores limpiamente fuera del rectánguloenvoltorio los mantiene organizados, mientras que invierte la dirección del corchete de flecha para el usuario administrador (<-- administrador) los fija limpiamente en el lado derecho de la matriz del diagrama.
Ejemplo 2: Compra avanzada de comercio electrónico con dependencias externas
Este diseño de sistema del mundo real representa un flujo de trabajo complejo de compra que depende de APIs bancarias externas, inclusiones estructurales y marcas opcionales de extensión.
@startuml
dirección de izquierda a derecha
actor "Cliente" como customer
actor "Personal del almacén" como staff
actor "Pasarela Stripe" como stripe
rectángulo "Sistema de cumplimiento de tienda en línea" {
(Realizar pedido)
(Aplicar cupón)
(Generar factura)
(Seleccionar y empaquetar artículos)
(Actualizar estado de envío)
}
' Interacciones externas con los límites del sistema
customer --> (Realizar pedido)
(Realizar pedido) --> stripe : "Autorizar fondos"
' Estructuras de inclusión y extensión
(Realizar pedido) ..> (Generar factura) : <<include>>
(Aplicar cupón) ..> (Realizar pedido) : <<extend>>
' Caminos de cumplimiento
(Seleccionar y empaquetar artículos) <-- staff
(Actualizar estado de envío) <-- staff
(Generar factura) --> staff : "Enviar copia por correo"
@enduml 
Desglose de sintaxis: Esta plantilla destaca cómo un solo caso de uso (Realizar pedido) obliga a una invocación de (Generar factura) utilizando la <<include>> etiqueta sobre una línea punteada. Mientras tanto, aplicar un código de cupón se modela correctamente como una rama opcional mediante <<extend>> que apunta hacia atrás hacia la ejecución base. Todos los actores externos permanecen claramente aislados fuera del entorno del sistema.