Questão de Engenharia de Software — UML — FGV 2024
Engenharia de Software›UML
Código
fg077006
Banca
FGV
Órgão
CGE-PB
Ano
2024
Nível
Superior
Cargo
Auditor de Contas Públicas - Auditoria de Tecnologia da Informação
Observe o seguinte Diagrama de Classes UML.A relação entre as Classes que está representada no diagrama é:
ARealização;
BAgregação;
CComposição;
DDependência;
EGeneralização.
Revelar gabarito e comentário▾
GabaritoE — Generalizaçã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 em Diagramas de Classes UML
Gabarito: letra E. A relação representada no diagrama é a Generalização, que na UML é desenhada como uma linha com uma seta triangular vazia apontando da classe filha para a classe mãe (superclasse). Essa notação é distinta das demais opções: agregação e composição usam losango, dependência usa seta tracejada e realização usa triângulo com linha tracejada.
A UML (Unified Modeling Language) define quatro tipos principais de relacionamentos entre classes: associação, dependência, generalização e realização. A associação ainda se subdivide em agregação e composição, que são formas mais fortes de associação. Cada um desses relacionamentos possui uma notação gráfica própria, e é justamente essa notação que a banca explora nas questões de diagrama de classes.
A generalização é o relacionamento que representa herança entre classes: uma classe filha (subclasse) herda atributos e métodos da classe mãe (superclasse). Na UML, a generalização é representada por uma linha contínua com uma seta triangular vazia (não preenchida) na extremidade que aponta para a superclasse. É o mesmo símbolo usado para representar herança em diagramas de classes, e também é usado entre atores e casos de uso em diagramas de casos de uso.
Para diferenciar visualmente os relacionamentos, é essencial memorizar a notação de cada um:
Relacionamento
Notação gráfica
Significado
Associação
Linha contínua simples
Conecta classes que se relacionam estruturalmente
Agregação
Linha com losango vazio na extremidade do todo
Relação "tem-um" em que a parte pode existir sem o todo
Composição
Linha com losango preenchido na extremidade do todo
Relação "tem-um" forte em que a parte não existe sem o todo
Dependência
Linha tracejada com seta simples
Uma classe usa a outra de forma temporária (ex.: parâmetro de método)
Generalização
Linha contínua com seta triangular vazia
Herança: a classe filha é um tipo da classe mãe
Realização
Linha tracejada com seta triangular vazia
Implementação de interface
A pegadinha clássica da banca é confundir generalização com realização, pois ambas usam a seta triangular vazia — a diferença está na linha: contínua para generalização, tracejada para realização. Outra confusão comum é entre agregação e composição, que diferem apenas pelo preenchimento do losango.
No diagrama da questão, a seta triangular vazia com linha contínua indica claramente uma relação de herança entre as classes, ou seja, generalização. As demais alternativas apresentam notações diferentes: agregação e composição usam losango, dependência usa seta tracejada simples, e realização usa triângulo com linha tracejada.
Alternativa A — ❌ Incorreta
Realização é representada por uma linha tracejada com seta triangular vazia, indicando que uma classe implementa uma interface. No diagrama, a linha é contínua, o que descarta a realização. A banca troca a linha contínua pela tracejada para confundir o candidato.
Alternativa B — ❌ Incorreta
Agregação é representada por uma linha com losango vazio na extremidade da classe que representa o todo. O diagrama não apresenta losango, portanto não é agregação. A agregação indica uma relação "tem-um" em que a parte pode existir independentemente do todo.
Alternativa C — ❌ Incorreta
Composição é representada por uma linha com losango preenchido na extremidade do todo. O diagrama não apresenta losango preenchido, portanto não é composição. A composição é uma relação "tem-um" forte, em que a parte é destruída quando o todo é destruído.
Alternativa D — ❌ Incorreta
Dependência é representada por uma linha tracejada com seta simples (sem triângulo). O diagrama apresenta linha contínua com seta triangular, portanto não é dependência. A dependência indica um uso temporário, como uma classe que recebe outra como parâmetro de método.
Alternativa E — ✅ Correta ⟵ GABARITO
Generalização é representada por uma linha contínua com seta triangular vazia apontando para a superclasse. Essa é exatamente a notação presente no diagrama, indicando que uma classe é um tipo especializado da outra (herança). É o relacionamento que representa o conceito de herança na orientação a objetos.
NÃO CAIA NESSA!
A banca adora trocar a notação de generalização pela de realização, pois ambas usam a seta triangular vazia. A diferença está na linha: contínua para generalização, tracejada para realização. Fique atento a esse detalhe — ele decide a questão.
PEGA ESSA DICA!
Para memorizar as notações, associe: losango = todo-parte (vazio = fraco, preenchido = forte), seta triangular = herança (contínua = generalização, tracejada = realização), seta simples tracejada = dependência. Desenhe cada uma algumas vezes e resolva questões — o reconhecimento visual fica automático.