Pular para o conteúdo principal

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

Engenharia de SoftwareUML
Código
fc147277
Banca
FCC
Órgão
TRT 7
Ano
2024
Cargo
AJ TRT7
Ulilizando a UML 2.5, um Analista modelou a classe Processo_Trabalhista e suas partes: Capa_Processo, Corpo_Processo e Trâmite_Processo. Ao excluir um processo trabalhista, para que suas partes deixem de existir, é necessário que ele utilize os conceitos do relacionamento Todo-Parte identificado por
  1. AInclusão.
  2. BInteração.
  3. CExtensão.
  4. DPacote.
  5. EComposição.
Revelar gabarito e comentário

GabaritoE — Composiçã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”.

UML: Relacionamento Todo-Parte — Composição

Gabarito: letra E. O relacionamento Todo-Parte que faz com que as partes deixem de existir quando o todo é excluído é a Composição, também chamada de agregação por composição. Na UML, a composição é um tipo forte de agregação em que a parte não tem existência independente do todo: se o todo é destruído, as partes também são. É exatamente o que o enunciado descreve ao afirmar que, ao excluir um processo trabalhista, suas partes (Capa, Corpo e Trâmite) deixam de existir.

O relacionamento Todo-Parte é um conceito central na modelagem orientada a objetos, e a UML o expressa por meio de dois tipos de agregação: a agregação simples (ou compartilhada) e a composição (ou agregação por composição). A diferença fundamental entre elas está na dependência existencial entre o todo e a parte. Na agregação simples, a parte pode existir independentemente do todo — por exemplo, um time de futebol (todo) tem jogadores (partes), mas os jogadores continuam existindo se o time for dissolvido. Já na composição, a parte não tem vida própria fora do todo — por exemplo, uma casa (todo) tem cômodos (partes), e se a casa for demolida, os cômodos deixam de existir como tais. Essa distinção é o coração da questão: a banca descreve um cenário em que a exclusão do todo implica a exclusão das partes, o que é a definição clássica de composição.

Na notação UML, a composição é representada por um losango preenchido (sólido) na extremidade da classe que representa o todo, enquanto a agregação simples usa um losango vazio. Essa diferença visual é sutil, mas semanticamente poderosa, e é justamente o que as bancas costumam explorar. No diagrama de classes, a composição também é frequentemente chamada de "agregação por composição" ou "composição forte", e é um dos relacionamentos mais cobrados em provas de Engenharia de Software.

Para fixar: a composição é o relacionamento em que a parte não sobrevive à destruição do todo. É o que o enunciado pede. A agregação simples, por outro lado, permite que a parte continue existindo. A banca, ao descrever que "as partes deixam de existir", está apontando diretamente para a composição. As demais alternativas — Inclusão, Interação, Extensão e Pacote — são termos de outros contextos da UML (relacionamentos entre casos de uso, diagramas de interação, etc.) e não se aplicam ao relacionamento Todo-Parte.

NÃO CAIA NESSA!

A banca explora a confusão entre agregação simples e composição. O enunciado diz que as partes "deixam de existir" quando o todo é excluído — isso é a marca registrada da composição. Se o enunciado dissesse apenas que o todo "tem" partes, sem mencionar a destruição, aí sim poderia ser agregação simples. Fique atento a essa palavra-chave: "deixar de existir" = composição.

Critério

Agregação Simples (losango vazio)

Composição (losango preenchido)

Dependência existencial da parte

A parte pode existir independentemente do todo

A parte não existe sem o todo

Efeito da exclusão do todo

As partes continuam existindo

As partes deixam de existir

Exemplo clássico

Time (todo) e jogadores (partes)

Casa (todo) e cômodos (partes)

Ciclo de vida

Independente entre todo e parte

Gerenciado pelo todo (mesmo ciclo de vida)

Alternativa A — ❌ Incorreta

Inclusão (ou include) é um relacionamento entre casos de uso, não entre classes. Ele indica que um caso de uso base incorpora o comportamento de outro caso de uso obrigatoriamente. Por exemplo, um caso de uso "Sacar Dinheiro" pode incluir o caso de uso "Validar Senha". Não tem relação com o conceito de Todo-Parte.

Alternativa B — ❌ Incorreta

Interação é um termo genérico que se refere aos diagramas de interação da UML, como o Diagrama de Sequência e o Diagrama de Comunicação. Esses diagramas modelam a troca de mensagens entre objetos ao longo do tempo, mas não definem um relacionamento estrutural de Todo-Parte entre classes.

Alternativa C — ❌ Incorreta

Extensão (ou extend) é outro relacionamento entre casos de uso. Ele indica que um caso de uso pode, opcionalmente, estender o comportamento de outro caso de uso sob certas condições. Por exemplo, um caso de uso "Sacar Dinheiro" pode ser estendido por "Emitir Comprovante". Não se aplica ao relacionamento entre classes.

Alternativa D — ❌ Incorreta

Pacote é um mecanismo de organização de elementos UML, usado para agrupar classes, diagramas ou outros elementos em grupos lógicos. Ele não representa um relacionamento Todo-Parte, mas sim uma forma de organizar o modelo. Um pacote pode conter classes, mas isso não implica que as classes deixem de existir se o pacote for removido.

Alternativa E — ✅ Correta ⟵ GABARITO

A Composição é o relacionamento Todo-Parte em que a parte não tem existência independente do todo. Se o todo é excluído, as partes também são. No exemplo do enunciado, ao excluir o Processo_Trabalhista, as classes Capa_Processo, Corpo_Processo e Trâmite_Processo deixam de existir — exatamente o comportamento da composição. Na UML, a composição é representada com um losango preenchido na extremidade da classe que representa o todo.

Gabarito: letra E

Link permanente: /questoes/fc147277