lunes, 8 de febrero de 2010

UML diseño de agregación vs composición

Esto, es una parte muy sencilla, pero al mismo tiempo básica para el diseño de un diagrama de clases UML, la forma de representar que un objeto tiene como contenido a otro, esto quiere decir que un objeto de un tipo, puede contener a otro, en un sentido abstracto de posesión, es decir, por ejemplo un objeto de tipo, por ejemplo, ciudad tiene una lista de objetos de tipo aereopuerto, esto quiere decir, que una ciudad, tiene un número de aereopuertos, destacar, que la cardinalidad del extremo que lleva el rombo, es siempre uno, ahi va un ejemplo:



En la misma linea, la composición, es una relación más fuerte de los objetos, asi como la agregación, es el hecho de que un objeto posea a otro, la composición es cuando la relación entre ambos objetos es tal, que el agregado es una parte importante del agregador, de tal forma que el primero no tiene sentido suelto, y el segundo, necesita definir al primero para ampliar su significado, ya se que esto suena un tanto etereo, pero con un ejemplo se ve mejor:



El avión tiene sentido por si solo, pero esta claro que esta compuesto de 2 alas, esta relación es de mucha fuerza, mucho más que el caso de los aereopuertos, y esta claro, que un avión siempre tendrá sus dos alas, y estas siempre serán del mismo avión. El caso de los aereopuertos, es claramente más sueve la relación.

Entradas relacionadas de UML en este blog:

Ingeniería inversa con eclipse Java2UML

Clase asociativa

45 comentarios:

  1. Muy buena explicacion, tenia una confucion con estos conceptos.
    muchas gracias

    ResponderEliminar
  2. Me alegro de que te haya servido

    ResponderEliminar
  3. Muy claro el resumen. Mas claro no pudo haber sido. Gracias : )

    ResponderEliminar
  4. Me alegro :) gracias por comentarlo!

    ResponderEliminar
  5. Muy bueno el resumen , seria bueno que añadas un poco mas como por ejemplo herencias , atributos , roles , navegabilidad , etc que a la mayoria es poco complicado comprender

    Salu2s

    ResponderEliminar
  6. Lo tendre en cuenta para poner otro post al respecto, muchas gracias! me alegro de que te haya parecido muy bueno :)!

    ResponderEliminar
  7. [...] UML diseño de agregación vs composición febrero, 2010 6 comentários 2 [...]

    ResponderEliminar
  8. Muchas gracias, muy buena y practica composicion.

    ResponderEliminar
  9. Gracias por la explicacion, me aclaraste este topico...

    ResponderEliminar
  10. Gracias a ti por comentar, me alegro de que te haya aclarado el tema :)

    ResponderEliminar
  11. Muchas gracias a ti por comentar y por el contenido del comentario :)

    ResponderEliminar
  12. Me sumo, buena explicacion. Tenía una buena profesora, pero tengo que reconocer que acá se entendió mucho más. Estoy tomando vodka para celebrar esta explicación, salud

    ResponderEliminar
  13. Muchas gracias, me alegro y me halaga, me uno al brindis, pero con ron, que el vodka...

    ResponderEliminar
  14. Me parece bien la explicación, lo complicado de este tipo de abstracción es definir cuando es una simple asociación o una asociación de agregacion. En el ejemplo de Ciudad y Aeropuerto podria ser una simple asociación en un contexto distinto. Ahora bien la dificultad de estos conceptos de abstracción utilizados en el diseño, está en definir las implicancias en la construcción misma.

    ResponderEliminar
  15. Toda la razón, todo depende del contexto y los mismos objetos en contextos diferentes, pueden tener relaciones que se interpretan de forma opuesta

    ResponderEliminar
  16. EXCELENTE explicacion, más claro imposible

    ResponderEliminar
  17. muchas gracias por pensarlo y molestarte en escribirlo. :)

    ResponderEliminar
  18. muchas gracias por la aclaracion.

    ResponderEliminar
  19. Es un ejemplo sencillo, pero bastante claro.

    Gracias

    ResponderEliminar
  20. Que ejemplo TAN mal elejido! si se destruye la ciudad (Hiroshima) se queda sin aerorpuertos. No puede existir un aeropuerto sin una ciudad.. O acaso son moviles ?

    ResponderEliminar
  21. Si es claro y sencillo, dos veces bueno ;) gracias por comentar

    ResponderEliminar
  22. Apunto tu comentario, preparare un anexo diciendo que el ejemplo no es aplicable en sociedades post-apocalípticas :)

    ResponderEliminar
  23. Excelente, ojala todos hicieramos aportes de este tipo.

    ResponderEliminar
  24. Graciaaaaaaaaaaaaaas en 2 minutos me enseñaste lo que no aprendi en dos meses jaja
    te agradezco!!!

    ResponderEliminar
  25. Me alegro de haber servido de ayuda en aclarar algo. Mucha gracias por el comentario!

    ResponderEliminar
  26. Gracias por comentar!

    ResponderEliminar
  27. [...] del éxito de esta entrada sobre UML, siguiendo con ese tema, tenemos otro tema de [...]

    ResponderEliminar
  28. [...] y analisis, General, Programación, Tecnologia, UML Deja un comentario Después del éxito de esta entrada sobre UML, siguiendo con ese tema, tenemos otro tema de [...]

    ResponderEliminar
  29. misael tantalean hernandez17 de mayo de 2012, 18:29

    Que bien esta bien claro el resumen pero es mejor agregar un poco sobre la herencia y tambien la asociacion pero detoodos modos gracias

    ResponderEliminar
  30. apunto, para hacer alguna netrada sobre herencia en UML y como representarla.

    ResponderEliminar
  31. Excelente Resumen Gracias!!

    ResponderEliminar
  32. Bien me alegro, gracias por la visita.

    ResponderEliminar
  33. muy claro muchas gracias

    ResponderEliminar
  34. Gracias por el comentario

    ResponderEliminar
  35. Gracuas maquina, tu aclaracion me deja mas claro estos conceptos, TE DEBO EL EXAMEN

    ResponderEliminar
  36. De nada, ahora a aprobar el examen!

    ResponderEliminar