29
Engenharia de Software Desenvolvimento ágil de software Felipe Cunha; Yugo Alencar

Es capítulo 3 - desenvolvimento ágil

Embed Size (px)

DESCRIPTION

Engenharia de Software

Citation preview

Engenharia de Software

Desenvolvimento ágil de softwareFelipe Cunha; Yugo Alencar

Tópicos 1. Um pouco de História2. Conceito3. Modelos de desenvolvimentos4. Princípios5. Problemas6. Desenvolvimento ágil e dirigidos

a planos7. 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 queA melhor maneira de conseguir um software era porMeio 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 muitodetalhada antes de passar para a implementação

2) É valido uma estratégia incremental para umfeedback 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 desoftware criada por Kent Beck

A Extreme Programming é uma metodologia ágilque se baseia no conceito de aplicar as bestpractices a níveis extremos, o tempo todo

Usadas para equipes pequenas e projetos comrequesitosVagos 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/integrar 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 medicamentospara um paciente de uma clínica. O printuário do pacientejá está sendo exibido em seu computador, assim, ela clicao campo “MEDICAÇÃO” e pode selecionar “MEDICAÇÃ OATUAL”, ....

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 permiteexecutar o teste enquanto o código está sendo escrítoe pode encontrar problemas durante odesenvolvimento

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 paragarantir que realmente é o que o cliente necessita.

Problema!!!!!

Obrigado!

Referências

Ian Sommerville. Engenharia de Software, 9a. Edição. 2011