21
Análise e Projeto de Sistemas Orientados a Objetos - Métodos Ágeis – Extreme Programming Rogério Lacerda ([email protected])

Análise e Projeto de Sistemas Orientados a Objetos - Métodos Ágeis – Extreme Programming Rogério Lacerda ([email protected])

Embed Size (px)

Citation preview

Page 1: Análise e Projeto de Sistemas Orientados a Objetos - Métodos Ágeis – Extreme Programming Rogério Lacerda (rogerio.lacerda1401@gmail.com)

Análise e Projeto de Sistemas

Orientados a Objetos - Métodos Ágeis –

Extreme ProgrammingRogério Lacerda

([email protected])

Page 2: Análise e Projeto de Sistemas Orientados a Objetos - Métodos Ágeis – Extreme Programming Rogério Lacerda (rogerio.lacerda1401@gmail.com)

27/04/23 Rogério Lacerda 2

Análise e Projeto O.O. Agenda

Page 3: Análise e Projeto de Sistemas Orientados a Objetos - Métodos Ágeis – Extreme Programming Rogério Lacerda (rogerio.lacerda1401@gmail.com)

27/04/23 Rogério Lacerda 3

Análise e Projeto O.O. Sistemas de Informação – Métodos Ágeis

Extreme Programming – Conceitos

Abordagem DELIBERADADELIBERADA e DISCIPLINADADISCIPLINADA para desenvolvimento de Software Criada por KENT BAECK em 1996 durante o projeto DAIMLER-CHRYSLER (Automóvel) O SUCESSOSUCESSO de XPXP advém da intensa SATISFAÇÃO DO CLIENTESATISFAÇÃO DO CLIENTE CLIENTE SATISFEITOCLIENTE SATISFEITO é o melhor indicativo de SUCESSOSUCESSO de um PROJETOPROJETO

Page 4: Análise e Projeto de Sistemas Orientados a Objetos - Métodos Ágeis – Extreme Programming Rogério Lacerda (rogerio.lacerda1401@gmail.com)

27/04/23 Rogério Lacerda 4

Análise e Projeto O.O. Sistemas de Informação – Métodos Ágeis

Extreme Programming – Conceitos

METODOLOGIAMETODOLOGIA criada para produzir o software que o CLIENTECLIENTE precisa quando ele é necessário

XP ENCORAJAENCORAJA os DESENVOLVEDORESDESENVOLVEDORES a atender as requisições de MUDANÇAS DOS MUDANÇAS DOS REQUISITOSREQUISITOS do SOFTWARESOFTWARE, no momento em que isto acontece

Page 5: Análise e Projeto de Sistemas Orientados a Objetos - Métodos Ágeis – Extreme Programming Rogério Lacerda (rogerio.lacerda1401@gmail.com)

27/04/23 Rogério Lacerda 5

Análise e Projeto O.O. Sistemas de Informação – Métodos Ágeis

Extreme Programming – Princípios

SIMPLICIDADESIMPLICIDADE COMUNICAÇÃOCOMUNICAÇÃO FEEDBACKFEEDBACK CORAGEMCORAGEM

Page 6: Análise e Projeto de Sistemas Orientados a Objetos - Métodos Ágeis – Extreme Programming Rogério Lacerda (rogerio.lacerda1401@gmail.com)

27/04/23 Rogério Lacerda 6

Análise e Projeto O.O. Sistemas de Informação – Métodos Ágeis

Extreme Programming – PrincípiosSIMPLICIDADESIMPLICIDADE Tente sempre desenvolver a SOLUÇÃOSOLUÇÃO mais SIMPLESSIMPLES possível Muitos projetos perdem muito tempo quando os desenvolvedores destinam muito tempo desenvolvendo uma solução genérica A SOLUÇÃOSOLUÇÃO deve responder SIMPLESMENTESIMPLESMENTE um REQUISITO DO USUÁRIOREQUISITO DO USUÁRIO Algumas FUNCIONALIDADESFUNCIONALIDADES podem nunca vir a serem utilizadas

Page 7: Análise e Projeto de Sistemas Orientados a Objetos - Métodos Ágeis – Extreme Programming Rogério Lacerda (rogerio.lacerda1401@gmail.com)

27/04/23 Rogério Lacerda 7

Análise e Projeto O.O. Sistemas de Informação – Métodos Ágeis

Extreme Programming – PrincípiosCOMUNICAÇÃOCOMUNICAÇÃO CANAL ABERTOCANAL ABERTO de COMUNICAÇÃOCOMUNICAÇÃO entre a EQUIPE DE DESENVOLVIMENTOEQUIPE DE DESENVOLVIMENTO e com os USUÁRIOSUSUÁRIOS

A COMUNICAÇÃOCOMUNICAÇÃO é CHAVECHAVE para o SUCESSOSUCESSO

Page 8: Análise e Projeto de Sistemas Orientados a Objetos - Métodos Ágeis – Extreme Programming Rogério Lacerda (rogerio.lacerda1401@gmail.com)

27/04/23 Rogério Lacerda 8

Análise e Projeto O.O. Sistemas de Informação – Métodos Ágeis

Extreme Programming – PrincípiosFEEDBACKFEEDBACK FEEDBACKFEEDBACK possibilita que o software evolua “PERGUNTE AO SOFTWARE, NÃO A UM DOCUMENTO” FEEDBACKFEEDBACK precisa ser:

CEDO (PRA GENTE DESCOBRIR LOGO SE ESTÁ FAZENDO A COISA CORRETA) CONCRETO (FEEDBACK ORIUNDO DO CÓDIGO) CONSTANTE (O CICLO DE DESENVOLVIMENTO TEM QUE SER CURTO)

Page 9: Análise e Projeto de Sistemas Orientados a Objetos - Métodos Ágeis – Extreme Programming Rogério Lacerda (rogerio.lacerda1401@gmail.com)

27/04/23 Rogério Lacerda 9

Análise e Projeto O.O. Sistemas de Informação – Métodos ÁgeisExtreme Programming – PrincípiosCORAGEMCORAGEM Colocar o CLIENTECLIENTE a par do que está ACONTECENDOACONTECENDO Acreditar na CAPACIDADE DE RESPONDERCAPACIDADE DE RESPONDER a MUDANÇASMUDANÇAS APRENDERAPRENDER com os ERROSERROS Acreditar no FEEDBACKFEEDBACK (NÃO na “TEORIA”) “JOGAR PARA GANHAR” (NÃO PRA TER UMA DESCULPA) “FAZER O QUE PRECISA SER FEITO” (JOGAR FORA CÓDIGO RUIM)

Page 10: Análise e Projeto de Sistemas Orientados a Objetos - Métodos Ágeis – Extreme Programming Rogério Lacerda (rogerio.lacerda1401@gmail.com)

27/04/23 Rogério Lacerda 10

Análise e Projeto O.O. Sistemas de Informação – Métodos ÁgeisExtreme Programming – PassosLEVANTAMENTOLEVANTAMENTO O projeto é iniciado em XP com o LEVANTAMENTOLEVANTAMENTO das "ESTÓRIAS DOS USUÁRIOSESTÓRIAS DOS USUÁRIOS“ Cada ESTÓRIAESTÓRIA é escrita pelo USUÁRIOUSUÁRIO e consiste de um ou alguns parágrafos de um TEXTO NARRATIVO/DESCRITIVO. NÃO É TEXTO TÉCNICONÃO É TEXTO TÉCNICO O PROPÓSITOPROPÓSITO da estória NÃO É DEFINIRNÃO É DEFINIR toda a FUNCIONALIDADEFUNCIONALIDADE de um cenário, mas sim, ESTIMARESTIMAR como será a complexidade de parte do sistema em quanto tempo isso será desenvolvido Todos os demais DETALHES DA ESTÓRIADETALHES DA ESTÓRIA serão esclarecidos como CLIENTECLIENTE, imediatamente ao INÍCIOINÍCIO do DESENVOLVIMENTODESENVOLVIMENTO

Page 11: Análise e Projeto de Sistemas Orientados a Objetos - Métodos Ágeis – Extreme Programming Rogério Lacerda (rogerio.lacerda1401@gmail.com)

27/04/23 Rogério Lacerda 11

Análise e Projeto O.O. Sistemas de Informação – Métodos ÁgeisExtreme Programming – PassosESTÓRIAS DO USUÁRIOESTÓRIAS DO USUÁRIO USUÁRIOSUSUÁRIOS escrevem ESTÓRIASESTÓRIAS descrevendo a FUNCIONALIDADEFUNCIONALIDADE que querem DESENVOLVEDORESDESENVOLVEDORES estimam o TEMPOTEMPO necessário para implementar cada estória Uma RELEASERELEASE é um CONJUNTO DE ESTÓRIASCONJUNTO DE ESTÓRIAS que serão DISPONIBILIZADAS DISPONIBILIZADAS SIMULTANEAMENTESIMULTANEAMENTE As ESTÓRIASESTÓRIAS mais IMPORTANTESIMPORTANTES e/ou mais DIFÍCEISDIFÍCEIS têm PRIORIDADEPRIORIDADE

Page 12: Análise e Projeto de Sistemas Orientados a Objetos - Métodos Ágeis – Extreme Programming Rogério Lacerda (rogerio.lacerda1401@gmail.com)

27/04/23 Rogério Lacerda 12

Análise e Projeto O.O. Sistemas de Informação – Métodos ÁgeisExtreme Programming – PassosPLANEJAMENTOPLANEJAMENTO PLANEJAMENTO DO RELEASEPLANEJAMENTO DO RELEASE, onde será DEFINIDO quais ESTÓRIAS deverão ser desenvolvidas em quais RELEASES Cada RELEASERELEASE consiste de um número de iterações. Cada ITERAÇÃOITERAÇÃO terá um conjunto de estórias implementadas. Em cada ITERAÇÃOITERAÇÃO

PLANEJE CODIFIQUE TESTE REFATORE ESCUTE

Page 13: Análise e Projeto de Sistemas Orientados a Objetos - Métodos Ágeis – Extreme Programming Rogério Lacerda (rogerio.lacerda1401@gmail.com)

27/04/23 Rogério Lacerda 13

Análise e Projeto O.O. Sistemas de Informação – Métodos ÁgeisExtreme Programming – PassosPLANEJAMENTOPLANEJAMENTO

Page 14: Análise e Projeto de Sistemas Orientados a Objetos - Métodos Ágeis – Extreme Programming Rogério Lacerda (rogerio.lacerda1401@gmail.com)

27/04/23 Rogério Lacerda 14

Análise e Projeto O.O. Sistemas de Informação – Métodos ÁgeisExtreme Programming – PassosPLANEJAMENTOPLANEJAMENTO XP preconiza RELEASES PEQUENOSRELEASES PEQUENOS e FREQÜENTESFREQÜENTES (A CADA 2-3 MESES) As quatro DIMENSÕESDIMENSÕES do DESENVOLVIMENTO DE DESENVOLVIMENTO DE SOFTWARESOFTWARE são CUSTO, TEMPO, QUALIDADE E ESCOPOCUSTO, TEMPO, QUALIDADE E ESCOPO XP tenta manter ESCOPOESCOPO como VARIÁVEL LIVREVARIÁVEL LIVRE RELEASESRELEASES são divididas em iterações de 2-3 semanas Uma ITERAÇÃOITERAÇÃO alcança algum objetivo (TIPICAMENTE A ADIÇÃO DE NOVA FUNCIONALIDADE) Nada é feito que não seja imediatamente ÚTILÚTIL e NECESSÁRIONECESSÁRIO para não impactar os PRAZOS DE PRAZOS DE DESENVOLVIMENTODESENVOLVIMENTO

Page 15: Análise e Projeto de Sistemas Orientados a Objetos - Métodos Ágeis – Extreme Programming Rogério Lacerda (rogerio.lacerda1401@gmail.com)

27/04/23 Rogério Lacerda 15

Análise e Projeto O.O. Sistemas de Informação – Métodos ÁgeisExtreme Programming – PassosPROGRAMAÇÃO EM PARESPROGRAMAÇÃO EM PARES ““Se REVISÃO DE CÓDIGOREVISÃO DE CÓDIGO é legal, vamos fazê-la o TEMPO TODO”TEMPO TODO” Em XP, a PROGRAMAÇÃOPROGRAMAÇÃO é feita em PARESPARES PARESPARES mudam com relativa rapidez (EM DIAS) PROGRAMAÇÃO EM PARESPROGRAMAÇÃO EM PARES favorece COMUNICAÇÃOCOMUNICAÇÃO e APRENDIZADOAPRENDIZADO Precisa estabelecer um PADRÃO DE CODIFICAÇÃOPADRÃO DE CODIFICAÇÃO

HÁ CASOS DE REDUÇÃO NO TEMPO DE DESENVOLVIMENTO COM PROGRAMAÇÃO EM PARES

Page 16: Análise e Projeto de Sistemas Orientados a Objetos - Métodos Ágeis – Extreme Programming Rogério Lacerda (rogerio.lacerda1401@gmail.com)

27/04/23 Rogério Lacerda 16

Análise e Projeto O.O. Sistemas de Informação – Métodos ÁgeisExtreme Programming – PassosTESTES AUTOMÁTICOSTESTES AUTOMÁTICOS TESTES AUTOMÁTICOSTESTES AUTOMÁTICOS são parte do SOFTWARESOFTWARE TESTESTESTES permitem que você REFATOREREFATORE sem medo de quebrar o código TESTESTESTES representam uma “REDUNDÂNCIA REDUNDÂNCIA LÓGICALÓGICA” que você adiciona ao código Escrevendo TESTES antes da FUNCIONALIDADE, você esclarece DÚVIDAS sobre o que o SOFTWARE deve fazer

Page 17: Análise e Projeto de Sistemas Orientados a Objetos - Métodos Ágeis – Extreme Programming Rogério Lacerda (rogerio.lacerda1401@gmail.com)

27/04/23 Rogério Lacerda 17

Análise e Projeto O.O. Sistemas de Informação – Métodos ÁgeisExtreme Programming – PassosREFATORAMENTOREFATORAMENTO REFATORARREFATORAR é MELHORARMELHORAR o CÓDIGOCÓDIGO sem alterar sua funcionalidade

Antes de uma mudança, você REFATORAREFATORA o código para que a mudança seja simples de fazer

REFATORAÇÃOREFATORAÇÃO continua possibilita manter um DESIGNDESIGN adequado, mesmo com MUDANÇAS MUDANÇAS FREQÜENTES FREQÜENTES

Page 18: Análise e Projeto de Sistemas Orientados a Objetos - Métodos Ágeis – Extreme Programming Rogério Lacerda (rogerio.lacerda1401@gmail.com)

27/04/23 Rogério Lacerda 18

Análise e Projeto O.O. Sistemas de Informação – Métodos ÁgeisExtreme Programming – PassosREFATORAMENTOREFATORAMENTO REFATORARREFATORAR é MELHORARMELHORAR o CÓDIGOCÓDIGO sem alterar sua funcionalidade

Antes de uma mudança, você REFATORAREFATORA o código para que a mudança seja simples de fazer

REFATORAÇÃOREFATORAÇÃO continua possibilita manter um DESIGNDESIGN adequado, mesmo com MUDANÇAS MUDANÇAS FREQÜENTES FREQÜENTES

Page 19: Análise e Projeto de Sistemas Orientados a Objetos - Métodos Ágeis – Extreme Programming Rogério Lacerda (rogerio.lacerda1401@gmail.com)

27/04/23 Rogério Lacerda 19

Análise e Projeto O.O. Sistemas de Informação – Métodos ÁgeisExtreme Programming – PassosPROJETO SIMPLESPROJETO SIMPLES PROJETOS FLEXÍVEISPROJETOS FLEXÍVEIS são uma defesa contra MUDANÇAS IMPREVISTASMUDANÇAS IMPREVISTAS no SOFTWARESOFTWARE PROJETOS FLEXÍVEISPROJETOS FLEXÍVEIS também têm CUSTOS, TEMPOCUSTOS, TEMPO para DESENVOLVIMENTODESENVOLVIMENTO e MANUTENÇÃOMANUTENÇÃO

CÓDIGOCÓDIGO fica mais COMPLEXOCOMPLEXO CUIDADO!!!CUIDADO!!! MUITA VEZES A FLEXIBILIDADE NÃO É UTILIZADA NUNCA

Como mudança é barata em XP, vamos manter o PROJETOPROJETO mais SIMPLES POSSÍVELSIMPLES POSSÍVEL, modificando-o quando for NECESSÁRIO SUPORTARNECESSÁRIO SUPORTAR mais FUNCIONALIDADEFUNCIONALIDADE

Page 20: Análise e Projeto de Sistemas Orientados a Objetos - Métodos Ágeis – Extreme Programming Rogério Lacerda (rogerio.lacerda1401@gmail.com)

27/04/23 Rogério Lacerda 20

Análise e Projeto O.O. Sistemas de Informação – Métodos ÁgeisExtreme Programming – PassosPROBLEMAS EM XPPROBLEMAS EM XP CONSIDERAR TESTES COMO PARTE NORMAL DO PROCESSO DE DESENVOLVIMENTO SEMPRE FAZER A COISA MAIS SIMPLES ADMITIR QUE VOCÊ NÃO SABE COLABORAR VENCER RESISTÊNCIA NAS PESSOAS TIMES GRANDES SITUAÇÕES EM QUE VOCÊ NÃO PODE MUDAR LIVREMENTE O CÓDIGO

Page 21: Análise e Projeto de Sistemas Orientados a Objetos - Métodos Ágeis – Extreme Programming Rogério Lacerda (rogerio.lacerda1401@gmail.com)

Análise e Projeto O.O.

Até a próxima !!!