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
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.
- A) Levantamento de requisitos com definição de funcionalidades
- B) Implementação do código-fonte em Java
- C) Desenho de diagrama de classes UML
- D) Elaboração de pseudocódigo que descreve a lógica do sistema
- E) Desenvolvimento de testes unitários para cada módulo
✅ Resposta correta: alternativa D
Resolução passo a passo
- 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.
- 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.
- 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.
- 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.
- Conclusão: o gabarito oficial D está correto.
💡 Dica: Identifique a etapa que conecta o design abstrato à implementação.
Alternativa por alternativa
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.
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.
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.
O pseudocódigo é o refinamento intermediário que traduz o design abstrato para uma representação próxima da implementação.
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
etapas desenvolvimento software
avaliacao
conceitos desenvolvimento software · diagramas UML
Estude as fases do desenvolvimento de software e suas funções.
Confundir etapas iniciais com etapas intermediárias do desenvolvimento de software.
ciencia_tecnologia
pensamento_critico
cientifico
Questões parecidas com resolução
- — Nossa comunidade recebe doações de livros para biblioteca itinerante, mas a triagem está desorganizada — comentou Ana…
- Ao planejar o sistema de alocação automática de salas para aulas, Ana, coordenadora de TI, orienta Luiz a seguir etapas…
- Em uma reunião de equipe de desenvolvimento de um aplicativo de reserva de salas, o analista apresentou a descrição de…
- Por que apps de reuniões online ainda geram conflitos de horário mesmo com calendários sincronizados? Uma equipe de…
- Um relatório técnico fictício descreve os passos para desenvolver um sistema de monitoramento de acesso em edifícios. O…
- Folhas de anotações espalhadas sobre a mesa revelam como Carlos documentou etapas da criação de um chatbot para…
🔎 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
