jueves, 14 de noviembre de 2013

Uso de relaciones - Parte 1 de 3





En la hora anterior creamos un conjunto de clases que representaban el vocabulario del baloncesto. Aunque ello le da las bases para una mayor exploración de lo que es el baloncesto, tal vez haya sentido que algo le falta.

Ese “algo” es un sentido en el que las clases se relacionan entre sí. Si observa el modelo (vea la siguiente figura), verá que no se indica la manera en que un jugador se relaciona con un balón, ni cómo los jugadores conforman un equipo, ni la forma en que procede el juego. Es como si hubiera construido una lista de elementos, en lugar de una representación de un área del conocimiento. Es importante saber cómo se conectan las clases entre sí.



Ahora trazaremos las conexiones entre las clases y completaremos la representación.

En esta hora se tratarán los siguientes temas:

  • Asociaciones
  • Multiplicidad
  • Asociaciones calificadas
  • Asociaciones reflexivas
  • Herencia y generalización
  • Dependencias

Asociaciones

Cuando las clases se conectan entre sí de forma conceptual, esta conexión se conoce como asociación. El modelo inicial de baloncesto le dará algunos ejemplos. Examinemos uno de ellos: la asociación entre un jugador y un equipo. Podrá caracterizar tal asociación con la frase: “un jugador participa en un equipo”. Visualizará la asociación como una línea que conectará a ambas clases, con el nombre de la asociación (“participa en”) justo sobre la línea. Es útil indicar la dirección de la relación, y lo hará con un triángulo relleno que apunte en la dirección apropiada. La siguiente figura le muestra cómo visualizar la asociación “Participa en” entre el jugador y el equipo.

Una asociación entre un jugador y un equipo.


Cuando una clase se asocia con otra, cada una de ellas juega un papel dentro de tal asociación. Puede representar estos papeles en el diagrama escribíéndolos cerca de la línea que se encuentra junto a la clase que juega el papel correspondiente. En la asociación entre un jugador y un equipo, si el equipo es profesional, éste es un empleador y el jugador es un empleado. La siguiente figura le muestra cómo representar dichos papeles. 

Por lo general, en una asociación cada clase juega un papel. Puede representar tales papeles en el diagrama.

La asociación puede funcionar en dirección inversa: un equipo emplea a jugadores.
Podrá mostrar ambas asociaciones en el mismo diagrama con un triángulo relleno que indique la dirección de cada asociación, como en la siguiente figura.

Pueden aparecer dos asociaciones entre clases en el mismo diagrama.


Las asociaciones podrían ser más complejas que tan sólo una clase conectada a otra. Varias clases se pueden conectar a una. Si toma en cuenta los defensas, delanteros y central, asi como sus asociaciones con la clase Equipo, tendrá el diagrama de la siguiente figura.

Pueden asociarse diversas clases con una en particular.


Restricciones en las asociaciones

En ocasiones una asociación entre dos clases debe seguir cierta regla. Ésta se indica al establecer una restricción junto a la línea de asociación. Por ejemplo: un Cajero atiende a un Cliente, pero cada Cliente es atendido en el orden en que se encuentre en la formación. Puede capturar este modelo colocando la palabra ordenado entre llaves (para indicar la restricción) junto a la clase Cliente, como se ve en la siguiente figura.

Puede establecer una restricción en una asociación. En este caso, la asociación Atiende está restringida para que el Cajero atienda al Cliente en turno.

Otro tipo de restricción es la relación O (distinguida como {Or}) en una línea discontinua que conecte a dos líneas de asociación. La siguiente figura modela a un estudiante de educación media superior que elegirá entre un curso académico o uno comercial.

La relación O entre dos asociaciones en una restricción. 


Clases de asociación

Una asociación, al igual que una clase, puede contener atributos y operaciones. 
De hecho, cuando éste sea el caso, usted tendrá una clase de asociación.
Puede concebir a una clase de asociación de la misma forma en que lo haría con una clase estándar, y utilizará una línea discontinua para conectarla a la línea de asociación.
Una clase de asociación puede tener asociaciones con otras clases. La siguiente figura le muestra una clase de asociación para la asociación “Participa en” entre un jugador y un equipo. La clase de asociación, Contrato, se asocia con la clase DirectorGeneral.

Una clase de asociación modela los atributos y operaciones de una asociación. Se conecta a una asociación mediante una línea discontinua, y puede asociarse a otra clase.


Vínculos

Así como un objeto es una instancia de una clase, una asociación también cuenta con instancias. Si podemos imaginar a un jugador específico que juega para un equipo específico, la relación “Participa en” se conocerá como vínculo, y usted lo representará como una línea que conecta a dos objetos. Tal como tuvo que subrayar el nombre de un objeto, deberá subrayar el nombre de un vínculo, como en la siguiente figura.

Un vínculo es la instancia de una asociación. Conecta a los objetos en lugar de las clases. Deberá subrayar el nombre del vínculo, como se hace en el nombre de un objeto.


Espero haber ayudado en algo. Hasta la próxima oportunidad! 






No hay comentarios:

Publicar un comentario en la entrada