UML Domine el lenguaje de modelado más utilizado en la actualidad

3. COMENZARA MODELAR de la finalización del libro y un método que, a partir de estas dos fechas, obten­ ga la cantidad de días que llevó escribirlo. Hasta ahí llegamos sin inconvenientes, pero ¿a quién asociamos estos atributos y métodos? Claramente, no corresponden a la clase Autor. Tampoco son atributos o métodos que correspondan a la clase Libro per se. En realidad, lo que está ocurriendo es que son atributos y métodos de la asociación Escribe. Tanto ambos atributos como el método para contabilizar la cantidad de días de redacción tienen que ver, semánticamente, con acciones y comportamiento que se produce al escribir el libro, por lo que lo correcto es que sean, entonces, atributos y métodos de la asociación. Estos tipos especiales de aso­ ciación se denominan Asociaciones de Clase. Gráficamente, se ilustran como una clase normal, con la salvedad que se encuentran asociadas a una asociación. Autor nombre apellido dirección fechaDeNacimiento escribe Libro -Autor ; Autor -CantidadDePáginas : int -Editorial +DevoiverAutor() : Autor +Señalador() : int Escribe -fechaFin -fechaComienzo +calcularTiemposDeRedacción() F igu ra 26. Modelado de asociaciones cuyo comportam iento se refiere a una clase. En la figura anterior vemos modelada la asociación entre autores y libros, con sus atri­ butos y métodos. Salvo el hecho que está vinculada a una asociación, es como si se tra­ tara, en realidad, de una clase regular del sistema. Esto significa que podemos efectuar y especificar sobre ella todo aquello que podemos hacer sobre una ciase normal. La pregunta que es normal llegado este punto es la siguiente; si agregamos atribu­ tos y operaciones a una asociación incluso llevándola al nivel de comportarse como una clase regular de nuestro sistema, ¿no será en realidad una clase y estaremos modelando incorrectamente el modelo? La alternativa en este caso sería un modelo como el que se ve en la figura 27, donde hemos reemplazado la asociación Escribe por una clase Escribe, y hemos insertado una nueva relación ternaria entre ambas clases. Sin embargo, este modelo presenta varios problemas que no son menores: 94

RkJQdWJsaXNoZXIy MjI4NDcx