Buscar

Unidade 4 - Aula 13

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 30 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 30 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 30 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

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

Continue navegando