Questão de Engenharia de Software — Geral — FGV 2025
Engenharia de Software›Geral
Código
fg169119
Banca
FGV
Órgão
MPU
Ano
2025
Cargo
Ana
Observe o diagrama abaixo modelado em UML 2.5.1. Semanticamente, o diagrama indica que:
Aa associação de dependência entre as classes A e B é binária com duas extremidades nomeadas;
Ba extremidade b da associação entre as classes A e B pode ser representada por um atributo da classe A;
Co valor 5 do atributo a4 da classe A é atribuído a todas as instâncias da classe, tornando-se o valor fixo da propriedade;
Da agregação composta entre as classes B e C exige que um objeto parte seja incluído em no mínimo um objeto composto por vez;
Ena associação entre as classes A e B, a extremidade a é de propriedade da classe A e a extremidade b é de propriedade da classe B.
Revelar gabarito e comentário▾
GabaritoB — a extremidade b da associação entre as classes A e B pode ser representada por um atributo da classe A;
Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.
UML – Diagrama de Classes: Associação e Propriedade de Extremidade
Gabarito: letra B. A extremidade b da associação entre as classes A e B, quando navegável e de propriedade da classe A, pode ser representada como um atributo da classe A — é exatamente o que a alternativa B afirma. Essa é uma das equivalências fundamentais entre a notação de associação e a de atributo na UML 2.5.1.
A UML (Unified Modeling Language) é uma linguagem de modelagem padronizada que permite representar visualmente a estrutura e o comportamento de um sistema orientado a objetos. No diagrama de classes, um dos diagramas estruturais mais importantes, as associações representam relacionamentos estruturais entre classes. Uma associação binária conecta duas classes e possui duas extremidades, cada uma com propriedades como nome, multiplicidade, navegabilidade e propriedade (ownership).
A propriedade de uma extremidade (ownership) indica qual classe é a "dona" daquela extremidade. Quando uma extremidade é de propriedade de uma classe, ela pode ser implementada como um atributo dessa classe. Por exemplo, se a classe A possui uma associação com a classe B e a extremidade b é de propriedade de A, então a classe A pode ter um atributo do tipo B (ou uma coleção de B, dependendo da multiplicidade). Essa é uma das formas de implementar uma associação em código.
A alternativa B está correta porque reflete exatamente essa equivalência: a extremidade b da associação, sendo de propriedade da classe A, pode ser representada como um atributo da classe A. Isso é consistente com a semântica da UML, onde a propriedade de uma extremidade de associação é equivalente a um atributo da classe proprietária.
A alternativa A está incorreta porque afirma que a associação de dependência entre as classes A e B é binária com duas extremidades nomeadas. No diagrama, a relação entre A e B é uma associação, não uma dependência. Além disso, a dependência é um relacionamento mais fraco, que indica que uma classe usa outra, mas não possui uma extremidade nomeada como em uma associação.
A alternativa C está incorreta porque afirma que o valor 5 do atributo a4 da classe A é atribuído a todas as instâncias da classe, tornando-se o valor fixo da propriedade. Na UML, um valor fixo (default value) é um valor inicial para o atributo, mas não significa que todas as instâncias terão esse valor obrigatoriamente. O valor pode ser alterado durante a execução, a menos que seja declarado como imutável (readOnly).
A alternativa D está incorreta porque afirma que a agregação composta entre as classes B e C exige que um objeto parte seja incluído em no mínimo um objeto composto por vez. Na composição, a parte é fortemente ligada ao todo, mas a multiplicidade na extremidade do todo pode ser 0..1 ou 1..1, dependendo do modelo. A afirmação de que a parte deve estar em "no mínimo um" composto é uma generalização incorreta, pois a multiplicidade pode ser 0..1.
A alternativa E está incorreta porque afirma que na associação entre as classes A e B, a extremidade a é de propriedade da classe A e a extremidade b é de propriedade da classe B. No diagrama, a extremidade b é de propriedade da classe A, e a extremidade a é de propriedade da classe B. A alternativa inverte a propriedade das extremidades.
Critério
Extremidade b (propriedade de A)
Extremidade a (propriedade de B)
Representação em código
Atributo na classe A (tipo B ou coleção de B)
Atributo na classe B (tipo A ou coleção de A)
Navegabilidade
Navegável de A para B
Navegável de B para A
Alternativa correta (B)
✅ Pode ser representada como atributo da classe A
—
Alternativa incorreta (E)
❌ Não é propriedade de B
❌ Não é propriedade de A
NÃO CAIA NESSA!
A banca troca a propriedade das extremidades da associação. Na UML, a extremidade b é de propriedade da classe A, e a extremidade a é de propriedade da classe B. A alternativa E inverte essa relação, e o candidato desatento pode marcar essa opção por achar que a propriedade é sempre da classe que está mais próxima da extremidade.
PEGA ESSA DICA!
Para resolver questões sobre propriedade de extremidade, lembre-se: a extremidade é de propriedade da classe que está na ponta oposta. Se a extremidade b está na classe B, ela é de propriedade da classe A. Essa regra vale para qualquer associação binária.