Questão nº 32
Questão de Tecnologia da Informação · CESGRANRIO CAIXA 1/2021/NM (nº 32)
Uma universidade deseja implementar um sistema de controle de acesso às salas do seu campus. Esse sistema deve levar em consideração o seguinte cenário:
• Apenas três categorias de pessoas terão acesso às salas: professores, estudantes e funcionários;
• Alguns funcionários podem ser alunos da universidade;
• Alguns alunos podem ser professores da universidade.
A partir desse cenário, deve ser elaborado um modelo conceitual de classe UML, que contenha uma generalização.
Qual generalização é compatível com o cenário acima?
- A

- B

- C
(alternativa correta) - D

- E

Resposta comentada
Gabarito Alternativa C
Generalização em UML é quando uma classe filha herda características de uma classe pai. O cenário exige que uma pessoa possa ter múltiplos papéis (ser funcionário e aluno, ou aluno e professor), o que só é possível com uma generalização onde a classe base Pessoa se divide em Professor, Estudante e Funcionário, permitindo que um objeto pertença a mais de uma subclasse ao mesmo tempo.
- (A) Incorreta: Cria uma hierarquia rígida onde Funcionário é subclasse de Estudante, impedindo que um funcionário que não seja aluno exista, e não permite que um professor seja aluno.
- (B) Incorreta: Coloca Professor e Estudante como subclasses de Funcionário, o que é semanticamente errado (professor não é um tipo de funcionário administrativo) e não cobre o caso de aluno que é professor.
- (C) Correta: A generalização correta é ter Pessoa como superclasse, com Professor, Estudante e Funcionário como subclasses independentes. Isso permite que uma mesma instância de Pessoa seja, ao mesmo tempo, Estudante e Funcionário (ou Professor e Estudante), exatamente como o cenário exige.
- (D) Incorreta: Usa Funcionário como superclasse de Professor e Estudante, o que é incorreto, pois nem todo professor é funcionário administrativo e nem todo estudante é funcionário, além de não permitir que um funcionário seja aluno (a relação é unilateral).
- (E) Incorreta: Cria uma generalização onde Pessoa é subclasse de Professor, Estudante e Funcionário (invertida), o que é logicamente impossível — uma pessoa não é um tipo de professor, e sim o contrário.
Armadilha da banca (no distrator mais tentador, a letra D): A pegadinha é inverter a hierarquia. Muitos alunos veem que "funcionários podem ser alunos" e pensam que Funcionário deve ser a superclasse de Estudante. Mas isso é um erro de modelagem: a relação "pode ser" indica múltipla herança (uma pessoa tem dois papéis), não uma subclasse. A generalização correta parte de Pessoa (o conceito mais genérico) para as três categorias específicas, permitindo que um objeto acumule papéis. A banca testa se você entende que a superclasse é sempre o conceito mais abstrato, não o mais específico.
Fonte: CESGRANRIO CAIXA 1/2021/NM Técnico Bancário Novo - Tecnologia da Informação. Reproduzida para fins de estudo.