Hola y bienvenidos a una nueva lección. En esta ocasión hablaremos de asociaciones en los diagramas de clases. Al final de este video podrás leer diagramas de clases que contengan asociaciones simples, vas a poder entender su nombre, su cardinalidad, el manejo de múltiples asociaciones entre dos clases y cómo nos ayudan a modelar problemas de un nivel de complejidad mayor a los que hemos visto anteriormente. Las asociaciones representan las relaciones entre las diferentes clases. Una asociación relacionada a dos clases. En UML, una asociación se representa con una línea. Por ejemplo, en este diagrama tenemos una clase llamada "Empresa" que modela una organización empresarial del mundo real. Queremos también modelar a los empleados y, en particular, al empleado que la dirige. Y, para esto, definimos una clase que representa a los empleados y establecemos una asociación entre las dos clases. Entonces modelemos cómo una empresa y un empleado van a estar relacionados trazando una línea entre ambas clases. Hasta el momento sólo hemos representado que existe una relación entre empresa y empleado, pero todavía no hemos descrito mucho al respecto de dicha relación. Es para ello que necesitamos darle un nombre y un nombre explícito que defina de qué se trata la relación. A nuestra relación entre empresa y empleado la bautizaremos "dirigida Por" para representar que la empresa es dirigida por el director, por el empleado director. También podemos darle un nombre para ser leído en el sentido contrario diciendo que "Empleado" dirige a "Empresa". Notemos, entonces, que el nombre va cerca de la relación en un lugar relativamente central y usamos este triángulo relleno para indicar hacia qué lado leemos el nombre para que tenga sentido. En el primer caso, vamos de "Empresa" a "Empleado", una empresa es dirigida por un empleado. En el segundo, leemos de "Empleado" a "Empresa", un empleado dirige a una empresa. Y sí, de nuevo los nombres comienzan con su primera letra minúscula usando "Camel case", no dejamos espacios, no usamos guiones, simplemente pegamos las palabras y cada nueva palabra tendrá su primera letra inicial en mayúscula. Hablemos ahora de la cardinalidad. Ya que describimos qué papel juega cada clase en la relación, es el momento de añadir mayor precisión, determinar cuántos elementos pueden participar en la relación en un determinado momento. De nuestro ejemplo, podemos preguntarnos cosas como, si queremos modelar que todas las empresas tienen al menos un director, ¿cómo lo hacemos? Queremos modelar solamente que algunos empleados son directores de empresas, que una empresa es dirigida por una junta de empleados o, incluso, que hay un empleado que dirige a un curso o un consorcio de empresas. Para representar la cardinalidad, nuevamente, en cada extremo tenemos que añadir una expresión. La cardinalidad más básica es uno. Hay exactamente un elemento en este rol y, cuando no se indica explícitamente en la cardinalidad, asumimos que su valor es uno. Por ejemplo, una empresa tiene un único empleado que la dirige. La siguiente cardinalidad es cero a uno. Esto indica que el número de elementos de esta relación puede ser o cero o uno. Por ejemplo, una empresa puede tener o no tener un empleado que la dirige y, si lo tiene, solamente es uno. Luego, la cardinalidad "muchos" es expresada con un asterisco. Esto representa que puede haber varios elementos o ninguno y la leemos como "cero a muchos". Una empresa, por ejemplo, puede no tener un empleado que la dirige o tener una junta de empleados que la van a dirigir. Finalmente, está la cardinalidad "uno a muchos" expresada como "uno dos puntos asterisco" y esta indica que debe haber al menos un objeto en la relación. La empresa tiene una junta que la dirige, que siempre debe tener, al menos, un empleado. Volviendo a nuestro ejemplo, debemos precisar la cardinalidad en ambos extremos. Un empleado no necesariamente dirige una empresa. Si decidimos que, máximo, dirige una, la cardinalidad será cero a uno. Si decidimos que puede o no dirigir ninguna empresa o un consorcio de empresas, la cardinalidad será cero a muchos. Antes de terminar, vale la pena que aclaremos un asunto muy importante. Entre dos clases pueden existir más de una asociación para modelar diferentes relaciones. Vayamos a nuestro ejemplo. Tenemos una asociación entre empresa y empleado para modelar que una empresa es dirigida por un empleado. Podemos ahora agregar una segunda asociación y modelar una relación algo diferente, un empleado trabaja en una empresa. Eligiendo una cardinalidad de uno para el lado de la empresa y una de cero a muchos para el lado del empleado estamos, entonces, representando a través de nuestra nueva asociación, que varios empleados trabajan en una y solo una empresa y en una empresa trabajan muchos empleados o incluso ninguno. Esto es una relación adicional a la anterior en donde una empresa podía ser dirigida por una junta de empleados. Con esto termina este video sobre asociaciones en los diagramas de clase, pero todavía tenemos bastante tema que abarcar. Quédate para nuestro próximo video en donde explicaremos cómo usar roles y navegabilidad, y vamos a modelar más precisamente nuestra abstracción y cómo se implementa esto en los lenguajes orientados a objetos.