Pular para o conteúdo principal

Questão de Engenharia de Software — Geral — VUNESP 2023

Engenharia de SoftwareGeral
Código
vu197103
Banca
VUNESP
Órgão
Pref SBO
Ano
2023
Cargo
Ana ( )
Assinale a alternativa que identifica a metodologia de desenvolvimento de software cujo produto final é construído progressivamente, sendo que, a cada etapa, novas funcionalidades são acrescentadas, o que torna possível ver os resultados mais rapidamente, permitindo que esse software seja colocado em uso antes mesmo de estar finalizado.
  1. AWaterfall.
  2. BPrototipação.
  3. CEspiral.
  4. DDesenvolvimento rápido de aplicação.
  5. EIncremental.
Revelar gabarito e comentário

GabaritoE — Incremental.

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

Modelos de processo de software: incremental, iterativo e evolucionário

Gabarito: letra E. O modelo incremental constrói o produto final progressivamente, acrescentando novas funcionalidades a cada etapa, permitindo que o software seja colocado em uso antes de estar finalizado — exatamente o que o enunciado descreve. Essa é a característica central do modelo incremental, que se diferencia do modelo em cascata (sequencial e rígido) e da prototipação (foco em versões descartáveis para validar requisitos).

O enunciado descreve com precisão o modelo incremental, um dos modelos de processo de software mais cobrados em concursos. Para entender por que a resposta é a letra E, é preciso dominar a diferença entre os principais modelos de ciclo de vida: cascata, incremental, iterativo, espiral e prototipação. O modelo em cascata (waterfall) é sequencial e linear: cada fase só começa após a conclusão da anterior, e o software só é entregue ao final. Já o modelo incremental divide o sistema em módulos (incrementos), que são desenvolvidos e entregues em sequência — cada incremento adiciona funcionalidades ao produto, que já pode ser usado parcialmente desde o primeiro incremento. O modelo iterativo, por sua vez, repete ciclos de desenvolvimento (iterações) que refinam o produto como um todo, produzindo versões (releases) cada vez mais completas. Na prática, os modelos incremental e iterativo costumam ser combinados (modelo iterativo e incremental), como no Scrum, mas a questão pede especificamente aquele em que "novas funcionalidades são acrescentadas" a cada etapa — a marca registrada do incremental.

Um exemplo concreto: imagine um sistema de e-commerce. No modelo incremental, a primeira entrega pode conter apenas o catálogo de produtos; a segunda entrega adiciona o carrinho de compras; a terceira, o checkout; e assim por diante. O cliente já pode usar o sistema desde a primeira entrega, mesmo sem todas as funcionalidades. Isso contrasta com o modelo em cascata, em que o cliente só vê o produto final depois de todas as fases (análise, projeto, implementação, teste) concluídas. A vantagem do incremental é justamente o retorno rápido ao cliente e a possibilidade de colocar o software em uso antes da finalização completa — exatamente o que o enunciado destaca.

A pegadinha da questão está em distinguir o incremental do iterativo e da prototipação. O modelo iterativo também entrega versões progressivas, mas o foco está em refinar o produto como um todo a cada iteração, não em adicionar funcionalidades novas. A prototipação, por sua vez, cria protótipos (versões simplificadas) para validar requisitos com o cliente, mas esses protótipos geralmente são descartáveis — não são o produto final. O modelo espiral combina aspectos do incremental com análise de riscos, mas sua ênfase está na gestão de riscos a cada ciclo. O RAD (desenvolvimento rápido de aplicação) é uma variação do incremental com foco em ferramentas CASE e prototipação rápida, mas não é o termo mais preciso para a descrição do enunciado.

Guarde a fronteira entre incremental (adiciona funcionalidades, produz builds) e iterativo (refina o produto, produz releases): é exatamente nela que as alternativas se dividem.

  1. 1Cascata: sequencial e rígido
  2. 2Incremental: adiciona funcionalidades
  3. 3Iterativo: refina o produto
  4. 4Espiral: incremental + riscos
  5. 5Prototipação: valida requisitos
LEVEL · soulevel.com.br

Alternativa A — ❌ Incorreta

O modelo Waterfall (cascata) é sequencial e linear: cada fase (requisitos, projeto, implementação, teste, manutenção) só começa após a conclusão da anterior, e o software só é entregue ao final do processo. Não há "construção progressiva" com uso antecipado — o cliente só vê o produto pronto. A banca oferece essa alternativa para confundir quem não domina a diferença entre os modelos.

Alternativa B — ❌ Incorreta

A prototipação cria versões simplificadas do sistema (protótipos) para validar requisitos e obter feedback do cliente. O protótipo, em geral, é descartável (throw-away) e não é o produto final — não se trata de "acrescentar funcionalidades" ao produto em uso, mas de refinar a compreensão dos requisitos. A confusão surge porque a prototipação também permite "ver resultados rapidamente", mas o objetivo é diferente: validar, não entregar incrementos do produto.

Alternativa C — ❌ Incorreta

O modelo Espiral combina elementos do modelo incremental com análise de riscos: cada ciclo (quadrante) envolve definição de objetivos, avaliação de riscos, desenvolvimento e validação. Embora seja evolucionário e permita entregas parciais, sua característica distintiva é a gestão de riscos a cada iteração — não é o modelo que o enunciado descreve, que foca apenas no acréscimo progressivo de funcionalidades.

Alternativa D — ❌ Incorreta

O RAD (Rapid Application Development) é uma metodologia que prioriza ciclos curtos de desenvolvimento com uso intensivo de prototipação e ferramentas CASE, visando entregas rápidas. Embora compartilhe a ideia de desenvolvimento incremental, o RAD é uma abordagem específica com foco em velocidade e reutilização de componentes — não é o termo genérico que o enunciado descreve. A descrição da questão é mais ampla e se encaixa perfeitamente no modelo incremental clássico.

Alternativa E — ✅ Correta ⟵ GABARITO

O modelo incremental é exatamente o que o enunciado descreve: o produto é construído progressivamente, com novas funcionalidades acrescentadas a cada etapa (incremento). Cada incremento é uma parte funcional do sistema, e o software pode ser colocado em uso desde o primeiro incremento, mesmo antes de estar finalizado. Essa é a definição clássica do modelo incremental, que produz builds (versões parciais) e permite ao cliente avaliar o produto mais cedo.

PEGA ESSA DICA!

Para diferenciar os modelos na prova, lembre-se: incremental = adiciona funcionalidades (builds); iterativo = refina o produto (releases); cascata = sequencial e rígido; espiral = incremental + análise de riscos; prototipação = valida requisitos com protótipos descartáveis. Se o enunciado falar em "acrescentar funcionalidades" e "uso antes de finalizar", a resposta é incremental.

Gabarito: letra E

Link permanente: /questoes/vu197103