El diagrama de casos de uso en UML

El diagrama de casos de uso es una forma de diagrama de comportamiento en lenguaje de modelado unificado (UML, del inglés Unified Modelling Language), con la que se representan procesos empresariales, así como sistemas y procesos de programación orientada a objetos. Por lo tanto, UML no es un lenguaje de programación, sino un lenguaje de modelado, es decir, un método estandarizado para representar sistemas planificados o ya existentes. En este diagrama, todos los objetos involucrados se estructuran y se relacionan entre sí.

Diagrama de casos de uso: uno de los muchos diagramas en UML

Representar toda clase de objetos, relaciones y procesos mediante un solo diagrama resultaría demasiado complejo y confuso. Por este motivo, se utilizan 14 tipos de diagramas diferentes en UML, que pueden dividirse en diagramas de estructura, diagramas de comportamiento y diagramas de interacción. Los diagramas de interacción, a su vez, son una subcategoría de los diagramas de comportamiento.

Los diagramas de estructura se centran en representar todos los elementos de un sistema y sus relaciones entre sí. Un ejemplo típico es el diagrama de clases, con el que los elementos se pueden agrupar y visualizar en jerarquías. Los diagramas de comportamiento, en cambio, no representan estructuras estáticas, sino que muestran el flujo del proceso planificado o real que debería tener lugar al ejecutar el programa o el software. En este tipo de diagrama, la dinámica cobra protagonismo.

El diagrama de casos de uso también pertenece a este último grupo, pero se trata de un modelo particular, porque muestra el comportamiento que se espera de un sistema o software en un caso de uso concreto. En comparación con el resto de diagramas de comportamiento en UML, el diagrama de casos de uso es bastante estático, ya que solo puede emplearse para describir acciones y objetivos, pero no la secuencia exacta de procesos y acciones. Para esto último, se utilizan otros tipos de diagramas en UML, como los diagramas de actividades, que representan los procesos cronológicamente; o los diagramas de secuencia, que muestran el intercambio de mensajes entre los diferentes elementos que componen un sistema.

Diagrama de casos de uso en la práctica

En el diagrama de casos de uso, las funciones del sistema en cuestión se representan desde el punto de vista del usuario (llamado “actor” en UML). Este actor no tiene que ser necesariamente un usuario humano, sino que el rol también puede atribuirse a un sistema externo que accede a otro sistema. De este modo, el diagrama de casos de uso muestra la relación entre un actor y sus requisitos o expectativas del sistema, sin representar las acciones que tienen lugar o ponerlas en un orden lógico.

En la práctica, esta estructura es adecuada para representar claramente las funciones y/o objetivos más importantes de un sistema. Por esta razón, a la hora de desarrollar un software o planificar nuevos procesos empresariales, crear un diagrama de casos de uso suele ser uno de los primeros pasos, ya que permite visualizar clara y fácilmente qué casos de uso deben tenerse en cuenta durante el desarrollo para que los actores (y, en un sentido más amplio, también los operadores o clientes) logren su objetivo, en principio independientemente de la viabilidad técnica.

Elementos y estructura del diagrama de casos de uso

Para garantizar que el diagrama de casos de uso sea comprensible para todo el mundo de un vistazo, se utilizan elementos estandarizados para elaborarlo. En primer lugar, hay tres elementos principales:

  • Actor: tanto si es una persona, como un sistema, se representa con el dibujo de una figura humana esquemática.
  • Sistema: el sistema al que se refiere el caso de uso tiene forma de rectángulo.
  • Caso de uso: se muestra como una elipse que suele incluir un texto describiendo brevemente el proceso.

La relación entre estos elementos se representa con unas líneas de conexión llamadas asociaciones. Una línea recta entre el actor y el caso de uso evidencia que el actor y el caso de uso descrito en la elipse están relacionados. Una línea discontinua establece una relación entre diferentes casos de uso. Como hay dos tipos diferentes de asociación entre casos de uso, a las líneas se les añade una palabra clave, denominada “estereotipo” en UML, que se pone entre dos pares de paréntesis angulares. La relación de dependencia entre los casos de uso se representa con la punta de una flecha. Se distingue entre estos dos estereotipos:

  • Asociación <>: el caso de uso en el cual comienza la línea discontinua se relaciona con un segundo caso de uso señalado por la punta de la flecha.
  • Asociación <>: el caso de uso en el cual comienza la línea discontinua puede extenderse al caso de uso señalado por la punta de la flecha bajo ciertas condiciones, que no han de cumplirse necesariamente en todos los casos.

Si bien la asociación <<include >> requiere que ambos casos de uso se realicen, en el caso de la asociación <<extend>> esto depende de ciertas condiciones que se representan como el llamado punto de extensión en el diagrama de casos de uso en UML. En el esquema, el punto de extensión se representa con dos elementos:

  • Mención en la elipse del caso de uso: el posible punto de extensión se menciona y se describe brevemente bajo el título del caso de uso.
  • Nota: partiendo del estereotipo <>, se dibuja una línea discontinua que finaliza en el gráfico de una nota (representada como un rectángulo con una esquina doblada). Esta nota incluye los títulos de “Condición” y “Punto de extensión”. Detrás del primero, figura entre corchetes la condición que debe cumplirse para que se ejecute el segundo caso de uso. Detrás de “Punto de extensión”, se indica el nombre que aparece en la elipse del caso de uso correspondiente, para dejar claro a qué se refiere la extensión.

Hasta aquí todos los componentes básicos que necesitas para crear tu propio diagrama de casos de uso.

Ejemplo de diagrama de casos de uso

Hasta ahora solo hemos hablado de la teoría. Para que te hagas una mejor idea del diagrama de casos de uso en la vida real, te enseñaremos a elaborar uno mediante el ejemplo del cliente de un banco que quiere sacar dinero de un cajero automático.

Nota

En la práctica, siempre debes asegurarte de que el diagrama de casos de uso no sea demasiado confuso, lo cual suele pasar al representar varios casos en el mismo diagrama relacionados entre sí por las asociaciones <<include>> y <<extend>>. En caso de duda, conviene crear un diagrama de casos de uso independiente para cada uno de ellos.

En nuestro ejemplo, el cajero automático es el sistema; el cliente del banco, el actor que va a utilizarlo, y el caso de uso, “sacar dinero”. Este último se relaciona con otros dos casos de uso mediante asociaciones de inclusión, a saber, “autenticación” y “control de PIN y cuenta”. Si la autenticación no es válida, no se atenderá la solicitud del cliente. Para que los intentos del cliente no se repitan de manera indefinida, el cajero debe retener la tarjeta cuando el PIN se introduce incorrectamente tres veces. Por lo tanto, para el caso de uso de la “autenticación”, se define un punto de extensión con la condición “PIN incorrecto tres veces”. Si se cumple esta condición, se ejecuta el caso de uso de “retener tarjeta”, relacionado con el caso de uso de la “autenticación” mediante una asociación de tipo extend. Con todos estos elementos, nuestro diagrama de casos de uso tendría este aspecto: