Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas


Desenvolvimento Ágil de Software, Slides de Engenharia de Software

Trabalho sobre métodos ágeis do prof. Marcelo Duduchi, Fatec SP.

Tipologia: Slides

2011

Compartilhado em 26/06/2011

andre-alencar-11
andre-alencar-11 🇧🇷

3 documentos

1 / 51

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
Desenvolvimento ÁgilDesenvolvimento Ágil
Engenharia de SoftwareEngenharia de Software
Prof. Marcelo Prof. Marcelo
DuduchiDuduchi
Prof. Marcelo Prof. Marcelo
DuduchiDuduchi
Adriano PadilhaAdriano Padilha
André Luis Ribeiro de AlencarAndré Luis Ribeiro de Alencar
Fábio Fábio GoiaGoia
WalidWalid MradMrad
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c
pf2d
pf2e
pf2f
pf30
pf31
pf32
pf33

Pré-visualização parcial do texto

Baixe Desenvolvimento Ágil de Software e outras Slides em PDF para Engenharia de Software, somente na Docsity!

Desenvolvimento ÁgilDesenvolvimento Ágil

Engenharia de SoftwareEngenharia de Software

Prof. MarceloProf. MarceloProf. MarceloProf. Marcelo DuduchiDuduchiDuduchiDuduchi Adriano PadilhaAdriano Padilha André Luis Ribeiro de AlencarAndré Luis Ribeiro de Alencar FábioFábio GoiaGoia WalidWalid MradMrad

Quando surgiu?Quando surgiu?

Em 2001 , através de Kent Beck e 16 profissionais de softwareEm 2001 , através de Kent Beck e 16 profissionais de software conhecidos como a “Aliança Ágil”conhecidos como a “Aliança Ágil”

O que é?O que é?

A engenharia de software ágil combina uma filosofia e umA engenharia de software ágil combina uma filosofia e um conjunto de diretrizes de desenvolvimentoconjunto de diretrizes de desenvolvimento A filosofia encoraja a satisfaçãoA filosofia encoraja a satisfaçãoA filosofia encoraja a satisfaçãoA filosofia encoraja a satisfação do cliente e a entrega incrementaldo cliente e a entrega incremental do software logo de iníciodo software logo de início As diretrizes de desenvolvimentoAs diretrizes de desenvolvimento enfatizam a entrega emenfatizam a entrega em contraposição à análisecontraposição à análise e a ao projetoe a ao projeto

Aspectos ImportantesAspectos Importantes

É feita por engenheiros de software e demais interessadosÉ feita por engenheiros de software e demais interessados no projeto (gerentes, clientes e usuários finais)no projeto (gerentes, clientes e usuários finais) É importante porque o ambiente moderno de negócios éÉ importante porque o ambiente moderno de negócios é apressado e mutável e exige isto do desenvolvimento deapressado e mutável e exige isto do desenvolvimento deapressado e mutável e exige isto do desenvolvimento deapressado e mutável e exige isto do desenvolvimento de softwaresoftware As atividades básicas como comunicação com o cliente,As atividades básicas como comunicação com o cliente, planejamento, modelagem, construção, entrega e avaliaçãoplanejamento, modelagem, construção, entrega e avaliação fazem parte do desenvolvimento ágilfazem parte do desenvolvimento ágil O único produto realmente importante é um incremento deO único produto realmente importante é um incremento de software operacional entregue na data combinadasoftware operacional entregue na data combinada

Os 12 princípiosOs 12 princípios

5.5. Construção de projetos em torno de indivíduos motivados.Construção de projetos em torno de indivíduos motivados. ForneçaForneça--lhes o ambiente e apoio que precisam e confie quelhes o ambiente e apoio que precisam e confie que eles farão o trabalhoeles farão o trabalho 6.6. O método mais eficiente e efetivo de levar informação paraO método mais eficiente e efetivo de levar informação para e dentro de uma equipe de desenvolvimento é a conversae dentro de uma equipe de desenvolvimento é a conversae dentro de uma equipe de desenvolvimento é a conversae dentro de uma equipe de desenvolvimento é a conversa face a faceface a face 7.7. Software funcionando é a principal medida de progressoSoftware funcionando é a principal medida de progresso 8.8. Processos ágeis promovem desenvolvimento sustentável.Processos ágeis promovem desenvolvimento sustentável. Os patrocinadores, desenvolvedores e usuários devem serOs patrocinadores, desenvolvedores e usuários devem ser capazes de manter um ritmo constante indefinidamentecapazes de manter um ritmo constante indefinidamente

Os 12 princípiosOs 12 princípios

9.9. Atenção contínua à excelência técnica e ao bom projetoAtenção contínua à excelência técnica e ao bom projeto facilitam a agilidadefacilitam a agilidade

  1. Simplicidade10. Simplicidade – – a arte de maximizar a quantidade dea arte de maximizar a quantidade de trabalho não efetuadotrabalho não efetuado – – é essencialé essencial
  2. As melhores arquiteturas, requisitos e projetos surgem de11. As melhores arquiteturas, requisitos e projetos surgem de equipes autoequipes auto--organizadasorganizadas
  3. Em intervalos regulares a equipe reflete sobre como se12. Em intervalos regulares a equipe reflete sobre como se tornar mais efetiva, então sintoniza e ajusta adequadatornar mais efetiva, então sintoniza e ajusta adequada-- mente seu comportamentomente seu comportamento

nn FluxoFluxo

Modelos ÁgeisModelos Ágeis

nn Extreme Programming (XP)Extreme Programming (XP)

§§ OrigemOrigem

As primeiras idéias sobre o XP surgiram por volta de 1980As primeiras idéias sobre o XP surgiram por volta de 1980

Modelos ÁgeisModelos Ágeis

O primeiro trabalho sobre o assunto foi esrito por KENTO primeiro trabalho sobre o assunto foi esrito por KENT BECK em 1999BECK em 1999 Trabalho subseqüentes escritos por:Trabalho subseqüentes escritos por:

  • • JeffriesJeffries – – sobre detalhes técnicos do xpsobre detalhes técnicos do xp
  • • Back e FowlerBack e Fowler – – sobre planejamento do xp incorporamsobre planejamento do xp incorporam os detalhes do métodoos detalhes do método

Extreme Programming (XP)Extreme Programming (XP) nn Figura1Figura

Extreme Programming (XP)Extreme Programming (XP)

nn PlanejamentoPlanejamento

Inicia criando um conjunto de histórias que descrevem asInicia criando um conjunto de histórias que descrevem as características e funcionalidades requeridascaracterísticas e funcionalidades requeridas Cada história é escrita pelo cliente e colocada em umCada história é escrita pelo cliente e colocada em umCada história é escrita pelo cliente e colocada em umCada história é escrita pelo cliente e colocada em um cartão de indexação o qual atribui um valor para cadacartão de indexação o qual atribui um valor para cada história com base no valor global do negóciohistória com base no valor global do negócio Membros da equipe avaliam as historias e atribuem custosMembros da equipe avaliam as historias e atribuem custos em semanas de desenvolvimento caso necessite de maisem semanas de desenvolvimento caso necessite de mais de três semanas para desenvolver uma história é sugeridode três semanas para desenvolver uma história é sugerido ao cliente dividir a história em histórias menoresao cliente dividir a história em histórias menores

Após a entrega da primeira versão do software, é calculadaApós a entrega da primeira versão do software, é calculada a velocidade do projeto.a velocidade do projeto.

  • • Estimar cronograma e datas de entrega dasEstimar cronograma e datas de entrega das Extreme Programming (XP)Extreme Programming (XP)

nn PlanejamentoPlanejamento

  • • Estimar cronograma e datas de entrega dasEstimar cronograma e datas de entrega das próximas versõespróximas versões
  • • Determinar o nível de comprometimento noDeterminar o nível de comprometimento no desenvolvimento desta etapa dodesenvolvimento desta etapa do projetoprojeto

O xp segue rigorosamente o principio Kis(keep it simpleO xp segue rigorosamente o principio Kis(keep it simple – – mantenha a simplicidade)mantenha a simplicidade) Extreme Programming (XP)Extreme Programming (XP)

nn ProjetoProjeto

Implementar a história como esta escrita, nem maisImplementar a história como esta escrita, nem mais nem menosnem menosnem menosnem menos Encoraja o uso de cartõesEncoraja o uso de cartões CRC(ClassCRC(Class-- ResponsabilityResponsability – – Colaborator) para raciocinarColaborator) para raciocinar em projetos de softwaresem projetos de softwares orientados a objetosorientados a objetos

Caso um problema difícil é encontrado no projeto,Caso um problema difícil é encontrado no projeto, recomenda a criação imediata e implementação de umrecomenda a criação imediata e implementação de um protótipo operacional para que seja avaliado, com intençãoprotótipo operacional para que seja avaliado, com intenção de diminuir o risco na implementação real.de diminuir o risco na implementação real. Extreme Programming (XP)Extreme Programming (XP) nn ProjetoProjeto de diminuir o risco na implementação real.de diminuir o risco na implementação real. Encoraja a refabricação, processo de aperfeiçoamento daEncoraja a refabricação, processo de aperfeiçoamento da estrutura interna do software (limpeza de códigoestrutura interna do software (limpeza de código – – modificar e simplificar), sem que altere o comportamentomodificar e simplificar), sem que altere o comportamento externo do software. Ocorre tanto antes quanto depois queexterno do software. Ocorre tanto antes quanto depois que a codificação começa.a codificação começa.

Extreme Programming (XP)Extreme Programming (XP) nn CodificaçãoCodificação Ao invés de avançar para codificação após oAo invés de avançar para codificação após o desenvolvimento das histórias, desenvolva uma sériedesenvolvimento das histórias, desenvolva uma série de testes unitários que exercitarão cada uma dasde testes unitários que exercitarão cada uma das histórias que devem ser incluídas na versão atualhistórias que devem ser incluídas na versão atualhistórias que devem ser incluídas na versão atualhistórias que devem ser incluídas na versão atual Uma vez completado o código éUma vez completado o código é submetido ao teste unitáriosubmetido ao teste unitário