Um modelo de processo de software, ou simplesmente ciclo de vida do desenvolvimento de software, é um conjunto de atividades relacionadas que levam à produção de um sistema de software. Cada modelo representa um processo a partir de uma perspectiva particular e, desse modo, fornece apenas informações parciais sobre esse processo. (SOMMERVILLE I. Engenharia de Software; 10ª ed. Porto São Paulo: Pearson, 2019. Adaptado.) Analise as descrições de diferentes modelos de processo. I. “__________________ representa(m) atividades fundamentais do processo, como especificação, desenvolvimento, validação e evolução, na forma de fases de processos distintas, como especificação de requisitos; projeto de software; implementação; e, testes.” II. “__________________ interpola(m) as atividades de especificação; desenvolvimento; e, validação. O sistema é desenvolvido como uma série de versões com cada uma delas acrescentando funcionalidades à versão anterior.” III. “__________________ baseia(m)-se na disponibilidade de componentes ou sistemas reusáveis. O processo de desenvolvimento de sistemas se concentra na configuração desses componentes, para que sejam utilizados em um novo contexto.” IV. “__________________divide(m) a realização de um projeto para desenvolvimento de um sistema de software em fases. Em cada uma delas são executadas atividades de diversas disciplinas em diferentes proporções. No desenvolvimento de um sistema de software complexo, esse processo recomenda usar a abordagem de desenvolvimento iterativa e incremental, para dividir as atividades em iterações em que cada iteração gera um incremento do software.” A associação está correta em
- A)I. Cascata II. Desenvolvimento incremental III. Integração e configuração IV. Processo unificado
Correta: associa cascata, desenvolvimento incremental, integração e configuração e processo unificado exatamente como as descrições do enunciado.
- B)I. Integração e configuração II. Desenvolvimento em espiral III. Desenvolvimento estrutural IV. RUP
Errada: troca os modelos, pois espiral não é a descrição de versões sucessivas e RUP não é um modelo de configuração de componentes reutilizáveis.
- C)I. Desenvolvimento em espiral II. Integração e configuração III. Processo unificado IV. Desenvolvimento incremental
Errada: mistura processo unificado com integração e configuração, além de inverter a lógica do incremental, então a associação não fecha.
- D)I. Desenvolvimento evolucionário II. Desenvolvimento interativo III. Desenvolvimento estrutural IV. Integração e configuração
Errada: o item I não descreve desenvolvimento evolucionário e o item IV não corresponde a integração e configuração, então a ordem fica incorreta.
Gabarito: A
A questão cobra modelos clássicos de processo de software, aqueles que você encontra em Sommerville e em muitas provas: cascata, incremental, integração e configuração, e processo unificado. O truque aqui é reconhecer a descrição pelo jeito de organizar as atividades. Se o enunciado fala em fases bem separadas, como requisitos, projeto, implementação e testes, isso é o modelo em cascata, que segue uma sequência linear. Se fala em versões sucessivas, cada uma acrescentando funcionalidades, trata-se do desenvolvimento incremental. Quando o foco está em componentes ou sistemas reusáveis, com ênfase em configurar algo que já existe, estamos diante da integração e configuração. Já quando o texto destaca fases, disciplinas diferentes em cada fase e desenvolvimento iterativo e incremental, ele aponta para o processo unificado, como o RUP.