/Desenvolvimento

voltar
/Desenvolvimento

UML: composição x agregação

Ricardo Mendes em Desenvolvimento UML

Quem está iniciando com os diagramas de classe da UML geralmente sente uma grande dificuldade em entender a diferença das formas de associação entre objetos de uma classe “Agregação” e de uma classe “Composição”. Esse é sempre um assunto polêmico, pois, dependendo das regras de negócio, o mesmo relacionamento que acontece através de uma agregação, em determinado sistema, pode, em outro, se dar por uma composição.

Nosso objetivo aqui é tentar ajudar a esclarecer a diferença dessas formas utilizando um exemplo prático.

As associações representam o equivalente mais próximo dos relacionamentos utilizados no modelo Entidade-Relacionamento, ou seja, seu objetivo é definir a maneira como as classes estão unidas e se relacionam entre si, compartilhando informações – (Guedes, 2006, p. 72)

Vejamos dois relacionamentos para entender melhor as nomenclaturas:

Figura 01 – Todo-Parte

Os relacionamentos Todo-Parte acima são representado por:

  • Pedido (Objeto-Todo) e ItemPedido (Objeto-Parte)
  • Time (Objeto-Todo) e Atleta (Objeto-Parte)

Na Agregação, a existência do Objeto-Parte faz sentido, mesmo não existindo o Objeto-Todo. Vejamos o exemplo Time-Atleta:

Figura 02 – Agregação

Um time é formado por atletas, ou seja, os atletas são parte integrante de um time, mas os atletas existem independentemente de um time existir. Nesse caso, chamamos esse relacionamento de AGREGAÇÃO.

Já a Composição é uma agregação mais forte; nela, a existência do Objeto-Parte NÃO faz sentido se o Objeto-Todo não existir. Vejamos o exemplo Pedido-ItemPedido:

Figura 03 – Composição

Nesse caso, um pedido é composto por um ou vários itens, mas um produto NÃO é item de um pedido se não existe pedido. Assim, chamamos esse relacionamento de COMPOSIÇÃO.

Conclusão

Essas são as formas de se representar o relacionamento entre os objetos das classes do tipo part-of, em que a agregação é representada por um diamante branco, sempre do lado do “Objeto-Todo”, e a composição é representada por um diamante negro, também desenhado do lado do “Objeto-Todo”.

  • Bibliografia:

Guedes, G. T. (2006). UML – Uma abordagem prática 2° Edição. In: G. T. Guedes, UML – Uma abordagem prática 2° Edição (p. 72). Novatec.

Mensagem do anunciante:

A Mundipagg lança a inovadora API em REST, garantindo flexibilidade e simplicidade na integração. Conheça as nossas funcionalidades.

Ricardo Mendes em Desenvolvimento UML

Comentários

Dê Sua Opinião

O seu endereço de email não será publicado Campos obrigatórios são marcados *


8 × oito =

    1. Rodrigo, obrigado pelo comentário.
      Já estou escrevendo um artigo sobre isso, onde falarei também sobre implementação de herança, classes abstratas e interface, tratando suas diferenças.

  1. Muito bom o artigo, eu dou aula de UML na faculdade e semana passada tava passando agregação e composição. Deverias ver os exemplos que dei hehehehhe

  2. Estou começando a estudar UML por conta própria agora e ainda não havia visto os conceitos de AGREGAÇÃO e COMPOSIÇÃO, mas este exemplo foi perfeito! Bem simples e didático!

  3. Muito bom o artigo…. tbm sou estudante de eng. eletrica pela UFRN… meu professor explicou e não entendi nada…bom exemplo, bem simples e de fácil entendimento.

  4. Muita boa a explicação…tava precisando entender direito isso de agregação e composição com exemplos bem práticos… posso terminar os últimos capítulos do meu tcc agora…parabéns pela explicação.

  5. Excelente texto!!
    Esclareceu todas as minhas dúvidas a respeito da diferença entre Composição / Agregação em 5 minutos!
    Simples e objetivo!
    Muito Obrigado! :D

  6. Olá,

    Também quero agradecer pelo seu post.

    As definições são claras ao estudar, mas o momento da aplicação gera dúvidas, isso de “quem sobrevive sem quem”.

    Muito didático o seu post, matou as dúvidas.

    Abraço.

  7. Nem sempre uma ferramenta è boa pelo seu preço mais sim pelo seu beneficio , e com bom plenejamento e gerênciamento do projeto contribuem para um bom desenvolvimento

leia mais
Este projeto é mantido e patrocinado pelas empresas:
Hospedado por: