UML - Relações

(FCC) 1. Considere a versão mais atual da UML e o texto abaixo.
Pretende-se criar um controle de processos jurídicos. As situações nas quais estes possam vir a ser enquadrados, bem como os eventos que mudam essas situações devem ser diagramados. Os processos possuem identidades únicas e devem ser relacionados aos interessados, sendo estes últimos subclassificados em processos de pessoas físicas ou jurídicas. Portanto, ao classificar os processos, o atributo "interessado" deve ser integrante dessa classe. O relacionamento criado entre interessados e processos é de
a) dependência
b) composição
c) classe de associação
d) generalização
e) agregação

A primeira coisa é identificar que partes do sistema podem ser consideradas classes únicas. O texto nos informa que "Os processos possuem identidades únicas", como cada processo possui algo que o identifique unicamennte ele é um forte candidato a ser uma classe (forma análoga ao DER de banco de dados). O texto no informa ainda que os processos "devem ser relacionados aos interessados", como processos são candidatos a classe e se relacionam com os processos e os relacionamentos só existem entre classes (lembrando que interface é uma classe, sendo que abstrata) então podem dizer com certeza que processos e interessados são classes. Além disso, o texto ainda nos informa que os interessados são "subclassificados em processos de pessoas físicas ou jurídicas". Então os interessados podem ser pessoas físicas ou jurídicas, no caso teremos duas classes especializadas de interessados. Ou seja, duas classes que herdam interessados. Baseado nisso podemos montar o seguinte diagrama de classes:
processo 0000 interessado
-------------------------
------------------pf-----pj
onde 0000 é a relação que a questão deseja saber, explicação no post seguinte.
---- foi colocado apenas para que as ligaçõesde pf e pj ficasse em baixo de interessado

Há 3 tipos de relacionamento entre as classes:
- Associação: São relacionamentos estruturais entre instâncias e especificam que objetos de uma classe estão ligados a objetos de outras classes.
A associação possui casos especiais:
a) composição: Relacionamento entre um elemento (o todo) e outros elementos (as partes) onde as parte só podem pertencer ao todo e são criadas e destruídas com ele.
b)agregação: indica que o relacionamento entre as classes do tipo “partes-todo”.
A palavra chave para identificar a agregação seria: “consiste de” , “contêm”, “é parte de”.
- Generalização: Relacionamento entre um elemento mais geral e um mais específico. Onde o elemento mais específico herda as propriedades e métodos do elemento mais geral. A relação de generalização também é conhecida como herança no modelo a objetos. Como a relação de dependência, ela existe só entre as classes. Um objeto particular não é um caso geral de um outro objeto, só conceitos (classes no modelo a objetos) são generalização de outros conceitos
-Dependência: uma classe cliente é dependente de alguns serviços da classe fornecedora, mas não tem dependência estrutural interna com o fornecedor. Indica uma situação, na qual, uma mudança em um elemento (independente), pode afetar outro elemento da dependência (elemento dependente). Os clientes de uma classe podem ter tanto instâncias com subclasse, sendo útil definir interfaces diferentes para cada um desses tipos.
Como podemos ver a definição de dependência se enquadra na descrição das classes e como elas se relacinam no sistema.
2 comentários

Postagens mais visitadas deste blog

MANUAL DE REDAÇÃO DA PRESIDÊNCIA DA REPÚBLICA

Plural de substantivos compostos