Archyno
UMLDiagramas de comportamiento

Diagramas de casos de uso UML

El diagrama del alcance, no del diseño. Quién usa el sistema, para qué lo usa, y dónde está de verdad la frontera de lo que estás construyendo - dibujado antes de que exista una sola clase.

13 min de lecturaUML 2.5.111 de 35

La respuesta corta

  • Un diagrama de casos de uso es un mapa del alcance: quién interactúa con el sistema, con qué objetivos llega y por dónde pasa la línea entre dentro y fuera.
  • Un caso de uso es un objetivo que entrega valor a un actor, no un paso ni una pantalla. Los actores son roles y siempre quedan fuera de la frontera.
  • «include» va del caso base al comportamiento que siempre se ejecuta; «extend» va del añadido opcional de vuelta al caso base. Los sentidos son opuestos, y ahí está el error habitual.
  • El diagrama es el índice. El entregable es la descripción del caso de uso detrás de cada elipse: actor principal, precondiciones, escenario principal, extensiones y poscondiciones.
Un diagrama de casos de uso UML. Un actor Comercio está fuera de la frontera del sistema Checkout y se asocia con tres casos de uso: enviar el pago, autorizar el pago y reembolsar el pago. Enviar el pago y reembolsar el pago incluyen ambos autorizar el pago. Registrar la traza de auditoría extiende reembolsar el pago. Autorizar el pago se asocia con un servicio antifraude, un actor secundario situado a la derecha.
Un diagrama de casos de uso para un sistema de pago. El rectángulo es la frontera del sistema: todo lo de dentro te toca construirlo, todo lo de fuera es alguien con quien hablas.

01Qué muestra y qué deliberadamente no#

Un diagrama de casos de uso es un mapa del alcance. Nombra a las personas y sistemas que interactúan con lo que estás construyendo, los objetivos con los que llegan, y la línea entre dentro y fuera. Eso es todo lo que hace, y su contención es precisamente el punto.

No dice nada del orden. Nada de pantallas, campos ni algoritmos. Nada de cómo funciona nada. Cada una de esas cosas es otro diagrama, y la tentación de colarlas en este es lo que produce los diagramas de casos de uso desbordados e inútiles que le dieron mala fama a la notación.

02Encontrar los actores y los casos de uso#

Nadie te da la lista. El diagrama de arriba parece obvio una vez dibujado y no lo era en absoluto antes; el hueco entre la página en blanco y esa imagen son cuatro preguntas que se pueden hacer en una sala en veinte minutos.

  1. ¿Quién inicia algo aquí? Cada uno es candidato a actor principal. Pregunta por el rol y no por el nombre: quien dijo «eso lo hago yo» es un portador de un rol que le sobrevivirá.
  2. ¿Quién o qué recibe algo sin pedirlo? Informes, ficheros, notificaciones, procesos de liquidación. Son los actores de apoyo al lado derecho de la frontera, y son la mitad del diagrama que a la mayoría de los primeros borradores le falta.
  3. ¿Qué tiene que estar ahí para que esto funcione? Proveedores de pago, servicios de identidad, el mainframe, un motor antifraude. Cualquier cosa por la que abrirías un ticket a otro equipo está fuera de la frontera y pertenece al diagrama: dibujarlo suele ser el momento en que alguien se da cuenta de que la dependencia nunca se acordó.
  4. ¿Qué ocurre porque ha pasado el tiempo? Una conciliación nocturna, un vencimiento a catorce días, una facturación mensual. El tiempo es un actor, dibujado como monigote etiquetado Clock o Scheduler, y los procesos que lo omiten acaban con casos de uso que aparentemente nadie inicia.

Después nombra cada objetivo desde el lado del mostrador del actor, con el verbo primero, en su vocabulario: Submit payment, no Payment submission handling y desde luego no PaymentController. Si el nombre solo tiene sentido para quien ha visto el código, es un paso dentro de un caso de uso y no un caso de uso.

03Las cuatro marcas#

ElementoNotaciónQué significa
ActormonigoteUn rol fuera del sistema: una persona, otro sistema o un reloj. Un rol, no un individuo con nombre: Merchant, nunca Anna.
Caso de usoelipseUn objetivo que el sistema entrega, nombrado con el verbo primero.
Frontera del sistemarectánguloEl sujeto. Los casos de uso van dentro, los actores siempre fuera. Su nombre es aquello que construyes.
AsociaciónEste actor participa en este caso de uso. No hace falta punta de flecha.
IncludeFlecha discontinua del caso base al caso incluido. El comportamiento incluido se ejecuta siempre.
ExtendFlecha discontinua de la extensión al caso base. El comportamiento se ejecuta solo a veces.
GeneralizaciónTriángulo hueco en el más general. Funciona entre actores y entre casos de uso.

04Include y extend, sin la confusión#

Estos dos son la razón de que los diagramas de casos de uso se dibujen mal. Ambos son flechas discontinuas con una palabra clave, y apuntan en direcciones opuestas.

«include» apunta del caso base a lo que siempre hace. Léelo como «llama a». En el diagrama de arriba, Submit payment incluye Authorize payment: no se puede enviar sin autorizar. Existe para factorizar comportamiento compartido por varios casos, y por eso mismo Refund payment también lo incluye.

«extend» apunta del extra opcional de vuelta al caso base. Léelo como «puede interrumpir». Log audit trail extiende Refund payment: las devoluciones funcionan sin él, y ocurre bajo cierta condición. El caso base no sabe que sus extensiones existen.

Generalización de actores. Un actor Administrador del comercio y un actor Personal del comercio apuntan ambos, con triángulos huecos, a un actor general Usuario del comercio, lo que significa que cada uno es un tipo de usuario del comercio.
La generalización también vale para los actores. Ambos roles concretos apuntan al general, lo que significa que cada uno puede hacer todo lo que puede un usuario comerciante.

05Detrás de la burbuja: la descripción del caso de uso#

El diagrama es el índice. De lo que realmente se construye es de la descripción del caso de uso detrás de cada elipse, y un proyecto que dibuja el diagrama y nunca escribe las descripciones ha producido una imagen del trabajo en vez de una especificación. Justo de esta parte la notación no dice nada, y por eso tantos equipos se quedan en el dibujo.

Hay tres profundidades útiles, y elegir es una decisión de proyecto, no de modelado. Una descripción breve son dos frases en el backlog. Una informal es un párrafo por escenario. Una completamente desarrollada tiene los campos de abajo y compensa para el puñado de casos que llevan dinero o riesgo reales.

  • Nombre. La etiqueta de la elipse, verbo primero: Authorize payment.
  • Actor principal. Quien quiere el resultado. Merchant.
  • Interesados e intereses. A quién más le importa y qué necesita de ello. El adquirente quiere un código de autorización válido; el equipo antifraude quiere el intento registrado tanto si sale bien como si no. En este campo aparecen la mayoría de los requisitos que se escapan.
  • Precondiciones. Qué es ya cierto antes de empezar: el comerciante está autenticado, el pedido existe. No una lista de pasos, una lista de garantías.
  • Escenario principal de éxito. El camino feliz numerado, paso del actor y luego paso del sistema, en el lenguaje del negocio. Entre cinco y doce pasos; más, y el caso de uso en realidad son dos.
  • Extensiones. Numeradas según el paso del que se ramifican -4a, 4b, 7a- cada una con su condición y qué ocurre. Este es el campo que justifica el formato, porque es un recordatorio sistemático de cada forma en que el camino feliz falla.
  • Postcondiciones. Qué es cierto después, en éxito y en cada fallo. «Se registra una autorización y los fondos quedan retenidos» se puede probar de una forma en que «el pago se procesa» no.

Desarrollado en pequeño para Authorize payment: el escenario principal es (1) el comerciante envía el pago, (2) el sistema valida el total del pedido, (3) el sistema pide autorización al adquirente, (4) el adquirente devuelve una aprobación, (5) el sistema registra la retención y confirma. El trabajo está en las extensiones -3a el adquirente no responde, 4a el adquirente rechaza, 4b el adquirente pide verificación adicional- y cada una es una conversación que si no se tendría seis semanas después en un triaje de defectos.

06Cuándo dibujar uno#

Úsalo cuando

  • Acordar el alcance al principio de un proyecto, con gente que no lee código
  • Averiguar de qué sistemas externos dependes realmente
  • Producir una lista de la que derivar un plan de pruebas o un backlog
  • Mostrar que un requisito pertenece al sistema de otro y no al tuyo

Usa otra cosa cuando

  • Quieres mostrar una secuencia de pasos: eso es un diagrama de actividad o de secuencia
  • El sistema tiene un actor y cuatro casos de uso; una lista con viñetas es más clara
  • Te tienta descomponer casos de uso en subcasos tres niveles hacia abajo
  • El público son ingenieros que necesitan el diseño, no el alcance

Un diagrama de casos de uso útil cabe en una página y tiene entre tres y diez elipses. Es un índice, no el libro. El detalle pertenece a las descripciones -el flujo principal numerado y sus alternativas- o, si el flujo se ramifica lo bastante como para dibujarlo, a un diagrama de actividad por caso.

07Errores comunes#

  1. Descomposición funcional. Veinte elipses nombradas según botones. Los casos de uso son objetivos; si no es algo que un actor quiere, no pertenece aquí.
  2. Actores nombrados según personas o cargos del organigrama. Modela el rol. Una persona puede ser varios actores, y un actor puede ser un proceso por lotes.
  3. Flechas «include» y «extend» invertidas. Apuntan en sentidos opuestos. Aplica la prueba de eliminación de arriba.
  4. Actores dentro de la frontera. La frontera es lo que construyes. Un actor está por definición fuera de ella.
  5. Secuencia implicada por la posición vertical. Un diagrama de casos de uso no tiene eje temporal. Nada en la disposición dice qué ocurre primero.

En una línea cada uno

  1. 01Los diagramas de casos de uso responden a quién y para qué; nunca a cómo ni en qué orden.
  2. 02Un caso de uso es un objetivo que aporta valor a un actor, nombrado con el verbo primero.
  3. 03Los actores son roles y siempre están fuera del rectángulo de frontera.
  4. 04«include» apunta del caso base a un comportamiento que se ejecuta siempre.
  5. 05«extend» apunta del extra opcional de vuelta al caso base.
  6. 06De tres a diez casos en una página; el detalle vive en las descripciones, no en el lienzo.

08Preguntas frecuentes#

¿Qué diferencia hay entre include y extend?

Include significa que el caso base siempre ejecuta el incluido, o sea comportamiento factorizado, y la flecha va del base al incluido. Extend significa que el caso extensor solo se ejecuta bajo una condición, y la flecha va al revés, de la extensión al base. La dirección es justo lo que más se invierte.

¿Qué es un actor en un diagrama de casos de uso?

Cualquier cosa fuera del sistema que interactúe con él: una persona en un rol, otro sistema o un disparador programado. Un actor es un rol y no un individuo, así que una persona puede ser dos actores y un actor puede ser muchas personas.

¿Qué no debe ir en un diagrama de casos de uso?

Secuencia, datos y diseño. Un diagrama de casos de uso responde a quién usa esto y para qué, no en qué orden ni con qué campos. Si te descubres dibujando pasos, lo que quieres es un diagrama de actividad.

¿Para qué sirve la caja de frontera del sistema?

El rectángulo alrededor de los casos de uso marca lo que estás construyendo. Los actores quedan fuera y los casos de uso dentro. Es el elemento que convierte el diagrama en una afirmación sobre el alcance, que es la razón principal para dibujar uno.

¿Qué va en la descripción de un caso de uso?

Una descripción completa lleva un nombre, el actor principal, las partes interesadas y lo que necesita cada una, precondiciones, un escenario principal de éxito numerado, extensiones numeradas según el paso del que se ramifican, y poscondiciones. El campo de extensiones es el que justifica el formato, porque obliga a repasar sistemáticamente cada forma en que el camino feliz puede fallar.

En esta serie

Lecturas relacionadas

Todos los artículos