UML

UML 2.5.1 modela el comportamiento a través de los diagramas siguientes: -> Máquinas de Estados, Interacción, Casos de Uso y Actividad.

En UML 2.5.1 los diagramas se clasifican en dos grandes grupos:

  1. Diagramas estructurales (Structure Diagrams).
  2. Diagramas de comportamiento (Behavior Diagrams).

Los diagramas de comportamiento son:

  • Casos de uso (Use Case)
  • Actividad (Activity)
  • Máquina de estados (State Machine)
  • Interacción (Interaction)

A su vez, Interacción es una categoría que engloba varios diagramas:

  • Diagrama de secuencia (Sequence)
  • Diagrama de comunicación (Communication)
  • Diagrama de tiempos (Timing)
  • Diagrama de visión general de la interacción (Interaction Overview)

Por eso, en la especificación UML 2.5.1 se considera «Interacción» como una de las categorías principales de comportamiento.

El diagrama de clases es un diagrama estructural, no de comportamiento.

El diagrama de secuencia es un tipo de diagrama de interacción, no una categoría principal.

Secuencia y Comunicación son subtipos de Interacción, no categorías independientes al mismo nivel.

Clasificación UML 2.5.1

Diagramas estructurales

  • Clases
  • Objetos
  • Componentes
  • Despliegue
  • Paquetes
  • Estructura compuesta
  • Perfiles

Diagramas de comportamiento

  • Casos de uso
  • Actividad
  • Máquinas de estados
  • Interacción, que incluye:
    • Secuencia
    • Comunicación
    • Timing
    • Interaction Overview

Truco para el examen

Hay una pregunta muy frecuente:

¿Es «Secuencia» un diagrama de comportamiento?

Sí, pero indirectamente: pertenece a la familia de los diagramas de interacción, que es una de las cuatro categorías de diagramas de comportamiento.


En el contexto de los casos de uso y UML 2.5.1: -> La relación Include está pensada para ser utilizada cuando hay partes comunes del comportamiento de dos o más casos de uso.

En UML 2.5.1, las dos relaciones más importantes entre casos de uso son:

<<include>>

Se utiliza cuando varios casos de uso comparten un comportamiento común. Se utiliza cuando hay algún comportamiento adicional que debe añadirse al comportamiento definido en dos o más casos de uso. La razón de existir de <<include>> no es añadir comportamiento obligatorio, sino factorizar comportamiento común entre varios casos de uso.

  • Permite reutilizar ese comportamiento.
  • El comportamiento incluido se ejecuta siempre.
  • Evita duplicar especificaciones.

Ejemplo:

Comprar producto
        |
     <<include>>
        |
Autenticar usuario
        |
Reservar stock

Tanto «Comprar producto» como «Cancelar pedido» podrían incluir «Autenticar usuario».


<<extend>>

Se utiliza para añadir un comportamiento opcional o condicionado a un caso de uso.

Solo se ejecuta si se cumple una condición.

Ejemplo:

Realizar pago
       ^
       |
   <<extend>>
       |
Aplicar descuento

El descuento solo se aplica si procede.

Esquema para memorizar

<<include>>

Caso A
   \
    \-----> Caso común
   /
Caso B

✔ comportamiento común

✔ reutilización

✔ siempre se ejecuta


<<extend>>

Caso principal
       ^
       |
Caso opcional

✔ comportamiento opcional

✔ depende de una condición

✔ amplía el caso principal


Truco de examen

Recuerda esta regla:

  • Include = compartir (comportamiento común).
  • Extend = ampliar (comportamiento opcional).

Es probablemente la pregunta más repetida sobre UML en oposiciones.


El diagrama de despliegue representa:

  • la arquitectura física del sistema;
  • los nodos (servidores, dispositivos, móviles…);
  • los artefactos desplegados en ellos;
  • las relaciones de comunicación o dependencia entre los nodos.

Relaciones de dependencia entre nodos de hardware -> Es un tipo de relación que se puede representar en un diagrama de despliegue

Esquema para el examen

Diagrama de despliegue

Representa:

  • ✅ Nodos.
  • ✅ Hardware.
  • ✅ Artefactos.
  • ✅ Comunicación.
  • ✅ Dependencias.

No representa:

  • herencia;
  • agregación;
  • asociaciones de clases.

No confundir los diagramas UML

DiagramaRepresenta
ClasesHerencia, asociación, agregación, composición
ComponentesDependencias entre componentes software
DespliegueNodos físicos y artefactos ⭐
ObjetosObjetos e instancias
SecuenciaMensajes entre objetos

Truco para recordar

Deployment

Dónde se despliega el software.

Piensa en:

  • servidores,
  • routers,
  • móviles,
  • máquinas virtuales.

No en clases.