GeraProva GeraProva Provas com IA para professores do Brasil
Computação3ª sérieBNCC EM13CO02Difícil⏱ medio

Durante o estágio em uma startup de tecnologia, Felipe acompanhou as fases de criação de um sistema de…

Publicado por Alexandre Lombardi dos Santos, fundador do GeraProva

Habilidade BNCC EM13CO02

Explorar e construir a solução de problemas por meio de refinamentos, utilizando diversos níveis de abstração desde a especificação até a implementação.

Fonte: Base Nacional Comum Curricular (MEC).

Questão

Durante o estágio em uma startup de tecnologia, Felipe acompanhou as fases de criação de um sistema de agendamento de consultas médicas. Primeiro, a equipe realizou o levantamento de requisitos, criando uma lista de funcionalidades desejadas: cadastro de pacientes, horários disponíveis e envio de lembretes. Em seguida, desenharam um diagrama de classes UML, definindo entidades e relacionamentos. Depois, elaboraram um pseudocódigo que descrevia a lógica de validação de horários e notificação. Por fim, implementaram a solução em Java e aplicaram testes unitários para verificar o comportamento de cada módulo. Analise o texto-base e identifique qual etapa representa o refinamento intermediário entre o design abstrato e a implementação do sistema.

  1. A) Levantamento de requisitos com definição de funcionalidades
  2. B) Implementação do código-fonte em Java
  3. C) Desenho de diagrama de classes UML
  4. D) Elaboração de pseudocódigo que descreve a lógica do sistema
  5. E) Desenvolvimento de testes unitários para cada módulo

✅ Resposta correta: alternativa D

Resolução passo a passo

  1. O texto descreve cinco etapas em ordem: levantamento de requisitos, diagrama de classes UML, pseudocódigo, implementação em Java e testes unitários. A pergunta pede a etapa que fica entre o design abstrato e a implementação.
  2. O diagrama de classes UML é um design abstrato, pois define entidades e relacionamentos sem detalhar a lógica de execução. A implementação em Java é a codificação final. Entre essas duas, o texto menciona o pseudocódigo, que descreve a lógica de validação de horários e notificação em nível mais detalhado que o diagrama, mas ainda sem a sintaxe de uma linguagem.
  3. Logo, o pseudocódigo é o refinamento intermediário. Ele transforma a estrutura do design em instruções lógicas que podem ser traduzidas diretamente para código.
  4. A alternativa A está errada, pois o levantamento de requisitos é a primeira etapa, antes de qualquer design. A alternativa B está errada, pois a implementação é a etapa final e não um refinamento intermediário. A alternativa C está errada, pois o diagrama UML é o design abstrato, que vem antes do refinamento. A alternativa E está errada, pois os testes unitários ocorrem depois da implementação, na fase de verificação.
  5. Conclusão: o gabarito oficial D está correto.

💡 Dica: Identifique a etapa que conecta o design abstrato à implementação.

Alternativa por alternativa

A Erradaerro: Conceitual

O aluno considera que a fase inicial de levantamento de requisitos é o refinamento, por associar refinamento a detalhamento de funcionalidades. Ele não percebe que os requisitos vêm antes de qualquer design.

B Erradaerro: Conceitual

O aluno acredita que a implementação em Java é a etapa que refina o design, confundindo a fase final de codificação com a fase intermediária. Ele não reconhece que existe uma etapa de lógica entre o diagrama e o código.

C Erradaerro: Conceituala que mais engana

O aluno identifica o diagrama UML como a etapa logo após os requisitos e assume que é o refinamento intermediário. Ele não percebe que o diagrama é um modelo abstrato de entidades e relacionamentos, enquanto o refinamento descreve a lógica.

Por que engana: Confundir etapas iniciais com etapas intermediárias do desenvolvimento de software.

D Correta

O pseudocódigo é o refinamento intermediário que traduz o design abstrato para uma representação próxima da implementação.

E Erradaerro: Conceitual

O aluno entende que os testes unitários refinam o sistema por detalharem o comportamento de cada módulo. Ele não percebe que os testes verificam o código já implementado e não fazem a ponte entre design e implementação.

Raio-X da questão

Dificuldade Difícil
Bloom Analisar
Leitura medio
Discriminação alto
Peso pedagógico medio
Autonomia do enunciado completo
Cobertura da habilidade unica
🧪 Simulado🩺 Diagnóstico🧮 Exige cálculo🏠 Cotidiano🔗 Interdisciplinar⭐ Representativa✍️ situacional🧩 progressao
🎯 Conceito central

etapas desenvolvimento software

📌 Objetivo

avaliacao

🧱 Pré-requisitos

conceitos desenvolvimento software · diagramas UML

📚 Reveja

Estude as fases do desenvolvimento de software e suas funções.

⚠️ Erro mais comum

Confundir etapas iniciais com etapas intermediárias do desenvolvimento de software.

🌎 Tema transversal

ciencia_tecnologia

🤝 Socioemocional

pensamento_critico

🏫 Contexto

cientifico

Questões parecidas com resolução

Todas as questões de [CONFERIR] Construir soluções baseadas no uso de algoritmos e conceitos da Computação para resolver problemas, avaliando suas qualidades e melhorando-as.

🔎 Procurar outra questão

Procure no banco do GeraProva pelo tema ou por um trecho do enunciado. Cada questão já vem com resolução comentada e a análise de cada alternativa.

Professor: monte a prova com questões como esta, com gabarito e folha de respostas, em 30 segundos. Ver planos · Blog

Ocorreu um erro inesperado. Recarregar X

Rejoining the server...

Rejoin failed... trying again in seconds.

Failed to rejoin.
Please retry or reload the page.

The session has been paused by the server.

Failed to resume the session.
Please retry or reload the page.