Questão de Engenharia de Software — UML — VUNESP 2023
- Código
- vu196960
- Banca
- VUNESP
- Órgão
- CIJUN
- Ano
- 2023
- Cargo
- Ana ( )
- Adiscreto e contínuo.
- Bdependente e independente.
- Coculto e público.
- Dde pacote e compacto.
- Eprivado e protegido.
GabaritoE — privado e protegido.
Gabarito: letra E. A UML 2.0 define quatro níveis de visibilidade para atributos e operações de uma classe: público, privado, protegido e pacote. A alternativa correta apresenta dois desses níveis: privado e protegido. A questão cobra o conhecimento da notação UML para visibilidade, que é um conceito fundamental da modelagem orientada a objetos.
A visibilidade em UML determina o grau de acesso aos atributos e operações de uma classe por outras classes. É um conceito herdado da programação orientada a objetos, onde o encapsulamento é um princípio chave. A UML padroniza quatro níveis de visibilidade, cada um com um símbolo específico que antecede o nome do atributo ou operação no diagrama de classes. Esses níveis são:
Público (+): o membro é acessível por qualquer outra classe. É o nível mais permissivo.
Privado (-): o membro é acessível apenas pela própria classe. É o nível mais restritivo.
Protegido (#): o membro é acessível pela própria classe e por suas subclasses (herança).
Pacote (~): o membro é acessível por todas as classes que pertencem ao mesmo pacote.
A escolha do nível de visibilidade é uma decisão de design importante, pois afeta o encapsulamento e o acoplamento entre classes. Usar o nível privado para atributos é uma boa prática, pois protege o estado interno do objeto. O nível protegido é útil quando se deseja que subclasses possam acessar diretamente membros da superclasse. O nível pacote é útil para agrupar classes que colaboram entre si.
A banca explora a confusão entre os níveis de visibilidade da UML e outros conceitos de modelagem, como tipos de dados (discreto/contínuo), relacionamentos (dependência/independência) ou modificadores de acesso de outras linguagens. É importante memorizar os quatro níveis e seus símbolos para responder corretamente a questões desse tipo.
Guarde a lista completa dos quatro níveis de visibilidade: público, privado, protegido e pacote. É exatamente essa lista que separa a alternativa correta das demais.
Critério | Público (+) | Privado (-) | Protegido (#) | Pacote (~) |
|---|---|---|---|---|
Acesso pela própria classe | ✅ Sim | ✅ Sim | ✅ Sim | ✅ Sim |
Acesso por subclasses (herança) | ✅ Sim | ❌ Não | ✅ Sim | ❌ Não |
Acesso por classes do mesmo pacote | ✅ Sim | ❌ Não | ❌ Não | ✅ Sim |
Acesso por qualquer classe (global) | ✅ Sim | ❌ Não | ❌ Não | ❌ Não |
Nível de restrição | Mínimo | Máximo | Intermediário | Intermediário |
"Discreto e contínuo" são tipos de dados, não níveis de visibilidade. Na UML, atributos podem ter tipos como inteiro, string, booleano, mas isso não se relaciona com a visibilidade.
"Dependente e independente" não são níveis de visibilidade. Esses termos podem se referir a tipos de relacionamento entre classes, como dependência, mas não definem o acesso a membros de uma classe.
"Oculto e público" — embora "público" seja um nível de visibilidade, "oculto" não é um termo padrão da UML. O nível que se aproxima de "oculto" seria "privado", mas a alternativa não usa a nomenclatura correta.
"De pacote e compacto" — "pacote" é um nível de visibilidade, mas "compacto" não é. A alternativa mistura um termo correto com um termo que não existe na UML.
"Privado e protegido" são dois dos quatro níveis de visibilidade definidos pela UML. O nível privado (-) restringe o acesso à própria classe, enquanto o nível protegido (#) permite acesso à classe e suas subclasses. A alternativa apresenta corretamente dois níveis válidos.
Para memorizar os quatro níveis de visibilidade da UML, associe cada símbolo ao seu significado: + (público), - (privado), # (protegido) e ~ (pacote). Em questões de prova, elimine alternativas que usem termos que não sejam esses quatro.
Gabarito: letra E
Link permanente: /questoes/vu196960