Engenharia de
Software
Desenvolvimento ágil de
software
Felipe Cunha; Yugo Alencar
Tópicos 1. Um pouco de História
2. Conceito
3. Modelos de desenvolvimentos
4. Princípios
5. Problemas
6. Desenvolvimento ágil e dirigidos
a planos
7. Extreme Programming (XP)
7.1 Testes em XP
321 54
Um pouco de história
Na decada de 1980 e início de 1990 a visão era que
A melhor maneira de conseguir um software era por
Meio de um planejamento cuidadoso.
321 54
Conceito
Métodos ágeis são métodos de desenvolvimento
Incremental em que os incrementos são pequenos.
321 54
Modelos de Processos ágeis
• Extreme Programming
• Scrum
• Desenvolvimento de Software Adaptativo
321 54
Atividades do Processo de SW
321 54
Princípios em comum
• Envolvimento do Cliente
• Entrega incremental
• Pessoas, não processos
• Aceitar as mudanças
• Manter a simplicidade
321 54
Problemas
• Concretizar os princípios básicos
• Documentação
• Continuidade da equipe
321 54
Desenvolvimento ágil e dirigido a planos
6 7 8 10
Desenvolvimento ágil:
• Projeto e inplementação são fases centrais
• As interações ocorrem em todas as atividades
Dirigido a planos:
• Fases distintas
• A saída de uma fase é entrada de outra
Como identificar qual abordagem usar
1) É importante ter uma expecificação muito
detalhada antes de passar para a implementação
2) É valido uma estratégia incremental para um
feedback rápido.
3) Quão grande é o sistema ?
4) Que tipo de sistema está sendo desenvolvido
5) Qual o tempo de vida do sistema?
321 54
Extreme Programming
6 7 8 10
E uma metodologia ágil de desenvolvimento de
software criada por Kent Beck
A Extreme Programming é uma metodologia ágil
que se baseia no conceito de aplicar as best
practices a níveis extremos, o tempo todo
Usadas para equipes pequenas e projetos com
requesitosVagos e de grande mudanças
A codificação é a principal atividade
Selecionar estórias de
usuário para este
release
Divide estórias
em tarefas
Planejar Release
Desenvolver/integr
ar testar software
Liberar SoftwareAvaliar Sistema
Princípios
• Planejamento Incrementa
• Pequenas releases
• Projeto simples
• Desenvolvimento test-first
• Refatoração
• Programação em pares
• Integração contínua
• Ritmo sustentável
• Cliente no local
PRESCRIÇÃO DE MEDICAMENTOS
Kate é uma médica que deseja precrever medicamentos
para um paciente de uma clínica. O printuário do paciente
já está sendo exibido em seu computador, assim, ela clica
o campo “MEDICAÇÃO” e pode selecionar “MEDICAÇÃ O
ATUAL”, ....
Pricipais Caracteristicas Testes XP
• Desenvolvimento test-fist
• Desenvolvimento de testes incremental
apartis dos cenários
• Envolvimento dos usuários no
desenvolvimento de teste e validação
• Uso de frameworks de testes automatizados
Test-Fist
Os testes são escritos antes do código. Isso permite
executar o teste enquanto o código está sendo escríto
e pode encontrar problemas durante o
desenvolvimento
Evita problemas de test-lag
Desenvolvimento de testes incrementa apartis dos
cenários
A équipe de desenvolvimento divide os cenário em
tarefas
Cada tarefa gera um ou mais testes que vão verificar a
implementação descrita naquela tarefa.
Envolvimento dos usuários no desenvolvimento
de teste e validação
O cliente faz parte da equipe, escreve os testes
enquanto o desenvolvimento avança.
Portanto, todos os novos códigos são validados para
garantir que realmente é o que o cliente necessita.
Problema!!!!!
Obrigado!
Referências
Ian Sommerville. Engenharia de Software, 9a. Edição. 2011

Es capítulo 3 - desenvolvimento ágil

  • 1.
    Engenharia de Software Desenvolvimento ágilde software Felipe Cunha; Yugo Alencar
  • 2.
    Tópicos 1. Umpouco de História 2. Conceito 3. Modelos de desenvolvimentos 4. Princípios 5. Problemas 6. Desenvolvimento ágil e dirigidos a planos 7. Extreme Programming (XP) 7.1 Testes em XP
  • 3.
    321 54 Um poucode história
  • 4.
    Na decada de1980 e início de 1990 a visão era que A melhor maneira de conseguir um software era por Meio de um planejamento cuidadoso.
  • 5.
  • 6.
    Métodos ágeis sãométodos de desenvolvimento Incremental em que os incrementos são pequenos.
  • 7.
    321 54 Modelos deProcessos ágeis
  • 8.
    • Extreme Programming •Scrum • Desenvolvimento de Software Adaptativo
  • 9.
    321 54 Atividades doProcesso de SW
  • 10.
  • 11.
    • Envolvimento doCliente • Entrega incremental • Pessoas, não processos • Aceitar as mudanças • Manter a simplicidade
  • 12.
  • 13.
    • Concretizar osprincípios básicos • Documentação • Continuidade da equipe
  • 14.
    321 54 Desenvolvimento ágile dirigido a planos 6 7 8 10
  • 15.
    Desenvolvimento ágil: • Projetoe inplementação são fases centrais • As interações ocorrem em todas as atividades Dirigido a planos: • Fases distintas • A saída de uma fase é entrada de outra
  • 17.
    Como identificar qualabordagem usar 1) É importante ter uma expecificação muito detalhada antes de passar para a implementação 2) É valido uma estratégia incremental para um feedback rápido. 3) Quão grande é o sistema ? 4) Que tipo de sistema está sendo desenvolvido 5) Qual o tempo de vida do sistema?
  • 18.
  • 19.
    E uma metodologiaágil de desenvolvimento de software criada por Kent Beck A Extreme Programming é uma metodologia ágil que se baseia no conceito de aplicar as best practices a níveis extremos, o tempo todo
  • 20.
    Usadas para equipespequenas e projetos com requesitosVagos e de grande mudanças A codificação é a principal atividade
  • 21.
    Selecionar estórias de usuáriopara este release Divide estórias em tarefas Planejar Release Desenvolver/integr ar testar software Liberar SoftwareAvaliar Sistema
  • 22.
    Princípios • Planejamento Incrementa •Pequenas releases • Projeto simples • Desenvolvimento test-first • Refatoração • Programação em pares • Integração contínua • Ritmo sustentável • Cliente no local
  • 23.
    PRESCRIÇÃO DE MEDICAMENTOS Kateé uma médica que deseja precrever medicamentos para um paciente de uma clínica. O printuário do paciente já está sendo exibido em seu computador, assim, ela clica o campo “MEDICAÇÃO” e pode selecionar “MEDICAÇÃ O ATUAL”, ....
  • 24.
    Pricipais Caracteristicas TestesXP • Desenvolvimento test-fist • Desenvolvimento de testes incremental apartis dos cenários • Envolvimento dos usuários no desenvolvimento de teste e validação • Uso de frameworks de testes automatizados
  • 25.
    Test-Fist Os testes sãoescritos antes do código. Isso permite executar o teste enquanto o código está sendo escríto e pode encontrar problemas durante o desenvolvimento Evita problemas de test-lag
  • 26.
    Desenvolvimento de testesincrementa apartis dos cenários A équipe de desenvolvimento divide os cenário em tarefas Cada tarefa gera um ou mais testes que vão verificar a implementação descrita naquela tarefa.
  • 27.
    Envolvimento dos usuáriosno desenvolvimento de teste e validação O cliente faz parte da equipe, escreve os testes enquanto o desenvolvimento avança. Portanto, todos os novos códigos são validados para garantir que realmente é o que o cliente necessita. Problema!!!!!
  • 28.
  • 29.
    Referências Ian Sommerville. Engenhariade Software, 9a. Edição. 2011

Notas do Editor

  • #5 Qualidade de segurança, formalidade do uso de métodos de análise e projeto apoiado por ferramentas case.
  • #7 Essas versões são criadas e disponibilisadas a cada duas semanas Os clientes dão feedback rápido sobre os requisitos, diminuindo a documentação.
  • #18 Se sim, usar uma abordagem dirigida a planos. Se sim considere métodos ageis. Se sim, usar uma abordagem dirigida a planos. Se for complexo é melhor uma dirigida a planos. 5) Sistemas de vida longa exigem muita documentação,
  • #22 Os requisitos são expressos como senarios (cartão de estorias) Os programadores trabalham em pares e desenvolvem testes para cada tarefa antes de escrever o código. Ao integrar o novo código no sitema, todos os testes tem que serem executados com sucesso.
  • #23 REFATORAR implica em constantes melhorias no código.
  • #25 No desenvolvimento incremental, não há especificação do sistema que possa ser usada por uma equipe de teste externa para Desenvolvimento de testes. Para evitar problema de testes e validação do sistema a abordagem XP enfatiza a importância dos Testes no sistema.
  • #26 Test-lag ocorre quando o desenvolvedor do sistema trabalha em um ritmo maior que o do testador. A implementação fica mais à frente dos testes e desenvolve-se uma tendencia a ignorar os testes.
  • #28 Problema é contar com o apoio do cliente, no desenvolvimento de Testes de acitação, nem sempre os clientes tem tempo disponíveis.