1. Modelos de Ciclo de Vida
de Desenvolvimento de
Software
PROF. ALEXANDRE.
2. Por mais simples ou complexo que possa
parecer, um modelo de ciclo de vida de
um projeto é, de fato, uma versão
simplificada da realidade.
3. O que vem a ser o ciclo de vida?
O ciclo de vida de um software é uma
estrutura que indica processos e atividades
envolvidas no desenvolvimento, operação e
manutenção de um software, abrangendo de
fato toda a vida do sistema.
Neste ciclo, existem modelos que definem
como o software será desenvolvido, lançado,
aprimorado e finalizado.
4. O que vem a ser o ciclo de vida?
A escolha desse modelo, que definirá a
sequência de etapas das atividades, é feita entre
o cliente e a equipe de desenvolvimento e várias
coisas podem impactá-la, como negócio, tempo
disponível, custo, equipe etc.
A ordem das fases é que vai definir o ciclo de
vida do seu software.
5. Por que devo criar um ciclo antes de
desenvolver meu software?
Com um modelo de ciclo de vida você consegue ver a
real necessidade do software e planejá-lo melhor.
Imagina você entregar um software para um cliente, e
posteriormente precisar lançar várias atualizações para
corrigir falhas?
6. Por que devo criar um ciclo antes de
desenvolver meu software?
A finalidade desse ciclo é encontrar erros o mais cedo
possível, pois, além de garantir a qualidade do
software, evita um custo maior caso um erro seja
encontrado tardiamente.
Com um melhor planejamento você pode, por
exemplo, ter maior disponibilidade para melhorar o
desempenho ou realizar alguma correção.
7. Quais são as etapas?
Existem 3 fases básicas de um ciclo de software:
definição, desenvolvimento e operação.
1) Definição
Deve-se conhecer a situação atual e fazer a identificação do
problema para buscar uma resolução do mesmo. É na
definição que você fará a modelagem dos processos e a
análise do sistema. O modelo de ciclo de vida é a primeira
escolha a ser feita no processo de software.
8. Quais são as etapas?
2) Desenvolvimento
Esta etapa envolve atividades relacionadas a design,
prototipagem, codificação, testes, entre outras
atividades que forem necessárias, como por exemplo,
a integração com um outro sistema.
É importante ressaltar que essas atividades devem
seguir o que foi descrito nas etapas anteriores, pois é
aí que entra as regras de negócio.
9. Quais são as etapas?
3) Operação
Nesta etapa o software já estará em produção e você
dará o devido suporte aos usuários e, claro, corrigir
possíveis bugs que possam aparecer.
Aí também entra a continuidade do software se for
preciso, como atender novos requisitos, novas
funcionalidades.
Porém, tudo depende do modelo de ciclo de vida
adotado pelo projeto.
10. Quais os modelos que podem ser
utilizados?
Existem diversos modelos de ciclos de vida
para o desenvolvimento de software como:
Modelo Big Bang / Modelo Constrói e Corrige /
Modelo Cascata / Modelo Espiral / Métodos Ágeis /
Manifesto ágil / Scrum - dentre outros.
11. Modelo Big Bang
Como na teoria de criação do universo, o software é produzido a partir de uma
‘explosão’.
Este modelo não possui planejamento, cronograma ou processo formal de
desenvolvimento.
Todo o esforço é gasto com codificação.
Não existe também a fase de teste.
Quando executado, é feito no final, pouco antes da
entrega.
O analista de testes tem a missão de encontrar as
falhas e reportar.
Mas estas falhas não serão necessariamente
corrigidas.
Muitas vezes o resultado do produto desenvolvido
não será o esperado pelo cliente.
12. Modelo Big Bang
Nesse modelo, os desenvolvedores não seguem nenhum processo específico.
O desenvolvimento começa com os fundos e esforços necessários na forma de
insumos. E o resultado pode ser ou não conforme a necessidade do cliente, pois neste
modelo nem mesmo as necessidades do cliente estão definidas.
Este modelo é ideal para pequenos projetos como projetos acadêmicos ou projetos
práticos. Um ou dois desenvolvedores podem trabalhar juntos neste modelo.
Este método também é usado quando o tamanho da equipe de desenvolvedor é
pequeno e quando os requisitos não são definidos e a data de lançamento não é
confirmada ou fornecida pelo cliente.
13. Modelo Big Bang
VANTAGENS (PRÓS) DO MODELO BIG BANG:
Não há necessidade de planejamento.
Modelo simples.
São necessários poucos recursos.
Fácil de gerenciar.
Flexível para desenvolvedores.
DESVANTAGEM (CONTRAS) DO MODELO DO BIG BANG:
Existe alto risco e incerteza.
Não é aceitável para um grande projeto.
Se os requisitos não forem claros, isso pode ser muito caro.
14. Modelo Constrói e Corrige
Derivado do modelo Big Bang, neste modelo é feito um projeto simples do software e
então é iniciado o desenvolvimento.
Após uma fase de teste onde as falhas são encontradas, existe a fase de correção. Este
ciclo se repete até que o software seja considerado satisfatório para ser entregue.
Idealmente, deve ser utilizado em projetos pequenos que serão descartados em seguida
tais como protótipos e demos.
No entanto muitas empresas o utilizam como modelo default, um caso que geralmente
há sucesso na entrega porém alto custo de desenvolvimento.
“Nuca dá tempo de fazer certo, mas sempre
dá tempo de fazer de novo”.
15. Modelo Constrói e Corrige
É feito um projeto simples do software e então é iniciado o desenvolvimento. Após uma
fase de testes, normalmente informal, onde as falhas são encontradas, existe a fase de
correção. Este ciclo se repete até que o software seja considerado satisfatório para ser
entregue.
Idealmente, deve ser utilizado em projetos pequenos que serão descartados em seguida
tais como protótipos e demos.
Não existe uma fase formal de testes. O testador fica em contato direto com os
desenvolvedores e sempre recebe uma nova versão para os testes, às vezes antes de
terminar os testes da versão anterior. Em algum momento alguém (ou o cronograma)
decidirá que o software está pronto para ser entregue. O software será entregue,
provavelmente, com muitas falhas.
https://guimaraesdani.wordpress.com/
16. Modelo Cascata / Sequencial
Primeiro modelo publicado do processo de
desenvolvimento de software.
Também conhecido como Ciclo de Vida Clássico ou
Modelo Clássico.
Considera as atividades de especificação,
desenvolvimento, validação e evolução, que são
fundamentais ao processo, e as representa como fases
separadas do processo, como a especificação de
requisitos, o projeto de software, os testes e
assim por diante.
Abordagem de Sommerville
17. Fases do Modelo Cascata - Abordagem de Sommerville
1. ANALISE E DEFINIÇÃO DE REQUISITOS
(Especificação de requisitos)
As funções, as restrições e os objetivos do sistema são
estabelecidos por meio da consulta aos usuários do sistema.
Em seguida, são definidos em detalhes e servem como uma
especificação do sistema.
2. PROJETO DE SISTEMAS E DE SOFTWARE
Agrupa os requisitos em sistemas de hardware ou de software;
Estabelece uma arquitetura do sistema geral.
18. Fases do Modelo Cascata - Abordagem de Sommerville
3. IMPLEMENTAÇÃO E TESTE DE UNIDADES
Durante esse estágio, o projeto de software e compreendido como um
conjunto de programas ou de unidades de programa;
O teste de unidade envolve verificar que cada unidade atenda a sua
especificação.
4. INTEGRAÇÃO E TESTE DE SISTEMAS
As unidades de programa ou programas individuais são integrados e testados
como um sistema completo a fim de garantir que os requisitos de software
foram atendidos;
Depois dos testes, o sistema de software e entregue ao cliente.
19. Fases do Modelo Cascata - Abordagem de Sommerville
5. OPERAÇÃO E MANUTENÇÃO
Normalmente, está e a fase mais longa do ciclo de vida;
O sistema e instalado e colocado em operação;
A manutenção envolve corrigir erros que não foram
descobertos em estágios anteriores do ciclo de vida ou
aumentar as funções desse sistema à medida que novos
requisitos são descobertos.
20. Modelo Cascata / Sequencial
Em princípio, o resultado de cada fase envolve um ou mais
documentos que são aprovados.
Gera muita documentação, nem sempre utilizada posteriormente.
A fase seguinte não deve iniciar ate que a fase precedente tenha sido
concluída.
O processo de software não é um modelo linear simples, pois envolve
uma sequência de iterações das atividades.
Problema do modelo em cascata é ser inflexível divisão do projeto
nesses estágios distintos.
21. Modelo Cascata / Sequencial
O modelo em cascata somente deve ser utilizado quando os requisitos forem
bem compreendidos:
– Contudo, ele reflete a pratica da engenharia;
– Consequentemente, os processos de software com base nessa abordagem
ainda são muito
utilizados.
22. Modelo Espiral
Foi originalmente proposto por Boehm em 1988.
Uma maneira simplista de analisar este modelo é considerá-lo
como um modelo cascata onde cada fase é precedida por uma
análise de risco e sua execução é feita revolucionariamente (ou
incrementalmente).
No início, apenas as funcionalidades importantes são definidas e
testadas. Somente após a finalização dos testes e correção das
falhas o próximo ciclo se inicia definindo-se mais algumas
funcionalidades. Estes ciclos se repetem até que o software
esteja pronto.
23. Modelo Espiral
Cada ciclo do espiral possui 6 passos:
Determinar os objetivos, alternativas e restrições;
Identificar e resolver os riscos;
Avaliar as alternativas;
Desenvolver e testar o ciclo atual;
Planejar o próximo ciclo;
Definir as técnicas para o próximo ciclo;
24. Modelo Espiral
Cada loop na espiral representa uma fase do processo
de software;
Assim, o loop mais interno pode estar relacionado a
viabilidade do software;
O loop seguinte, a definição de requisitos para o
software;
O próximo loop, ao projeto do software, e assim por
diante...
26. 1. DEFINIÇÃO DE OBJETIVOS.
São definidos os objetivos específicos para essa fase do
projeto.
São identificados os riscos do projeto e, dependendo
riscos poderão ser planejadas estratégias alternativas.
2. AVALIAÇÃO E REDUÇÃO DE RISCOS.
Para cada um dos riscos de projeto identificados, e
realizada uma analise detalhada e são tomadas
providencias para reduzir esses riscos.
Por exemplo, se houver um risco de os requisitos serem
inadequados, poderá ser desenvolvido um protótipo.
Modelo Espiral
CADA LOOP DA ESPIRAL E DIVIDIDO EM 4 SETORES:
27. 3. DESENVOLVIMENTO E VALIDAÇÃO
Depois da avaliação dos riscos, e escolhido um modelo
de desenvolvimento para o software.
Por exemplo, se forem dominantes os riscos
à interface com o usuário, pode ser utilizado o modelo
de desenvolvimento evolucionário (prototipação).
4. PLANEJAMENTO
O projeto é revisto e é tomada a decisão sobre
com o próximo loop da espiral.
Se a decisão for continuar, serão traçados os planos
a próxima fase do projeto.
Modelo Espiral
CADA LOOP DA ESPIRAL E DIVIDIDO EM 4 SETORES:
28. Desenvolvimento em Espiral
Depois da avaliação dos riscos, e escolhido um modelo
Não há fases fixas, como especificação ou projeto, no modelo em
espiral.
O modelo em espiral abrange outros modelos de processo, como
por exemplo, prototipação.
Diferença do modelo em espiral em relação a outros modelos de
processo de software.
Explicita consideração dos riscos no modelo em espiral.