Buscar

Métodos Ágeis e Práticas de XP

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 27 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 27 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 27 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

ACH 2006 – Engenharia de Sistemas de 
Informação I
Prof. Marcos L. Chaim
Métodos Ágeis
 
Extremme Programming
A matéria-prima de XP são:
Quatro valores: comunicação, simplicidade, 
realimentação e coragem.
Os princípios;
As quatro atividades básicas -- codificação, teste, 
listening e criação de arquitetura.
Porém, XP é feita mesmo por meio de práticas.
 
Práticas de XP
Planejamento;
Pequenas releases;
Metáfora;
Arquitetura Simples;
Teste;
Refactoring;
Programação em pares;
 
Práticas de XP
Propriedade coletiva;
Integração contínua;
Semana de 40-horas;
Cliente residente;
Padrões de codificação.
 
Planejamento
Os conhecedores do negócio (clientes e 
usuários) devem decidir sobre:
Escopo;
Prioridade;
Composição de releases:
quanto deve ser feito para que o software passe a ser útil para o 
negócio.
Data de entrega.
 
Planejamento
Programadores devem decidir sobre:
Estimativas;
Conseqüências;
Processo a ser utilizado:
definição do processo; ajuste à cultura, porém, este ajuste não deve 
ser prejudicial ao objetivo de produzir software;
Cronograma detalhado.
 
Pequenas releases
Toda release deve ser a menor possível, 
contendo os requisitos de negócios mais 
importantes.
Release deve fazer sentido como um todo.
É melhor planejar uma release para ser entregue 
em um mês do que em um ano.
 
Metáfora
Deve-se escolher uma metáfora que represente 
a idéia subjacente ao sistema.
Arquitetura vai ser um reflexo da metáfora.
Exemplo: 
Sistema de controle de projetos realizados em unidades 
de negócios distribuídas.
Arquivo central contém projetos contidos em folders.
 
Arquitetura simples
A arquitetura correta para o software em 
qualquer momento é aquela que:
Permite a execução de todos os casos de teste;
Não possui lógica duplicada;
Descreve tudo que é importante para os programadores;
Possui o menor conjunto de classes e métodos.
 
Teste
Um requisito do sistema que não possui um teste 
automatizado não existe.
Programadores devem escrever teste unitários 
de forma a ganhar confiança no seu código.
Clientes devem escrever casos de teste 
funcionais para obterem confiança no software 
desenvolvido.
Confiança no sistema aumenta com teste 
automatizado.
 
Refactoring
Ao implementar uma funcionalidade, o 
programador deve se perguntar:
há uma maneira tornar o programa mais simples para 
incluir essa funcionalidade e manter os casos de teste 
funcionando?
Se houver, então, ao tornar o programa mais 
simples, está-se realizando refactoring.
 
Programação em Pares
Todo código é gerado com duas pessoas 
olhando a mesma máquina, com um teclado e 
um mouse.
O programador que fica com o teclado e o 
mouse se preocupa com a melhor forma de 
implementação.
O outro tem preocupações mais estratégicas: 
Essa idéia funciona? Estão faltando casos de 
teste? Há uma maneira de fazer mais simples?
 
Programação em Pares
Atividade de programação é definida no início do dia com 
uma reunião matinal (stand-up meeting).
Encontro diário, de pé, em geral em um café da manhã, 
no qual são discutidos:
as atividades de programação, 
os problemas e soluções encontrados e 
comunicações gerais para manter o foco do grupo.
A reunião matinal não deve durar muito, por isso, é 
realizada de pé.
 
Propriedade coletiva
Em XP não existe propriedade individual de 
código.
Todos programadores têm responsabilidade 
sobre todo o sistema.
Nem todo mundo conhece cada parte da mesma 
maneira, mas todo mundo conhece algo sobre 
tudo.
 
Integração Contínua
O código deve ser integrado e testado depois de 
algumas horas.
Uma máquina deve ficar dedicada para 
integração.
Um par de programadores, depois de gerar 
código, deve:
carregar a release atual,
carregar suas modificações e 
rodar os testes até todos (100%) passarem.
 
Semana de 40 horas
As pessoas precisam de descanso para serem 
produtivas e criativas.
Horas extras são um sintoma de problemas 
sérios no projeto.
XP admite uma semana com horas extras; 
Duas já são uma indicação de problemas de 
estimativa e gerência do projeto.
 
Cliente residente
Um cliente deve estar disponível, no site, para 
responder dúvidas, disputas e ajustar prioridades 
menores.
Este cliente deve ser um usuário real do sistema.
Apesar de longe do seu site original, o cliente 
deve continuar a fazer o seu trabalho usual.
 
Padrões de codificação
Com todos os programadores podendo alterar 
qualquer parte do código, padrões de codificação 
é essencial em XP.
Os padrões devem:
exigir pouco esforço, caso contrário, não serão seguidos;
evitar duplicação de código;
enfatizar comunicação;
ser adotados voluntariamente.
 
Scrum
Desenvolvimento de um software é um processo 
que cria um produto mal definido.
Ou seja, a saída do processo não conhecida a 
priori.
Para resolver isto, a teoria de controle de 
sistemas exige realimentação constante.
Scrum procura atingir este objetivo produzindo 
realimentação constante, mantendo a equipe 
focada em atingir objetivos curtos.
 
Elementos do Scrum
Product backlog (PB):
Lista de features e tarefas prioritárias para o 
desenvolvimento do sistema.
Qualquer pessoa pode inserir um novo feature ou 
tarefa no product backlog.
Scrum master (SM):
Responsável por tomar conta do processo.
Remove os empecilhos que atravacam o processo.
Junto com o product owner, define quais os 
elementos PB serão resolvidos no Scrum Sprint.
 
Elementos do Scrum
Product owner (PO):
Definido pela gerência para gerenciar o PB:
Gerente de produto, de departamento ou projeto.
Deve manter o PB visível.
Scrum sprint (SS):
Esforço de desenvolvimento de um mês no qual a 
lista de elementos do PB estabelecido como 
prioritários serão resolvidos no Scrum Sprint.
No final desse esforço de desenvolvimento, deve-se 
ter um pedaço de funcionalidade apresentável e 
funcionando.
 
Elementos do Scrum
Daily scrum (DS):
Reunião diária na qual as dicisões e problemas do 
projeto são tomadas e discutidas. 
É gerenciada pelo o SM para eliminar dificuldades e 
manter a equipe focada no SS.
Scrum team (ST):
A equipe deve se comprometer a atingir o objetivo do 
SS.
A equipe possui autoridade para tomar a decisão que 
for necessária para atingir o objetivo.
 Copyright Marcos L. Chaim 200323
Resumo
Existem modelos para o processo de desenvolvimento de 
software.
Vimos diferentes modelos:
Com etapas bem formalizadas e outros nem tanto.
Não existe um modelo certo para o desenvolvimento de 
um SI qualquer.
Existe o modelo certo para o SI que uma determinada 
organização quer desenvolver.
Cabe aos desenvolvedores identificar este modelo para 
obter os melhores resultados.
 Copyright Marcos L. Chaim 200324
Exercícios
1. Compare as semelhanças e as diferenças 
entre os métodos ágeis apresentados?
2. Por que o processo Cascata não é ágil? 
Justifique sua resposta.
3. O RUP é um processo ágil? E o espiral? O 
Explique sua resposta. 
 
 Copyright Marcos L. Chaim 200325
Exercício em equipe para entregar
1. Escrever as histórias de usuário do projeto 
que deverá ser entregue no edisciplinas. 
 
 Copyright Marcos L. Chaim 200326
Referências bibliográficas
Michael A. Cusumano, Richard W. Selby: How Microsoft Builds 
Software. Commun. ACM 40(6): 53-61 (1997).
Larman, Craig – Utilizando UML e Padrões, 2a edição, 
Bookman, 2004.
Sommerville, I. Engenharia de Software, Addison-Wesley 
Brasil, 6ª Edição – 2003.
Pfleeger, S. L. Engenharia de Software: Teoria e Prática, 
Prentice Hall do Brasil, 2ª Edição, 2004.
Schach, S. Object-Oriented and Classical Software 
Engineering, McGraw-Hill Science/Engineering/Math; 6a. 
edition.
 Copyright Marcos L. Chaim 200327
Referências bibliográficas
Christian Robottom Reis. Caracterização de um Processo de 
Software para Projetos de Software Livre. Dissertação de 
Mestrado, ICMC-USP, 2003. (disponível em 
http://143.107.58.177:8000/projects/list_files/osi)
	Slide 1
	Slide 2
	Slide 3
	Slide 4
	Slide 5
	Slide 6
	Slide 7
	Slide 8
	Slide 9
	Slide 10
	Slide11
	Slide 12
	Slide 13
	Slide 14
	Slide 15
	Slide 16
	Slide 17
	Slide 18
	Slide 19
	Slide 20
	Slide 21
	Slide 22
	Slide 23
	Slide 24
	Slide 25
	Slide 26
	Slide 27

Outros materiais