Modulo I Introdução ao XP -...

28
1 April 05 Prof. Ismael H. F. Santos - [email protected] 1 Modulo I Introdução ao XP Prof. Ismael H F Santos April 05 Prof. Ismael H. F. Santos - [email protected] 2 Ementa Modulo VI – Xtreme Programming Valores e Princípios do XP Desenvolvimento centrado em Testes Continuous Integration JUnit, Maven, Code-cruiser

Transcript of Modulo I Introdução ao XP -...

Page 1: Modulo I Introdução ao XP - webserver2.tecgraf.puc-rio.brismael/Cursos/XJavaAnalise/aulas/1-XP/... · 1 April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 1 Modulo I

1

April 05 Prof. Ismael H. F. Santos - [email protected] 1

Modulo IIntrodução ao XP

Prof. Ismael H F Santos

April 05 Prof. Ismael H. F. Santos - [email protected] 2

Ementa

Modulo VI – Xtreme ProgrammingValores e Princípios do XPDesenvolvimento centrado em Testes

Continuous IntegrationJUnit, Maven, Code-cruiser

Page 2: Modulo I Introdução ao XP - webserver2.tecgraf.puc-rio.brismael/Cursos/XJavaAnalise/aulas/1-XP/... · 1 April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 1 Modulo I

2

April 05 Prof. Ismael H. F. Santos - [email protected] 3

Extreme ProgrammingVinicius Manhaes Teles, Novatec Editora

Bibliografia

April 05 Prof. Ismael H. F. Santos - [email protected] 4

IntroduçãoPOO-Java

Page 3: Modulo I Introdução ao XP - webserver2.tecgraf.puc-rio.brismael/Cursos/XJavaAnalise/aulas/1-XP/... · 1 April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 1 Modulo I

3

April 05 Prof. Ismael H. F. Santos - [email protected] 5

Orientação a Objetos

A Decepção da UMLAnálise essencial dizia o QUE fazer, COMO fazer e QUANDOQuando surge a UML, o mercado queria um substituto para a Análise EssencialUML é uma linguagem e não um processo. Ela fornece os elementos, mas não define QUANDO usarO mercado rejeitou a UML por não compreendê-laRUP, XP são processos que se utilizam da UML

April 05 Prof. Ismael H. F. Santos - [email protected] 6

Orientação a Objetos

UMLSTRUCTURAL VIEW

Classe Objetos

IMPLEMENTATION VIEWComponentes

BEHAVIORAL VIEW

SequênciaColaboração

EstadosAtividades

USER VIEWUse Case

ENVIRONMENT VIEW

Implantação

Page 4: Modulo I Introdução ao XP - webserver2.tecgraf.puc-rio.brismael/Cursos/XJavaAnalise/aulas/1-XP/... · 1 April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 1 Modulo I

4

April 05 Prof. Ismael H. F. Santos - [email protected] 7

Engenharia de Software

Pressman (1995) destaca que, ainda que várias definições tenham sido dadas à ES, todas reforçam a exigência da disciplina de engenharia no desenvolvimento de software. Abrange um conjunto de três elementos fundamentais:

métodos, ferramentas e procedimentos.

Desenvolvimento de Software é Ciência ou Arte?!?

April 05 Prof. Ismael H. F. Santos - [email protected] 8

Engenharia de Software

Os métodos detalham "como fazer" para se construir o software.

As ferramentas proporcionam apoio automatizado ou semi-automatizado aos métodos.

Os procedimentos constituem o elo de ligação que mantém juntos os métodos e suas ferramentas, e possibilita um processo de desenvolvimento claro, eficiente, visando garantir ao desenvolvedor e seus clientes a produção de um software de qualidade.

Page 5: Modulo I Introdução ao XP - webserver2.tecgraf.puc-rio.brismael/Cursos/XJavaAnalise/aulas/1-XP/... · 1 April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 1 Modulo I

5

April 05 Prof. Ismael H. F. Santos - [email protected] 9

Engenharia de Software

RUP - Rational Unified Process

April 05 Prof. Ismael H. F. Santos - [email protected] 10

Engenharia de Software

XP Simplicidade, Comunicação, Feedback e Coragem

“Estamos evidenciando maneiras melhores de desenvolver software fazendo-o nós mesmos e ajudando outros a fazê-lo. Através desse trabalho, passamos a valorizar:

Indivíduos e interação MAIS QUE processos e ferramentas;Software em funcionamento MAIS QUE documentação abrangente;Colaboração com o cliente MAIS QUE negociação de contratos;Responder a mudanças MAIS QUE seguir um plano.

Ou seja, mesmo tendo valor os itens à direita, valorizamos mais os itens à esquerda.”

Page 6: Modulo I Introdução ao XP - webserver2.tecgraf.puc-rio.brismael/Cursos/XJavaAnalise/aulas/1-XP/... · 1 April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 1 Modulo I

6

April 05 Prof. Ismael H. F. Santos - [email protected] 11

Engenharia de Software

XP Prevê a Participação intensa do usuário como membro efetivo da equipe;

Ciclos muito curtos – uma, duas semanas para dar retorno concreto;

Testes, Testes, Refactoring e TestesFaça o essencial para resolver o seu problema

Documente Sim! O que realmente for feitoMuito Interessante para Projetos Pequenos e Médios

April 05 Prof. Ismael H. F. Santos - [email protected] 12

Engenharia de Software

RUP ou XP?Existem aspectos positivos e negativos em cada uma das abordagens;Nem todos os contratos podem ser feitos na base da “camaradagem”Não pense duas vezes: Teste Duas Vezes!!!Será que você realmente tem que pagar uma fortuna por uma ferramenta?A Documentação deve ser feita e faz parte do Produto

final! Não vamos retroceder...Procure usar documentos padronizadosCuidado com aspectos Religiosos

Page 7: Modulo I Introdução ao XP - webserver2.tecgraf.puc-rio.brismael/Cursos/XJavaAnalise/aulas/1-XP/... · 1 April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 1 Modulo I

7

April 05 Prof. Ismael H. F. Santos - [email protected] 13

Engenharia de Software

Qual é a nossa missão?Desenvolver Software:

Atendendo a todas as necessidades de todos os envolvidosCom o nível de qualidade esperado por nossos clientesDentro do PrazoDentro do Orçamento

April 05 Prof. Ismael H. F. Santos - [email protected] 14

Engenharia de Software

Diamante Mágico

Escopo

Custo

Qualidade

Prazo

Page 8: Modulo I Introdução ao XP - webserver2.tecgraf.puc-rio.brismael/Cursos/XJavaAnalise/aulas/1-XP/... · 1 April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 1 Modulo I

8

April 05 Prof. Ismael H. F. Santos - [email protected] 15

Engenharia de Software

O Refinamento...

...Deve ser tanto...

...Quanto você precise!!

April 05 Prof. Ismael H. F. Santos - [email protected] 16

IntroduçãoPOO-Java

Page 9: Modulo I Introdução ao XP - webserver2.tecgraf.puc-rio.brismael/Cursos/XJavaAnalise/aulas/1-XP/... · 1 April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 1 Modulo I

9

April 05 Prof. Ismael H. F. Santos - [email protected] 17

O que é XP?

Processo de desenvolvimento de softwareProjetos com requisitos muito voláteisEquipes pequenas (até ~10 pessoas)Desenvolvimento incremental

April 05 Prof. Ismael H. F. Santos - [email protected] 18

Premissa do desenvolvimento ágil

APRENDIZADOO cliente aprende durante o desenvolvimentoDescobre novas possibilidadesMuda as prioridadesSistema deve acompanhar o aprendizado

FEEDBACKDESENVOLVIMENTO ITERATIVO

Page 10: Modulo I Introdução ao XP - webserver2.tecgraf.puc-rio.brismael/Cursos/XJavaAnalise/aulas/1-XP/... · 1 April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 1 Modulo I

10

April 05 Prof. Ismael H. F. Santos - [email protected] 19

AprendizadoO cliente aprende durante o desenvolvimentoDescobre novas possibilidadesMuda as prioridadesSistema deve acompanhar o aprendizado

April 05 Prof. Ismael H. F. Santos - [email protected] 20

Valores ePrincípios XP

POO-Java

Page 11: Modulo I Introdução ao XP - webserver2.tecgraf.puc-rio.brismael/Cursos/XJavaAnalise/aulas/1-XP/... · 1 April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 1 Modulo I

11

April 05 Prof. Ismael H. F. Santos - [email protected] 21

Valores do XP

FeedbackComunicaçãoSimplicidadeCoragem

April 05 Prof. Ismael H. F. Santos - [email protected] 22

User Stories

Funcionalidades são informadas através de user storiesEstórias devem ser simplesDesenvolvedores estimam tempo

Page 12: Modulo I Introdução ao XP - webserver2.tecgraf.puc-rio.brismael/Cursos/XJavaAnalise/aulas/1-XP/... · 1 April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 1 Modulo I

12

April 05 Prof. Ismael H. F. Santos - [email protected] 23

Planejamento

De posse das estimativas, épossível priorizarCliente entrega as estórias priorizadas para serem implementadasDesenvolvedores respeitam as prioridades dos clientesProjeto é dividido em partes: releases e iterações

April 05 Prof. Ismael H. F. Santos - [email protected] 24

Release e Iteração

R1 R2 R3 R4

I1

S1

8 Sem.

I2 I3 I4

2 Sem.

1 Sem.

S2

Projeto: 8 meses = 32 semanas

Page 13: Modulo I Introdução ao XP - webserver2.tecgraf.puc-rio.brismael/Cursos/XJavaAnalise/aulas/1-XP/... · 1 April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 1 Modulo I

13

April 05 Prof. Ismael H. F. Santos - [email protected] 25

Release Planning

Cliente recebe um “orçamento” dos desenvolvedoresSeleciona as estórias prioritárias que possam ser implementadas dentro do orçamentoPode trocar estórias durante o release

R1 R2 R3 R4

8 Sem.

April 05 Prof. Ismael H. F. Santos - [email protected] 26

Iteration Planning

Cliente recebe um “orçamento”Não pode haver troca de funcionalidades durante uma iteraçãoVelocidade: quantidade de estórias que a equipe consegue implementar em uma iteração

I1 I2 I3 I4

2 Sem.

Page 14: Modulo I Introdução ao XP - webserver2.tecgraf.puc-rio.brismael/Cursos/XJavaAnalise/aulas/1-XP/... · 1 April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 1 Modulo I

14

April 05 Prof. Ismael H. F. Santos - [email protected] 27

Stand-up meeting

Reunião rápidaDiáriaUsada para atualização da equipe

April 05 Prof. Ismael H. F. Santos - [email protected] 28

Desenvolvimento: orientação a objetos

Sistema é composto por pequenas peçasPeças têm objetivos específicosFacilita construçãoFacilita evolução

Page 15: Modulo I Introdução ao XP - webserver2.tecgraf.puc-rio.brismael/Cursos/XJavaAnalise/aulas/1-XP/... · 1 April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 1 Modulo I

15

April 05 Prof. Ismael H. F. Santos - [email protected] 29

Pair Programming

Todo código é escrito em parDuas pessoas trabalham em um único computadorUma digita, enquanto a outra revisa, corrige e sugere

April 05 Prof. Ismael H. F. Santos - [email protected] 30

Collective code ownership

Todos são responsáveis por todas as partes do sistemaCódigo tem que estar sempre “limpo”Todos são capazes de modificá-lo

Page 16: Modulo I Introdução ao XP - webserver2.tecgraf.puc-rio.brismael/Cursos/XJavaAnalise/aulas/1-XP/... · 1 April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 1 Modulo I

16

April 05 Prof. Ismael H. F. Santos - [email protected] 31

Refactoring

Melhorar o código permanentementeAlterações na implementação sem afetar a interface

April 05 Prof. Ismael H. F. Santos - [email protected] 32

Buscando bugs

Sistemas podem ter defeitosÉ difícil descobrir qual é a peça defeituosaÉ mais fácil se o problema for detectado logo após a concepção da peça

Page 17: Modulo I Introdução ao XP - webserver2.tecgraf.puc-rio.brismael/Cursos/XJavaAnalise/aulas/1-XP/... · 1 April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 1 Modulo I

17

April 05 Prof. Ismael H. F. Santos - [email protected] 33

Unit Test

Teste feito sobre cada classeCada classe possui um unit test associado a elaTestes são automatizadosQuando uma nova classe entra no sistema, todos os testes são executados

April 05 Prof. Ismael H. F. Santos - [email protected] 34

Page 18: Modulo I Introdução ao XP - webserver2.tecgraf.puc-rio.brismael/Cursos/XJavaAnalise/aulas/1-XP/... · 1 April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 1 Modulo I

18

April 05 Prof. Ismael H. F. Santos - [email protected] 35

April 05 Prof. Ismael H. F. Santos - [email protected] 36

Desenvolvimento em equipeComo conciliar diversos desenvolvedores?Estrutura de diretóriosAtualização do código por várias pessoas diferentes

Page 19: Modulo I Introdução ao XP - webserver2.tecgraf.puc-rio.brismael/Cursos/XJavaAnalise/aulas/1-XP/... · 1 April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 1 Modulo I

19

April 05 Prof. Ismael H. F. Santos - [email protected] 37

Repositório

April 05 Prof. Ismael H. F. Santos - [email protected] 38

CVS

Page 20: Modulo I Introdução ao XP - webserver2.tecgraf.puc-rio.brismael/Cursos/XJavaAnalise/aulas/1-XP/... · 1 April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 1 Modulo I

20

April 05 Prof. Ismael H. F. Santos - [email protected] 39

CVS

April 05 Prof. Ismael H. F. Santos - [email protected] 40

jCVS

Page 21: Modulo I Introdução ao XP - webserver2.tecgraf.puc-rio.brismael/Cursos/XJavaAnalise/aulas/1-XP/... · 1 April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 1 Modulo I

21

April 05 Prof. Ismael H. F. Santos - [email protected] 41

CVS – Principais conceitosCheck outAddCommitUpdateConflictRemove

April 05 Prof. Ismael H. F. Santos - [email protected] 42

jCVS

Page 22: Modulo I Introdução ao XP - webserver2.tecgraf.puc-rio.brismael/Cursos/XJavaAnalise/aulas/1-XP/... · 1 April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 1 Modulo I

22

April 05 Prof. Ismael H. F. Santos - [email protected] 43

Integração contínuaMáquina destacada para a integraçãoIntegração ocorre diversas vezes ao diaOs testes são executados em cada integraçãoCorreções são feitas imediatamente

April 05 Prof. Ismael H. F. Santos - [email protected] 44

Ambientes para deployment

Como lidar com diferentes ambientes?Exemplo:

DesenvolvimentoAceitaçãoProdução

Page 23: Modulo I Introdução ao XP - webserver2.tecgraf.puc-rio.brismael/Cursos/XJavaAnalise/aulas/1-XP/... · 1 April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 1 Modulo I

23

April 05 Prof. Ismael H. F. Santos - [email protected] 45

Ambientes para deployment

Desenvolvimento

Aceitação

Produção

April 05 Prof. Ismael H. F. Santos - [email protected] 46

Problemas de ter vários ambientes

Possíveis erros devido a tarefas manuais repetitivasGasto de tempo

Page 24: Modulo I Introdução ao XP - webserver2.tecgraf.puc-rio.brismael/Cursos/XJavaAnalise/aulas/1-XP/... · 1 April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 1 Modulo I

24

April 05 Prof. Ismael H. F. Santos - [email protected] 47

Automatização do deployment

Agiliza as integraçõesEvita erros

April 05 Prof. Ismael H. F. Santos - [email protected] 48

Ant

Page 25: Modulo I Introdução ao XP - webserver2.tecgraf.puc-rio.brismael/Cursos/XJavaAnalise/aulas/1-XP/... · 1 April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 1 Modulo I

25

April 05 Prof. Ismael H. F. Santos - [email protected] 49

Exemplo simples<project name="projeto" default="desenvolvimento">

<target name="desenvolvimento"><mkdir dir="build"/><javac srcdir="src" destdir="build"/><junit>

<test name="test.SystemTester"/></junit>

</target>

</project>

targ

et

tasks

April 05 Prof. Ismael H. F. Santos - [email protected] 50

Ambiente de Desenvolvimento

Desejável que tenha:Code completionValidação on-lineSuporte à depuraçãoSuporte a refactoringIntegração com jUnitIntegração com CVSIntegração com Ant

Page 26: Modulo I Introdução ao XP - webserver2.tecgraf.puc-rio.brismael/Cursos/XJavaAnalise/aulas/1-XP/... · 1 April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 1 Modulo I

26

April 05 Prof. Ismael H. F. Santos - [email protected] 51

Exemplos

April 05 Prof. Ismael H. F. Santos - [email protected] 52

Importância da IDE para o XP

Ganho de tempoAutomaçãoFacilidade de usoVerificação permanente do código

Page 27: Modulo I Introdução ao XP - webserver2.tecgraf.puc-rio.brismael/Cursos/XJavaAnalise/aulas/1-XP/... · 1 April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 1 Modulo I

27

April 05 Prof. Ismael H. F. Santos - [email protected] 53

Importância da IDE para o XP

April 05 Prof. Ismael H. F. Santos - [email protected] 54

XP no Brasil

2000: algumas práticas começam a ser usadas em projetos no SulDez/2002: primeiro XP BrasilJan/2003: fundação do XP RioFev/2003: projeto full-XP em uma grande empresa brasileira (em andamento)Set/2003: lançamento previsto do primeiro livro brasileiro sobre XP

Page 28: Modulo I Introdução ao XP - webserver2.tecgraf.puc-rio.brismael/Cursos/XJavaAnalise/aulas/1-XP/... · 1 April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 1 Modulo I

28

April 05 Prof. Ismael H. F. Santos - [email protected] 55

Referências sobre XP

Site Xispêhttp://www.xispe.com.brXP Riohttp://www.yahoogroups.com/groups/xprioLista Xpershttp://www.yahoogroups.com/groups/xpers

April 05 Prof. Ismael H. F. Santos - [email protected] 56

Referências sobre as ferramentas

jUnithttp://www.junit.orgCVShttp://www.cvshome.orgAnthttp://ant.apache.orgIntelliJhttp://www.intellij.com