X

Relaciones de diagrama de clases UML explicadas con ejemplos

By lalindri

Muchas personas consideran que los diagramas de clase son un poco más complicados de construir en comparación con los diagramas ER. La mayoría de las veces se debe a la incapacidad de entender las diferentes relaciones en los diagramas de clase. Este artículo explica cómo determinar e implementar correctamente las diferentes relaciones del diagrama de clases que son aplicables en el modelado orientado a objetos. Además, puede crear fácilmente diagramas de clase en línea utilizando nuestra herramienta de diagramación.

Relaciones en los diagramas de clase UML

¿Qué son los diagramas de clase?

Los diagramas de clase son el principal bloque de construcción en el modelado orientado a objetos. Se utilizan para mostrar los diferentes objetos de un sistema, sus atributos, sus operaciones y las relaciones entre ellos. La siguiente figura es un ejemplo de una clase simple:

Diagrama de clase simple con atributos y operaciones

En el ejemplo, se representa una clase llamada “cuenta de préstamo”. Las clases en los diagramas de clase se representan mediante cajas divididas en tres:

  1. La partición superior contiene el nombre de la clase.
  2. La parte central contiene los atributos de la clase.
  3. La partición inferior muestra las posibles operaciones asociadas a la clase.

El ejemplo muestra cómo una clase puede encapsular todos los datos relevantes de un objeto concreto de forma muy sistemática y clara. Un diagrama de clases es una colección de clases similar a la anterior.

Relaciones en los diagramas de clase

Las clases están interrelacionadas entre sí de manera específica. En particular, las relaciones en los diagramas de clase incluyen diferentes tipos de conexiones lógicas. Los siguientes son los tipos de conexiones lógicas que son posibles en UML:

Asociación

Asociación

es un término amplio que abarca casi cualquier conexión o relación lógica entre clases. Por ejemplo, el pasajero y la aerolínea pueden estar vinculados como en el caso anterior:

Asociación dirigida

Asociación dirigida

se refiere a una relación direccional representada por una línea con una punta de flecha. La punta de la flecha representa un flujo direccional contenido en el contenedor.

Asociación reflexiva

Asociación Reflexiva

Esto ocurre cuando una clase puede tener múltiples funciones o responsabilidades. Por ejemplo, un miembro del personal que trabaja en un aeropuerto puede ser un piloto, un ingeniero de aviación, un despachador de billetes, un guardia o un miembro del equipo de mantenimiento. Si el miembro de la tripulación de mantenimiento es gestionado por el ingeniero de aviación, podría haber una relación de gestión en dos instancias de la misma clase.

Multiplicidad

Multiplicidad

es la asociación lógica activa cuando se está representando la cardinalidad de una clase en relación con otra. Por ejemplo, una flota puede incluir varios aviones, mientras que un avión comercial puede contener de cero a muchos pasajeros. La notación 0..* en el diagrama significa “de cero a muchos”.

Agregación

La agregación

se refiere a la formación de una clase particular como resultado de una clase agregada o construida como una colección. Por ejemplo, la clase “biblioteca” está formada por uno o varios libros, entre otros materiales. En la agregación, las clases contenidas no dependen fuertemente del ciclo de vida del contenedor. En el mismo ejemplo, los libros seguirán siéndolo aunque se disuelva la biblioteca. Para mostrar la agregación en un diagrama, dibuje una línea desde la clase padre hasta la clase hija con una forma de diamante cerca de la clase padre. Para mostrar la agregación en un diagrama, dibuje una línea desde la clase padre hasta la clase hija con una forma de diamante cerca de la clase padre.

Composición

Composición

La relación de composición es muy similar a la relación de agregación. con la única diferencia de su propósito clave de enfatizar la dependencia de la clase contenida al ciclo de vida de la clase contenedora. Es decir, la clase contenida será borrada cuando la clase contenedora sea destruida. Por ejemplo, el bolsillo lateral de una bandolera también dejará de existir una vez que ésta se destruya. Para mostrar una relación de composición en un diagrama UML, utilice una línea direccional que conecte las dos clases, con una forma de diamante rellena adyacente a la clase contenedora y la flecha direccional a la clase contenida.

Herencia / Generalización

La herencia

se refiere a un tipo de relación en la que una clase asociada es hija de otra en virtud de asumir las mismas funcionalidades de la clase padre. En otras palabras, la clase hija es un tipo específico de la clase padre. Para mostrar la herencia en un diagrama UML, se dibuja una línea sólida desde la clase hija hasta la clase padre utilizando una punta de flecha sin rellenar.

Realización

Realización

denota la implementación de la funcionalidad definida en una clase por otra clase. Para mostrar la relación en UML, se dibuja una línea discontinua con una punta de flecha sólida sin rellenar desde la clase que define la funcionalidad de la clase que implementa la función. En el ejemplo, las preferencias de impresión que se establecen mediante la interfaz de configuración de la impresora están siendo implementadas por la impresora.

Dibujar diagramas de clase con Creately

Hemos pensado mucho en las relaciones cuando construimos nuestras herramientas de diagramación de clases. Nuestros conectores se ajustan al contexto y muestran sólo las relaciones más lógicas al conectar las clases. Así se reducen considerablemente las posibilidades de cometer un error. Dibujar desde cero puede ser engorroso. Puede empezar a utilizar inmediatamente nuestros diagramas de clase diseñados por profesionales. Examine nuestros ejemplos de diagramas de clase y elija el que esté más relacionado con su sistema.

¿Tienes más preguntas sobre las relaciones del diagrama de clases?

Espero haber explicado claramente las distintas relaciones entre los diagramas de clase. No son tan complejos como crees y se pueden dominar con algo de práctica. Y utilizando nuestra herramienta no debería tener ningún problema para elaborar diagramas de clase. Si tienes más preguntas, no dudes en hacerlas en la sección de comentarios. También, revise esta guía de Tipos de Diagramas UML con Ejemplos para una mayor lectura. Referencias: 1. Fundamentos de UML: El diagrama de clases Introducción a los diagramas de estructura en UML 2 por Donald Bell 2. Diagrama de clases publicado en el sitio web de Wikipedia 3. El Diagrama de Clases UML Parte 1, tal y como se publica en el sitio web developer.com 4. El diagrama de clases de Visual CaseTool – UML Tutorial como se publicó en el sitio web de Visual Case 5. Asociaciones publicadas en el sitio web de Sybase