Questão de Engenharia de Software — Geral — VUNESP 2023
- Código
- vu197103
- Banca
- VUNESP
- Órgão
- Pref SBO
- Ano
- 2023
- Cargo
- Ana ( )
- AWaterfall.
- BPrototipação.
- CEspiral.
- DDesenvolvimento rápido de aplicação.
- EIncremental.
GabaritoE — Incremental.
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.
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.
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.
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.
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.
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.
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