Pular para o conteúdo principal

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

Engenharia de SoftwareUML
Código
fg165482
Banca
FGV
Órgão
CVM
Ano
2024
Cargo
Ana ( )
O diagrama abaixo, modelado na linguagem UML 2.5.1, representa um conceito do negócio para o Sistema PARCEIROS utilizado por uma associação civil sem fins lucrativos.   O diagrama acima explicita que:Imagem associada para resolução da questão
  1. Aa designação powertype :ParticipanteTipo no GeneralizationSet em Participante especifica uma outra tipificação para as subclasses de Participante;
  2. Bcada instância de Associado tem seus próprios atributos e compartilha instâncias com Eventual e Incentivador;
  3. Cas instâncias das subclasses de Participante podem corresponder a várias instâncias de ParticipanteTipo simultaneamente;
  4. Das instâncias de ParticipanteTipo têm um relacionamento semântico de realização com as instâncias de Participante;
  5. Eo GeneralizationSet em Participante tem tipificação forte e está cobrindo semanticamente seus classificadores, que não têm instâncias em comum.
Revelar gabarito e comentário

GabaritoA — a designação powertype :ParticipanteTipo no GeneralizationSet em Participante especifica uma outra tipificação para as subclasses de Participante;

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 – GeneralizationSet e Powertype

Gabarito: letra A. A alternativa correta descreve que a designação powertype :ParticipanteTipo no GeneralizationSet em Participante especifica uma outra tipificação para as subclasses de Participante. Isso significa que ParticipanteTipo é um powertype — uma classe cujas instâncias são os próprios tipos das subclasses — e o GeneralizationSet indica que essa tipificação é dinâmica, permitindo que uma instância de Participante seja reclassificada entre as subclasses (Associado, Eventual, Incentivador) conforme o valor de ParticipanteTipo.

O conceito central aqui é o de powertype na UML. Um powertype é uma classe cujas instâncias são subclasses de outra classe. No diagrama, ParticipanteTipo é o powertype, e suas instâncias (por exemplo, "Associado", "Eventual", "Incentivador") são os tipos possíveis de Participante. O GeneralizationSet com a propriedade powertype indica que a classificação de um Participante em uma de suas subclasses é dinâmica — ou seja, uma instância pode mudar de subclassificação ao longo do tempo, conforme o valor do atributo ParticipanteTipo.

Na prática, imagine um sistema de uma associação: uma pessoa é cadastrada como Participante. Inicialmente, ela pode ser Eventual (participa de um evento isolado). Depois, decide se associar e passa a ser Associado. Com o powertype, essa mudança é modelada de forma explícita: o ParticipanteTipo daquela instância muda de "Eventual" para "Associado", e ela é reclassificada automaticamente. Isso é diferente de uma generalização comum, onde a subclassificação é estática — definida no momento da criação do objeto e imutável.

A distinção crucial é entre generalização estática (padrão) e generalização dinâmica (com powertype). Na estática, uma instância pertence a uma única subclasse e não pode mudar. Na dinâmica, a instância pode transitar entre subclasses, e o powertype é o mecanismo que controla essa transição. É exatamente essa característica que a alternativa A captura: o powertype especifica "uma outra tipificação" — ou seja, uma forma de classificar que é independente da hierarquia estática.

A pegadinha da banca está em confundir o powertype com uma relação de instanciação comum, ou em interpretar a generalização como estática. Guarde a fronteira: powertype = classificação dinâmica; generalização comum = classificação estática. É nessa fronteira que as alternativas se dividem.

Alternativa

Afirmação

Veredito

Motivo

A

powertype :ParticipanteTipo especifica outra tipificação para as subclasses de Participante

✅ Correta

O powertype define os tipos possíveis (Associado, Eventual, Incentivador) e permite classificação dinâmica, complementando a hierarquia estática.

B

Cada instância de Associado tem atributos próprios e compartilha instâncias com Eventual e Incentivador

❌ Incorreta

Subclasses são disjuntas; o powertype permite mudança de subclasse, não pertencimento simultâneo a várias.

C

Instâncias das subclasses podem corresponder a várias instâncias de ParticipanteTipo simultaneamente

❌ Incorreta

Cada instância de Participante tem um único valor de ParticipanteTipo em dado momento.

D

Instâncias de ParticipanteTipo têm relação de realização com instâncias de Participante

❌ Incorreta

A relação é de classificação dinâmica (powertype), não de realização (interface/implementação).

E

GeneralizationSet tem "tipificação forte" e cobertura semântica, sem instâncias em comum

❌ Incorreta

"Tipificação forte" não é propriedade UML; o diagrama não indica disjunção ou completude.

GeneralizationSet (UML)
  • 1Tipificação estática
    • Subclasse fixa na criação
    • Não muda ao longo do tempo
  • 2Tipificação dinâmica (powertype)
    • Instância muda de subclasse
    • Controlada por ParticipanteTipo
  • 3Propriedades do conjunto
    • complete/incomplete (cobertura)
    • disjoint/overlapping (sobreposição)
LEVEL · soulevel.com.br

Alternativa A — ✅ Correta ⟵ GABARITO

A alternativa afirma que a designação powertype :ParticipanteTipo no GeneralizationSet em Participante especifica uma outra tipificação para as subclasses de Participante. Isso está correto: o powertype ParticipanteTipo define os tipos possíveis de Participante (Associado, Eventual, Incentivador), e o GeneralizationSet com essa designação indica que a subclassificação é dinâmica. A palavra-chave é "outra tipificação" — o powertype é uma classificação adicional, que não substitui a hierarquia estática, mas a complementa, permitindo que uma instância mude de subclasse.

Alternativa B — ❌ Incorreta

Afirma que "cada instância de Associado tem seus próprios atributos e compartilha instâncias com Eventual e Incentivador". O erro está em "compartilha instâncias": em uma generalização, as subclasses são disjuntas (uma instância pertence a uma única subclasse) ou sobrepostas (pode pertencer a várias), mas o diagrama com powertype não indica sobreposição. Além disso, o powertype permite que uma instância mude de subclasse, mas não que ela pertença a várias simultaneamente. O conceito confundido é o de sobreposição de subclasses (generalização com {overlapping}) com o de reclassificação dinâmica.

Alternativa C — ❌ Incorreta

Diz que "as instâncias das subclasses de Participante podem corresponder a várias instâncias de ParticipanteTipo simultaneamente". Isso é falso: uma instância de Participante tem um único valor de ParticipanteTipo em um dado momento. O powertype define o tipo atual da instância, não múltiplos tipos simultâneos. A confusão aqui é entre o powertype (que é uma classificação única por instância) e uma associação muitos-para-muitos (onde uma instância poderia ter vários tipos).

Alternativa D — ❌ Incorreta

Afirma que "as instâncias de ParticipanteTipo têm um relacionamento semântico de realização com as instâncias de Participante". Realização (realization) é um relacionamento entre uma classe e uma interface, ou entre um caso de uso e sua implementação. Não é o caso aqui: ParticipanteTipo é um powertype, e a relação é de classificação dinâmica, não de realização. O conceito confundido é o de realização (seta tracejada com triângulo) com o de dependência de classificação.

Alternativa E — ❌ Incorreta

Diz que "o GeneralizationSet em Participante tem tipificação forte e está cobrindo semanticamente seus classificadores, que não têm instâncias em comum". O erro está em "tipificação forte": na UML, um GeneralizationSet pode ter os atributos {complete, disjoint} (cobertura total e disjunta) ou {incomplete, overlapping}. O termo "tipificação forte" não é uma propriedade padrão da UML. Além disso, o diagrama com powertype não indica necessariamente que as subclasses são disjuntas — o powertype permite reclassificação, mas não diz nada sobre sobreposição. A alternativa mistura conceitos de generalização (complete/disjoint) com o de powertype, que é um mecanismo diferente.

Gabarito: letra A

Link permanente: /questoes/fg165482