No post anterior foram vistas as classes e suas associações e generalizações. Neste post daremos continuidade a introdução do diagrama de Classe da UML.

Entendendo o conceito de Multiplicidade

A multiplicidade nada mais é do que os limites inferior e superior da quantidade de objetos aos quais outro objeto está associado. Esses limites podem receber os valores: apenas um; zero ou muitos; um ou muitos; zero ou um; ou até um intervalo específico. Segue a tabela abaixo com a notação de cada limite no diagrama.

Na uml, as associações permitem representar essa informação nos extremos da sua linha.

Nos relacionamentos, os limites superiores (ou máximos) representam a sua multiplicidade. Assim, cabe as nomenclaturas para os casos a seguir:

 

► Um para Um

 

Nesse primeiro exemplo, uma pessoa pode possuir 0 ou no máximo 1 cpf e um Cpf pode ser tido por somente 1 pessoa, portanto nesse caso o relacionamento é de Um para Um (observando os máximos).

 

► Um para Muitos

 

Nesse segundo exemplo um cliente pode possuir zero ou muitas contas e a Conta pode pertencer a somente 1 pessoa, portanto nesse caso o relacionamento é de Um para Muitos (observe os máximos).

 

► Muitos para Muitos

 

Nesse último exemplo temos um Profissional que pode trabalhar em zero ou muitos projetos e um Projeto que pode ter zero ou muitos Profissionais trabalhando, portanto nesse caso o relacionamento é de Muitos para Muitos.

Compreendendo as Classes Associativas

Suponhamos a situação de contratação de um funcionário por uma empresa. Existiriam duas classes, a classe “Empresa” e a classe “Funcionário”. Entre essas classes existiria um relacionamento chamado, por exemplo, “contrata”. Suponhamos também que seja interessante para o sistema guardar as informações do dia da contratação e do salário acordado. Onde essas informações ficariam? No funcionário? Na empresa? O mais correto, no diagrama da UML, é que se crie uma classe para guardar as informações do relacionamento, da associação. Essa classe é chamada Classe Associativa ou classe de associação. Veja no exemplo abaixo.

As classes associativas no diagrama da UML são representadas igualmente as classes comuns, assim, podem se relacionar livremente com outras classes. O que as diferenciam é somente uma linha, que é tracejada, ligada ao relacionamento que a mesma representa.

Entendendo os relacionamentos Ternários

Associação ternária, quaternária ou n-ária é uma nomenclatura que se dá ao grau de uma associação. Quando binária (mais comum), a relação acontece entre somente duas classes. Quando ternária, acontece entre três. Quando quaternária entre quatro e quando n-ária (menos comum) de cinco em diante.

No exemplo acima, o relacionamento ternário está representando que o gerente pode trabalhar em muitos projetos, o projeto pode possuir muitos gerentes trabalhando, e cada gerente que trabalha em um projeto irá utilizar um computador.

Compreendendo o Auto relacionamento / Relacionamento Reflexivo

As associações reflexivas, também conhecidas como auto associações, relacionam objetos da mesma classe. Esse tipo de associação indica que um objeto de uma classe se associa a outros objetos dessa mesma classe (não a ele mesmo). Vejamos no exemplo que segue.

Nesse exemplo, não houve a necessidade de criar uma classe gerente, pois gerente também é um funcionário. Portanto, o auto relacionamento sugere que um funcionário (gerente) gerencia outros funcionários, ou seja, um relacionamento entre objetos da mesma classe.

No exemplo, os nomes gerente e gerenciados, que aparecem em cima da linha de associação, são denominados papéis. Eles servem justamente para informar quais são as funções dos objetos das classes associadas.

Conclusão

Nesse post vimos os conceitos de multiplicidade, classes associativas, associações ternárias e associações Reflexivas. Com isso damos fim aos conceitos base do Diagrama de Classes da UML.


1 comentário

Marco · 03/10/2019 às 11:35

Artigo muito bom!

Deixe um comentário

Avatar placeholder
Cupom 10% OFF
Experimente o criador de sites com inteligência artificial da Hostinger
SPACEPROGRAMMER10
Cupom 10% OFF
Experimente o criador de sites com inteligência artificial da Hostinger
SPACEPROGRAMMER10