Questão nº 55

Questão de Tecnologia da Informação · FGV TRF1 2024 (nº 55)

FGV2024Técnico Judiciário - Desenvolvimento de SistemasTecnologia da Informação
Gabarito: Aver comentário ↓

Roberto está utilizando a UML para modelar um sistema de
gerenciamento e monitoramento de pedidos. Ele definiu um
processo assíncrono, que envolve a tela cliente emitindo os
pedidos para um serviço, para o tratamento no servidor, além de
uma callback no cliente, exibindo a conclusão do processo.
Para modelar o fluxo de execução descrito, Roberto utilizou:

Resposta comentada

Gabarito Alternativa A

UML (Unified Modeling Language) é uma linguagem visual padrão para modelar sistemas de software, ajudando a entender e comunicar como eles funcionam. Um processo assíncrono significa que uma ação (como enviar um pedido) não bloqueia o sistema que a iniciou, permitindo que ele continue outras tarefas enquanto espera por uma resposta ou conclusão posterior.

(A) Correta: Um diagrama de atividades é ideal para modelar fluxos de trabalho e processos, incluindo os paralelos e assíncronos. O `fork` (divisão) permite que o fluxo se divida em caminhos paralelos: um para o cliente aguardar o sinal de conclusão (`receive signal`) e outro para o servidor processar (`ler_pedido`) e emitir o sinal (`emissão de concluído`). O `join` (junção) sincroniza esses camais, garantindo que ambos os lados tenham progredido antes de exibir a conclusão. Isso representa perfeitamente o comportamento assíncrono e de callback.

(B) Incorreta: Um diagrama de sequência mostra a ordem das interações entre objetos. Embora possa representar callbacks, a descrição dada (Usuario -> Cliente -> Serviço -> Cliente) geralmente implica uma sequência de chamadas síncronas onde cada chamada aguarda o retorno da anterior. Para modelar assincronia de forma explícita, seriam necessárias notações específicas (como mensagens assíncronas com setas abertas) e a separação clara do tempo de vida do cliente não bloqueado, o que não é evidente na descrição. A armadilha aqui é que o diagrama de sequência pode mostrar interações, mas a forma como é descrito não captura a natureza não bloqueante e paralela do processo assíncrono com `fork` e `join` tão bem quanto o diagrama de atividades.

(C) Incorreta: Um diagrama de estados modela o ciclo de vida de um único objeto ou sistema através de seus diferentes estados e transições. Ele não é adequado para descrever o fluxo de execução de um processo que envolve a interação e paralelismo entre múltiplos componentes como cliente e servidor.

(D) Incorreta: Um diagrama de pacotes é usado para organizar elementos do modelo em grupos lógicos (pacotes) e mostrar as dependências entre eles. Ele foca na estrutura de alto nível e organização do sistema, não no comportamento ou fluxo de execução.

(E) Incorreta: Um diagrama de classes descreve a estrutura estática do sistema, mostrando classes, seus atributos, métodos e relacionamentos. Embora defina as operações (`enviar_pedido`, `ler_pedido`), ele não mostra a ordem em que essas operações são executadas, nem o fluxo de controle, o paralelismo ou a natureza assíncrona do processo.

Fonte: FGV TRF1 2024 Técnico Judiciário - Desenvolvimento de Sistemas (Caderno Tipo 1). Reproduzida para fins de estudo.

Continue estudando

Estudar é izi

Pratique milhares de questões como esta, de graça, com explicação e gamificação no Quizinho.

Estudar de graça no Quizinho