Questão de Engenharia de Software — UML — FGV 2024
Engenharia de Software›UML
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.As relações Classe A-Classe B, Classe B-Classe C e Classe B-Classe D são chamadas, respectivamente, de:
Aagregação, composição e generalização;
Bagregação, generalização e composição;
Ccomposição, generalização e agregação;
Dgeneralização, agregação e composição;
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.