Buscar

Engenharia de Software II

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 114 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 114 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 114 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

1 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
ENGENHARIA DE SOFTWARE II 
 
Ivone Ascar Sauáia Guimarães 
 
 
 
 
 
 
 
 
 
2 
 
 
 
 
 
 
 
 
 
 
 
 
Ivone Ascar Sauáia Guimarães 
 
Possui graduação em Tecnologia em Processamento de Dados pelo Centro Universitário 
do Maranhão (2000), especialização em Gestão em Tecnologia e Negócios em 
Telecomunicações pela Universidade Estácio de Sá (2001) e Mestrado em Educação pela 
Universidade Católica de Brasília (2011). Cursa, neste momento a graduação em Letras - 
licenciatura pelo Centro Universitário Claretiano como conclusão prevista para 2024. 
Durante o mestrado dedicou seus estudos na área de Educação à Distância como 
elemento de inclusão social, o que culminou em sua dissertação. Tem experiência docente 
superior a 15 anos, atuando nos mais diferentes cursos como Sistemas de Informação, 
Pedagogia, Radiologia, Turismo, Engenharia Ambiental, Engenharia Civil, Engenharia de 
Petróleo, Engenharia de Produção e Administração, dentre outros, nas disciplinas de 
Informática, Informática Educacional, Fundamentos de EAD, Metodologia Científica, 
Projeto de Sistemas de Informação (TCC), Administração de Sistemas de Informação e 
Interface Homem-Máquina, dentre outras. No momento presente leciona somente no 
ensino presencial. Atuou como professora universitária na Faculdade Devry São Luís de 
julho de 2015 à janeiro de 2017 e na Universidade Ceuma de Agosto de 2003 a Julho de 
2020, onde atuou como docente dos Cursos de Engenharia Civil, Engenharia de Produção 
e Sistemas de Informação, como pesquisadora do NusTI - Núcleo de Pesquisas em Sistemas 
e Tecnologia da Informação, como membro de Conselho de Curso e de Conselho 
Universitário. Recentemente, em 2022, foi instrutora junto ao Senai para o ensino médio em 
disciplina de lógica. Atualmente trabalha em seu próprio negócio de consultoria e como 
prestadora de serviços para empresas como DTCom e Faculdade Única, como 
conteudista para a EAD, e no IGTI - XP Educação, como orientadora de projeto junto ao 
MBA. 
 
 
 
 
 
 
 
 
 
3 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
ENGENHARIA DE SOFTWARE II 
1ª edição 
Ipatinga – MG 
ANO 
 
 
 
 
 
 
 
 
 
4 
 
 
FACULDADE ÚNICA EDITORIAL 
 
Diretor Geral: Valdir Henrique Valério 
Diretor Executivo: William José Ferreira 
Ger. do Núcleo de Educação a Distância: Cristiane Lelis dos Santos 
Coord. Pedag. da Equipe Multidisciplinar: Gilvânia Barcelos Dias Teixeira 
Revisão Gramatical e Ortográfica: Izabel Cristina da Costa 
Revisão/Diagramação/Estruturação: Bruna Luiza Mendes Leite 
 Fernanda Cristine Barbosa 
 Guilherme Prado Salles 
 Lívia Batista Rodrigues 
Design: Bárbara Carla Amorim O. Silva 
 Élen Cristina Teixeira Oliveira 
 Maria Eliza Perboyre Campos 
 
 
 
 
 
 
© 2021, Faculdade Única. 
 
Este livro ou parte dele não podem ser reproduzidos por qualquer meio sem Autorização 
escrita do Editor. 
 
 
 
Ficha catalográfica elaborada pela bibliotecária Melina Lacerda Vaz CRB – 6/2920. 
 
 
 
 
 
NEaD – Núcleo de Educação a Distância FACULDADE ÚNICA 
Rua Salermo, 299 
Anexo 03 – Bairro Bethânia – CEP: 35164-779 – Ipatinga/MG 
Tel (31) 2109 -2300 – 0800 724 2300 
www.faculdadeunica.com.br
http://www.faculdadeunica.com.br/
 
 
 
 
 
 
 
 
 
5 
 
 
Menu de Ícones 
Com o intuito de facilitar o seu estudo e uma melhor compreensão do conteúdo 
aplicado ao longo do livro didático, você irá encontrar ícones ao lado dos textos. Eles 
são para chamar a sua atenção para determinado trecho do conteúdo, cada um 
com uma função específica, mostradas a seguir: 
 
 
 
São sugestões de links para vídeos, documentos 
científicos (artigos, monografias, dissertações e teses), 
sites ou links das Bibliotecas Virtuais (Minha Biblioteca 
e Biblioteca Pearson) relacionados com o conteúdo 
abordado. 
 
Trata-se dos conceitos, definições ou afirmações 
importantes nas quais você deve ter um maior grau 
de atenção! 
 
São exercícios de fixação do conteúdo abordado 
em cada unidade do livro. 
 
São para o esclarecimento do significado de 
determinados termos/palavras mostradas ao longo 
do livro. 
 
Este espaço é destinado para a reflexão sobre 
questões citadas em cada unidade, associando-o a 
suas ações, seja no ambiente profissional ou em seu 
cotidiano. 
 
 
 
 
 
 
 
 
 
6 
 
 
SUMÁRIO 
 
 PROCESSO DE DESENVOLVIMENTO DE SOFTWARE ................................. 9 
1.1 DEFINIÇÃO E IMPORTÂNCIA PROCESSO DE DESENVOLVIMENTO DE SOFTWARE
 ................................................................................................................................. 9 
1.2 MODELOS DE PROCESSOS DE SOFTWARE ........................................................... 12 
1.3 Modelo em Cascata ........................................................................................... 14 
1.4 Modelo em Espiral ............................................................................................... 15 
1.5 Modelo em Prototipação .................................................................................... 16 
1.6 Modelo em Desenvolvimento Incremental ...................................................... 18 
1.7 Modelo em Entrega Incremental ....................................................................... 19 
1.8 Modelo Orientada ao Reuso .............................................................................. 20 
FIXANDO O CONTEÚDO ...................................................................................... 23 
 ATIVIDADES RELACIONADAS AO PROCESSO DE DESENVOLVIMENTO 
DE SOFTWARE .......................................................................................... 27 
2.1 ESPECIFICAÇÃO DE SOFTWARE ........................................................................... 27 
2.2 PROJETO E IMPLEMENTAÇÃO DE SOFTWARE ...................................................... 29 
2.3 VALIDAÇÃO DE SOFTWARE ................................................................................. 30 
2.4 EVOLUÇÃO DE SOFTWARE ................................................................................... 31 
FIXANDO O CONTEÚDO ...................................................................................... 35 
METODOLOGIAS ÁGEIS .......................................................................... 40 
3.1 HISTÓRIA, CONCEITO E IMPORTÂNCIA DAS METODOLOGIAS ÁGEIS .............. 40 
3.2 VISÃO GERAL DAS METODOLOGIAS ÁGEIS DE MAIOR REPRESENTATIVIDADE 
NA TI ...................................................................................................................... 42 
3.3 VANTAGENS DE APLICAÇÃO DAS METODOLOGIAS ÁGEIS (CLIENTE X 
DESENVOLVIMENTO) ............................................................................................ 46 
3.4 MANIFESTO ÁGIL .................................................................................................. 49 
3.5 Valores e Princípios defendidos no Manifesto Ágil .......................................... 51 
FIXANDO O CONTEÚDO ...................................................................................... 54 
METODOLOGIA XP .................................................................................. 59 
4.1 HISTÓRIA, CONCEITO E IMPORTÂNCIA DA METODOLOGIA XP ........................ 59 
4.2 FINALIDADE DA METODOLOGIA XP .................................................................... 62 
4.3 VANTAGENS E RESTRIÇÕES DE APLICAÇÃO DA METODOLOGIA XP ................ 63 
4.3.1 EQUIPES E PAPÉIS NA METODOLOGIA XP ........................................................... 63 
4.3.2 MODO DE AÇÃO E ETAPAS DA METODOLOGIA XP ........................................... 64 
4.3.3 Jogo do Planejamento (Release Planning) e História de Usuário .................. 65 
4.3.4 Programação em Par (Pair Programming)e Código Coletivo ....................... 66 
4.3.5 Stand up Meeting ................................................................................................ 67 
4.3.6 Padrão de Codificação e Metáforas ................................................................ 68 
4.3.7 Refatoração (Refactoring) .................................................................................. 69 
UNIDADE 
01 
UNIDADE 
02 
UNIDADE 
03 
UNIDADE 
04 
 
 
 
 
 
 
 
 
 
7 
 
 
4.3.8 Desenvolvimento guiado por Testes (Test-Driven Development - TDD) ......... 70 
FIXANDO O CONTEÚDO ...................................................................................... 72 
METODOLOGIA SCRUM .......................................................................... 76 
5.1 HISTÓRIA, CONCEITO E IMPORTÂNCIA DA METODOLOGIA SCRUM ................ 76 
5.2 FINALIDADE DA METODOLOGIA SCRUM ............................................................ 79 
5.3 VANTAGENS E RESTRIÇÕES DE APLICAÇÃO DA METODOLOGIA SCRUM ........ 79 
5.4 EQUIPES E PAPÉIS NA METODOLOGIA SCRUM ................................................... 80 
5.5 MODO DE AÇÃO E ETAPAS DA METODOLOGIA SCRUM ................................... 82 
FIXANDO O CONTEÚDO ...................................................................................... 86 
ESTIMATIVA DE SOFTWARE ...................................................................... 90 
6.1 CONCEITO E IMPORTÂNCIA DA ESTIMATIVA DE SOFTWARE ............................. 90 
6.2 MÉTRICAS DE SOFTWARE ...................................................................................... 91 
6.3 Análise por Ponto de Função ............................................................................. 92 
6.4 Planning Poker ................................................................................................... 102 
FIXANDO O CONTEÚDO .................................................................................... 108 
RESPOSTAS DO FIXANDO O CONTEÚDO .......................................................... 112 
REFERÊNCIAS ....................................................................................................... 113 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
UNIDADE 
05 
UNIDADE 
06 
 
 
 
 
 
 
 
 
 
8 
 
 
CONFIRA NO LIVRO 
 
A Unidade I trata do que venha a ser o Processo de 
Desenvolvimento de Software, sua importância e finaliza 
apresentando os principais Modelos de Processos de Software 
conhecidos. 
A Unidade II trata especificamente do Processo de 
Desenvolvimento de Software, especificando em linhas gerais o seu 
ciclo e cada uma das etapas envolvidas. 
 
 
A Unidade III apresenta o conceito de Modelos Ágeis, histórico, 
visão geral, vantagens e finaliza apresentando o Manifesto Ágil, 
sendo ele o documento direcionador para as Metodologias Ágeis 
de desenvolvimento. 
A Unidade IV apresenta a Metodologia Ágil XP e demais elementos 
que permitem maior conhecimento acerca da ferramenta. 
 
 
 
 
 
 
A Unidade V apresenta a Metodologia Ágil Scrum e demais 
elementos que permitem maior conhecimento acerca da 
ferramenta. 
 
A Unidade VI trata de Estimativa de Software e para tal apresenta 
as métricas de Ponto de Função e Planning Poker. 
 
 
 
 
 
 
 
 
 
 
 
 
9 
 
 
 PROCESSO DE DESENVOLVIMENTO 
DE SOFTWARE 
 
 
 
 
 
 
 
 
1.1 DEFINIÇÃO E IMPORTÂNCIA PROCESSO DE DESENVOLVIMENTO DE 
SOFTWARE 
Um software não se constitui unicamente pelas linhas de código executáveis. 
Incorpora toda a documentação necessária para a sua instalação, uso e 
manutenção, incluindo a configuração imprescindível ao seu correto 
funcionamento. 
Diante deste entendimento, o Processo de Desenvolvimento de Software ou 
simplesmente Processo de Software, se refere a toda uma gama de ações 
executadas no âmbito do desenvolvimento de um produto de software, 
incorporando desde o levantamento de requisitos, escolha da linguagem, e 
alcançando inclusive, a análise de performance (SOMMERVILLE, 2011, HIRAMA, 2012; 
PETERS, 2001). 
 
 
 
Assim, no Processo de Software são estabelecidos os métodos (norteia o que 
fazer), as ferramentas (define o material a ser utilizado), e os procedimentos 
(indicando o como fazer) de modo a garantir que o produto alcance o resultado 
planejado (PRESSMAN, 2011). 
É justamente pelo desenvolvimento de um bom Processo de Software que se 
pretende alcançar a qualidade do produto desenvolvido e/ou evoluído, o que por 
sua vez requer organização e definição de ações atuantes para o alcance de 
Produto de Software: denominação dada ao software que foi desenvolvimento para o 
atendimento de demandas específicas definidas pelo cliente e pelo usuário 
(HIRAMA, 2012; PRESSMAN, 2011; PETERS, 2001). 
UNIDADE 
01 
 
 
 
 
 
 
 
 
 
 
10 
 
 
agilidade e transformação tecnológica, considerando o contexto de prazo e 
assertividade em produto (WAZLAWICK, 2013). 
Tratando destes aspectos, Wazlawick (2013) segue destacando que o prazo 
incorpora o tempo de execução do projeto, incluindo os limites e datas estabelecidos 
previamente, e a assertividade em produto se faz relacionada ao fato de o software, 
uma vez entregue ao cliente, se fazer preparado para atender as demandas que lhe 
foram solicitadas sem a incorrência de falhas ou a necessidade frequente de 
paralisação para manutenções e correções que não foram previamente definidas. 
Tal preocupação, deu-se a partir anos de 1960, quando, por falta de 
padronização no desenvolvimento, a demanda crescente de desenvolvimento, os 
custos e prazos mal definidos, o serviço descompromissado das equipes de 
tecnologia e a ausência de confiança dos clientes, fez surgir uma fase denominada 
pela expressão Crise do Software, evidenciando a necessidade de que adequações 
fossem definidas para que o processo se tornasse mais profissional (SOMMERVILLE, 
2011). 
Era destaque à época a questão referente aos defeitos de software em face 
de seu mal dimensionamento, o custo elevado e a estimativa de prazos que não 
conseguia se fazer cumprida. A isto, somava-se a complexidade do código e a total 
ausência de documentação, o que dificultava a manutenção, atrapalhando o 
processo de evolução do software e o consequente acompanhamento ao progresso 
dos equipamentos existentes (PRESSMAN, 2011). 
Além deste fato, a comunicação entre o cliente e a TI era precária ou 
inexistente, acarretando uma série de falhas no desenvolvimento pelo fato de a 
equipe de tecnologia ter dificuldade em compreender as reais necessidades a serem 
atendidas pelos softwares, levando a correções praticamente infinitas (WAZLAWICK, 
2013). 
Outro aspecto impactante era a ausência de meios avaliativos de eficácia 
que permitissem proceder com a definição de estimativas de maior precisão em 
relação ao software desenvolvido e entregue, o que efetivamente impactava na 
possibilidade de se prospectar a necessidade de treinamentos e de manutenções 
preventivas aos sistemas (SOMMERVILLE, 2011). 
Assim, a Crise do Software impulsionou o Processo de Software, e este, por sua 
vez, passou a englobar atividades fundamentais voltadas ao desenvolvimento e/ou 
evolução em um processo de software, as quais seguem apresentadas no Quadro 1. 
 
 
 
 
 
 
 
 
 
11 
 
 
 
Quadro 1: Atividades fundamentais para o desenvolvimento e/ou evolução do processo de 
software 
Especificação de 
Software 
Atividade em que se define as funcionalidades que devem ser 
atendidas pelo software e possíveis restrições que podem ser 
interpostas ao projeto 
Projeto e Implementação 
de Software 
Atividade longa que parte das especificações definidas 
anteriormente e se volta ao desenvolvimento do software 
Validação de Software 
Atividade de validação da ferramenta desenvolvida, no intuito 
de se atestar se a solução realiza o que fora solicitado pelo 
cliente 
Evolução deSoftware 
Atividade de ajuste com mudanças voltadas a garantir total 
atendimento às necessidades do cliente 
Fonte: adaptado de Sommerville (2011) 
 
Tais ações demonstram o nível de profissionalismo alcançado a partir do 
Processo de Software em oposição à ausência de definição de processos como 
acontecia anteriormente à Crise do Software. 
O Processo de Software passou a permitir efetivas melhorias em relação ao 
treinamento de usuários, padronização de desenvolvimento e possibilidade da 
experiência do usuário ser mais bem compreendida e aperfeiçoada por meio do 
sistema (WAZLAWICK, 2013). 
Neste âmbito, cabe reconhecer que quando um Processo de Software é 
especificado também são definidas descrições como as referenciadas no Quadro 2. 
 
Quadro 2: Outras especificações importantes no Processo de Software 
Produtos resultado que se deseja alcançar com o processo que se encontra em 
execução 
Papéis pessoas responsáveis e envolvidas no processo 
Condições declarações prévias ou posteriores ao processo e que merecem atenção 
Fonte: adaptado de Sommerville (2011) 
 
Cabe destacar em relação ao Quadro 2, que quando definidos os papeis 
referentes às pessoas responsáveis e envolvidas no processo tem-se um termo técnico 
comumente utilizado que é o de Stakeholders, ou seja, todos aqueles que são 
responsáveis, possuem interesses e/ou ainda são afetados pela criação de softwares 
e pela incorporação deles nas atividades de negócio (OLIVEIRA, 2018). 
No intuito de que o Processo de Software, embasado nas ações e 
especificações já apontadas, alcançasse a possibilidade de acompanhar o 
desenvolvimento e a evolução de um software, concebeu-se o entendimento 
acerca do Ciclo de Vida de Software (WAZLAWICK, 2013). 
 
 
 
 
 
 
 
 
 
12 
 
 
O Ciclo de Vida de Software, de acordo com Wazlawick (2013) incorpora em 
si as ações pertinentes a todo o período de existência de um software, incluindo a 
atualização do sistema em face das atividades do usuário sofrerem ajustes, o que, 
por conseguinte, leva a alterações evolutivas na ferramenta. 
 
 
1.2 MODELOS DE PROCESSOS DE SOFTWARE 
Um Processo de Software configura-se em um conjunto de atividades 
complexas e especializadas, de modo que o Modelo de um Processo de Software 
representa e fornece, de modo simples, informações e visibilidade acerca do 
processo em si traduzidas na forma de estruturas/esquematizações fornecedores de 
uma visão didática de como proceder com as etapas que devem se fazer efetivadas 
(SOMMERVILLE, 2011; PRESSMAN, 2011). 
Um Modelo de Processo de Software possui em seu bojo estruturas que 
demonstram as etapas atinentes ao desenvolvimento do software em si, por meio da 
organização do Ciclo de Vida de Software, no qual tem-se estruturadas as atividades 
a serem executadas, incorporando em si os conceitos listados no Quadro 3. 
 
Quadro 3: Ciclo de Vida de Software 
Requisitos Etapa voltada ao levantamento de informações atinentes ao problema 
que a ferramenta de software se destinará a resolver. Tais informações, 
ou seja, os requisitos configuram-se como condições, necessidades, 
características, funcionalidades, restrições e demais aspectos que 
carecem ser atendidos, necessitando ser devidamente documentados. 
Análise Etapa que parte do levantamento de requisitos e permite que a equipe 
de processo conheça a atividade do usuário, discuta os requisitos 
levantados e identifique melhorias que carecem de implementação. 
Abstração e 
Representação 
Etapa de elaboração de modelos mentais e conceituais voltados a 
solucionar as necessidades do cliente por meio do software. 
Os Processos de Software podem ser categorizados, conforme Sommerville (2011), como: 
a) Processo de Software dirigido a Plano: neste, o planejamento de software se faz 
definido antecipadamente, de modo que o progresso do projeto se avalia a partir da 
etapa atualizada de execução; 
b) Processo de Software Ágil: neste, o planejamento de software se faz definido 
gradualmente, e o progresso ocorre a partir do momento que as necessidades de ajuste 
em funcionalidades são sanadas. 
 
 
 
 
 
 
 
 
 
13 
 
 
Projeto Etapa de desenho do produto de software, partindo dos requisitos, ou 
seja, do que o sistema deverá executar. 
Implementação Etapa de transformação do projeto através da linguagem de 
programação escolhida, não devendo se fazer completamente 
dissociada da interação com o cliente. 
Integração Etapa em que os módulos desenvolvidos durante a implementação se 
fazem integrados para que possam trocar dados entre si. 
Testes Etapa de verificação quanto ao alcance de objetivos por parte do 
software e da possibilidade de falhas de execução ou funcionalidades 
mal dimensionadas. 
Implantação Fase em que estando o sistema finalizado, ele é disseminado pela 
organização e o desenvolvedor se mantém em atenção para a 
necessidade de ajustes em face de questões de usuário ou modelo de 
negócios. 
Manutenção Fase em que após a entrega, faz-se importante a correção de falhas, a 
melhoria de desempenho e adaptações de acordo com a necessidade 
do cliente. 
Fonte: adaptado de Pressman (2011) e Wazlawick (2013) 
 
Cabe, por último considerar a importância da documentação completa do 
Processo de Software, no qual efetivamente, através de diagramas de casos de uso 
especifica-se todo o ciclo, incluindo desde os requisitos até o planejamento de 
manutenção, garantindo que outras equipes de tecnologia possam tranquilamente 
se posicionar em prol da evolução do sistema. 
 
 
 
Em relação à fase de Implantação apresentada a partir do Quadro 3, deve-
se considerar as seguintes possibilidades descritas no Quadro 4 quando um software 
se fizer aplicado em substituição a outro que já esteja em funcionamento. 
Quadro 4: Processos de substituição de software 
Direta Assim que o sistema novo entrar em pleno funcionamento o antigo é retirado 
de operação completamente 
Paralela Os sistemas, novo e antigo, permanecem funcionando paralelamente com 
acesso e atualização à mesma base durante certo espaço de tempo 
Piloto O sistema novo refaz os processos efetivados pelo antigo com vistas a identificar 
os parâmetros de seu funcionamento e efetividade 
Parcial Parte dos sistemas se complementam e aos poucos o novo sistema vai tomando 
todo o espaço do antigo 
Fonte: adaptado de Wazlawick (2013) 
 
Diagramas de Casos de Uso são representações gráficas que demonstram visualmente as 
relações entre o sistema e o usuário e vice-versa, favorecendo a compreensão para o 
desenvolvedor das possibilidades de interação e das funcionalidades que necessitam se 
fazer implementadas (PRESSMAN, 2011). 
 
 
 
 
 
 
 
 
 
 
14 
 
 
Os conceitos apresentados apenas clarificam em relação às suas funções, e 
que não existe um único modelo para o desenvolvimento de um projeto, cabendo a 
escolha por parte da equipe de desenvolvimento embasada na filosofia de trabalho 
que emprega (PRESSMAN, 2011). 
No entanto, a possibilidade de associação entre modelos é uma realidade, de 
modo a garantir que se combine os melhores aspectos entre eles (SOMMERVILLE, 
2011). 
Deste modo, favorecendo a um melhor entendimento do que venha a ser 
estes ciclos de desenvolvimento, nos próximos tópicos desta unidade serão 
apresentados os mais conhecidos modelos de desenvolvimento em ciclo de vida. 
 
1.3 MODELO EM CASCATA 
O Modelo em Cascata é clássico, desenvolvendo-se de forma sistemática, 
encadeada e previamente planejada em sua totalidade, de modo que uma etapa 
depende diretamente da outra e a próxima somente se inicia a partir do momento 
que a anterior se encontra finalizada (SOMMERVILLE, 2011; PRESSMAN, 2011). 
A Figura 1 dispõe representação clássica do Modelo em Cascata permitindo 
melhor entendimento de suas fases. 
 
Figura 1: Representação dos estágios do Modelo em Cascata 
 
Fonte: adaptado de Sommerville (2011) e Pressman (2011)15 
 
 
Justamente pelo fato de este modelo seguir um planejamento prévio, também 
chegou a receber a denominação de Processo dirigido a Planos, no entanto, vale a 
crítica de que, mesmo em sua orientação a planos, por vezes o modelo efetiva 
levantamento de requisitos de modo superficial, não define processos padronizados 
a serem seguidos pela equipe como um todo e conta com certa dificuldade em 
rever as falhas antes da finalização de uma etapa, e até do projeto como um todo 
(SOMMERVILLE, 2011; PRESSMAN; MAXIM, 2016). 
Assim, pela não ocorrência de critérios de avaliação e controle que 
favoreçam o feedback das ações efetivadas durante a execução do projeto, tem-
se que, por vezes, o projeto consegue ser paralisado em uma dada etapa em vista 
de conseguir cumprir os critérios estabelecidos, levando à não obediências de prazos 
ajustados com o cliente e, por conseguinte, o aumento do custo final do produto 
(PRESSMAN, 2011). 
Para este modelo a documentação se faz desenvolvida a cada fase, 
permitindo que as ações sejam visíveis para a gestão, no entanto a possibilidade de 
replanejamento e mudanças durante a execução não é parte do seu escopo, 
demonstrando riscos e incapacidades de gestão latentes (PRESSMAN, 2011; 
PRESSMAN; MAXIM, 2016). 
No entanto, cabe ressaltar que, em caso de definições bem efetivadas de 
requisitos e ausência de necessidade de mudanças/ajustes ao longo do 
desenvolvimento do sistema, o modelo se aplica perfeitamente, principalmente em 
face de sua simplicidade de compreensão e uso (WAZLAWICK, 2013). 
 
1.4 MODELO EM ESPIRAL 
Neste modelo, o processo se faz representado por uma espiral, devendo se 
fazer percorrido no sentido horário, de dentro para fora, no intuito de demonstrar que 
a evolução é a tônica do conjunto de ações efetivadas (SOMMERVILLE, 2011; 
PRESSMAN, 2011). 
Os riscos referentes ao não cumprimento de prazos, à mudança de tecnologia 
e ao custo com dimensionamento mal efetivado tornam-se gerenciáveis, permitindo 
que ajustes sejam passíveis de efetivação antes da finalização do produto 
(PRESSMAN, 2011; PRESSMAN; MAXIM, 2016). 
A Figura 2 dispõe representação do Modelo em Espiral permitindo melhor 
 
 
 
 
 
 
 
 
 
16 
 
 
entendimento de suas fases. 
 
Figura 2: Representação dos estágios do Modelo em Espiral 
1º estágio 
Determinação de 
Objetivos, 
Alternativas e 
Restrições para a 
elaboração de 
plano de 
gerenciamento, de 
riscos e de 
estratégias 
 
 
2º estágio 
Avaliação de 
alternativas, 
Identificação e 
resolução de 
riscos visando a 
minimização de 
riscos através da 
análise efetivada 
3º estágio 
Desenvolvimento, 
verificação e 
validação do 
produto no nível 
seguinte, partindo 
de um protótipo 
descartável 
4º estágio 
Planejamento da 
próxima fase no 
intuito de 
favorecer o 
desenvolvimento 
contínuo da fase 
seguinte 
Fonte: adaptado de Sommerville (2011) e Pressman (2011) 
 
Conforme se observa na figura, à medida que se efetiva o desenvolvimento 
do projeto, cada fase adiciona novos requisitos, passando pelos estágios mais de 
uma vez até que o produto esteja finalizado, garantindo que os riscos sejam o fator 
de maior atenção no modelo, assim como a qualidade. 
 
1.5 MODELO EM PROTOTIPAÇÃO 
O protótipo, sendo uma representação visual em baixa fidelidade do produto, 
permite ao usuário/cliente conhecer a proposição das funcionalidades efetivadas 
pela equipe de desenvolvimento através da experimentação, respaldando inclusive 
a troca de informações com vistas à efetivação de melhorias para a versão final 
(SOMMERVILLE, 2011; PRESSMAN, 2011; PRESSMAN; MAXIM, 2016) 
 
 
A Baixa Fidelidade se aplica a modelos simplificados que podem ser desenvolvidos com 
materiais de fácil uso como o papel (prototipação em papel), no qual se efetiva desenhos 
de tela, por exemplo. Contudo, atualmente pode se fazer uso de softwares de 
prototipação que permitem uma relação de experimentação mais efetiva do usuário com 
a proposta que se está apresentando (PRESSMAN; MAXIM, 2016). 
 
 
 
 
 
 
 
 
 
17 
 
 
Contudo, o Modelo em Prototipação é indicado nos casos em que o cliente 
não consegue identificar claramente suas necessidades em matéria de software, 
mas participa ativamente das etapas do projeto, e assim, por meio da interação com 
o produto proposto consegue estabelecer as funcionalidades de que necessita com 
maior precisão (SOMMERVILLE, 2011). 
Seu custo que tende a ser relativamente baixo, demonstra atratividade pela 
incorporação de protótipos aos processos de desenvolvimento, uma vez que o 
levantamento de requisitos se torna mais eficiente, o feedback do cliente/usuário 
permite ajustes antes da finalização do produto e a usabilidade pode ser facilmente 
testada e ajustada (PRESSMAN, 2011). 
Assim, o modelo se aplica plenamente para o levantamento e validação de 
requisitos, como também para a avaliação de projetos e erros de interface, 
permitindo que a experiência do usuário seja o diferencial desse processo 
(WAZLAWICK, 2013). 
A Figura 3 dispõe representação de Modelo em Prototipação permitindo 
melhor entendimento de suas fases. 
 
Figura 3: Representação dos estágios do Modelo em Prototipação 
 
Fonte: adaptado de Sommerville (2011) e Pressman (2011) 
 
Com sua etapa inicial na etapa de Obtenção de Requisitos para o Plano de 
Prototipação, observa-se que em seu processo cíclico melhorias podem ser 
Obtenção de 
Requisitos para o 
Plano de 
Prototipação
Definição Geral e 
Rápida do 
Protótipo
Desenvolvimento 
do Protótipo 
executável
Avaliação do 
Protótipo pelo 
Cliente
Refinamento do 
Protótipo
Construção do 
Produto final
 
 
 
 
 
 
 
 
 
18 
 
 
incorporadas até que o protótipo alcance a possibilidade de atender às 
necessidades do cliente, permitindo que o produto alcance condições de 
efetivamente implementado em código. 
Assim, compreende-se a partir de sua atuação como um objeto de 
experimentação, que o protótipo permite a adição e teste de funcionalidades, para 
que, diante de sua viabilidade, possam efetivamente fazer parte do produto em si 
(SOMMERVILLE, 2011). 
 
1.6 MODELO EM DESENVOLVIMENTO INCREMENTAL 
No Modelo em Desenvolvimento Incremental a criação do sistema ocorre em 
versões. A cada versão ajustes são adicionados após terem passado por processo de 
avaliação efetivado por parte dos clientes/usuários (SOMMERVILLE, 2011; PRESSMAN; 
MAXIM, 2016). 
Assim, o desenvolvimento ocorre em ciclos de especificação, 
desenvolvimento e validação efetivados a cada versão, permitindo sempre que 
novas funcionalidades sejam parte da versão em atualização (PRESSMAN, 2011). 
A Figura 4 dispõe representação do Modelo em Desenvolvimento Incremental 
permitindo melhor entendimento de suas fases. 
 
Figura 4: Representação dos estágios do Modelo em Desenvolvimento Incremental 
 
Fonte: adaptado de Sommerville (2011) e Pressman (2011) 
 
Na figura, observa-se por meio do diagrama iniciado na Descrição do esboço, 
que para a passagem de uma etapa a outra ocorrem interações, e somente após o 
seu pleno atendimento são efetivados os incrementos para as etapas seguintes. 
 
 
 
 
 
 
 
 
 
19 
 
 
Complementando, a disposição composta por peças de um quebra-cabeças 
demonstra que a cada etapa uma parte do produto vai sendo adicionada até que 
ocorra a sua conclusão. 
Cabe destacar, que este modo de ação foi concebido em correção ao 
Modelo Tradicional em Cascata, no qual os ajustes somente se fariam efetivados ao 
final de todo o processo de desenvolvimento e apenas sobre os pontos de maior 
criticidade (WAZLAWICK, 2013). 
Sua indicação de uso se faz nos casos em que se necessita privilegiar a 
liberação de alguma funcionalidade do sistema ou quando os profissionais 
envolvidos carecem de melhor distribuição nas atividades a serem desenvolvidas, 
permitindo que a gestão do tempo de execução seja mais efetiva (PRESSMAN, 2011;PRESSMAN; MAXIM, 2016). 
 
1.7 MODELO EM ENTREGA INCREMENTAL 
No Modelo em Entrega Incremental o cliente aponta quais as funcionalidades 
do sistema são de maior importância. Assim, posicionando-os como de maior 
prioridade em desenvolvimento, estes são logo incrementados favorecendo a 
efetivação de entrega e aptidão para operacionalização (SOMMERVILLE, 2011) 
Como vantagem ao uso deste modelo tem-se, entre outras, a possibilidade de 
que as primeiras versões, antes do incremento final, sirvam de protótipo, favorecendo 
a experimentação do usuário/cliente e a troca de informações com a equipe de 
desenvolvimento (PRESSMAN, 2011; PRESSMAN; MAXIM, 2016). 
A Figura 5 dispõe representação dos estágios do Modelo em Entrega 
Incremental permitindo seu melhor entendimento. 
 
Figura 5: Representação dos estágios do Modelo em Entrega Incremental 
 
Fonte: Sommerville (2011, p. 31) 
 
 
 
 
 
 
 
 
 
20 
 
 
A figura demonstra que garantir a finalização do sistema e a efetivação de 
seus incrementos são preocupações do modelo, garantindo que a possibilidade de 
especificação não se efetive apenas no início do projeto. 
No entanto, vale destacar que o Modelo de Entrega Incremental não é 
indicado quando o sistema for de maior porte, o que requere a divisão de tarefas em 
equipes, e nem quando o sistema for desenvolvido para processos de maior 
criticidade e periculosidade (WAZLAWICK, 2013). 
 
1.8 MODELO ORIENTADA AO REUSO 
O Modelo Orientado ao Reuso se aplica nos casos em que o desenvolvimento 
de sistema estiver focado na integração de módulos já existentes, restando identificar 
se os componentes passíveis de integração são aptos ou não ao reuso 
(SOMMERVILLE, 2011; PRESSMAN; MAXIM, 2016). 
Basicamente, são orientados ao reuso os Serviços Web, as Coleções de 
Objetos em Frameworks de Componentes e Sistemas Stand-Alone, ou seja, que 
funcionam individualmente e isoladamente, sem interação com outros (WAZLAWICK, 
2013). 
A Figura 6 dispõe representação dos estágios do Modelo Orientado ao Reuso 
permitindo seu melhor entendimento. 
 
Figura 6: Representação dos estágios do Modelo Orientado ao Reuso 
Especificação 
de Requisitos 
Levanta-se as 
especificações 
do sistema 
Análise de 
componentes 
Busca-se 
componentes 
já existentes e 
aptos ao 
reuso 
Alteração nos 
requisitos 
Os requisitos 
são 
analisados 
com base 
nos 
componentes 
encontrados 
para serem 
modificados 
conforme a 
necessidade 
Projeto do 
sistema com 
reuso 
Procede-se 
com a 
constituição 
do 
framework 
do sistema, 
considerando 
os elementos 
de reuso 
Desenvolvimento 
e integração 
Desenvolve-se os 
componentes 
que não 
puderam ser 
reutilizados para 
proceder com a 
integração 
completa do 
sistema 
Validação de 
Sistema 
O sistema é 
validado por 
meio de sua 
disseminação 
na 
organização 
 
Fonte: adaptado de Sommerville (2011, p. 23) 
 
 
 
 
 
 
 
 
 
 
21 
 
 
Assim, diminuindo a quantitativo de software a ser desenvolvido, este modelo 
se aplica na redução de custos e do tempo de execução do projeto, contudo, a 
possibilidade de que os requisitos não se mantenham sintonizados com as 
necessidades dos usuários e com os módulos entregues no sistema é elevada, 
levando por vezes à necessidade de retrabalho e até novos desenvolvimentos de 
software desde o processo inicial (PRESSMAN, 2011, HIRAMA, 2012; PRESSMAN; MAXIM, 
2016; PETERS, 2001). 
Assim, em se tratando da manutenção de software, ou seja, da necessidade 
de ajustes após a entrega do produto em si, cabe destacar os tipos de manutenção 
existentes, os quais seguem especificadas no Quadro 5. 
 
Quadro 5: Tipos de manutenção 
Corretiva Efetivada após a entrega do produto no intuito de corrigir um erro descoberto 
em garantia de pleno funcionamento do sistema 
Adaptativa Efetivada após a entrega do produto visando estabelecer ajustes/alterações 
que garantam o uso do sistema 
Perfectiva Efetivada após a entrega do produto no intuito de melhorar o desempenho 
e/ou a manutenibilidade 
Preventiva Efetivada após a entrega do produto para o reparo de falhas antes que o 
sistema se faça afetado 
Fonte: adaptado de Wazlawick (2013) 
 
Sendo a manutenção um requisito necessário e relacionado diretamente com 
a qualidade de software (manutenibilidade), cabe que o Processo de Software 
incorpore em seu ciclo de execução esta fase, garantindo que o sistema não se torne 
obsoleto pelo simples fato de sua desatualização. 
 
 
Manutenibilidade: característica referente à facilidade de manutenção, melhoria e/ou 
adaptação de um sistema (WAZLAWICK, 2013); 
Serviços Web: metodologias que incorporam tecnologias web e que podem se fazer 
conectados em sistemas informacionais (adaptado de https://www.opensoft.pt/web-
service/); 
Coleções de Objetos em Frameworks de Componentes: grupos de aplicações que são 
aptas à conexão para interação em um sistema maior (WAZLAWICK, 2013); 
Sistemas Stand-Alone: Sistemas que funcionam sem a necessidade de interação com 
outros que atuem como auxiliares, por exemplo um editor de texto instalado no 
computador ou um software de edição de vídeos (SOMMERVILLE, 2011; PRESSMAN, 2011). 
 
 
 
 
https://www.opensoft.pt/web-service/
https://www.opensoft.pt/web-service/
 
 
 
 
 
 
 
 
 
22 
 
 
 
 
 
 
 
Se você e sua equipe de TI fossem contactados no intuito de efetivar o desenvolvimento 
de um sistema para uma empresa, considerando a importância de se manter foco no 
cliente, indisponibilidade de reajuste em prazos e orçamento limitado, qual dos modelos 
aqui estudados acha que poderia melhor se enquadrar? Reflita nos prós e contras, liste 
tudo e verifique se sua opinião pode mudar. 
 
No site DevMedia tem um artigo sob o título “Ciclos de Vida de Software” que fala destes 
modelos e de outros. Disponível em: https://bit.ly/2mpESbR. Acesso em: 02 de mar. 2023 
Assim, indico esta leitura como complemento para o seu conhecimento. 
 
https://bit.ly/2mpESbR
 
 
 
 
 
 
 
 
 
23 
 
 
 
FIXANDO O CONTEÚDO 
 
1. (TJ-PI-IDECAN – 2022) Em projetos de desenvolvimento de software uma das 
primeiras importantes decisões que se deve tomar é como gerenciar processos, 
atividades e tarefas que serão executados durante o ciclo de vida do projeto. O 
entendimento do funcionamento da interação entre a equipe de 
desenvolvimento e o cliente é fundamental para o sucesso do projeto. Para definir 
como devemos gerenciar todas essas questões, existem diversos modelos de clico 
de vida de software. Cada modelo possui especificidades e pode apresentar 
vantagens e desvantagens, a depender de características inerentes ao projeto. A 
respeito dos diferentes modelos de ciclo de vida de um software, analise as 
afirmativas abaixo e marque alternativa correta. 
I. O Modelo cascata tem como principal característica o fato das etapas serem 
executadas de forma sequencial. Isso demanda, obviamente, um grande 
planejamento como por exemplo, a definição completa de requisitos antes da 
implementação. 
II. O Modelo Incremental é uma evolução do modelo Cascata. Aqui o projeto é 
quebrado em módulos. As etapas também são executadas sequencialmente mas 
focadas apenas no módulo em desenvolvimento no momento. Dessa forma o 
processo de planejamento se torna menos desafiador pois o cliente recebe os 
diversos módulos gradualmente. 
III. No Modelo Espiral as fases do processo de desenvolvimento representam um volta 
completa na espiral. Trata-se de um modelo de grande aceitação por parte do 
cliente dada a sua simplicidade. Recomenda-se fortemente que seja aplicado 
somente em projetos de pequeno porte, uma vez que o modelo não contempla 
atividades relacionadas ao gerenciamento de riscos. 
a) Apenas as afirmativas Il e Ill estão corretas 
b) Apenas a afirmativa Ill está correta 
c) Apenas as afirmativas I e Il estão corretas 
d) Apenas a afirmativa I está corretae) Todas as afirmativas estão corretas 
 
 
 
 
 
 
 
 
 
 
24 
 
 
2. (FEPESE - CELESC - 2022) Ciclo de vida do software é o termo utilizado para definir 
o conjunto de etapas que ocorre entre a concepção de um sistema e o instante 
em que ele é descontinuado pelo desenvolvedor. Ele ajuda a orientar a equipe 
de desenvolvedores, assim como o direcionamento de recursos. Assinale a 
alternativa que contém o nome de três ciclos de vida: 
a) Incremental • Cascata • Espiral 
b) Cascata • Funcional • Avaliativo 
c) Espiral • Funcional • Exploratório 
d) Decremental • Cascata • Funcional 
e) Cascata • Incremental • Decremental 
 
3. (VUNESP - ALE SP – 2022 - adaptado) No processo de prototipação de software, um 
protótipo em papel permite apresentar: 
a) um esboço simples e rápido do software, geralmente um rascunho, para 
compreender o que é esperado do sistema. 
b) exemplos finais de como o software deve ficar quando pronto, mas sem as funções 
que ainda serão implementadas. 
c) a ideia a ser desenvolvida na forma de software, antes mesmo de esboçar 
qualquer tela a ser desenvolvida. 
d) exemplos finais de todos os leiautes e da diagramação dos elementos que serão 
parte da tela do software. 
e) o software pronto, incluindo leiautes, diagramação e todas as funcionalidades que 
são esperadas. 
 
4. (IBFC - DETRAN AM - 2022 - adaptado) Segundo Pressman (2011) este ciclo de vida 
é considerado como clássico por ter uma abordagem sequencial e sistemática 
para o desenvolvimento de software. Esse ciclo de vida é especificamente 
denominado como: 
a) modo prototipado 
b) modelo cascata 
c) processo unificado 
d) modelagem espiral 
e) modelo avaliativo 
 
https://questoes.grancursosonline.com.br/concursos/2022
https://questoes.grancursosonline.com.br/prova/detran-am-am-2022-ibfc-analista-de-sistemas-da-informacao
 
 
 
 
 
 
 
 
 
25 
 
 
5. (FAURGS - SES RS - 2022 - adaptado)Há vários modelos de processo de software, 
sendo que cada um define um fluxo de processo que invoca cada atividade do 
desenvolvimento de forma diversa. 
O modelo ___________, algumas vezes chamado ciclo de vida clássico, é um 
exemplo de processo dirigido a planos, pois deve-se planejar todas as atividades 
(estágios) do processo antes de começar a trabalhar nelas. Em princípio, o estágio 
seguinte não deve ser iniciado até que o estágio anterior seja concluído, mas, na 
prática, este processo não é um modelo linear simples, envolvendo o feedback de 
um estágio a outro. Assim, os documentos e artefatos produzidos em cada estágio 
podem ser modificados para refletirem as alterações em cada um deles. 
Seu maior problema é a divisão inflexível do projeto em estágios distintos e por isso 
deve ser usado apenas quando os requisitos são bem compreendidos e é pouco 
provável que venham a ser radicalmente alterados durante o desenvolvimento. 
Um segundo exemplo de modelo de processo de software é o modelo de 
___________________, que se baseia na construção de protótipos, uma versão 
simplificada de um sistema de software. 
Embora possa ser utilizado como um modelo de processo isolado, é comumente 
utilizado como uma técnica que auxilia os interessados a compreender melhor o 
que está para ser construído, quando os requisitos estão obscuros. 
Assinale a alternativa que completa, correta e respectivamente, as lacunas do 
texto acima. 
a) Cascata – Prototipação 
b) Espiral – Prototipação 
c) Espiral – Cascata 
d) Espiral – Desenvolvimento Baseado em Componentes 
e) Cascata – Desenvolvimento Baseado em Componentes 
 
6. Analise as afirmativas sobre o modelo de processo de software conhecido como 
“modelo em cascata". 
I. Em geral, o resultado de cada fase do processo resulta em um ou mais 
documentos aprovados. 
II. É adequado a situações com pequena probabilidade de mudanças radicais 
durante o desenvolvimento do sistema. 
III. Prevê a execução simultânea das fases de desenvolvimento. 
https://questoes.grancursosonline.com.br/prova/ses-rs-rs-2022-faurgs-analista-area-desenvolvimento-de-sistemas
 
 
 
 
 
 
 
 
 
26 
 
 
Estão CORRETAS as afirmativas: (FUNDEP – MG – 2014 - adaptado) 
a) I e II apenas. 
b) I e III apenas 
c) II e III apenas. 
d) I, II e III. 
e) Nenhuma das alternativas 
 
7. (CIAAR - FAB – 2011 - adaptado) Preencha as lacunas abaixo e, em seguida, 
assinale a alternativa correta. ______________ é um processo que capacita o 
desenvolvedor a criar um modelo do software que será implementado. Se 
abrangermos as melhores características de tal processo com as do modelo 
cascata e a __________________ como novo elemento temos uma base do modelo 
espiral. 
a) Prototipação / análise de risco 
b) Testes / manutenção 
c) Implementação / recorrência 
d) Análise / avaliação 
e) Nenhuma das alternativas 
 
8. Quando se fornece um produto, seja desenvolvendo um software, escrevendo um 
relatório ou fazendo uma viagem a negócios, segue-se costumeiramente uma 
sequência de etapas para completar um conjunto de tarefas. A respeito dos 
modelos de processo de software, assinale a alternativa correta: (CRO - RJ – 2016 
- adaptada) 
a) O modelo espiral combina uma natureza interativa com outra que incorpora 
aspectos controlados e sistemáticos. 
b) O modelo orientado ao reuso enfoca a integração dos componentes do projeto 
de software, como recursos humanos e de hardware. 
c) O modelo de entrega incremental intercala as atividades de especificação e 
validação, possuindo apenas uma versão, a final. 
d) O modelo em cascata considera as atividades fundamentais do processo, 
envolvendo especificação, desenvolvimento, validação e evolução. 
e) A prototipação é a visão final de um sistema de software, que demonstra 
conceitos e não serve para conhecer o problema do usuário. 
 
 
 
 
 
 
 
 
 
27 
 
 
 ATIVIDADES RELACIONADAS AO 
PROCESSO DE DESENVOLVIMENTO 
DE SOFTWARE 
 
 
 
2.1 ESPECIFICAÇÃO DE SOFTWARE 
A Especificação de Software tem como função compreender os serviços que 
se fazem requisitados para o sistema assim como identificar os aspectos que podem 
se posicionar como restritivos para o seu desenvolvimento (SOMMERVILLE, 2011). 
Sua ação de fundamental importância pode se posicionar como marco de 
sucesso/insucesso para o Processo de Software e, justamente em face deste aspecto, 
requer senso de responsabilidade e conhecimento para a boa efetivação dos 
processos desenvolvidos (WAZLAWICK, 2013; VAZQUEZ; SIMÕES, 2016). 
Volta-se portanto a documentar os requisitos de especificação do sistema, 
permitindo que tanto usuários quanto desenvolvedores conheçam claramente e 
detalhadamente que aspectos deverão ser cobertos pela ferramenta 
computacional em desenvolvimento (PRESSMAN, 2011). 
Sommerville (2011) e Pressman (2011) apresentam as atividades que fazem 
parte do processo de Especificação de Software e estas seguem apresentadas no 
Quadro 6. 
 
Quadro 6: Atividades efetivadas na Especificação de Software 
Estudo de 
viabilidade 
Dada a necessidade de se desenvolver um sistema, investiga-se a 
possibilidade de a ferramenta a ser proposta efetivamente atender as 
necessidades do usuário partindo do ambiente computacional de 
hardware e software existentes, da interação com os clientes/usuários, do 
orçamento disponível e do ambiente de negócio vigente na organização. 
Elicitação e 
análise de 
requisitos 
Partindo do entendimento de que a organização possui ou não um 
ambiente computacional prévio de hardware e de software, efetiva-se 
interações com os usuários/clientes a fim de identificar suas reais 
necessidades as quais impulsionam para o desenvolvimento de novos 
sistemas, permitindo inclusive a idealização de ferramentas por meio de 
modelos voltados à prototipagem. 
Especificação 
de requisitos 
Tendo estudado a viabilidade e efetivada a elicitação de requisitos, 
parte-se para o levantamento de informações efetivas e que devem ser 
registradaspor meio dos requisitos de usuário (abstrações das 
necessidades efetivas do cliente e do usuário) e requisitos de sistema 
(descrição das funcionalidades a serem implementadas pelo profissional 
de TI). 
UNIDADE 
02 
 
 
 
 
 
 
 
 
 
28 
 
 
Validação de 
requisitos 
Constata se os requisitos especificados serão efetivamente atendidos na 
ferramenta a ser desenvolvida, permitindo a correção das 
especificações. 
Fonte: adaptado de Sommerville (2011), Vazquez e Simões (2016) e Pressman (2011) 
 
 
 
 
 
 
Cabe o destaque quanto os modos de levantamento de informações junto a 
clientes/usuários na fase de Estudo de Viabilidade, de modo que estes podem se dar 
por meio de entrevista, questionário, reuniões, observações, análises documentais 
(WAZLAWICK, 2013; PRESSMAN, 2011). 
Quanto ao processo de Análise de Requisitos, naturalmente serão levantados 
Requisitos Funcionais e Não Funcionais. Em relação aos Requisitos Funcionais, tem-se 
que estes retratam as funcionalidades do software no intuito de que se planeje o 
treinamento dos usuários (exemplo: dados de cadastros de cliente, dados de 
cadastro de pedido); já os Requisitos Não Funcionais referem-se às estratégias 
utilizadas para que o sistema computacional esteja apto a resolver as problemáticas 
para as quais se fez desenvolvido (exemplo: efetivação de login e de autenticação 
de usuário) (WAZLAWICK, 2013; VAZQUEZ; SIMÕES, 2016; HIRAMA, 2012). 
Isto, se bem definido auxiliará no pleno entendimento das necessidades do 
cliente/usuário, na manutenção futura do sistema, na redução do esforço 
desempenhado para o desenvolvimento, na diminuição dos custos e tempos de 
entrega e na validação final do sistema (WAZLAWICK, 2013; PETERS, 2001). 
Em se tratando da Validação de Requisitos, é importante atentar para o papel 
do cliente/usuário neste processo, pois é justamente o seu feedback que dará ao 
desenvolvedor o entendimento quanto ao cumprimento dos requisitos funcionais e 
não funcionais levantados (PRESSMAN, 2011; VAZQUEZ; SIMÕES, 2016). 
A etapa de Especificação de Software também é denominada de Engenharia de 
Requisitos. 
Elicitação: obtenção de informações, no intuito de identificar dados para a solução de 
um problema. Disponível em: https://bit.ly/3LqHG0O. Acesso em: 10 de mar. 2023. 
Requisitos: o mesmo que condições, exigências. Disponível em: https://bit.ly/35PLLF3. 
Acesso em: 10 de mar. 2023. 
 
https://bit.ly/3LqHG0O
https://bit.ly/35PLLF3
 
 
 
 
 
 
 
 
 
29 
 
 
Contudo, cabe destacar que a Especificação de Software não é uma ação 
que se deve efetivar apenas no início do Processo de Software, sendo importante 
que durante todo o cumprimento das ações de desenvolvimento do software a 
especificação se faça presente (PRESSMAN, 2011). 
 
2.2 PROJETO E IMPLEMENTAÇÃO DE SOFTWARE 
O Projeto de Software descreve o software a ser implementado considerando 
a ideia elaborada para sua estrutura e funcionalidades, partindo da ação conjunta 
de uma equipe de projetistas que juntos estabelecem e revisam os elementos que 
deverão fazer parte do projeto em sua versão final (SOMMERVILLE, 2011). 
No Projeto de um Software não se considera informações unicamente da 
ferramenta a ser desenvolvida, pois faz-se essencial considerar todo o 
macroambiente tecnológico em que ela se fará inserida, ou seja, a Plataforma de 
Software a qual se faz composta pelo hardware, sistema operacional, base de dados 
e outros (WAZLAWICK, 2013). 
Daí se identifica a importância e relação desta fase com a de Especificação 
de Software: é justamente na etapa anterior que todas estas informações da 
Plataforma de Software serão identificadas, de modo a garantir que a ferramenta a 
ser desenvolvida se faça apta a usufruir das funcionalidades do ambiente para o qual 
ela será implementada (PRESSMAN, 2011). 
Pressman (2011) e Sommerville (2011) apresentam as atividades que fazem 
parte do Projeto de Software, e estas seguem apresentadas no Quadro 7. 
 
Quadro 7: Atividades de projeto executadas a nível do Projeto de Software 
Projeto de 
Arquitetura 
compreende a estruturação geral do sistema, considerando seus 
componentes, relacionamentos e distribuição destes 
Projeto de 
Interface 
compreende a definição de interfaces dos componentes e conexão 
entre estas interfaces 
Projeto de 
Componente 
compreende o funcionamento ou as alterações que devem ser 
efetivadas para cada componente do sistema 
Projeto de Banco 
de Dados 
compreende o projeto de estrutura de dados, sua representação e 
consequente alocação no banco de dados a ser reusado ou criado 
Fonte: adaptado de Pressman (2011) e Sommerville (2011) 
 
Sendo consequência do projeto, a Implementação de Software deve ocorrer 
intercalado ao projeto, de modo a garantir que sempre possa ser efetivada a revisão 
das ações implementadas (SOMMERVILLE, 2011). 
 
 
 
 
 
 
 
 
 
30 
 
 
A experiência do projetista, sua capacidade de abstração, o uso ajustado de 
sua intuição e a aplicação de ferramentas de projeto reconhecidas e bem 
desenvolvidas para esta finalidade devem representar papel importante na etapa 
de Projeto de Software, e é justamente tais fatores que serão de impacto na 
decodificação por meio da linguagem escolhida para o projeto (PRESSMAN, 2011). 
Neste sentido, o Quadro 8 apresenta aspectos que são fundamentais para 
todo e qualquer Projeto de Software. 
 
Quadro 8: Aspectos fundamentais para o Projeto de Software 
Abstração Solução identificada em atendimento ao problema relatado pelo 
cliente/usuário, podendo se apresentar sob a forma de procedimentos, 
algoritmos e código fonte 
Abstração de 
dados 
Dados processados, agrupados, característicos e favoráveis a descrever 
um dado objeto 
Modularidade Divisão do software em partes, módulos, que podem interagir 
internamente e acoplar-se com outros externamente 
Procedimento 
de software 
Especificações definidas para que cada módulo processe os seus próprios 
dados, podendo assim alimentar os demais 
Fonte: adaptado de Pressman (2011) 
 
Não havendo um padrão que obrigatoriamente deva ser seguido por todos 
os desenvolvedores, a equipe pode adotar uma abordagem única, no entanto a 
preferência de por onde dar início ao trabalho de decodificação dependerá 
unicamente do profissional de desenvolvimento e de suas habilidades (WAZLAWICK, 
2013). 
 
2.3 VALIDAÇÃO DE SOFTWARE 
A validação de software tem o papel de verificar se o software segue as 
especificações levantadas e se isto atende as necessidades apontadas pelo 
cliente/usuário (SOMMERVILLE, 2011). 
A principal técnica utilizada para a validação é o Teste de Software, dando-
se principalmente durante e após o processo de transformação do projeto em 
código, ou seja, da implementação do sistema (WAZLAWICK, 2013). 
Contudo, relata-se que muitos erros de sistema a serem encontrados durante 
os testes podem se dar após a implementação completa, levando o retrabalho do 
desenvolvedor e ao atraso na entrega do produto (PRESSMAN, 2011). 
Pressman (2011) e Sommerville (2011) apresentam os estágios do Processo de 
 
 
 
 
 
 
 
 
 
31 
 
 
Teste de Software, e estes seguem apresentados no Quadro 9. 
 
Quadro 9: Estágios do Processo de Testes 
Testes de 
desenvolvimento 
Os testes são efetivados em componentes isoladamente pelos próprios 
desenvolvedores 
Testes de sistema Estando os componentes integrados o sistema como um todo é 
testado no intuito de se encontrar erros e possibilidades de não 
atendimento aos requisitos 
Testes de 
aceitação 
O cliente fornece dados para que se efetive testes simulados no 
sistema, podendo revelar problemas nos requisitos e no desempenho 
Fonte: adaptado de Pressman (2011), Sommerville (2011) e Vazquez e Simões (2016) 
 
Os testes de aceitação podem ser efetivados até que as falhas sejam 
completamente sanadas, neste caso, tem-se os testes alfa. Contudo pode ocorrer 
casosem que o produto de software está finalizado e passa a ser utilizado por um 
grupo de usuários no intuito de que estes relatem suas experiências através dos testes 
beta, efetivados no intuito das devidas correções até que se torne apto para a 
comercialização/distribuição em definitivo (PRESSMAN, 2011). 
 
2.4 EVOLUÇÃO DE SOFTWARE 
Os softwares envelhecem passando anteriormente por processo de 
nascimento, maturação e estabilidade, e por isso necessitam de atenção especial 
para que se mantenham funcionalmente em atividade, atendendo as demandas 
dos usuários (PRESSMAN, 2011). 
Assim, no intuito de que, neste processo evolutivo o software não venha a 
declinar e consequentemente “morrer”, faz-se primordial a implementação de ações 
de manutenção que favoreçam a constante evolução do sistema, permitindo assim 
que sejam efetivadas adequações voltadas à interação entre software e hardware, 
garantindo que se mantenham em harmonia e plena produtividade (WAZLAWICK, 
2013). 
Tornar então o software apto para a evolução, tornando melhor o desenho de 
sua estrutura é um meio de garantir a longevidade do sistema, assim como 
documentar todo o projeto, desenvolvimento e manutenções permitindo que no 
futuro outras equipes de TI também possam garantir a operacionalização e 
produtividade do ambiente computacional já existente (PRESSMAN, 2011). 
A Evolução do Software é composta por ações únicas que muito se adequam 
quando não há viabilidade no desenvolvimento de um software desde seu estágio 
 
 
 
 
 
 
 
 
 
32 
 
 
inicial, tratando-se, portanto dos ajustes necessários para que o sistema se mantenha 
em pleno atendimento às necessidades de clientes/usuários mesmo havendo a 
mudança de requisitos de hardware na infraestrutura de tecnologia da organização 
(SOMMERVILLE, 2011; VAZQUEZ; SIMÕES, 2016). 
 
 
Neste sentido, e servindo de embasamento para o desenvolvimento de modos 
diferenciados de se compreender o desenvolvimento de software a partir de 
metodologias ágeis, nos anos 70 foram lançadas as Leis de Lehman e estas seguem 
devidamente apontadas no Quadro 10. 
 
Quadro 10: Leis de Lehman acerca da Evolução de Software 
Lei da Mudança Contínua 
A manutenção do sistema o adapta para que atenda às necessidades do usuário, 
requerendo portanto interação constante, mesmo que elas se alterem de modo 
crescente, sob pena de que a produtividade e satisfação sejam afetados 
consideravelmente ao longo do tempo 
Lei da Complexidade Crescente 
Sempre que um software sofre ajustes o seu nível de complexidade tende a aumentar, 
principalmente quando tais alterações não seguirem um planejamento estruturado de 
engenharia, podendo levar à necessidade de reestruturação do sistema caso alcance o 
nível de não mais atender às necessidades, produtividade e satisfação do usuário 
Lei da Autorregulação 
Os esforços dispendidos a cada versão e no tamanho do sistema não tende a variar 
durante a vida do sistema, seguindo as diretrizes definidas pela organização solicitante da 
ferramenta 
Lei da Conservação da Estabilidade Organizacional ou Lei da Taxa Constante de 
Trabalho 
Será contínua a necessidade de evolução do sistema, contudo isto não demandará 
aumento na equipe de tecnologia sob a pena desta se tornar improdutiva 
Lei da Conservação de Familiaridade 
O incremento de ajustes na evolução de um software é constante a cada versão, sendo 
importante que a equipe de tecnologia envolvida se mantenha harmoniosa e alinhada 
aos objetivos que necessitam ser seguidos 
Lei do Crescimento Contínuo 
Um sistema não deve ser ajustado apenas a nível de correção de erros, mas também na 
adição de novas funcionalidades, aumentando assim a satisfação do usuário 
Lei da Qualidade Decrescente ou Declinante 
A evolução do sistema é parte de seu processo de uso, elevando a qualidade. Assim, a 
ausência de mudanças não é boa como se pensa, sendo importante que os ajustes 
aconteçam em prol da elevação da qualidade por meio do reajuste do sistema ao 
desenho dos processos 
Lei do Sistema de Retorno ou de Feedback 
A etapa de Evolução de Software também pode ser denominada de Manutenção de 
Software. 
 
 
 
 
 
 
 
 
 
 
33 
 
 
 
 
Faz parte do processo evolutivo de software que usuários efetivem retornos avaliativos 
tanto positivos quanto negativos, pois é justamente estas ações que favorecem os ajustes 
e a evolução do sistema evitando sua “morte” prematura 
Fonte: adaptado de Audy (2014) 
 
Assim, foi importante observar que a Evolução de Software incorpora em si o 
entendimento da necessidade de manutenção, pois sem esta ação não se faz 
possível os ajustes ao longo da vida útil do sistema. 
Contundo, as constantes alterações em software levam à possibilidade de que 
o projeto de desenvolvimento nunca consiga alcançar uma finalização, sem que ao 
menos as versões sejam efetivamente finalizadas. A este tipo de contexto denomina-
se de Beta Eterno, onde, apesar de se percorrer todas as etapas tradicionais de 
desenvolvimento, o que se faz liberado ao usuário é uma versão beta, a qual ainda 
passará por uma infinidade de adequações que em tese levariam à finalização de 
sua elaboração (ALÃO, 2018). 
Diante deste modo de pensar, a possibilidade de dispor o software a uma 
quantidade grande de usuários antes de sua finalização, funcionaria como meio de 
aceleração no desenvolvimento, contudo, conforme destaca Alão (2018), não é o 
que acontece, pois, a exemplo de gigantes da tecnologia como o Google, tem-se 
a prática como meio de distorcer o entendimento do usuário de que sendo uma 
versão beta, as falhas são perdoáveis. 
Isto coloca a necessidade de reflexões em relação aos processos praticados 
em um mundo de versões beta, principalmente se considerando as Leis de Lehman 
em relação à evolução de software. 
 
 
Sendo o desenvolvimento um processo cíclico, além de a etapa de evolução demonstrar a 
importância da manutenção para que o software não se perca em sua possibilidade de 
atender as necessidades do cliente, avalie como as Leis de Lehman deixam caracterizado 
este processo de não retrocesso para o desenvolvimento de um novo software e sim a 
melhoria constante do que já existe, caso haja possibilidade, estabelecendo uma visão 
crítica acerca do Beta Eterno. 
Tendo por base as Etapas de Desenvolvimento de Software aqui estudadas, o observe a 
figura a seguir. 
 
 
 
 
 
 
 
 
 
34 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Neste vídeo da Dheka Consultoria, denominado de Video 3 – Processos e Desenvolvimento 
de Software. Disponível em: https://bit.ly/3V4y2nQ. Acesso em: 10 de mar. 2023. 
A apresentadora adiciona conhecimentos ao estudos que já efetivamos até aqui. Vale a 
pena conferir! 
Especificação 
de Software
Projeto e 
Implementação de 
Software
Validação 
de Software
Evolução de 
Software
https://bit.ly/3V4y2nQ
 
 
 
 
 
 
 
 
 
35 
 
 
FIXANDO O CONTEÚDO 
 
1. (adaptado de CESPE - BANRISUL – 2022, CESPE – TRT – 2012, CESPE – TELEBRAS – 2022) 
Julgue os itens subsequentes quanto serem verdadeiros ou falsos e indique a 
opção que apresenta a melhor resposta para sua avaliação: 
 
I. A especificação de requisitos é frequentemente composta de vários tipos de 
documentos e não raro abrange: visão geral; glossário; modelos do sistema; lista 
de requisitos funcionais e lista de requisitos não funcionais; especificação 
detalhada de requisitos. 
II. O objetivo principal da especificação de requisitos é documentar todas as 
necessidades dos clientes e obter um aceite quanto às entregas de produto 
propostas. 
III. As atividades fundamentais relacionadas ao processo de construção de um 
software incluem a especificação, o desenvolvimento, a validação e a evolução 
do software. 
IV. No âmbito da engenharia de software, o principal produto da engenharia de 
requisitos é o documento de especificação de requisitos de software. 
a) Apenas asafirmativas Il e Ill estão corretas. 
b) Apenas a afirmativa Ill está correta. 
c) Apenas as afirmativas I e Il estão corretas. 
d) Apenas a afirmativa I está correta. 
e) Todas as afirmativas estão corretas. 
 
2. (CREFITO - MA – 2018) A Engenharia de Software é um capítulo importante de toda 
a Análise e Desenvolvimento de projetos voltados à criação de Softwares, pois ele 
traz conceitos que até hoje são utilizados, sendo algumas vezes a base da 
construção de um Sistema. Sendo assim, qual das alternativas está correta quando 
falamos em Engenharia de Software e Projetos? 
a) O foco de um Projeto de Software é a busca da perfeição, no qual o Engenheiro 
deve realizar esta tarefa sozinho, com o intuito de atender as suas necessidades. 
b) A metodologia aplicada deverá estar diretamente vinculada ao Software, onde 
teremos que atender ao individual. 
 
 
 
 
 
 
 
 
 
36 
 
 
c) A Engenharia de Software objetiva diversas soluções, onde a qualidade do 
produto deve estar evidenciada, sendo que o produto final deverá atender ao 
cliente ao qual aquele produto tenha sido solicitado. 
d) Até o momento não está comprovado que a Engenharia é eficaz e eficiente para 
criação de um Software, pois a qualidade deste depende da equipe de 
desenvolvimento. 
e) A Engenharia de projetos trabalha para montagem de projetos estipulados por um 
conjunto de atores baseados nas suas experiências individuais. 
 
3. (CCV - UFC – 2016 - adaptado) Em projeto de software, um Stakeholder representa: 
a) Um conjunto de diagramas da UML que pode ser afetado pelo futuro projeto de 
software. 
b) Uma técnica de programação em pares que pode ser afetado pelo projeto de 
software. 
c) Uma Metodologia de testes de software que pode ser afetado pelo projeto de 
software. 
d) Uma Técnica aplicada para quantizar os riscos que podem afetar o projeto de 
software. 
e) Indivíduos e organizações cujos interesses podem ser afetados pelo projeto de 
software. 
 
4. (FAURGS - BANRISUL – 2018) ___________ se preocupa com todos os aspectos do 
desenvolvimento de sistemas computacionais, incluindo engenharia 
de hardware, software e processo; e _________ é uma disciplina da engenharia 
que se preocupa com todos os aspectos da produção de software, desde os 
estágios iniciais da especificação do sistema até sua manutenção, quando o 
sistema já está sendo usado. 
Assinale a alternativa que completa, correta e respectivamente, as lacunas do 
texto acima. 
a) Engenharia de Domínio – Engenharia de Software 
b) Engenharia Reversa – Engenharia de Sistemas 
c) Engenharia de Sistemas – Engenharia de Domínio 
d) Engenharia de Sistemas – Engenharia de Software 
e) Engenharia Reversa – Engenharia de Domínio 
 
 
 
 
 
 
 
 
 
37 
 
 
 
5. (FUNDATEC – RS – 2022)O teste de software compreende um conjunto de 
ferramentas e técnicas relacionadas à verificação e validação (V&V) de um 
sistema. Em relação ao tópico de teste de software, analise as assertivas abaixo, 
assinalando V, se verdadeiras, ou F, se falsas. 
( ) O teste beta é conduzido no ambiente de usuários reais, executando tarefas reais, 
sem a monitoração e interferência próxima dos desenvolvedores. 
( ) O teste de aceitação é utilizado para verificar se um sistema de software como 
um todo é consistente com sua especificação de requisitos, geralmente 
executado pela equipe de testes sem o envolvimento do usuário. 
( ) Ao corrigir erros de um sistema, é muito fácil introduzir novos erros ou reintroduzir 
erros que ocorreram anteriormente. Nessa situação, casos de teste aprovados em 
versões prévias do software podem ser verificados novamente através de testes 
de sistema. 
( )Testes unitários em sistemas orientados a objetos normalmente realizam verificações 
de falhas em classes individuais. 
A ordem correta de preenchimento dos parênteses, de cima para baixo, é: 
a) V – F – F – V 
b) V – V – F – V 
c) V – F – V – F 
d) F – V – F – F 
e) F – F – V – V 
 
6. (FCC – CE – 2022) Uma vez que o sistema tenha sido totalmente integrado, é 
possível testá-lo para propriedades emergentes, como desempenho e 
confiabilidade. Os testes de desempenho precisam ser projetados para: 
a) projetar o sistema como uma história realista com cenários que descrevem uma 
maneira de usar o sistema. Os usuários reais do sistema devem ser capazes de se 
relacionar com cada cenário específico. 
b) assegurar maior confiabilidade do sistema em vista das respostas dos usuários que 
o testam em ambiente replicado ou em protótipos específicos criados a partir de 
blocos do sistema que se pretende testar. 
 
 
 
 
 
 
 
 
 
38 
 
 
c) projetar casos de teste em que se considera cada requisito e se deriva um conjunto 
de testes para eles a fim de demonstrar que o sistema implementou 
adequadamente seus requisitos. 
d) assegurar que o sistema possa processar a carga a que se destina. Isso 
normalmente envolve a execução de uma série de testes em que se aumenta a 
carga até que o desempenho do sistema se torne inaceitável. 
e) convencer o usuário de que uma determinada versão do sistema é boa e 
confiável o suficiente para uso além de mostrar que o sistema atende todos os 
requisitos funcionais. 
 
7. (FAURGS - SES RS - 2022) Dentro do contexto de Teste de Software, o objetivo de 
________________ é checar se o software atende a seus requisitos funcionais e não 
funcionais, enquanto o objetivo de _____________ é checar que o software atende 
às expectativas do cliente. 
Assinale a alternativa que completa, correta e respectivamente, as lacunas do 
texto acima. 
a) depuração – validação 
b) verificação – depuração 
c) teste de componente – depuração 
d) verificação – validação 
e) validação – verificação 
 
8. (FUNDATEC – 2022) Relacione a Coluna 1 à Coluna 2, associando as técnicas de 
software com suas corretas descrições. 
Coluna 1 
1. Teste alfa. 
2. Teste beta. 
3. Teste de regressão. 
Coluna 2 
( )Casos de teste realizados nos componentes isoladamente contando com a 
participação apenas dos desenvolvedores 
( )Conduzido na instalação do desenvolvedor, em um ambiente controlado por eles, 
por um grupo representativo de usuários finais. 
 
 
 
 
 
 
 
 
 
39 
 
 
( )Conduzido nas instalações de um ou mais usuários finais, geralmente sem a 
presença de desenvolvedores, em um ambiente sem o controle destes últimos. 
A ordem correta de preenchimento dos parênteses, de cima para baixo, é: 
a) 1 – 2 – 3 
b) 1 – 3 – 2 
c) 2 – 1 – 3 
d) 3 – 2 – 1 
e) 3 – 1 – 2 
 
 
 
 
 
 
 
 
 
 
 
40 
 
 
METODOLOGIAS ÁGEIS 
 
 
 
 
 
3.1 HISTÓRIA, CONCEITO E IMPORTÂNCIA DAS METODOLOGIAS ÁGEIS 
Entre os anos de 1980 e 1990 a idealização dos sistemas tinha como ponto 
primordial a aplicação das ferramentas de Engenharia de Software, denominadas 
de Ferramentas CASE, sendo esta denominação proveniente do acrônimo de 
Computer-Aided Software Engineering, ou, traduzido livremente ao português, 
Engenharia de Software auxiliada por Computador (SOMMERVILLE, 2011; HIRAMA, 
2012; PETERS, 2001). 
Tal metodologia se fazia muito bem aceita e até certo ponto eficiente para o 
desenvolvimento de sistemas de grande porte, os quais tinham por especificidade 
principal a participação de uma quantitativo elevado de Engenheiros de Software, 
localizados em áreas geograficamente distantes, e que, no entanto, possuíam um 
prazo de entrega de suas demandas de desenvolvimento bem mais amplo do que 
se verifica atualmente (PRESSMAN, 2011). 
Contudo, sendo uma abordagem de melhor aplicação a estas características, 
diante das especificidades surgidas a partir dos anos de 1990, identificou-se a 
necessidade de desenvolver novos métodos que se aplicassem a projetos de 
software de médio e pequeno porte, consequentemente com prazos mais curtos e 
maiores restrições orçamentárias (WAZLAWICK, 2013; PETERS, 2001). 
Fez-se então surgir o que se denomina de MétodosÁgeis, sendo estes modos 
de compreender o desenvolvimento de tarefas de software com foco nas pessoas 
que as desenvolvem e não nas linhas de código, pois passou-se a identificar que o 
trabalho intelectual de desenvolvimento não poderia ser executado de modo linear, 
em série e muito menos com grau elevado de previsibilidade (HIRAMA, 2012). 
Neste sentido, um Método Ágil atuaria na diminuição da burocracia 
organizacional aplicada ao desenvolvimento de software, tornando o processo em 
si mais humano, porém mais rápido, dinâmico, flexível, interativo, garantindo que o 
desenvolvimento das tarefas efetivamente conseguisse alcançar uma fase de 
UNIDADE 
03 
 
 
 
 
 
 
 
 
 
41 
 
 
finalização com maior funcionalidade e coesão, mesmo diante da necessidade de 
revisões, caso necessárias (SOMMERVILLE, 2011; PRESSMAN, 2011, HIRAMA, 2012) 
Considerando assim que o cliente/usuário nem sempre reconhece suas reais 
necessidades, o Método Ágil encontra meios de garantir que, partindo da interação 
constante dos entes interessados, ou Stakeholders, faça-se a troca de informações 
necessária à identificação dos requisitos, de modo a garantir maior assertividade no 
desenvolvimento da solução solicitada (OLIVEIRA, 2018). 
Por meio da aplicação de conceitos que incorporam o fracionamento de 
entrega do produto computacional desenvolvido de modo incremental, da auto-
organização do time de trabalho, e do uso consciente da inteligência coletiva dos 
colaboradores, os Métodos Ágeis conseguem acelerar o processo de entrega de um 
produto elaborado a partir do desenvolvimento de um dado projeto (WAZLAWICK, 
2013). 
Sob tais fatores, os Métodos Ágeis, em um geral seguem os princípios 
norteadores descritos na Figura 7. 
 
Figura 7: Princípios norteadores dos Métodos Ágeis 
 
Fonte: adaptado de Waslawick (2013) 
 
Estes princípios demonstram a preocupação com as pessoas (Stakeholders), a 
•Por meio deste envolvimento, que necessita ser íntimo, o 
cliente fornece informações quanto aos requisitos do sistema, 
avaliando sua implementação
Envolvimento do 
Cliente
•Na interação com o cliente a equipe de desenvolvimento 
identifica necessidades de implementação que se efetivam 
de modo incremental
Entrega 
Incremental
•O profissional de TI se faz reconhecido em suas 
potencialidades sendo convocado a aplicar seus 
conhecimentos no projeto, conforme metodologia própria
Pessoas, não 
processos
•Um sistema não é um ambiente estático, estará sempre em 
mudanças e por isto, tanto sua estrutura quanto a equipe 
envolvida necessitam estar aptos a tal
Aceitar as 
Mudanças
•Um sistema não necessita ser complexo pois a simplicidade 
favorece o desenvolvimento e a manutençãoManter a 
Simplicidade
 
 
 
 
 
 
 
 
 
42 
 
 
melhoria contínua e incremental e com a diminuição da complexidade do sistema e 
dos processos por ele atendidos, pois é justamente o feedback constante, coletado 
pelo meio dos processos de interação implementados que favorecem o alcance de 
tais premissas. 
Deste modo, os Métodos Ágeis atualmente rompeu as barreiras do 
desenvolvimento de sistemas e sem veem aplicados às mais variadas áreas de 
atuação e do conhecimento nas organizações, como para o desenvolvimento de 
produtos/serviços com vistas à comercialização, na 
implementação/melhoria/inovação de processos e na educação para o 
desenvolvimento de projetos inovadores, trabalhos de pesquisa e atividades 
acadêmicas (SOMMERVILLE, 2011). 
 
3.2 VISÃO GERAL DAS METODOLOGIAS ÁGEIS DE MAIOR 
REPRESENTATIVIDADE NA TI 
O tempo passou e, tanto a agilidade quanto a assertividade no 
desenvolvimento de sistemas, tornaram-se exigências marcantes para as equipes de 
TI (OLIVEIRA, 2018). 
Deste modo, as Metodologias Tradicionais de desenvolvimento, apresentadas 
no capítulo anterior, viram-se impelidas à renovação a partir do advento das 
Metodologias Ágeis, potencializando suas habilidades e garantindo que a 
modelagem, até o momento aplicada aos sistemas, pudesse se tornar mais eficiente 
(SOMMERVILLE, 2011). 
Diante deste pensamento, frameworks passaram a ser desenvolvidos em 
atendimento a esta visão de agilidade e assertividade, sendo importante aqui 
estabelecer uma visão geral daqueles que são os de maior representatividade no 
âmbito da Tecnologia da Informação a partir do Quadro 11. 
 
Quadro 11: Visão Geral das Metodologias Ágeis existentes 
FDD - FEATURE DRIVEN DEVELOPMENT 
(DESENVOLVIMENTO CONDUZIDO POR RECURSOS) 
Criador(es): Jeff de Luca e Peter Coad Criação: 1997-1998 
 
Finalidade(s): 
Para favorecer as 
interações entre 
os membros do 
projeto e para a 
Stakeholders: 
 Gerente de Projeto 
 Especialista 
 Pessoal de 
Planejamento 
Lado A (benefícios): 
 Beneficia a todos os 
Stakeholders 
 Aplicado a qualquer 
tamanho de equipe 
Lado B (restrições): 
 Não é favorável 
para pequenos 
projetos 
 
 
 
 
 
 
 
 
 
43 
 
 
implementação 
de estratégia de 
desenvolvimento 
guiado por 
funcionalidades 
 Programador-
Chefe 
 Equipe de 
Funcionalidades 
 Favorece a Qualidade 
de Software 
 Atua na entrega de 
resultados frequentes, 
tangíveis e funcionais 
para a visualização de 
progresso do Projeto 
 Custo elevado 
pelo tamanho da 
equipe envolvida 
DSDM - DYNAMIC SYSTEM DEVELOPMENT METHODOLOGY 
Criador(es): Organização sem fins lucrativos Criação: 1994 
 
Finalidade(s): 
Correção de 
falhas do Modelo 
em Cascata, 
tornando-o mais 
dinâmico 
Stakeholders: 
 Coordenador 
 Desenvolvedor 
Sênior 
 Analista 
 Programador 
 Designer 
 Testador 
 Usuários 
 Patrocinador 
 Redator técnico 
 Desenvolvedor 
 DBA 
 Configurador 
 Suporte Técnico 
Lado A (benefícios): 
 Participação ativa, 
cooperativa e 
compartilhada entre os 
Stakeholders 
 Stakeholders dotados 
de poder decisório 
 Desenvolvimento 
iterativo, incremental 
partindo de requisitos 
essenciais previamente 
fixados e com entregas 
contínuas 
 Feedback e ações 
totalmente reversíveis 
 Possibilidade de 
efetivação de Teste em 
todo o Ciclo de Vida 
Lado B (restrições): 
 Não se aplica a 
projetos em que 
o risco à vida 
humana e o 
dano crítico não 
sejam bem 
tolerados 
 Não possui 
viabilidade caso 
seja impossível a 
criação de um 
protótipo 
 Requer a 
participação 
ativa de todos 
os Stakeholders, 
incluindo o 
cliente 
ASD - ADAPTIVE SOFTWARE DEVELOPMENT 
(DESENVOLVIMENTO DE SOFTWARE ADAPTÁVEL) 
Criador(es): Sam Bayer e James Highsmith Criação: 1997 
 
Finalidade(s): 
Evolução do 
método Rapid 
Application 
Development 
(RAD) 
Stakeholders: 
 Executivo 
Responsável 
 Facilitador 
 Escriba 
 Cliente 
 Gerente do 
Projetos 
 Desenvolvedor 
Lado A (benefícios): 
 Corrige as 
metodologias 
tradicionais encurtando 
o período de 
desenvolvimento 
através da divisão de 
projeto para 
implementação e 
testes 
Lado B (restrições): 
 Não é favorável 
para pequenos 
projetos 
 Risco de tomada 
de decisão 
precipitada por 
conta do fator 
tempo reduzido 
SCRUM 
Criador(es): Jeff Sutherland, John Scumniolates e Jeff Mackenna Criação: Anos 90 
 
Finalidade(s): 
Foco no produto 
e no cliente por 
meio de 
Framework 
voltado para a 
gestão de 
projetos 
Stakeholders: 
 Product Owner 
 Scrum Master 
 Equipe Scrum 
 Cliente 
Lado A (benefícios): 
 Entendimento da 
dinâmica de mudança 
dos requisitos 
 Gerencia e controla o 
trabalho em si 
tornando a equipe 
autogerenciável, 
funcional e valorizada 
Lado B (restrições): 
 Não é favorável 
para projetos 
muito simples e 
nem de curto 
prazo 
 Requer a 
participação 
ativa de todos 
os Stakeholders, 
 
 
 
 
 
 
 
 
 
44 
 
 
 Age na Identificação e 
remoção de causas de 
problemas, por meio 
de processos iterativos 
e incrementais 
incluindo o 
cliente 
XP - EXTREME PROGRAMMING 
(PROGRAMAÇÃO EXTREMA) 
Criador(es):

Continue navegando