Pular para o conteúdo principal

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

Engenharia de SoftwareUML
Código
fg075146
Banca
FGV
Órgão
AL-PR
Ano
2024
Nível
Superior
Cargo
Analista Legislativo - Desenvolvedor de Sistemas
O diagrama de atividades a seguir, representado utilizando a linguagem de modelagem UML, representa o fluxo de atividades de um cozinheiro.Imagem associada para resolução da questãoAo analisar esse diagrama, é possível inferir que
  1. Aapós a atividade “Verificar se há ingredientes”, há, nos termos da notação do diagrama, uma junção.
  2. Bas atividades “Preparar temperos” e “Cortar legumes” devem ser feitas em sequência, uma após a outra.
  3. Ccaso a condição de guarda “falta de algum ingrediente” não seja atendida, executa-se o fluxo de controle paralelo.
  4. Dhá duas raias de natação (swin lanes) envolvendo as atividades “Preparar temperos” e “Cortar legumes”.
  5. Eo diagrama apresenta dois pontos de estado inicial e um estado final, indicando como o fluxo deve ser seguido.
Revelar gabarito e comentário

GabaritoC — caso a condição de guarda “falta de algum ingrediente” não seja atendida, executa-se o fluxo de controle paralelo.

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

Diagrama de Atividades UML: fluxo de controle e notação

Gabarito: letra C. A alternativa correta afirma que, se a condição de guarda "falta de algum ingrediente" não for atendida, executa-se o fluxo de controle paralelo — exatamente o que ocorre quando o fluxo passa pelo nó de decisão e segue o ramo cuja condição é verdadeira, chegando a uma bifurcação (fork) que dispara as atividades "Preparar temperos" e "Cortar legumes" em paralelo. Essa leitura decorre da semântica dos nós de decisão e de bifurcação no diagrama de atividades da UML.

O diagrama de atividades é um dos diagramas comportamentais da UML, usado para modelar o fluxo de controle ou de objetos entre atividades, representando a lógica de um processo, algoritmo ou caso de uso. Seus elementos principais incluem: estado inicial (círculo preenchido), estado final (círculo com borda preenchida), atividades (retângulos arredondados), decisões (losangos), bifurcações (fork) e junções (join) (barras grossas horizontais ou verticais), além de raias de natação (swimlanes) que organizam as atividades por responsável.

A decisão é representada por um losango com uma única entrada e múltiplas saídas, cada uma rotulada com uma condição de guarda (expressão booleana entre colchetes). Quando o fluxo chega à decisão, apenas um dos ramos é escolhido, com base na condição que for verdadeira. Já a bifurcação (fork) é uma barra grossa com uma única entrada e múltiplas saídas, indicando que todas as atividades subsequentes são executadas em paralelo (concorrentemente). A junção (join) é a barra grossa com múltiplas entradas e uma única saída, sincronizando os fluxos paralelos antes de prosseguir.

No diagrama do cozinheiro, o fluxo inicia, passa por "Verificar se há ingredientes" e chega a uma decisão com duas condições de guarda: "falta de algum ingrediente" e "todos os ingredientes disponíveis" (ou similar). Se a condição "falta de algum ingrediente" for atendida (verdadeira), o fluxo segue por esse ramo (provavelmente para comprar ingredientes ou encerrar). Se essa condição não for atendida (falsa), o fluxo segue o outro ramo, que leva a uma bifurcação — representada por uma barra grossa — que dispara simultaneamente as atividades "Preparar temperos" e "Cortar legumes". Essas duas atividades são executadas em paralelo, e depois o fluxo se junta em uma junção antes de prosseguir para a próxima etapa (por exemplo, "Cozinhar").

A pegadinha da banca está em confundir os elementos de decisão (losango, escolha exclusiva) com bifurcação/junção (barra grossa, paralelismo), e em trocar o significado das condições de guarda. O candidato que não domina a notação pode achar que a decisão gera paralelismo, ou que as atividades "Preparar temperos" e "Cortar legumes" são sequenciais, quando na verdade são concorrentes.

Guarde a distinção central: decisão = um único caminho escolhido; bifurcação = todos os caminhos executados em paralelo. É exatamente essa fronteira que separa as alternativas desta questão.

Diagrama de atividades UML
  • 1Elementos
    • Estado inicial (círculo preenchido)
    • Estado final (círculo com borda)
    • Atividade (retângulo arredondado)
    • Decisão (losango)
      • Uma entrada, múltiplas saídas
      • Condição de guarda
      • Escolhe um único caminho
    • Bifurcação/fork (barra grossa)
      • Executa todos em paralelo
    • Junção/join (barra grossa)
      • Sincroniza fluxos paralelos
    • Swimlane (organiza por responsável)
  • 2Distinção central
    • Decisão = um caminho
    • Bifurcação = todos em paralelo
LEVEL · soulevel.com.br

Alternativa A — ❌ Incorreta

Afirma que após "Verificar se há ingredientes" há uma junção. Na verdade, o elemento após essa atividade é um nó de decisão (losango), que seleciona um único caminho com base nas condições de guarda. A junção (join) é uma barra grossa que sincroniza fluxos paralelos, e não aparece nesse ponto do diagrama. A banca troca o símbolo de decisão pelo de junção.

Alternativa B — ❌ Incorreta

Afirma que "Preparar temperos" e "Cortar legumes" devem ser feitas em sequência. Incorreto: essas atividades estão após uma bifurcação (fork), que dispara fluxos paralelos. Elas são executadas concorrentemente, não uma após a outra. A banca inverte o sentido do paralelismo, fazendo o candidato achar que há sequência onde há concorrência.

Alternativa C — ✅ Correta ⟵ GABARITO

A alternativa está correta: se a condição de guarda "falta de algum ingrediente" não for atendida (ou seja, for falsa), o fluxo segue o ramo que leva à bifurcação, executando o fluxo de controle paralelo com as atividades "Preparar temperos" e "Cortar legumes" simultaneamente. Isso reflete exatamente a semântica do nó de decisão combinado com a bifurcação no diagrama de atividades.

Alternativa D — ❌ Incorreta

Afirma que há duas raias de natação (swimlanes) envolvendo "Preparar temperos" e "Cortar legumes". No diagrama descrito, não há indicação de raias — as atividades estão no mesmo fluxo, sem divisão por responsável. As swimlanes são retângulos que organizam atividades por ator ou departamento, e não aparecem nesse diagrama. A banca inventa um elemento que não existe na figura.

Alternativa E — ❌ Incorreta

Afirma que o diagrama apresenta dois pontos de estado inicial e um estado final. Incorreto: um diagrama de atividades UML possui apenas um estado inicial (círculo preenchido) e pode ter um ou mais estados finais (círculo com borda preenchida). A alternativa inverte a contagem: há um estado inicial e, possivelmente, mais de um estado final (por exemplo, um para cada ramo da decisão). A banca troca o número de estados iniciais e finais.

Gabarito: letra C — a única que descreve corretamente o fluxo de controle paralelo após a decisão não atendida.

Link permanente: /questoes/fg075146