Associação UML vs Agregação vs Composição com 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 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 disso, a UML permite o uso de agregação e um relacionamento de composição.

Neste tutorial UML, você aprenderá:

Associação UML

É uma relação estrutural que representa que os objetos 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} - Restrições implícitas especificam que o relacionamento não é manifesto; é baseado em um conceito.
  • {pedido} - As restrições ordenadas especificam que o conjunto de objetos em uma extremidade de uma associação é de uma maneira específica.
  • {mutável} - Restrição mutável especifica que a conexão entre vários objetos no sistema pode ser adicionada, removida e modificada de acordo com o requisito.
  • {addOnly} - Especifica que as novas conexões podem ser adicionadas a partir de um objeto que está situado na outra extremidade de uma associação.
  • {congeladas} - Ele especifica que quando um link é inserido entre dois objetos, ele não pode ser modificado enquanto a restrição congelada está ativa no link fornecido ou em uma conexão.

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

Associação Reflexiva

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

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

Exemplo :

Vamos considerar um exemplo de fruta de classe.

A classe fruta tem duas instâncias, como manga e maçã. A associação reflexiva afirma que um vínculo entre manga e maçã pode estar presente, pois são instâncias da mesma classe, como fruta.

Associação Reflexiva

níveis de teste em teste de software

Associação dirigida

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

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

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

Exemplo de associação UML :

Você pode dizer que existe uma relação de associação direta entre um servidor e um cliente.

Um servidor pode processar as solicitações de um cliente. Esse fluxo é unidirecional, que flui apenas do servidor para o cliente. Portanto, um relacionamento de associação direcionado pode estar presente nos servidores e clientes de um sistema.

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 partes 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 (todo).

A pasta pode conter muitos arquivos, enquanto cada arquivo tem exatamente um pai de pasta. 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, um quadro pertence precisamente a uma janela. Em uma agregação composta, todo o sistema é responsável pela disposição de suas partes, o que significa que o composto deve gerenciar a criação e destruição de suas partes.

Composição

Agregação UML

Uma agregação é um subtipo de um relacionamento de associação em UML. Agregação e composição são os dois tipos de relacionamento de associação em 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.'

Em um 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 :

Vamos considerar um exemplo de um carro e uma roda.

Um carro precisa de uma roda para funcionar corretamente, mas uma roda nem sempre precisa de um carro. Também pode ser usado com a bicicleta, bicicleta ou qualquer outro veículo, mas não em 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.

Agregação

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

Associação Agregação Composição
A relação de associação é indicada por uma seta.O relacionamento de agregação é denotado por 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 em 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ções 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 um ao outro.Em um relacionamento de composição, os objetos associados entre si não podem permanecer no escopo sem o outro.
Os objetos estão ligados uns aos outros.Os objetos vinculados não dependem do outro objeto.Os objetos são altamente dependentes uns dos outros.
Na UML Association, 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. Ou um professor dá 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 de relacionamentos padrão, composição e agregação são usadas dentro da UML.
  • Agregação e composição são os dois tipos de relacionamento de associação em UML.
  • A composição UML é um relacionamento bidirecional que também é chamado de relacionamento binário.