martes, 6 de mayo de 2014

UML Capítulo 7: Vista Estática II

¡Hola de nuevo internauta!,

      Seguimos en este mar virtual de información con una nueva entrada sobre la vista estática, ¿y qué tenemos hoy en el menú?. ¡Relaciones!. ¡Pero no os asustéis ni pongáis caras raras!, no son ese tipo de relación que tanto le gusta al periodismo rosa si no de esas que le gustan a UML para indicar cómo de bien se llevan los clasificadores. Así que sin más demora, ¡empecemos!.


2. Relaciones

Permiten interrelacionar dos o más clases o , dicho de otro modo, cómo se comunican entre sí las clases. Hay varios tipos de relaciones que vienen indicadas en la tabla siguiente:

Tipos de Relaciones

Asociación

Describe conexiones discretas entre instancias del sistema como los objetos en la que se permiten repeticiones informándonos de esta manera sobre las relaciones de los objetos del sistema. Hay que tener en cuenta los siguientes puntos sobre la asociación:
  • Un sólo objeto puede autoasociarse (muy útil para representar las paginaciones).
  • Cada asociación con una clase se denomina extremo de la asociación y pueden tener nombres de rol y visibilidad. Su propiedad más importante es la multiplicidad.
  • Existen los siguientes tipos de asociación:
    • Clase de asociación: Son aquellas que poseen atributos teniendo doble naturaleza, es asociación y clase a la vez. Un ejemplo de ello son las relaciones de muchos a muchos que necesitan una (o clase) intermedia para poder realizarse.
    • Asociación calificada: Es un valor que selecciona un único objeto de un conjunto de objetos a través de una asociación. Ejemplos de ello son tablas de búsquedas y vectores.
    Notación asociación
  • Su significado en los distintos niveles de significación son:
    • Análisis: Son las relaciones lógicas entre objetos. En esta fase pueden indicarse restricciones, propiedades como la ordenación y la visibilidad.
    • Diseño: Indican las decisiones de diseño sobre la estructura de datos así como la separación entre las responsabilidades.
    • Implementación: Se pueden implementar como punteros (ficheros) o tablas de objetos (bases de datos).
  • Existen diferentes tipos de asociación:
    • Agregación y composición: Ambas representa una relación todo-parte aunque la composición es más fuerte que la agregación. Veámoslo:
      • Agregación: Los objetos relacionados no tienen ningún tipo de interdependencia para existir.
      • Composición: La existencia del objeto relacionado depende del que lo relaciona para existir.

      Veámoslo con un ejemplo:
      Notación agregación y composición
      Fuente: Universidad de Chile
      Lo que se nos indica en este gráfico es que si más adelante se eliminase Almacén habría también que eliminar Cuentas mientras que Cliente no se vería afectado. Para que lo entendáis mejor imaginaros que son tablas, en una de sus relaciones tendríamos la eliminación en cascada y en la otra no.

  • Enlaces: Es una lista ordenada de referencias a objetos, cada una de las cuales debe ser una instancia de la clase correspondiente en la asociación o una instancia de un descendiente de la clase. Conceptualmente es distinta de las clases que relaciona.
  • Bidireccionalidad: Antes de explicar que es la bidireccionalidad tenemos que saber que los extremos de una asociación pueden distinguirse uno de otro por lo que podemos relacionar objetos de la misma clase aunque no son intercambiables. Su significado es que cualquier relación lógica tiene una inversa.
Y hasta aquí la entrada de hoy. En sucesivas entradas iremos desgranando el resto de relaciones que hay, ya que, como indico siempre, no quiero escribir tediosas entradas. Prefiero explicar los conceptos de una manera más "digestiva" para la mente.

¡Gracias por leerme!. 

No hay comentarios:

Publicar un comentario