Buscar

ModelagemProcessoUML1.3Novo

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

Clique para editar o estilo do título mestre
Clique para editar o estilo do subtítulo mestre
*
*
*
Extreme Programming & 
Processos Ágeis de Desenvolvimento
*
*
*
O Manifesto do Desenvolvimento Ágil
	www.agilealliance.org: 
	Estamos descobrindo maneiras melhores de se desenvolver software, aplicando-as e ajudando os outros a aplicá-las. Deste trabalho nós valorizamos:
Indivíduos e interações mais que processos e ferramentas
Trabalhar no software mais que documentação abrangente
Colaboração do Cliente mais que negociação contratual
Responder às mudanças mais que seguir um plano
É isto, embora exista valor nos itens da direita, nós valorizamos mais os itens da esquerda.
*
*
*
Características dos Processos Ágeis
Adaptabilidade X Previsibilidade 
A Engenharia de Software e as demais Engenharias;
A diferença entre as fases de Projeto e Construção;
Negócios Atuais: Mudança constante de requisitos;
Adaptabilidade exige um ciclo iterativo;
Adaptabilidade exige participação extrema do cliente;
*
*
*
Características do Processos Ágeis
Foco nas Pessoas X Foco no Processo
O fator humano: motivação conduz ao sucesso;
Pessoas não são recursos;
*
*
*
Metodologias Existentes
Crystal Family
Adaptive Software Development (ASD)
SCRUM
Feature-Driven Development (FDD)
Dynamic System Development Method (DSDM)
*
*
*
Metodologias Existentes
Extreme Programming (XP)
Agile Modeling (AM)
Instância do RUP para XP
*
*
*
Processos Ágeis
Algumas Considerações:
Não se aplicam a todas as situações;
Não existe nada novo, apenas reconhecem a natureza do desenvolvimento de software;
Ame ou Odeie;
No cenário atual constituem uma alternativa que deve ser considerada.
Clique para editar o estilo do título mestre
Clique para editar o estilo do subtítulo mestre
*
*
*
Extreme Programming
Abrace as Mudanças
*
*
*
Origem
Chrysler Comprehensive Compensation system (C3)
Novo sistema de folha de pagamento, unificando os sistemas existentes
Projeto Orientado a Objetos usando Smalltalk
De 1995 a 1996 – Empresa contratada inicia o projeto. Os resultados obtidos são ruins e o projeto entra em crise.
Kent Beck avalia o projeto e constata seu estado crítico.
De 1997 a 1999 – Liderado por Beck, o projeto se tornou o laboratório das práticas que hoje formam o XP
*
*
*
A Premissa Extrema
*
*
*
Aprendendo a Dirigir
*
*
*
Valores
Simplicidade
Comunicação
Feedback
Coragem
*
*
*
Práticas de XP
Jogo do Planejamento
Pequenas Versões
Projeto Simples
Refatoração
Teste Primeiro
Programação em Pares
Nível do Cliente
Nível da Equipe
Nível do Par
Baseado no gráfico de Ron Jeffries
Metáfora
Padrões de Codificação
Propriedade Coletiva do Código
Integração Contínua
Semana de 40 horas
Testes de Aceitação
Cliente “on-site”
*
*
*
O Ciclo de Vida de um Projeto XP
Exploration
Planning
Iterations to Release
Productionizing
Adaptado do site www.extremeprogramming.org de Don Wells
*
*
*
A Força do Conjunto
*
*
*
Variáveis de Projeto
Modelo Tradicional:
Tempo
Custo
Escopo
Manipula-se a Qualidade
Modelo XP:
Tempo
Custo
Qualidade
Manipula-se o Escopo
Contratos de Preço 
Pré-Fixado
Contratos de 
Escopo Varável
*
*
*
Conte-me uma Estória
Prioridade: 1
Renovação de Matrícula
As disciplinas disponíveis para matrícula devem ser apresentadas. O aluno escolhe as disciplinas desejadas e confirma. Um e-mail com a confirmação da matrícula é enviado para o aluno.
3 Dias
Equipe estima a estória em Tempo Ideal
Cliente prioriza.
*
*
*
Release Planning
Cliente escreve as estórias.
Equipe de desenvolvimento estima as estórias.
Estórias muito pequenas são unificadas, estórias muito grande são quebradas.
Cliente prioriza as estórias.
Equipe ajuda o cliente a entender riscos técnicos.
Cliente define os releases.
*
*
*
Iteration Planning
Cliente define estórias que devem ser implementadas na iteração considerando a velocidade definida pela equipe.
Cliente e equipe conversam sobre as estórias selecionadas.
Desenvolvedores se oferecem para implementar determinadas tarefas.
Equipe identifica as tarefas de programação necessárias para implementar as estórias da iteração.
Equipe estima e prioriza as tarefas.
*
*
*
Stand Up Meeting
Cada dia de trabalho “começa” com uma reunião, onde todos conversam sobre os problemas encontrados no dia anterior e definem as prioridades do dia que se inicia.
A reunião é curta, mais ou menos uns 15 minutos. O fato de ser em pé ajuda a alcançar este objetivo.
Web Designer ?
*
*
*
Estratégia de Desenvolvimento
Programação em Pares
Propriedade Coletiva
Integração Contínua
Padrões de Codificação
*
*
*
Estratégia de Teste
Test Driven Development
Teste antes de codificar (Murmurinhos típicos: Que? Tá maluco?)
Testar tudo o que pode quebrar. O risco deve ser considerado.
Devem ser automatizados.
A cada funcionalidade implementada, os testes devem rodar 100% 
Testes de Aceitação
Cliente escreve testes funcionais para validar se as funcionalidades entregues fazem o que eles querem.
*
*
*
Estratégia de Design
Design Simples
Metáfora
Test-First
Refatoração
Projete para os problemas de hoje, hoje; projete para os problemas de amanhã, amanhã (Curva de Mudança XP).
*
*
*
Estratégias de Gerenciamento
Cliente on site
Ritmo Sustentável, semana de 40 horas
Papéis:
Gerente de Projeto
Desenvolvedor
Cliente
Tester
Coach
Tracker
*
*
*
Ambiente de Trabalho
A primeira coisa que deve ser feita para se começar um projeto XP é reorganizar o ambiente.
White Boards.
Mobília preparada para o trabalho em duplas.
Mural para colocar os cartões.
*
*
*
Algumas considerações importantes
Xp não é uma bala de prata
XP não é fácil de adotar
XP não é possível em todos os ambientes a todo momento
Pequenas equipes
Requisitos instáveis
Novas tecnologias ou prazo pré-definido
*
*
*
Exemplo
Desenvolver um sistema para Acompanha-mento da Vida Acadêmica de alunos da XP University.
Condições do Cliente:
Criar um sistema para uso na Web com acesso pelo site da universidade.
Precisa entrar no ar no início de Junho/2002
*
*
*
Exemplo - Cont.
Levantamento das Estórias:
Total de Dificuldade = 33
Estória
Dificuldade
(em dias ideais)
Atualizar Dados Pessoais do Aluno
3
Consultar Quadro de Horários
4
Listar Turmas Inscritas
3
Verificar Recursos Disponíveis da Turma
3
Donwload de Recurso
2
Renovação de Disciplina
12
Inclusão/Exclusão de Disciplina
6
*
*
*
Exemplo - Cont.
Refinamento das Estórias:
Maiores do que uma iteração
Divisão do Conceito
Total de Dificuldade = 33 (Poderia Mudar)
Estória
Dificuldade
(em dias ideais)
Prioridade
Atualizar Dados Pessoais do Aluno
3
1
Consultar Quadro de Horários
4
1
Listar Turmas Inscritas
3
1
Verificar Recursos Disponíveis da Turma
3
1
Donwload de Recurso
2
1
Apresentar Disciplinas Oferecidas
7
2
Simular Quadro de Horários
5
2
Inclusão de Disciplina
3
3
Exclusão de Disciplina
3
3
*
*
*
Exemplo - Cont.
Release Planning
Tamanho da Iteração = 2 semanas reais (10 Dias)
Total de Dificuldades = 33 dias ideais
Velocidade Inicial:
1 desenvolvedor - 5 DI em uma iteração
2 desenvolvedores - 10 DI em uma iteração
Total de Iterações necessárias = 3.3 ou seja 4.
Considerar dois Releases de 1 mês cada (2 iterações)
Entregar uma versão no início de fevereiro.
Cliente define o escopo.
*
*
*
Exemplo - Cont.
Release Planning - Release 1
	i1 – 01/04 – 12/04
		Atualizar Dados Pessoais do Aluno
		3
		Consultar Quadro de Horários
		4
		Listar Turmas Inscritas
		3
	i2 – 15/04 – 26/04
		Verificar Recursos Disponíveis da Turma
		3
		Apresentar Disciplinas Oferecidas
		7
*
*
*
Exemplo - Cont.
Release Planning - Release 2
Planejar somente 1 ou 2 releases. Não prever o futuro.
Só definir o limite de datas:
i3 – 29/04 – 10/05
i4 – 13/05 – 24/05 OU
	i3 – 29/04 – 10/05
		Donwload de Recurso
		2
		Simular Quadro de Horários
		5
		Inclusão de Disciplina
		3
	i4 – 13/05 – 24/05
		Exclusão de Disciplina
		3
*
*
*
Exemplo - Cont.
Iteration Planning
Utilizar iteração zero-funcionality
Framework de Teste, Framework de Desenvolvimento, Software de Controle de Versão, Configuração de SGBD, App Server...
Dividir em Tarefas de Programação
Alocar Membros da Equipe pelas Tarefas
Releases - prioridade do cliente
Iterações - riscos técnicos envolvidos
*
*
*
Exemplo - Cont.
Dividindo a Estória em Tarefas:
Plan1
				3
		Tarefas
		Criar Página ASP		1.5
		Desenvolver Componente COM		2
		Criar Tabelas no Banco de Dados		0.5
		Estimativa Total:		4
Plan2
		
Plan3
		
*
*
*
Exemplo - Cont.
Ao final de cada iteração: medir o Andamento do Projeto. 
Medir no meio da iteração;
Decisões:
Novas Estórias;
Retirar Estórias;
Mudança de Prioridade;
Ajuste nas Estimativas;
Too Much To Do;
Too Little To Do;
*
*
*
Referências
No Brasil:
www.groups.yahoo.com/groups/xprio
www.groups.yahoo.com/groups/xpers
www.xispe.com.br
No Mundo:
www.extremeprogramming.org
ww.xprogramming.com
www.c2.com/cgi/wiki?ExtremeProgrammingRoadmap
Do the Simplest Thing That Could Possibly Work! (DTSTTCPW)
You aren’t going to need it! (YAGNI)

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Outros materiais