instituto federal de educaÇÃo ciÊncia e …dai.ifma.edu.br/~mlcsilva/aulasprogext/aula...

34
- 31 INSTITUTO FEDERAL DE EDUCAÇÃO CIÊNCIA E TECNOLOGIA DO MARANHÃO – IFMA INSTITUTO FEDERAL DE EDUCAÇÃO CIÊNCIA E TECNOLOGIA DO MARANHÃO – IFMA - 34 Programação Extrema – Prof. Mauro Lopes Prof. Mauro Lopes Programação Extrema 1 Extreme Programming: Valores e Práticas Programação Extrema – Prof. Mauro Lopes

Upload: donhi

Post on 14-Nov-2018

212 views

Category:

Documents


0 download

TRANSCRIPT

- 31

INSTITUTO FEDERAL DE EDUCAÇÃO CIÊNCIA E TECNOLOGIA DO MARANHÃO – IFMAINSTITUTO FEDERAL DE EDUCAÇÃO CIÊNCIA E TECNOLOGIA DO MARANHÃO – IFMA

- 34Programação Extrema – Prof. Mauro Lopes

Prof. Mauro Lopes

Programação Extrema

1

Extreme Programming:Valores e Práticas

Programação Extrema – Prof. Mauro Lopes

34

INSTITUTO FEDERAL DE EDUCAÇÃO CIÊNCIA E TECNOLOGIA DO MARANHÃO – IFMA

-Programação Extrema – Prof. Mauro Lopes

Objetivos

• Anteriormente trabalhamos os conceitos do Desenvolvimento Tradicional e do Desenvolvimento Ágil. Trouxemos o manifesto ágil às claras e apresentamos duas metodologias ágeis, o XP (Extreme Programming) e o Scrum. Agora iremos trabalhar dois conceitos (valores e práticas) que são pilares fundamentais da metodologia XP, objeto de estudo do nosso curso. Após esta aula o aluno terácondições de observar com maior propriedade a metodologia XP.

2Programação Extrema – Prof. Mauro Lopes

34

INSTITUTO FEDERAL DE EDUCAÇÃO CIÊNCIA E TECNOLOGIA DO MARANHÃO – IFMA

-Programação Extrema – Prof. Mauro Lopes

Plano de Aula

• Extreme Programming: revendo conceitos

• Valores do XP

• Práticas do XP

3Programação Extrema – Prof. Mauro Lopes

34

INSTITUTO FEDERAL DE EDUCAÇÃO CIÊNCIA E TECNOLOGIA DO MARANHÃO – IFMA

-Programação Extrema – Prof. Mauro Lopes

Extreme Programming: revendo conceitos

• O Extreme Programming, ou XP, é um processo de desenvolvimento de software voltado para:– Projetos cujos requisitos são vagos e mudam com freqüência;

– Desenvolvimento de sistemas orientados a objeto;

– Equipes pequenas, preferencialmente até 12 desenvolvedores;

– Desenvolvimento incremental (ou iterativo), onde o sistema

começa a ser implementado logo no início do projeto e vai

ganhando novas funcionalidades ao longo do tempo;

4Programação Extrema – Prof. Mauro Lopes

O XP é um processo que busca assegurar que o cliente receba o máximo de valor de cada dia de trabalho da equipe de desenvolvimento.

34

INSTITUTO FEDERAL DE EDUCAÇÃO CIÊNCIA E TECNOLOGIA DO MARANHÃO – IFMA

-Programação Extrema – Prof. Mauro Lopes

Extreme Programming: revendo conceitos

• O Extreme Programming, ou XP, é organizado em torno de um conjunto de valores e práticas que atuam de forma harmônica e coesa para assegurar que o cliente sempre receba um alto retorno do investimento em software.

• Apresentaremos agora de forma resumida este conjunto de Valores e Práticas;

5Programação Extrema – Prof. Mauro Lopes

34

INSTITUTO FEDERAL DE EDUCAÇÃO CIÊNCIA E TECNOLOGIA DO MARANHÃO – IFMA

-Programação Extrema – Prof. Mauro Lopes

Valores do XP

• O Extreme Programming, ou XP, se baseia em quatros valores fundamentais:– FeedBack

– Comunicação

– Simplicidade

– Coragem

6Programação Extrema – Prof. Mauro Lopes

34

INSTITUTO FEDERAL DE EDUCAÇÃO CIÊNCIA E TECNOLOGIA DO MARANHÃO – IFMA

-Programação Extrema – Prof. Mauro Lopes

Valores do XP:FeedBack

• “Quando o cliente aprende com o sistema que utiliza e re-avalia as suas necessidades, ele gera feedback para a equipe de desenvolvimento.”

7Programação Extrema – Prof. Mauro Lopes

Usuário pilotando o sistema apresentado pela equipe, para dar feedback ao cliente. (Case Encceja)Imagem obtida de: http://visaoagil.wordpress.com/2008/10/14/projeto-agil-de-nivel-nacional-e-no-governo-o-case-encceja/

Feedback: mecanismo fundamental para condução diária do projeto pelo cliente. Equipe focada naquilo que gera valor para o cliente.

34

INSTITUTO FEDERAL DE EDUCAÇÃO CIÊNCIA E TECNOLOGIA DO MARANHÃO – IFMA

-Programação Extrema – Prof. Mauro Lopes

Valores do XP:Comunicação

• “A comunicação entre o cliente e a equipe permite que todos os detalhes do projeto sejam tratados com a atenção e a agilidade que merecem.”

8Programação Extrema – Prof. Mauro Lopes

Exemplo de alguns termos usados no Scrum (outra metodologia ágil), e que são de conhecimento do cliente

Uma série de termos são usados no desenvolvimento ágil. Écriado um vocabulário que o cliente possa usar, entender e discutir.

34

INSTITUTO FEDERAL DE EDUCAÇÃO CIÊNCIA E TECNOLOGIA DO MARANHÃO – IFMA

-Programação Extrema – Prof. Mauro Lopes

Valores do XP:Simplicidade

• “É necessário que a equipe compreenda e utilize o valor da simplicidade, que nos ensina a implementar apenas aquilo que é suficiente para atender a cada necessidade do cliente.”

9Programação Extrema – Prof. Mauro Lopes

Imagine que o seu cliente “quer apenas usar o telefone para ligar”

Evite especular sobre as necessidades dos clientes. Ganhamos mais tempo implementando as funcionalidades de hoje.

Solução 1 Solução 2

34

INSTITUTO FEDERAL DE EDUCAÇÃO CIÊNCIA E TECNOLOGIA DO MARANHÃO – IFMA

-Programação Extrema – Prof. Mauro Lopes

Valores do XP:Coragem

• “A equipe precisa ser corajosa e acreditar que, utilizando as práticas e valores do XP, será capaz de fazer o software evoluir com segurança e agilidade.”

10Programação Extrema – Prof. Mauro Lopes

Entender o XP éfundamental para usá-la.

34

INSTITUTO FEDERAL DE EDUCAÇÃO CIÊNCIA E TECNOLOGIA DO MARANHÃO – IFMA

-Programação Extrema – Prof. Mauro Lopes

Práticas do XP• O XP se baseia nas seguintes práticas:

– Cliente Presente

– Jogo do Planejamento

– Stand Up Meeting

– Programação em Par

– Desenvolvimento guiado pelos testes

– Refatoração

– Código Coletivo

– Código Padronizado

– Design Simples

– Metáfora

– Ritmo Sustentável

– Integração Contínua

– Releases Curtos;

11Programação Extrema – Prof. Mauro Lopes

34

INSTITUTO FEDERAL DE EDUCAÇÃO CIÊNCIA E TECNOLOGIA DO MARANHÃO – IFMA

-Programação Extrema – Prof. Mauro Lopes

Práticas do XP: Cliente Presente

• O XP trabalha com a premissa de que o cliente deve conduzir o desenvolvimento a partir do feedback que recebe do sistema;

• A presença do cliente viabiliza a simplicidade do processo em diversos aspectos, especialmente na comunicação;

12Programação Extrema – Prof. Mauro Lopes

34

INSTITUTO FEDERAL DE EDUCAÇÃO CIÊNCIA E TECNOLOGIA DO MARANHÃO – IFMA

-Programação Extrema – Prof. Mauro Lopes

Práticas do XP: Cliente Presente

• Atividade para a próxima Aula:– Faça uma pesquisa sobre as “estórias do usuário” usadas no XP. Verifique

se existe algum padrão e compare com as outras formas de levantar

informações (requisitos) de outras metodologias.

13Programação Extrema – Prof. Mauro Lopes

34

INSTITUTO FEDERAL DE EDUCAÇÃO CIÊNCIA E TECNOLOGIA DO MARANHÃO – IFMA

-Programação Extrema – Prof. Mauro Lopes

Práticas do XP: Jogo do Planejamento

• Todo o projeto em XP é dividido em releases(entregas) e iterações;

• No início de cada release e de cada iteração ocorre o Jogo do Planejamento;

• O Jogo do Planejamento é uma reunião onde o cliente avalia as funcionalidades que devem ser implementadas e prioriza aquelas que farão parte da próxima release ou da próxima iteração;

• No XP as funcionalidades são descritas em pequenos cartões e são chamadas de estórias;

14Programação Extrema – Prof. Mauro Lopes

34

INSTITUTO FEDERAL DE EDUCAÇÃO CIÊNCIA E TECNOLOGIA DO MARANHÃO – IFMA

-Programação Extrema – Prof. Mauro Lopes

Práticas do XP: Jogo do Planejamento

15Programação Extrema – Prof. Mauro Lopes

Estórias

34

INSTITUTO FEDERAL DE EDUCAÇÃO CIÊNCIA E TECNOLOGIA DO MARANHÃO – IFMA

-Programação Extrema – Prof. Mauro Lopes

Práticas do XP: Jogo do Planejamento

16Programação Extrema – Prof. Mauro Lopes

34

INSTITUTO FEDERAL DE EDUCAÇÃO CIÊNCIA E TECNOLOGIA DO MARANHÃO – IFMA

-Programação Extrema – Prof. Mauro Lopes

Práticas do XP: Jogo do Planejamento

• Atividade para a próxima Aula:– Faça uma pesquisa sobre o Jogo do Planejamento. Como ele é organizado

no XP. Há algum padrão ? O que significa velocidade e pontos ?

17Programação Extrema – Prof. Mauro Lopes

34

INSTITUTO FEDERAL DE EDUCAÇÃO CIÊNCIA E TECNOLOGIA DO MARANHÃO – IFMA

-Programação Extrema – Prof. Mauro Lopes

Práticas do XP: Stand Up Meeting

• No XP a equipe de desenvolvimento se reúne a cada manhã para avaliar o trabalho que foi executado no dia anterior e priorizar aquilo que será implementado;

18Programação Extrema – Prof. Mauro Lopes

34

INSTITUTO FEDERAL DE EDUCAÇÃO CIÊNCIA E TECNOLOGIA DO MARANHÃO – IFMA

-Programação Extrema – Prof. Mauro Lopes

Práticas do XP: Programação em Par• No XP os programadores implementam as funcionalidades

em pares. Esta Prática permite que o código seja revisado permanentemente, enquanto é construído. A Prática também tem o objetivo de trazer soluções mais simples e eficaz, pois os programadores se complementam;

19Programação Extrema – Prof. Mauro Lopes

34

INSTITUTO FEDERAL DE EDUCAÇÃO CIÊNCIA E TECNOLOGIA DO MARANHÃO – IFMA

-Programação Extrema – Prof. Mauro Lopes

Práticas do XP: Desenvolvimento guiado por Testes

• O XP utiliza alguns mecanismos para promover a alta qualidade dos sistemas. Uma delas é a programação em pares. Além dela o XP também utiliza a técnica de desenvolvimento guiado pelos teste;

• Os desenvolvedores escrevem testes para cada funcionalidade antes de codificá-la, desta forma aprofundam o entendimento das necessidades dos clientes (melhora a análise) e se preocupam com interfaces externas dos métodos e das classes antes de codificá-la (melhora o design);

20Programação Extrema – Prof. Mauro Lopes

34

INSTITUTO FEDERAL DE EDUCAÇÃO CIÊNCIA E TECNOLOGIA DO MARANHÃO – IFMA

-Programação Extrema – Prof. Mauro Lopes

Práticas do XP: Desenvolvimento guiado por Testes

• Quem não fica preocupado em alterar algo que não foi vc que fez ?– Testes Automatizados;

• Como eu posso aprender mais sobre o Sistema ?– Ações de Teste, devem acontecer antes do seu

desenvolvimento em si;

• Testes de unidade e Testes de aceitação– Teste de unidade: verificar se os resultados gerados por cada

classe estão corretos (teste simples funcional)

– Testes de Aceitação: verificar se a interação entre as classes

que implementam uma funcionalidade (estória) atendem a

necessidade de forma correta

21Programação Extrema – Prof. Mauro Lopes

34

INSTITUTO FEDERAL DE EDUCAÇÃO CIÊNCIA E TECNOLOGIA DO MARANHÃO – IFMA

-Programação Extrema – Prof. Mauro Lopes

Práticas do XP: Desenvolvimento guiado por Testes

• Atividade para a próxima Aula:– Que outros testes de software existem ? Que ferramentas existem para a

automação de testes. Comente sobre as suas descobertas.

22Programação Extrema – Prof. Mauro Lopes

34

INSTITUTO FEDERAL DE EDUCAÇÃO CIÊNCIA E TECNOLOGIA DO MARANHÃO – IFMA

-Programação Extrema – Prof. Mauro Lopes

Práticas do XP: Refatoração

• Freqüentemente para fazer o sistema evoluir, a equipe irá modificar partes do sistema que esteja funcionando;

• A Refatoração é o ato de alterar um código sem afetar a funcionalidade que ele implementa;

• É utilizado para tornar o software mais simples de ser manipulado pela equipe de desenvolvimento e faz uso fortemente dos testes para evitar que mudanças façam com que o sistema pare de funcionar;

23Programação Extrema – Prof. Mauro Lopes

34

INSTITUTO FEDERAL DE EDUCAÇÃO CIÊNCIA E TECNOLOGIA DO MARANHÃO – IFMA

-Programação Extrema – Prof. Mauro Lopes

Práticas do XP: Código Coletivo

• No XP os desenvolvedores tem acesso a todas as partes do código e podem alterar aquilo que julgarem importante sem a necessidade de pedir autorização de outra pessoa, pois o código écoletivo;

• Este é mais um mecanismo de revisão e verificação do código;

• Se durante a leitura de um código este se mostrar confuso, ele é sério candidato a Refatoração;

24Programação Extrema – Prof. Mauro Lopes

34

INSTITUTO FEDERAL DE EDUCAÇÃO CIÊNCIA E TECNOLOGIA DO MARANHÃO – IFMA

-Programação Extrema – Prof. Mauro Lopes

Práticas do XP: Código Padronizado

• Padrões de codificação ajudam na rápida manipulação do código, principalmente durante as ações de manutenção;

• O padrão de codificação torna o sistema mais homogêneo;

25Programação Extrema – Prof. Mauro Lopes

34

INSTITUTO FEDERAL DE EDUCAÇÃO CIÊNCIA E TECNOLOGIA DO MARANHÃO – IFMA

-Programação Extrema – Prof. Mauro Lopes

Práticas do XP: Código Padronizado

• Atividade para a próxima Aula:– Pesquise se as Linguagens de Programação possuem algum padrão para

nome de variáveis, identação, etc, em resumo, padrão de escrita do

código-fonte.

26Programação Extrema – Prof. Mauro Lopes

34

INSTITUTO FEDERAL DE EDUCAÇÃO CIÊNCIA E TECNOLOGIA DO MARANHÃO – IFMA

-Programação Extrema – Prof. Mauro Lopes

Práticas do XP: Design Simples

• Ao invés de criar generalizações dentro do código, de modo a prepará-lo para possíveis necessidades futuras, a equipe deve sempre optar por um código que seja suficiente para atender as necessidades da funcionalidade solicitada;

• A Refatoração, os testes e as demais práticas dão suporte a este crescimento incremental do código;

27Programação Extrema – Prof. Mauro Lopes

34

INSTITUTO FEDERAL DE EDUCAÇÃO CIÊNCIA E TECNOLOGIA DO MARANHÃO – IFMA

-Programação Extrema – Prof. Mauro Lopes

Práticas do XP: Metáfora

• Muitas vezes pessoas tentam explicar um assunto ou problema a outras pessoas por um período sem obter o êxito necessário na explicação dada, simplesmente as outras pessoas não conseguem entender a mensagem que está se tentando repassar;

• Ao criar comparações e analogias com o assunto que está em questão as pessoas passarão a entender deste assunto de uma forma muito mais rápida e possivelmente não a esquecerão mais. Este tipo de artifício é chamado de metáfora no XP;

28Programação Extrema – Prof. Mauro Lopes

34

INSTITUTO FEDERAL DE EDUCAÇÃO CIÊNCIA E TECNOLOGIA DO MARANHÃO – IFMA

-Programação Extrema – Prof. Mauro Lopes

Práticas do XP: Ritmo Sustentável

• Uma grande problema nos projetos de software é a falta de tempo para encerrar o mesmo, e uma das técnicas mais adotadas para compensar a falta de tempo é submeter os desenvolvedores (humanos) a trabalharem até mais tarde e muitas vezes sacrificarem seus finais de semana;

• Precisamos de desenvolvedores ativos, criativos e dispostos a solucionar problemas. Precisamos manter o ritmo sustentável;

29Programação Extrema – Prof. Mauro Lopes

34

INSTITUTO FEDERAL DE EDUCAÇÃO CIÊNCIA E TECNOLOGIA DO MARANHÃO – IFMA

-Programação Extrema – Prof. Mauro Lopes

Práticas do XP: Integração Contínua• No desenvolvimento tradicional geralmente as equipes

são organizadas de modo que uma parte (módulo) fique sob responsabilidade de um desenvolvedor, cabe a esta pessoa efetuar testes e codificação que dizem respeito a sua parte. Esta estratégia reduz a complexidade e as preocupações de um desenvolvedor;

• O XP propõe uma integração contínua, se possível deve ser efetuada diversas vezes ao dia para que toda a equipe tenha conhecimento do código recém desenvolvido. Com esta prática o feedback sobre a alteração efetuada será retornado em um menor espaço de tempo;

30Programação Extrema – Prof. Mauro Lopes

34

INSTITUTO FEDERAL DE EDUCAÇÃO CIÊNCIA E TECNOLOGIA DO MARANHÃO – IFMA

-Programação Extrema – Prof. Mauro Lopes

Práticas do XP: Releases Curtos

• No modelo tradicional o projeto é dividido em fases, de um modo que o cliente começará a ter benefício com o sistema muito próximo de o mesmo estar finalizado. A maior parte do investimento do projeto éfeita antes mesmo de estar concluído, sem ter gerado qualquer tipo de valor econômico ao cliente;

• O XP recomenda que pequenos investimentos sejam efetuados de forma gradual (entregas) e que busque grandes recompensas o mais rapidamente possível. Com a prática de releases curtos, o XP pretende dar o máximo de valor econômico ao cliente em um curto espaço de tempo;

31Programação Extrema – Prof. Mauro Lopes

34

INSTITUTO FEDERAL DE EDUCAÇÃO CIÊNCIA E TECNOLOGIA DO MARANHÃO – IFMA

-Programação Extrema – Prof. Mauro Lopes

Perguntas

32

Página do Professor Mauro:http://www.dai.ifma.edu.br/~mlcsilva

Programação Extrema – Prof. Mauro Lopes

34

INSTITUTO FEDERAL DE EDUCAÇÃO CIÊNCIA E TECNOLOGIA DO MARANHÃO – IFMA

-Programação Extrema – Prof. Mauro Lopes

Próxima Aula...

33Programação Extrema – Prof. Mauro Lopes

• Práticas do XP: Cliente Presente e Jogo do Planejamento.

34

INSTITUTO FEDERAL DE EDUCAÇÃO CIÊNCIA E TECNOLOGIA DO MARANHÃO – IFMA

-Programação Extrema – Prof. Mauro Lopes

Referências• Materiais avulsos da Internet e o Livro Extreme

Programming, Vinicius Manhães Teles, 1ª Edição -Editora Novatec, 316 páginas.

• Apresentando XP. Encante seus clientes com Extreme Programming:(acessado em 27.03.2011) http://javafree.uol.com.br/artigo/871447/Apresentando-XP-Encante-seus-clientes-com-Extreme-Programming.html

34Programação Extrema – Prof. Mauro Lopes