Nos diagramas UML, os relacionamentos são usados para vincular diversas coisas. É uma conexão entre coisas estruturais, comportamentais ou de agrupamento. A seguir estão os relacionamentos UML padrão listados abaixo:
- Associação
- Dependência
- Generalização
- Realização
Associação
O relacionamento de associação é um relacionamento estrutural no qual diferentes objetos estão vinculados dentro do sistema. Ele exibe uma relação binária entre os objetos que representam uma atividade. Ele retrata a relação entre objetos, como um professor, que pode ser associado a vários professores.
É representada por uma linha entre as classes seguida de uma seta que navega na direção, e quando a seta está nos dois lados é chamada de associação bidirecional. Podemos especificar a multiplicidade de uma associação adicionando os adornos na linha que denotará a associação.
Exemplo:
1) Um único professor tem vários alunos.
2) Um único aluno pode associar-se a muitos professores.
A composição e agregação são dois subconjuntos de associação. Em ambos os casos, o objeto de uma classe pertence ao objeto de outra classe; a única diferença é que na composição, o filho não existe independentemente de seu pai, enquanto na agregação, o filho não depende de seu pai, ou seja, é autônomo. Uma agregação é uma forma especial de associação e a composição é uma forma especial de agregação.
Agregação
Agregação é um subconjunto de associação, é uma coleção de coisas diferentes. Representa um relacionamento. É mais específico do que uma associação. Descreve um relacionamento parte do todo ou parte do relacionamento. É uma associação binária, ou seja, envolve apenas duas classes. É um tipo de relacionamento em que a criança é independente dos pais.
Por exemplo:
Aqui estamos considerando um exemplo de carro e uma roda. Um carro não pode se mover sem roda. Mas a roda pode ser usada de forma independente com a bicicleta, scooter, bicicleta ou qualquer outro veículo. O objeto roda pode existir sem o objeto carro, o que prova ser um relacionamento de agregação.
Composição
A composição faz parte da agregação e retrata a relação todo-parte. Ele retrata a dependência entre um composto (pai) e suas partes (filhos), o que significa que se o composto for descartado, suas partes também serão excluídas. Existe entre objetos semelhantes.
amisha patel
Como você pode ver no exemplo abaixo, o relacionamento de associação de composição conecta a classe Person com a classe Brain, a classe Heart e a classe Legs. Se a pessoa for destruída, o cérebro, o coração e as pernas também serão descartados.
Associação vs. Agregação vs. Composição
Associação | Agregação | Composição |
---|---|---|
O relacionamento de associação é representado por uma seta. | O relacionamento de agregação é representado por uma linha reta com um losango vazio em uma extremidade. | A relação de composição é representada por uma linha reta com um losango preto em uma das extremidades. |
Na UML, pode existir entre duas ou mais classes. | Faz parte da relação de associação. | Faz parte do relacionamento de agregação. |
Ele incorpora associação um para um, um para muitos, muitos para um e muitos para muitos entre as classes. | Exibe uma espécie de relacionamento fraco. | Exibe um tipo forte de relacionamento. |
Ele pode associar mais um objeto. | Num relacionamento de agregação, os objetos associados existem de forma independente dentro do escopo do sistema. | Num relacionamento de composição, os objetos associados não podem existir independentemente dentro do escopo do sistema. |
Neste, os objetos são interligados. | Neste, os objetos vinculados são independentes uns dos outros. | Aqui os objetos vinculados dependem uns dos outros. |
Pode ou não afetar o outro elemento associado se um elemento for excluído. | A exclusão de um elemento no relacionamento de agregação não afeta outros elementos associados. | Afeta o outro elemento se um de seus elementos associados for excluído. |
Exemplo: Um tutor pode associar-se a vários alunos ou um aluno pode associar-se a vários professores. | Exemplo: Um carro precisa de uma roda para funcionar corretamente, mas pode não precisar da mesma roda. Também pode funcionar com outra roda. | Exemplo: Se um arquivo for colocado em uma pasta e essa pasta for excluída. O arquivo que reside nessa pasta também será excluído no momento da exclusão da pasta. |