A existência de diferentes modelos de processos de software busca organizar e dar método à atividade de construção de um software. A complexidade de um software é dependente de diversos fatores. Entretanto, requisitos de software são dinâmicos – demandando, por conseguinte, que suas mudanças se reflitam de alguma forma ao longo do processo de desenvolvimento. Diferentes abordagens propostas na literatura procuram combinar a necessidade de organização do processo em si e a absorção dessas adaptações referentes aos requisitos. Assinale a que indica um modelo de processo de desenvolvimento classificado como especializado.
- A)Concorrente.
Errada: processo concorrente é um modelo de execução/organização do desenvolvimento, mas não é classificado como modelo especializado.
- B)Espiral.
Errada: o modelo espiral é um processo evolutivo e iterativo, focado em risco, não um modelo especializado.
- C)Métodos formais.
Certa: métodos formais são classificados como modelo especializado, por usarem especificações matemáticas e verificação rigorosa.
- D)Modelo V.
Errada: o modelo V é uma variação do ciclo em V, ligado a verificação e validação, mas não entra como especializado.
- E)Prototipação.
Errada: prototipação é uma abordagem para esclarecer requisitos e reduzir incertezas, mas não é modelo especializado.
Gabarito: C
Quando se fala em modelos de processo de software, a ideia é organizar o trabalho para que o desenvolvimento não vire improviso total. Cada modelo tenta equilibrar duas coisas: dar ordem ao projeto e lidar com mudanças de requisitos, que no mundo real mudam mesmo, como cliente que lembra de um detalhe na véspera da entrega. A classificação costuma separar modelos mais gerais, como cascata, espiral, incremental, prototipação e outros, daqueles voltados a contextos específicos. O ponto-chave da questão está na palavra "especializado". Em engenharia de software, modelos especializados são abordagens usadas em situações ou tipos de problema mais específicos, e os métodos formais entram exatamente aí. Eles usam especificações matemáticas para definir o sistema com precisão, reduzindo ambiguidades e ajudando a demonstrar correção. São muito úteis em sistemas críticos, em que erro não é uma opção simpática. Por isso, o gabarito é a letra C. "Métodos formais" é o exemplo clássico de modelo de processo especializado, porque foge do ciclo tradicional de desenvolvimento e se apoia em notação e verificação rigorosas. Já os demais itens são modelos de processo mais conhecidos e gerais, não classificados como especializados nessa taxonomia clássica de Engenharia de Software. Em prova, vale guardar a lógica: se a banca perguntar por modelo especializado, pense em algo menos "genérico de mercado" e mais voltado a uma técnica específica de desenvolvimento e validação. Aqui, a pista foi justamente a ideia de formalismo e precisão.