Associação UML vs. Agregação vs. Composição [EXEMPLO]

Os relacionamentos no diagrama UML são usados ​​para representar uma conexão entre várias coisas. Um relacionamento é uma conexão entre coisas como coisas estruturais, comportamentais ou de agrupamento na linguagem de modelagem unificada.

A seguir estão os diferentes tipos de relacionamentos padrão em UML,

  • Associação
  • Dependência
  • Generalização
  • Realização

Além destes, a UML permite o uso de agregação e um relacionamento de composição.

Associação UML

É um relacionamento estrutural que representa objetos que podem ser conectados ou associados a outro objeto dentro do sistema. As seguintes restrições podem ser aplicadas ao relacionamento de Associação UML.

  • {implícito} – As restrições implícitas especificam que a relação não é manifesta; é baseado em um conceito.
  • {pedido} – As restrições ordenadas especificam que o conjunto de objetos em uma extremidade de uma associação está de uma maneira específica.
  • {mutável} – A restrição mutável especifica que a conexão entre vários objetos no sistema pode ser adicionada, removida e modificada conforme o requisito.
  • {addOnly} – Especifica que as novas conexões podem ser adicionadas a partir de um objeto que está situado no outro extremo de uma associação.
  • {congeladas} – Especifica que quando um link é inserido entre dois objetos, ele não pode ser modificado enquanto a restrição congelada estiver ativa no link ou conexão especificado.

Também podemos criar uma classe que possua propriedades de associação UML; é chamada de classe de associação.

Associação Reflexiva

A associação reflexiva é um subtipo de relacionamento de associação em UML. Numa associação reflexiva, as instâncias da mesma classe podem estar relacionadas entre si. Uma instância de uma classe também é chamada de objeto.

A associação reflexiva afirma que um link ou conexão pode estar presente nos objetos da mesma classe.

Exemplo:

Consideremos um exemplo de fruta de classe.

A classe fruta possui duas instâncias, como manga e maçã. A associação reflexiva afirma que uma ligação entre manga e maçã pode estar presente por serem instâncias da mesma classe, como a fruta.

Associação Reflexiva
Associação Reflexiva

Associação Dirigida

Como o nome sugere, a associação dirigida está relacionada à direção do fluxo dentro das classes de associação.

Numa associação dirigida, o fluxo é direcionado. A associação de uma classe para outra classe flui apenas em uma única direção.

É indicado por uma linha sólida com uma ponta de seta.

Exemplo de associação UML:

Você pode dizer que existe um relacionamento de associação direcionada entre um servidor e um cliente.

Um servidor pode processar as solicitações de um cliente. Este fluxo é unidirecional, fluindo apenas do servidor para o cliente. Conseqüentemente, um relacionamento de associação direcionada pode estar presente nos servidores e clientes de um sistema.

Associação Dirigida

Associação Dirigida

Composição UML

Não é um padrão Relacionamento UML, mas ainda é usado em vários aplicativos.

A agregação composta é um subtipo de relação de agregação com características como:

  • É uma associação bidirecional entre os objetos.
  • É uma relação todo/parte.
  • Se um composto for excluído, todas as outras peças associadas a ele serão excluídas.

A agregação composta é descrita como uma associação binária decorada com um losango preto preenchido na extremidade do agregado (inteiro).

Composição UML

A pasta pode conter muitos arquivos, enquanto cada arquivo possui exatamente uma pasta pai. Se uma pasta for excluída, todos os arquivos contidos também serão removidos.

Em uma agregação composta, um objeto pode fazer parte de apenas um composto por vez.

Exemplo de composição UML:

Por exemplo, em um sistema de janelas, uma Moldura pertence exatamente a uma Janela. Numa agregação composta, todo o sistema é responsável pela disposição das suas partes, o que significa que o composto deve gerir a criação e destruição das suas partes.

Composição UML

Composição

Agregação UML

Uma agregação é um subtipo de relacionamento de associação em UML. Agregação e composição são ambos os tipos de relacionamento de associação na UML. Um relacionamento de agregação pode ser descrito em palavras simples como “um objeto de uma classe pode possuir ou acessar os objetos de outra classe”.

Num relacionamento de agregação, o objeto dependente permanece no escopo de um relacionamento mesmo quando o objeto de origem é destruído.

Exemplo de agregação UML:

Consideremos um exemplo de um carro e uma roda.

Um carro precisa de uma roda para funcionar corretamente, mas nem sempre uma roda precisa de um carro. Também pode ser usado com bicicletas, bicicletas ou quaisquer outros veículos, mas não com um carro específico. Aqui, o objeto roda é significativo mesmo sem o objeto carro. Esse tipo de relacionamento é chamado de relação de agregação UML.

Relação de agregação UML

Agregação

Associação vs. Agregação vs. Composição

Associação Agregação Composição
O relacionamento de associação é indicado por uma seta. O relacionamento de agregação é indicado usando uma linha reta com uma ponta de seta vazia em uma extremidade. A relação de composição é indicada por uma linha reta com uma ponta de seta preenchida em qualquer uma das extremidades.
A associação pode existir entre duas ou mais classes na UML. A agregação faz parte de um relacionamento de associação. A composição faz parte de uma relação de associação.
Pode haver associação um-um, um-muitos, muitos-um e muitos-muitos presentes entre as classes de associação. A agregação é considerada um tipo fraco de associação. A composição é considerada um tipo forte de associação.
Em um relacionamento de associação, um ou mais objetos podem ser associados entre si. Em um relacionamento de agregação, os objetos associados entre si podem permanecer no escopo de um sistema sem o outro. Em um relacionamento de composição, os objetos associados entre si não podem permanecer no escopo um sem o outro.
Os objetos estão interligados. Os objetos vinculados não dependem de outro objeto. Os objetos são altamente dependentes uns dos outros.
Na Associação UML, a exclusão de um elemento pode ou não afetar outro elemento associado. Na agregação UML, a exclusão de um elemento não afeta outro elemento associado. Na composição UML, a exclusão de um elemento afeta outro elemento associado.
Exemplo:
Um professor está associado a vários alunos.
Or
um professor fornece instruções aos alunos.
Exemplo:
Um carro precisa de uma roda, mas nem sempre exige a mesma roda. Um carro também pode funcionar adequadamente com outra roda.
Exemplo:
Um arquivo é colocado dentro da pasta. Se alguém excluir a pasta, o arquivo associado a essa pasta também será excluído.

Resumo

  • Um relacionamento é uma conexão entre coisas.
  • Associação, dependência, generalização e realização são vários relacionamentos fornecidos pela UML.
  • Além dos relacionamentos padrão, composição e agregação são usadas dentro da UML.
  • Agregação e composição são tipos de relacionamento de associação na UML.
  • A composição UML é um relacionamento bidirecional que também é chamado de relacionamento binário.

Confira nosso artigo sobre Melhores Ferramentas UML:- Clique aqui