UML

Existen cuatro tipos principales de relaciones en UML:

Generalización: es una relación de especialización (Padre-hijo o superclase-subclase).

La generalización se utiliza para modelar la herencia en los lenguajes orientados a objetos.

Una de las características de la herencia es que permite simplificar la construcción de clases relacionadas, ya que gracias a ella es posible agrupar las características comunes de un conjunto de clases en una clase padre (superclase) y hacer que todas ellas hereden de la superclase.

Asociación: representan las relaciones entre instancias de clase. Se representa grá-ficamente como una línea que conecta las clases relacionadas.

Si la clase Documento (A) se relaciona con la clase Persona (B), lo puede hacer de dos formas: en la primera, la clase A puede acceder a los atributos y operaciones públicas de la clase B y viceversa.

Se representa con una línea, pero si añadimos una flecha que indique el sentido de dicha asociación restringimos la navegabilidad de la asociación. En el ejemplo, A puede acceder a los atributos y operaciones públicas de la clase B, pero B no puede acceder a A.

En las asociaciones se puede añadir información para aumentar su expresividad y significado:

– El nombre de la asociación, un nombre descriptivo que indica la naturaleza de la asociación. Se añade un pequeño triángulo que indique el sentido en que se debe interpretar.

Roles, para indicar el rol que desempeña cada una de las clases en la asociación.

Se identifica por un nombre a los finales de la línea, describe la semántica de la relación en el sentido indicado. El rol puede estar representado en el nombre de la clase.

Realización: es una relación pactada y establecida entre clases, en la cual una clase especifica un contrato (por ejemplo, un interfaz) que la otra garantiza que cumplirá.

Generalmente se emplea la realización para especificar una relación entre una interfaz y una clase o componente que implementa las operaciones especificadas en dicha interfaz.

Dependencia: es una relación entre entidades independientes y dependientes. El elemento dependiente (el cliente) requiere conocer al elemento independiente (el que proporciona el servicio) y que esté presente.

Las dependencias se usan para modelar relaciones en las cuales un cambio en el elemento independiente (el suministrador) puede requerir cambios en el elemento dependiente (el cliente).

Es un tipo de relación unidireccional, ya que el elemento dependiente debe conocer al independiente, pero el independiente desconoce la existencia del elemento dependiente.

Gráficamente se muestra como una línea discontinua acabada en flecha que va del elemento dependiente al independiente (esto es, el elemento dependiente señala al elemento del que depende).