Pular para o conteúdo principal

Questão de Engenharia de Software — UML — FGV 2024

Engenharia de SoftwareUML
Código
fg098523
Banca
FGV
Órgão
TJ-MS
Ano
2024
Nível
Superior
Cargo
Técnico de Nível Superior - Analista de Sistemas Computacionais - Analista de Sistemas
Considere o diagrama de classes UML a seguir.Imagem associada para resolução da questãoAs relações Classe A-Classe B, Classe B-Classe C e Classe B-Classe D são chamadas, respectivamente, de:
  1. Aagregação, composição e generalização;
  2. Bagregação, generalização e composição;
  3. Ccomposição, generalização e agregação;
  4. Dgeneralização, agregação e composição;
  5. Egeneralização, composição e agregação.
Revelar gabarito e comentário

GabaritoE — generalização, composição e agregação.

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”.

Relacionamentos no Diagrama de Classes UML

Gabarito: letra E. As relações Classe A-Classe B, Classe B-Classe C e Classe B-Classe D são, respectivamente, generalização, composição e agregação. A generalização é representada por uma seta com triângulo vazio apontando para a classe mais geral (A), a composição por um losango preenchido na extremidade da classe que contém (B), e a agregação por um losango vazio também na extremidade da classe que contém (B).

O diagrama de classes é o principal diagrama estrutural da UML, usado para modelar a estrutura estática do sistema: as classes, seus atributos, operações e, principalmente, os relacionamentos entre elas. Dominar a notação gráfica de cada tipo de relacionamento é essencial, pois a banca frequentemente explora a semelhança visual entre eles para induzir ao erro.

Os relacionamentos entre classes na UML podem ser classificados em três grandes grupos: associações (que incluem agregação e composição), generalização (herança) e dependência. A questão foca exatamente na distinção entre os três primeiros.

Generalização (Herança): representa uma relação "é um" entre uma classe mais geral (superclasse) e uma classe mais específica (subclasse). A subclasse herda atributos e operações da superclasse. Na UML, é desenhada como uma linha com uma seta triangular vazia (não preenchida) apontando da subclasse para a superclasse.

Composição: é um tipo de associação todo-parte mais forte, onde a parte não existe sem o todo. Se o todo for destruído, a parte também é. Na UML, é representada por uma linha com um losango preenchido (sólido) na extremidade da classe que representa o todo (a classe que contém).

Agregação: é um tipo de associação todo-parte mais fraca, onde a parte pode existir independentemente do todo. Se o todo for destruído, a parte continua existindo. Na UML, é representada por uma linha com um losango vazio (não preenchido) na extremidade da classe que representa o todo.

A pegadinha clássica desta questão é a semelhança entre os símbolos de composição e agregação: ambos usam um losango, mas um é preenchido e o outro é vazio. A banca explora exatamente essa confusão, trocando a ordem dos termos nas alternativas. Outra armadilha é confundir a direção da seta da generalização, que aponta para a classe mais geral.

Guarde a distinção fundamental: losango preenchido = composição (parte morre com o todo); losango vazio = agregação (parte sobrevive ao todo); seta triangular vazia = generalização (herança). É exatamente nesses três símbolos que as alternativas se dividem.

Critério

Generalização (A–B)

Composição (B–C)

Agregação (B–D)

Símbolo UML

Linha com seta triangular vazia

Linha com losango preenchido

Linha com losango vazio

Tipo de relação

“É um” (herança)

Todo-parte forte

Todo-parte fraca

Dependência do ciclo de vida

Subclasse herda da superclasse

Parte não existe sem o todo

Parte existe independentemente do todo

Direção da notação

Aponta da subclasse para a superclasse

Losango na extremidade da classe que contém

Losango na extremidade da classe que contém

Exemplo típico

Cachorro é um Animal

Nota Fiscal e Itens

Carro e Rodas

Alternativa A — ❌ Incorreta

Afirma que a primeira relação é agregação. No entanto, a seta com triângulo vazio apontando de B para A indica generalização, não agregação. A agregação seria representada por um losango vazio, que não é o caso da relação Classe A-Classe B.

Alternativa B — ❌ Incorreta

Erra ao afirmar que a segunda relação (Classe B-Classe C) é generalização. A generalização é representada por seta triangular, e o losango preenchido na extremidade de B indica composição. A ordem correta é generalização, composição e agregação.

Alternativa C — ❌ Incorreta

Inverte completamente a ordem. A primeira relação é generalização (seta triangular), não composição. A segunda é composição (losango preenchido), não generalização. A terceira é agregação (losango vazio), não generalização.

Alternativa D — ❌ Incorreta

Acerta a primeira relação (generalização), mas erra a segunda: o losango preenchido indica composição, não agregação. A agregação seria representada por losango vazio, que é o caso da terceira relação (Classe B-Classe D).

Alternativa E — ✅ Correta ⟵ GABARITO

Identifica corretamente as três relações: Classe A-Classe B é generalização (seta triangular vazia apontando para a superclasse A); Classe B-Classe C é composição (losango preenchido na extremidade da classe que contém, B); Classe B-Classe D é agregação (losango vazio na extremidade da classe que contém, B). A ordem está exatamente como apresentada no diagrama.

NÃO CAIA NESSA!

A banca explora a semelhança visual entre os losangos de composição e agregação. A diferença é sutil: o losango preenchido indica composição (a parte não existe sem o todo), enquanto o losango vazio indica agregação (a parte existe independentemente). Além disso, a seta triangular da generalização aponta para a classe mais geral, e não para a mais específica. Com treino, você identifica esses símbolos de longe 💪.

PEGA ESSA DICA!

Para fixar, associe: losango preenchido = composição = "parte morre com o todo" (ex.: Nota Fiscal e Itens); losango vazio = agregação = "parte sobrevive ao todo" (ex.: Carro e Rodas); seta triangular = generalização = "é um" (ex.: Cachorro é um Animal). Na prova, ao ver um losango, pergunte-se: "a parte existe sem o todo?" Se sim, é agregação; se não, é composição.

Gabarito: letra E

Link permanente: /questoes/fg098523