Relaciones UML con EJEMPLO: dependencia, generalización, realización

Tabla de contenido:

Anonim

¿Qué es la relación UML?

Las relaciones en UML se utilizan para representar una conexión entre elementos estructurales, de comportamiento o de agrupación. También se denomina enlace que describe cómo dos o más cosas pueden relacionarse entre sí durante la ejecución de un sistema. Los tipos de relación UML son Asociación, Dependencia, Generalización y Realización.

Estudiemoslos en detalle

  • Asociación

Es un conjunto de enlaces que conecta elementos del modelo UML. También define cuántos objetos participan en esa relación.

  • Dependencia

En una relación de dependencia, como sugiere el nombre, dos o más elementos dependen entre sí. En este tipo de relación, si realizamos un cambio en un elemento en particular, es probable que todos los demás elementos también se vean afectados por el cambio.

  • Generalización

También se llama relación entre padres e hijos. En generalización, un elemento es una especialización de otro componente general. Puede sustituirlo. Se utiliza principalmente para representar la herencia.

  • Realización

En una relación de realización de UML, una entidad denota alguna responsabilidad que no está implementada por ella misma y la otra entidad que las implementa. Esta relación se encuentra principalmente en el caso de interfaces.

En este tutorial de UML, aprenderá:

  • Asociación
  • Dependencia
  • Generalización
  • Realización
  • Composición
  • Agregación

Asociación

Es una relación estructural que representa que los objetos pueden estar conectados o asociados con otro objeto dentro del sistema. Las siguientes restricciones se pueden aplicar a la relación de asociación.

  • {implícito} : las restricciones implícitas especifican que la relación no es manifiesta; se basa en un concepto.
  • {ordenado} : las restricciones ordenadas especifican que el conjunto de objetos en un extremo de una asociación está de una manera específica.
  • {modificable} : la restricción modificable especifica que la conexión entre varios objetos en el sistema se puede agregar, eliminar y modificar según el requisito.
  • {addOnly} : especifica que las nuevas conexiones se pueden agregar desde un objeto que se encuentra en el otro extremo de una asociación.
  • {congelado} : especifica que cuando se agrega un enlace entre dos objetos, no se puede modificar mientras la restricción congelada esté activa en el enlace o conexión en cuestión.

También podemos crear una clase que tenga propiedades de asociación; se llama como una clase de asociación.

Asociación reflexiva

La asociación reflexiva es un subtipo de relación de asociación en UML. En una asociación reflexiva, las instancias de la misma clase pueden relacionarse entre sí. También se dice que una instancia de una clase es un objeto.

La asociación reflexiva establece que un enlace o una conexión puede estar presente dentro de los objetos de la misma clase.

Consideremos un ejemplo de fruta de clase. La clase de frutas tiene dos instancias, como mango y manzana. La asociación reflexiva establece que puede haber un vínculo entre el mango y la manzana, ya que son instancias de la misma clase, como la fruta.

Asociación dirigida

Como sugiere el nombre, la asociación dirigida está relacionada con la dirección del flujo dentro de las clases de asociación.

En una asociación dirigida, el flujo está dirigido. La asociación de una clase a otra clase fluye en una única dirección.

Se denota mediante una línea continua con una punta de flecha.

Ejemplo:

Puede decirse que existe una relación de asociación dirigida entre un servidor y un cliente. Un servidor puede procesar las solicitudes de un cliente. Este flujo es unidireccional, que fluye solo del servidor al cliente. Por tanto, una relación de asociación dirigida puede estar presente dentro de los servidores y clientes de un sistema.

Dependencia

Usando una relación de dependencia en UML, uno puede relacionar cómo varias cosas dentro de un sistema particular dependen unas de otras. La dependencia se utiliza para describir la relación entre varios elementos en UML que dependen unos de otros.

Estereotipos

  • «Vincular» : vincular es una restricción que especifica que la fuente puede inicializar la plantilla en una ubicación de destino, utilizando los parámetros o valores proporcionados.
  • «Derivar» : representa que la ubicación de un objeto de origen se puede calcular a partir del objeto de destino.
  • «Amigo» : especifica que la fuente tiene una visibilidad única en el objeto de destino.
  • «InstanceOf» : especifica que la instancia de un clasificador de destino es el objeto de origen.
  • «Instanciar» : especifica que el objeto de origen es capaz de crear instancias de un objeto de destino.
  • «Refinar» : especifica que el objeto de origen tiene una abstracción excepcional que la del objeto de destino.
  • «Uso» : se utiliza cuando los paquetes se crean en UML. El estereotipo de uso describe que los elementos de un paquete fuente también pueden estar presentes dentro del paquete de destino. Describe que el paquete de origen hace uso de algunos elementos de un paquete de destino.
  • «Sustituto» : especifica que el cliente puede ser sustituido por el proveedor en tiempo de ejecución.
  • «Acceso» : especifica que el paquete de origen accede a los elementos del paquete de destino, que también se denomina fusión privada.
  • «Importar» : especifica que el destino puede importar el elemento de un paquete fuente como están definidos dentro del destino, que también se denomina fusión pública.
  • «Permiso» : especifica que el elemento fuente tiene acceso al elemento proveedor independientemente de la visibilidad declarada del proveedor.
  • «Extender» : lo ayuda a especificar que el destino puede extender el comportamiento del elemento fuente.
  • «Incluir» : le permite especificar el elemento fuente que puede incluir el comportamiento de otro elemento en una ubicación específica. (igual que una llamada de función en c / c ++)
  • «Convertirse» : especifica que el destino es similar al origen con diferentes valores y roles.
  • «Llamar» : especifica que la fuente puede invocar un método de objeto de destino.
  • «Copia» : especifica que el objeto de destino es independiente, copia de un objeto de origen.
  • «Parámetro» - el proveedor es un parámetro de las operaciones del cliente .
  • «Enviar»: el cliente es una operación que envía al proveedor un objetivo no especificado.

Estereotipos entre la máquina estatal

  • «Enviar» : especifica que la operación de origen envía el evento de destino.

Generalización

Es una relación entre una entidad general y una entidad única que está presente dentro del sistema.

En una relación de generalización, se puede implementar el concepto orientado a objetos llamado herencia . Existe una relación de generalización entre dos objetos, también llamados entidades o cosas. En una relación de generalización, una entidad es un padre y otra se dice que es un hijo. Estas entidades se pueden representar mediante herencia.

En herencia, un hijo de cualquier padre puede acceder, actualizar o heredar la funcionalidad como se especifica dentro del objeto padre. Un objeto hijo puede agregar su funcionalidad a sí mismo, así como heredar la estructura y el comportamiento de un objeto padre.

Este tipo de relación se conoce colectivamente como relación de generalización.

Estereotipos y sus limitaciones

  • «Implementación» : este estereotipo se utiliza para representar que la entidad madre está implementando la entidad secundaria heredando la estructura y el comportamiento de un objeto principal sin violar las reglas. Nota Este estereotipo si se usa ampliamente en una herencia única .

La relación de generalización contiene restricciones como completa, incompleta para comprobar si todas las entidades secundarias se incluyen en la relación o no.

Realización

En una relación de realización de UML, una entidad denota alguna responsabilidad que no está implementada por ella misma y la otra entidad que las implementa. Esta relación se encuentra principalmente en el caso de interfaces.

La realización se puede representar de dos formas:

  • Usando una forma canónica
  • Usando una forma elidida

En el diagrama anterior, las reglas comerciales de la cuenta realizan la interfaz IRuleAgent.

Tipos de realización:

  1. Forma canónica

    En una relación de realización de UML, la forma canónica se utiliza para realizar interfaces en todo el sistema. Utiliza un estereotipo de interfaz para crear una interfaz y la relación de realización se utiliza para realizar la interfaz en particular.

    En una forma canónica, la relación de realización se indica utilizando la línea punteada dirigida con una punta de flecha abierta de tamaño considerable.

    En el diagrama anterior, la interfaz Iruleagent se realiza mediante un objeto denominado Reglas comerciales de la cuenta.

  2. Forma elidida

    La realización en el diagrama de clases UML también se puede mostrar usando un formulario elidido. En una forma elidida, la interfaz se denota mediante un círculo que también se denomina notación de paleta.

    Esta interfaz, cuando se realiza utilizando cualquier elemento presente dentro del sistema, crea una estructura elidida.

    En el diagrama anterior, la interfaz Iruleagent se indica mediante un formulario elidido que está realizando acctrule.dll.

Composición

No es una relación UML estándar, pero todavía se usa en varias aplicaciones.

La agregación compuesta es un subtipo de relación de agregación con características como:

  • es una asociación bidireccional entre los objetos.
  • Es una relación de todo / parte.
  • Si se elimina un compuesto, se eliminan todas las demás partes asociadas a él.

La agregación compuesta se describe como una asociación binaria decorada con un diamante negro relleno en el extremo agregado (completo).

Una carpeta es una estructura que contiene n número de archivos. Se utiliza una carpeta para almacenar los archivos en su interior. Cada carpeta se puede asociar con cualquier número de archivos. En un sistema informático, cada archivo es parte de al menos una carpeta dentro del sistema de organización de archivos. El mismo archivo también puede formar parte de otra carpeta, pero no es obligatorio. Siempre que se elimina un archivo de la carpeta, la carpeta no se ve afectada mientras que los datos relacionados con ese archivo en particular se destruyen. Si se ejecuta una operación de eliminación en la carpeta, también afectará a todos los archivos que están presentes dentro de la carpeta. Todos los archivos asociados con la carpeta se destruyen automáticamente una vez que la carpeta se elimina del sistema.

Este tipo de relación en UML se conoce por relación de agregación compuesta.

Agregación

Una agregación es un subtipo de una relación de asociación en UML. La agregación y la composición son ambos tipos de relación de asociación en UML. Una relación de agregación se puede describir en palabras simples como "un objeto de una clase puede poseer o acceder a los objetos de otra clase".

En una relación de agregación, el objeto dependiente permanece en el ámbito de una relación incluso cuando se destruye el objeto de origen.

Consideremos un ejemplo de un automóvil y una rueda. Un automóvil necesita una rueda para funcionar correctamente, pero una rueda no siempre necesita un automóvil. También se puede usar con la bicicleta, bicicleta o cualquier otro vehículo, pero no con un automóvil en particular. Aquí, el objeto rueda es significativo incluso sin el objeto automóvil. Este tipo de relación se denomina relación de agregación.

Resumen

  • La relación en UML permite que una cosa se relacione con otras cosas dentro del sistema.
  • UML define las relaciones de asociación, dependencia, generalización y realización.
  • La relación de composición también se puede utilizar para representar que el objeto puede ser parte de un solo compuesto a la vez.
  • Asociación se utiliza para describir que un objeto puede asociarse con otro objeto.
  • La dependencia denota que los objetos pueden depender unos de otros.
  • Una realización es una relación significativa entre clasificadores.
  • La generalización también se denomina relación entre padres e hijos.