Programação Extrema

Transcrição

Programação Extrema
INSTITUTO FEDERAL DE EDUCAÇÃO CIÊNCIA E TECNOLOGIA DO MARANHÃO – IFMA
Programação Extrema
Laboratório de Programação Extrema
(Equipe de Desenvolvimento e Documentação do
Projeto)
Prof. Mauro Lopes
Programação Extrema – Prof. Mauro Lopes
1 - 17
31
INSTITUTO FEDERAL DE EDUCAÇÃO CIÊNCIA E TECNOLOGIA DO MARANHÃO – IFMA
Objetivos
• Iremos aqui iniciar a construção de um pequeno
sistema de software de forma colaborativa
utilizando XP. Abordaremos as práticas da
metodologia e as práticas de programação que
trazem agilidade ao desenvolvimento de software.
Abordaremos desde tópicos técnicos como testes
automatizados, design patterns, refatoração e o
processo de build até a integração contínua e o uso
de controle de versão. Além disso, falaremos dos
valores ágeis, das reuniões diárias, jogo do
planejamento, métricas de qualidade de código e
controle geral do processo de desenvolvimento.
Programação Extrema – Prof. Mauro Lopes
2 -17
INSTITUTO FEDERAL DE EDUCAÇÃO CIÊNCIA E TECNOLOGIA DO MARANHÃO – IFMA
Plano de Aula
• A Equipe de Desenvolvimento
–
–
–
–
–
Gerente de Projeto
Coach
Analista de Teste
Redator Técnico
Desenvolvedor
• A Documentação do Projeto
–
–
–
–
–
Por que documentar ?
Até que ponto documentar ?
O uso incorreto da documentação
Quando documentar ?
Quais documentos compõem a documentação do XP ?
Programação Extrema – Prof. Mauro Lopes
3 -17
INSTITUTO FEDERAL DE EDUCAÇÃO CIÊNCIA E TECNOLOGIA DO MARANHÃO – IFMA
A Equipe de Desenvolvimento
• Uma equipe que utilize XP é composta por pessoas que
exerçam ao menos os seguintes papéis:
– Gerente de Projeto
– Analista de Teste
– Redator Técnico
– Desenvolvedor
Programação Extrema – Prof. Mauro Lopes
4 -17
INSTITUTO FEDERAL DE EDUCAÇÃO CIÊNCIA E TECNOLOGIA DO MARANHÃO – IFMA
A Equipe de Desenvolvimento
• Gerente de Projeto
– O Gerente de Projeto é responsável principalmente pelo
relacionamento da equipe de desenvolvimento com o cliente;
– Ele é responsável por reportar ao cliente o andamento da
equipe;
– O Gerente do Projeto deve servir como filtro para a equipe de
desenvolvimento – evitar aspectos administrativos e
burocráticos;
– Responsável pelo contato com as pessoas que a equipe precisa
(cliente), prover equipamentos, softwares, itens de escritório,
etc;
– Gerente do Projeto e o Coach devem estar alinhados;
– Um grande problema: Gerente com visão baseado nos
processos tradicionais !!!
Programação Extrema – Prof. Mauro Lopes
5 -17
INSTITUTO FEDERAL DE EDUCAÇÃO CIÊNCIA E TECNOLOGIA DO MARANHÃO – IFMA
A Equipe de Desenvolvimento
• Coach
– O papel do Coach é assegurar que equipe respeite e utilize
diariamente os valores e práticas do XP;
– “O processo de desenvolvimento ágil deve atuar fortemente
sobre o comportamento das pessoas que formam a equipe” –
responsabilidade do Coach.
– Por isso é necessário alguém que atue verificando diariamente
o andamento da equipe mostrando eventuais erros que
venham acontecendo;
– O Coach possui bastante conhecimento técnico e conhece
profundamente o processo de desenvolvimento ágil;
– O Coach é quem orienta o desenvolvimento e é o responsável
técnico pelo sistema.
Programação Extrema – Prof. Mauro Lopes
6 -17
INSTITUTO FEDERAL DE EDUCAÇÃO CIÊNCIA E TECNOLOGIA DO MARANHÃO – IFMA
A Equipe de Desenvolvimento
• Analista de Teste
– O Analista de Teste é responsável por testar e garantir a
qualidade do sistema;
– Deve ajudar o cliente a escrever os testes de aceitação e deve
assegurar que o sistema esteja respeitando todos eles;
– Uma Equipe de desenvolvimento não pode deixar de ter este
profissional, isso evita erros catastróficos no processo;
– Um Analista de Testes não pode ser um desenvolvedor
(influenciado pela codificação ou ter visões tendenciosas). Este
deve ter uma visão mais próximo do cliente;
– Analista de Testes = Redator Técnico (ser a mesma pessoa) –
estas ações podem ser compartilhadas;
Programação Extrema – Prof. Mauro Lopes
7 -17
INSTITUTO FEDERAL DE EDUCAÇÃO CIÊNCIA E TECNOLOGIA DO MARANHÃO – IFMA
A Equipe de Desenvolvimento
• Redator Técnico
– O Redator Técnico é responsável por manter as
documentações do sistema devidamente atualizadas;
– Evita que desenvolvedores se envolvam fortemente com
documentação (codificar, codificar, codificar...)
– Para gerar a documentação o Redator deve trabalhar em
sintonia com os desenvolvedores e com o cliente;
– A documentação deve refletir bem o código e os processos de
negócios que serão apoiados pelo sistema;
Programação Extrema – Prof. Mauro Lopes
8 -17
INSTITUTO FEDERAL DE EDUCAÇÃO CIÊNCIA E TECNOLOGIA DO MARANHÃO – IFMA
A Equipe de Desenvolvimento
• Desenvolvedor
– É a pessoa que analisa, projeta e codifica o sistema;
– Dentro do XP não há divisão entre analista, projetista,
programadores, etc;
– Cada desenvolvedor exerce estes diferentes papeis em diversos
momentos do projeto;
– Naturalmente existem desenvolvedores com níveis diferentes
de habilidade. Geralmente estas diferenças são minimizadas
através das práticas do XP (programação em pares, etc);
– Em uma equipe inicial de desenvolvedores XP, o papel do
Coach é fundamental.
Programação Extrema – Prof. Mauro Lopes
9 -17
INSTITUTO FEDERAL DE EDUCAÇÃO CIÊNCIA E TECNOLOGIA DO MARANHÃO – IFMA
Documentação do Projeto
• Por que documentar ?
– Softwares complexos são desenvolvidos por diversas pessoas;
– A manutenção é um evento comum no processo de
desenvolvimento de sistemas;
– E durante a manutenção volta-se diversas vezes ao código,
seja para fazer correções de problemas que não foram
identificados ao longo do desenvolvimento seja para
acrescentar novas funcionalidades, ou para alterar as já
existentes;
– O desenvolvedor deverá compreender o código para alterá-lo
de forma segura e rápida;
– A documentação é importante pois dará suporte ao
desenvolvedor mesmo que este não tenha participado do
desenvolvimento do Sistema.
Programação Extrema – Prof. Mauro Lopes
10 -17
INSTITUTO FEDERAL DE EDUCAÇÃO CIÊNCIA E TECNOLOGIA DO MARANHÃO – IFMA
Documentação do Projeto
• Até que ponto documentar ?
– O XP considera que o código é o principal elemento de um
projeto de software;
– No entanto um projeto de software não produz apenas código,
teremos testes de unidade, testes de aceitação,
documentações entre outros;
– Documentar não é o objetivo principal do projeto. O tempo
que se gasta documentando poderia ser usado para
codificação;
– Porém não se deve cometer excessos e nem omissões;
– A Refatoração, código coletivo e de programação em par fazem
com que o código gerado seja mais limpo que o normal;
– Importante: As práticas são importantes mas não eliminam a
necessidade de documentar, apenas reduz o esforço.
Programação Extrema – Prof. Mauro Lopes
11 -17
INSTITUTO FEDERAL DE EDUCAÇÃO CIÊNCIA E TECNOLOGIA DO MARANHÃO – IFMA
Documentação do Projeto
• O uso incorreto da documentação
– Alguns projetos tem total ausência de documentação: projetos
pequenos ou então totalmente caóticos;
– Os Processos Tradicionais recomendam a criação de inúmeros
artefatos ao longo do desenvolvimento;
– Esta prática é herança de uma visão em que o custo de uma
alteração no software cresce exponencialmente;
– No entanto temos: A Evolução das ferramentas de
desenvolvimento contra a baixa evolução das ferramentas de
documentação;
– Um grande problema: Dificuldade em manter documentação
atualizada e consistente com o código;
– Como confiar em um documento que não reflete a realidade ?
Programação Extrema – Prof. Mauro Lopes
12 -17
INSTITUTO FEDERAL DE EDUCAÇÃO CIÊNCIA E TECNOLOGIA DO MARANHÃO – IFMA
Documentação do Projeto
• Quando documentar ?
– O XP produz a documentação de forma diferente. Ele
documenta apenas o mínimo necessário antes de chegar ao
código;
– A documentação do XP descreve aquilo que foi efetivamente
codificado. Ele não descreve aquilo que se espera que seja
codificado – como em um processo tradicional;
– No Processo Tradicional documentamos bastante antes de
chegar até o código, no XP não;
– Documentar depois de codificar é perigoso. Deve-se concluir a
documentação de uma iteração ainda dentro da iteração;
– Documentar não pode ser deixado para o final do projeto;
– Como a iteração é um espaço pequeno gerando pouca
funcionalidade -> pouca documentação.
Programação Extrema – Prof. Mauro Lopes
13 -17
INSTITUTO FEDERAL DE EDUCAÇÃO CIÊNCIA E TECNOLOGIA DO MARANHÃO – IFMA
Documentação do Projeto
• Documentos que compõe a documentação do XP
–
–
–
–
–
–
–
–
–
–
–
Estória
Testes de Aceitação
Testes de Unidade
Javadoc
Modelo de Classes
Modelo de Dados
Processos de Negócio
Manual do Usuário
Acompanhamento diário
Acompanhamento do Projeto
Fotos
Programação Extrema – Prof. Mauro Lopes
14 -17
INSTITUTO FEDERAL DE EDUCAÇÃO CIÊNCIA E TECNOLOGIA DO MARANHÃO – IFMA
Perguntas
Página do Professor Mauro:
http://www.dai.ifma.edu.br/~mlcsilva
Programação Extrema – Prof. Mauro Lopes
15 -17
INSTITUTO FEDERAL DE EDUCAÇÃO CIÊNCIA E TECNOLOGIA DO MARANHÃO – IFMA
Próxima Aula...
• Laboratório de Programação Extrema: Usando o GIT
Programação Extrema – Prof. Mauro Lopes
16 -17
INSTITUTO FEDERAL DE EDUCAÇÃO CIÊNCIA E TECNOLOGIA DO MARANHÃO – IFMA
Referências
• Materiais avulsos da Internet e o Livro Extreme
Programming, Vinicius Manhães Teles, 1ª Edição - Editora
Novatec, 316 páginas.
Programação Extrema – Prof. Mauro Lopes
17 -17

Documentos relacionados

Programação Extrema

Programação Extrema Objetivos • Iremos aqui iniciar a construção de um pequeno sistema de software de forma colaborativa utilizando XP. Abordaremos as práticas da metodologia e as práticas de programação que trazem ag...

Leia mais

Aula 13

Aula 13 Usando o MySql ADO.NET Provider • MySqlConnection: Representa a conexão a uma instância que possui uma fonte de dados MySQL; • MySqlCommand: Representa os comandos SQL a serem executados em uma fon...

Leia mais

Aula 12

Aula 12 MySql ADO.NET Provider • O ADO.NET provê uma arquitetura orientada a objetos para comunicação entre a aplicação .NET e uma fonte de dados; • A fonte de dados pode ser qualquer uma que API dê suport...

Leia mais