Questão de Engenharia de Software — UML — FCC 2024
- Código
- fc147277
- Banca
- FCC
- Órgão
- TRT 7
- Ano
- 2024
- Cargo
- AJ TRT7
- AInclusão.
- BInteração.
- CExtensão.
- DPacote.
- EComposição.
GabaritoE — 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.
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) |
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.
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.
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.
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.
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