Questão de Engenharia de Software — UML — FGV 2024
- Código
- fg165466
- Banca
- FGV
- Órgão
- TJ AP
- Ano
- 2024
- Cargo
- AJ ( )

- Adependência;
- Bgeneralização;
- Cclasse associativa;
- Dagregação;
- Erelacionamento de realização.

GabaritoC — classe associativa;
Gabarito: letra C. O elemento ALOCAÇÃO, com o atributo Gratificação, representa uma classe associativa — uma classe que está associada a uma associação entre outras duas classes, permitindo armazenar atributos e operações próprios do relacionamento. Na UML, a classe associativa é representada por um retângulo conectado à linha de associação por uma linha tracejada, exatamente como descrito no diagrama.
A classe associativa é um conceito fundamental em modelagem orientada a objetos. Ela surge quando uma associação entre duas classes precisa carregar informações adicionais que não pertencem a nenhuma das classes envolvidas, mas sim ao próprio relacionamento. Por exemplo, na associação entre Funcionário e Projeto, a classe associativa Alocação pode conter o atributo Gratificação, que é uma informação específica da alocação de um funcionário em um projeto, não do funcionário nem do projeto isoladamente.
Na UML, a notação para classe associativa é um retângulo (como uma classe comum) conectado à linha de associação por uma linha tracejada. Essa linha tracejada é o elemento visual que a distingue de outros relacionamentos. No diagrama da questão, o retângulo ALOCAÇÃO com o atributo Gratificação está ligado por uma linha tracejada à associação entre as classes (provavelmente Funcionário e Projeto), caracterizando a classe associativa.
É importante diferenciar a classe associativa de outros elementos UML:
Elemento | Notação | Finalidade |
|---|---|---|
Classe associativa | Retângulo + linha tracejada na associação | Armazenar atributos/operações do relacionamento |
Dependência | Linha tracejada com seta | Relação de uso: uma classe depende da outra |
Generalização | Linha sólida com triângulo vazio | Herança: classe filha é um tipo da classe pai |
Agregação | Linha sólida com losango vazio | Relação todo-parte, com partes independentes |
Realização | Linha tracejada com triângulo vazio | Implementação de interface |
A pegadinha da banca está em confundir a linha tracejada da classe associativa com a linha tracejada da dependência ou da realização. Na dependência, a seta tracejada aponta para a classe da qual se depende; na realização, o triângulo vazio tracejado aponta para a interface. Na classe associativa, a linha tracejada conecta o retângulo da classe à linha de associação, sem seta ou triângulo.
Guarde o critério decisivo: a presença de um retângulo ligado por linha tracejada a uma associação indica classe associativa. É exatamente esse o caso do elemento ALOCAÇÃO.
A dependência é representada por uma linha tracejada com uma seta aberta, indicando que uma classe usa outra (por exemplo, como parâmetro de método). No diagrama, ALOCAÇÃO não é uma dependência, pois não há seta apontando para outra classe; há um retângulo ligado à associação por linha tracejada, o que caracteriza classe associativa.
A generalização (herança) é representada por uma linha sólida com um triângulo vazio na extremidade da classe pai. No diagrama, não há triângulo vazio; ALOCAÇÃO é um retângulo ligado à associação, não uma subclasse de outra classe.
A classe associativa é exatamente o que o diagrama mostra: um retângulo (ALOCAÇÃO) com atributo (Gratificação) conectado por linha tracejada à associação entre duas classes. Essa notação permite modelar atributos do relacionamento, como a gratificação de uma alocação.
A agregação é representada por uma linha sólida com um losango vazio na extremidade da classe "todo". No diagrama, não há losango vazio; ALOCAÇÃO não é uma parte de outra classe, mas uma classe que descreve o relacionamento.
O relacionamento de realização é representado por uma linha tracejada com um triângulo vazio, indicando que uma classe implementa uma interface. No diagrama, não há triângulo vazio; ALOCAÇÃO não implementa uma interface, mas é uma classe associativa.
Gabarito: letra C — o elemento ALOCAÇÃO com o atributo Gratificação representa uma classe associativa.
Link permanente: /questoes/fg165466