/Desenvolvimento

voltar
/Desenvolvimento

UML: composição x agregação

Ricardo Mendes
em Desenvolvimento

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

é formado em Engenharia Elétrica e pós-graduado em Análise de Sistemas, ambos pelo Mackenzie. Trabalha desde 2007 como desenvolvedor web, com conhecimentos em PHP, MySQL, SQLServer, jQuery, CSS. Atualmente também desenvolve aplicativos Android.

40 comentários Comente também

    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

Dê Sua Opinião

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


− três = 5

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