Guía de sintaxis de diagramas de casos de uso de PlantUML

¿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:

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.

Scroll al inicio