Aula 2 – Introdução a HTML - conceitos básicos e estrutura
Modelos de Ciclo de Vida para Desenvolvimento de Sistemas
1. Metodologia Para Desenvolvimento de Sistemas
Aula 3
Modelos de Ciclo de Vida de
Desenvolvimento
Prof. André Constantino da Silva
MDP
23 de agosto de 2012
2. Na Aula Anterior...
• Ciclo de Vida do Software
• Ciclo de Vida de Desenvolvimento
– O modelo Cascata ou Clássico
3. Críticas
• O modelo Cascata somente possibilita ao
cliente ver o produto no final do processo
• O cliente pode não saber tudo o que deseja
no software
• Pode haver problemas na compreensão do
que o cliente deseja
5. Vantagens do Modelo Portotipação
• Maior garantia de sucesso técnico e
psicológico
• Redução no fator tempo: “O usuário gosta de
ver o sistema funcionando”
• Ideal para sistemas gerenciais e de apoio a
decisão
6. Desvantagens do Modelo Prototipação
• O cliente quer resultados
• O cliente não entenderá que um protótipo
pode estar longe do software ideal
– A gerência de desenvolvimento cede às
reclamações e tenta encurtar o prazo de entrega
7. Desvantagens do Modelo Prototipação
• O desenvolvedor é pressionado a colocar um
protótipo em funcionamento
– Usa um SO ou linguagem de programação
imprópria por simplesmente estar a disposição ou
estar mais familiarizado
– Essa atitude poderá levar à um algoritmo
ineficiente
9. Análise de Riscos
• Risco: fatores que podem impactam no
andamento do projeto, aumentado seu custo ou
tempo
• Nessa atividade os riscos são identificados,
analisados, avaliados e ordenados
– Se a análise resultante indicar incertezas sobre os
requisitos, a prototipação pode ser utilizada na
próxima atividade
– De acordo com o resultado da Análise de Risco, é
tomada a decisão de prosseguir ou não com a
evolução do software.
10. Vantagens do Espiral
• Reúne características dos modelos Cascata e
Prototipação acrescentando ainda em sua
base a análise de riscos
• Quanto mais iterações na espiral, menor serão
os riscos sobre o projeto
• Execução de atividades de verificação
presentes ao final de cada iteração
– permitem um melhor controle gerencial sobre o
projeto
11. Desvantagens do Espiral
• Dificuldade em convencer os clientes de que a
abordagem evolutiva é controlável
• Necessidade de experiência para a identificação e
avaliação dos riscos técnicos e gerenciais para
que realmente se possa diminuir o impacto que
estes possam vir a causar
• Não é adequado para projetos considerados
simples e os riscos são moderados
– Muita flexibilidade e alto gerencialmento de riscos
13. Vantagens do Incremental
• Várias versões do software
– O primeiro incremento é freqüentemente
chamado de núcleo do produto
• Requisitos podem ser adicionados em novas
versões futuras do software
• Tempo de entrega de uma nova versão é
menor devido ao “paralelismo” de atividades
• Possibilita o cliente avaliar o produto que está
sendo construído
15. Vantagens do RAD
• O ciclo de desenvolvimento deve ser
extremamente curto
– períodos de 60 a 90 dias
– deve-se utilizar de técnicas de reuso
• Várias versões
– cada função principal é desenvolvida por uma
equipe RAD distinta. Ao término da
implementação de cada função, elas são
integradas formando o produto final
16. Desvantagens do RAD
• Exige que os desenvolvedores compreendam
bem os requisitos e que o objetivo do projeto
seja restrito
• Nem todos os sistemas são candidatos a
serem desenvolvidos seguindo esse modelo
– O sistema necessita ser modularizado
– Cada função principal precisa ser desenvolvida em
até 3 meses (90 dias)
• Exige a criação de equipes adequadas
17. • Modelos estudados:
– Cascata ou Clássico
– Prototipação
– Incremental
– Espiral
– RAD
• Esses modelos são chamados tradicionais
18. Métodos Ágeis
• Ao longo dos anos, a Engenharia de Software
determinou técnicas e artefatos para o
desenvolvimento
• Surgiu uma vertente para desenvolver
software de forma mais rápida e menos
burocrática
• Métodos Ágeis
– Manifesto Ágil
20. Vantagens do XP
• Desenvolvimento de versões
• Participação do cliente na escrita dos requisitos
(user stories)
• Cliente avalia cada versão produzida
• Requisitos podem ser adicionados em novas
versões futuras do software
• Foco na comunicação e não na documentação
• XP pode ser aplicado a projetos de altos riscos e
requisitos dinâmicos
21. Desvantagens do XP
• A equipe precisa estar comprometida
• O cliente precisa participar efetivamente
– Escrevendo as user stories
– Escolhendo as user stories que serão
implementadas
– Avaliando a versão
• A documentação pode ficar comprometida
22. XP
• Mais que um modelo de Ciclo de Vida, um conjunto de
técnicas para desenvolvimento:
– User Stories: características do sistema escritas pelos próprios
clientes
• As estimativas de tempo são realizadas pelos programadores
analisando as user stories
– Programação em pares
– Especificação e elaboração de testes antes da codificação
– Refactoring: melhorar código existente
• Equipes de pequeno e médio porte, sugerindo entre três a
vinte membros
• São utilizados códigos padrões
• Uma equipe dinâmica e comprometida
23. A base do XP
• Define valores
– Os indivíduos e suas interações acima de
procedimentos e ferramentas
– O funcionamento do software acima de
documentação abrangente
– A colaboração dos clientes acima da negociação
de contratos
– A capacidade de resposta à mudanças acima de
um plano pré-estabelecido
24. A base do XP
• Define princípios
– Feedback rápido
– Simplicidade
– Mudanças incrementais e apenas quando necessárias
– Trabalho com qualidade
– Rápida adaptação às mudanças
– Projetos surgem através de indivíduos motivados, e
que deve existir uma relação de confiança
– ...
25. Tarefa
• Fazer uma pesquisa e escrever um texto (1
página) sobre:
– Documento de Requisitos
– User Stories
• Foco: diferenças entre esses documentos.
• Data: 30/08
26. Conclusões
• Desenvolver sistemas computacionais é uma
atividade complexa
• Devemos empregar metodologias para
desenvolver
– Variedade de Metodologias
– Qual usar?