Uma universidade deseja implementar um sistema de controle d...
"Apenas três categorias de pessoas terão acesso às salas: professores, estudantes e funcionários;"
- Precisamos de 1 pessoa e 3 categorias. Elimina A, B e E.
- O "Apenas" determina que minha generalização é completa, ou seja, não existe outra categoria além dessas 3. Elimina D
"Alguns funcionários podem ser alunos da universidade. Alguns alunos podem ser professores da universidade."
- Se pode ser mais de um ao mesmo tempo, então a generalização é sobreposta (overlapping), confirmando o gabarito
GAB C
::::::::::::Introdução::::::::::::
Vamos conversar sobre alguns conceitos que a questão nos trouxe.
Generalização/especialização
- Generalização: o que tem mais em comum. Exemplo: nas clases "homem" e "mulher" pode haver uma classe "pessoa" que reúne coisas em comum e a partir daí "homem" recebe o que precisa e a "mulher" também (isso poupa tempo, pois permite o reaproveitamento). O que o homem e a mulher recebem pode ser chamado de herança. Em suma: generalização é o mais geral, especialização o que herda do geral.
Só que aí tem um porém, na UML é possível definir o que vai receber. Por exemplo: pode-se receber exatamente o especificado ou pode-se mudar. As restrições entram nisso.
Restrições das heranças
- Imcompleta: a especialização é livre para herdar o que quiser;
- Completa: não pode ser outra coisa. Vamos supor em uma interpretação de um filme pode ser: ator ou atriz.
- Disjunta (disjunct): não tem herança multipla;
- Sobreposta (overplanning): há polimorfismo. Isso quer dizer que, se além de herdar, a classe se comportar de uma meneira diferente do que foi chamada, será considerado um método polimórfico. Exemplo: dentro da classe veículos que andam sobre rodas e sobre a água, posso ter um carro anfíbio (anfíbio é polimórfico).
::::::::::::Vamos analisar a questão::::::::::::
- Enunciado: "APENAS três categorias de pessoas terão acesso às salas". Comentário: ao analisar os desenhos, o que é hardado não tem, por assim dizer, liberdade para escolher o que quiser, por exemplo: não posso criar uma classe "Visitante" herdada de "pessoa". Logo, eliminamos as restrições "incompletas": E, D;
- Enunciado: "Alguns alunos podem ser professores da universidade". Comentário: veja que um aluno além de ser aluno, pode ser professor. Ele herda e faz outra coisa além de seguir sua "assinatura". Esse aluno tem muitas formas (bom bril). Logo, eliminamos as restrições "disjunct": D, E
- Fabiano, qual é o erro das letras A e B? Simples, lembra na primeira parte que dizemos "APENAS TRÊS CATEGORIAS". Se você fosse engenheiro de requisitos e fizesse o diagrama das letras A e B, estaria em mais lençóis, por quê? Está faltando uma classe. Na letra A, "Funcionário" e na letra B "Professor".
>>Em frente e enfrente>>
Pode sobrepor: Elimina C) e D)
{complete}: Elimina A) e B)
Gab. C
Sobreposição (overlapping): caso em que um objeto da superclasse pode pertencer simultaneamente a mais do que uma subclasse.
Disjuntiva (disjoint): superclasses podem se especializar em apenas uma subclasse.
Uma generalização está completa se já foram especificadas todas as sub classes até aquele ponto e está incompleta se existir a possibilidade de uma outra especialização, caso em que um objeto da superclasse pode não pertencer a nenhuma das subclasses
Não deveria ser Incomplete? A questão não diz que estes são os únicos tipos de pessoa do sistema, apenas diz que são os únicos que terão acesso às catracas. Acredito que caberia recurso.
Dito isso, por eliminação a única que dava pra marcar msm é a [C] pois ela é a única que tem 3 subclasses e é Overlapping.
Generalização em UML
A generalização é uma técnica fundamental em modelagem orientada a objetos usada no UML para expressar relacionamentos hierárquicos entre classes, onde uma classe mais geral (superclasse) é especializada em uma ou mais classes mais específicas (subclasses). Essa relação é frequentemente visualizada como uma seta que aponta da subclasse para a superclasse.
Completude e Disjução
Estes são dois atributos que definem mais detalhadamente a natureza das relações de generalização:
Completude:
Completa (Complete): Significa que todos os objetos da superclasse devem ser instâncias de pelo menos uma das subclasses. No contexto da questão, isto implica que toda "Pessoa" deve ser classificada como "Professor", "Aluno", ou "Funcionário".
Incompleta (Incomplete): Significa que há objetos da superclasse que podem não ser instâncias de nenhuma das subclasses listadas. Ou seja, pode haver pessoas que não se encaixam em nenhuma das categorias especificadas.
Disjunção:
Disjunta (Disjoint): Significa que as subclasses são mutuamente exclusivas; um objeto pode ser instância de apenas uma das subclasses. Por exemplo, uma pessoa não pode ser simultaneamente um professor e um funcionário.
Sobreposição (Overlapping): Significa que as subclasses podem se sobrepor; um objeto pode ser instância de mais de uma subclasse. No caso da questão, uma pessoa pode ser tanto um "Funcionário" quanto um "Aluno".
Aplicação na questão
No cenário descrito na questão, a universidade precisa categorizar todas as pessoas em pelo menos uma das três categorias (completa), e uma pessoa pode pertencer a mais de uma categoria ao mesmo tempo (sobreposição). Portanto, a relação de generalização deve ser configurada como completa e sobreposta.
- A categoria completa garante que não haja pessoas sem uma classificação definida dentro do sistema, assegurando que todos os acessos sejam controlados com base em uma das três categorias definidas.
- A categoria sobreposta permite a flexibilidade de que membros do corpo docente possam ser estudantes, funcionários possam ser alunos, ou mesmo professores, refletindo a realidade multifacetada dos papéis numa universidade.
A escolha correta do tipo de generalização é crucial para o sistema de controle de acesso funcionar conforme o necessário, garantindo que as permissões de acesso sejam atribuídas e gerenciadas de forma eficiente e precisa.
Portanto, o diagrama correto para representar este cenário é a letra C, que configura a generalização como complete (completa) e (overlapping) sobreposta, incluindo as classes para todas as categorias relevantes de pessoas na universidade (Professor, Aluno e Funcionário).