Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.
left-side-bubbles-backgroundright-side-bubbles-background

Experimente o Premium!star struck emoji

Acesse conteúdos dessa e de diversas outras disciplinas.

Libere conteúdos
sem pagar

Ajude estudantes e ganhe conteúdos liberados!

left-side-bubbles-backgroundright-side-bubbles-background

Experimente o Premium!star struck emoji

Acesse conteúdos dessa e de diversas outras disciplinas.

Libere conteúdos
sem pagar

Ajude estudantes e ganhe conteúdos liberados!

left-side-bubbles-backgroundright-side-bubbles-background

Experimente o Premium!star struck emoji

Acesse conteúdos dessa e de diversas outras disciplinas.

Libere conteúdos
sem pagar

Ajude estudantes e ganhe conteúdos liberados!

left-side-bubbles-backgroundright-side-bubbles-background

Experimente o Premium!star struck emoji

Acesse conteúdos dessa e de diversas outras disciplinas.

Libere conteúdos
sem pagar

Ajude estudantes e ganhe conteúdos liberados!

left-side-bubbles-backgroundright-side-bubbles-background

Experimente o Premium!star struck emoji

Acesse conteúdos dessa e de diversas outras disciplinas.

Libere conteúdos
sem pagar

Ajude estudantes e ganhe conteúdos liberados!

left-side-bubbles-backgroundright-side-bubbles-background

Experimente o Premium!star struck emoji

Acesse conteúdos dessa e de diversas outras disciplinas.

Libere conteúdos
sem pagar

Ajude estudantes e ganhe conteúdos liberados!

left-side-bubbles-backgroundright-side-bubbles-background

Experimente o Premium!star struck emoji

Acesse conteúdos dessa e de diversas outras disciplinas.

Libere conteúdos
sem pagar

Ajude estudantes e ganhe conteúdos liberados!

left-side-bubbles-backgroundright-side-bubbles-background

Experimente o Premium!star struck emoji

Acesse conteúdos dessa e de diversas outras disciplinas.

Libere conteúdos
sem pagar

Ajude estudantes e ganhe conteúdos liberados!

left-side-bubbles-backgroundright-side-bubbles-background

Experimente o Premium!star struck emoji

Acesse conteúdos dessa e de diversas outras disciplinas.

Libere conteúdos
sem pagar

Ajude estudantes e ganhe conteúdos liberados!

left-side-bubbles-backgroundright-side-bubbles-background

Experimente o Premium!star struck emoji

Acesse conteúdos dessa e de diversas outras disciplinas.

Libere conteúdos
sem pagar

Ajude estudantes e ganhe conteúdos liberados!

Prévia do material em texto

Aula 01 (Profs. Diego
Carvalho e Fernando
Pedrosa)
CNU (Bloco 2 - Tecnologia, Dados e
Informação) Conhecimentos Específicos
- Eixo Temático 4 - Desenvolvimento de
Software: Engenharia de software - 2024
(Pós-Edital)
Autor:
Renato da Costa, Diego Carvalho
20 de Janeiro de 2024
39592296820 - Victor Gomes da Costa Lobo
Renato da Costa, Diego Carvalho
Aula 01 (Profs. Diego Carvalho e Fernando Pedrosa)
Índice
..............................................................................................................................................................................................1) Metodologias de Desenvolvimento - Parte 2 - Modelo Iterativo e Incremental 3
..............................................................................................................................................................................................2) Metodologias de Desenvolvimento - Parte 2 - Modelos Específicos 14
..............................................................................................................................................................................................3) Resumo - Metodologias de Desenvolvimento - Parte 2 24
..............................................................................................................................................................................................4) Questões Comentadas - Metodologias de Desenvolvimento - Parte 2 - CESPE 28
..............................................................................................................................................................................................5) Questões Comentadas - Metodologias de Desenvolvimento - Parte 2 - FCC 47
..............................................................................................................................................................................................6) Questões Comentadas - Metodologias de Desenvolvimento - Parte 2 - FGV 52
..............................................................................................................................................................................................7) Questões Comentadas - Metodologias de Desenvolvimento - Parte 2 - DIVERSAS 56
..............................................................................................................................................................................................8) Lista de Questões - Metodologias de Desenvolvimento - Parte 2 - CESPE 70
..............................................................................................................................................................................................9) Lista de Questões - Metodologias de Desenvolvimento - Parte 2 - FCC 77
..............................................................................................................................................................................................10) Lista de Questões - Metodologias de Desenvolvimento - Parte 2 - FGV 81
..............................................................................................................................................................................................11) Lista de Questões - Metodologias de Desenvolvimento - Parte 2 - Diversas 84
CNU (Bloco 2 - Tecnologia, Dados e Informação) Conhecimentos Específicos - Eixo Temático 4 - Desenvolvimento de Software: Engenharia de software - 2024 (Pós-Edital)
www.estrategiaconcursos.com.br
39592296820 - Victor Gomes da Costa Lobo
2
94
PROCESSOS DE DESENVOLVIMENTO 
1 – Modelo Iterativo e Evolucionário 
INCIDÊNCIA EM PROVA: Altíssima 
 
 
 
Antes de começarmos, eu acho oportuno dizer que a imensa maioria dos autores consideram o 
modelo evolucionário/evolutivo como um tipo de modelo iterativo conforme mostra a imagem 
acima! Um dos nossos autores consagrados, Roger Pressman afirma: “os modelos evolucionários 
são iterativos, apresentando características que possibilitam desenvolver versões cada vez mais 
completas do software”. Agora é hora de ver isso melhor... 
 
Ele também afirma que softwares, assim como outros sistemas complexos, evoluem ao longo do 
tempo. Conforme o desenvolvimento do projeto avança, as necessidades de negócio e de produto 
mudam, tornando inadequado seguir um planejamento em linha reta de um produto final. Prazos 
apertados tornam impossível completar um produto de software abrangente, porém uma versão 
limitada tem de ser introduzida para aliviar e/ou atender às pressões comerciais ou da concorrência. 
 
Em determinadas situações, faz-se necessário um modelo de processo que tenha sido projetado 
especificamente para desenvolver um produto que evolua ao longo do tempo e os modelos 
evolucionários possibilitam desenvolver versões cada vez mais completas de software. Eu já sei que 
você está com uma dúvida na ponta da língua: professor, qual é a diferença entre o modelo 
incremental e o modelo evolucionário? Pois é... 
 
Na última edição do livro do Ian Sommerville, ele simplesmente desapareceu com o termo modelo 
evolucionário e o considerou como sinônimo de modelo incremental – como se não houvesse 
nenhuma diferença entre eles! Já Roger Pressman trata ambos quase como idênticos, a não ser por 
uma diferença bastante sutil: de acordo com o autor, o modelo incremental sempre apresenta 
uma funcionalidade operacional ou um produto de trabalho a cada iteração. 
Renato da Costa, Diego Carvalho
Aula 01 (Profs. Diego Carvalho e Fernando Pedrosa)
CNU (Bloco 2 - Tecnologia, Dados e Informação) Conhecimentos Específicos - Eixo Temático 4 - Desenvolvimento de Software: Engenharia de software - 2024 (Pós-Edital)
www.estrategiaconcursos.com.br
39592296820 - Victor Gomes da Costa Lobo
3
94
 
Já o modelo evolucionário, durante as primeiras iterações, pode gerar versões compostas apenas 
por modelos em papel, documentação ou produtos não operacionais para o usuário. É possível, por 
exemplo, ter uma iteração utilizada só para estudar melhor o produto. Isso é uma funcionalidade 
operacional para o cliente? Não! É importante mencionar que muitas questões ignoram essa 
diferença e simplesmente tratam o modelo evolucionário como modelo incremental! 
 
Bem, pessoal... as implementações mais famosas do modelo evolucionário são: prototipagem e 
espiral! Vamos estudá-las um pouco melhor :) 
 
(Senado Federal – 2013) Para Sommerville (2007) modelos evolucionários se 
caracterizam por sua iteratividade e permitem o desenvolvimento de versões de 
software cada vez mais completas. Assinale a alternativa que caracteriza os dois tipos 
processos mais comuns destes modelos: 
 
a) Rup e Cascata. 
b) Cascata e incremental. 
c) RAID e Cascata. 
d) Espiral e Prototipação. 
_______________________ 
Comentários: modelos evolucionários se dividem em espiral e prototipação (Letra D). 
 
 
 
Renato da Costa, Diego Carvalho
Aula 01 (Profs. Diego Carvalho e Fernando Pedrosa)
CNU (Bloco 2 - Tecnologia, Dados e Informação) Conhecimentos Específicos - Eixo Temático 4 - Desenvolvimento de Software: Engenharia de software - 2024 (Pós-Edital)
www.estrategiaconcursos.com.br
39592296820 - Victor Gomes da Costa Lobo
4
94
1.1 – Modelos em Prototipagem 
INCIDÊNCIA EM PROVA: média 
 
 
 
Frequentemente, o cliente define uma série de objetivos gerais para o software, mas não identifica 
detalhadamente os requisitos para funções e recursos. Em outros casos, o desenvolvedor encontra-
se inseguro quanto à eficiência de um algoritmo, quanto à adaptabilidade de um sistema 
operacional ou quanto à forma em que deva ocorrer a interação homem/máquina. Em situações 
assim e em muitas outras, o paradigma de prototipação pode ser a melhor abordagem. 
 
Embora a prototipação possa ser utilizada como um modelo de processo isolado (stand-alone 
process), ela é mais comumente utilizada como uma técnica passível de ser implementada no 
contexto de outros processos. Independentemente da forma como é aplicado, quandoos 
requisitos estão obscuros, o paradigma da prototipação auxilia os interessados a compreender 
melhor o que está para ser construído . 
 
A prototipagem é utilizada quando não se conhecem bem os requisitos. Trata-se de uma forma de 
entendê-los melhor para posteriormente desenvolver o software. Ela se configura como um 
processo iterativo, interativo e rápido de desenvolvimento e o protótipo serve como um mecanismo 
de identificação dos requisitos do software, que servirão para uma futura especificação ou serão 
refinados e entregues ao cliente. 
 
Um protótipo é uma versão inicial de um sistema de software utilizado para demonstrar 
conceitos, experimentar opções de projeto e, geralmente, conhecer mais sobre o problema e 
suas possíveis soluções. O desenvolvimento rápido e iterativo do protótipo é essencial para que os 
custos sejam controlados e os stakeholders do sistema possam experimentá-lo no início do 
processo de software. 
 
Um protótipo de software pode ser usado em um processo de desenvolvimento de software para 
ajudar a antecipar as mudanças que podem ser requisitadas: 
Renato da Costa, Diego Carvalho
Aula 01 (Profs. Diego Carvalho e Fernando Pedrosa)
CNU (Bloco 2 - Tecnologia, Dados e Informação) Conhecimentos Específicos - Eixo Temático 4 - Desenvolvimento de Software: Engenharia de software - 2024 (Pós-Edital)
www.estrategiaconcursos.com.br
39592296820 - Victor Gomes da Costa Lobo
5
94
==2c6c1d==
 
a) No processo de engenharia de requisitos, um protótipo pode ajudar na elicitação e validação 
de requisitos do sistema. 
b) Processo de projeto do sistema, um protótipo pode ser usado para estudar soluções 
específicas de software e apoiar o projeto de interface com o usuário. 
 
Protótipos do sistema permitem aos usuários ver quão bem o sistema dá suporte a seu 
trabalho. Eles podem obter novas ideias para requisitos e encontrar pontos fortes e fracos do 
software; podem, então, propor novos requisitos do sistema. Além disso, o desenvolvimento do 
protótipo pode revelar erros e omissões nos requisitos propostos. A função descrita em uma 
especificação pode parecer útil e bem definida. 
 
No entanto, quando essa função é combinada com outras, os usuários muitas vezes percebem que 
sua visão inicial foi incorreta ou incompleta. A especificação do sistema pode então ser 
modificada para refletir o entendimento dos requisitos alterados. Enquanto o sistema está em 
projeto, um protótipo do sistema pode ser usado para a realização de experimentos de projeto 
visando à verificação da viabilidade da proposta. 
 
Por exemplo: um projeto de banco de dados pode ser prototipado e testado para verificar se suporta 
de modo eficiente o acesso aos dados para as consultas mais comuns dos usuários. Prototipação 
também é uma parte essencial do processo de projeto da interface de usuário. Devido à natureza 
dinâmica de tais interfaces, descrições textuais e diagramas não são bons o suficiente para 
expressar seus requisitos. 
 
Dessa forma, a prototipação rápida com envolvimento do usuário final é a única maneira 
sensata de desenvolver interfaces gráficas de usuário para sistemas de software. Um modelo de 
processo para desenvolvimento de protótipos é apresentado na imagem seguinte. Os objetivos da 
prototipação devem ser explicitados desde o início do processo (Ex: prototipar a interface de 
usuário, prototipar um sistema para validação dos requisitos funcionais do sistema, etc). 
 
 
 
O mesmo protótipo não pode cumprir todos os objetivos. Se os objetivos não são declarados, a 
gerência ou os usuários finais podem não entender a função do protótipo. Consequentemente, eles 
podem não obter os benefícios que esperavam do desenvolvimento do protótipo. O próximo 
estágio do processo é decidir o que colocar e, talvez mais importante ainda, o que deixar de fora do 
sistema de protótipo. 
 
Renato da Costa, Diego Carvalho
Aula 01 (Profs. Diego Carvalho e Fernando Pedrosa)
CNU (Bloco 2 - Tecnologia, Dados e Informação) Conhecimentos Específicos - Eixo Temático 4 - Desenvolvimento de Software: Engenharia de software - 2024 (Pós-Edital)
www.estrategiaconcursos.com.br
39592296820 - Victor Gomes da Costa Lobo
6
94
Para reduzir os custos de prototipação e acelerar o cronograma de entrega, pode-se deixar alguma 
funcionalidade fora do protótipo. Você pode optar por relaxar os requisitos não funcionais, como 
tempo de resposta e utilização de memória. Gerenciamento e tratamento de erros podem ser 
ignorados, a menos que o objetivo do protótipo seja estabelecer uma interface de usuário. Padrões 
de confiabilidade e qualidade de programa podem ser reduzidos. 
 
O estágio final do processo é a avaliação do protótipo. Durante esse estágio, provisões devem ser 
feitas para o treinamento do usuário, e os objetivos do protótipo devem ser usados para derivar 
um plano de avaliação. Os usuários necessitam de um tempo para se sentir confortáveis com um 
sistema novo e para se situarem em um padrão normal de uso. Uma vez que estejam usando o 
sistema normalmente, eles descobrem erros e omissões de requisitos. 
 
Já Pressman entende a prototipação conforme apresenta a imagem ao 
lado: o paradigma de prototipação começa com a comunicação. Faz-se 
uma reunião com os envolvidos para definir os objetivos gerais do 
software, identificar quais requisitos já são conhecidos e esquematizar 
quais áreas necessitam, obrigatoriamente, de uma definição mais ampla. 
Uma iteração de prototipação é planejada rapidamente e ocorre a 
modelagem (na forma de um “projeto rápido”). 
 
Um projeto rápido se concentra em uma representação daqueles aspectos do software que serão 
visíveis aos usuários finais (Por exemplo: o layout da interface com o usuário ou os formatos de 
exibição na tela). O projeto rápido leva à construção de um protótipo, que é empregado e avaliado 
pelos envolvidos, que fornecerão um retorno (também chamado de feedback), que servirá para 
aprimorar os requisitos. 
 
A iteração ocorre conforme se ajusta o protótipo às necessidades de vários interessados e, ao 
mesmo tempo, possibilita a melhor compreensão das necessidades que devem ser atendidas. Na 
sua forma ideal, o protótipo atua como um mecanismo para identificar os requisitos do software. 
Caso seja necessário desenvolver um protótipo operacional, pode-se utilizar partes de programas 
existentes ou aplicar ferramentas que possibilitem gerar rapidamente tais programas operacionais. 
 
O que fazer com o protótipo quando este já serviu ao propósito descrito anteriormente? Na maioria dos 
projetos, o primeiro sistema dificilmente é utilizável. Pode estar muito lento, muito grande, muito 
estranho em sua utilização ou as três coisas juntas. Não há alternativa, a não ser começar de novo 
e desenvolver uma versão redesenhada na qual esses problemas são resolvidos. O protótipo pode 
servir, portanto, como “o primeiro sistema” – que pode ser jogado fora! 
 
No entanto, essa pode ser uma visão idealizada. Embora alguns protótipos sejam construídos como 
“descartáveis”, outros são evolucionários, no sentido de que evoluem lentamente até se 
transformar no sistema real. Tanto os interessados como os engenheiros de software gostam do 
paradigma da prototipação. Os usuários podem ter uma ideia prévia do sistema final, ao passo que 
os desenvolvedores passam a desenvolver algo imediatamente. 
Renato da Costa, Diego Carvalho
Aula 01 (Profs. Diego Carvalho e Fernando Pedrosa)
CNU (Bloco 2 - Tecnologia, Dados e Informação) Conhecimentos Específicos - Eixo Temático 4 - Desenvolvimento de Software: Engenharia de software - 2024 (Pós-Edital)
www.estrategiaconcursos.com.br
39592296820 - Victor Gomes da Costa Lobo
7
94
 
Em outras palavras, protótipos são inviáveis de serem utilizados na maioria dos casos, por ser muito 
lento e/ou muito grande e/ou muito difícil de utilizar. Em geral, os protótipos são descartados assim 
que os objetivos de levantamento de requisitos são alcançados. No entanto, alguns preferem 
refiná-los iterativamente atéevoluir ao sistema final requisitado pelo usuário. O que vocês precisam 
guardar de tudo isso? 
 
Em suma, o que vocês precisam saber é que o modelo de prototipação/prototipagem se baseia na 
ideia de construção de um protótipo que auxiliem a construção do produto de duas maneiras: (1) 
ou para levantar os requisitos do sistema junto aos usuários e depois ser efetivamente 
descartado; ou (2) para ser refinado, refinado e refinado até chegar ao sistema final desejado 
pelos usuários. 
 
DESENVOLVIMENTO 
EXPLORATÓRIO OU 
EVOLUCIONÁRIO 
O objetivo do processo de desenvolvimento exploratório é trabalhar com o cliente para 
explorar os requisitos e entregar um sistema final. O desenvolvimento começa com as 
partes do sistema compreendidas. O sistema evolui por meio da adição de novas 
características propostas pelo cliente. 
PROTOTIPAÇÃO 
THROWAWAY OU 
DESTARTÁVEL 
O objetivo do processo de prototipação throwaway é compreender os requisitos do cliente 
e, a partir disso, desenvolver melhor definição de requisitos para o sistema. O protótipo se 
concentra na experimentação dos requisitos mal compreendidos do cliente, mas é 
posteriormente descartado. 
 
 
Quando uma questão não especifica o tipo de prototipação, geralmente se trata de Prototipação 
Throw-away/Descartável e, não, Evolucionária/Exploratória. Ian Sommerville declara: “O uso o 
termo prototipação no sentido de processo iterativo de desenvolvimento de um sistema experimental 
que não é destinado à disponibilização ao cliente”. 
(TJDFT – 2008) Uma vantagem da prototipação é promover a participação e o 
comprometimento do usuário em relação ao sistema em desenvolvimento. 
_______________________ 
Comentários: protótipos permitem que os usuários introduzam novas ideias para os requisitos e encontrem pontos fortes e 
fracos no software. Ademais, protótipos podem revelar erros e omissões nos requisitos propostos, além de reduzirem o tempo 
de desenvolvimento, treinamento e documentação o sistema. Logo, a prototipação promove uma grande participação dos 
usuários no processo de desenvolvimento (Correto). 
 
(INMETRO – 2010) Um dos riscos da prototipação é o usuário confundir o protótipo com 
o sistema verdadeiro e criar falsas expectativas com relação a prazos e recursos. 
_______________________ 
Comentários: usuários realmente podem confundir o protótipo com o sistema final, sendo que serão descartados 
posteriormente – trata-se de um erro comum (Correto). 
Renato da Costa, Diego Carvalho
Aula 01 (Profs. Diego Carvalho e Fernando Pedrosa)
CNU (Bloco 2 - Tecnologia, Dados e Informação) Conhecimentos Específicos - Eixo Temático 4 - Desenvolvimento de Software: Engenharia de software - 2024 (Pós-Edital)
www.estrategiaconcursos.com.br
39592296820 - Victor Gomes da Costa Lobo
8
94
1.2 – Modelo em Espiral 
INCIDÊNCIA EM PROVA: média 
 
 
 
O Modelo em Espiral foi proposto 
originalmente, em 1988, por Boehm. Sua 
ideia era representar um processo de 
software orientado a riscos. Em vez de 
representar o processo como uma 
sequência de atividades com algum 
retorno entre uma atividade e outra, o 
processo é representado como uma 
espiral. Ele combina atividades de 
desenvolvimento com aspectos gerenciais 
(Planejamento, Tomada de Decisão, 
Análise de Riscos, etc). 
 
O modelo em espiral é também conhecido como prototipagem-em-etapas, por combinar, em 
geral, o modelo em cascata com a prototipação. Cada loop representa uma fase do processo de 
software. Dessa forma, o loop mais interno pode estar relacionado à viabilidade do sistema; o 
próximo loop, à definição de requisitos; o próximo, ao projeto de sistema e assim por diante. Divide-
se em quatro setores: 
 
Setores (por boehm) DESCRIÇÃO 
Determinar objetivos, alternativas 
e restrições 
Definem-se os objetivos da do projeto (aumentar performance, consertar 
funcionalidade, melhorar qualidade), identificam-se alternativas (reúso de 
componentes, comprar pronto) e identificam-se restrições impostas (custo, 
cronograma, entre outros). 
Avaliar alternativas, identificar e 
resolver riscos 
Avaliam-se as alternativas identificadas em relação aos objetivos e 
restrições. Frequentemente, esse processo identifica áreas de incerteza 
Renato da Costa, Diego Carvalho
Aula 01 (Profs. Diego Carvalho e Fernando Pedrosa)
CNU (Bloco 2 - Tecnologia, Dados e Informação) Conhecimentos Específicos - Eixo Temático 4 - Desenvolvimento de Software: Engenharia de software - 2024 (Pós-Edital)
www.estrategiaconcursos.com.br
39592296820 - Victor Gomes da Costa Lobo
9
94
(custos excessivos, falta de recursos) e resolve ou reduz os riscos 
identificados - um protótipo pode ser construído. 
Desenvolver e testar 
Após a redução dos riscos, um modelo de desenvolvimento para o sistema é 
selecionado (Exemplo: prototipação evolucionária, modelos formais, 
modelo em cascata, modelos baseados em componentes). O software é 
desenvolvido e, posteriormente, testado. 
Planejar próximas fases 
Revisa-se o projeto e decide-se sobre o prosseguimento ao próximo loop da 
espiral. Se a decisão for pelo prosseguimento, são elaborados planos para a 
próxima fase do projeto, e terminamos um loop. 
 
 
 
 
Pressman - 5ª Edição Pressman – 7ª Edição 
 
De acordo com Pressman, cada espiral é dividida em cinco setores1: 
 
Setores (por Pressman) DESCRIÇÃO 
Comunicação É a comunicação em si 
Planejamento Estimativa de custos, cronograma e análise de riscos 
Modelagem Análise e design 
Construção Codificação e teste 
implantação Entrega e feedback 
 
Vocês entenderam isso? O Pressman explica isso por meio da imagem acima! Percebam que o loop 
mais interno (1) pode tratar do projeto de desenvolvimento de conceito, o segundo loop (2) pode 
tratar do projeto de desenvolvimento de um produto, o terceiro loop (3) pode tratar do projeto de 
melhoria e o último (4), mais claro, pode tratar do projeto de manutenção. Pode tratar de todo ciclo 
de vida... 
 
 
1 Na edição anterior, eram seis etapas no Modelo em Espiral (Planejamento, Análise de Riscos, Engenharia, Construção e Liberação, Avaliação do 
Cliente e Comunicação com Cliente). Variações do modelo consideram entre três e seis setores da espiral. Infelizmente, cada autor pega a versão 
original e adapta, criando sua versão, portanto vocês verão muitos nomes diferentes para cada setor. 
Renato da Costa, Diego Carvalho
Aula 01 (Profs. Diego Carvalho e Fernando Pedrosa)
CNU (Bloco 2 - Tecnologia, Dados e Informação) Conhecimentos Específicos - Eixo Temático 4 - Desenvolvimento de Software: Engenharia de software - 2024 (Pós-Edital)
www.estrategiaconcursos.com.br
39592296820 - Victor Gomes da Costa Lobo
10
94
Cada loop é uma fase e a fase é escolhida de acordo com as necessidades do negócio! Já os 
setores do processo são fixos para todos os loops. No entanto, Boehm utiliza uma divisão de setores 
diferente do Pressman. No caso de dúvida na hora da prova, considerem a versão original do 
Modelo de Boehm. Além disso, ao final de cada loop, há uma tomada de decisão a respeito do 
projeto. 
 
Vocês perceberam, pela imagem exibida anteriormente, que existem protótipos que são utilizados 
para verificar a viabilidade do projeto. Ao final de cada loop na espiral, deve-se decidir se o 
projeto continuará ou se será interrompido. Pessoal, por que esse modelo se destaca em relação 
aos outros modelos? Porque ele enfatiza bastante um aspecto que o diferencia dos demais: Análise 
de Riscos. 
 
Este é um modelo complexo que precisa ser gerenciado por pessoas que tenham grande 
experiência na avaliação de riscos. Geralmente, o modelo é utilizado em sistemas críticos e grandes! 
Por fim, vamos ver um tema mais polêmico: ele é evolucionário ou é incremental? Pressman diz que 
é iterativo, mas, não, incremental – sendo, então, evolucionário. Logo, é nele em que vamos nos 
basear! 
 
O conceito essencial do modelo é minimizar os riscos pelo uso repetido de protótipos e outros 
meios. Ao contrário de outros modelos, em cada fase a análise de risco érealizada. O modelo 
funciona através da construção de versões progressivamente mais completas do software, 
iniciando no centro da espiral para o exterior. A cada volta, o cliente avalia o trabalho e são feitas 
sugestões. 
 
O modelo, então, se diferencia por ter uma abordagem cíclica, para aumentar incrementalmente 
o grau de definição e de implementação de um sistema enquanto diminui seu grau de risco; e por 
ter conjunto de marcos de ancoragem, para garantir o comprometimento dos interessados com 
soluções exequíveis e mutuamente satisfatórias para o sistema. Vamos ver agora suas maiores 
vantagens e desvantagens: 
 
VANTAGENS DESVANTAGENS 
Suporta mecanismos de redução de riscos. 
Exige analistas de risco bastante experientes. 
 
Obtêm-se versões do sistema a cada iteração. 
Exige uma equipe de desenvolvimento extremamente 
qualificada. 
Entregando produtos cada vez mais refinados e de 
melhor qualidade. 
Exige um gerenciamento de processo mais complexo. 
Reflete as práticas reais de engenharia atual. 
 
Não é recomendado resolver problemas mais simples e 
pequenos. 
Apresenta uma abordagem sistemática. 
 
 
Apresenta estimativas realistas. 
 
 
 
Renato da Costa, Diego Carvalho
Aula 01 (Profs. Diego Carvalho e Fernando Pedrosa)
CNU (Bloco 2 - Tecnologia, Dados e Informação) Conhecimentos Específicos - Eixo Temático 4 - Desenvolvimento de Software: Engenharia de software - 2024 (Pós-Edital)
www.estrategiaconcursos.com.br
39592296820 - Victor Gomes da Costa Lobo
11
94
Pessoal, é importante ver como esse modelo é tratado por Roger Pressman. De acordo com o autor, 
o modelo espiral é um modelo de processo de software evolucionário que acopla a natureza 
iterativa da prototipação com os aspectos sistemáticos e controlados do modelo cascata. Fornece 
potencial para o rápido desenvolvimento de versões cada vez mais completas do software. 
Usando-se o modelo espiral, o software será desenvolvido em uma série de versões evolucionárias. 
 
Nas primeiras iterações, a versão pode consistir em um modelo ou em um protótipo. Já nas 
iterações posteriores, são produzidas versões cada vez mais completas do sistema que passa pelo 
processo de engenharia. Assim que esse processo evolucionário começa, a equipe de software 
realiza atividades indicadas por um circuito em torno da espiral no sentido horário, começando pelo 
seu centro. Os riscos são considerados à medida que cada revolução é realizada. 
 
Diferente de outros modelos de processo, que terminam quando o software é entregue, o modelo 
espiral pode ser adaptado para ser aplicado ao longo da vida do software. Em sua essência, a espiral 
permanece em operação até que o software seja retirado. Trata-se de uma abordagem realista para 
o desenvolvimento em larga escala. Pelo fato de o software evoluir à medida que o processo 
avança, desenvolvedor e cliente compreendem e reagem melhor aos riscos em cada evolução. 
 
Esse modelo usa a prototipação como mecanismo de redução de riscos e torna possível a 
aplicação da prototipação em qualquer estágio do processo evolutivo do produto. Mantém a 
abordagem em etapas sugerida pelo ciclo de vida clássico, mas a incorpora em uma metodologia 
iterativa que reflete mais o mundo real. O modelo espiral requer consideração direta dos riscos 
técnicos em todos os estágios e é capaz de reduzir riscos antes de se tornarem problemáticos. 
 
(ANTAQ – 2009) O modelo em espiral, que descreve o processo de desenvolvimento de 
um software, apresenta uma espiral em que cada loop representa uma fase distinta 
desse processo. A ausência de risco nesse modelo o diferencia dos demais modelos de 
software. 
_______________________ 
Comentários: na verdade, é a presença da análise de riscos que o diferencia (Errado). 
 
(IPEA – 2003) O modelo espiral é um modelo evolucionário de processo de software que 
combina a prototipagem com o modelo em cascata. Contudo, a incerteza em relação ao 
número de ciclos necessários para construir o projeto, leva tal abordagem a empregar o 
modelo de métodos formais para viabilizá-lo. 
_______________________ 
Comentários: a primeira parte do enunciado está perfeita! No entanto, não faz sentido empregar o modelo de métodos formais 
porque não se sabe estimar o número de ciclos para construir um projeto. Ele tem uma natureza iterativa que permite reduzir 
riscos a cada loop (Errado). 
 
Renato da Costa, Diego Carvalho
Aula 01 (Profs. Diego Carvalho e Fernando Pedrosa)
CNU (Bloco 2 - Tecnologia, Dados e Informação) Conhecimentos Específicos - Eixo Temático 4 - Desenvolvimento de Software: Engenharia de software - 2024 (Pós-Edital)
www.estrategiaconcursos.com.br
39592296820 - Victor Gomes da Costa Lobo
12
94
 
 
Renato da Costa, Diego Carvalho
Aula 01 (Profs. Diego Carvalho e Fernando Pedrosa)
CNU (Bloco 2 - Tecnologia, Dados e Informação) Conhecimentos Específicos - Eixo Temático 4 - Desenvolvimento de Software: Engenharia de software - 2024 (Pós-Edital)
www.estrategiaconcursos.com.br
39592296820 - Victor Gomes da Costa Lobo
13
94
Modelos Específicos 
Métodos Formais 
INCIDÊNCIA EM PROVA: baixíssima 
 
 
 
Agora vamos falar sobre alguns modelos específicos que caem bem menos que os anteriores! 
Professor, por que esse nome? Bem, é só para agrupar modelos que não se encaixam diretamente 
em outros grupos. Comecemos pelos Métodos Formais, termo usado para indicar atividades que 
contem com representações matemáticas de software, especificação formal, prova de 
especificação, desenvolvimento transformacional, entre outros. 
 
Esse modelo é utilizado em ambientes extremamente complexos com requisitos rigorosos. São 
bastante lentos e dispendiosos, além de exigirem um treinamento intensivo. Em geral, são 
utilizados para o desenvolvimento de sistemas que necessitam de grande robustez e confiabilidade 
diante da possibilidade de perda de vidas ou sério prejuízo, caso haja falhas. Os chamados métodos 
formais não são amplamente usados no desenvolvimento de software industrial. 
 
A maioria das empresas de desenvolvimento de software não considera adequados com relação 
aos seus custos. Por outro lado, a especificação formal é uma excelente maneira para descobrir 
erros de especificação e apresentar a especificação do sistema de modo não ambíguo. As poucas 
organizações que têm feito investimentos em métodos formais têm constatado menos erros no 
software entregue aos clientes e tudo isso sem aumento de custos. 
 
Os métodos formais podem ser adequados em termos de custo caso seu uso seja limitado a 
partes do núcleo do sistema e caso as empresas desejem fazer alto investimento inicial nessa 
tecnologia. Professor, pode dar um exemplo de método formal? Sim! O Método Cleanroom, que trata 
o desenvolvimento semelhante a uma sala limpa de cirurgia. Vamos ver mais alguns detalhes 
importante... 
 
Renato da Costa, Diego Carvalho
Aula 01 (Profs. Diego Carvalho e Fernando Pedrosa)
CNU (Bloco 2 - Tecnologia, Dados e Informação) Conhecimentos Específicos - Eixo Temático 4 - Desenvolvimento de Software: Engenharia de software - 2024 (Pós-Edital)
www.estrategiaconcursos.com.br
39592296820 - Victor Gomes da Costa Lobo
14
94
Métodos Formais são métodos utilizados para elaboração de sistemas computacionais dando 
prioridade a sua coesão, isto porque estes métodos são desenvolvidos a partir de princípios 
matemáticos que garantem a sua exatidão na capacidade de expressão das ideias vinculadas ao 
projeto de software. Estes métodos foram desenvolvidos para auxiliar todas as etapas de 
desenvolvimento de software1. Vejamos as etapas: 
 
ETAPAS DESCRIÇÃO 
Especificação formal para 
definição de requisitos 
Busca formalizar os requisitos descobertos utilizando algum método formal, criando 
uma modelagem com o uso de elementos. 
 
Refinamento para 
concepção de projeto 
Busca conceber o projeto de software, ou seja, nesta fase é pensado na arquitetura 
do sistema com seus diversos componentes e suas interfaces, dados e 
relacionamentos entre os mesmos. 
Síntesepara 
implementação 
Busca gerar esqueleto de código, a partir do modelo refinado, que pode servir como 
base para implementação real do sistema. 
 
Prototipação para 
validação 
Busca elaborar um protótipo funcional do sistema para validar se o mesmo, atende 
as necessidades do cliente. 
 
Prova para a verificação 
Busca verificar se o sistema desenvolvido foi concebido atendendo a todos os 
Requisitos Funcionais e Não-Funcionais elicitados. 
 
 
O uso de métodos formais pode ser aplicado durante todas as etapas de desenvolvimento do 
software ou somente em algumas etapas ou partes do projeto de desenvolvimento. De acordo com 
Roger Pressman, os métodos formais possibilitam especificar, desenvolver e verificar um sistema 
baseado em computador através da aplicação de uma notação matemática rigorosa. Eles oferecem 
um mecanismo que elimina muitos dos problemas difíceis de ser superados com outros modelos. 
 
Ambiguidade, incompletude e inconsistência podem ser descobertas e corrigidas mais 
facilmente — não por meio de uma revisão local, mas devido à aplicação de análise matemática. 
Quando são utilizados métodos formais durante o projeto, servem como base para verificar a 
programação e, portanto, possibilitam que se descubra e se corrijam erros que, de outra forma, 
poderiam passar despercebidos. 
 
Embora não seja uma abordagem predominante, ele oferece a promessa de software sem defeitos. 
No entanto, foram mencionados motivos para preocupação a respeito de sua aplicabilidade em um 
ambiente de negócios: (1) atualmente, o desenvolvimento de modelos formais consome muito 
tempo e dinheiro; (2) pelo fato de poucos desenvolvedores de software possuírem formação e 
experiência necessárias para aplicação dos métodos formais, é necessário treinamento extensivo. 
 
 
1 Pode ser utilizado também para modelar hardwares. 
Renato da Costa, Diego Carvalho
Aula 01 (Profs. Diego Carvalho e Fernando Pedrosa)
CNU (Bloco 2 - Tecnologia, Dados e Informação) Conhecimentos Específicos - Eixo Temático 4 - Desenvolvimento de Software: Engenharia de software - 2024 (Pós-Edital)
www.estrategiaconcursos.com.br
39592296820 - Victor Gomes da Costa Lobo
15
94
(3) É difícil usar os modelos como um meio de comunicação com clientes tecnicamente 
despreparados (não sofisticados tecnicamente). Apesar de tais preocupações, a abordagem de 
métodos formais tem conquistado adeptos entre os desenvolvedores de software que precisam 
desenvolver software com fator crítico de segurança, bem como entre desenvolvedores que 
sofreriam pesadas sanções econômicas se ocorressem erros no software. 
 
Já Ian Sommerville afirma que, por mais de 30 anos, muitos pesquisadores têm defendido o uso 
de métodos formais de desenvolvimento de software. Os métodos formais são abordagens 
baseadas em matemática para o desenvolvimento de software, em que é definido um modelo 
formal do software. É possível analisar formalmente esse modelo e usá-lo como base para uma 
especificação formal de sistema. 
 
Em princípio, é possível começar com um modelo formal de software e provar que o programa 
desenvolvido é consistente com o modelo, eliminando-se, assim, falhas de software resultantes de 
erros de programação. O ponto de partida para todos os processos formais de desenvolvimento é 
um modelo formal de sistema, que serve como uma especificação de sistema. Para criar esse 
modelo, você traduz os requisitos de usuário do sistema. Como assim, Diego? 
 
Os requisitos de usuário são expressos em linguagem natural, diagramas e tabelas – a ideia é 
representá-los em uma linguagem matemática que defina formalmente a semântica. A 
especificação formal é uma descrição inequívoca do que o sistema deve fazer (sem ambiguidades). 
Usando métodos manuais ou apoiados por ferramentas, é possível verificar se o comportamento 
de um programa é consistente com a especificação. 
 
As especificações formais não são apenas essenciais para uma verificação do projeto e 
implementação do software. Elas são a maneira mais precisa de especificação dos sistemas e, 
assim, de redução da possibilidade de mal-entendidos. Além disso, a construção de uma 
especificação formal força uma análise detalhada dos requisitos, e essa é uma maneira eficaz 
de descobrir problemas de requisitos. 
 
Em uma especificação em linguagem natural, os erros podem ser ocultados pela imprecisão da 
linguagem. Já as especificações formais, em geral, são desenvolvidas como parte de um processo 
baseado em planos, no qual o sistema é completamente especificado antes do desenvolvimento. 
Apesar dessas vantagens, os métodos formais tiveram um impacto limitado no 
desenvolvimento prático de software, mesmo para sistemas críticos. 
 
(UNEMAT – 2012 – A) Métodos Formais é o termo usado para definir o processo de 
especificação de software fundamentado em linguagens formais. 
_______________________ 
Comentários: métodos formais realmente definem um processo de especificação de software baseado em linguagens formais 
(Correto). 
 
 
Renato da Costa, Diego Carvalho
Aula 01 (Profs. Diego Carvalho e Fernando Pedrosa)
CNU (Bloco 2 - Tecnologia, Dados e Informação) Conhecimentos Específicos - Eixo Temático 4 - Desenvolvimento de Software: Engenharia de software - 2024 (Pós-Edital)
www.estrategiaconcursos.com.br
39592296820 - Victor Gomes da Costa Lobo
16
94
Modelo Baseado Em Componentes 
INCIDÊNCIA EM PROVA: baixa 
 
 
 
Pessoal, vocês já pararam para pensar por que a disciplina de Engenharia 
de Software é denominada Engenharia de Software? Vamos contar essa 
história: esse conceito surgiu em 1968, em uma conferência 
organizada para discutir a Crise do Software. Essa crise foi o resultado 
da introdução de circuitos integrados em computadores. E isso era 
ruim, professor? Não, pelo contrário! 
 
Desde o ingresso dos circuitos integrados, tornou-se possível e viável fazer aplicações 
extremamente complexas. No entanto, o desenvolvimento de software era bastante informal e 
incipiente, criando softwares, cujo custo superava as previsões, não confiáveis, difíceis de manter 
e de desempenho insatisfatório. Naquela época, os custos de hardware estavam caindo, enquanto 
os custos de software aumentavam rapidamente. 
 
Novas técnicas e métodos eram necessários para controlar a complexidade inerente aos grandes 
sistemas de software. E por que o nome engenharia de software? Porque foi uma tentativa de 
contornar a crise ao utilizar princípios de engenharia, a fim de obter um software de maneira 
econômica e que fosse confiável, dando um tratamento mais sistemático e controlado (comum às 
engenharias) ao desenvolvimento de sistemas de software complexos. 
 
Pessoal, pensem comigo: a engenharia evolui seus métodos há centenas de anos, enquanto o 
desenvolvimento de software é bastante recente! Logo, faz sentido utilizar os conceitos 
consolidados de engenharia para melhorar seus processos de desenvolvimento de software. Não 
acham? Ok, professor! Mas o que isso tem a ver com reúso de componentes? Ora, a Engenharia é 
especializada em produzir componentes reusáveis. 
 
Renato da Costa, Diego Carvalho
Aula 01 (Profs. Diego Carvalho e Fernando Pedrosa)
CNU (Bloco 2 - Tecnologia, Dados e Informação) Conhecimentos Específicos - Eixo Temático 4 - Desenvolvimento de Software: Engenharia de software - 2024 (Pós-Edital)
www.estrategiaconcursos.com.br
39592296820 - Victor Gomes da Costa Lobo
17
94
Engenheiros raramente fabricam um componente a partir do nada. Eles baseiam seus projetos em 
componentes exaustivamente testados em outros sistemas. Quando se fala em Modelo baseado 
em Componentes, refere-se a uma estratégia de engenharia de software na qual o processo de 
desenvolvimento é voltado à reusabilidade. E qual a vantagem disso? Isso resulta em redução de 
custos de produção e manutenção, entregas mais rápidas e aumento de qualidade. 
 
A abordagem para desenvolvimento de software Component-Based Software Engineering (CBSE) 
tem utilizado o reúso como peça principal. Essa abordagemdepende de uma grande base de 
componentes reusáveis e algum framework de integração. Apesar não termos valores precisos, 
sabemos que os custos de desenvolvimento são menores que os custos de integração e de 
teste. 
 
Esses custos aumentam porque é necessário assegurar que os componentes utilizados realmente 
satisfazem às especificações e funcionam com outros componentes. Agora voltando um pouco: o 
que seria exatamente um componente? Pressman afirma que é um bloco de construção modular, 
isto é, uma parte do sistema modular, executável, implantável, independente, padronizada e 
reutilizável que encapsula a implementação e expõe um conjunto de interfaces do sistema. 
 
 
 
Fases do modelo 
baseado em 
componentes 
DESCRIÇÃO 
Especificação de 
Requisitos 
Tem o objetivo de traduzir as informações coletadas durante a atividade de análise em um 
documento que define um conjunto de requisitos de software. Devem ser incluídos dois tipos 
de requisitos nesse documento: os Requisitos de Usuário e Requisitos de Sistema. 
 
Análise de 
Componentes 
Nesta fase, é feita uma busca pelos componentes para implementar essa especificação. 
Geralmente, não existe uma correspondência exata entre o componente encontrado e o 
procurado. Muitas vezes, os componentes que podem ser usados fornecem apenas parte da 
funcionalidade necessária. 
Modificação de 
Requisitos 
Os requisitos são analisados usando as informações sobre os componentes encontrados, que 
são modificados para refletir os componentes disponíveis. Quando as modificações são 
Especificação de 
Requisitos
Análise de 
Componentes
ALTERAÇÃO de 
Requisitos
Projeto de 
Sistema com 
Reúso
Desenvolvimento 
e Integração
Validação de 
Sistema
Renato da Costa, Diego Carvalho
Aula 01 (Profs. Diego Carvalho e Fernando Pedrosa)
CNU (Bloco 2 - Tecnologia, Dados e Informação) Conhecimentos Específicos - Eixo Temático 4 - Desenvolvimento de Software: Engenharia de software - 2024 (Pós-Edital)
www.estrategiaconcursos.com.br
39592296820 - Victor Gomes da Costa Lobo
18
94
impossíveis, a atividade de análise de componentes pode ser novamente realizada para 
procurar alternativas. 
Projeto de Sistema 
com Reúso 
O framework do sistema é projetado ou um framework existente é reutilizado. Os projetistas 
levam em consideração os componentes reusados. Pode ser necessário projetar algum 
software novo caso os componentes reusáveis não estejam disponíveis para aquisição para o 
sistema. 
Desenvolvimento e 
Integração 
Software que não pode ser adquirido externamente é desenvolvido e os componentes e os 
sistemas COTS são integrados para criar os novos sistemas. A integração de sistema, neste 
modelo, pode ser parte do processo de desenvolvimento, em vez de ser uma atividade 
separada. 
Validação de 
Sistema 
Processo de verificação de se um sistema atende às necessidades e expectativas do cliente. 
Professor, o que são Sistemas COTS? Esse é o acrônimo de Commercial Off-The-Shelf, que 
é um conjunto de soluções pré-fabricadas e disponíveis no mercado, podendo ser compradas 
ou licenciadas, i.e., uma grande biblioteca de componentes prontos. 
 
Os Componentes COTS são desenvolvidos por vendedores que os oferecem como produtos, 
disponibilizam a funcionalidade almejada juntamente com as interfaces bem definidas, sendo que 
essas interfaces permitem que o componente seja integrado ao software a ser desenvolvido. O 
modelo de desenvolvimento baseado em componentes incorpora muitas das características do 
modelo espiral. 
 
Ele é evolucionário por natureza, demandando uma abordagem iterativa para a criação de 
software. O modelo de desenvolvimento baseado em componentes desenvolve aplicações a partir 
de componentes de software pré-empacotados e conduz ao reúso do software; sendo que essa 
reusabilidade proporciona uma série de benefícios mensuráveis aos engenheiros de software. 
O modelo evolucionário assume que recursos adicionais podem ser adicionados, se necessários. 
 
No entanto, componentes de software de prateleira (COTS) não podem ser atualizados por uma 
equipe de desenvolvimento particular. A ausência de código-fonte barra a equipe de 
desenvolvimento de ajustar estes componentes de software para suas necessidades. Então, apesar 
de conter algumas características do modelo em cascata e do modelo evolucionário, ele não pode 
ser considerado como parte desses modelos. 
 
(SERPRO – 2008) O modelo orientado a reúso parte de um software existente para que 
se crie outro, no todo ou apenas em parte de seus componentes. 
_______________________ 
Comentários: esse modelo realmente parte de um software ou componente existente para se criar outro (Correto). 
 
(SERPRO – 2004) O grande objetivo do uso de engenharia de software por componentes 
é a produção de software de alta qualidade e baixo custo. 
_______________________ 
Comentários: de fato, criam-se componentes de alta qualidade e baixo custo de produção e manutenção (Correto). 
 
 
Renato da Costa, Diego Carvalho
Aula 01 (Profs. Diego Carvalho e Fernando Pedrosa)
CNU (Bloco 2 - Tecnologia, Dados e Informação) Conhecimentos Específicos - Eixo Temático 4 - Desenvolvimento de Software: Engenharia de software - 2024 (Pós-Edital)
www.estrategiaconcursos.com.br
39592296820 - Victor Gomes da Costa Lobo
19
94
Modelo Orientado a Aspectos 
INCIDÊNCIA EM PROVA: baixa 
 
 
 
A maioria dos processos de desenvolvimento de software vem considerando sistemas com 
unidades cada vez menores de desenvolvimento, isto é, vem modularizando cada vez mais os 
sistemas. A Engenharia de Software provê as bases para o desenvolvimento de software, já as 
linguagens de programação permitem a abstração de unidades e composição destas de 
inúmeras formas possíveis. 
 
Sabe-se que no desenvolvimento de software existem propriedades que não se enquadram em 
componentes da decomposição funcional, tais como: tratamento de exceções, restrições de tempo 
real, distribuição e controle de concorrência. Vocês compreendem isso? A grande maioria das 
unidades de programação podem ser decompostas em uma função, porém existem unidades 
que não podem. 
 
Qual o problema, professor? Bem, essas unidades normalmente ficam espalhadas em diversos 
componentes do sistema afetando a performance e a semântica da aplicação. Vamos traduzir? 
Quando nós modularizamos um sistema, torna-se mais fácil e intuitivo entender o 
funcionamento de uma aplicação; essas unidades que não podem ser decompostas em funções 
atrapalham esse entendimento. 
 
Imaginem que temos um método que recebe um valor, realiza um processamento e devolve outro 
valor. Uma função dentro desse método possui um tratamento de exceção! Galera, tratamento 
de exceção não faz parte da funcionalidade principal, no entanto – mesmo assim – ela fica presente 
no código (atrapalhando a modularização e o acoplamento). De fato, essas unidades podem ser 
visualizadas e analisadas relativamente em separado. 
 
No entanto, sua implementação utilizando linguagens orientadas a objeto ou estruturadas torna-
se confusa e seu código encontra-se espalhado através do código da aplicação, dificultando a 
Renato da Costa, Diego Carvalho
Aula 01 (Profs. Diego Carvalho e Fernando Pedrosa)
CNU (Bloco 2 - Tecnologia, Dados e Informação) Conhecimentos Específicos - Eixo Temático 4 - Desenvolvimento de Software: Engenharia de software - 2024 (Pós-Edital)
www.estrategiaconcursos.com.br
39592296820 - Victor Gomes da Costa Lobo
20
94
separação da funcionalidade básica do sistema dessas propriedades. A Programação Orientada 
a Aspectos (POA) é uma abordagem que permite a separação dessas propriedades ortogonais2 
dos componentes funcionais de uma forma natural e concisa. 
 
Ela se utiliza de mecanismos de abstração e de composição para a produção de código executável. 
Vocês podem me perguntar: Professor, por que não podemos utilizar programação orientada a 
objetos ou programação estruturada? Atualmente, conhecem-se vários problemas de programação 
em que as técnicasde orientação a objetos ou de programação estruturada não são suficientes para 
separar claramente todas as decisões de projeto que o programa deve implementar. 
 
Isto se deve ao fato de que as abordagens mais utilizadas se concentram em encontrar e 
compor unidades funcionais da decomposição do sistema. Já outras questões importantes não 
são bem localizadas no projeto funcional. Exemplos disto podem ser propriedades que envolvem 
várias unidades funcionais, tais como: sincronização, restrições de tempo, concorrência, 
distribuição de objetos, persistência, etc. 
 
Em suma, POA é um paradigma de desenvolvimento de software que separa responsabilidades, 
requisitos e interesses de um sistema. A modularização dos aspectos produz uma arquitetura fácil 
de projetar, implementar e manter. Muitos acham que esse paradigma veio para substituir a 
Programação Orientada a Objetos (POO). Está certo isso? Claro que não! POA veio para 
complementar a POO (visto que utilizá-la isoladamente não traz benefícios para o projeto). 
 
Para tal, ela mantém o foco na separação de interesses (Separation of Concerns), que são 
requisitos específicos que devem ser atendidos para satisfazer o objetivo de um sistema, mas 
que não pertencem ao domínio do negócio. Há dois tipos: (1) Interesses Principais (Core 
Concerns): capturam as funcionalidades centrais de um módulo; (2) Interesses Ortogonais 
(Crosscutting Concerns): capturam funcionalidades periféricas. 
 
Por que separar interesses? Porque, dessa forma, gera-se código de melhor qualidade; gera-se 
maior modularidade; facilita-se atribuição de responsabilidade entre módulos distintos; promove-
se a reusabilidade de código; facilita-se a evolução de software; viabiliza-se a análise do problema 
dentro de domínios específicos; entre outras tantas vantagens. Ok, professor... mas o que são 
exatamente aspectos? 
 
Aspectos são propriedades de um sistema envolvendo diversos componentes funcionais que não 
podem ser expressos usando notações e linguagens atuais de uma maneira precisa (Ex: 
sincronização, persistência, interação entre componentes, etc). Os interesses são carregados em 
um módulo chamado aspecto. Professor, um aspecto é um componente? Não, componentes podem 
ser encapsulados em um procedimento generalizado (objeto, método, procedimento, etc). 
 
 
2 Quando duas propriedades sendo programadas devem ser compostas de maneira diferente e ainda coordenarem-se é dito que elas são ortogonais 
entre si. 
Renato da Costa, Diego Carvalho
Aula 01 (Profs. Diego Carvalho e Fernando Pedrosa)
CNU (Bloco 2 - Tecnologia, Dados e Informação) Conhecimentos Específicos - Eixo Temático 4 - Desenvolvimento de Software: Engenharia de software - 2024 (Pós-Edital)
www.estrategiaconcursos.com.br
39592296820 - Victor Gomes da Costa Lobo
21
94
Aspectos, em geral, não são unidades de decomposição funcional do sistema, mas propriedades 
que envolvem diversas unidades de um sistema, afetando a semântica dos componentes funcionais 
sistematicamente. Por exemplo: controle de concorrência em operações em uma mesma conta 
bancária, registro das transações de uma determinada conta, política de segurança de acesso aos 
usuários de um sistema, restrições de tempo real associadas à entrega de mensagens. 
 
Dada a definição de componentes e aspectos, é possível colocar o objetivo da programação 
orientada a aspectos: oferecer suporte para o programador na tarefa de separar claramente os 
componentes dos aspectos, os componentes entre si e os aspectos entre si, utilizando-se de 
mecanismos que permitam a abstração e composição destas, produzindo o sistema desejado3. E o 
que Roger Pressman tem a dizer sobre esse paradigma? Vejamos... 
 
Independentemente do processo de software escolhido, os desenvolvedores de software 
complexos, invariavelmente, implementam um conjunto de recursos, funções e conteúdo 
localizados. Essas características de software localizadas são modeladas como componentes (por 
exemplo, classes orientadas a objetos) e, em seguida, construídas dentro do contexto da 
arquitetura do sistema. 
 
À medida que os modernos sistemas baseados em computadores se tornam mais sofisticados, 
certas restrições – propriedades exigidas pelo cliente ou áreas de interesse técnico — se estendem 
por toda a arquitetura. Algumas restrições são propriedades de alto nível de um sistema (Ex: 
segurança, tolerância a falhas). Outras afetam funções (Ex: a aplicação de regras de negócio), sendo 
que outras são sistêmicas (Ex: sincronização de tarefas ou gerenciamento de memória). 
 
De acordo com o autor, o modelo orientado a aspectos é um paradigma de engenharia de software 
relativamente novo que oferece uma abordagem metodológica e de processos para definir, 
especificar, projetar e construir aspectos. Já Ian Sommerville nos oferece uma visão mais detalhada 
– ele nos introduz o assunto da seguinte maneira: na maioria dos sistemas de grande porte, os 
relacionamentos entre requisitos e componentes de programa são complexos. 
 
Um único requisito pode ser implementado por uma série de componentes, e cada componente 
pode incluir elementos de vários requisitos. Na prática, isso significa que mudar requisitos pode 
envolver o entendimento e a alteração de vários componentes. Como alternativa, um componente 
pode prover alguma funcionalidade central, mas também incluir o código que implementa vários 
requisitos de sistema. 
 
Mesmo quando parece haver reúso significativo em potencial, pode ficar caro reusar tais 
componentes. O reúso pode envolver sua alteração para remover um código extra que não esteja 
associado com a funcionalidade central do componente. O modelo orientado a aspectos é uma 
abordagem para desenvolvimento de software que se propõe a resolver esse problema e tornar os 
programas mais fáceis de manter e reusar. 
 
3 AspectJ é a mais famosa linguagem de programação orientada a aspectos. 
Renato da Costa, Diego Carvalho
Aula 01 (Profs. Diego Carvalho e Fernando Pedrosa)
CNU (Bloco 2 - Tecnologia, Dados e Informação) Conhecimentos Específicos - Eixo Temático 4 - Desenvolvimento de Software: Engenharia de software - 2024 (Pós-Edital)
www.estrategiaconcursos.com.br
39592296820 - Victor Gomes da Costa Lobo
22
94
==2c6c1d==
 
Ela é baseada em abstrações chamadas aspectos, que implementam funcionalidade de sistema que 
pode ser requerida em vários lugares diferentes em um programa. Eles encapsulam a 
funcionalidade que cruza e coexiste com outra funcionalidade que existe no sistema e são usados 
junto com outras abstrações, como objetos e métodos. O principal benefício de uma abordagem 
orientada a aspectos é que ela suporta a separação de interesses. 
 
Separar interesses em elementos diferentes em vez de incluir interesses diferentes na mesma 
abstração lógica é uma boa prática de engenharia de software. Ao apresentar interesses 
transversais como aspectos, esses interesses podem ser entendidos, reusados e modificados de 
forma independente, sem a preocupação de onde o código é usado. Um exemplo clássico é a 
autenticação de usuário... 
 
A autenticação de usuário é uma funcionalidade que pode ser representada como um aspecto que 
requisita um nome de usuário e uma senha. Isso pode ser automaticamente embutido no programa 
sempre que uma autenticação for requerida. Digamos que você tenha um requisito de que a 
autenticação de usuário seja requerida antes de qualquer alteração dos detalhes pessoais ser feita 
no banco de dados – isso pode ser um aspecto. 
 
 
 
 
 
 
 
 
 
Renato da Costa, Diego Carvalho
Aula 01 (Profs. Diego Carvalho e Fernando Pedrosa)
CNU (Bloco 2 - Tecnologia, Dados e Informação) Conhecimentos Específicos - Eixo Temático 4 - Desenvolvimento de Software: Engenharia de software - 2024 (Pós-Edital)
www.estrategiaconcursos.com.br
39592296820 - Victor Gomes da Costa Lobo
23
94
RESUMO 
 
Modelo evolucionário 
 
Modelo Evolucionário x Iterativo: o modelo evolucionário funciona também com base em iterações ou repetiçõescom o intuito de refinar o software a partir do feedback do cliente. A ideia é utilizar um esboço inicial e ir 
incrementando, melhorando, aperfeiçoando o software de acordo com as necessidades dos clientes até chegar a uma 
versão. Ao fim, o sistema pode ser entregue ao cliente ou ser refeito de forma mais estruturada. 
 
Modelo em prototipagem 
 
 
 
 
 
 
DESENVOLVIMENTO 
EXPLORATÓRIO OU 
EVOLUCIONÁRIO 
O objetivo do processo de desenvolvimento exploratório é trabalhar com o cliente para 
explorar os requisitos e entregar um sistema final. O desenvolvimento começa com as 
partes do sistema compreendidas. O sistema evolui por meio da adição de novas 
características propostas pelo cliente. 
PROTOTIPAÇÃO 
THROWAWAY OU 
DESTARTÁVEL 
O objetivo do processo de prototipação throwaway é compreender os requisitos do cliente 
e, a partir disso, desenvolver melhor definição de requisitos para o sistema. O protótipo se 
concentra na experimentação dos requisitos mal compreendidos do cliente, mas é 
posteriormente descartado. 
 
Modelo em espiral 
 
O Modelo em Espiral foi proposto originalmente, em 1988, por Boehm. Sua ideia era representar um processo 
de software orientado a riscos. Em vez de representar o processo como uma sequência de atividades com algum 
retorno entre uma atividade e outra, o processo é representado como uma espiral. É conhecido como prototipagem-
em-etapas, por combinar, em geral, o modelo em cascata com a prototipação. Cada loop representa uma fase do 
processo de software. 
 
Setores (por boehm) DESCRIÇÃO 
Determinar objetivos, alternativas 
e restrições 
Definem-se os objetivos da do projeto (aumentar performance, consertar 
funcionalidade, melhorar qualidade), identificam-se alternativas (reúso de 
componentes, comprar pronto) e identificam-se restrições impostas (custo, 
cronograma, entre outros). 
Renato da Costa, Diego Carvalho
Aula 01 (Profs. Diego Carvalho e Fernando Pedrosa)
CNU (Bloco 2 - Tecnologia, Dados e Informação) Conhecimentos Específicos - Eixo Temático 4 - Desenvolvimento de Software: Engenharia de software - 2024 (Pós-Edital)
www.estrategiaconcursos.com.br
39592296820 - Victor Gomes da Costa Lobo
24
94
Avaliar alternativas, identificar e 
resolver riscos 
Avaliam-se as alternativas identificadas em relação aos objetivos e 
restrições. Frequentemente, esse processo identifica áreas de incerteza 
(custos excessivos, falta de recursos) e resolve ou reduz os riscos 
identificados - um protótipo pode ser construído. 
Desenvolver e testar 
Após a redução dos riscos, um modelo de desenvolvimento para o sistema é 
selecionado (Exemplo: prototipação evolucionária, modelos formais, 
modelo em cascata, modelos baseados em componentes). O software é 
desenvolvido e, posteriormente, testado. 
Planejar próximas fases 
Revisa-se o projeto e decide-se sobre o prosseguimento ao próximo loop da 
espiral. Se a decisão for pelo prosseguimento, são elaborados planos para a 
próxima fase do projeto, e terminamos um loop. 
 
 
 
 
VANTAGENS DESVANTAGENS 
Suporta mecanismos de redução de riscos. 
 
Exige analistas de risco bastante experientes. 
 
Obtêm-se versões do sistema a cada iteração. 
 
Exige uma equipe de desenvolvimento extremamente 
qualificada. 
Entregando produtos cada vez mais refinados e de 
melhor qualidade. 
Exige um gerenciamento de processo mais complexo. 
Reflete as práticas reais de engenharia atual. 
 
Não é recomendado resolver problemas mais simples e 
pequenos. 
Apresenta uma abordagem sistemática. 
 
 
Apresenta estimativas realistas. 
 
 
 
Métodos formais 
 
Métodos Formais permitem indicar atividades que contem com representações matemáticas de software, 
especificação formal, prova de especificação, desenvolvimento transformacional, etc. Esse modelo é utilizado em 
ambientes extremamente complexos. São bastante lentos e dispendiosos, além de exigirem um treinamento 
intensivo. Em geral, são utilizados para o desenvolvimento de sistemas que necessitam de grande robustez e 
confiabilidade diante da possibilidade de perda de vidas ou sério prejuízo, caso haja falhas. 
 
Renato da Costa, Diego Carvalho
Aula 01 (Profs. Diego Carvalho e Fernando Pedrosa)
CNU (Bloco 2 - Tecnologia, Dados e Informação) Conhecimentos Específicos - Eixo Temático 4 - Desenvolvimento de Software: Engenharia de software - 2024 (Pós-Edital)
www.estrategiaconcursos.com.br
39592296820 - Victor Gomes da Costa Lobo
25
94
ETAPAS DESCRIÇÃO 
Especificação formal para 
definição de requisitos 
Busca formalizar os requisitos descobertos utilizando algum método formal, criando 
uma modelagem com o uso de elementos. 
 
Refinamento para 
concepção de projeto 
Busca conceber o projeto de software, ou seja, nesta fase é pensado na arquitetura 
do sistema com seus diversos componentes e suas interfaces, dados e 
relacionamentos entre os mesmos. 
Síntese para 
implementação 
Busca gerar esqueleto de código, a partir do modelo refinado, que pode servir como 
base para implementação real do sistema. 
 
Prototipação para 
validação 
Busca elaborar um protótipo funcional do sistema para validar se o mesmo, atende 
as necessidades do cliente. 
 
Prova para a verificação 
Busca verificar se o sistema desenvolvido foi concebido atendendo a todos os 
Requisitos Funcionais e Não-Funcionais elicitados. 
 
 
Modelo baseado em componentes 
 
O Modelo Baseado em Componentes tem utilizado o reúso como peça principal. Essa abordagem depende de uma 
grande base de componentes reusáveis e algum framework de integração. 
 
 
 
Fases do modelo 
baseado em 
componentes 
DESCRIÇÃO 
Especificação de 
Requisitos 
Tem o objetivo de traduzir as informações coletadas durante a atividade de análise em um 
documento que define um conjunto de requisitos de software. Devem ser incluídos dois tipos 
de requisitos nesse documento: os Requisitos de Usuário e Requisitos de Sistema. 
 
Análise de 
Componentes 
Nesta fase, é feita uma busca pelos componentes para implementar essa especificação. 
Geralmente, não existe uma correspondência exata entre o componente encontrado e o 
procurado. Muitas vezes, os componentes que podem ser usados fornecem apenas parte da 
funcionalidade necessária. 
Modificação de 
Requisitos 
Os requisitos são analisados usando as informações sobre os componentes encontrados, que 
são modificados para refletir os componentes disponíveis. Quando as modificações são 
impossíveis, a atividade de análise de componentes pode ser novamente realizada para 
procurar alternativas. 
Especificação de 
Requisitos
Análise de 
Componentes
ALTERAÇÃO de 
Requisitos
Projeto de Sistema 
com Reúso
Desenvolvimento e 
Integração
Validação de 
Sistema
Renato da Costa, Diego Carvalho
Aula 01 (Profs. Diego Carvalho e Fernando Pedrosa)
CNU (Bloco 2 - Tecnologia, Dados e Informação) Conhecimentos Específicos - Eixo Temático 4 - Desenvolvimento de Software: Engenharia de software - 2024 (Pós-Edital)
www.estrategiaconcursos.com.br
39592296820 - Victor Gomes da Costa Lobo
26
94
==2c6c1d==
Projeto de Sistema 
com Reúso 
O framework do sistema é projetado ou um framework existente é reutilizado. Os projetistas 
levam em consideração os componentes reusados. Pode ser necessário projetar algum 
software novo caso os componentes reusáveis não estejam disponíveis para aquisição para o 
sistema. 
Desenvolvimento e 
Integração 
Software que não pode ser adquirido externamente é desenvolvido e os componentes e os 
sistemas COTS são integrados para criar os novos sistemas. A integração de sistema, neste 
modelo, pode ser parte do processo de desenvolvimento, em vez de ser uma atividade 
separada. 
Validação de 
Sistema 
Processo de verificação de se um sistema atende às necessidades e expectativas do cliente. 
Professor, o que são Sistemas COTS? Esse é o acrônimo de Commercial Off-The-Shelf, que é 
um conjunto de soluções pré-fabricadas e disponíveis no mercado, podendo ser compradas 
ou licenciadas, i.e., uma grande biblioteca de componentesprontos. 
 
Modelo orientado a aspectos 
 
A Programação Orientada a Aspectos é uma abordagem que permite a separação dessas propriedades ortogonais 
dos componentes funcionais de uma forma natural e concisa, utilizando-se de mecanismos de abstração e de 
composição para a produção de código executável. 
 
 PARA MAIS DICAS: www.instagram.com/professordiegocarvalho 
 
Renato da Costa, Diego Carvalho
Aula 01 (Profs. Diego Carvalho e Fernando Pedrosa)
CNU (Bloco 2 - Tecnologia, Dados e Informação) Conhecimentos Específicos - Eixo Temático 4 - Desenvolvimento de Software: Engenharia de software - 2024 (Pós-Edital)
www.estrategiaconcursos.com.br
39592296820 - Victor Gomes da Costa Lobo
27
94
QUESTÕES COMENTADAS – CESPE 
 
1. (CESPE / FUNPRESP-EXE - 2022) No modelo em espiral de desenvolvimento de software, cada 
giro ou loop da espiral representa uma fase do processo de software. 
 
Comentários: 
 
Perfeito! Vimos em aula que no modelo em espiral cada loop representa uma fase do processo de 
software. Dessa forma, o loop mais interno pode estar relacionado à viabilidade do sistema; o 
próximo loop, à definição de requisitos; o próximo, ao projeto de sistema e assim por diante. Em 
outras palavras, cada loop é uma fase e a fase é escolhida de acordo com as necessidades do 
negócio. 
 
Gabarito: Correto 
 
2. (CESPE / BANRISUL – 2022) Uma descrição ideal de um componente de software reutilizável 
deve ser feita com base no modelo 3C, que significa composição, conteúdo e contexto. 
 
Comentários: 
 
De acordo com Roger Pressman: “Um componente de software reutilizável pode ser descrito de várias 
maneiras; porém, uma descrição ideal engloba aquilo que Tracz denominou modelo 3C – conceito, 
conteúdo e contexto –, uma descrição daquilo que o componente faz, como isso é obtido com conteúdo 
que pode ficar oculto para usuários eventuais e que precisa ser conhecido apenas por aqueles que 
pretendem modificar ou testar o componente e onde o componente reside em seu domínio de 
aplicabilidade”. 
 
Gabarito: Errado 
 
3. (CESPE / MPC-SC – 2022) No processo de desenvolvimento de software, a prototipação pode 
ajudar tanto na elicitação de requisitos do sistema quanto no estudo de soluções específicas do 
software de modo a apoiar o projeto de interface de usuário. 
 
Comentários: 
 
Perfeito! A prototipação é um processo útil para ajudar a desenvolver e obter feedback sobre o 
design de um software. No processo de elicitação de requisitos, a prototipação pode ajudar a 
identificar quais são as necessidades do usuário e quais funcionalidades precisam ser incluídas no 
sistema. Isso também ajuda a verificar se o projeto está abrangendo todas as necessidades do 
usuário. Além disso, a prototipação também pode ser usada para explorar diferentes soluções para 
o design da interface do usuário. Isso permite que os desenvolvedores experimentem diferentes 
Renato da Costa, Diego Carvalho
Aula 01 (Profs. Diego Carvalho e Fernando Pedrosa)
CNU (Bloco 2 - Tecnologia, Dados e Informação) Conhecimentos Específicos - Eixo Temático 4 - Desenvolvimento de Software: Engenharia de software - 2024 (Pós-Edital)
www.estrategiaconcursos.com.br
39592296820 - Victor Gomes da Costa Lobo
28
94
soluções para ver qual é a melhor maneira de atender às necessidades do usuário. Logo, a questão 
está correta, mas foi anulada porque o conteúdo extrapolava o edital. 
 
Gabarito: Anulado 
 
4. (CESPE / MPC-SC – 2022) Usabilidade consiste em determinar, em uma solução de software, 
quão fácil é corrigir um problema após a sua detecção, uma vez que a engenharia de usabilidade 
refere-se à capacidade de diagnosticar o problema e modificar os componentes necessários 
para corrigi-lo. 
 
Comentários: 
 
A questão trata de Manutenibilidade e, não, da Usabilidade. Logo, a questão está errada, mas foi 
anulada porque o conteúdo extrapolava o edital. 
 
Gabarito: Anulado 
 
5. (CESPE / MPC-SC – 2022) No modelo espiral de Boehm, cada volta na espiral representa uma 
fase do processo de software: na parte mais interna, enfoca-se a viabilidade do sistema e, no 
ciclo seguinte, a definição de requisitos, assim por diante, executando-se, ao longo dos ciclos, a 
análise de riscos, prototipação e codificação. 
 
Comentários: 
 
Perfeito! O Modelo Espiral de Boehm foi desenvolvido para dar suporte a projetos de 
desenvolvimento de software que envolvam riscos importantes, incertezas e decisões que precisem 
ser tomadas. É uma evolução do modelo em cascata, pois torna possível o ajuste a mudanças 
durante o desenvolvimento de um projeto. Esse modelo é representado por uma espiral, no qual 
cada volta na espiral representa uma fase do processo de software. A partir da volta mais interna, 
enfoca-se a viabilidade do sistema, seguida pela definição de requisitos, análise de riscos, 
prototipação, planejamento e design do sistema, codificação, testes e implementação. Toda vez 
que o projeto é executado, o processo se repete. Logo, a questão está correta, mas foi anulada 
porque o conteúdo extrapolava o edital. 
 
Gabarito: Anulado 
 
6. (CESPE / DPE-RO – 2021) Um analista deve escolher uma metodologia de desenvolvimento 
para elaborar o planejamento do ciclo de vida de um produto de software de larga escala. O 
sistema é inédito e o reúso de código semelhante não deve ser considerado como base para o 
novo desenvolvimento. O analista deve considerar, ainda, a necessidade de reduzir os riscos em 
todas as fases do projeto, pois é provável que os requisitos sejam aprimorados e mudem ao 
longo do processo. Entre os riscos a serem mitigados, está o de não ter sido contratado pessoal 
de software suficiente para construir o produto, além de a equipe contratada não ter experiência 
Renato da Costa, Diego Carvalho
Aula 01 (Profs. Diego Carvalho e Fernando Pedrosa)
CNU (Bloco 2 - Tecnologia, Dados e Informação) Conhecimentos Específicos - Eixo Temático 4 - Desenvolvimento de Software: Engenharia de software - 2024 (Pós-Edital)
www.estrategiaconcursos.com.br
39592296820 - Victor Gomes da Costa Lobo
29
94
suficiente no desenvolvimento de produtos em larga escala. Ainda, há o risco de o fornecedor 
do hardware necessário ao projeto não entregar todas as estações clientes no prazo do contrato. 
 
Nessa situação hipotética, para a metodologia do processo de software em questão, é mais 
apropriado o uso do: 
 
a) modelo codificar-e-corrigir. 
b) modelo espiral. 
c) modelo integração e configuração. 
d) modelo em cascata. 
e) modelo baseado em protótipos. 
 
Comentários: 
 
Observem que o analista busca reduzir o risco em todas as fases do projeto, logo podemos eliminar 
de cara o modelo em cascata, visto que ele atrasa a redução de riscos, fazendo-a somente nas fases 
finais. Também podemos eliminar o modelo corrigir-e-codificar (Code and Fix), pois nele é difícil 
avaliar a qualidade e os riscos do projeto. Esse é mal considerado uma metodologia, dado que ele 
envolve ir desenvolvendo e corrigindo erros por experimentação. O modelo integração e 
configuração é baseado em reúso, logo também deve ser eliminado. O modelo baseado em 
protótipos é utilizado quando o cliente não definiu detalhadamente os requisitos do software, logo 
não faz sentido aqui. Por fim, o modelo mais adequado para a redução dos riscos é o modelo espiral, 
que é orientado à redução de riscos. 
 
Gabarito: Letra B 
 
7. (CESPE / Polícia Federal – 2021) Embora não seja dirigido a riscos, o modelo de 
desenvolvimento de sistemas espiral de Boehm inclui, em seu framework, a etapa de análise e 
validação dos requisitos. 
 
Comentários: 
 
O Modelo em Espiral foi proposto originalmente, em 1988, por Boehm. Sua ideia era representar 
um processo de software orientado a riscos. Em vez de representar o processocomo uma sequência 
de atividades com algum retorno entre uma atividade e outra, o processo é representado como uma 
espiral. Ele combina atividades de desenvolvimento com aspectos gerenciais (Planejamento, 
Tomada de Decisão, Análise de Riscos, etc). 
 
Gabarito: Errado 
 
8. (CESPE / SERPRO – 2021) No modelo formal, as etapas do desenvolvimento do software 
incluem especificação formal para definição de requisitos, refinamento para concepção de 
projeto e prova para a verificação. 
Renato da Costa, Diego Carvalho
Aula 01 (Profs. Diego Carvalho e Fernando Pedrosa)
CNU (Bloco 2 - Tecnologia, Dados e Informação) Conhecimentos Específicos - Eixo Temático 4 - Desenvolvimento de Software: Engenharia de software - 2024 (Pós-Edital)
www.estrategiaconcursos.com.br
39592296820 - Victor Gomes da Costa Lobo
30
94
 
Comentários: 
 
As etapas são especificação formal para definição de requisitos, refinamento para concepção de 
projeto, síntese para implementação, prototipagem para a validação e prova para a verificação. 
Logo, todas essas listadas no enunciado estão contempladas. 
 
Gabarito: Correto 
 
9. (CESPE / SLU-DF – 2019) No modelo de desenvolvimento de software em cascata, a 
abordagem é orientada ao risco e as tarefas são organizadas nos seguintes ciclos: determinar 
objetivos, identificar e resolver riscos, desenvolver e testar, e planejar a próxima iteração. 
 
Comentários: 
 
Opa... as fases e a característica de ser orientado a risco tratam do modelo em espiral e, não, do 
modelo em cascata. 
 
Gabarito: Errado 
 
10. (CESPE / MPC-PA – 2019) Os modelos espiral e RAD (Rapid Application Development) são 
classificados, respectivamente, como modelos de processo de desenvolvimento 
de software dos tipos 
 
a) incremental e sequencial. 
b) evolutivo e incremental. 
c) evolutivo e sequencial. 
d) incremental e evolutivo. 
e) evolutivo e evolutivo. 
 
Comentários: 
 
Ambos são classificados como modelos de desenvolvimento de software do tipo evolutivo e 
incremental. 
 
Gabarito: Letra B 
 
11. (CESPE / TRT-CE – 2017) Os modelos de processo em que o sistema é dividido em pequenos 
subsistemas funcionais que, a cada ciclo, são acrescidos de novas funcionalidades são 
denominados: 
 
a) evolutivos. 
b) unificados. 
Renato da Costa, Diego Carvalho
Aula 01 (Profs. Diego Carvalho e Fernando Pedrosa)
CNU (Bloco 2 - Tecnologia, Dados e Informação) Conhecimentos Específicos - Eixo Temático 4 - Desenvolvimento de Software: Engenharia de software - 2024 (Pós-Edital)
www.estrategiaconcursos.com.br
39592296820 - Victor Gomes da Costa Lobo
31
94
c) sequenciais. 
d) incrementais. 
 
Comentários: 
 
O modelo de processo que divide o sistema em subsistemas funcionais que, a cada ciclo, são 
acrescidas novas funcionalidades é o modelo incremental. 
 
Gabarito: Letra D 
 
12. (CESPE / MEC – 2014) No desenvolvimento de software de grande porte, não se usam, em 
conjunto, os seguintes modelos de processo de software genéricos: modelo em cascata, 
desenvolvimento evolucionário e engenharia de software embasada em computador. 
 
Comentários: 
 
De acordo com Sommerville, os modelos genéricos de processos de software amplamente 
utilizados são o modelo em cascata, o modelo de desenvolvimento evolucionário e o modelo de 
desenvolvimento baseado em componentes. Estes, não são mutuamente exclusivos e comumente 
são utilizados em conjunto, especialmente para desenvolvimento de sistemas de grande porte. 
 
Nós vimos em aula que o modelo evolucionário, por exemplo, não é recomendado para sistemas de 
grande porte. No entanto, a questão trata da utilização desses três modelos em conjunto – o que é 
possível! No entanto, não existe “engenharia de software embasada em computador” – o que existe 
é “engenharia de software baseada em componentes”. 
 
Gabarito: Errado 
 
13. (CESPE / TRT-10 – 2013) No modelo prototipação, a construção de software tem várias 
atividades que são executadas de forma sistemática e sequencial. 
 
Comentários: 
 
Na verdade, quem constrói software por meio de atividades executadas de forma sistemática e 
sequencial é o Modelo em Cascata; a prototipação é iterativa. 
 
Gabarito: Errado 
 
14. (CESPE / STF – 2013) O processo de software fundamentado no modelo em espiral apresenta o 
processo em loops compostos basicamente por setores, como, por exemplo, definição de 
objetivos, avaliação de riscos, planejamento e desenvolvimento e avaliação. 
 
Comentários: 
Renato da Costa, Diego Carvalho
Aula 01 (Profs. Diego Carvalho e Fernando Pedrosa)
CNU (Bloco 2 - Tecnologia, Dados e Informação) Conhecimentos Específicos - Eixo Temático 4 - Desenvolvimento de Software: Engenharia de software - 2024 (Pós-Edital)
www.estrategiaconcursos.com.br
39592296820 - Victor Gomes da Costa Lobo
32
94
 
Perfeito! Os setores são: determinar objetivos, alternativas e restrições; avaliar alternativas, 
identificar e resolver riscos; desenvolver e testar; e planejar próximas fases. 
 
Gabarito: Correto 
 
15. (CESPE / ANT – 2013) O paradigma de programação orientada a aspectos traz soluções para 
alguns dos problemas existentes no paradigma orientado a objetos, como herança múltipla e 
sobrecarga de operadores. 
 
Comentários: 
 
Já outras questões importantes não são bem localizadas no projeto funcional. Exemplos disto 
podem ser propriedades que envolvem várias unidades funcionais, tais como: sincronização, 
restrições de tempo, concorrência, distribuição de objetos, persistência, etc. Galera, vocês já 
conseguiram chegar a uma definição de Programação Orientada a Aspectos? E se cair na discursiva? 
 
Galera, não são esses os problemas resolvidos pela POA! Ela resolve problemas que envolvem 
várias unidades funcionais, ajudando a separar responsabilidades – não há qualquer relação com 
herança múltipla ou sobrecarga de operadores. Ademais, vejam a pegadinha: herança múltipla e 
sobrecarga de operadores é um problema do paradigma orientado a objetos? Não, galera – é um 
problema do Java! Lembrem-se que Java não é uma linguagem completamente orientada a 
objetos! 
 
Gabarito: Errado 
 
16. (CESPE / SERPRO – 2013) A POA, uma evolução da programação orientada a objetos, é 
implementada nas linguagens Java, C++, Smalltalk e Prolog. 
 
Comentários: 
 
Prolog? Galera, Prolog é uma linguagem lógica; POA não pode ser implementada nesta linguagem! 
 
Gabarito: Errado 
 
17. (CESPE / TRT17 – 2013) O modelo espiral de modelagem de processos para desenvolvimento 
de software é finalizado quando o software é implantado. 
 
Comentários: 
 
Galera, modelo espiral de modelagem de processos de desenvolvimento de software não existe! 
Ele é um modelo de desenvolvimento de software e, não, modelagem de processos. 
 
Renato da Costa, Diego Carvalho
Aula 01 (Profs. Diego Carvalho e Fernando Pedrosa)
CNU (Bloco 2 - Tecnologia, Dados e Informação) Conhecimentos Específicos - Eixo Temático 4 - Desenvolvimento de Software: Engenharia de software - 2024 (Pós-Edital)
www.estrategiaconcursos.com.br
39592296820 - Victor Gomes da Costa Lobo
33
94
Gabarito: Errado 
 
18. (CESPE / MEC – 2011) O modelo de processo denominado em espiral combina as atividades de 
desenvolvimento com o gerenciamento de riscos, de modo a minimizá-los e controlá-los. 
 
Comentários: 
 
O modelo em espiral realmente combina atividades de desenvolvimento com gerenciamento de 
riscos com o intuito de minimizá-los e controlá-los. 
 
Gabarito: Correto 
 
19. (CESPE / AL-ES – 2011) No ciclo de vida em espiral, a de análise de risco é realizada na etapa da 
modelagem do produto. 
 
Comentários: 
 
Na verdade, é realizada na etapa de planejamento e, não, de modelagem. De acordo com o 
Pressman, as etapas são: comunicação, planejamento, modelagem, construção e implantação ou 
emprego, sendo que a análise de riscos está presente na etapa de planejamento. 
 
Gabarito: Errado 
 
20. (CESPE / FUB – 2011) Os diversos modelos de processo de software disponíveis permitem a 
representação abstratade um processo de software sob diferentes perspectivas. No modelo 
evolucionário, sob a perspectiva da arquitetura, a velocidade de desenvolvimento faz que a 
produção de documentos que reflitam cada versão do sistema seja economicamente inviável, 
gerando problemas na validação independente de sistemas. 
 
Comentários: 
 
Se os sistemas são desenvolvidos rapidamente, não é viável economicamente produzir 
documentos para cada versão do sistema. 
 
Gabarito: Correto 
 
21. (CESPE / MEC – 2011) No modelo de prototipação, o processo de desenvolvimento de software 
é modelado como uma sequência linear de fases, enfatizando um ciclo de desenvolvimento de 
breve duração. 
 
Comentários: 
 
Renato da Costa, Diego Carvalho
Aula 01 (Profs. Diego Carvalho e Fernando Pedrosa)
CNU (Bloco 2 - Tecnologia, Dados e Informação) Conhecimentos Específicos - Eixo Temático 4 - Desenvolvimento de Software: Engenharia de software - 2024 (Pós-Edital)
www.estrategiaconcursos.com.br
39592296820 - Victor Gomes da Costa Lobo
34
94
Não é linear, é iterativo! A questão menciona uma sequência linear de fases, que lembra o Modelo 
em Cascata; e um ciclo de desenvolvimento de breve duração, que lembra o Desenvolvimento 
Rápido de Aplicações (RAD). 
 
Gabarito: Errado 
 
22. (CESPE / TRE-MT – 2010) A metodologia de prototipagem evolutiva é uma abordagem que 
visualiza o desenvolvimento de concepções do sistema conforme o andamento do projeto, por 
meio de protótipos visuais. 
 
Comentários: 
 
A prototipagem evolutiva é uma abordagem que visualiza o desenvolvimento de concepções do 
sistema conforme o andamento do projeto até chegar ao resultado final. Esta metodologia baseia-
se na utilização de prototipagem visual ou modelos do sistema final. Logo, pode-se afirmar que é 
apresentado ao usuário funcionalidades por meio de protótipos visuais conforme o andamento do 
projeto. 
 
Gabarito: Correto 
 
23. (CESPE / INMETRO – 2010) Um dos benefícios da prototipação é a documentação 
normalmente gerada, que facilita a manutenção dos sistemas a longo prazo e a elaboração de 
casos de teste. 
 
Comentários: 
 
Trata-se justamente do inverso! A documentação geralmente é prejudicada quando se utiliza a 
prototipação! Imaginem só: você precisa entregar algo rápido para o usuário verificar se satisfaz 
seus requisitos, não é viável fazer uma documentação formal. 
 
Gabarito: Errado 
 
24. (CESPE / INMETRO – 2010) Na abordagem evolutiva para desenvolvimento de software, um 
protótipo do software é produzido e utilizado para identificar possíveis problemas com os 
requisitos, sendo descartado logo em seguida, e o desenvolvimento do software propriamente 
dito é, então, iniciado. 
 
Comentários: 
 
Se o protótipo é descartado, então não se trata de uma abordagem evolutiva! Cuidado, porque 
esses nomes confundem: existe modelo evolutivo e abordagem evolutiva – a Prototipação Throw-
away não é uma abordagem evolutiva, mas é parte do Modelo Evolutivo. 
 
Renato da Costa, Diego Carvalho
Aula 01 (Profs. Diego Carvalho e Fernando Pedrosa)
CNU (Bloco 2 - Tecnologia, Dados e Informação) Conhecimentos Específicos - Eixo Temático 4 - Desenvolvimento de Software: Engenharia de software - 2024 (Pós-Edital)
www.estrategiaconcursos.com.br
39592296820 - Victor Gomes da Costa Lobo
35
94
Gabarito: Errado 
 
25. (CESPE / SERPRO – 2010) O modelo em espiral de ciclo de vida de software é iterativo e 
incremental, uma vez que a mesma sequência de atividades relacionadas à produção de 
software é realizada a cada ciclo da espiral. 
 
Comentários: 
 
Na verdade, ele é iterativo e evolucionário! 
 
Gabarito: Errado 
 
26. (CESPE / SERPRO – 2010) O modelo de desenvolvimento em espiral permite repensar o 
planejamento diversas vezes durante o desenrolar do projeto. 
 
Comentários: 
 
Trata-se do modelo iterativo, portanto permite replanejamento a cada nova iteração. 
 
Gabarito: Correto 
 
27. (CESPE / INMETRO – 2010) No modelo em espiral, um exemplo de modelo iterativo, cada loop 
da espiral representa uma fase do processo de software. Nesse modelo, os riscos não são 
considerados, pois podem impactar o projeto. 
 
Comentários: 
 
Na verdade, os riscos são considerados uma vez que podem impactar o projeto! 
 
Gabarito: Errado 
 
28. (CESPE / TRE-MT – 2010) O modelo de desenvolvimento em espiral, que tem a codificação 
como segunda etapa, gera o código do sistema muito mais rapidamente que o modelo de 
prototipação. 
 
Comentários: 
 
Na verdade, é a quarta etapa e não gera o código mais rapidamente que o modelo de prototipação, 
que é bem mais rápido. 
 
Gabarito: Errado 
 
Renato da Costa, Diego Carvalho
Aula 01 (Profs. Diego Carvalho e Fernando Pedrosa)
CNU (Bloco 2 - Tecnologia, Dados e Informação) Conhecimentos Específicos - Eixo Temático 4 - Desenvolvimento de Software: Engenharia de software - 2024 (Pós-Edital)
www.estrategiaconcursos.com.br
39592296820 - Victor Gomes da Costa Lobo
36
94
==2c6c1d==
29. (CESPE / TRE-BA – 2010) Na engenharia de software baseada em componentes, na qual se 
supõe que partes do sistema já existam, o processo de desenvolvimento concentra-se mais na 
integração dessas partes que no seu desenvolvimento a partir do início. Essa abordagem é 
baseada em reúso para o desenvolvimento de sistemas de software. 
 
Comentários: 
 
Ora, a Engenharia é especializada em produzir componentes reusáveis. Engenheiros raramente 
fabricam um componente a partir do nada. Eles baseiam seus projetos em componentes 
exaustivamente testados em outros sistemas. Quando se fala em Modelo baseado em 
Componentes, refere-se a uma estratégia de engenharia de software na qual o processo de 
desenvolvimento é voltado à reusabilidade. Percebam, portanto, que há uma concentração dos 
esforços mais na integração de partes existentes do que no seu desenvolvimento desde o início. 
 
Gabarito: Correto 
 
30. (CESPE / UNIPAMPA – 2009) No modelo de desenvolvimento prototipagem, um protótipo é 
desenvolvido para ajudar no entendimento dos requisitos do sistema. 
 
Comentários: 
 
A Prototipagem é utilizada quando não se conhece bem os requisitos. É uma forma de entendê-los 
melhor para posteriormente desenvolver o software. Ela se configura como um processo iterativo, 
interativo e rápido de desenvolvimento e o protótipo serve como um mecanismo de identificação 
dos requisitos do software, que servirão para uma futura especificação. Finalmente, um protótipo 
é em geral desenvolvido para ajudar no entendimento dos requisitos do sistema. 
 
Gabarito: Correto 
 
31. (CESPE / TCE-RN – 2009) A prototipação, uma abordagem para desenvolvimento de software 
na qual se cria um modelo do software que será implementado, é composta de quatro etapas: 
planejamento, análise de risco, engenharia e avaliação do cliente. 
 
Comentários: 
 
As etapas são Comunicação, Plano Rápido, Modelagem de Plano Rápido, Construção do Protótipo, 
e Implantação, Entrega e Feedback. As etapas mencionadas na questão são do Modelo em Espiral. 
 
Gabarito: Errado 
 
32. (CESPE / DETRAN-DF – 2009) O modelo de processo de desenvolvimento de software 
evolucionário parte do desenvolvimento de uma implementação inicial cujos resultados são 
apresentados aos clientes e refinados por meio de várias versões até que se alcance o sistema 
Renato da Costa, Diego Carvalho
Aula 01 (Profs. Diego Carvalho e Fernando Pedrosa)
CNU (Bloco 2 - Tecnologia, Dados e Informação) Conhecimentos Específicos - Eixo Temático 4 - Desenvolvimento de Software: Engenharia de software - 2024 (Pós-Edital)
www.estrategiaconcursos.com.br
39592296820 - Victor Gomes da Costa Lobo
37
94
adequado. A prototipação, como processo, tem por objetivo compreender as especificações do 
software para se chegar aos requisitos para o sistema. 
 
Comentários: 
 
A questão afirma que a prototipação tem por objetivo (1) compreender as especificações do 
software para (2) se chegar aos requisitos para o sistema. Na verdade, é justamente o contrário! 
Primeiro,eu levanto os requisitos do sistema e, depois, eu faço a especificação. Cabe ressaltar que 
a especificação é o detalhamento dos requisitos, logo ele não pode vir antes do levantamento dos 
requisitos. 
 
Gabarito: Errado 
 
33. (CESPE / UNIPAMPA – 2009 O modelo espiral admite retorno às fases anteriores de 
desenvolvimento, suportando ainda a execução paralela de fases. 
 
Comentários: 
 
Na verdade, ele não admite retorno às fases anteriores e, como é uma espiral, não permite a 
execução paralela de fases. 
 
Gabarito: Errado 
 
34. (CESPE / ANATEL – 2009) Entre os modelos de ciclo de vida de software, o modelo espiral 
possui maior proximidade com as práticas da engenharia clássica empregadas, por exemplo, na 
construção de casas, quando comparado aos modelos cascata e de componentes reusáveis. 
 
Comentários: 
 
Na verdade, o modelo em cascata tem uma maior proximidade com as práticas de engenharia 
clássica. 
 
Gabarito: Errado 
 
35. (CESPE / INMETRO – 2009) Uma das características marcantes do modelo de desenvolvimento 
em espiral é o fato de ele ser cíclico, e não linear, como o modelo de desenvolvimento em 
cascata. 
 
Comentários: 
 
Renato da Costa, Diego Carvalho
Aula 01 (Profs. Diego Carvalho e Fernando Pedrosa)
CNU (Bloco 2 - Tecnologia, Dados e Informação) Conhecimentos Específicos - Eixo Temático 4 - Desenvolvimento de Software: Engenharia de software - 2024 (Pós-Edital)
www.estrategiaconcursos.com.br
39592296820 - Victor Gomes da Costa Lobo
38
94
 
 
Perfeito! No entanto, cuidado para não escorregar no português: a questão parece ambígua, mas 
ela afirma que uma das características marcantes do modelo de desenvolvimento em espiral é o 
fato de o modelo espiral ser cíclico, diferente do modelo em cascata, que é linear. 
 
Gabarito: Correto 
 
36. (CESPE / UNIPAMPA – 2009) O modelo de desenvolvimento espiral foi desenvolvido somente 
para abranger as melhores características do ciclo de vida clássico. 
 
Comentários: 
 
Esse item não faz qualquer sentido! Ele não é uma implementação do Modelo em Cascata – ele é 
um modelo híbrido que combina características do Modelo em Cascata com o Modelo de 
Prototipagem. 
 
Gabarito: Errado 
 
37. (CESPE / UNIPAMPA – 2009) No modelo de desenvolvimento em espiral, a análise de riscos 
não impacta na elaboração de um produto ou protótipo. 
 
Comentários: 
 
É claro que impacta – tanto que ela é considerada explicitamente. 
 
Gabarito: Errado 
 
38. (CESPE / TJDFT – 2008) A prototipação evolucionária não gera problemas de manutenção de 
sistema porque o desenvolvimento é rápido e não sofre grandes mudanças. 
 
Comentários: 
 
Renato da Costa, Diego Carvalho
Aula 01 (Profs. Diego Carvalho e Fernando Pedrosa)
CNU (Bloco 2 - Tecnologia, Dados e Informação) Conhecimentos Específicos - Eixo Temático 4 - Desenvolvimento de Software: Engenharia de software - 2024 (Pós-Edital)
www.estrategiaconcursos.com.br
39592296820 - Victor Gomes da Costa Lobo
39
94
Na verdade, gera problemas, sim! Muitas mudanças tendem a corromper a estrutura do software e 
isso as tornam difíceis e caras. Observação: o ideal seria que a questão dissesse Modelo ou 
Abordagem Evolucionária e, não, Prototipação Evolucionária. 
 
Gabarito: Errado 
 
39. (CESPE / MPE-AM – 2008) No modelo de prototipação, a especificação de requisitos tem pouca 
importância, pois o software é continuamente adaptado em função dos desejos do usuário 
 
Comentários: 
 
A prototipação serve não só para o levantamento de requisitos, mas também para sua 
especificação. Galera, como não tem importância? É exatamente para isso que ele serve! 
 
Gabarito: Errado 
 
40. (CESPE / TJDFT – 2008) A prototipação de um software é uma técnica de desenvolvimento não-
interativa porque o teste do sistema só ocorre na versão final. 
 
Comentários: 
 
A Prototipagem é utilizada quando não se conhece bem os requisitos. É uma forma de entendê-los 
melhor para posteriormente desenvolver o software. Ela se configura como um processo iterativo, 
interativo e rápido de desenvolvimento e o protótipo serve como um mecanismo de identificação 
dos requisitos do software, que servirão para uma futura especificação. Logo, ela é tanto iterativa 
(repete-se diversas vezes) quanto interativa (conta com a participação ativa dos usuários). 
 
Gabarito: Errado 
 
41. (CESPE / TJDFT – 2008) Uma das finalidades da prototipação é reduzir o esforço de 
desenvolvimento de um software. 
 
Comentários: 
 
A prototipação realmente ajuda a reduzir o esforço! A prototipação (não importa qual tipo) ajuda a 
esclarecer requisitos. Caso eu não faça um protótipo, pode ocorrer de eu não compreender bem 
requisitos obscuros e, eventualmente, ter que refazer o desenvolvimento. 
 
Gabarito: Correto 
 
42. (CESPE / TJDFT – 2008) A prototipação evolucionária permite que a versão inicial do protótipo 
seja desenvolvida e refinada em estágios sequenciados, até que se chegue à versão final do 
sistema. 
Renato da Costa, Diego Carvalho
Aula 01 (Profs. Diego Carvalho e Fernando Pedrosa)
CNU (Bloco 2 - Tecnologia, Dados e Informação) Conhecimentos Específicos - Eixo Temático 4 - Desenvolvimento de Software: Engenharia de software - 2024 (Pós-Edital)
www.estrategiaconcursos.com.br
39592296820 - Victor Gomes da Costa Lobo
40
94
 
Comentários: 
 
Na prototipação evolucionária, a versão é desenvolvida em estágios sequenciados e, não, o 
processo de desenvolvimento. Esse é iterativo e, não, sequenciado. No entanto, as versões são 
sequenciais, no sentido de que as versões seguem uma ordem. 
 
Gabarito: Correto 
 
43. (CESPE / TJDFT – 2008) O modelo em espiral é um modelo de processos de software que reúne 
a natureza iterativa da prototipação com os aspectos sistemáticos e controlados do modelo 
sequencial linear. 
 
Comentários: 
 
O Modelo em Espiral é também conhecido como prototipagem-em-etapas por combinar o modelo 
em cascata com a prototipação. 
 
Gabarito: Correto 
 
44. (CESPE / TJDFT – 2008) Empregando o modelo de desenvolvimento em espiral, o software é 
desenvolvido em uma série de versões intermediárias incrementais. 
 
Comentários: 
 
O Pressman discorda! A questão fala que o software é desenvolvido em uma série de versões 
intermediárias incrementais. Ora, modelos iterativos geram uma série de versões intermediárias; 
modelos incrementais geram incrementos. Logo, pode-se assumir que a questão afirma que se 
trata de um modelo iterativo e incremental. Pressman discorda, mas não é incomum autores 
tratarem o modelo em espiral como iterativo e incremental. 
 
Gabarito: Correto 
 
45. (CESPE / SERPRO – 2008) O modelo iterativo e o modelo em espiral possuem características 
semelhantes: ambos permitem que as atividades do processo sejam planejadas e avaliadas ao 
longo do ciclo de vida. 
 
Comentários: 
 
Perfeito! O modelo em espiral possui uma fase para planejar próximas fases. Lembrando que o 
Modelo Espiral é um tipo de Modelo Iterativo. 
 
Gabarito: Correto 
Renato da Costa, Diego Carvalho
Aula 01 (Profs. Diego Carvalho e Fernando Pedrosa)
CNU (Bloco 2 - Tecnologia, Dados e Informação) Conhecimentos Específicos - Eixo Temático 4 - Desenvolvimento de Software: Engenharia de software - 2024 (Pós-Edital)
www.estrategiaconcursos.com.br
39592296820 - Victor Gomes da Costa Lobo
41
94
 
46. (CESPE / MPE-AM – 2008) A utilização de um modelo de desenvolvimento embasado em 
componentes é uma forma de desenvolvimento em espiral que busca a reutilização de trechos 
de software desenvolvidos e testados em projetos anteriores e armazenados em um repositório. 
 
Comentários: 
 
De fato, ambos os modelos possuem características em comum, mas é muito forte afirmar que o 
modelo baseado em componentes é uma forma de desenvolvimento em espiral. O modelo espiral 
preconiza a identificação de alternativas (reúso de componentes, comprar pronto). Logo, acredito 
que essa questão caberia recurso. 
 
Gabarito: Correto 
 
47. (CESPE / SERPRO – 2008) Para a especificaçãode software e verificação de sistemas, uma 
alternativa que se fundamenta na matemática discreta e na lógica é o modelo incremental. 
 
Comentários: 
 
Na verdade, a alternativa mais adequada é a utilização de métodos formais. 
 
Gabarito: Errado 
 
48. (CESPE / TSE – 2007) Um possível objetivo da prototipação é criar rapidamente um sistema 
experimental que possa ser avaliado por usuários finais. Um protótipo aprovado pelos usuários 
pode vir a ser usado como ponto de partida para a construção do sistema. 
 
Comentários: 
 
Na maioria dos casos, o protótipo é inviável de ser utilizado por ser muito lento e/ou muito grande 
e/ou difícil de utilizar. Em geral, os protótipos são descartados assim que os objetivos de 
levantamento de requisitos são alcançados. No entanto, alguns preferem refiná-los iterativamente 
até evoluir ao sistema final requisitado pelo usuário. Logo, trata-se de uma alternativa, isto é, pode-
se utilizá-lo como ponto de partida para construção do sistema em vez de descartá-lo! 
 
Gabarito: Correto 
 
49. (CESPE / TRE-AL – 2004) No modelo de prototipação, o desenvolvedor cria inicialmente um 
modelo de software que será posteriormente implementado. 
 
Comentários: 
 
Renato da Costa, Diego Carvalho
Aula 01 (Profs. Diego Carvalho e Fernando Pedrosa)
CNU (Bloco 2 - Tecnologia, Dados e Informação) Conhecimentos Específicos - Eixo Temático 4 - Desenvolvimento de Software: Engenharia de software - 2024 (Pós-Edital)
www.estrategiaconcursos.com.br
39592296820 - Victor Gomes da Costa Lobo
42
94
A metodologia de Prototipagem Evolutiva (ou Evolucionária) é uma abordagem que visualiza o 
desenvolvimento de concepções do sistema conforme o andamento do projeto até chegar ao 
resultado final. Esta metodologia baseia-se na utilização de prototipagem visual ou modelos do 
sistema final. Estes modelos podem ser simples desenhos ou imagens do sistema. 
 
Na maioria dos casos, o protótipo é inviável de ser utilizado, por ser muito lento e/ou muito grande 
e/ou difícil de utilizar. Em geral, os protótipos são descartados assim que os objetivos de 
levantamento de requisitos são alcançados. No entanto, alguns preferem refiná-los iterativamente 
até evoluir ao sistema final requisitado pelo usuário. Captaram? 
 
Cria-se, inicialmente, um modelo do sistema final! Além disso, o protótipo pode ser implementado 
e se tornar esse sistema final. Galera, essa questão foi retirada literalmente do Pressman (1995): 
"Prototyping is a process that enables the construction of a model of the software which is to be 
built". Qual o problema dessa questão? Sua tradução! 
 
Pressman afirma que a Prototipação é um processo que permite ao desenvolvedor a construção de 
um modelo do software que será construído. Em outras palavras, a prototipação é um 
modelo/esboço do software que posteriormente será construído. Pensem em um software 
qualquer! Antes de construir o software, faremos um modelo/esboço dele (não importando se 
iremos descartá-lo ou não). A questão não afirma em nenhum momento que o protótipo será 
evoluído ou descartado. 
 
Gabarito: Correto 
 
50. (CESPE / COHAB – 2004) O modelo espiral é um modelo de processo de software que combina 
a natureza iterativa da prototipagem com os aspectos controlados e sistemáticos do modelo 
sequencial linear. 
 
Comentários: 
 
O Modelo em Espiral é também conhecido como prototipagem-em-etapas por combinar o modelo 
em cascata com a prototipação. Galera, eu não errei! Essa questão é quase idêntica à anterior: é o 
CESPE copiando do CESPE! 
 
Gabarito: Correto 
 
51. (CESPE / PBV-RR – 2004) O modelo em cascata é linear e sequencial. Modelos como o espiral 
e o Rational Unified Process pregam o desenvolvimento iterativo. 
 
Comentários: 
 
Ele realmente é linear e sequencial. Além disso, o modelo em espiral e o RUP são ambos iterativos. 
 
Renato da Costa, Diego Carvalho
Aula 01 (Profs. Diego Carvalho e Fernando Pedrosa)
CNU (Bloco 2 - Tecnologia, Dados e Informação) Conhecimentos Específicos - Eixo Temático 4 - Desenvolvimento de Software: Engenharia de software - 2024 (Pós-Edital)
www.estrategiaconcursos.com.br
39592296820 - Victor Gomes da Costa Lobo
43
94
Gabarito: Correto 
 
52. (CESPE / BASA – 2004) O modelo em espiral evolui à medida que o processo avança, permitindo 
ao desenvolvedor e ao cliente entenderem melhor os riscos e reagirem em cada nível 
evolucionário. 
 
Comentários: 
 
De fato, ele evolui à medida que o processo avança, permitindo ao desenvolvedor e ao cliente 
entender melhor os riscos e como reagir a eles. 
 
Gabarito: Correto 
 
53. (CESPE / PBV-RR – 2004) O modelo em espiral para desenvolvimento de software é 
fundamentado no faseamento comumente adotado em projetos de engenharia a partir da 
década de 70 do século passado. Tal modelo considera as seguintes fases: análise de requisitos, 
definição, projeto, implementação, integração e testes, operação e manutenção. 
 
Comentários: 
 
As atividades (chamadas de fases na questão) são: Comunicação, Planejamento, Modelagem, 
Construção e Implantação. As fases mencionadas são do Modelo em Cascata. 
 
Gabarito: Errado 
 
54. (CESPE / PBV-RR – 2004) O modelo em espiral de desenvolvimento proposto por Boehm 
apresenta a análise de riscos como uma das suas fases essenciais. 
 
Comentários: 
 
Na verdade, a análise de riscos não é uma fase – é uma atividade. No entanto, a banca não entendeu 
dessa maneira :( 
 
Gabarito: Correto 
 
55. (CESPE / STJ – 2004) O modelo de desenvolvimento em espiral requer a consideração dos riscos 
técnicos em todos os estágios ou interações do projeto, o que permite reduzir os riscos antes 
que se concretizem. 
 
Comentários: 
 
Perfeito! Deve-se considerar os riscos técnicos em todos os estágios para reduzi-los antes que se 
concretizem. 
Renato da Costa, Diego Carvalho
Aula 01 (Profs. Diego Carvalho e Fernando Pedrosa)
CNU (Bloco 2 - Tecnologia, Dados e Informação) Conhecimentos Específicos - Eixo Temático 4 - Desenvolvimento de Software: Engenharia de software - 2024 (Pós-Edital)
www.estrategiaconcursos.com.br
39592296820 - Victor Gomes da Costa Lobo
44
94
 
Gabarito: Correto 
 
56. (CESPE / TRE-AL – 2004) O modelo de desenvolvimento em espiral engloba o que há de melhor 
no modelo cascata e no modelo de prototipação, acrescentando a análise de risco, inexistente 
nestes dois modelos. 
 
Comentários: 
 
Existe – sim – análise de riscos no modelo em espiral. No entanto, isso não significa que ela seja 
inexistente no Modelo em Cascata e no Modelo de Prototipação, ela apenas não é explícita como 
no Modelo em Espiral. 
 
Gabarito: Errado 
 
57. (CESPE / SERPRO – 2004) Enquanto o reúso em engenharia de software convencional está 
geralmente limitado à extensão e à manutenção de um sistema específico, o reúso, em 
engenharia de software por componentes, é um requisito de desenvolvimento, 
independentemente do projeto em consideração. 
 
Comentários: 
 
O que a questão quis dizer é que você pode utilizar o reúso na engenharia de software tradicional 
em um caso aqui outro ali. No entanto, na Engenharia de Software Baseada em Componentes a 
reusabilidade não é um bônus, ela é a base, o alicerce, a fundação de toda a sua teoria. Então, trata-
se de um requisito de desenvolvimento - no sentido de que já no desenvolvimento, você tem que 
pensar em como será sua arquitetura baseada em componentes reusáveis. Não existe ESBC sem a 
reusabilidade de seus componentes e, por isso, ela independe do projeto em consideração. Então, 
você está correto: se o projeto for muito específico, talvez não seja o caso de se utilizar o CBSE. 
 
Gabarito: Correto 
 
58. (CESPE / SERPRO – 2004) O uso de componentes pode estar condicionado a regras de 
licenciamento. Essa preocupação, no entanto, não existe se os componentes forem 
classificados como software livre. 
 
Comentários: 
 
Há regras de licenciamento, sim. Não confundam componentes livres com componentes gratuitos. 
Não é porque um software éclassificado como software livre que ele é grátis ou não possui regras 
de licenciamento. 
 
Gabarito: Errado 
Renato da Costa, Diego Carvalho
Aula 01 (Profs. Diego Carvalho e Fernando Pedrosa)
CNU (Bloco 2 - Tecnologia, Dados e Informação) Conhecimentos Específicos - Eixo Temático 4 - Desenvolvimento de Software: Engenharia de software - 2024 (Pós-Edital)
www.estrategiaconcursos.com.br
39592296820 - Victor Gomes da Costa Lobo
45
94
 
Renato da Costa, Diego Carvalho
Aula 01 (Profs. Diego Carvalho e Fernando Pedrosa)
CNU (Bloco 2 - Tecnologia, Dados e Informação) Conhecimentos Específicos - Eixo Temático 4 - Desenvolvimento de Software: Engenharia de software - 2024 (Pós-Edital)
www.estrategiaconcursos.com.br
39592296820 - Victor Gomes da Costa Lobo
46
94
QUESTÕES COMENTADAS – FCC 
 
1. (FCC / TRF - 3ª REGIÃO – 2019) No modelo em espiral de processo de software (Boehm), antes 
de cada atividade de prototipação, é sempre realizada uma atividade de: 
 
a) plano de desenvolvimento. 
b) validação de requisitos. 
c) teste de aceitação. 
d) análise de riscos. 
e) plano de ciclo de vida. 
 
Comentários: 
 
 
 
Antes de cada atividade de prototipação, é realizada a análise de riscos. 
 
Gabarito: Letra D 
 
2. (FCC / TRF - 3ª REGIÃO – 2019) Considere o modelo de ciclo de vida de software constituído 
por rotinas de trabalho com a participação de todos os membros da equipe, onde falhas não são 
toleráveis e por isso, entre as atividades, duas têm grande importância no processo: uma delas 
dedicada ao planejamento da etapa e outra à de análise de riscos. As atividades são apoiadas 
pela geração de protótipos. Suporta o desenvolvimento de sistemas complexos e de grande 
porte. Trata-se do modelo: 
 
a) Interativo e Incremental. 
b) RAD - Rapid Application Development. 
c) Espiral. 
d) Cascata. 
e) Evolutivo. 
Renato da Costa, Diego Carvalho
Aula 01 (Profs. Diego Carvalho e Fernando Pedrosa)
CNU (Bloco 2 - Tecnologia, Dados e Informação) Conhecimentos Específicos - Eixo Temático 4 - Desenvolvimento de Software: Engenharia de software - 2024 (Pós-Edital)
www.estrategiaconcursos.com.br
39592296820 - Victor Gomes da Costa Lobo
47
94
 
Comentários: 
 
Todas as características apresentadas no enunciado nos remetem ao modelo espiral – com ênfase 
na análise de riscos. 
 
Gabarito: Letra C 
 
3. (FCC / TRT16 – 2014) Os modelos de processo são uma representação abstrata de um processo 
de software, que podem ser usados para explicar diferentes abordagens para o 
desenvolvimento de sistemas. Analise as seguintes abordagens: 
 
Desenvolvimento I: intercala as atividades de especificação, desenvolvimento e validação. Um 
sistema inicial é desenvolvido rapidamente baseado em especificações abstratas e depois é 
refinado com as entradas do cliente para produzir um produto que o satisfaça. 
 
Modelo II: considera as atividades fundamentais do processo, compreendendo especificação, 
desenvolvimento, validação e evolução e as representa como fases de processo separadas, tais 
como especificação de requisitos, projeto de software, implementação, teste etc. 
 
III: baseia-se na existência de um número significativo de partes reusáveis. O processo de 
desenvolvimento do sistema enfoca a integração destas partes, ao invés de desenvolvê-las a 
partir do zero. 
 
Os modelos de processo genéricos descritos em I, II e III são, correta e respectivamente, 
associados a: 
 
a) em Espiral - Baseado em Componentes - RAD 
b) Evolucionário - em Cascata - Baseado em Componentes 
c) Baseado em Componentes - Sequencial - Refactoring 
d) Ágil - Sequencial - Unified Process 
e) em Cascata - Ágil - Refactoring 
 
Comentários: 
 
Intercala atividades de especificação, desenvolvimento e validação só pode ser o Desenvolvimento 
Evolucionário. Apenas com isso, nós já podemos matar a questão. De todo modo, o Modelo II trata 
do modelo em cascata e o Modelo III trata do modelo baseado em componentes. 
 
Gabarito: Letra B 
 
4. (FCC / DPE-SP – 2013) No desenvolvimento de software, podem ser utilizados os chamados 
modelos evolucionários, cujo objetivo é lidar com produtos que possam evoluir ao longo do 
Renato da Costa, Diego Carvalho
Aula 01 (Profs. Diego Carvalho e Fernando Pedrosa)
CNU (Bloco 2 - Tecnologia, Dados e Informação) Conhecimentos Específicos - Eixo Temático 4 - Desenvolvimento de Software: Engenharia de software - 2024 (Pós-Edital)
www.estrategiaconcursos.com.br
39592296820 - Victor Gomes da Costa Lobo
48
94
tempo. Assinale a alternativa que contém APENAS modelos evolucionários de desenvolvimento 
de software. 
 
a) UML e de qualidade. 
b) Componentes e arquétipo. 
c) Prototipagem e espiral. 
d) Redes de Petri e certificação. 
e) Semântico e validação. 
 
Comentários: 
 
A alternativa que contém apenas modelos evolucionários de desenvolvimento de software é a 
prototipagem e espiral. 
 
Gabarito: Letra C 
 
5. (FCC / TST – 2012) O Ciclo de Vida de um Sistema especifica todas as fases de desenvolvimento, 
desde sua concepção até o processo de manutenção e declínio. No que diz respeito ao 
desenvolvimento de software, existem alguns processos conhecidos. Um destes processos, 
possui característica iterativa e incremental, inicia cada fase do projeto realizando um 
planejamento prévio, realiza a execução da fase, verifica o progresso e os resultados da fase 
(riscos, lições aprendidas) e incrementa novos objetivos para a fase seguinte, seguindo para a 
próxima iteração. O processo de software em questão é o: 
 
a) Modelo espiral. 
b) Ciclo de vida em cascata. 
c) Modelo de desenvolvimento evolucionário (prototipação). 
d) Modelo de desenvolvimento ágil. 
e) Método de desenvolvimento Cleanroom (Sala Limpa). 
 
Comentários: 
 
Conforme vimos no esquema, ele citou todos os setores do Modelo Espiral (os nomes estão um 
pouco diferentes, mas é apenas uma variação). Essa questão tem um detalhe: ela afirma que o 
modelo espiral é iterativo e incremental, mas já vimos que o Pressman afirma que ele é iterativo e 
evolucionário, mas não incremental. 
 
Gabarito: Letra A 
 
6. (FCC / TRE-CE – 2012) No desenvolvimento de software em espiral (Boehm), cada loop está 
dividido em quatro setores. NÃO se trata da denominação de um destes setores: 
 
a) levantamento. 
Renato da Costa, Diego Carvalho
Aula 01 (Profs. Diego Carvalho e Fernando Pedrosa)
CNU (Bloco 2 - Tecnologia, Dados e Informação) Conhecimentos Específicos - Eixo Temático 4 - Desenvolvimento de Software: Engenharia de software - 2024 (Pós-Edital)
www.estrategiaconcursos.com.br
39592296820 - Victor Gomes da Costa Lobo
49
94
==2c6c1d==
b) definição de objetivos. 
c) avaliação e redução de riscos 
d) desenvolvimento e validação. 
e) planejamento. 
 
Comentários: 
 
Os setores são: determinar objetivos, alternativas e restrições; avaliar alternativas, identificar e 
resolver riscos; desenvolver e testar; e planejar próximas fases. Logo, levantamento não é um dos 
setores. 
 
Gabarito: Letra A 
 
7. (FCC / TRT20 – 2010) À medida que se avança pelo modelo ocorre uma iteração e o software 
evolui para estágios superiores, normalmente com aumento da complexidade. Cada iteração 
está provida das atividades determinadas pelos quadrantes planejamento, avaliação de 
alternativas e riscos, desenvolvimento do software e avaliação do cliente. No ciclo de vida de 
desenvolvimento de software, trata-se da propriedade do modelo: 
 
a) Cascata. 
b) Incremental. 
c) Espiral. 
d) Prototipação. 
e) Balbúrdia. 
 
Comentários: 
 
A questão fala de iteração, logo não pode ser Modelo em Cascata! Por outro lado, a questão fala 
em avaliação de alternativas e riscos, enfatizada (em verde em nosso esquema). Logo, trata-se 
claramente do Modelo em Espiral. Percebam que a questão faz uma confusão com os setores de 
cada autor, mas está correta. 
 
Gabarito: Letra C 
 
8. (FCC / MPE-RN – 2010) O modelo em espiral difere principalmente dos outros modelos de 
processo de software por: 
 
a) não contemplar o protótipo. 
b) reconhecer explicitamenteo risco. 
c) não ter fases. 
d) possuir uma fase única evolucionária. 
e) não contemplar o projeto do produto. 
 
Renato da Costa, Diego Carvalho
Aula 01 (Profs. Diego Carvalho e Fernando Pedrosa)
CNU (Bloco 2 - Tecnologia, Dados e Informação) Conhecimentos Específicos - Eixo Temático 4 - Desenvolvimento de Software: Engenharia de software - 2024 (Pós-Edital)
www.estrategiaconcursos.com.br
39592296820 - Victor Gomes da Costa Lobo
50
94
Comentários: 
 
A principal característica do modelo em espiral é reconhecer explicitamente os riscos. 
 
Gabarito: Letra B 
 
9. (FCC / BAHIAGÁS – 2010) No modelo em espiral do processo de software cada loop na espiral 
representa: 
 
a) uma disciplina de requisitos. 
b) um enfoque de banco de dados. 
c) uma tomada de decisão. 
d) uma fase do processo. 
e) um ciclo de programa. 
 
Comentários: 
 
Cada loop representa uma fase do processo de software. Dessa forma, o loop mais interno pode 
estar relacionado à viabilidade do sistema; o próximo loop, à definição de requisitos; o próximo, ao 
projeto de sistema e assim por diante. 
 
Gabarito: Letra D 
 
 
 
 
 
 
Renato da Costa, Diego Carvalho
Aula 01 (Profs. Diego Carvalho e Fernando Pedrosa)
CNU (Bloco 2 - Tecnologia, Dados e Informação) Conhecimentos Específicos - Eixo Temático 4 - Desenvolvimento de Software: Engenharia de software - 2024 (Pós-Edital)
www.estrategiaconcursos.com.br
39592296820 - Victor Gomes da Costa Lobo
51
94
QUESTÕES COMENTADAS – FGV 
 
1. (FGV / TJ-RN - 2023) A Equipe de Tecnologia da Informação (ETI) de um tribunal está envolvida 
no projeto TERC cujo ciclo de vida segue uma abordagem adaptativa (ágil). Considerando o ciclo 
de vida empregado no TERC, a ETI: 
 
a) especifica os requisitos do produto final antes do início do desenvolvimento; 
b) solicita o envolvimento das partes interessadas chave em marcos específicos; 
c) controla os riscos à medida em que surgem requisitos e restrições; 
d) ajusta o ciclo de vida do projeto ao ciclo de vida do produto; 
e) estabelece as fases do projeto com base em um ciclo de vida de desenvolvimento preditivo. 
 
Comentários: 
 
(a) Errado, isso seria típico do desenvolvimento em cascata; (b) Errado, ele solicita o envolvimento 
das partes interessadas chave ao longo de todo o desenvolvimento; (c) Correto, riscos são 
controlados à medida em que surgem requisitos e restrições; (d) Errado, isso seria típico do 
desenvolvimento em cascata; (e) Errado, isso também seria típico do desenvolvimento em cascata. 
 
Gabarito: Letra C 
 
2. (FGV / IBGE – 2016) A empresa SONOVATOS desenvolve sistemas há pouco tempo no mercado 
e, como padrão, sempre utilizou o modelo Cascata de ciclo de vida. Alguns clientes ficaram 
insatisfeitos com os produtos desenvolvidos pela empresa por não estarem de acordo com suas 
necessidades. Atualmente a SONOVATOS está desenvolvendo sistemas muito maiores, com 
duração de vários anos, e com requisitos ainda instáveis. O próprio processo de 
desenvolvimento da empresa também está em reformulação. Assim, a adoção de um novo 
modelo de ciclo de vida está sendo avaliada pelos gerentes da empresa. A intenção da 
SONOVATOS é, principalmente, gerenciar riscos e poder reavaliar constantemente o processo 
de desenvolvimento ao longo do projeto, o que permitiria correções nesse processo ou até 
mudança do tipo de processo. O modelo mais adequado para os sistemas atuais de longa 
duração da SONOVATOS é: 
 
a) Rapid Application Development (RAD); 
b) Espiral; 
c) Extremme Programming; 
d) Prototipação; 
e) Modelo V. 
 
Comentários: 
 
Renato da Costa, Diego Carvalho
Aula 01 (Profs. Diego Carvalho e Fernando Pedrosa)
CNU (Bloco 2 - Tecnologia, Dados e Informação) Conhecimentos Específicos - Eixo Temático 4 - Desenvolvimento de Software: Engenharia de software - 2024 (Pós-Edital)
www.estrategiaconcursos.com.br
39592296820 - Victor Gomes da Costa Lobo
52
94
A questão menciona algumas palavras-chave: requisitos instáveis, gerenciamento dos riscos, 
reavaliação constante, correções/mudanças do processo. Dito isso, vamos analisar: (a) Errado, esse 
modelo não trata de gerenciamento de riscos e é mais voltado para projetos com entregas rápidas; 
(b) Correto, esse modelo traz explicitamente uma preocupação com o gerenciamento de riscos, 
além de permitir uma reavaliação/correção/adaptação/mudança constantemente; (c) Errado, esse 
modelo não trata explicitamente do gerenciamento de riscos – apesar de concordar que caberia 
recurso aqui; (d) Errado, esse modelo também não trata explicitamente de riscos; (e) Errado, esse 
modelo é uma variação do modelo em cascata. 
 
Como a questão afirma que a intenção principal da empresa é gerenciar riscos, o modelo que 
explicitamente coloca um foco no gerenciamento de riscos é o modelo em espiral. 
 
Gabarito: Letra B 
 
3. (FGV / TCM-SP – 2015) Software, assim como todos os sistemas complexos, evolui ao longo do 
tempo. Modelos de processos evolucionários reconhecem a natureza iterativa e incremental da 
maioria dos projetos de engenharia de software e são projetados para adequar mudanças. Os 
modelos a serem utilizados em um processo evolucionário são: 
 
a) cascata e modelo V; 
b) prototipação e modelo espiral; 
c) concorrente e métodos formais; 
d) incremental e baseado em componentes; 
e) processo unificado e orientado a aspectos. 
 
Comentários: 
 
Os modelos a serem utilizados em um processo evolucionário são: prototipação e espiral. 
 
Gabarito: Letra B 
 
4. (FGV / Fiocruz – 2010) Como modelo evolucionário do processo de software, uma característica 
da prototipagem é: 
 
a) independer do estabelecimento e da definição de requisitos. 
b) configurar um processo interativo e rápido de desenvolvimento. 
c) iniciar o processo de desenvolvimento pela implantação e pelos testes. 
d) gerar uma primeira versão do sistema completa e isenta de erros. 
e) descartar a participação do cliente no processo de desenvolvimento e de implantação. 
 
Comentários: 
 
Renato da Costa, Diego Carvalho
Aula 01 (Profs. Diego Carvalho e Fernando Pedrosa)
CNU (Bloco 2 - Tecnologia, Dados e Informação) Conhecimentos Específicos - Eixo Temático 4 - Desenvolvimento de Software: Engenharia de software - 2024 (Pós-Edital)
www.estrategiaconcursos.com.br
39592296820 - Victor Gomes da Costa Lobo
53
94
(a) Errado, claro que depende da definição de requisitos; (b) Correto, é um processo interativo, 
iterativo e rápido de desenvolvimento; (c) Errado. Você vai implantar e testar o que? Você primeiro 
tem que levantar, especificar e desenvolver; (d) Errado, se é uma primeira versão, não é completa. 
Além disso, não há sistemas sem erros; (e) Errado, você deve incentivar a participação do cliente. 
 
Gabarito: Letra B 
 
5. (FGV / BADESC – 2010) O Modelo Espiral, segundo Pressman (1995), incorpora as melhores 
características do Ciclo de Vida Clássico e da Prototipação e acrescenta o seguinte elemento: 
 
a) análise dos riscos. 
b) análise de projetos. 
c) avaliação de usuários. 
d) refinamento de requisitos. 
e) refinamento de protótipos. 
 
Comentários: 
 
O Modelo Espiral foi o primeiro modelo a tratar explicitamente de análise de riscos. 
 
Gabarito: Letra A 
 
6. (FGV / Senado Federal – 2008) Considere as seguintes assertivas sobre modelos de processos 
de software: 
 
I. No modelo em cascata, a fase seguinte não deve iniciar antes que a fase precedente tenha sido 
concluída. 
II. No modelo evolucionário, a mudança constante tende a corromper a estrutura do software 
III. A explícita consideração dos riscos no modelo em espiral distingue esse modelo dos modelos 
em cascata e evolucionário. 
 
As assertivas corretas são: 
 
a) somente I. 
b) somente I e II. 
c) somente I e III. 
d) somente II e III. 
e) I, II e III. 
 
Comentários: 
 
(I) Correto, uma fase só se inicia após o término e aprovação da fase anterior; (II) Correto, muitas 
mudanças tendem a corromper a estrutura do softwaree isso as tornam difíceis e caras; (III) 
Renato da Costa, Diego Carvalho
Aula 01 (Profs. Diego Carvalho e Fernando Pedrosa)
CNU (Bloco 2 - Tecnologia, Dados e Informação) Conhecimentos Específicos - Eixo Temático 4 - Desenvolvimento de Software: Engenharia de software - 2024 (Pós-Edital)
www.estrategiaconcursos.com.br
39592296820 - Victor Gomes da Costa Lobo
54
94
==2c6c1d==
Correto, a ideia do modelo espiral é representar um processo de software orientado a riscos, o que 
o diferencia dos demais modelos. 
 
 
Gabarito: Letra E 
 
 
Renato da Costa, Diego Carvalho
Aula 01 (Profs. Diego Carvalho e Fernando Pedrosa)
CNU (Bloco 2 - Tecnologia, Dados e Informação) Conhecimentos Específicos - Eixo Temático 4 - Desenvolvimento de Software: Engenharia de software - 2024 (Pós-Edital)
www.estrategiaconcursos.com.br
39592296820 - Victor Gomes da Costa Lobo
55
94
QUESTÕES COMENTADAS – DIVERSAS 
 
1. (VUNESP / TJM-SP – 2021) Algumas atividades que fazem parte do modelo espiral de 
desenvolvimento de software são: 
 
Construção – Implantação – Comunicação – 
Planejamento – Modelagem 
 
A ordem correta com que tais atividades são executadas, considerando o modelo espiral, é: 
 
a) Comunicação, Planejamento, Modelagem, Construção e Implantação. 
b) Construção, Implantação, Comunicação, Modelagem e Planejamento. 
c) Modelagem, Planejamento, Construção, Implantação e Comunicação. 
d) Planejamento, Construção, Implantação, Comunicação e Modelagem. 
e) Planejamento, Modelagem, Comunicação, Construção e Implantação. 
 
Comentários: 
 
 
 
As atividades do modelo espiral são: Comunicação, Planejamento, Modelagem, Construção e 
Implantação (ou Emprego). 
 
Gabarito: Letra A 
 
2. (VUNESP / CETESB – 2009) Considere um sistema cujos requisitos de interface são definidos 
apenas quando o cliente realiza um test-drive na aplicação e aprova essa interface. Assinale a 
alternativa que apresenta o modelo mais adequado para o desenvolvimento da interface desse 
sistema. 
 
Renato da Costa, Diego Carvalho
Aula 01 (Profs. Diego Carvalho e Fernando Pedrosa)
CNU (Bloco 2 - Tecnologia, Dados e Informação) Conhecimentos Específicos - Eixo Temático 4 - Desenvolvimento de Software: Engenharia de software - 2024 (Pós-Edital)
www.estrategiaconcursos.com.br
39592296820 - Victor Gomes da Costa Lobo
56
94
a) Ágil. 
b) Cascata. 
c) Iterativo incremental. 
d) Prototipação. 
e) Rapid Application Development. 
 
Comentários: 
 
A afirmativa diz que o sistema possui requisitos de interface que são definidos apenas quando o 
cliente realiza um test-drive, i.e., um teste inicial na aplicação e aprova essa interface. Em outras 
palavras, o cliente valida ou não esses requisitos a partir de uma primeira utilização do sistema. Que 
metodologia de desenvolvimento de software pode ser utilizada para levantar e validar/aprovar 
requisitos? Trata-se da Prototipação! 
 
Gabarito: Letra D 
 
3. (CESGRANRIO / PETROBRAS – 2018) O chefe dos desenvolvedores de sistemas de uma 
empresa acompanhou o seguinte diálogo entre um de seus subordinados, um usuário e o diretor 
de operações. 
 
Diretor – Acho que já poderíamos começar o desenvolvimento daquele sistema que o 
departamento de esportes pediu. 
 
Usuário – Não é cedo demais? Ainda não temos todas as funcionalidades bem definidas. 
 
Desenvolvedor – É verdade, mas acho que já é possível especificar e implementar algumas 
funcionalidades mais importantes e construir uma primeira versão até o final do mês. Depois 
acrescentaríamos outras funcionalidades à medida que as fôssemos construindo, gerando, a 
partir da experiência do uso, versões sucessivas e cada vez mais completas. 
 
Diretor – Acho isso ótimo, assim já teremos uma noção do impacto que o sistema poderá causar 
no desempenho dos atletas. Comecemos logo, não temos um efetivo tão grande em TI. 
 
Usuário – OK, vamos em frente, mas não contem nada para aquele especialista em risco. Já 
temos muito trabalho pela frente. Nossa estrutura ainda não suporta esse tipo de cuidado; se 
entrarmos nessa, o projeto vai atrasar. E mantenham o contato e o foco no objetivo: um produto 
simples, mas de qualidade. 
 
A partir desse episódio e refletindo sobre o que ouvira, o chefe dos desenvolvedores deverá optar 
pelo modelo de processo de software: 
 
a) RAD 
b) incremental 
Renato da Costa, Diego Carvalho
Aula 01 (Profs. Diego Carvalho e Fernando Pedrosa)
CNU (Bloco 2 - Tecnologia, Dados e Informação) Conhecimentos Específicos - Eixo Temático 4 - Desenvolvimento de Software: Engenharia de software - 2024 (Pós-Edital)
www.estrategiaconcursos.com.br
39592296820 - Victor Gomes da Costa Lobo
57
94
c) cascata 
d) espiral 
e) baseado em componentes 
 
Comentários: 
 
(a) Errado. No RAD, não há versões intermediárias, visto que se trata de um processo de 
desenvolvimento extremamente rápido; (b) Correto. O modelo incremental é realmente indicado 
quando não há funcionalidades bem definidas, logo se inicia pelas mais importantes e são lançadas 
versões sucessivas e cada vez mais completas posteriormente; (c) Errado. Se ainda não há 
funcionalidades bem definidas, não se deve utilizar o modelo em cascata; (d) Errado. O modelo em 
espiral é dirigido a riscos e a conversa deixa claro que não se deve contar com o especialista em risco 
– como o risco não é considerado, não é recomendável utilizar o modelo em espiral; (e) Errado. Não 
há nada que leve a crer que se trata do modelo baseado em componentes. 
 
Gabarito: Letra B 
 
4. (CESGRANRIO / PETROBRÁS – 2014) Um técnico de informática, com o objetivo de agilizar o 
desenvolvimento de um software, escolheu o desenvolvimento evolucionário, uma abordagem 
da área de Engenharia de Software, que: 
 
a) facilita a produção de sistemas bem estruturados, privilegiando um processo de mudanças 
contínuas, cada vez mais fáceis e baratas. 
 
b) se baseia na existência de um número significativo de componentes reusáveis, num processo 
de desenvolvimento que enfoca a integração desses componentes, em vez de desenvolvê-los a 
partir do zero 
 
c) considera como atividades fundamentais do processo a especificação, o desenvolvimento, a 
validação e a evolução, representado-as como fases de processo separadas, sendo que para uma 
fase ser iniciada, a outra deve estar completamente terminada. 
 
d) é mutuamente exclusiva com o modelo em cascata e de Engenharia de Software baseada em 
componentes, sendo que os subsistemas contidos em um sistema maior precisam ser 
desenvolvidos, usando a mesma abordagem ou modelo. 
 
e) intercala as atividades de especificação, desenvolvimento e validação, permitindo que um 
sistema inicial seja desenvolvido rapidamente, baseado em especificações abstratas. 
 
Comentários: 
 
Ele realmente intercala atividades de especificação, desenvolvimento e validação, permitindo que 
um sistema inicial seja desenvolvido de maneira muito rápida baseado em especificações abstratas. 
Renato da Costa, Diego Carvalho
Aula 01 (Profs. Diego Carvalho e Fernando Pedrosa)
CNU (Bloco 2 - Tecnologia, Dados e Informação) Conhecimentos Específicos - Eixo Temático 4 - Desenvolvimento de Software: Engenharia de software - 2024 (Pós-Edital)
www.estrategiaconcursos.com.br
39592296820 - Victor Gomes da Costa Lobo
58
94
==2c6c1d==
 
Gabarito: Letra E 
 
5. (COSEAC / UFF – 2019) Nos projetos, quando o time quebra o produto em vários pedaços 
menores, trabalhando e entregando uma parte de cada vez, sem se preocupar com agilidade, e 
somente quando esta parte estiver pronta o time parte para outro pedaço, iniciando uma nova 
fase, constata-se um ciclo de vida: 
 
a) preditivo. 
b) iterativo e incremental. 
c) adaptativo. 
d) RUP. 
e) cascata. 
 
Comentários: 
 
Quebra o produto em vários pedaços menores? Entrega uma parte de cada vez? São todas 
características do modelo iterativo e incremental. Somente quando essa parte estiver pronta o time 
parte para outro pedaço? Sim, a equipe que está trabalhando no subsistema funcional somente 
partirá para o outrosubsistema funcional quando terminá-lo. 
 
Gabarito: Letra B 
 
6. (IF-PA / IF-PA – 2019) Tem-se como boas práticas em projetos de software a definição dos seus 
requisitos funcionais e suas funcionalidades. No decorrer dessa definição, pode surgir a 
necessidade de fornecer, de forma prioritária, um conjunto de funcionalidades iniciais básicas e, 
após esse fornecimento, podemos melhorar e expandir as funcionalidades em versões de 
software posteriores, até atingir todos os requisitos definidos. Nesse caso, estamos aplicando 
um modelo de processo de software denominado: 
 
a) Métodos Formais. 
b) Business Process Management (BPM). 
c) Capability Maturity Model Integration (CMMI) 
d) Incremental. 
e) Entidade e Relacionamento. 
 
Comentários: 
 
“Fornecer, de forma prioritária, um conjunto de funcionalidades iniciais básicas e, após esse 
fornecimento, podemos melhorar e expandir as funcionalidades em versões de software posteriores, 
até atingir todos os requisitos definidos” – todas são características do modelo incremental. 
 
Gabarito: Letra D 
Renato da Costa, Diego Carvalho
Aula 01 (Profs. Diego Carvalho e Fernando Pedrosa)
CNU (Bloco 2 - Tecnologia, Dados e Informação) Conhecimentos Específicos - Eixo Temático 4 - Desenvolvimento de Software: Engenharia de software - 2024 (Pós-Edital)
www.estrategiaconcursos.com.br
39592296820 - Victor Gomes da Costa Lobo
59
94
 
7. (FADESP / IF-PA – 2019) O princípio fundamental é que, a cada ciclo, uma versão operacional 
do sistema será produzida e entregue para uso ou avaliação detalhada do cliente. Os requisitos 
têm de ser levantados e é preciso constatar que o sistema é modular. Esse é o modelo: 
 
a) Incremental. 
b) Espiral. 
c) Cascata. 
d) RAD. 
e) XP. 
 
Comentários: 
 
Uma versão operacional a cada ciclo para avaliação do cliente em um sistema modular é uma 
característica do modelo incremental. 
 
Gabarito: Letra A 
 
8. (CETREDE / Prefeitura de São Gonçalo do Amarante - CE – 2019) Sobre Engenharia de 
Software, marque a opção INCORRETA. 
 
a) O modelo Cascata tem como característica intercalar as atividades de especificação, 
desenvolvimento e validação. Esta abordagem, permite a entrega de um produto ao fim de um 
longo ciclo de desenvolvimento e com baixa perspectiva de falha funcional. 
 
b) A engenharia de software baseada em componentes baseia-se na existência de um número 
significativo de componentes reusáveis, enfocando o desenvolvimento na integração destes 
componentes. 
 
c) No desenvolvimento exploratório, o objetivo do processo é trabalhar com o cliente para 
explorar os requisitos e entregar o sistema final. 
 
d) No processo de engenharia de requisitos, a etapa de elicitação e análise dos requisitos é 
responsável pela derivação de requisitos através da observação de sistemas existentes, 
discussões com usuários potenciais, análise de tarefas etc. 
 
e) Especificação, projeto e implementação, validação e evolução do software são etapas 
comuns em qualquer processo de software. 
 
Comentários: 
 
Todos os itens estão corretos, exceto o primeiro. A questão trata do modelo evolucionário ou 
incremental (depende da versão do livro) e, não, do modelo em cascata. 
Renato da Costa, Diego Carvalho
Aula 01 (Profs. Diego Carvalho e Fernando Pedrosa)
CNU (Bloco 2 - Tecnologia, Dados e Informação) Conhecimentos Específicos - Eixo Temático 4 - Desenvolvimento de Software: Engenharia de software - 2024 (Pós-Edital)
www.estrategiaconcursos.com.br
39592296820 - Victor Gomes da Costa Lobo
60
94
 
Gabarito: Letra A 
 
9. (COSEAC / UFF – 2019) Dos modelos de desenvolvimento de software, aquele que prioriza a 
análise dos riscos envolvidos no desenvolvimento de cada parte do software é o modelo: 
 
a) em cascata. 
b) de prototipação. 
c) incremental. 
d) espiral. 
e) baseado em componentes. 
 
Comentários: 
 
O modelo que prioriza a análise de riscos envolvidos no desenvolvimento é o modelo em espiral. 
 
Gabarito: Letra D 
 
10. (INSTITUTO AOCP / UFFS – 2019) Assinale a alternativa que apresenta uma característica do 
modelo espiral para engenharia de software. 
 
a) Na etapa “engenharia”, são identificadas as alternativas e as restrições. 
b) Contempla a análise de riscos, além das melhores características do ciclo de vida clássico e 
prototipação. 
c) O modelo espiral veio para substituir o modelo cascata, que caiu em desuso por sua alta 
complexidade. 
d) Esse modelo contempla as seguintes atividades: engenharia de sistemas, análise, projeto, 
codificação, teste e manutenção. 
e) Esse modelo define que, na etapa de desenvolvimento, deve ser adotada uma metodologia 
ágil de desenvolvimento. 
 
Comentários: 
 
(a) Errado, essa é a etapa de planejamento; (b) Correto, tanto que é conhecido como uma 
prototipação em etapas; (c) Errado, ele não veio para substituir o modelo em cascata e o modelo 
em cascata não é altamente complexo; (d) Errado, as atividades são: planejamento, análise de 
riscos, engenharia, construção e liberação, avaliação do cliente e comunicação com cliente; (e) 
Errado, não existe essa definição. 
 
Gabarito: Letra B 
 
11. (COVEST-COPSET / UFPE – 2019) A respeito de modelos de processo de software, assinale a 
alternativa correta: 
Renato da Costa, Diego Carvalho
Aula 01 (Profs. Diego Carvalho e Fernando Pedrosa)
CNU (Bloco 2 - Tecnologia, Dados e Informação) Conhecimentos Específicos - Eixo Temático 4 - Desenvolvimento de Software: Engenharia de software - 2024 (Pós-Edital)
www.estrategiaconcursos.com.br
39592296820 - Victor Gomes da Costa Lobo
61
94
 
a) O modelo em cascata é inconsistente com outros modelos de processos de engenharia, tendo 
documentação produzida em cada fase do ciclo. Dessa forma, o processo torna-se pouco visível, 
dificultando o monitoramento do progresso pelos gerentes, de acordo com o plano de 
desenvolvimento. 
 
b) No modelo espiral de Boehm, o processo de software é representado como uma espiral em 
que cada volta representa uma fase do processo de software. O modelo não se tornou popular 
devido a problemas ligados ao gerenciamento de riscos de projeto. 
 
c) Existem alguns tipos de sistema para os quais o desenvolvimento e a entrega incrementais 
não são a melhor abordagem. Por exemplo, alguns sistemas críticos, em que todos os requisitos 
devem ser analisados na busca por iterações capazes de comprometer a proteção ou a 
segurança do sistema. 
 
d) Um modelo de processo para desenvolvimento de protótipos em que os objetivos da 
prototipação são descobertos ao final de cada iteração, depois que os usuários experimentarem 
os diversos protótipos produzidos ao longo do processo. Isso torna a abordagem pouco 
previsível e mais incerta. 
 
e) Na entrega incremental, os clientes podem usar os incrementos iniciais como protótipos e 
visualizar o avanço gradativo no desenvolvimento, mas necessitam reaprender o uso do sistema 
quando sua versão final estiver disponível. 
 
Comentários: 
 
(a) Errado, é um modelo consistente com outros modelos e o processo é visível, facilitando o 
monitoramento do progresso; (b) Errado, ele se tornou popular justamente por ser voltado a riscos; 
(c) Correto; (d) Errado, são descobertos no início do processo – além disso, isso torna a abordagem 
mais previsível e certeira; (e) Errado, não é necessário reaprendê-lo visto que o sistema vai sendo 
incrementado aos poucos, logo – ao final – estará da maneira especificada pelo usuário. 
 
Gabarito: Letra C 
 
12. (IBFC / Prefeitura de Cuiabá - MT – 2019) Heitor é gerente de projeto e precisa decidir qual 
modelo utilizará no processo de desenvolvimento do próximo software da empresa Brasil. 
Quanto a alguns dos modelos do ciclo de vida de desenvolvimento de software, assinale a 
alternativa incorreta. 
 
a) Modelo Espiral: produto final é entregue rapidamente 
b) Modelo Incremental: produzem o sistema de forma incremental até a sua versão final 
c) Metodologias Ágeis: dura de 1(uma) a 4(quatro) semanas e ao final de cada iteração deve 
haver entrega ao clienteRenato da Costa, Diego Carvalho
Aula 01 (Profs. Diego Carvalho e Fernando Pedrosa)
CNU (Bloco 2 - Tecnologia, Dados e Informação) Conhecimentos Específicos - Eixo Temático 4 - Desenvolvimento de Software: Engenharia de software - 2024 (Pós-Edital)
www.estrategiaconcursos.com.br
39592296820 - Victor Gomes da Costa Lobo
62
94
d) Modelo em Cascata: componente do sistema é entregue por fases, podendo acontecer 
paralelamente 
 
Comentários: 
 
(a) Correto, é a principal característica do RAD, mas o modelo espiral também tem esse potencial; 
(b) Correto; (c) Correto, apesar de se referir especificamente ao Scrum; (d) Errado, tudo é entregue 
ao final e as fases não podem ocorrer paralelamente. 
 
Gabarito: Letra D 
 
13. (COSEAC / UFF – 2019) Em relação aos modelos de processos de software, avalie se são 
verdadeiras (V) ou falsas (F) as afirmativas a seguir: 
 
I. O modelo de desenvolvimento orientado a reúso tem a vantagem da redução de riscos e de 
custos. 
II. O modelo de desenvolvimento incremental possui a vantagem da facilidade de mapear os 
requisitos dos clientes dentro de incrementos de tamanho correto. 
III. O modelo em cascata deve ser utilizado somente quando os requisitos forem bem 
compreendidos. 
 
As afirmativas I, II e III são, respectivamente: 
 
a) V, F e V. 
b) F, V e V. 
c) V, F e F. 
d) F, F e V. 
e) V, V e V. 
 
Comentários: 
 
(I) Correto, o modelo de desenvolvimento orientado a reúso realmente tem a vantagem da redução 
de riscos e de custos; (II) Errado, apesar disso eu não consigo identificar o erro da questão, mas esse 
foi o gabarito definitivo; (III) Correto, ele é adequado justamente quando os requisitos forem bem 
compreendidos. 
 
Gabarito: Letra A 
 
14. (IADES / CFM – 2018) O Modelo Espiral (Spiral) foi originalmente proposto por Boehm (1986) e 
é fortemente orientado à redução de riscos. 
 
WAZLAWICK, R. S. Engenharia de Software: Conceitos e práticas. São Paulo: Elsevier, 2013. 
 
Renato da Costa, Diego Carvalho
Aula 01 (Profs. Diego Carvalho e Fernando Pedrosa)
CNU (Bloco 2 - Tecnologia, Dados e Informação) Conhecimentos Específicos - Eixo Temático 4 - Desenvolvimento de Software: Engenharia de software - 2024 (Pós-Edital)
www.estrategiaconcursos.com.br
39592296820 - Victor Gomes da Costa Lobo
63
94
 
Considerando o exposto e o Modelo Espiral de ciclo de vida de software, assinale a alternativa 
correta: 
 
a) O Modelo Espiral realiza uma etapa de cada vez, partindo para a próxima etapa apenas após 
a anterior estar totalmente validada. 
 
b) Tal modelo de ciclo de vida tem foco apenas na resolução de riscos de requisitos mal 
compreendidos, fornecendo tempo suficiente para que estes possam ser entendidos e 
implementados. 
 
c) O projeto é dividido em subprojetos, cada qual abordando um ou mais elementos de alto 
risco, até que todos os riscos identificados tenham sido tratados. 
 
d) Cada iteração é iniciada sem planejamento prévio, resolvendo-se os problemas no momento 
em que surgem. 
 
e) O início do ciclo de vida do projeto se parece mais com o Modelo Cascata. 
 
Comentários: 
 
(a) Errado, esse item trata do modelo em cascata; (b) Errado, não se trata apenas de riscos de 
requisitos mal compreendidos, mas diversos outros tipos de riscos como riscos de desempenho, 
arquitetural, entre outros; (c) Correto, o projeto é realmente dividido em subprojetos abordando 
um ou mais elementos de alto risco até que todos os riscos sejam identificados; (d) Errado, o 
planejamento é realizado com base nos riscos identificados, e, em cada nova interação, é definida 
uma abordagem; (e) Errado, ele divide o projeto em partes, no início com protótipos, identifica os 
principais riscos, e, em cada ciclo, os riscos são mitigados. 
 
Gabarito: Letra C 
 
15. (FADESP / IF-PA – 2018) Usando o modelo ____________, o sistema é desenvolvido em ciclos, 
sendo que os primeiros ciclos podem não conter todas as atividades. O produto resultante de 
um primeiro ciclo pode ser uma especificação do produto ou um estudo de viabilidade. Os ciclos 
subsequentes podem ser protótipos, chegando progressivamente a versões operacionais do 
software, até se obter o produto completo. Modelos podem ser úteis para ajudar a levantar e 
validar requisitos, mas pode ocorrer de os clientes e usuários só terem uma verdadeira dimensão 
do que está sendo construído se forem colocados diante do sistema. Nestes casos, o uso da 
__________________ é fundamental. 
 
As expressões que completam corretamente os espaços em branco, respectivamente, são: 
 
a) espiral, prototipação. 
Renato da Costa, Diego Carvalho
Aula 01 (Profs. Diego Carvalho e Fernando Pedrosa)
CNU (Bloco 2 - Tecnologia, Dados e Informação) Conhecimentos Específicos - Eixo Temático 4 - Desenvolvimento de Software: Engenharia de software - 2024 (Pós-Edital)
www.estrategiaconcursos.com.br
39592296820 - Victor Gomes da Costa Lobo
64
94
b) cascata, prototipação. 
c) XP, conversa com os clientes. 
d) espiral, cascata. 
e) incremental, prototipação. 
 
Comentários: 
 
Usando o modelo espiral, o sistema é desenvolvido em ciclos, sendo que os primeiros ciclos podem 
não conter todas as atividades. O produto resultante de um primeiro ciclo pode ser uma 
especificação do produto ou um estudo de viabilidade. Os ciclos subsequentes podem ser 
protótipos, chegando progressivamente a versões operacionais do software, até se obter o produto 
completo. Modelos podem ser úteis para ajudar a levantar e validar requisitos, mas pode ocorrer de 
os clientes e usuários só terem uma verdadeira dimensão do que está sendo construído se forem 
colocados diante do sistema. Nestes casos, o uso da prototipação é fundamental. 
 
Gabarito: Letra A 
 
16. (AOCP / UNIR – 2018) O desenvolvimento formal de sistemas é uma abordagem que tem 
pontos diferentes ao modelo em cascata e usa uma base da transformação matemática modal 
de uma especificação de sistemas em um programa executável. 
 
Comentários: 
 
O desenvolvimento formal de sistemas é uma variação do modelo em cascata, logo os pontos são 
muito parecidos. Ademais, ele utiliza uma base de transformação matemática formal e, não, 
modal. 
 
Gabarito: Errado 
 
17. (CS-UFG / UFG – 2017) É um modelo de processo geral de software que tem como característica 
a existência de duas fases distintas relacionadas à engenharia de requisitos. Qual é esse modelo? 
 
a) Modelo em cascata. 
b) Modelo orientado a reúso de componentes. 
c) Modelo espiral de Boehm. 
d) Modelo de entregas em estágios. 
 
Comentários: 
 
Trata-se do modelo orientado a reúso de componentes e as fases são: especificação de requisitos e 
alteração de requisitos. 
 
Gabarito: Letra B 
Renato da Costa, Diego Carvalho
Aula 01 (Profs. Diego Carvalho e Fernando Pedrosa)
CNU (Bloco 2 - Tecnologia, Dados e Informação) Conhecimentos Específicos - Eixo Temático 4 - Desenvolvimento de Software: Engenharia de software - 2024 (Pós-Edital)
www.estrategiaconcursos.com.br
39592296820 - Victor Gomes da Costa Lobo
65
94
 
18. (IFB / IFB – 2017) O modelo de processo de software evolucionário que acopla a natureza 
iterativa da prototipação com os aspectos sistemáticos e controlados do modelo cascata 
denomina-se: 
 
a) Modelo Ágil. 
b) Modelo Concorrente. 
c) Modelo Iterativo. 
d) Modelo Orientado a Objetos. 
e) Modelo Espiral. 
 
Comentários: 
 
Modelo evolucionário que combina a natureza iterativa da prototipação com aspectos sistemáticos 
e controlados do modelo em cascata – também conhecido como prototipação em etapas – só pode 
se tratar do modelo em espiral. 
 
Gabarito: Letra E 
 
19. (IESES / CEGÁS – 2017) Considerando o referencial de Boehm para o processo de 
desenvolvimento de software, modelo em espiral, assinale a alternativa que define as quatro 
ações que devem ocorrer em cada iteração: 
 
a) Sprint, definição das funcionalidades, Desenvolvimento e validação e Planejamento da 
próxima iteração. 
 
b) Definição do product owner, Avaliação e redução de riscos, Sprint, definição das 
funcionalidades.c) Determinação dos objetivos, Avaliação e redução de riscos, Desenvolvimento e validação e 
Planejamento da próxima iteração. 
 
d) Determinação dos objetivos, Avaliação e redução de riscos, Sprint, definição das 
funcionalidades. 
 
Comentários: 
 
Perfeito! De acordo com Boehm, os setores são: determinação dos objetivos; avaliação e redução 
de riscos; desenvolvimento e validação e planejamento da próxima iteração. 
 
Gabarito: Letra C 
 
Renato da Costa, Diego Carvalho
Aula 01 (Profs. Diego Carvalho e Fernando Pedrosa)
CNU (Bloco 2 - Tecnologia, Dados e Informação) Conhecimentos Específicos - Eixo Temático 4 - Desenvolvimento de Software: Engenharia de software - 2024 (Pós-Edital)
www.estrategiaconcursos.com.br
39592296820 - Victor Gomes da Costa Lobo
66
94
20. (IFB / IFB – 2017) Um framework de processo de software dirigido a riscos foi proposto por 
Boehm (1988) e é conhecido como modelo em espiral. Este processo de software é 
representado como uma espiral, e não como uma sequência de atividades. Cada volta na espiral 
representa uma fase do processo de software. Segundo Sommerville (2011), no modelo em 
espiral de Boehm, cada volta está dividida em quatro setores. Uma das alternativas abaixo NÃO 
denomina um desses quatro setores. Assinale-a: 
 
a) Desenvolver e verificar próximo nível do produto. 
b) Avaliar alternativas, identificar, resolver riscos. 
c) Gerenciar a qualidade e o custo do desenvolvimento. 
d) Determinar objetivos, alternativas e restrições. 
e) Planejar da próxima fase. 
 
Comentários: 
 
De acordo com Boehm, os setores são: determinar objetivos, alternativas e restrições; avaliar 
alternativas, identificar e resolver riscos; desenvolver e testar; e planejar as próximas fases. Logo, 
não existe: gerenciar a qualidade e o custo do desenvolvimento. 
 
Gabarito: Letra C 
 
21. (FEPESE / MPE-SC – 2014) Assinale a alternativa abaixo que melhor identifica o modelo de 
processo de software no qual uma implementação inicial é exposta ao usuário para que possam 
ser realizados refinamentos posteriores que representam novas versões do sistema. As 
atividades de especificação, desenvolvimento e validação são intercaladas. 
 
a) Relational Unified Process (RUP) 
b) Desenvolvimento Evolucionário 
c) Método Ágil de Desenvolvimento 
d) Modelo de Desenvolvimento em Cascata 
e) Modelo de Engenharia de Software Baseado em Componentes 
 
Comentários: 
 
Mais uma questão bastante parecida: só pode ser o modelo (ou desenvolvimento) evolucionário. 
 
Gabarito: Letra B 
 
22. (IBFC / EBSERH – 2013) No modelo Cascata os requisitos são declarados pelos usuários no início 
do projeto e depois não se retoma mais a essa fase. Devido ao dinamismo das necessidades dos 
usuários pode-se minimizar esse problema com: 
 
a) a prototipagem. 
Renato da Costa, Diego Carvalho
Aula 01 (Profs. Diego Carvalho e Fernando Pedrosa)
CNU (Bloco 2 - Tecnologia, Dados e Informação) Conhecimentos Específicos - Eixo Temático 4 - Desenvolvimento de Software: Engenharia de software - 2024 (Pós-Edital)
www.estrategiaconcursos.com.br
39592296820 - Victor Gomes da Costa Lobo
67
94
b) um desenvolvimento sequencial. 
c) a análise por ponto de função. 
d) caso de uso. 
 
Comentários: 
 
(a) Correto, a prototipagem permite minimizar problemas com requisitos tanto na fase de elicitação 
quanto na fase de validação de requisitos; (b) Errado, isso piora o problema do dinamismo de 
requisitos; (c) Errado, isso não tem nenhum relacionamento com os requisitos; (d) Errado, isso é 
apenas uma técnica de representação de requisitos. 
 
Gabarito: Letra A 
 
23. (ESAF / MPOG – 2010) As atividades do modelo espiral de Engenharia de Software são: 
 
a) Planejamento, Análise dos Componentes, Análise de Hierarquia e Avaliação feita pelo cliente. 
b) Planejamento, Análise dos Riscos, Engenharia e Avaliação feita pelo cliente. 
c) Projeto, Análise dos Benefícios, Engenharia e Avaliação feita pelo gestor. 
d) Planejamento, Eliminação dos Riscos, Análise de Contingência e Avaliação feita pelo cliente. 
e) Planejamento, Projeto, Análise dos Riscos e Engenharia. 
 
Comentários: 
 
Nós vimos que uma das variações dos setores é: planejamento; análise de riscos; engenharia; e 
avaliação do cliente. 
 
Gabarito: Letra B 
 
24. (FUNCAB / PRODAM-AM – 2010) Qual das alternativas a seguir corresponde ao modelo de 
processo, proposto no final da década de 80, que tem como principais características ser 
evolucionário, iterativo e focado na redução dos riscos? 
 
a) Modelo em Espiral. 
b) Modelo em Cascata. 
c) Modelo em V. 
d) Modelo Transformacional. 
e) Modelo de Especificação Operacional. 
 
Comentários: 
 
Perfeito! Ele disse que o modelo é evolucionário e iterativo – além de falar dos riscos! É claro que se 
trata do Modelo em Espiral. 
 
Renato da Costa, Diego Carvalho
Aula 01 (Profs. Diego Carvalho e Fernando Pedrosa)
CNU (Bloco 2 - Tecnologia, Dados e Informação) Conhecimentos Específicos - Eixo Temático 4 - Desenvolvimento de Software: Engenharia de software - 2024 (Pós-Edital)
www.estrategiaconcursos.com.br
39592296820 - Victor Gomes da Costa Lobo
68
94
Gabarito: Letra A 
 
25. (ESAF / ANA – 2009) O modelo de processo de software caracterizado por intercalar as 
atividades de especificação, desenvolvimento e validação, denomina-se: 
 
a) modelo de workflow. 
b) modelo de fluxo de dados. 
c) desenvolvimento evolucionário. 
d) transformação formal. 
e) modelo em cascata. 
 
Comentários: 
 
Intercalar atividades de especificação, desenvolvimento e validação são características do modelo 
ou desenvolvimento evolucionário. 
 
Gabarito: Letra C 
 
26. (UFBA / UFBA – 2009) No processo de software baseado em componentes, cada componente 
projetado para reuso é uma entidade executável independente, que deve manipular exceções. 
 
Comentários: 
 
Para Pressman, um componente é uma parte do sistema modular, executável, implantável, 
independente, padronizada e reutilizável que encapsula a implementação e expõe um conjunto de 
interfaces do sistema. Logo, a primeira parte está correta! A segunda parte afirma que os 
componentes devem manipular exceções. Concurseiro lê um “deve” e já fica de olho aberto! Na 
verdade, de acordo com Sommerville: 
 
“Os componentes não devem tratar as exceções por si mesmos, pois cada aplicação terá seus próprios 
requisitos para tratamento de exceções. Antes, o componente deve definir quais exceções podem surgir 
e publicá-las como parte da interface”. 
 
Gabarito: Errado 
 
 
 
 
 
Renato da Costa, Diego Carvalho
Aula 01 (Profs. Diego Carvalho e Fernando Pedrosa)
CNU (Bloco 2 - Tecnologia, Dados e Informação) Conhecimentos Específicos - Eixo Temático 4 - Desenvolvimento de Software: Engenharia de software - 2024 (Pós-Edital)
www.estrategiaconcursos.com.br
39592296820 - Victor Gomes da Costa Lobo
69
94
 
 
LISTA DE QUESTÕES – CESPE 
 
1. (CESPE / FUNPRESP-EXE - 2022) No modelo em espiral de desenvolvimento de software, cada 
giro ou loop da espiral representa uma fase do processo de software. 
 
2. (CESPE / BANRISUL – 2022) Uma descrição ideal de um componente de software reutilizável 
deve ser feita com base no modelo 3C, que significa composição, conteúdo e contexto. 
 
3. (CESPE / MPC-SC – 2022) No processo de desenvolvimento de software, a prototipação pode 
ajudar tanto na elicitação de requisitos do sistema quanto no estudo de soluções específicas do 
software de modo a apoiar o projeto de interface de usuário. 
 
4. (CESPE / MPC-SC – 2022) Usabilidade consiste em determinar, em uma solução de software, 
quão fácil é corrigir um problema após a sua detecção, uma vez que a engenharia de usabilidade 
refere-se à capacidade de diagnosticar o problema e modificar os componentes necessários 
para corrigi-lo. 
 
5. (CESPE / MPC-SC – 2022) No modelo espiral de Boehm, cada volta na espiral representa uma 
fase do processo de software: na parte mais interna, enfoca-se a viabilidade do sistema e, no 
ciclo seguinte, a definição derequisitos, assim por diante, executando-se, ao longo dos ciclos, a 
análise de riscos, prototipação e codificação. 
 
6. (CESPE / DPE-RO – 2021) Um analista deve escolher uma metodologia de desenvolvimento 
para elaborar o planejamento do ciclo de vida de um produto de software de larga escala. O 
sistema é inédito e o reúso de código semelhante não deve ser considerado como base para o 
novo desenvolvimento. O analista deve considerar, ainda, a necessidade de reduzir os riscos em 
todas as fases do projeto, pois é provável que os requisitos sejam aprimorados e mudem ao 
longo do processo. Entre os riscos a serem mitigados, está o de não ter sido contratado pessoal 
de software suficiente para construir o produto, além de a equipe contratada não ter experiência 
suficiente no desenvolvimento de produtos em larga escala. Ainda, há o risco de o fornecedor 
do hardware necessário ao projeto não entregar todas as estações clientes no prazo do contrato. 
 
Nessa situação hipotética, para a metodologia do processo de software em questão, é mais 
apropriado o uso do: 
 
a) modelo codificar-e-corrigir. 
b) modelo espiral. 
c) modelo integração e configuração. 
d) modelo em cascata. 
e) modelo baseado em protótipos. 
 
Renato da Costa, Diego Carvalho
Aula 01 (Profs. Diego Carvalho e Fernando Pedrosa)
CNU (Bloco 2 - Tecnologia, Dados e Informação) Conhecimentos Específicos - Eixo Temático 4 - Desenvolvimento de Software: Engenharia de software - 2024 (Pós-Edital)
www.estrategiaconcursos.com.br
39592296820 - Victor Gomes da Costa Lobo
70
94
 
 
7. (CESPE / Polícia Federal – 2021) Embora não seja dirigido a riscos, o modelo de 
desenvolvimento de sistemas espiral de Boehm inclui, em seu framework, a etapa de análise e 
validação dos requisitos. 
 
8. (CESPE / SERPRO – 2021) No modelo formal, as etapas do desenvolvimento do software 
incluem especificação formal para definição de requisitos, refinamento para concepção de 
projeto e prova para a verificação. 
 
9. (CESPE / SLU-DF – 2019) No modelo de desenvolvimento de software em cascata, a 
abordagem é orientada ao risco e as tarefas são organizadas nos seguintes ciclos: determinar 
objetivos, identificar e resolver riscos, desenvolver e testar, e planejar a próxima iteração. 
 
10. (CESPE / MPC-PA – 2019) Os modelos espiral e RAD (Rapid Application Development) são 
classificados, respectivamente, como modelos de processo de desenvolvimento 
de software dos tipos 
 
a) incremental e sequencial. 
b) evolutivo e incremental. 
c) evolutivo e sequencial. 
d) incremental e evolutivo. 
e) evolutivo e evolutivo. 
 
11. (CESPE / TRT-CE – 2017) Os modelos de processo em que o sistema é dividido em pequenos 
subsistemas funcionais que, a cada ciclo, são acrescidos de novas funcionalidades são 
denominados: 
 
a) evolutivos. 
b) unificados. 
c) sequenciais. 
d) incrementais. 
 
12. (CESPE / MEC – 2014) No desenvolvimento de software de grande porte, não se usam, em 
conjunto, os seguintes modelos de processo de software genéricos: modelo em cascata, 
desenvolvimento evolucionário e engenharia de software embasada em computador. 
 
13. (CESPE / TRT-10 – 2013) No modelo prototipação, a construção de software tem várias 
atividades que são executadas de forma sistemática e sequencial. 
 
14. (CESPE / STF – 2013) O processo de software fundamentado no modelo em espiral apresenta o 
processo em loops compostos basicamente por setores, como, por exemplo, definição de 
objetivos, avaliação de riscos, planejamento e desenvolvimento e avaliação. 
 
Renato da Costa, Diego Carvalho
Aula 01 (Profs. Diego Carvalho e Fernando Pedrosa)
CNU (Bloco 2 - Tecnologia, Dados e Informação) Conhecimentos Específicos - Eixo Temático 4 - Desenvolvimento de Software: Engenharia de software - 2024 (Pós-Edital)
www.estrategiaconcursos.com.br
39592296820 - Victor Gomes da Costa Lobo
71
94
 
 
15. (CESPE / ANT – 2013) O paradigma de programação orientada a aspectos traz soluções para 
alguns dos problemas existentes no paradigma orientado a objetos, como herança múltipla e 
sobrecarga de operadores. 
 
16. (CESPE / SERPRO – 2013) A POA, uma evolução da programação orientada a objetos, é 
implementada nas linguagens Java, C++, Smalltalk e Prolog. 
 
17. (CESPE / TRT17 – 2013) O modelo espiral de modelagem de processos para desenvolvimento 
de software é finalizado quando o software é implantado. 
 
18. (CESPE / MEC – 2011) O modelo de processo denominado em espiral combina as atividades de 
desenvolvimento com o gerenciamento de riscos, de modo a minimizá-los e controlá-los. 
 
19. (CESPE / AL-ES – 2011) No ciclo de vida em espiral, a de análise de risco é realizada na etapa da 
modelagem do produto. 
 
20. (CESPE / FUB – 2011) Os diversos modelos de processo de software disponíveis permitem a 
representação abstrata de um processo de software sob diferentes perspectivas. No modelo 
evolucionário, sob a perspectiva da arquitetura, a velocidade de desenvolvimento faz que a 
produção de documentos que reflitam cada versão do sistema seja economicamente inviável, 
gerando problemas na validação independente de sistemas. 
 
21. (CESPE / MEC – 2011) No modelo de prototipação, o processo de desenvolvimento de software 
é modelado como uma sequência linear de fases, enfatizando um ciclo de desenvolvimento de 
breve duração. 
 
22. (CESPE / TRE-MT – 2010) A metodologia de prototipagem evolutiva é uma abordagem que 
visualiza o desenvolvimento de concepções do sistema conforme o andamento do projeto, por 
meio de protótipos visuais. 
 
23. (CESPE / INMETRO – 2010) Um dos benefícios da prototipação é a documentação 
normalmente gerada, que facilita a manutenção dos sistemas a longo prazo e a elaboração de 
casos de teste. 
 
24. (CESPE / INMETRO – 2010) Na abordagem evolutiva para desenvolvimento de software, um 
protótipo do software é produzido e utilizado para identificar possíveis problemas com os 
requisitos, sendo descartado logo em seguida, e o desenvolvimento do software propriamente 
dito é, então, iniciado. 
 
25. (CESPE / SERPRO – 2010) O modelo em espiral de ciclo de vida de software é iterativo e 
incremental, uma vez que a mesma sequência de atividades relacionadas à produção de 
software é realizada a cada ciclo da espiral. 
 
Renato da Costa, Diego Carvalho
Aula 01 (Profs. Diego Carvalho e Fernando Pedrosa)
CNU (Bloco 2 - Tecnologia, Dados e Informação) Conhecimentos Específicos - Eixo Temático 4 - Desenvolvimento de Software: Engenharia de software - 2024 (Pós-Edital)
www.estrategiaconcursos.com.br
39592296820 - Victor Gomes da Costa Lobo
72
94
 
 
26. (CESPE / SERPRO – 2010) O modelo de desenvolvimento em espiral permite repensar o 
planejamento diversas vezes durante o desenrolar do projeto. 
 
27. (CESPE / INMETRO – 2010) No modelo em espiral, um exemplo de modelo iterativo, cada loop 
da espiral representa uma fase do processo de software. Nesse modelo, os riscos não são 
considerados, pois podem impactar o projeto. 
 
28. (CESPE / TRE-MT – 2010) O modelo de desenvolvimento em espiral, que tem a codificação 
como segunda etapa, gera o código do sistema muito mais rapidamente que o modelo de 
prototipação. 
 
29. (CESPE / TRE-BA – 2010) Na engenharia de software baseada em componentes, na qual se 
supõe que partes do sistema já existam, o processo de desenvolvimento concentra-se mais na 
integração dessas partes que no seu desenvolvimento a partir do início. Essa abordagem é 
baseada em reúso para o desenvolvimento de sistemas de software. 
 
30. (CESPE / UNIPAMPA – 2009) No modelo de desenvolvimento prototipagem, um protótipo é 
desenvolvido para ajudar no entendimento dos requisitos do sistema. 
 
31. (CESPE / TCE-RN – 2009) A prototipação, uma abordagem para desenvolvimento de software 
na qual se cria um modelo do software que será implementado, é composta de quatro etapas: 
planejamento, análise de risco, engenharia e avaliação do cliente.32. (CESPE / DETRAN-DF – 2009) O modelo de processo de desenvolvimento de software 
evolucionário parte do desenvolvimento de uma implementação inicial cujos resultados são 
apresentados aos clientes e refinados por meio de várias versões até que se alcance o sistema 
adequado. A prototipação, como processo, tem por objetivo compreender as especificações do 
software para se chegar aos requisitos para o sistema. 
 
33. (CESPE / UNIPAMPA – 2009 O modelo espiral admite retorno às fases anteriores de 
desenvolvimento, suportando ainda a execução paralela de fases. 
 
34. (CESPE / ANATEL – 2009) Entre os modelos de ciclo de vida de software, o modelo espiral 
possui maior proximidade com as práticas da engenharia clássica empregadas, por exemplo, na 
construção de casas, quando comparado aos modelos cascata e de componentes reusáveis. 
 
35. (CESPE / INMETRO – 2009) Uma das características marcantes do modelo de desenvolvimento 
em espiral é o fato de ele ser cíclico, e não linear, como o modelo de desenvolvimento em 
cascata. 
 
36. (CESPE / UNIPAMPA – 2009) O modelo de desenvolvimento espiral foi desenvolvido somente 
para abranger as melhores características do ciclo de vida clássico. 
 
Renato da Costa, Diego Carvalho
Aula 01 (Profs. Diego Carvalho e Fernando Pedrosa)
CNU (Bloco 2 - Tecnologia, Dados e Informação) Conhecimentos Específicos - Eixo Temático 4 - Desenvolvimento de Software: Engenharia de software - 2024 (Pós-Edital)
www.estrategiaconcursos.com.br
39592296820 - Victor Gomes da Costa Lobo
73
94
 
 
37. (CESPE / UNIPAMPA – 2009) No modelo de desenvolvimento em espiral, a análise de riscos 
não impacta na elaboração de um produto ou protótipo. 
 
38. (CESPE / TJDFT – 2008) A prototipação evolucionária não gera problemas de manutenção de 
sistema porque o desenvolvimento é rápido e não sofre grandes mudanças. 
 
39. (CESPE / MPE-AM – 2008) No modelo de prototipação, a especificação de requisitos tem pouca 
importância, pois o software é continuamente adaptado em função dos desejos do usuário 
 
40. (CESPE / TJDFT – 2008) A prototipação de um software é uma técnica de desenvolvimento não-
interativa porque o teste do sistema só ocorre na versão final. 
 
41. (CESPE / TJDFT – 2008) Uma das finalidades da prototipação é reduzir o esforço de 
desenvolvimento de um software. 
 
42. (CESPE / TJDFT – 2008) A prototipação evolucionária permite que a versão inicial do protótipo 
seja desenvolvida e refinada em estágios sequenciados, até que se chegue à versão final do 
sistema. 
 
43. (CESPE / TJDFT – 2008) O modelo em espiral é um modelo de processos de software que reúne 
a natureza iterativa da prototipação com os aspectos sistemáticos e controlados do modelo 
sequencial linear. 
 
44. (CESPE / TJDFT – 2008) Empregando o modelo de desenvolvimento em espiral, o software é 
desenvolvido em uma série de versões intermediárias incrementais. 
 
45. (CESPE / SERPRO – 2008) O modelo iterativo e o modelo em espiral possuem características 
semelhantes: ambos permitem que as atividades do processo sejam planejadas e avaliadas ao 
longo do ciclo de vida. 
 
46. (CESPE / MPE-AM – 2008) A utilização de um modelo de desenvolvimento embasado em 
componentes é uma forma de desenvolvimento em espiral que busca a reutilização de trechos 
de software desenvolvidos e testados em projetos anteriores e armazenados em um repositório. 
 
47. (CESPE / SERPRO – 2008) Para a especificação de software e verificação de sistemas, uma 
alternativa que se fundamenta na matemática discreta e na lógica é o modelo incremental. 
 
48. (CESPE / TSE – 2007) Um possível objetivo da prototipação é criar rapidamente um sistema 
experimental que possa ser avaliado por usuários finais. Um protótipo aprovado pelos usuários 
pode vir a ser usado como ponto de partida para a construção do sistema. 
 
49. (CESPE / TRE-AL – 2004) No modelo de prototipação, o desenvolvedor cria inicialmente um 
modelo de software que será posteriormente implementado. 
 
Renato da Costa, Diego Carvalho
Aula 01 (Profs. Diego Carvalho e Fernando Pedrosa)
CNU (Bloco 2 - Tecnologia, Dados e Informação) Conhecimentos Específicos - Eixo Temático 4 - Desenvolvimento de Software: Engenharia de software - 2024 (Pós-Edital)
www.estrategiaconcursos.com.br
39592296820 - Victor Gomes da Costa Lobo
74
94
==2c6c1d==
 
 
50. (CESPE / COHAB – 2004) O modelo espiral é um modelo de processo de software que combina 
a natureza iterativa da prototipagem com os aspectos controlados e sistemáticos do modelo 
sequencial linear. 
 
51. (CESPE / PBV-RR – 2004) O modelo em cascata é linear e sequencial. Modelos como o espiral 
e o Rational Unified Process pregam o desenvolvimento iterativo. 
 
52. (CESPE / BASA – 2004) O modelo em espiral evolui à medida que o processo avança, permitindo 
ao desenvolvedor e ao cliente entenderem melhor os riscos e reagirem em cada nível 
evolucionário. 
 
53. (CESPE / PBV-RR – 2004) O modelo em espiral para desenvolvimento de software é 
fundamentado no faseamento comumente adotado em projetos de engenharia a partir da 
década de 70 do século passado. Tal modelo considera as seguintes fases: análise de requisitos, 
definição, projeto, implementação, integração e testes, operação e manutenção. 
 
54. (CESPE / PBV-RR – 2004) O modelo em espiral de desenvolvimento proposto por Boehm 
apresenta a análise de riscos como uma das suas fases essenciais. 
 
55. (CESPE / STJ – 2004) O modelo de desenvolvimento em espiral requer a consideração dos riscos 
técnicos em todos os estágios ou interações do projeto, o que permite reduzir os riscos antes 
que se concretizem. 
 
56. (CESPE / TRE-AL – 2004) O modelo de desenvolvimento em espiral engloba o que há de melhor 
no modelo cascata e no modelo de prototipação, acrescentando a análise de risco, inexistente 
nestes dois modelos. 
 
57. (CESPE / SERPRO – 2004) Enquanto o reúso em engenharia de software convencional está 
geralmente limitado à extensão e à manutenção de um sistema específico, o reúso, em 
engenharia de software por componentes, é um requisito de desenvolvimento, 
independentemente do projeto em consideração. 
 
58. (CESPE / SERPRO – 2004) O uso de componentes pode estar condicionado a regras de 
licenciamento. Essa preocupação, no entanto, não existe se os componentes forem classificados 
como software livre. 
 
Renato da Costa, Diego Carvalho
Aula 01 (Profs. Diego Carvalho e Fernando Pedrosa)
CNU (Bloco 2 - Tecnologia, Dados e Informação) Conhecimentos Específicos - Eixo Temático 4 - Desenvolvimento de Software: Engenharia de software - 2024 (Pós-Edital)
www.estrategiaconcursos.com.br
39592296820 - Victor Gomes da Costa Lobo
75
94
 
 
GABARITO 
1. CORRETO 
2. ERRADO 
3. ANULADO 
4. ANULADO 
5. ANULADO 
6. LETRA B 
7. ERRADO 
8. CORRETO 
9. ERRADO 
10. LETRA B 
11. LETRA D 
12. ERRADO 
13. ERRADO 
14. CORRETO 
15. ERRADO 
16. ERRADO 
17. ERRADO 
18. CORRETO 
19. ERRADO 
20. CORRETO 
21. ERRADO 
22. CORRETO 
23. ERRADO 
24. ERRADO 
25. ERRADO 
26. CORRETO 
27. ERRADO 
28. ERRADO 
29. CORRETO 
30. CORRETO 
31. ERRADO 
32. ERRADO 
33. ERRADO 
34. ERRADO 
35. CORRETO 
36. ERRADO 
37. ERRADO 
38. ERRADO 
39. ERRADO 
40. ERRADO 
41. CORRETO 
42. CORRETO 
43. CORRETO 
44. CORRETO 
45. CORRETO 
46. CORRETO 
47. ERRADO 
48. CORRETO 
49. CORRETO 
50. CORRETO 
51. CORRETO 
52. CORRETO 
53. ERRADO 
54. CORRETO 
55. CORRETO 
56. ERRADO 
57. CORRETO 
58. ERRADO 
 
 
Renato da Costa, Diego Carvalho
Aula 01 (Profs. Diego Carvalho e Fernando Pedrosa)
CNU (Bloco 2 - Tecnologia, Dados e Informação) Conhecimentos Específicos - Eixo Temático 4 - Desenvolvimento de Software: Engenharia de software - 2024 (Pós-Edital)
www.estrategiaconcursos.com.br
39592296820 - Victor Gomes da Costa Lobo
76
94
 
 
LISTA DE QUESTÕES – FCC 
 
1. (FCC / TRF - 3ª REGIÃO – 2019) No modelo em espiral de processo de software (Boehm), antes 
de cada atividade de prototipação, é sempre realizada uma atividade de: 
 
a)plano de desenvolvimento. 
b) validação de requisitos. 
c) teste de aceitação. 
d) análise de riscos. 
e) plano de ciclo de vida. 
 
2. (FCC / TRF - 3ª REGIÃO – 2019) Considere o modelo de ciclo de vida de software constituído por 
rotinas de trabalho com a participação de todos os membros da equipe, onde falhas não são 
toleráveis e por isso, entre as atividades, duas têm grande importância no processo: uma delas 
dedicada ao planejamento da etapa e outra à de análise de riscos. As atividades são apoiadas 
pela geração de protótipos. Suporta o desenvolvimento de sistemas complexos e de grande 
porte. Trata-se do modelo: 
 
a) Interativo e Incremental. 
b) RAD - Rapid Application Development. 
c) Espiral. 
d) Cascata. 
e) Evolutivo. 
 
3. (FCC / TRT16 – 2014) Os modelos de processo são uma representação abstrata de um processo 
de software, que podem ser usados para explicar diferentes abordagens para o desenvolvimento 
de sistemas. Analise as seguintes abordagens: 
 
Desenvolvimento I: intercala as atividades de especificação, desenvolvimento e validação. Um 
sistema inicial é desenvolvido rapidamente baseado em especificações abstratas e depois é 
refinado com as entradas do cliente para produzir um produto que o satisfaça. 
 
Modelo II: considera as atividades fundamentais do processo, compreendendo especificação, 
desenvolvimento, validação e evolução e as representa como fases de processo separadas, tais 
como especificação de requisitos, projeto de software, implementação, teste etc. 
 
III: baseia-se na existência de um número significativo de partes reusáveis. O processo de 
desenvolvimento do sistema enfoca a integração destas partes, ao invés de desenvolvê-las a 
partir do zero. 
 
Os modelos de processo genéricos descritos em I, II e III são, correta e respectivamente, 
associados a: 
Renato da Costa, Diego Carvalho
Aula 01 (Profs. Diego Carvalho e Fernando Pedrosa)
CNU (Bloco 2 - Tecnologia, Dados e Informação) Conhecimentos Específicos - Eixo Temático 4 - Desenvolvimento de Software: Engenharia de software - 2024 (Pós-Edital)
www.estrategiaconcursos.com.br
39592296820 - Victor Gomes da Costa Lobo
77
94
 
 
 
a) em Espiral - Baseado em Componentes - RAD 
b) Evolucionário - em Cascata - Baseado em Componentes 
c) Baseado em Componentes - Sequencial - Refactoring 
d) Ágil - Sequencial - Unified Process 
e) em Cascata - Ágil - Refactoring 
 
4. (FCC / DPE-SP – 2013) No desenvolvimento de software, podem ser utilizados os chamados 
modelos evolucionários, cujo objetivo é lidar com produtos que possam evoluir ao longo do 
tempo. Assinale a alternativa que contém APENAS modelos evolucionários de desenvolvimento 
de software. 
 
a) UML e de qualidade. 
b) Componentes e arquétipo. 
c) Prototipagem e espiral. 
d) Redes de Petri e certificação. 
e) Semântico e validação. 
 
5. (FCC / TST – 2012) O Ciclo de Vida de um Sistema especifica todas as fases de desenvolvimento, 
desde sua concepção até o processo de manutenção e declínio. No que diz respeito ao 
desenvolvimento de software, existem alguns processos conhecidos. Um destes processos, 
possui característica iterativa e incremental, inicia cada fase do projeto realizando um 
planejamento prévio, realiza a execução da fase, verifica o progresso e os resultados da fase 
(riscos, lições aprendidas) e incrementa novos objetivos para a fase seguinte, seguindo para a 
próxima iteração. O processo de software em questão é o: 
 
a) Modelo espiral. 
b) Ciclo de vida em cascata. 
c) Modelo de desenvolvimento evolucionário (prototipação). 
d) Modelo de desenvolvimento ágil. 
e) Método de desenvolvimento Cleanroom (Sala Limpa). 
 
6. (FCC / TRE-CE – 2012) No desenvolvimento de software em espiral (Boehm), cada loop está 
dividido em quatro setores. NÃO se trata da denominação de um destes setores: 
 
a) levantamento. 
b) definição de objetivos. 
c) avaliação e redução de riscos 
d) desenvolvimento e validação. 
e) planejamento. 
 
7. (FCC / TRT20 – 2010) À medida que se avança pelo modelo ocorre uma iteração e o software 
evolui para estágios superiores, normalmente com aumento da complexidade. Cada iteração 
está provida das atividades determinadas pelos quadrantes planejamento, avaliação de 
Renato da Costa, Diego Carvalho
Aula 01 (Profs. Diego Carvalho e Fernando Pedrosa)
CNU (Bloco 2 - Tecnologia, Dados e Informação) Conhecimentos Específicos - Eixo Temático 4 - Desenvolvimento de Software: Engenharia de software - 2024 (Pós-Edital)
www.estrategiaconcursos.com.br
39592296820 - Victor Gomes da Costa Lobo
78
94
 
 
alternativas e riscos, desenvolvimento do software e avaliação do cliente. No ciclo de vida de 
desenvolvimento de software, trata-se da propriedade do modelo: 
 
a) Cascata. 
b) Incremental. 
c) Espiral. 
d) Prototipação. 
e) Balbúrdia. 
 
8. (FCC / MPE-RN – 2010) O modelo em espiral difere principalmente dos outros modelos de 
processo de software por: 
 
a) não contemplar o protótipo. 
b) reconhecer explicitamente o risco. 
c) não ter fases. 
d) possuir uma fase única evolucionária. 
e) não contemplar o projeto do produto. 
 
9. (FCC / BAHIAGÁS – 2010) No modelo em espiral do processo de software cada loop na espiral 
representa: 
 
a) uma disciplina de requisitos. 
b) um enfoque de banco de dados. 
c) uma tomada de decisão. 
d) uma fase do processo. 
e) um ciclo de programa. 
 
Renato da Costa, Diego Carvalho
Aula 01 (Profs. Diego Carvalho e Fernando Pedrosa)
CNU (Bloco 2 - Tecnologia, Dados e Informação) Conhecimentos Específicos - Eixo Temático 4 - Desenvolvimento de Software: Engenharia de software - 2024 (Pós-Edital)
www.estrategiaconcursos.com.br
39592296820 - Victor Gomes da Costa Lobo
79
94
==2c6c1d==
 
 
GABARITO 
1. LETRA D 
2. LETRA C 
3. LETRA B 
4. LETRA C 
5. LETRA A 
6. LETRA A 
7. LETRA C 
8. LETRA B 
9. LETRA D 
 
 
Renato da Costa, Diego Carvalho
Aula 01 (Profs. Diego Carvalho e Fernando Pedrosa)
CNU (Bloco 2 - Tecnologia, Dados e Informação) Conhecimentos Específicos - Eixo Temático 4 - Desenvolvimento de Software: Engenharia de software - 2024 (Pós-Edital)
www.estrategiaconcursos.com.br
39592296820 - Victor Gomes da Costa Lobo
80
94
 
 
LISTA DE QUESTÕES – FGV 
 
1. (FGV / TJ-RN - 2023) A Equipe de Tecnologia da Informação (ETI) de um tribunal está envolvida 
no projeto TERC cujo ciclo de vida segue uma abordagem adaptativa (ágil). Considerando o ciclo 
de vida empregado no TERC, a ETI: 
 
a) especifica os requisitos do produto final antes do início do desenvolvimento; 
b) solicita o envolvimento das partes interessadas chave em marcos específicos; 
c) controla os riscos à medida em que surgem requisitos e restrições; 
d) ajusta o ciclo de vida do projeto ao ciclo de vida do produto; 
e) estabelece as fases do projeto com base em um ciclo de vida de desenvolvimento preditivo. 
 
2. (FGV / IBGE – 2016) A empresa SONOVATOS desenvolve sistemas há pouco tempo no mercado 
e, como padrão, sempre utilizou o modelo Cascata de ciclo de vida. Alguns clientes ficaram 
insatisfeitos com os produtos desenvolvidos pela empresa por não estarem de acordo com suas 
necessidades. Atualmente a SONOVATOS está desenvolvendo sistemas muito maiores, com 
duração de vários anos, e com requisitos ainda instáveis. O próprio processo de 
desenvolvimento da empresa também está em reformulação. Assim, a adoção de um novo 
modelo de ciclo de vida está sendo avaliada pelos gerentes da empresa. A intenção da 
SONOVATOS é, principalmente, gerenciar riscos e poder reavaliar constantemente o processo 
de desenvolvimento ao longo do projeto, o que permitiria correções nesse processo ou até 
mudança do tipo de processo. O modelo mais adequado para os sistemas atuais de longa 
duração da SONOVATOS é: 
 
a) Rapid Application Development (RAD); 
b) Espiral; 
c) Extremme Programming; 
d) Prototipação; 
e) Modelo V. 
 
3. (FGV / TCM-SP – 2015) Software, assim como todos os sistemas complexos, evolui ao longo do 
tempo. Modelos de processos evolucionários reconhecema natureza iterativa e incremental da 
maioria dos projetos de engenharia de software e são projetados para adequar mudanças. Os 
modelos a serem utilizados em um processo evolucionário são: 
 
a) cascata e modelo V; 
b) prototipação e modelo espiral; 
c) concorrente e métodos formais; 
d) incremental e baseado em componentes; 
e) processo unificado e orientado a aspectos. 
 
Renato da Costa, Diego Carvalho
Aula 01 (Profs. Diego Carvalho e Fernando Pedrosa)
CNU (Bloco 2 - Tecnologia, Dados e Informação) Conhecimentos Específicos - Eixo Temático 4 - Desenvolvimento de Software: Engenharia de software - 2024 (Pós-Edital)
www.estrategiaconcursos.com.br
39592296820 - Victor Gomes da Costa Lobo
81
94
 
 
4. (FGV / Fiocruz – 2010) Como modelo evolucionário do processo de software, uma característica 
da prototipagem é: 
 
a) independer do estabelecimento e da definição de requisitos. 
b) configurar um processo interativo e rápido de desenvolvimento. 
c) iniciar o processo de desenvolvimento pela implantação e pelos testes. 
d) gerar uma primeira versão do sistema completa e isenta de erros. 
e) descartar a participação do cliente no processo de desenvolvimento e de implantação. 
 
5. (FGV / BADESC – 2010) O Modelo Espiral, segundo Pressman (1995), incorpora as melhores 
características do Ciclo de Vida Clássico e da Prototipação e acrescenta o seguinte elemento: 
 
a) análise dos riscos. 
b) análise de projetos. 
c) avaliação de usuários. 
d) refinamento de requisitos. 
e) refinamento de protótipos. 
 
6. (FGV / Senado Federal – 2008) Considere as seguintes assertivas sobre modelos de processos 
de software: 
 
I. No modelo em cascata, a fase seguinte não deve iniciar antes que a fase precedente tenha sido 
concluída. 
II. No modelo evolucionário, a mudança constante tende a corromper a estrutura do software 
III. A explícita consideração dos riscos no modelo em espiral distingue esse modelo dos modelos 
em cascata e evolucionário. 
 
As assertivas corretas são: 
 
a) somente I. 
b) somente I e II. 
c) somente I e III. 
d) somente II e III. 
e) I, II e III. 
 
Renato da Costa, Diego Carvalho
Aula 01 (Profs. Diego Carvalho e Fernando Pedrosa)
CNU (Bloco 2 - Tecnologia, Dados e Informação) Conhecimentos Específicos - Eixo Temático 4 - Desenvolvimento de Software: Engenharia de software - 2024 (Pós-Edital)
www.estrategiaconcursos.com.br
39592296820 - Victor Gomes da Costa Lobo
82
94
==2c6c1d==
 
 
GABARITO 
1. LETRA C 
2. LETRA B 
3. LETRA B 
4. LETRA B 
5. LETRA A 
6. LETRA E 
 
 
Renato da Costa, Diego Carvalho
Aula 01 (Profs. Diego Carvalho e Fernando Pedrosa)
CNU (Bloco 2 - Tecnologia, Dados e Informação) Conhecimentos Específicos - Eixo Temático 4 - Desenvolvimento de Software: Engenharia de software - 2024 (Pós-Edital)
www.estrategiaconcursos.com.br
39592296820 - Victor Gomes da Costa Lobo
83
94
 
 
LISTA DE QUESTÕES – DIVERSAS 
 
1. (VUNESP / TJM-SP – 2021) Algumas atividades que fazem parte do modelo espiral de 
desenvolvimento de software são: 
 
Construção – Implantação – Comunicação – 
Planejamento – Modelagem 
 
A ordem correta com que tais atividades são executadas, considerando o modelo espiral, é: 
 
a) Comunicação, Planejamento, Modelagem, Construção e Implantação. 
b) Construção, Implantação, Comunicação, Modelagem e Planejamento. 
c) Modelagem, Planejamento, Construção, Implantação e Comunicação. 
d) Planejamento, Construção, Implantação, Comunicação e Modelagem. 
e) Planejamento, Modelagem, Comunicação, Construção e Implantação. 
 
2. (VUNESP / CETESB – 2009) Considere um sistema cujos requisitos de interface são definidos 
apenas quando o cliente realiza um test-drive na aplicação e aprova essa interface. Assinale a 
alternativa que apresenta o modelo mais adequado para o desenvolvimento da interface desse 
sistema. 
 
a) Ágil. 
b) Cascata. 
c) Iterativo incremental. 
d) Prototipação. 
e) Rapid Application Development. 
 
3. (CESGRANRIO / PETROBRAS – 2018) O chefe dos desenvolvedores de sistemas de uma 
empresa acompanhou o seguinte diálogo entre um de seus subordinados, um usuário e o diretor 
de operações. 
 
Diretor – Acho que já poderíamos começar o desenvolvimento daquele sistema que o 
departamento de esportes pediu. 
 
Usuário – Não é cedo demais? Ainda não temos todas as funcionalidades bem definidas. 
 
Desenvolvedor – É verdade, mas acho que já é possível especificar e implementar algumas 
funcionalidades mais importantes e construir uma primeira versão até o final do mês. Depois 
acrescentaríamos outras funcionalidades à medida que as fôssemos construindo, gerando, a 
partir da experiência do uso, versões sucessivas e cada vez mais completas. 
 
Renato da Costa, Diego Carvalho
Aula 01 (Profs. Diego Carvalho e Fernando Pedrosa)
CNU (Bloco 2 - Tecnologia, Dados e Informação) Conhecimentos Específicos - Eixo Temático 4 - Desenvolvimento de Software: Engenharia de software - 2024 (Pós-Edital)
www.estrategiaconcursos.com.br
39592296820 - Victor Gomes da Costa Lobo
84
94
 
 
Diretor – Acho isso ótimo, assim já teremos uma noção do impacto que o sistema poderá causar 
no desempenho dos atletas. Comecemos logo, não temos um efetivo tão grande em TI. 
 
Usuário – OK, vamos em frente, mas não contem nada para aquele especialista em risco. Já 
temos muito trabalho pela frente. Nossa estrutura ainda não suporta esse tipo de cuidado; se 
entrarmos nessa, o projeto vai atrasar. E mantenham o contato e o foco no objetivo: um produto 
simples, mas de qualidade. 
 
A partir desse episódio e refletindo sobre o que ouvira, o chefe dos desenvolvedores deverá optar 
pelo modelo de processo de software: 
 
a) RAD 
b) incremental 
c) cascata 
d) espiral 
e) baseado em componentes 
 
4. (CESGRANRIO / PETROBRÁS – 2014) Um técnico de informática, com o objetivo de agilizar o 
desenvolvimento de um software, escolheu o desenvolvimento evolucionário, uma abordagem 
da área de Engenharia de Software, que: 
 
a) facilita a produção de sistemas bem estruturados, privilegiando um processo de mudanças 
contínuas, cada vez mais fáceis e baratas. 
 
b) se baseia na existência de um número significativo de componentes reusáveis, num processo 
de desenvolvimento que enfoca a integração desses componentes, em vez de desenvolvê-los a 
partir do zero 
 
c) considera como atividades fundamentais do processo a especificação, o desenvolvimento, a 
validação e a evolução, representado-as como fases de processo separadas, sendo que para uma 
fase ser iniciada, a outra deve estar completamente terminada. 
 
d) é mutuamente exclusiva com o modelo em cascata e de Engenharia de Software baseada em 
componentes, sendo que os subsistemas contidos em um sistema maior precisam ser 
desenvolvidos, usando a mesma abordagem ou modelo. 
 
e) intercala as atividades de especificação, desenvolvimento e validação, permitindo que um 
sistema inicial seja desenvolvido rapidamente, baseado em especificações abstratas. 
 
5. (COSEAC / UFF – 2019) Nos projetos, quando o time quebra o produto em vários pedaços 
menores, trabalhando e entregando uma parte de cada vez, sem se preocupar com agilidade, e 
somente quando esta parte estiver pronta o time parte para outro pedaço, iniciando uma nova 
fase, constata-se um ciclo de vida: 
 
Renato da Costa, Diego Carvalho
Aula 01 (Profs. Diego Carvalho e Fernando Pedrosa)
CNU (Bloco 2 - Tecnologia, Dados e Informação) Conhecimentos Específicos - Eixo Temático 4 - Desenvolvimento de Software: Engenharia de software - 2024 (Pós-Edital)
www.estrategiaconcursos.com.br
39592296820 - Victor Gomes da Costa Lobo
85
94
 
 
a) preditivo. 
b) iterativo e incremental. 
c) adaptativo. 
d) RUP. 
e) cascata. 
 
6. (IF-PA / IF-PA – 2019) Tem-se como boas práticas em projetos de software a definição dos seus 
requisitos funcionais e suas funcionalidades. No decorrer dessa definição, pode surgir a 
necessidade de fornecer, de forma prioritária, um conjunto de funcionalidades iniciais básicas e,após esse fornecimento, podemos melhorar e expandir as funcionalidades em versões de 
software posteriores, até atingir todos os requisitos definidos. Nesse caso, estamos aplicando 
um modelo de processo de software denominado: 
 
a) Métodos Formais. 
b) Business Process Management (BPM). 
c) Capability Maturity Model Integration (CMMI) 
d) Incremental. 
e) Entidade e Relacionamento. 
 
7. (FADESP / IF-PA – 2019) O princípio fundamental é que, a cada ciclo, uma versão operacional 
do sistema será produzida e entregue para uso ou avaliação detalhada do cliente. Os requisitos 
têm de ser levantados e é preciso constatar que o sistema é modular. Esse é o modelo: 
 
a) Incremental. 
b) Espiral. 
c) Cascata. 
d) RAD. 
e) XP. 
 
8. (CETREDE / Prefeitura de São Gonçalo do Amarante - CE – 2019) Sobre Engenharia de 
Software, marque a opção INCORRETA. 
 
a) O modelo Cascata tem como característica intercalar as atividades de especificação, 
desenvolvimento e validação. Esta abordagem, permite a entrega de um produto ao fim de um 
longo ciclo de desenvolvimento e com baixa perspectiva de falha funcional. 
 
b) A engenharia de software baseada em componentes baseia-se na existência de um número 
significativo de componentes reusáveis, enfocando o desenvolvimento na integração destes 
componentes. 
 
c) No desenvolvimento exploratório, o objetivo do processo é trabalhar com o cliente para 
explorar os requisitos e entregar o sistema final. 
 
Renato da Costa, Diego Carvalho
Aula 01 (Profs. Diego Carvalho e Fernando Pedrosa)
CNU (Bloco 2 - Tecnologia, Dados e Informação) Conhecimentos Específicos - Eixo Temático 4 - Desenvolvimento de Software: Engenharia de software - 2024 (Pós-Edital)
www.estrategiaconcursos.com.br
39592296820 - Victor Gomes da Costa Lobo
86
94
 
 
d) No processo de engenharia de requisitos, a etapa de elicitação e análise dos requisitos é 
responsável pela derivação de requisitos através da observação de sistemas existentes, 
discussões com usuários potenciais, análise de tarefas etc. 
 
e) Especificação, projeto e implementação, validação e evolução do software são etapas comuns 
em qualquer processo de software. 
 
9. (COSEAC / UFF – 2019) Dos modelos de desenvolvimento de software, aquele que prioriza a 
análise dos riscos envolvidos no desenvolvimento de cada parte do software é o modelo: 
 
a) em cascata. 
b) de prototipação. 
c) incremental. 
d) espiral. 
e) baseado em componentes. 
 
10. (INSTITUTO AOCP / UFFS – 2019) Assinale a alternativa que apresenta uma característica do 
modelo espiral para engenharia de software. 
 
a) Na etapa “engenharia”, são identificadas as alternativas e as restrições. 
b) Contempla a análise de riscos, além das melhores características do ciclo de vida clássico e 
prototipação. 
c) O modelo espiral veio para substituir o modelo cascata, que caiu em desuso por sua alta 
complexidade. 
d) Esse modelo contempla as seguintes atividades: engenharia de sistemas, análise, projeto, 
codificação, teste e manutenção. 
e) Esse modelo define que, na etapa de desenvolvimento, deve ser adotada uma metodologia 
ágil de desenvolvimento. 
 
11. (COVEST-COPSET / UFPE – 2019) A respeito de modelos de processo de software, assinale a 
alternativa correta: 
 
a) O modelo em cascata é inconsistente com outros modelos de processos de engenharia, tendo 
documentação produzida em cada fase do ciclo. Dessa forma, o processo torna-se pouco visível, 
dificultando o monitoramento do progresso pelos gerentes, de acordo com o plano de 
desenvolvimento. 
 
b) No modelo espiral de Boehm, o processo de software é representado como uma espiral em 
que cada volta representa uma fase do processo de software. O modelo não se tornou popular 
devido a problemas ligados ao gerenciamento de riscos de projeto. 
 
c) Existem alguns tipos de sistema para os quais o desenvolvimento e a entrega incrementais 
não são a melhor abordagem. Por exemplo, alguns sistemas críticos, em que todos os requisitos 
Renato da Costa, Diego Carvalho
Aula 01 (Profs. Diego Carvalho e Fernando Pedrosa)
CNU (Bloco 2 - Tecnologia, Dados e Informação) Conhecimentos Específicos - Eixo Temático 4 - Desenvolvimento de Software: Engenharia de software - 2024 (Pós-Edital)
www.estrategiaconcursos.com.br
39592296820 - Victor Gomes da Costa Lobo
87
94
 
 
devem ser analisados na busca por iterações capazes de comprometer a proteção ou a 
segurança do sistema. 
 
d) Um modelo de processo para desenvolvimento de protótipos em que os objetivos da 
prototipação são descobertos ao final de cada iteração, depois que os usuários experimentarem 
os diversos protótipos produzidos ao longo do processo. Isso torna a abordagem pouco 
previsível e mais incerta. 
 
e) Na entrega incremental, os clientes podem usar os incrementos iniciais como protótipos e 
visualizar o avanço gradativo no desenvolvimento, mas necessitam reaprender o uso do sistema 
quando sua versão final estiver disponível. 
 
12. (IBFC / Prefeitura de Cuiabá - MT – 2019) Heitor é gerente de projeto e precisa decidir qual 
modelo utilizará no processo de desenvolvimento do próximo software da empresa Brasil. 
Quanto a alguns dos modelos do ciclo de vida de desenvolvimento de software, assinale a 
alternativa incorreta. 
 
a) Modelo Espiral: produto final é entregue rapidamente 
b) Modelo Incremental: produzem o sistema de forma incremental até a sua versão final 
c) Metodologias Ágeis: dura de 1(uma) a 4(quatro) semanas e ao final de cada iteração deve 
haver entrega ao cliente 
d) Modelo em Cascata: componente do sistema é entregue por fases, podendo acontecer 
paralelamente 
 
13. (COSEAC / UFF – 2019) Em relação aos modelos de processos de software, avalie se são 
verdadeiras (V) ou falsas (F) as afirmativas a seguir: 
 
I. O modelo de desenvolvimento orientado a reúso tem a vantagem da redução de riscos e de 
custos. 
II. O modelo de desenvolvimento incremental possui a vantagem da facilidade de mapear os 
requisitos dos clientes dentro de incrementos de tamanho correto. 
III. O modelo em cascata deve ser utilizado somente quando os requisitos forem bem 
compreendidos. 
 
As afirmativas I, II e III são, respectivamente: 
 
a) V, F e V. 
b) F, V e V. 
c) V, F e F. 
d) F, F e V. 
e) V, V e V. 
 
14. (IADES / CFM – 2018) O Modelo Espiral (Spiral) foi originalmente proposto por Boehm (1986) e 
é fortemente orientado à redução de riscos. 
Renato da Costa, Diego Carvalho
Aula 01 (Profs. Diego Carvalho e Fernando Pedrosa)
CNU (Bloco 2 - Tecnologia, Dados e Informação) Conhecimentos Específicos - Eixo Temático 4 - Desenvolvimento de Software: Engenharia de software - 2024 (Pós-Edital)
www.estrategiaconcursos.com.br
39592296820 - Victor Gomes da Costa Lobo
88
94
 
 
 
WAZLAWICK, R. S. Engenharia de Software: Conceitos e práticas. São Paulo: Elsevier, 2013. 
 
 
Considerando o exposto e o Modelo Espiral de ciclo de vida de software, assinale a alternativa 
correta: 
 
a) O Modelo Espiral realiza uma etapa de cada vez, partindo para a próxima etapa apenas após 
a anterior estar totalmente validada. 
 
b) Tal modelo de ciclo de vida tem foco apenas na resolução de riscos de requisitos mal 
compreendidos, fornecendo tempo suficiente para que estes possam ser entendidos e 
implementados. 
 
c) O projeto é dividido em subprojetos, cada qual abordando um ou mais elementos de alto risco, 
até que todos os riscos identificados tenham sido tratados. 
 
d) Cada iteração é iniciada sem planejamento prévio, resolvendo-se os problemas no momento 
em que surgem. 
 
e) O início do ciclo de vida do projeto se parece mais com o Modelo Cascata. 
 
15. (FADESP / IF-PA – 2018) Usando o modelo ____________, o sistema é desenvolvido em ciclos, 
sendo que os primeiros ciclos podem não conter todas as atividades. O produto resultante de 
um primeiro ciclo pode ser uma especificação do produto ou um estudo de viabilidade. Os ciclos 
subsequentes podem ser protótipos, chegando progressivamente a versões operacionais do 
software, até se obter o produtocompleto. Modelos podem ser úteis para ajudar a levantar e 
validar requisitos, mas pode ocorrer de os clientes e usuários só terem uma verdadeira dimensão 
do que está sendo construído se forem colocados diante do sistema. Nestes casos, o uso da 
__________________ é fundamental. 
 
As expressões que completam corretamente os espaços em branco, respectivamente, são: 
 
a) espiral, prototipação. 
b) cascata, prototipação. 
c) XP, conversa com os clientes. 
d) espiral, cascata. 
e) incremental, prototipação. 
 
16. (AOCP / UNIR – 2018) O desenvolvimento formal de sistemas é uma abordagem que tem 
pontos diferentes ao modelo em cascata e usa uma base da transformação matemática modal 
de uma especificação de sistemas em um programa executável. 
 
Renato da Costa, Diego Carvalho
Aula 01 (Profs. Diego Carvalho e Fernando Pedrosa)
CNU (Bloco 2 - Tecnologia, Dados e Informação) Conhecimentos Específicos - Eixo Temático 4 - Desenvolvimento de Software: Engenharia de software - 2024 (Pós-Edital)
www.estrategiaconcursos.com.br
39592296820 - Victor Gomes da Costa Lobo
89
94
 
 
17. (CS-UFG / UFG – 2017) É um modelo de processo geral de software que tem como característica 
a existência de duas fases distintas relacionadas à engenharia de requisitos. Qual é esse modelo? 
 
a) Modelo em cascata. 
b) Modelo orientado a reúso de componentes. 
c) Modelo espiral de Boehm. 
d) Modelo de entregas em estágios. 
 
18. (IFB / IFB – 2017) O modelo de processo de software evolucionário que acopla a natureza 
iterativa da prototipação com os aspectos sistemáticos e controlados do modelo cascata 
denomina-se: 
 
a) Modelo Ágil. 
b) Modelo Concorrente. 
c) Modelo Iterativo. 
d) Modelo Orientado a Objetos. 
e) Modelo Espiral. 
 
19. (IESES / CEGÁS – 2017) Considerando o referencial de Boehm para o processo de 
desenvolvimento de software, modelo em espiral, assinale a alternativa que define as quatro 
ações que devem ocorrer em cada iteração: 
 
a) Sprint, definição das funcionalidades, Desenvolvimento e validação e Planejamento da 
próxima iteração. 
 
b) Definição do product owner, Avaliação e redução de riscos, Sprint, definição das 
funcionalidades. 
 
c) Determinação dos objetivos, Avaliação e redução de riscos, Desenvolvimento e validação e 
Planejamento da próxima iteração. 
 
d) Determinação dos objetivos, Avaliação e redução de riscos, Sprint, definição das 
funcionalidades. 
 
20. (IFB / IFB – 2017) Um framework de processo de software dirigido a riscos foi proposto por 
Boehm (1988) e é conhecido como modelo em espiral. Este processo de software é representado 
como uma espiral, e não como uma sequência de atividades. Cada volta na espiral representa 
uma fase do processo de software. Segundo Sommerville (2011), no modelo em espiral de 
Boehm, cada volta está dividida em quatro setores. Uma das alternativas abaixo NÃO denomina 
um desses quatro setores. Assinale-a: 
 
a) Desenvolver e verificar próximo nível do produto. 
b) Avaliar alternativas, identificar, resolver riscos. 
c) Gerenciar a qualidade e o custo do desenvolvimento. 
Renato da Costa, Diego Carvalho
Aula 01 (Profs. Diego Carvalho e Fernando Pedrosa)
CNU (Bloco 2 - Tecnologia, Dados e Informação) Conhecimentos Específicos - Eixo Temático 4 - Desenvolvimento de Software: Engenharia de software - 2024 (Pós-Edital)
www.estrategiaconcursos.com.br
39592296820 - Victor Gomes da Costa Lobo
90
94
==2c6c1d==
 
 
d) Determinar objetivos, alternativas e restrições. 
e) Planejar da próxima fase. 
 
21. (FEPESE / MPE-SC – 2014) Assinale a alternativa abaixo que melhor identifica o modelo de 
processo de software no qual uma implementação inicial é exposta ao usuário para que possam 
ser realizados refinamentos posteriores que representam novas versões do sistema. As 
atividades de especificação, desenvolvimento e validação são intercaladas. 
 
a) Relational Unified Process (RUP) 
b) Desenvolvimento Evolucionário 
c) Método Ágil de Desenvolvimento 
d) Modelo de Desenvolvimento em Cascata 
e) Modelo de Engenharia de Software Baseado em Componentes 
 
22. (IBFC / EBSERH – 2013) No modelo Cascata os requisitos são declarados pelos usuários no início 
do projeto e depois não se retoma mais a essa fase. Devido ao dinamismo das necessidades dos 
usuários pode-se minimizar esse problema com: 
 
a) a prototipagem. 
b) um desenvolvimento sequencial. 
c) a análise por ponto de função. 
d) caso de uso. 
 
23. (ESAF / MPOG – 2010) As atividades do modelo espiral de Engenharia de Software são: 
 
a) Planejamento, Análise dos Componentes, Análise de Hierarquia e Avaliação feita pelo cliente. 
b) Planejamento, Análise dos Riscos, Engenharia e Avaliação feita pelo cliente. 
c) Projeto, Análise dos Benefícios, Engenharia e Avaliação feita pelo gestor. 
d) Planejamento, Eliminação dos Riscos, Análise de Contingência e Avaliação feita pelo cliente. 
e) Planejamento, Projeto, Análise dos Riscos e Engenharia. 
 
24. (FUNCAB / PRODAM-AM – 2010) Qual das alternativas a seguir corresponde ao modelo de 
processo, proposto no final da década de 80, que tem como principais características ser 
evolucionário, iterativo e focado na redução dos riscos? 
 
a) Modelo em Espiral. 
b) Modelo em Cascata. 
c) Modelo em V. 
d) Modelo Transformacional. 
e) Modelo de Especificação Operacional. 
 
25. (ESAF / ANA – 2009) O modelo de processo de software caracterizado por intercalar as 
atividades de especificação, desenvolvimento e validação, denomina-se: 
 
Renato da Costa, Diego Carvalho
Aula 01 (Profs. Diego Carvalho e Fernando Pedrosa)
CNU (Bloco 2 - Tecnologia, Dados e Informação) Conhecimentos Específicos - Eixo Temático 4 - Desenvolvimento de Software: Engenharia de software - 2024 (Pós-Edital)
www.estrategiaconcursos.com.br
39592296820 - Victor Gomes da Costa Lobo
91
94
 
 
a) modelo de workflow. 
b) modelo de fluxo de dados. 
c) desenvolvimento evolucionário. 
d) transformação formal. 
e) modelo em cascata. 
 
26. (UFBA / UFBA – 2009) No processo de software baseado em componentes, cada componente 
projetado para reuso é uma entidade executável independente, que deve manipular exceções. 
 
Renato da Costa, Diego Carvalho
Aula 01 (Profs. Diego Carvalho e Fernando Pedrosa)
CNU (Bloco 2 - Tecnologia, Dados e Informação) Conhecimentos Específicos - Eixo Temático 4 - Desenvolvimento de Software: Engenharia de software - 2024 (Pós-Edital)
www.estrategiaconcursos.com.br
39592296820 - Victor Gomes da Costa Lobo
92
94
 
 
GABARITO 
1. LETRA A 
2. LETRA D 
3. LETRA B 
4. LETRA E 
5. LETRA B 
6. LETRA D 
7. LETRA A 
8. LETRA A 
9. LETRA D 
10. LETRA B 
11. LETRA C 
12. LETRA D 
13. LETRA A 
14. LETRA C 
15. LETRA A 
16. ERRADO 
17. LETRA B 
18. LETRA E 
19. LETRA C 
20. LETRA C 
21. LETRA B 
22. LETRA A 
23. LETRA B 
24. LETRA A 
25. LETRA C 
26. ERRADO 
 
 
Renato da Costa, Diego Carvalho
Aula 01 (Profs. Diego Carvalho e Fernando Pedrosa)
CNU (Bloco 2 - Tecnologia, Dados e Informação) Conhecimentos Específicos - Eixo Temático 4 - Desenvolvimento de Software: Engenharia de software - 2024 (Pós-Edital)
www.estrategiaconcursos.com.br
39592296820 - Victor Gomes da Costa Lobo
93
94

Mais conteúdos dessa disciplina