📝 relaciones_uml-1
← Volver

Tipos de Relaciones UML

Tabla Resumen General

Relación Símbolo ¿Qué significa? Ejemplo típico Dónde aparece
Asociación Línea simple Relación estructural entre clases Cliente — Pedido Diagrama de clases
Navegabilidad Flecha en asociación Indica dirección de acceso Cliente → Pedido Diagrama de clases
Agregación Rombo blanco ◇ Relación "todo-parte" débil Equipo ◇ Jugador Clases
Composición Rombo negro ◆ Relación "todo-parte" fuerte Casa ◆ Habitación Clases
Dependencia Línea discontinua → Uso temporal (parámetros, métodos) Método recibe objeto Clases, secuencia
Herencia (Generalización) Flecha vacía △ Una clase hereda de otra Perro → Animal Clases
Realización Línea discontinua △ Implementa una interfaz Clase → Interface Clases
Asociación reflexiva Línea a sí misma Relación consigo misma Empleado supervisa empleado Clases

Representación Visual de Relaciones

HERENCIA           REALIZACIÓN         COMPOSICIÓN        AGREGACIÓN

[Perro]            [ClaseA]            [Casa]             [Equipo]
   |                  ╎                   ◆                  ◇
   △                  △                   |                  |
   |               [«interface»]       [Habitación]       [Jugador]
[Animal]           [Volable]           (sin casa,         (sin equipo,
                                        no existe)         puede existir)

ASOCIACIÓN         DEPENDENCIA         NAVEGABILIDAD      REFLEXIVA

[Cliente]──────[Pedido]    [A]- - ->[B]    [A]──────>[B]    [Empleado]
 (relación                  (uso                             ┐      │
  permanente)                temporal)                       └──────┘
                                                            supervisa

Relaciones en Detalle

Asociación y Navegabilidad

[Cliente] 1 ──────────── * [Pedido]
           hace

Agregación vs. Composición ⚠️

La diferencia entre ambas es el ciclo de vida de las partes.

Característica Agregación Composición
Tipo de relación Todo-parte débil Todo-parte fuerte
Ciclo de vida Partes independientes Partes dependen del todo
Si el todo se destruye Las partes sobreviven Las partes desaparecen
Ejemplo Equipo ◇ Jugador Casa ◆ Habitación
Símbolo Rombo blanco en el todo Rombo negro en el todo

Herencia (Generalización)

[Animal]
    △
    |
[Perro] ← hereda atributos y métodos de Animal

Realización

// Equivalente en código:
class Pato implements Volable { ... }

Dependencia

// Dependencia: Factura depende de Impresora
void imprimir(Impresora imp) { imp.print(this); }

Asociación Reflexiva

[Empleado] ─────────┐
     └───supervisa───┘

Relaciones por Tipo de Diagrama UML

Diagrama UML Relaciones más usadas
Clases Asociación, agregación, composición, herencia, dependencia
Secuencia Mensajes (llamadas entre objetos)
Comunicación Enlaces + mensajes
Casos de uso Inclusión, extensión, generalización
Componentes Dependencias
Despliegue Asociaciones

Guía de Decisión: ¿Qué relación usar?

Relación Cuándo usarla
Dependencia Parámetros, variables locales, uso temporal
Asociación Relación permanente (atributos)
Composición Vida dependiente (si muere el todo, mueren las partes)
Agregación Relación débil (pueden existir por separado)
Herencia "Es un tipo de"
Realización "Implementa interfaz"

Árbol de decisión rápido

¿La relación es temporal (parámetros/métodos)?
    └── SÍ → DEPENDENCIA (- - - →)
    └── NO → ¿Es jerárquica ("es un tipo de")?
                └── SÍ + clase concreta → HERENCIA (──△)
                └── SÍ + interfaz       → REALIZACIÓN (- -△)
                └── NO → ¿Es todo-parte?
                            └── SÍ + ciclos de vida dependientes → COMPOSICIÓN (──◆)
                            └── SÍ + ciclos de vida independientes → AGREGACIÓN (──◇)
                            └── NO → ASOCIACIÓN (────)

Multiplicidad (Notación UML)

Notación Significado
1 Exactamente uno
0..1 Cero o uno
* o 0..* Cero o más
1..* Uno o más
n..m Entre n y m

⚠️ Errores Frecuentes en Oposición


Resumen en 3 puntos

  1. Las relaciones estructurales (asociación, agregación, composición) modelan cómo los objetos se relacionan en el tiempo; la diferencia entre agregación y composición está en si las partes sobreviven o no a la destrucción del todo.

  2. Las relaciones de herencia y realización modelan la jerarquía de tipos: la herencia extiende una clase concreta o abstracta ("es un"), mientras que la realización implementa el contrato de una interfaz (línea discontinua + flecha triangular vacía).

  3. La dependencia es la relación más débil: indica un uso puntual (parámetro, variable local) sin vínculo permanente, y es la primera opción cuando dos clases interactúan solo en el contexto de un método.