Análise e Projeto de Sistemas Orientados a Objetos - Métodos Ágeis – Extreme Programming...
-
Upload
derek-santana-imperial -
Category
Documents
-
view
218 -
download
2
Transcript of Análise e Projeto de Sistemas Orientados a Objetos - Métodos Ágeis – Extreme Programming...
Análise e Projeto de Sistemas
Orientados a Objetos - Métodos Ágeis –
Extreme ProgrammingRogério Lacerda
27/04/23 Rogério Lacerda 2
Análise e Projeto O.O. Agenda
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
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
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
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
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
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)
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)
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
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
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
27/04/23 Rogério Lacerda 13
Análise e Projeto O.O. Sistemas de Informação – Métodos ÁgeisExtreme Programming – PassosPLANEJAMENTOPLANEJAMENTO
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
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
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
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
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
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
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
Análise e Projeto O.O.
Até a próxima !!!