Você está na página 1de 14

Escola Superior Pedagógica do Bengo

DEPARATAMENTO DE ENSINO, INVESTIGAÇÃO DE CIÊNCIAS EXACTAS


Curso de Licenciatura em Ensino de Informática

Engenharia de Software

Metodologia de Programação Extrema XP

Grupo nº 03
Turma: A – M
Período: Regular
Ano académico: 3º
Ano lectivo: 2022/2023

Grupo nº 02
O Docente:
Turma: A – M
Período: Regular Eng. António Makumbi
Ano académico: 2º
Ano lectivo: 2021/2022
Caxito, Janeiro de 2023

O
Escola Superior Pedagógica do Bengo
DEPARATAMENTO DE ENSINO, INVESTIGAÇÃO DE CIÊNCIAS EXACTAS
Curso de Licenciatura em Ensino de Informática

Engenharia de Software

Metodologia de Programação Extrema XP

Autores

Diolinda Nicolau

Florença Sonde

Francisco Alberto

Gabriel Canombo

Garcia Diazambo

Ismael Voza

Laurindo Moisés

Matondo Paulino

Rosa Raúl

Caxito, Janeiro de 2023


Sumário

INTRODUÇÃO ........................................................................................................ 1

1. Programação Extrema XP ............................................................................. 2

1.1. Conceito da Programação Extrema .......................................................... 3

1.1.1. Princípios ............................................................................................... 3

1.2. Características da metodologia XP ........................................................... 4

1.3. Valores da Metodologia XP ....................................................................... 5

1.4. Ciclo de vida de um projeto XP ................................................................. 7

1.5. Papeis envolvidos em Programação Extrema XP .................................... 8

1.6. Vantagens e desvantagens da metodologia XP......................................... 9

Conclusão ................................................................................................................ 10

Bibliografia .............................................................................................................. 11
INTRODUÇÃO

Hoje em dia, sistemas de software estão em todos os lugares, seja em grandes


empresas, em médias empresas e até no armazém do lado de sua casa, porque o software se
usado de maneira certa, ajuda e muito na organização de uma empresa. Softwares são usados
para vários fins, seja para educação, entretenimento, segurança entre outros.

Para que se tenha um software de alta qualidade é necessária uma engenharia de


software bem organizada. Ao longo dos anos, foram criadas várias metodologias de
desenvolvimento de projetos de software, buscando sempre melhorar a forma de como o
software é produzido, pois pesquisas apontam que a grande maioria dos projetos fracassam
ou não satisfazem plenamente o cliente.

Esse trabalho teve como objetivo demonstrar os conceitos da programação extrema


XP, mas focando uma prática em especial: a programação em par. Além de passar todos os
conceitos, foi realizado um estudo de caso para que esses conceitos fossem aplicados para
analisar se de fato a programação em par funcionaria, e assim, mostrar para empresas que
tenham interesse em usar tal prática que ela pode vir a aumentar a capacidade produtiva da
empresa.

1
1. Programação Extrema XP

A Programação Extrema XP é uma metodologia de desenvolvimento de software e


foi criada no ano de 1996, por Kent Bech, no departamento da montadora de carros Daimler
Crysler. O “XP” diverge das outras metodologias e pode ser aplicado facilmente em projetos
de alto risco devido ao seu dinamismo. Por ser uma metodologia bem organizada e com um
conjunto de regras bem definido dentro do modelo, o “XP” vem ganhando um grande número
de adeptos no mercado e é um modelo de desenvolvimento onde o cliente sempre estará
presente, acompanhando a evolução de seu produto e também opinando em algumas
situações, fato que aumenta a probabilidade de satisfação ao término do projeto. É portanto,
uma solução que pode minimizar os problemas atuais descritos na literatura sobre o alto
índice de projetos que fracassam.

O “XP” oferece boas condições de trabalho para que os desenvolvedores tenham


eficiência em suas tarefas e devido a sua padronização de projeto, quando um grupo de
desenvolvedores termina suas tarefas, eles já sabem exatamente o próximo passo a ser
seguido. Toda esta organização que o “XP” prevê, é devido a alguns lemas que devem ser
seguidos por seus usuários: Comunicação, Simplicidade, Feedback e Coragem. (mais a frente
será detalhado cada um destes itens).

A metodologia XP é fortemente indicada para times com equipes pequenas de


desenvolvimento com até no máximo 15 pessoas, que concordem em seguir as práticas. A
maioria das práticas XP também podem ser adotadas por desenvolvedores individualmente.
Devido ao fato da metodologia XP ser muito bem detalhada e explicado, e não existir grandes
dificuldades em seguir suas práticas, entretanto, é extremamente difícil e arriscado seguir
todas as práticas rigorosamente e ao pé da letra de uma única vez

2
1.1. Conceito da Programação Extrema

O “XP” vem dando certo nas empresas, pois com ele são criados softwares de melhor
qualidade e com um investimento menor, mas para que isso aconteça é obedecida uma série
de princípios, valores e práticas que divergem totalmente da forma tradicional de se produzir
software.

1.1.1. Princípios

• Auto- semelhança

O princípio da auto-semelhança sugere que, quando equipes “XP” encontrarem


soluções que funcionem em um contexto, também procurem adotá-las em outros, mesmo que
em escalas diferentes. Por exemplo, o ritmo básico de desenvolvimento em “XP” é escrever
um teste que falha e então fazê-lo funcionar. Esse ritmo opera de forma semelhante em
diferentes escalas.

• Benefício Mútuo

As práticas do XP são estruturadas de modo a serem mutuamente benéficas para todos os


envolvidos em um projeto de software. Programação em par, por exemplo, beneficia os
programadores de inúmeras formas. Mas, também beneficia os clientes, porque costuma ser raro
encontrar bugs em funcionalidades implementadas em par. Gerentes, por sua vez, também se
beneficiam porque a programação em par ajuda a disseminar conhecimento na equipe, o que permite
que ela supere mais facilmente a ausência de um de seus membros enquanto estiver de férias, por
exemplo

• Diversidade

Essa prática sugere que os desenvolvedores da equipe possuam ideias diferentes, pois
na hora de resolver um determinado problema, cada um possa apresentar um ponto de vista
diferente e assim escolher a melhor solução para a resolução do problema.

3
• Falha

Desenvolvimento de software não é uma atividade simples. Obviamente surgirão


alguns impasses durante o desenvolvimento como por exemplo na hora em que surge uma
dúvida de como solucionar um determinado problema.

• Humanismo

Pessoas desenvolvem software. Metodologias e ferramentas apenas as ajudam a


realizar o trabalho. Portanto, é importante compreender a natureza humana para que
possamos potencializar o que ela tem de melhor e suprimir o que tem de pior.

• Melhoria

O princípio de melhoria se resume em sempre se doar ao máximo no projeto, para


que a taxa de erros seja mínima. Uma das maneiras de se obter melhorias é ter um feedback
frequente com os membros da equipe, o que ajudará a disseminar o conhecimento de forma
eficiente e deixará o grupo sincronizado.

1.2. Características da metodologia XP

• Se diferencia das metodologias tradicionais principalmente porque coloca


mais ênfase na adaptabilidade do que na previsibilidade.
• É aplicado dinamicamente durante o ciclo de vida do software.
• É capaz de se adaptar às mudanças de requisitos.
• Indivíduos e interações são mais importantes do que processos e Ferramentas.
• As interações individuais e da equipe de desenvolvimento sobre o processo e

as ferramentas.

4
1.3. Valores da Metodologia XP

Os valores originais da programação extrema são: simplicidade, comunicação,


feedback (feedback) e coragem. Um quinto valor, respeito, foi adicionado na segunda
edição de Programação extrema aplicada. Os cinco os valores são detalhados abaixo:

• Simplicidade

A simplicidade é a base da programação extrema. O design é simplificado para


acelerar o desenvolvimento e facilitar a manutenção.

Um design complexo do código juntamente com modificações sucessivas por


diferentes desenvolvedores faz com que a complexidade aumente exponencialmente.
Para manter a simplicidade é necessário refatorar o código, este é a maneira de manter
seu código simples conforme ele cresce.

Aplica-se também a simplicidade na documentação, desta forma o código deve ser


comentado na sua devida medida, tentando que sim que o código é autodocumentado.
Para isso, os nomes dos variáveis, métodos e classes. Nomes longos não diminuem a
eficiência do código ou tempo de desenvolvimento graças às ferramentas de
preenchimento automático e refatoração que existem atualmente.

Aplicando a simplicidade junto com a autoria coletiva do código e a programação


em pares garante que, quanto maior for o projeto, mais toda a equipe conhecerá mais
e melhor o sistema completo.

• Comunicação

A comunicação ocorre de diferentes maneiras. Para programadores o código se


comunica melhor quanto mais simples for.

Se o código for complexo, você deve fazer um esforço para torná-lo inteligível. O
código a autodocumentação é mais confiável do que os comentários, pois estes logo

5
eles ficam desatualizados com o código à medida que ele é modificado. Só deve ser
comentado o que não vai mudar, por exemplo o objetivo da uma classe ou a
funcionalidade de um método. Os testes de unidade são outra maneira de
comunicação, pois descrevem o desenho das classes e os métodos aos quais mostrar
exemplos concretos de como usar sua funcionalidade.

Os programadores se comunicam constantemente graças à programação em pares. A


comunicação com o cliente é fluida, pois o cliente faz parte da equipe de
desenvolvimento. O cliente decide quais recursos têm prioridade e você deve estar
sempre disponível para responder a perguntas.

• Comentários (Feedback)

À medida que o cliente é integrado no projeto, a sua opinião sobre o estado do projeto
é conhecida em tempo real.

Ao realizar ciclos muito curtos após os quais os resultados são mostrados, minimiza
a necessidade de refazer peças não conformes e ajuda o programador que foca no que é mais
importante. Considere os problemas decorrentes de ciclos muito longos.

Meses de trabalho podem ser jogados fora devido a mudanças nos critérios do cliente
ou mal-entendidos por parte da equipe de desenvolvimento. O código também é uma fonte
de feedback graças ao ferramentas de desenvolvimento. Por exemplo, os testes de unidade
informam sobre o estado de saúde do código. Executar testes de unidade com frequência
permite descobrir bugs devido a mudanças recentes no código.

• Coragem

Muitas das práticas envolvem coragem. Uma delas é sempre projetar e agende para
hoje e não para amanhã. Este é um esforço para evitar ficam atolados no design e exigem
muito tempo e trabalho para implementar tudo o mais no projeto. A coragem permite
desenvolvedores que se sintam à vontade para reconstruir seu código sempre que necessário.

6
Isso significa revisar o sistema existente e modificá-lo, se necessário mudanças futuras serão
mais facilmente implementadas. Outro exemplo de bravura é saber quando descartar código:
coragem para remover código-fonte obsoleto, sem não importa quanto esforço e tempo foram
investidos na criação desse código. Também, bravura significa persistência: um programador
pode ficar sem avançar em um problema complexo por um dia inteiro, e então resolvê-lo
rapidamente um dia em seguida, somente se for persistente.

1.4. Ciclo de vida de um projeto XP

Um projeto XP atravessa algumas fases durante o seu ciclo de vida. Essas fases são
compostas de várias tarefas que são executadas, denominadas: exploração, planejamento
inicial, iterações do release, produção, manutenção e morte.

A fase de exploração: é anterior à construção do sistema. Nela, investigações de


possíveis soluções são feitas e verifica-se a viabilidade de tais soluções. Os programadores
elaboram possíveis arquiteturas e tentam visualizar como o sistema funcionará
considerando o ambiente tecnológico (hardware, rede, software, performance, tráfego) onde
o sistema irá rodar.

A fase de planejamento inicial: deve ser usada para que os clientes concordem em
uma data para lançamento do primeiro release. O planejamento funciona da seguinte forma:
Os programadores, juntamente com o cliente, definem as estórias (use case simplificados) a
serem implementadas e as descrevem em cartões. Os programadores assinalam uma certa
dificuldade para cada estória e, baseados na sua velocidade de implementação, dizem quantas
estórias podem implementar em uma iteração. Depois, os clientes escolhem as estórias de
maior valor para serem implementadas na iteração – isso é chamado planejamento de
iteração.

Na fase das iterações do release: são escritos os casos de teste funcionais e de


unidade. Os programadores vão seguindo mais ou menos o seguinte fluxo de atividades na
seguinte ordem (Em cada iteração): escrita dos casos de testes; projeto e refatoramento;
codificação; realização dos testes; e integração. À medida que esse fluxo vai sendo seguido,
7
o sistema vai sendo construído segundo os princípios, valores e práticas apresentados nas
seções anteriores.

Fase de produção: Depois do final do primeiro release, considera-se o início da fase


de produção onde cada release subsequente do sistema, depois de construído, é colocado para
rodar em um ambiente que simula o ambiente de produção para ver seu comportamento em
termos de performance. Pode-se fazer testes de aceitação adicionais para simular o
funcionamento real do sistema no ambiente alvo.

A fase de manutenção: pode ser considerada como uma característica inerente a um


projeto XP. Em XP você está simultaneamente produzindo novas funcionalidades, mantendo
o sistema existente rodando, incorporando novas pessoas na equipe e melhorando o código.
Mecanismos como: refatoramento, introdução de novas tecnologias, e introdução de novas
ideias de arquitetura podem ser utilizados em um projeto XP.

A fase de morte: corresponde ao término de um projeto XP. Existem duas razões


para se chegar ao final de um projeto, uma boa e a outra ruim. A boa razão é quando o cliente
já está satisfeito com o sistema existente e não enxerga nenhuma funcionalidade que possa
vir a ser implementada no futuro.

1.5. Papeis envolvidos em Programação Extrema XP

XP relaciona papeis, com responsabilidades explicitas, a serem desempenhados em


um projeto. Os mais importantes são:

• Programador: é o coração do XP, responsável por projetar o software, codificar,


implementar teste, estimar as suas tarefas;
• O Cliente: responsável por estabelecer prioridades, e escopo, escrever estórias,
escrever os testes funcionais. Deve estar disponível no local de desenvolvimento para
esclarecimento de dúvidas dos programadores.

8
• Testador: é o responsável por apoiar o cliente a escolher e escrever os testes
funcionais, além de assegurar a execução e reportagem dos problemas identificados
nos testes funcionais.
• Acompanhador (tracker): é a consciência da equipe responsável por reportar as
métricas do projeto promovendo visibilidade sobre a acuidade das estimativas e
progresso do projecto.
• Técnico (coach): assimila grande parte das responsabilidades de um gerente de
projetos de software, é responsável por identificar problemas e resolve-los para que
a equipe possa trabalhar da melhor forma, não requer conhecimento técnico profundo.

1.6. Vantagens e desvantagens da metodologia XP

Vantagens:

• Programação organizada.
• Menor índice de erros.
• Satisfação do programador.

Desvantagens:

• É aconselhável usá-lo apenas em projetos de curto prazo.


• Altas comissões em caso de falha.

9
Conclusão

Após a realização do presente trabalho, foi possível passar vários conceitos sobre a
metodologia de desenvolvimento de software Programação Extrema XP e é claro, focando a
prática da programação em par. Com o estudo de caso realizado, foi possível demonstrar os
benefícios e desvantagens dessa prática e ela se mostrou mais positiva do que negativa.
Práticas como a troca de ideias, inspeção do código, disseminação de conhecimento se
mostraram eficientes durante o estudo de caso.

Lembrando que esse trabalho não prova que a programação XP é a melhor solução
para se trabalhar em uma empresa e sim dá indícios de que ela pode vir a funcionar em um
ambiente de trabalho, porém isso vai depender muito do grupo e pessoas que a empresa tiver,
pessoas que não se relacionam em grupo, que são individualistas, dificilmente conseguirão
trabalhar com a programação em par.

10
Bibliografia

Barbosa, w. H. (2005). Metodologia extrene programming. Marília.

Machado, t. G. (2009). Metodologia ágil – extreme programming:. Assis.

Melo, t. E. (2004). Princípios e práticas de extremme programming.

Presner, d. H. (2014). Estudo sobre metodologias ágeis de desenvolvimento aplicando a


metodologia extreme programming em uma aplicação web. Ponta grossa.

Urdangarin, r. G. (2008). Uma investigação sobre o uso de práticas extreme programming


no desenvolvimento global de software. Porto alegre.

11

Você também pode gostar