Escolar Documentos
Profissional Documentos
Cultura Documentos
Software
• Introdução
• Modelo de Processo
• Processo de software
• Importância do Gerenciamento de
Processos
• Classificação dos Processos
• Modelos de Desenvolvimento e
Gerenciamento de Software
• Processos de Desenvolvimento
Introdução
• Processo Formal
– Processo bem definido e
padronizado
• boas práticas
• listas de verificação
• atividades pré-definidas
• Processo Empírico
– Dependente de experiência
– Habilidade dos integrantes da
equipe
Modelo de Processo
• Conjunto de atividades e
resultados associados que geram
um software (Sommerville, 2013)
• Envolvem aspectos técnicos
– Especificação
– Desenvolvimento
– Validação
– Evolução do Software
Modelos de desenvolvimento e Gerenciamento de software
• O software é ajustado e
melhorado
• Cada ciclo adiciona
funcionalidades diferentes
• É um processo incremental
• Difícil estimar a quantidade de
ciclos para finalizar o software
• Alterações em requisitos podem
ser abordadas em novas iterações
Modelos Ágeis
• Manifesto para o
Desenvolvimento Ágil de
Software
– 2001
• Princípios fundamentais
– Indivíduos e interações em vez de
processos e ferramentas
– softwares funcionando em vez de
documentação abrangente;
Modelos Ágeis
• Alguns processos de
desenvolvimento clássicos são:
– Modelo Cascata ou Waterfall
– Modelo Espiral
– Processo Unificado
– Extreme Programming
– Scrum
– Combinação de Scrum e Extreme
Programming
– Desenvolvimento orientado a teste
(Test Driven Development )
– Desenvolvimento orientado a
Modelo waterfall ou Cascata
• Orientado a risco
• Primeiras iterações com modelos
e protótipos de software
• Cada iteração são produzidos
versões com mais funcionalidades
• Cada iteração é realizado um
novo planejamento
• Permite absorver melhor as
mudanças de requisitos
Modelo Espiral
Processo unificado
• Desenvolvimento orientado a
objetos
• Processo iterativo e incremental
Extreme Programming
• Planejamento
– Conjunto de histórias escritas em
cartões
• Valor associado ao negócio
– Histórias são selecionadas para serem
desenvolvidas
• Projeto
– Criar representações simples das
histórias
• Desenvolvidas em cada interação
– Cada história deverá ter um teste de
aceitação pelo usuário
– Demonstrar que o comportamento
Extreme Programming
• Códificação
– Codifica-se os testes unitários para o
sistema
– Codificação em pares
– O código produzido pelos pares é
integrado ao código geral
• Integração contínua
– Incentiva a refatoração
• Aprimorar o código sem alterar a
funcionalidade
• Melhoria de desempenho
• Qualidade
• Manutenção
• Clareza
Extreme Programming
• Testes
– Realizar testes de aceitação com
os usuários
– Desenvolvimento do sistema é
medido por esses testes
Scrum
• Processo ágil
• Processo empírico
– Aplicado a qualquer tipo de
projeto que seja imprevisível
• Equipe deve possuir habilidades
para executar todas as fases do
projeto
Scrum
• Pilares
– Transparência
• Aspectos que afetam os resultados devem
ser visíveis
– Inspeção
• Aspectos devem ser inspecionados com
uma frequência considerável
– Adaptação
• Gerente deve poder adaptar o projeto a
mudanças
Scrum
• Papéis
– Srum Master
• Responsável por fazer o processo ser
compreendido e seguido
• Atualiza o projeto
• Estimativa e interação são importantes
para o projeto
– Product Owner
• Cliente
– Time
• Pessoas que executam a atividade
Scrum
• Produtos
– Product Backlog
• Requisitos do produto
– Burndown da Release
• Soma das estimativas de trabalhos
restantes
– Sprint Backlog
• Lista de tarefas que a equipe deve cumprir
para gerar o próximo incremento do
produto
– Burndown Script
• Gráfico com a quantidade de trabalho
Scrum
Desenvolvimento orientado a teste
• Processo de desenvolvimento
orientado a casos de Teste
• Identificam-se os cenários e
criam-se testes
• O código é criado para obter
sucesso nos testes
• O código é refatorado e testado
novamente
• Testes de aceitação são
utilizadas para verificar se o que
Desenvolvimento orientado a
características ou funcionalidades
• Processo iterativo e incremental
• Utiliza o paradigma de orientação a
objeto
• Funcionalidade
– Função do sistema que pode ser
implementada em duas semanas ou
menos
• A cada interação novas
características são estimadas
– Selecionadas e então desenvolvidas
• Implementar funcionalidades para
Classificação dos Modelos de Software
FIM
Perguntas
Perguntas