Skip to content

3. Tipos de Relaciones en Casos de Uso

Las relaciones en los diagramas de casos de uso permiten mostrar cómo los diferentes elementos interactúan entre sí. Estas relaciones ayudan a estructurar y organizar los casos de uso, reduciendo la redundancia y mejorando la claridad del diagrama.

La asociación es el tipo de relación más básico en los diagramas de casos de uso, conectando actores con los casos de uso con los que interactúan.

  • Representa la comunicación entre un actor y un caso de uso
  • Se dibuja como una línea sólida entre el actor y el caso de uso
  • Indica que el actor participa en el caso de uso
  • No tiene dirección específica (aunque a veces se usa una flecha para indicar quién inicia la interacción)
Diagrama UML

En este ejemplo básico, un Usuario se asocia con el caso de uso Realizar Compra, indicando que el usuario puede iniciar o participar en esta funcionalidad.

Aunque no es común mostrarla en diagramas de casos de uso, la multiplicidad puede indicarse para representar cuántas instancias de un actor pueden participar en un caso de uso y viceversa.

Diagrama UML

En este ejemplo, la notación “1..*” indica que uno o más usuarios pueden participar en una instancia del caso de uso “Realizar Compra”.

La relación de inclusión se utiliza cuando un caso de uso incorpora el comportamiento de otro caso de uso como parte de su flujo.

  • El caso de uso base siempre incluye el comportamiento del caso de uso incluido
  • Se representa con una flecha discontinua con la etiqueta «include»
  • La flecha apunta hacia el caso de uso incluido
  • Permite reutilizar funcionalidades comunes
  • El caso de uso incluido no es independiente (no tiene valor por sí solo)
Diagrama UML
  • Para extraer comportamiento común que se repite en varios casos de uso
  • Para simplificar casos de uso complejos dividiéndolos en partes más manejables
  • Para separar funcionalidades obligatorias que siempre se ejecutan
Diagrama UML

En este ejemplo, “Realizar Compra” siempre incluye verificar el inventario, procesar el pago y generar una factura.

La relación de extensión se utiliza cuando un caso de uso añade comportamiento opcional a otro caso de uso bajo ciertas condiciones.

  • El caso de uso base puede funcionar independientemente del caso de uso que lo extiende
  • Se representa con una flecha discontinua con la etiqueta «extend»
  • La flecha va desde el caso de uso que extiende hacia el caso de uso base
  • La extensión ocurre solo bajo ciertas condiciones
  • Define puntos de extensión donde el comportamiento adicional puede insertarse
Diagrama UML
  • Para representar comportamiento opcional que no siempre ocurre
  • Para manejar flujos alternativos o excepcionales
  • Para añadir funcionalidades a un caso de uso sin modificarlo
  • Para representar variantes de un caso de uso base
Diagrama UML

En este ejemplo, “Solicitar Aprobación” extiende “Crear Cuenta” solo cuando se cumple una condición específica.

3.4. Generalización (entre actores o entre casos de uso)

Section titled “3.4. Generalización (entre actores o entre casos de uso)”

La generalización representa una relación de herencia entre actores o entre casos de uso, similar a la herencia en programación orientada a objetos.

  • Indica que un actor específico hereda las características de un actor más general
  • El actor específico puede interactuar con todos los casos de uso del actor general
  • Se representa con una flecha con línea continua y punta triangular vacía
  • La flecha apunta hacia el actor general (padre)
Diagrama UML

En este ejemplo, “Usuario Registrado” es un tipo de “Usuario” y hereda todas sus asociaciones. A su vez, “Administrador” es un tipo de “Usuario Registrado” y hereda todas las asociaciones de ambos actores padre.

  • Indica que un caso de uso específico hereda y especializa el comportamiento de un caso de uso más general
  • El caso de uso hijo puede añadir o sobrescribir comportamiento del padre
  • Se representa con una flecha con línea continua y punta triangular vacía
  • La flecha apunta hacia el caso de uso general (padre)
Diagrama UML

En este ejemplo, “Pagar con Tarjeta” y “Pagar con Efectivo” son tipos de “Realizar Pago”. A su vez, “Pagar con Crédito” y “Pagar con Débito” son tipos específicos de “Pagar con Tarjeta”.

  • Para representar jerarquías de actores con diferentes niveles de privilegios
  • Para modelar variantes de un caso de uso que comparten comportamiento común
  • Para evitar duplicación al representar comportamientos similares
CaracterísticaAsociaciónInclusión («include»)Extensión («extend»)Generalización
Propósito principalConectar actores y casos de usoReutilizar comportamiento obligatorioAñadir comportamiento opcionalRepresentar herencia
RepresentaciónLínea sólidaFlecha discontinuaFlecha discontinuaFlecha sólida con triángulo
DirecciónSin dirección específicaHacia el caso de uso incluidoHacia el caso de uso baseHacia el elemento general
ObligatoriedadN/ASiempre ocurreCondicionalN/A
Elementos conectadosActor y caso de usoCaso de uso y caso de usoCaso de uso y caso de usoActor y actor, o caso de uso y caso de uso

Ejemplo completo con diferentes tipos de relaciones

Section titled “Ejemplo completo con diferentes tipos de relaciones”
Diagrama UML
  • Usar «include» para:

    • Comportamiento común que se repite en varios casos de uso
    • Funcionalidades obligatorias que siempre ocurren
    • Simplificar casos de uso complejos
  • Usar «extend» para:

    • Comportamiento opcional que depende de ciertas condiciones
    • Flujos alternativos o excepcionales
    • Funcionalidades que pueden añadirse sin modificar el caso de uso base
  • Usar generalización para:

    • Jerarquías de actores con diferentes niveles de privilegios
    • Variantes de un caso de uso que comparten comportamiento común
    • Representar relaciones “es un tipo de”
  • Evitar:

    • Relaciones circulares o redundantes
    • Abuso de relaciones que compliquen innecesariamente el diagrama
    • Mezclar pasos de un caso de uso con casos de uso independientes
🐝