Questão de Engenharia de Software — UML — CESGRANRIO 2024
- Código
- cg057921
- Banca
- CESGRANRIO
- Órgão
- IPEA
- Ano
- 2024
- Cargo
- TPP ( )

- AA = B1 U B2 U C
- BB = A – C
- CB \cap C = \varnothing
- DC = C1 \cup C2
- EC1 = C – C2

GabaritoA — A = B1 U B2 U C
Gabarito: letra A. A equação A = B1 ∪ B2 ∪ C é sempre verdadeira porque, no diagrama de classes, a classe A é a superclasse (generalização) das classes B1, B2 e C, o que significa que todo elemento de A pertence a pelo menos uma dessas subclasses. Essa é a interpretação correta da relação de herança na UML, onde a classe filha é um subconjunto da classe pai.
A questão combina dois conhecimentos: a semântica do diagrama de classes UML (especificamente a generalização/herança) e a teoria de conjuntos. No diagrama, a seta com triângulo vazado apontando para a classe A indica que B1, B2 e C são subclasses de A. Isso estabelece que o conjunto de instâncias de A é a união dos conjuntos de instâncias de suas subclasses, desde que a generalização seja completa (toda instância da superclasse é instância de alguma subclasse) e disjunta (uma instância não pode pertencer a duas subclasses ao mesmo tempo). A UML permite generalizações parciais e sobrepostas, mas a questão afirma que a equação é "sempre verdadeira", o que só ocorre quando a generalização é completa e disjunta — a interpretação padrão para o modelo apresentado.
Vamos analisar cada alternativa com base nessa relação de conjuntos:
A) A = B1 ∪ B2 ∪ C: Correta, pois A é a união de todas as suas subclasses.
B) B = A – C: Incorreta, pois B não é definido no diagrama; além disso, A – C incluiria B1 e B2, não apenas B.
C) B ∩ C = ∅: Incorreta, pois B não é definido; mesmo que fosse, não há garantia de disjunção entre B e C.
D) C = C1 ∪ C2: Incorreta, pois C1 e C2 não são definidos no diagrama.
E) C1 = C – C2: Incorreta, pois C1 e C2 não são definidos no diagrama.
A pegadinha está em alternativas que usam classes inexistentes (B, C1, C2) ou relações que não são garantidas pelo diagrama. A única equação que reflete diretamente a estrutura de herança é a letra A.
A equação A = B1 ∪ B2 ∪ C é verdadeira porque a generalização na UML indica que a classe A é a superclasse de B1, B2 e C. Isso significa que todo objeto de A é também objeto de pelo menos uma das subclasses, e a união dos conjuntos de instâncias das subclasses forma exatamente o conjunto de instâncias da superclasse. A notação de conjunto com o nome da classe representa o conjunto de todas as instâncias possíveis daquela classe, e a herança garante a relação de subconjunto.
A equação B = A – C é incorreta porque a classe B não existe no diagrama. O diagrama apresenta apenas as classes A, B1, B2 e C. Além disso, mesmo que B existisse, a operação A – C (diferença de conjuntos) resultaria nos elementos de A que não estão em C, o que incluiria B1 e B2, não apenas um suposto B. A alternativa inventa uma classe inexistente e uma relação sem fundamento no modelo.
A equação B ∩ C = ∅ é incorreta porque a classe B não existe no diagrama. Não há como afirmar que a interseção entre B e C é vazia, pois B não é definido. Mesmo que B existisse, a disjunção entre B e C não é garantida pelo diagrama — a generalização pode ser sobreposta, permitindo que um objeto pertença a mais de uma subclasse. A alternativa usa uma classe inexistente e assume uma propriedade (disjunção) que não é explicitada.
A equação C = C1 ∪ C2 é incorreta porque as classes C1 e C2 não existem no diagrama. O diagrama apresenta apenas a classe C, sem subclasses. A alternativa inventa subclasses inexistentes para tentar decompor C, mas não há base no modelo para essa afirmação. A relação de herança de C não é mostrada, então não se pode afirmar que C é composta por C1 e C2.
A equação C1 = C – C2 é incorreta pelas mesmas razões da alternativa D: as classes C1 e C2 não existem no diagrama. A alternativa tenta definir C1 como a diferença entre C e C2, mas como C1 e C2 não são classes do modelo, a equação não tem significado. Não há como calcular a diferença de conjuntos sem que os conjuntos estejam definidos no diagrama.
Gabarito: letra A
Link permanente: /questoes/cg057921