1

Diferencia entre la Dependencia de la Asociación y la Dependencia de la Composición - UML - POO

En la diagramación UML 4 formas base de relación que son:

  • Asociación: Es una relación entre dos clases en la que una clase utiliza o depende de otra clase, ya que ambas clases interactúan entre sí y una clase requiere la otra para realizar su trabajo.

  • Herencia: Es una relación entre clases en la que una clase hereda las propiedades y comportamientos de otra clase. La herencia es una relación muy fuerte, ya que la clase hija depende fuertemente de la clase padre y adquiere todas sus propiedades y comportamientos.

  • Argumentación: Es una relación entre clases en la que una clase proporciona un argumento para otra clase. La argumentación se utiliza para proporcionar información a otras clases sobre cómo realizar su trabajo.

  • Composición: Es un tipo de asociación que representa una relación de contención en la que una clase contiene o tiene el control de otra clase por lo cual una clase depende de la otra. La clase que contiene a otra clase se conoce como clase compuesta, y la clase que es contenida se conoce como clase componente. La composición representa una relación fuerte y exclusiva entre dos clases, ya que la clase compuesta tiene un control completo sobre la clase componente.

Ahora bien, aunque hemos usado varias veces la idea de que una clase depende de otra, no debemos olvidar que no es lo mismo que una clase dependa su existencia de otra, a que una clase dependa su funcionamiento de otra.

Asociación

imaginemos que tenemos 2 clases una llamada sistema y otra llamada formulario, digamos que una de las operaciones de sistema es mostrarFormulario(), la cual tiene como parámetro la clase formulario, en UML se representa asi:

Asociación-Furmulario y Sistema.jpg

En este caso para que la clase sistema pueda ejecutar el método mostrarFormulario depende de la existencia del formulario. Por lo cual existe una Asociación entre Sistema y Formulario

Composición

Por el contrario en la Composición La existencia de una clase depende de si la otra también existe. Un ejemplo de esto se puede graficar con la clase Persona, Cerebro y Corazon (Las partes físicas el cuerpo pueden ser algo discutibles)

composition-in-uml.png

En este caso para que una persona exista depende de unos cuantos elementos mínimos para la vida.

CONCLUSIÓN

No es lo mismo la dependencia de funcionamiento a la dependencia de existir. Y todo va a depender de tu modelo y como lo estés pensando.

Escribe tu comentario
+ 2