Es capítulo 3 - desenvolvimento ágil

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

description

ES - Desenvolvimento Ágil

Transcript of Es capítulo 3 - desenvolvimento ágil

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 XP8. Scrum

321 54

Um pouco de história

876

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

876

Métodos ágeis são métodos de desenvolvimento incremental em que os incrementos são pequenos.

321 54

Modelos de Processos ágeis

876

• Extreme Programming• Scrum• Desenvolvimento de Software Adaptativo

321 54

Princípios em comum

876

• Envolvimento do Cliente

• Entrega incremental

• Pessoas, não processos

• Aceitar as mudanças (priorizar)

• Manter a simplicidade

321 54

Problemas

876

• Concretizar os princípios básicos

• Documentação

• Continuidade da equipe

Desenvolvimento ágil e dirigido a planos

321 54 876

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 ?

Extreme Programming

321 54 876

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 comrequesitos vagos 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

Cliclo de uma release em XP

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 prontuário do pacientejá está sendo exibido em seu computador, assim, ela clicao campo “MEDICAÇÃO” e pode selecionar “MEDICAÇÃOATUAL”, ....

Exemplo de Cartão de estória

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 incremental a partir dos cenários

A equipe de desenvolvimento divide os cenários 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!!!!!

Scrum

321 54 876

Scrum

É uma metodología ágil geral, seu foco está no gerenciamento do desenvolvimento interativo.

Fases do Scrum

1ª Planegamento geral do projeto do progeto e arquitetura

2ª Cliclo de Sprint

3ª Encerramento do projeto

Planejamentogeral e projeto de

arquitetura

Avaliar Selecionar

DesenvolverRevisar

Encerramento do Projeto

Ciclo de Sprint

As principais características

1- Sprint possui comprimento fixode duas a quatro semanas

2- Backloglista de trabalho a ser feita

3- Envolvimento de toda a equipefase de seleção (recursos e funcionalidades)

As principais características

4 – Reuniões diáriasanalisar o progressps

5 – Scrum Master

Scrum Master

É um facilitador que organiza reuniõesControla o backlog

Obrigado!

Referências

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