Pular para o conteúdo principal

Questão de Engenharia de Software — Geral — INSTITUTO AOCP 2024

Engenharia de SoftwareGeral
Código
qa631646
Banca
INSTITUTO AOCP
Órgão
MGI
Ano
2024
Cargo
Esp ( )
Uma especialista em gestão de projetos está conduzindo a modelagem de um novo sistema de gerenciamento de pedidos para uma empresa de e-commerce. Utilizando UML 2.5, ela precisa visualizar e analisar a interação entre diferentes objetos do sistema durante o processamento de um pedido.   Qual dos seguintes diagramas UML 2.5 é mais adequado para essa finalidade?
  1. ADiagrama de classes, para mostrar as propriedades e os métodos dos objetos envolvidos.
  2. BDiagrama de sequência, para representar as interações entre os objetos ao longo do tempo.
  3. CDiagrama de atividades, para descrever o fluxo de controle e a atividade no sistema.
  4. DDiagrama de estados, para mostrar os estados de um objeto individual ao longo de sua vida útil.
  5. EDiagrama de pacotes, para organizar os modelos do sistema em agrupamentos lógicos.
Revelar gabarito e comentário

GabaritoB — Diagrama de sequência, para representar as interações entre os objetos ao longo do tempo.

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”.

Diagramas UML: escolha pelo propósito

Gabarito: letra B. O diagrama de sequência é o mais adequado para visualizar e analisar a interação entre objetos ao longo do tempo, pois organiza as mensagens trocadas em uma ordem temporal explícita — exatamente o que a especialista precisa ao modelar o processamento de um pedido. Os demais diagramas atendem a outros propósitos: classes mostra estrutura, atividades mostra fluxo de controle, estados mostra ciclo de vida de um objeto e pacotes organiza o modelo.

A UML 2.5 divide seus diagramas em duas grandes famílias: diagramas estruturais e diagramas comportamentais. Os estruturais descrevem a estática do sistema — as partes que o compõem e como se relacionam (classes, objetos, componentes, pacotes, implantação). Os comportamentais descrevem a dinâmica — o que acontece quando o sistema executa (casos de uso, atividades, estados, sequência, comunicação, timing). A pergunta do enunciado é clara: "visualizar e analisar a interação entre diferentes objetos do sistema durante o processamento de um pedido". Interação entre objetos, com ênfase no durante (ou seja, na ordem em que as mensagens são trocadas), é o domínio do diagrama de sequência.

O diagrama de sequência é um diagrama de interação que mostra, em uma linha do tempo, as mensagens trocadas entre os objetos (ou atores e objetos) para realizar uma funcionalidade. Cada objeto tem uma "linha de vida" vertical; as mensagens são setas horizontais entre essas linhas, e a ordem de cima para baixo representa a ordem cronológica. É o diagrama ideal para responder perguntas como: "quem chama quem?", "em que ordem?", "o que é retornado?". No caso do processamento de um pedido, a especialista poderia modelar, por exemplo: o Cliente envia criarPedido() para o ControladorDePedidos; este chama validarEstoque() no Estoque; depois calcularTotal() no Pedido; e assim por diante — cada passo em uma posição temporal.

A confusão mais comum neste tema é entre sequência e atividades. Ambos são comportamentais, mas respondem a perguntas diferentes: o diagrama de atividades descreve o fluxo de controle — a sequência de passos, decisões e paralelismos de um processo, frequentemente com raias (swimlanes) indicando quem executa cada passo. Já o diagrama de sequência foca na troca de mensagens entre objetos específicos ao longo do tempo. Se a pergunta fosse "qual o fluxo do processo de pedido, do recebimento à entrega?", atividades seria a resposta. Mas a pergunta é sobre "interação entre diferentes objetos" — e interação, em UML, é um conceito técnico que designa justamente a troca de mensagens, capturada por diagramas de sequência, comunicação e timing. O diagrama de sequência é o mais completo e o mais cobrado para esse fim.

Outra distinção importante: o diagrama de estados também é comportamental, mas descreve o ciclo de vida de um único objeto — seus estados (ex.: Novo, Processando, Enviado, Entregue) e as transições entre eles. Ele não mostra a interação entre vários objetos, e sim a evolução de um objeto individual. Já o diagrama de classes é estrutural: mostra as propriedades (atributos) e os métodos (operações) das classes, e os relacionamentos entre elas — útil para entender a estrutura, mas não a interação temporal. O diagrama de pacotes organiza os elementos do modelo em grupos lógicos, uma visão de organização, não de comportamento.

A pegadinha que a banca explora aqui é a troca de propósito entre diagramas: cada alternativa descreve corretamente o que um diagrama faz, mas apenas um atende ao que o enunciado pede. O candidato que não domina a finalidade de cada diagrama pode ser seduzido pela alternativa C (atividades), que também envolve "fluxo" e "processamento", mas não é sobre interação entre objetos. A palavra-chave do enunciado é "interação entre diferentes objetos" — e interação, em UML, é o nome técnico do que o diagrama de sequência modela.

Guarde a fronteira entre os diagramas pelo tipo de pergunta que cada um responde: estrutura (classes, objetos, componentes, pacotes, implantação) versus comportamento (casos de uso, atividades, estados, sequência, comunicação, timing). Dentro do comportamento, distinga: fluxo de controle (atividades), ciclo de vida de um objeto (estados) e troca de mensagens entre objetos (sequência/comunicação). É exatamente nessa fronteira que as alternativas se dividem.

Critério

Diagrama de Sequência (B)

Diagrama de Atividades (C)

Diagrama de Estados (D)

Pergunta que responde

Quem chama quem, em que ordem, ao longo do tempo

Qual o fluxo de controle do processo (passos, decisões, paralelismo)

Qual o ciclo de vida de um único objeto (estados e transições)

Foco principal

Troca de mensagens entre objetos específicos

Sequência de atividades e fluxo de controle

Evolução de um objeto individual

Noção de tempo

Sim — ordem cronológica explícita (linhas de vida)

Parcial — ordem de execução, mas sem objetos específicos

Não — apenas transições entre estados

Adequação ao enunciado

✅ Ideal — "interação entre diferentes objetos durante o processamento"

❌ Parcial — mostra fluxo, mas não interação entre objetos

❌ Inadequado — foca em um objeto, não em vários

Alternativa A — ❌ Incorreta

O diagrama de classes mostra a estrutura estática: as classes, seus atributos e métodos, e os relacionamentos entre elas (associação, herança, composição). Ele não mostra a interação entre objetos durante o processamento — não há noção de tempo nem de ordem de mensagens. A alternativa descreve corretamente o que o diagrama de classes faz, mas isso não atende ao que o enunciado pede (interação temporal).

Alternativa B — ✅ Correta ⟵ GABARITO

O diagrama de sequência é o diagrama de interação por excelência: representa as mensagens trocadas entre objetos ao longo do tempo, com linhas de vida verticais e setas horizontais em ordem cronológica. É exatamente o que a especialista precisa para "visualizar e analisar a interação entre diferentes objetos do sistema durante o processamento de um pedido". Cada mensagem tem uma posição temporal, permitindo ver quem chama quem e em que ordem.

Alternativa C — ❌ Incorreta

O diagrama de atividades descreve o fluxo de controle de um processo: sequência de passos, decisões, bifurcações e paralelismo, frequentemente com raias indicando responsáveis. Ele mostra o que acontece em um processo, mas não a troca de mensagens entre objetos específicos. É o distrator mais forte, pois "processamento de um pedido" sugere fluxo de processo — mas o enunciado fala em "interação entre objetos", que é o domínio do diagrama de sequência.

Alternativa D — ❌ Incorreta

O diagrama de estados mostra o ciclo de vida de um único objeto: seus estados (ex.: Novo, Processando, Enviado) e as transições entre eles, disparadas por eventos. Ele não mostra a interação entre vários objetos — foca em um objeto individual. A alternativa descreve corretamente o propósito do diagrama de estados, mas isso não responde à pergunta sobre interação entre objetos.

Alternativa E — ❌ Incorreta

O diagrama de pacotes é um diagrama estrutural que organiza os elementos do modelo em agrupamentos lógicos (pacotes), mostrando dependências entre eles. Ele não tem qualquer relação com interação entre objetos nem com processamento — é uma visão de organização do modelo, não de comportamento.

NÃO CAIA NESSA!

A banca descreve cada diagrama corretamente, mas apenas um atende ao pedido do enunciado. A armadilha está em trocar o propósito: a alternativa C (atividades) parece atraente porque "processamento de pedido" sugere fluxo de processo, mas o enunciado fala em "interação entre diferentes objetos" — e interação, em UML, é o nome técnico do que o diagrama de sequência modela. Fique atento à palavra-chave: se a pergunta é sobre troca de mensagens entre objetos ao longo do tempo, a resposta é sequência; se é sobre fluxo de controle de um processo, é atividades.

PEGA ESSA DICA!

Para resolver questões de "qual diagrama usar", identifique a palavra-chave do enunciado e associe ao propósito de cada diagrama: estrutura → classes, objetos, componentes, pacotes, implantação; comportamento → casos de uso, atividades, estados, sequência, comunicação, timing. Dentro do comportamento, pergunte: é fluxo de processo? (atividades) · é ciclo de vida de um objeto? (estados) · é troca de mensagens entre objetos? (sequência/comunicação). Essa classificação elimina a maioria das alternativas antes mesmo de ler todas.

Gabarito: letra B.

Link permanente: /questoes/qa631646