Pular para o conteúdo principal

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

Engenharia de SoftwareGeral
Código
fg165493
Banca
FGV
Órgão
Pref Nova Iguaçu
Ano
2024
Cargo
Cont ( )

Considerando as várias metodologias de desenvolvimento de software, as fases do ciclo de vida podem variar significativamente, analise as afirmações a seguir:

 

I. A fase de Validação de Requisitos faz parte da metodologia VModel;

 

II. A fase de Implementação pertence a todas as metodologias;

 

III. A fase de Benchmarking de código faz parte da metodologia Ágil.

 

É correto o que se afirma em

  1. AI e II, apenas.
  2. BII e III, apenas.
  3. CI e III, apenas.
  4. DIII, apenas.
  5. EI, II e III.
Revelar gabarito e comentário

GabaritoA — I e II, apenas.

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

Ciclo de Vida do Software e Metodologias de Desenvolvimento

Gabarito: letra A. Estão corretas apenas as afirmações I e II: a Validação de Requisitos é uma fase explícita do modelo em V (V-Model), e a Implementação é uma atividade presente em todas as metodologias de desenvolvimento de software, ainda que com nomes e intensidades diferentes. A afirmação III está incorreta porque "Benchmarking de código" não é uma fase ou prática definida das metodologias ágeis — o termo benchmarking pertence ao campo da gestão da qualidade e da administração, não ao ciclo de vida do desenvolvimento ágil.

O ciclo de vida do software (SDLC — Software Development Life Cycle) é o conjunto de fases pelas quais um produto de software passa, desde a concepção até a retirada de uso. As metodologias de desenvolvimento são formas de organizar essas fases, e cada uma as distribui de maneira particular. O modelo em V (V-Model) é uma variação do modelo cascata que enfatiza a relação entre cada fase de desenvolvimento e sua fase correspondente de teste/validação. No V-Model, o lado esquerdo do "V" representa as fases de especificação e projeto (análise de requisitos, projeto de sistema, projeto de componentes), e o lado direito representa as fases de verificação e validação (testes de unidade, integração, sistema e aceitação). A Validação de Requisitos é uma fase explícita desse modelo, pois cada etapa de especificação tem uma contraparte de validação no lado direito do "V".

A Implementação (codificação) é uma atividade universal em qualquer metodologia de desenvolvimento de software. No modelo cascata, é uma fase distinta entre o projeto e os testes; no modelo espiral, ocorre em cada iteração; no RUP, é parte da fase de construção; nas metodologias ágeis (Scrum, XP, Kanban), a codificação acontece continuamente em cada sprint ou iteração. Não existe metodologia de desenvolvimento de software que não inclua a implementação — ela é o ato de transformar o projeto em código executável, e sem ela não há software. A afirmação II está correta porque a implementação é inerente a todas as metodologias.

Já o "Benchmarking de código" é um termo que não pertence ao vocabulário das metodologias ágeis. Benchmarking é um conceito da administração e da gestão da qualidade, que consiste em comparar processos, produtos ou práticas com os de organizações de referência (líderes de mercado) para identificar melhores práticas e oportunidades de melhoria. No contexto de software, benchmarking pode se referir à comparação de desempenho de sistemas ou componentes, mas não é uma fase do ciclo de vida ágil. As metodologias ágeis têm fases como planejamento da sprint, desenvolvimento, revisão e retrospectiva — nenhuma delas é chamada de "benchmarking de código". A banca criou esse termo para confundir o candidato, misturando um conceito da administração com o desenvolvimento ágil.

A pegadinha desta questão está na afirmação III: o candidato pode ser tentado a aceitar "benchmarking de código" como uma prática ágil, mas não é. As metodologias ágeis valorizam práticas como programação em pares, refatoração, integração contínua e testes automatizados — nenhuma delas é benchmarking. A distinção crucial é entre o que é uma fase do ciclo de vida (validação, implementação) e o que é uma prática de gestão da qualidade (benchmarking). Guarde essa fronteira: fases do ciclo de vida são etapas do desenvolvimento; benchmarking é uma técnica de comparação de desempenho, não uma fase de desenvolvimento.

1Modelo em V
Especificação (lado esquerdo)
Verificação/Validação (lado direito)
Validação de requisitos
2Modelo cascata
Requisitos → Projeto → Implementação → Testes
3Modelo espiral
Iterações com implementação
4RUP
Fase de construção
5Ágil (Scrum, XP, Kanban)
Implementação contínua em sprints
Benchmarking de código (não é fase ágil)
Ciclo de vida do software (SDLC)
LEVELsoulevel.com.br
Ciclo de vida do software (SDLC): Modelo em V (Especificação (lado esquerdo), Verificação/Validação (lado direito), Validação de requisitos); Modelo cascata (Requisitos → Projeto → Implementação → Testes); Modelo espiral (Iterações com implementação); RUP (Fase de construção); Ágil (Scrum, XP, Kanban) (Implementação contínua em sprints, Benchmarking de código (não é fase ágil))

Item I — ✅ Correto

A Validação de Requisitos é uma fase explícita do modelo em V (V-Model). No V-Model, cada fase do lado esquerdo (especificação) tem uma fase correspondente de verificação/validação no lado direito. A validação de requisitos verifica se o sistema atende às necessidades do cliente, e é uma etapa central do V-Model, que foi projetado justamente para dar ênfase à verificação e validação em cada nível de desenvolvimento.

Item II — ✅ Correto

A Implementação (codificação) é uma atividade presente em todas as metodologias de desenvolvimento de software. No cascata, é uma fase entre projeto e testes; no espiral, ocorre em cada iteração; no RUP, na fase de construção; nas ágeis, em cada sprint. Não existe metodologia sem implementação — é o ato de transformar o projeto em código executável.

Item III — ❌ Incorreto

"Benchmarking de código" não é uma fase das metodologias ágeis. Benchmarking é um conceito da administração/gestão da qualidade (comparação com práticas de referência), não uma etapa do ciclo de vida ágil. As fases ágeis incluem planejamento, desenvolvimento, revisão e retrospectiva — benchmarking não está entre elas. A banca criou esse termo para confundir, misturando um conceito de gestão com desenvolvimento ágil.

Conclusão: Corretos: I e II → portanto a alternativa é a letra A.

Gabarito: letra A

Link permanente: /questoes/fg165493