Curso de Introdução a Engenharia de Software - CJR/UnB - Aula 6

17
Introdução a Engenharia de Software CJR – Empresa Júnior de Computação

Transcript of Curso de Introdução a Engenharia de Software - CJR/UnB - Aula 6

Page 1: Curso de Introdução a Engenharia de Software - CJR/UnB - Aula 6

Introdução a Engenharia de

SoftwareCJR – Empresa Júnior de Computação

Page 2: Curso de Introdução a Engenharia de Software - CJR/UnB - Aula 6

Extreme Programming6

Page 3: Curso de Introdução a Engenharia de Software - CJR/UnB - Aula 6

1 História

• O “ágil”• Requisitos

• Tecnologia• Pessoas

Habilidade de se mover prontamente com rapidez e facilidade

Mudança constante de requisitos nos projetos, ambiente empresarial (Web) eProcessos organizacionais

Ferramentas e plataformas usadas já não atendiam as necessidades

Comportamento individual é imprevisível e as interações de projeto ficam cadavez mais complexas

Page 4: Curso de Introdução a Engenharia de Software - CJR/UnB - Aula 6

1 História

Kent Beck, 1999 e 2004

Page 5: Curso de Introdução a Engenharia de Software - CJR/UnB - Aula 6

2 O núcleo

Valores PráticasPrincípios

Page 6: Curso de Introdução a Engenharia de Software - CJR/UnB - Aula 6

3 Valores

• Comunicação• Simplicidade• Feedback• Coragem• Respeito

Documentação x Informação para toda equipe, prioriza o oral

Começar desenvolvendo aquilo que é necessário para hoje

Do sistema (testes), do cliente (validação), dos desenvolvedores

Implementar o hoje. Refatorar depois se preciso ou até mesmo jogar o código fora

Respeite a todos (incluindo você mesmo) e não dê commit com código com bug!

Page 7: Curso de Introdução a Engenharia de Software - CJR/UnB - Aula 6

4 Princípios

• Feedback rápido• Presumir simplicidade• Mudanças incrementais• Abraçar mudanças• Trabalho de alta qualidade.

Cliente junto, testes de unidade, quanto mais rápido melhor o feedback!

Não adianta prever o futuro. Faça o hoje apenas.

Mudaram os requisitos? OK!

Page 8: Curso de Introdução a Engenharia de Software - CJR/UnB - Aula 6

5 Práticas

12 práticas, 4 grandes grupos

Page 9: Curso de Introdução a Engenharia de Software - CJR/UnB - Aula 6

5 Práticas12 práticas, 4 grandes grupos

Fine scale feedback Continuous process Shared understanding Programmer welfare

Programação Pareada Integração Contínua Padrões de Programação Passos Sustentáveis

Jogo de Planejamento Refatoração Propriedade Coletiva

Desenvolvimento Orientado a Testes

Pequenas Entregas Design Simples

Time Coeso Metáforas de Sistema

Page 10: Curso de Introdução a Engenharia de Software - CJR/UnB - Aula 6

5 Regras

Planejamento

Gerência

Projetando“Codando”

Testes

Page 11: Curso de Introdução a Engenharia de Software - CJR/UnB - Aula 6

Planejamento

Gerência

Projetando“Codando”

Testes

5 Regras

• Divida em iterações• Pense em pequenas e frequentes entregas• Escreva histórias de usuário• Planejamento de uma iteração começa

apenas quando ela começa

Page 12: Curso de Introdução a Engenharia de Software - CJR/UnB - Aula 6

Planejamento

Gerência

Projetando“Codando”

Testes

5 Regras

• Reuniões diárias em pé• Defina o tempo da equipe• Meça a velocidade do andamento• Troque as tarefas das pessoas• Corrija o XP quando ele não funciona

Page 13: Curso de Introdução a Engenharia de Software - CJR/UnB - Aula 6

Planejamento

Gerência

Projetando“Codando”

Testes

5 Regras

• Faça simples• Escolha uma metáfora• Utilize os cartões CRC• Não coloque funcionalidades antes do tempo• Refatore!

Page 14: Curso de Introdução a Engenharia de Software - CJR/UnB - Aula 6

Planejamento

Gerência

Projetando“Codando”

Testes

5 Regras

• O cliente deve sempre estar disponível• Utilize os padrões• Crie o teste de unidade antes• Sempre programe em duplas• Apenas uma dupla integra por vez• Lembre-se que o código é de todo mundo

Page 15: Curso de Introdução a Engenharia de Software - CJR/UnB - Aula 6

Planejamento

Gerência

Projetando“Codando”

Testes

5 Regras

• Todo código deve ter seu teste de unidade

• Todo código deve passar nos testes antes de ser entregue

Page 16: Curso de Introdução a Engenharia de Software - CJR/UnB - Aula 6

Bibliografiahttp://www.extremeprogramming.org/rules.html

http://www.extremeprogramming.org/map/project.html

http://en.wikipedia.org/wiki/Extreme_programming

Page 17: Curso de Introdução a Engenharia de Software - CJR/UnB - Aula 6

Renato Leal

[email protected]

[email protected]

CJREmpresa Júnior de Computação da UnB

[email protected]

[email protected]