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

Post on 30-Aug-2019

3 views 0 download

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

1

April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 1

Modulo IIntrodução ao XP

Prof. Ismael H F Santos

April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 2

Ementa

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

Continuous IntegrationJUnit, Maven, Code-cruiser

2

April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 3

Extreme ProgrammingVinicius Manhaes Teles, Novatec Editora

Bibliografia

April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 4

IntroduçãoPOO-Java

3

April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 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 - ismael@tecgraf.puc-rio.br 6

Orientação a Objetos

UMLSTRUCTURAL VIEW

Classe Objetos

IMPLEMENTATION VIEWComponentes

BEHAVIORAL VIEW

SequênciaColaboração

EstadosAtividades

USER VIEWUse Case

ENVIRONMENT VIEW

Implantação

4

April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 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 - ismael@tecgraf.puc-rio.br 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.

5

April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 9

Engenharia de Software

RUP - Rational Unified Process

April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 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.”

6

April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 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 - ismael@tecgraf.puc-rio.br 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

7

April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 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 - ismael@tecgraf.puc-rio.br 14

Engenharia de Software

Diamante Mágico

Escopo

Custo

Qualidade

Prazo

8

April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 15

Engenharia de Software

O Refinamento...

...Deve ser tanto...

...Quanto você precise!!

April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 16

IntroduçãoPOO-Java

9

April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 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 - ismael@tecgraf.puc-rio.br 18

Premissa do desenvolvimento ágil

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

FEEDBACKDESENVOLVIMENTO ITERATIVO

10

April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 19

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

April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 20

Valores ePrincípios XP

POO-Java

11

April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 21

Valores do XP

FeedbackComunicaçãoSimplicidadeCoragem

April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 22

User Stories

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

12

April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 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 - ismael@tecgraf.puc-rio.br 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

13

April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 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 - ismael@tecgraf.puc-rio.br 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.

14

April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 27

Stand-up meeting

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

April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 28

Desenvolvimento: orientação a objetos

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

15

April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 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 - ismael@tecgraf.puc-rio.br 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

16

April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 31

Refactoring

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

April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 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

17

April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 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 - ismael@tecgraf.puc-rio.br 34

18

April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 35

April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 36

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

19

April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 37

Repositório

April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 38

CVS

20

April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 39

CVS

April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 40

jCVS

21

April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 41

CVS – Principais conceitosCheck outAddCommitUpdateConflictRemove

April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 42

jCVS

22

April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 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 - ismael@tecgraf.puc-rio.br 44

Ambientes para deployment

Como lidar com diferentes ambientes?Exemplo:

DesenvolvimentoAceitaçãoProdução

23

April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 45

Ambientes para deployment

Desenvolvimento

Aceitação

Produção

April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 46

Problemas de ter vários ambientes

Possíveis erros devido a tarefas manuais repetitivasGasto de tempo

24

April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 47

Automatização do deployment

Agiliza as integraçõesEvita erros

April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 48

Ant

25

April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 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 - ismael@tecgraf.puc-rio.br 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

26

April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 51

Exemplos

April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 52

Importância da IDE para o XP

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

27

April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 53

Importância da IDE para o XP

April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 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

28

April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 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 - ismael@tecgraf.puc-rio.br 56

Referências sobre as ferramentas

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