Hola:
les quiero consultar sobre una situación particular de relaciones entre clases y cómo se representa en UML.
La situación es la siguiente:
- Tengo 3 clases A,B, y C.
- A tiene un atributo que es del tipo C, y tiene métodos que usan la clase C.
- A es una generalización de B (herencia; B es hija de A).
¿Cuál sería la representación estática de esta situación en UML?
Se me ocurrieron 2:
1.
2.
Tiendo a creer que la 2da está mal y que la relación B-C no debería explicitarse ya que el atributo "unC" en B heredado de A ya está representado por las flecha de composición y asociación en la relación A-C.
Desde ya muchas gracias,
Santiago.
Hola Santiago,
La primera opción es mejor justamente por lo que mencionás al final.
También sería válido que no explicites el atributo unC en la clase A (ni en ningún lado) dado que la relación de composición ya define eso. Esto último que menciono iría en línea con el texto de Martin Fowler.
Saludos,
Tomás
Hola de nuevo:
estoy terminando con los diagramas UML del TP1J, y como tengo más clases que en el de Smalltalk, se me hizo un poco una telaraña de relaciones de asociación.
Se que no suele ser buena idea comunicar absolutamente todo como dice Fowler en su artículo, por lo que quería consultar si es buena práctica obviar alguna relación de asociación entre dos clases cuando ya está aclarada de forma implícita de alguna forma.
Por ejemplo, tengo varios casos donde una clase A tiene un método al que se le pasa por argumento un objeto de la clase B. Si yo ya muestro ese método con su firma en el diagrama de clases, entiendo que el que lee el diagrama se da cuenta que A tiene una relación de asociación con B.
¿Es correcto hacer este tipo de suposiciones? Capaz para mi es obvio porque soy yo el que desarrollé el programa, pero para el que lo lee no lo es.
Desde ya muchas gracias,
Santiago.