Baixe o app para aproveitar ainda mais
Prévia do material em texto
Método XP e suas práticas Apresentação Os métodos e práticas inseridos na metodologia XP são utilizados em todos os projetos que visam uma produção de software eficiente. Entender e saber aplicar essas práticas fornecem à equipe de trabalho recursos para serem aplicados no dia a dia do desenvolvimento. Não respeitar as práticas adotadas, portanto, é desviar dos benefícios alcançados por essa metodologia ágil. Nos dias de hoje, é notório como as empresas seguem essas práticas e estão se beneficiando dos resultados na produção dos seus softwares. À medida que novas histórias de sucesso vão surgindo, novos adeptos da metodologia são criados. Essa rede de empresas ajuda a difundir ainda mais as práticas e metodologias XP. Nesta Unidade de Aprendizagem, você vai aprender os conceitos e práticas para o atendimento das diretrizes estabelecidas pelo método XP em um ambiente de desenvolvimento. Bons estudos. Ao final desta Unidade de Aprendizagem, você deve apresentar os seguintes aprendizados: Elencar as práticas do método XP.• Relacionar a integração contínua com a programação em pares em XP.• Discutir sobre a refatoração e os padrões de codificação em XP.• Desafio Apesar da evolução tecnológica que ocorre, ao longo dos anos, por computadores e técnicas de desenvolvimento de software, construir um produto com o mínimo de erros aceitável, dentro do prazo e de acordo com os custos previamente definidos ainda é um desafio para profissionais da área. As técnicas consolidadas da metodologia XP ajudam no processo de trabalho em equipes de desenvolvimento. Suas práticas, porém, devem ser seguidas fielmente, para que seja possível atingir a qualidade esperada em um projeto. Aponte a câmera para o código e acesse o link do conteúdo ou clique no código para acessar. Com essa finalidade, responda as questões a seguir: a) Nas práticas estabelecidas pela metodologia XP, é correto implantar a programação em pares? Qual seria o ganho alcançado em relação à redução de bugs reportados? Justifique. b) Utilizar práticas estruturais na reformulação dos códigos aumenta consideravelmente a proliferação de bugs de sistema? Justifique. c) É importante o uso constante de testes de código para evitar o envio desnecessários de bugs de menor complexidade para os desenvolvedores de projetos que utilizam o método XP? Justifique. https://statics-marketplace.plataforma.grupoa.education/sagah/46c53a0f-04e6-43c4-8e74-607e61e9ba92/0a3a6b7b-db13-42cc-aede-d9c7e790348f.png Infográfico A refatoração e as práticas de programação em pares traduzem a essência do comportamento da metodologia XP. Entender cada etapa de codificação é essencial para o entendimento geral do projeto. Sem a utilização de padrões de desenvolvimento, versionamento das etapas, testes contínuos e melhoria dos códigos, não seria possível implantar projetos eficientes. A capacidade de mudar um código sem causar problema na estrutura do sistema, ou seja, sem afetar suas funcionalidades e a padronização de projeto, são os fatores que tornam vantajoso o uso da metodologia XP. No infográfico a seguir, você irá entender, de forma ilustrativa, o detalhamento das doze práticas definidas na eXtreme Programming (XP), as atividades diárias de desenvolvimento em grupos de programadores, rotinas de codificação e o processo de refatoração com o uso de padrões de codificação para o método XP. Boa leitura. Aponte a câmera para o código e acesse o link do conteúdo ou clique no código para acessar. https://statics-marketplace.plataforma.grupoa.education/sagah/f12402d7-2888-4840-b281-d2f90f2512a4/9b48996a-8639-4f15-af9d-ac71582d3ced.png Conteúdo do livro O uso dos métodos e práticas da metodologia de eXtreme Programming (XP) permite a uma organização estabelecer as atividades de desenvolvimento de projeto, para atender todos os seus requisitos. Características fundamentais no uso do método XP devem ser compreendidas e compartilhadas por todos os membros da equipe, para que seja possível alcançar a excelência na execução de cada etapa do projeto. No capítulo Método XP e suas práticas, da obra Processos de desenvolvimento de software, você entenderá todas as características das doze práticas utilizadas no método XP e como, usadas em conjunto, agregam valores e benefícios ao projeto a ser desenvolvido. Verá também como são realizadas as tarefas diárias de desenvolvimento em pares e como são trabalhados os códigos para permitir uma integração contínua e satisfatória ao projeto, além de aprender o conceito de refatoração e como ele se aplica em ferramentas de automação em projetos que seguem critérios padronizados do método XP. Boa leitura. PROCESSOS DE DESENVOLVIMENTO DE SOFTWARE Luis Gustavo Maschietto Método XP e suas práticas Objetivos de aprendizagem Ao final deste texto, você deve apresentar os seguintes aprendizados: Enumerar as práticas do método XP. Relacionar a integração contínua com a programação em pares em XP. Discutir sobre a refatoração e os padrões de codificação em XP. Introdução Empresas de TI buscam constantemente melhorar suas práticas de de- senvolvimento de sistemas com o objetivo de alcançar a excelência nos processos executados. Com o uso de metodologias ágeis, em especial a metodologia XP (do inglês Extreme Programming), esse objetivo está se tornando cada vez mais possível, sobretudo por seguir critérios consoli- dados e estabelecidos de práticas de desenvolvimento. Conhecer as práticas adotadas pela metodologia XP favorece que equipes de trabalho possam manter os códigos padronizados, realizar iterações seguras do sistema — respeitando o que foi acordado com o cliente no apontamento das regras de negócios —, compartilhar os códigos com o uso de práticas de programação em pares, realizar testes constantes em fases específicas do projeto, entre outros benefícios. Neste capítulo, você vai estudar sobre as práticas da metodologia XP, além de relacionar a integração contínua com a programação em pares e entender sobre a refatoração e os padrões de codificação da metodologia. 1 Método XP Segundo Beck (2004), as práticas são utilizadas em todos os projetos que utilizam o método XP, suas diretrizes são seguidas há anos por equipes de desenvolvimento e sua efi cácia é constatada a cada produção de um novo software. Portanto, as práticas estabelecidas pelo método XP continuam adquirindo novos adeptos para o desenvolvimento de novos produtos. A avaliação dos valores e benefícios, no entanto, deve ser feita com a análise da junção de todas as práticas, a fi m de reduzir suas fraquezas. As doze práticas são defi nidas a seguir. Cliente no local — A condução do desenvolvimento deve ser acompanhada a todo momento pelo cliente de forma a garantir a exatidão das respostas fornecidas pelo sistema. O cliente poderá delegar a outra pessoa essa função desde que ela possua conhecimento pela regra de negócio. Jogo do planejamento — Trata-se de uma reunião que conta com a colabora- ção de todos da equipe. O cliente, bem como todos os envolvidos no projeto, deverá fazer parte dessa reunião. É possível dividir os envolvidos por área de atuação: negócios (pessoas que conhecem a área de negócio) e parte técnica (pessoas envolvidas na implementação e descrição das funcionalidades). Releases pequenos — Um release signifi ca várias iterações onde para cada uma é gerado um use case simplifi cado. Cabe ao cliente selecionar qual será implementado. É importante que o release seja pequeno (de dois a três meses) e contenha os requisitos mais importantes para o negócio. Quanto mais releases, maior será o feedback para os clientes e programadores. Programação em par — O desenvolvimento é estabelecido em pares de desenvolvedores. No mesmo computador os dois desenvolvedores encontram soluções para o atendimento aos problemas inerentes à programação e à interpretação dos requisitos levantados. O trabalho poderá ser estabelecido da seguinte forma: um codifi ca e o outroanalisa o código gerado, para evitar falhas. Testes constantes — Os códigos são testados antes de ser implementados, como forma de atender a todas as necessidades do cliente e evitar retrabalho aos desenvolvedores. Testes unitários são automatizados para checagem de todos os códigos que serão desenvolvidos. Todos os problemas encontrados são reportados a todos os envolvidos. Refactoring (reestruturação) — Seu principal objetivo é a capacidade de mudar um código sem causar problema na estrutura do sistema implementado. Portanto, o projeto é tolerável a mudanças, o que o torna passível de melhorias sem afetar outras funcionalidades do sistema. Método XP e suas práticas2 Código coletivo — Os desenvolvedores possuem auxílio mútuo para a re- solução dos diversos problemas enfrentados na programação. Desta forma, o objetivo a ser alcançado ocorre mais rápido do que em desenvolvimentos individualizados. Nesse tipo de desenvolvimento todos devem respeitar um padrão de codifi cação e são forçados a realizar testes constantes. Código padronizado — Padrões de codifi cação são defi nidos para facilitar a manutenção no código, o que torna o sistema mais homogêneo e com condições de manutenção no código gerado. Semana de quarenta horas — O consenso que Becker chegou em sua pes- quisa é que as equipes não devam ultrapassar duas semanas além das 40 horas semanais estabelecidas de trabalho. Caso ocorram horas excedentes, isso poderá resultar em queda de produtividade e qualidade no código gerado. Metáfora — É uma visão geral do sistema na qual ele é apresentado de forma simples para ser compartilhado entre clientes e programadores. Encontrar no- mes simples para as principais características do desenvolvimento é primordial para o entendimento de todos. Portanto, são criados nomes familiares a todos da equipe para que depois possam ser declarados nomes de classes, métodos e outras funcionalidades. Integração contínua — Prática utilizada com o objetivo de checar ou testar toda a aplicação sempre que uma nova funcionalidade é implementada. Os testes podem ocorrer de forma manual ou automática. Para testes automatizados são utilizadas ferramentas específi cas que auxiliam os desenvolvedores no processo de codifi cação do sistema. Projeto simples — Um dos fatores para o sucesso das diretrizes do método XP é a simplicidade de seu desenvolvimento. Nesse cenário, os requisitos do cliente são atendidos prontamente pela equipe de desenvolvimento sem se preocupar com outros detalhes de programação que possam atrasar o projeto. O desenvolvedor deve atentar que o código mais fácil nem sempre levará a uma solução mais simples. Na Figura 1 são apresentadas as principais práticas do método, que devem ser seguidas por toda a equipe. No ciclo de cor laranja é possível identificar a prática de cliente no local ou testes de usuário, releases pequenas ou entregas curtas e o jogo de planejamento. No ciclo de cor vermelha estão o código coletivo, ou propriedade coletiva, o código padronizado, ou padronização de 3Método XP e suas práticas código, o ritmo sustentável, ou semana de quarenta horas, metáfora, integração contínua e programação em pares. O ciclo de cor marrom contém projeto simples ou design simples, refatoração e testes constantes, ou desenvolvimento orientado a teste. Figura 1. Práticas da metodologia XP. Fonte: Lecom (2018, documento on-line). Práticas XP Equipe inteira Entregas curtas Propriedade coletiva Desenvolvimento orientado a teste Metáfora Design simplesIntegração contínua Ritmo sustentável Programação em par Testes de usuário Jogos de planejamentoRefatoração Padronização de código Simplicidade de projeto não significa diminuir quantidade de código ou retirar etapas fundamentais do sistema, mas alcançar agilidade nos processos focando no que é realmente necessário ser desenvolvido em um determinado momento do projeto. Método XP e suas práticas4 2 Integração contínua e programação em pares em XP De acordo com Beck (2004), a prática da integração contínua é a atividade que une o trabalho desenvolvido por uma equipe composta por dois programadores (programação em par) a todo o código do projeto. A prática estabelece que o par deve testar e juntar o código gerado à versão mais recente do código coletivo, ou seja, de todos os outros pares do projeto. Essa rotina deverá ser feita com o objetivo de sincronizar as atividades individuais e deverá ser realizada várias vezes ao dia. A dinâmica do trabalho em pares permite que visões diferentes sejam contempladas no decorrer da programação, dado que o programador ao digi- tar seu código está observando sua edição. Em relação a um navegador que participa da codificação, ele não fixa o olhar na linha que está sendo editada pelo colega, portanto possui uma visão ampla do código em tela. Essa visão complementar permite a revelação de problemas mais rapidamente em com- paração com o programador que está digitando, ou seja, a programação em pares permite verificar o problema por diversos ângulos, e não apenas em um ponto específico da programação (TELES, [200–?]). A possibilidade de compartilhar conhecimento, especialmente em projetos XP, nos quais existe rotinas de trocas de pares de desenvolvedores, possibilita que as informações sejam difundidas por toda a equipe e que esse conheci- mento seja repassado, principalmente pelas mudanças de funções ao longo do projeto. Nesse cenário podemos encontrar desenvolvedores trabalhando em partes distintas do sistema, que já foram exploradas por outros membros da equipe. Isso proporciona a criação de uma rede de conhecimento com visão global do projeto. Em um cenário real, é possível se deparar com um problema no sistema em que outro programador já esteja familiarizado e seja capaz de solucioná-lo em um tempo inferior comparado a um problema totalmente novo, desta forma, ganha-se tempo na realização de uma tarefa. Os códigos gerados pelas interações contínuas devem ser padronizados como forma de auxiliar nas etapas de desenvolvimento, principalmente por serem compartilhados por toda a equipe a partir de mudanças de pares ocorridas em todo o projeto. Essa padronização diminui falhas constantes, problemas de entendimento de programadores iniciantes e diminuição das chances de erro nos códigos. Importante lembrar que as mudanças de pares são frequentes (podem ser realizadas diariamente, semanalmente ou por critério estabelecido pelo grupo), e por isso é fundamental uma padronização eficiente. 5Método XP e suas práticas Na interação contínua existem vários tipos de testes de responsabilidade dos pares de desenvolvedores, e nessa etapa podem ser designadas funções de criação e de execução de testes. Entre os testes utilizados estão os automatiza- dos, que são classificados como teste unitário (exploração de pequenos trechos de códigos para procurar defeitos de implementação e de lógica dos módulos do sistema), e os de integração (encontrar falhas associadas às interfaces entre os módulos) (LIRA; ZANONI; TALON, 2016). Na Figura 2 são ilustrados os processos de programação extrema em relação temporal com as atividades executadas (meses, semanas, dias, horas, minutos e segundos). É possível constatar como a interação contínua ocorre em todo o processo e como a programação em pares deve estar sempre no foco das rotinas essenciais no projeto, como criar rotinas de testes, realizar os testes propostos, apontar possíveis falhas, corrigir falhas, aceitar novas iterações com o cliente, realizar reuniões para discutir como serão construídos os novos requisitos, negociar com a equipe de trabalho, entre outras atividades. Portanto as interações contínuas e a programação em par são essenciais para manter saudável o projeto com metodologia XP. Figura 2. Práticas da metodologia XP. Fonte: Adaptada de Mistry (2019). Método XP e suas práticas6 Em uma equipe de trabalho, para se conseguir uma interação efetiva de todos os mem-bros de desenvolvedores, são utilizados sistemas de controles de versões (chamados também de “repositório de código” ou simplesmente “repositório”). Atualmente, existem muitos sistemas de controle de repositórios, como CVS, Microsoft Visual SourceSafe, Subversion e RationalClearCase (UEMURA; LEAL, 2019). 3 Refatoração e padrões de codificação em XP Christopher Alexander inspirou o movimento de padrões de software em suas obras clássicas A timeless way of building e Pattern language. Em 1999 é publicado o livro Refatoração, escrito por Martin Fowler, e sua publicação encoraja fabricantes de software a criarem uma refatoração automatizada, o que permitiu, em pouco tempo, que muitos programadores disponibilizassem esse recurso em ambientes de desenvolvimento integrados, difundindo sua prática em diversos projetos. Contudo esse recurso não torna indispensáveis rotinas de testes: muitas refatorações automatizadas requerem uma tomada de decisão, desta forma, é essencial rodar todos os testes depois de refatorar para confi rmar que o código apresente o comportamento esperado. A direção de uma refatoração dirigida ao uso de padrões é normalmente infl uenciada pela natureza do padrão (KERIEVSKY, 2008). A Refatoração (refactoring) é um processo de mudanças no código-fonte de um sistema para permitir a melhoria interna sem afetar seu comportamento externo. A partir do seu uso é possível reduzir a complexidade do código tornando-o mais suscetível à manutenção, mais reutilizável e menos com- plexo, principalmente em sistemas que possuem anos de desenvolvimento. Uma refatoração eficiente melhora a legibilidade e eficiência do código, mas mantém o funcionamento igual à versão anterior. Seu uso ocorre com pequenas transformações do código que permitem transformações significativa de sua estrutura sem alterar sua funcionalidade. 7Método XP e suas práticas Seu uso é fundamental quando ocorrem mudanças pontuais no código do sistema. Essas mudanças favorecem uma desorganização que pode ocasio- nar falha de entendimento. Essas falhas prejudicam o prazo de entrega e a padronização eficiente do projeto. A falta de padronização pode levar ao apa- recimento de códigos duplicados, o uso de funções longas e pouco utilizadas, nomenclaturas estranhas ao escopo, métodos de subclasses que possuem a mesma funcionalidade, classes muito extensas, lista de parâmetros longas, má endentação e, no geral, códigos que levam à incerteza de suas funcionalidades. De acordo com pesquisadores do Instituto Nacional de Padrões e Tecnologia (NIST — sigla em inglês para National Institute of Standards and Techno- logy), a captura de bugs do software antes do lançamento de um programa aprimora a segurança do computador, porém, um estudo de 2002 preparado pelo instituto relatou que embora 50% dos orçamentos de desenvolvimento sejam voltados para testar as falhas de software, elas ainda custam à economia dos Estados Unidos US$ 59,5 bilhões anualmente. O estudo não é recente, mas reflete a realidade que ainda perdura em relação à preocupação com a segurança nos códigos desenvolvidos e à confiabilidade de suas funções. Testes de verificação exaustiva com combinações possíveis de ações de entrada que podem causar falhas no software não são práticos devido ao grande número de possibilidades. Rotinas exaustivas de testes necessitam de ferramentas automatizadas para gerar planos para testar com eficiência combinações de duas a seis variáveis de interação. Na Figura 3 é mostrado um gráfico de dados coletados pelo software do NIST para testar sistemas de computador. Na relação apresentada é possível constatar o percentual de falhas em relação às interações ocorridas no sistema. Nota-se que praticamente todas as falhas de software parecem ser causadas por seis ou menos interações. Método XP e suas práticas8 Figura 3. Resultado percentual de falhas cumulativas em relação às interações de sistema. Fonte: Adaptada de National Institute of Standards and Technology (2010). 100 90 80 70 60 50 40 30 20 10 0 1 2 3 4 Interações Po rc en ta ge m a cu m ul ad a de fa lh as d e so ft w ar e 5 6 Dispositivos médicos Navegadores Servidor NASA Segurança de rede Com o uso de ferramentas automatizadas, amplamente encontradas e dis- poníveis para diversas linguagens de programação, o processo de refatoração se torna mais simples e os riscos de alteração da funcionalidade dos códigos são reduzidos. Apesar do benefício nas práticas de refatoração, as ferramentas existentes são incapazes de satisfazer completamente as necessidades dos desenvolvedores. Isso ocorre porque fornecem um conjunto fixo de operações de refatoração, o que pode ser um problema em execuções de manutenção. Outro problema é a difícil customização dessas fermentas, o que dificulta, para os desenvolvedores, a criação de operações de refatoração ou mesmo a adaptação de operações já existentes (MAIA et al.,2004). Todas as refatorações necessárias no código devem seguir rigorosamente padrões preestabelecidos que auxiliam no trabalho de equipes na programa- ção extrema. Segundo Deitel e Deitel (2008), os padrões de projeto ajudam a construir software confiáveis com arquiteturas comprovadas e que possam ser reutilizados. Seguindo os padrões estabelecidos pela metodologia de trabalho é possível identificar erros, problemas comuns, manter um vocabulário comum entre os desenvolvedores e encurtar a fase de projeto. Por todos esses benefí- cios, atualmente, projetos que utilizam programação extrema com práticas de refatoração são largamente catalogados na internet e difundidos como rotinas fundamentais para uma programação de qualidade. 9Método XP e suas práticas BECK, K. Programação extrema (XP) explicada. Porto Alegre: Bookman, 2004. DEITEL, P. J.; DEITEL, H. M. Java: cómo programar. 7a. ed. Naucalpan de Juárez: Pearson Educación México, 2008. KERIEVSKY, J. Refatoração para padrões. Porto Alegre: Bookman, 2008. LECOM. Metodologia Agile: o que é e como aplicar? 2018. Disponível em: https://www. lecom.com.br/blog/valores-da-metodologia-agile. Acesso em: 4 jun. 2020. LIRA, F.; ZANONI, R.; TALON, A. Agilidade no desenvolvimento de software utilizando in- tegração contínua. Caderno de Estudos Tecnológicos, v. 4, n. 1, 2016. Disponível em: http:// www.fatecbauru.edu.br/ojs/index.php/CET/article/view/205. Acesso em: 4 jun. 2020. MAIA, P. H. M. et al. Um ambiente para refatoração de código java utilizando tecno- logias XML. In: Workshop de Desenvolvimento Baseado em Componentes, 4., 2004, João Pessoa. Anais [...]. [S. l.: s. n.], 2004. Disponível em: https://sites.google.com/site/ paulohenriquemmaia/WDBC2004-paper.pdf. Acesso em: 4 jun. 2020. MISTRY, A. 12 Core practices in Extreme Programming XP. 2019. Disponível em: https:// www.c-sharpcorner.com/article/12-core-practices-in-xp. Acesso em: 4 jun. 2020. NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY. Updated NIST software uses combination testing to catch bugs fast and easy. 2010. Disponível em: https://www.nist. gov/news-events/news/2010/11/updated-nist-software-uses-combination-testing- -catch-bugs-fast-and-easy. Acesso em: 4 jun. 2020. TELES, V. M. Extreme Programming: programação em par. [200-?]. Disponível em: http:// www.linhadecodigo.com.br/artigo/1183/extreme-programming-programacao-em-par. aspx. Acesso em: 4 jun. 2020. UEMURA, T.; LEAL, G. C. L. Proposta de melhoria para gerência de configuração de software em uma pequena empresa. 2019. Trabalho de Conclusão de Curso (Graduação em En- genharia de Produção) — Universidade Federal de Maringá, Maringá, 2019. Disponível em: http://www.dep.uem.br/gdct/index.php/dep_tcc/article/view/1830. Acesso em: 4 jun. 2020. Leitura recomendada BEZERRA JÚNIOR, J. E. Investigando o uso do Extreme Programming como uma meto- dologia de ensino para aplicações práticas da robótica educacional. 2018. Dissertação (Mestrado em Ciência da Computação) — Universidade do Estado do Rio Grande do Norte, UniversidadeFederal Rural do Semiárido, Mossoró, 2018. Disponível em: https://repositorio.ufersa.edu.br/bitstream/prefix/874/1/Jos%c3%a9EBJ_DISSERT.pdf. Acesso em: 4 jun. 2020. Método XP e suas práticas10 CAMPELO, R. E. C. XP-CMM2: um guia para utilização de Extreme Programming em um ambiente nível 2 do CMM. 2003. Dissertação (Mestrado em Ciências da Compu- tação) — Centro de Informática, Universidade Federal de Pernanbuco, Recife, 2003. Disponível em: https://repositorio.ufpe.br/bitstream/123456789/2523/1/arquivo4794_1. pdf. Acesso em: 4 jun. 2020. GOMES, A. F. Agile: desenvolvimento de software com entregas frequentes e foco no valor de negócio. São Paulo: Casa do Código, 2014. LODDI, S. A. et al. Metodologias ágeis: um exemplo de aplicação da Extreme Program- ming (XP). FaSCi-Tech, v. 1, n. 3, 2016. Disponível em: https://www.fatecsaocaetano.edu. br/fascitech/index.php/fascitech/article/view/35. Acesso em: 4 jun. de 2020. SILVA, V. H. C. et al. Ferramenta de apoio à análise de dados agrometeorológicos para tomada de decisões. In: ESCOLA REGIONAL DE COMPUTAÇÃO BAHIA, ALAGOAS E SERGIPE, 18., 2018, Aracaju. Anais [...]..Porto Alegre: SBC, 2018. p. 111–116. Disponível em: https://sol.sbc.org.br/index.php/erbase/article/view/8530/8431. Acesso em: 4 jun. 2020. Os links para sites da web fornecidos neste capítulo foram todos testados, e seu fun- cionamento foi comprovado no momento da publicação do material. No entanto, a rede é extremamente dinâmica; suas páginas estão constantemente mudando de local e conteúdo. Assim, os editores declaram não ter qualquer responsabilidade sobre qualidade, precisão ou integralidade das informações referidas em tais links. 11Método XP e suas práticas Dica do professor Das doze práticas estabelecidas pelo método XP, a prática de refactoring é essencial para que mudanças possam ser realizadas no processo de desenvolvimento de sistemas sem que essa alteração prejudique o comportamento esperado de suas funcionalidades. Ou seja, a estrutura interna do sistema é mantida inalterada. Essa é uma prática que mantém o código organizado, minimizando as chances de introdução de bugs. Sua prática é utilizada constantemente durante a programação em pares; enquanto um programador desenvolve as linhas de código, o outro, muitas vezes, sugere refactoring no código que acabou de ser criado. O processo de refactoring pode ser realizado após o código estar pronto e devidamente testado, e essa prática tem por finalidade melhorar sua funcionalidade. O refactoring pode ser pequeno, alterando-se poucas linhas de código, ou abrangente, mudando a lógica de uma determinada tarefa para otimizá-la e aumentar sua produtividade. Na Dica do Professor, você irá aprofundar seus conhecimentos na prática de refactoring, entenderá sua estrutura e como são organizados os planos de ações para sua implementação em equipes de trabalho que desenvolvem projetos com a metodologia XP. Aponte a câmera para o código e acesse o link do conteúdo ou clique no código para acessar. https://fast.player.liquidplatform.com/pApiv2/embed/cee29914fad5b594d8f5918df1e801fd/d65b713bd67cd9c4e5d0e9069d0e3f53 Exercícios 1) No método XP, em relação às práticas de projeto, os desenvolvedores contam com auxílio mútuo para a resolução dos diversos problemas enfrentados na programação. Nesse tipo de desenvolvimento, todos devem respeitar um padrão de codificação e são forçados a realizar testes constantes. Em relação às práticas de desenvolvimento XP, a qual prática se refere o texto? A) Código padronizado. B) Releases pequenos. C) Testes constantes. D) Código coletivo. E) Programação em par. 2) As práticas estabelecidas pelo método XP são utilizadas em vários projetos atuais. Suas diretrizes são seguidas há anos por equipes de desenvolvimento e sua eficácia é constatada a cada produção de um novo software. Uma das práticas essenciais apresentadas pela metodologia XP é a refatoração (refactoring). Em relação a essa prática, é correto afirmar que: A) Sua característica principal é a capacidade de mudar o código sem causar problema na estrutura do sistema, ou seja, pode sofrer melhorias sem afetar outras funcionalidades do sistema. B) Sua característica é permitir que os programadores possam realizar testes frequentes no sistema, por realocar os melhores trechos de códigos implementados. C) Sua função é alocar equipes de trabalho verificando os pontos fortes e fracos de cada equipe, para a produção de códigos confiáveis. D) Apesar da refatoração permitir rotinas de trabalho exaustivo por parte da equipe, elas não poderão ultrapassar as 40 horas trabalhadas. E) Sua característica principal é o retrabalho, ou seja, reescrever todo o código para impedir alterações futuras que possam comprometer a estrutura do projeto final. 3) A dinâmica do trabalho em pares no método XP permite que visões diferentes sejam contempladas no decorrer da programação; enquanto um programador digita um trecho de códigos, o outro poderá analisar os códigos como um todo e apontar possíveis problemas. Em relação à prática de programação em pares, é correto afirmar que: A) Os grupos são escolhidos a partir de avaliações internas na empresa. Seu desempenho satisfatório nos testes realizados será fator essencial para o início dos trabalhos. B) Os gerentes de projetos são os únicos que escolhem as equipes de trabalho. A equipe é determinada pela experiência prévia de cada programador desempenhada em projetos anteriores. C) A realocação de grupos ocorre quando são encontrados bugs nos códigos-fonte da equipe. Depois de solucionar os bugs, outra equipe é formada para dar continuidade à funcionalidade. D) Existem duas categorias nas duplas de trabalho: uma é formada por programadores experientes e a outra é formada por programadores novatos. Após essa categorização, são formadas as duplas, que seguirão juntas por todo o projeto. E) Os programadores têm autonomia na sugestão da montagem da equipe de trabalho. Eles deverão oferecer todo o suporte necessário para o sucesso de sua equipe de trabalho, mesmo que seja necessário auxiliar um colega inexperiente. A prática da integração contínua faz parte do conjunto das doze práticas fundamentais para o desenvolvimento de um projeto de programação extrema. O conjunto de todas as práticas permite à equipe excelência em seus processos. Analise as afirmações a seguir sobre a prática de interação contínua. I - Testar toda a aplicação sempre que uma nova funcionalidade é implementada. II - Testar os códigos do sistema com o uso de ferramentas automatizadas de desenvolvimento ou a partir de rotinas manuais definidas pelos programadores. III - Une o trabalho desenvolvido por uma equipe de trabalho, composta por dois programadores (programação em par), a todo o código do projeto. IV - Estabelecer que o par de desenvolvedores separe todo o código testado do restante 4) gerado de forma coletiva; essa prática impede a interferência de inserção de códigos em métodos de outras equipes. V - Produzir trabalho disciplinado e organizado com alocação de horas extras essenciais para a finalização e homologação do projeto. As afirmações que representam de forma correta as práticas de interação contínua são: A) I - II - V. B) I - II - III. C) I - III - IV - V. D) I - II - III - IV - V. E) I - II - III - V. 5) Para aplicar os valores e princípios durante o desenvolvimento de software, a XP propõe uma série de práticas. Há uma confiança muito grande na sinergia entre elas; os pontos fracos de cada uma são superados pelos pontos fortes de outras. Algumas práticas apresentam as seguintes características: I - Reunião que conta com a colaboração de todos da equipe. O cliente, bem como todos os envolvidos no projeto, deverá fazer parte dessa reunião. II - Controle de horas excedentes com o objetivo de evitar queda de produtividade e qualidade no código gerado. III - Visão geral do sistema apresentada de forma simples, para ser compartilhadaentre clientes e desenvolvedores. IV - Várias iterações que ocorrem no decorrer do projeto, gerando casos de usos simplificados. Em relação as práticas de metáfora, releases pequenos, jogo de planejamento e semana de quarenta horas, a alternativa que representa, respectivamente, as características de cada prática é: A) III - II - I - IV. B) I - II - III - IV. C) III - IV - I - II. D) I - II - IV - III. E) III - IV - II - I. Na prática Em todo projeto desenvolvido, os processos de mudanças são inevitáveis e fundamentais para que todo o sistema satisfaça o levantamento de requisitos do cliente. Interações constantes também criam recursos novos e podem alterar o perfil da regra de negócio. O uso da prática de integração contínua é extremamente importante nessa etapa, pois permite que mudanças no projeto não afetem negativamente o seu resultado. Dessa forma, ele mantém o projeto íntegro e sempre disponível para ser colocado em produção. Neste etapa da unidade de aprendizagem você conhecerá um estudo de caso sobre as falhas do desenvolvimento de um projeto de software de uma companhia pertencente ao ramo varejista chamada MantiqueiraMultiStore, que poderiam ser corrigidas aplicando o método XP. Aponte a câmera para o código e acesse o link do conteúdo ou clique no código para acessar. https://statics-marketplace.plataforma.grupoa.education/sagah/5783f299-3872-49bc-a81d-22919372ed96/50363cd4-e63b-4039-a875-89f325d95c94.jpg Saiba + Para ampliar o seu conhecimento a respeito desse assunto, veja abaixo as sugestões do professor: Uso do eXtreme Programming como uma metodologia de ensino para aplicações práticas da robótica educacional Dois estudos de casos envolvendo a metodologia XP, aplicada em uma escola pública com alunos do primeiro ano do Ensino Médio. Aponte a câmera para o código e acesse o link do conteúdo ou clique no código para acessar. Ferramenta de apoio à análise de dados agrometeorológicos para tomada de decisões O uso da eXtreme Programming para auxiliar na construção de software para apoio à analise de dados agrometeorológicos. Aponte a câmera para o código e acesse o link do conteúdo ou clique no código para acessar. Experiência de trabalho com eXtreme Programming, Pair Programming e TDD O programador André Hil conta sua experiência com eXtreme Programming, Pair Programming e TDD. https://repositorio.ufersa.edu.br/bitstream/prefix/874/1/Jos%c3%a9EBJ_DISSERT.pdf https://sol.sbc.org.br/index.php/erbase/article/download/8530/8431/ Aponte a câmera para o código e acesse o link do conteúdo ou clique no código para acessar. https://www.youtube.com/embed/I0se-r9b8L8
Compartilhar