SlideShare une entreprise Scribd logo
1  sur  27
Introdução
Conceitos e Objetivos
O que são métodos ágeis de desenvolvimento?


       • Metodologias de desenvolvimento que nos permita alterar
         constantemente o código sem comprometer sua qualidade.

Quanto mais                                                        Estabilidade da
                                                                   relação custo e
funcionalida
                                                                   funcionalidade
 des maior o
    custo
Principais Métodos


• Abordadas               • Outros métodos


•   Programação extrema   • Adaptive Software Development
•   Scrum                 • Crystal
•   Programação pareada   • Pragmatic Programming
•   Orientado a testes
Casos de sucesso !!!!


• Assembléia Legislativa do Estado de São Paulo
• Ikwa
• ITM
• Paggo
• Parceria com Scopus e LARC
• Sistema Janus
• LocaWeb
Programação eXtrema (XP)
Programação
     eXtrema (XP)



É uma metodologia ágil para equipes pequenas e médias e que irão desenvolver software com requisitos vagos e
em constante mudança. Para isso, adota a estratégia de constante acompanhamento e realização de vários
pequenos ajustes durante o desenvolvimento de software. Desenvolvedor (KENT BECK)

Valores

• Comunicação
• Simplicidade
• Retroalimentação (Feedback)
• Coragem
• Respeito

Comunicação
• A maioria dos problemas e erros são causados por falta de comunicação
• Maximizar a comunicação entre a equipe e o cliente
• Comunicação entre pessoas: direta
• Comunicação entre pessoas e artefatos:
• estes devem ser de leitura fácil e estar atualizados
Programação
      eXtrema (XP)



Valores contrários a programação XP

• Comunicação
– preferir papel a olho-no-olho

• Simplicidade
– fazer mais do que o necessário para resolver o problema atual
pensando em antecipar a resolução de problemas futuros

• Retroalimentação (Feedback)
– Retroalimentação só bem perto do final. Contrato assinado.
• Coragem
• Respeito
– Longas jornadas de trabalho para terminar o projeto
Programação
    eXtrema (XP)




Princípios da programação XP

• Humanidade
• Economia
• Benefício mútuo
• Auto similaridade
• Melhora contínua
• Diversidade
• Reflexão
• Oportunidade
• Redundância
• Falha
• Qualidade
• Passos de bebê
• Responsabilidade aceita
Programação
     eXtrema (XP)




Praticas da programação XP

• Categorias                                         • Fatores relacionados a equipes e fatores humanos

– Análise de Requisitos e Planejamento               – Sentar junto
– Fatores relacionados a equipes e fatores humanos   – Time inteiro
– Projeto (Design)                                   – Ambiente de trabalho informativo
– Codificação e lançamento (liberação) de código     – Trabalho energizado
                                                     – Programação Pareada
• Análise de Requisitos e Planejamento
                                                     • Projeto (Design)
– Ciclo semanal
– Ciclo quinzenal                                    – Design incremental
– Folga                                              – Programação com testes primeiro
Programação
    eXtrema (XP)




Praticas da programação XP

• Codificação e lançamento (liberação) de código

– Build de dez minutos (compilar)
– Integração contínua

• Codificação e lançamento (liberação) de código

– Código e testes
– Código compartilhado
– Base de código única
– Entrega (deployment) diária
Gerenciamento de Equipes
com Scrum
Programação
                   Scrum
    eXtrema (XP)




• O Scrum é um processo de desenvolvimento iterativo e incremental para
  gerenciamento de projetos e desenvolvimento ágil de software.


• Scrum possui seu foco na gerenciamento de projeto da organização onde é
  difícil planejar à frente.
Programação
                   Scrum
    eXtrema (XP)




Características


• Processo de controle e gerenciamento
• Processo iterativo de inspeção e adaptação
• Usado para gerenciar projetos complexos
• Entrega valor de negócio periodicamente
• Compatível com CMMi até o nível 3, ISO e outras metodologias
• Extremamente simples, mas muito difícil
Programação
                       Scrum
     eXtrema (XP)



• Princípios do SCRUM


• Os envolvidos trabalham em equipe com:
• – Responsabilidade
• – Transparência
• – Honestidade
• – Auto-organização


• Fornecer software funcionando
• – De forma incremental
• – Potencialmente empregável
Programação
                   Scrum
    eXtrema (XP)




• Tipos de processo SCRUM


• Processo prescritivo
– Funciona em ambientes controlados


• Processo empírico
– Funciona para processos complexos e imprevisíveis
Programação pareada
Programação                               Programação
                            Scrum
       eXtrema (XP)                              pareada



• Programação pareada é a prática onde um ou mais programadores
trabalham lado a lado em um computador colaborando no mesmo
projeto, algoritmo, código ou teste.


Principal vantagem

Quando se está trabalhando em par se trabalha o dia todo. Pois ao
trabalhar sozinho, você vê o seu e-mail, lê blogs e etc. E essas coisas
não acontecem com programação em par. Ao fim de um dia de
programação em par você está cansado, pois você realmente pensou
e trabalhou o dia todo. Mas você fica contente, pois sabe que teve o
trabalho realizado
Programação                   Programação
                  Scrum
   eXtrema (XP)                  pareada




• O par é composto de:


• Um motorista: que digita no computador ou registra o projeto
• Um navegador: que observa o trabalho do motorista e identifica
  problemas, clarifica questões e faz sugestões.
• Os parceiros devem trocar de papéis de tempos em tempos para compartilhar o
  trabalho igualmente e obter o máximo da sua experiência com a programação
  pareada.
Programação                   Programação
                   Scrum
   eXtrema (XP)                  pareada




• Importante


• Um controla o teclado e o mouse
• O outro observa criticamente
• Os dois estão continuamente dialogando
• De tempos em tempos, o controle muda de mãos
• Ao longo de um projeto, os companheiros são trocados
Programação                   Programação
                  Scrum
   eXtrema (XP)                  pareada




• Vale a pena ?


• Aparentemente não...
• Usa dois “recursos” em vez de um
• Pagar o salário de dois desenvolvedores para trabalharem num mesmo
  problema???
• Os dois usam o mesmo computador a maior parte do tempo (o outro fica ocioso...)
Programação                  Programação
                    Scrum
   eXtrema (XP)                 pareada




• Por que fazer ?


• Pesquisas mostraram que:


• Aumenta a qualidade do software
• As tarefas são completadas em menos tempo(mas não necessariamente em menos
  da metade do tempo que um programador sozinho gasta)
• Tão importante quanto a programação pareada são a análise pareada e o projeto
  (design) pareado
Orientada a testes
Programação                  Programação   Orientado a
                   Scrum
   eXtrema (XP)                 pareada       testes



• Orientada no modelo cascata


– Licitação de requisitos
– Projeto
– Construção (implementação ou codificação)
– Integração
– Teste e depuração
– Instalação
– Manutenção de software
Programação             Programação   Orientado a
                    Scrum
    eXtrema (XP)            pareada       testes



• Tipos de testes
• Unidade
• Integração
• Interface de Usuário
• Aceitação
• Mutação
• Desempenho
• Estresse
• Segurança
Programação                     Programação   Orientado a
                     Scrum
     eXtrema (XP)                    pareada       testes



• Teste de Software:
– Executar o programa a ser testado com alguma entrada e conferir visualmente os
resultados obtidos
• Teste Automatizado:
– Programa ou script executável que roda o programa a ser testado e faz verificações
automáticas em cima dos efeitos colaterais obtidos.
• Testar NÃO é depurar
– Testar é verificar a presença de erros
– Depurar é seguir o fluxo para identificar um erro conhecido
Programação                       Programação      Orientado a
                   Scrum
eXtrema (XP)                      pareada          testes
   Principais Métodos

   • Referencias


   • BECK, Kent. Simple Smalltalk Testing: With Patterns.
   • http://www.xprogramming.com/testfram.htm
   • http://www-128.ibm.com/developerworks/java/library/•
   • http://www.instrumentalservices.com/media/articles
   • http://www.prowareness.com/blog/pair-programing-an-xp-practice-benefits/


   Livro: Metodologias Ágeis: Engenharia de Software sob Medida - José Henrique
   Teixeira de Carvalho Sbrocco e Paulo Cesar de Macedo

Contenu connexe

Tendances

A Carreira de Desenvolvedor: do Jr ao Sênior
A Carreira de Desenvolvedor: do Jr ao SêniorA Carreira de Desenvolvedor: do Jr ao Sênior
A Carreira de Desenvolvedor: do Jr ao SêniorMarcos Pereira
 
Menos teste e mais qualidade - como equilibrar essa equação?
Menos teste e mais qualidade - como equilibrar essa equação?Menos teste e mais qualidade - como equilibrar essa equação?
Menos teste e mais qualidade - como equilibrar essa equação?Igor Abade
 
Extreme Programming (XP) Metodologia Ágil
Extreme Programming (XP) Metodologia ÁgilExtreme Programming (XP) Metodologia Ágil
Extreme Programming (XP) Metodologia ÁgilJaffer Veronezi
 
Pesquisa em Métodos Ágeis para o Desenvolvimento de Software
Pesquisa em Métodos Ágeis para o Desenvolvimento de SoftwarePesquisa em Métodos Ágeis para o Desenvolvimento de Software
Pesquisa em Métodos Ágeis para o Desenvolvimento de SoftwareAdolfo Neto
 
XP - Extreme Programming
XP - Extreme ProgrammingXP - Extreme Programming
XP - Extreme ProgrammingMarcelo Láias
 
Apresentando Extreme Programming
Apresentando Extreme ProgrammingApresentando Extreme Programming
Apresentando Extreme ProgrammingMilfont Consulting
 
Modelagem Ágil - UaiJug TechDays 2013 - Uberlândia MG
Modelagem Ágil - UaiJug TechDays 2013 - Uberlândia MGModelagem Ágil - UaiJug TechDays 2013 - Uberlândia MG
Modelagem Ágil - UaiJug TechDays 2013 - Uberlândia MGNeubio Ferreira
 
Introdução: eXtreme Programming
Introdução: eXtreme ProgrammingIntrodução: eXtreme Programming
Introdução: eXtreme ProgrammingDenis L Presciliano
 
Scrum: entendendo o framework e aplicando no dia-a-dia
Scrum: entendendo o framework e aplicando no dia-a-diaScrum: entendendo o framework e aplicando no dia-a-dia
Scrum: entendendo o framework e aplicando no dia-a-diaVítor Bruno de Almeida
 
Es capítulo 3 - desenvolvimento ágil
Es   capítulo 3 -  desenvolvimento ágilEs   capítulo 3 -  desenvolvimento ágil
Es capítulo 3 - desenvolvimento ágilFelipe Oliveira
 
Aula - Modelos de Processos de Desenvolvimento de Software / Mobile App
Aula - Modelos de Processos de Desenvolvimento de Software / Mobile AppAula - Modelos de Processos de Desenvolvimento de Software / Mobile App
Aula - Modelos de Processos de Desenvolvimento de Software / Mobile AppCloves da Rocha
 
Cafe agil em Recife - Agile and Design
Cafe agil em Recife - Agile and DesignCafe agil em Recife - Agile and Design
Cafe agil em Recife - Agile and DesignThoughtworks
 
Aplicando eXtreming Programing ao cenário do Borland ALM - BorCon 2003
Aplicando  eXtreming Programing  ao cenário do  Borland ALM - BorCon 2003Aplicando  eXtreming Programing  ao cenário do  Borland ALM - BorCon 2003
Aplicando eXtreming Programing ao cenário do Borland ALM - BorCon 2003Edgar Silva
 
Introdução a Modelagem
Introdução a ModelagemIntrodução a Modelagem
Introdução a ModelagemRodrigo Branas
 
Es capítulo 3 - desenvolvimento ágil
Es   capítulo 3  -  desenvolvimento ágilEs   capítulo 3  -  desenvolvimento ágil
Es capítulo 3 - desenvolvimento ágilFelipe Oliveira
 

Tendances (20)

Extreme programming (xp)
 Extreme programming   (xp) Extreme programming   (xp)
Extreme programming (xp)
 
A Carreira de Desenvolvedor: do Jr ao Sênior
A Carreira de Desenvolvedor: do Jr ao SêniorA Carreira de Desenvolvedor: do Jr ao Sênior
A Carreira de Desenvolvedor: do Jr ao Sênior
 
Menos teste e mais qualidade - como equilibrar essa equação?
Menos teste e mais qualidade - como equilibrar essa equação?Menos teste e mais qualidade - como equilibrar essa equação?
Menos teste e mais qualidade - como equilibrar essa equação?
 
Extreme Programming (XP) Metodologia Ágil
Extreme Programming (XP) Metodologia ÁgilExtreme Programming (XP) Metodologia Ágil
Extreme Programming (XP) Metodologia Ágil
 
Pesquisa em Métodos Ágeis para o Desenvolvimento de Software
Pesquisa em Métodos Ágeis para o Desenvolvimento de SoftwarePesquisa em Métodos Ágeis para o Desenvolvimento de Software
Pesquisa em Métodos Ágeis para o Desenvolvimento de Software
 
XP - Extreme Programming
XP - Extreme ProgrammingXP - Extreme Programming
XP - Extreme Programming
 
Apresentando Extreme Programming
Apresentando Extreme ProgrammingApresentando Extreme Programming
Apresentando Extreme Programming
 
Modelagem Ágil - UaiJug TechDays 2013 - Uberlândia MG
Modelagem Ágil - UaiJug TechDays 2013 - Uberlândia MGModelagem Ágil - UaiJug TechDays 2013 - Uberlândia MG
Modelagem Ágil - UaiJug TechDays 2013 - Uberlândia MG
 
Introdução: eXtreme Programming
Introdução: eXtreme ProgrammingIntrodução: eXtreme Programming
Introdução: eXtreme Programming
 
Modelagem Ágil
Modelagem ÁgilModelagem Ágil
Modelagem Ágil
 
Scrum: entendendo o framework e aplicando no dia-a-dia
Scrum: entendendo o framework e aplicando no dia-a-diaScrum: entendendo o framework e aplicando no dia-a-dia
Scrum: entendendo o framework e aplicando no dia-a-dia
 
Software
SoftwareSoftware
Software
 
Es capítulo 3 - desenvolvimento ágil
Es   capítulo 3 -  desenvolvimento ágilEs   capítulo 3 -  desenvolvimento ágil
Es capítulo 3 - desenvolvimento ágil
 
Aula - Modelos de Processos de Desenvolvimento de Software / Mobile App
Aula - Modelos de Processos de Desenvolvimento de Software / Mobile AppAula - Modelos de Processos de Desenvolvimento de Software / Mobile App
Aula - Modelos de Processos de Desenvolvimento de Software / Mobile App
 
Cafe agil em Recife - Agile and Design
Cafe agil em Recife - Agile and DesignCafe agil em Recife - Agile and Design
Cafe agil em Recife - Agile and Design
 
TDD e Refactoring
TDD e RefactoringTDD e Refactoring
TDD e Refactoring
 
Aplicando eXtreming Programing ao cenário do Borland ALM - BorCon 2003
Aplicando  eXtreming Programing  ao cenário do  Borland ALM - BorCon 2003Aplicando  eXtreming Programing  ao cenário do  Borland ALM - BorCon 2003
Aplicando eXtreming Programing ao cenário do Borland ALM - BorCon 2003
 
Palestra scrum
Palestra scrumPalestra scrum
Palestra scrum
 
Introdução a Modelagem
Introdução a ModelagemIntrodução a Modelagem
Introdução a Modelagem
 
Es capítulo 3 - desenvolvimento ágil
Es   capítulo 3  -  desenvolvimento ágilEs   capítulo 3  -  desenvolvimento ágil
Es capítulo 3 - desenvolvimento ágil
 

En vedette

TDD - A Verdadeira Face do Teste
TDD - A Verdadeira Face do TesteTDD - A Verdadeira Face do Teste
TDD - A Verdadeira Face do TesteAislan Fernandes
 
Extreme programming
Extreme programmingExtreme programming
Extreme programmingVitor Castro
 
Parear é um pouco mais que sentar ao lado
Parear é um pouco mais que sentar ao ladoParear é um pouco mais que sentar ao lado
Parear é um pouco mais que sentar ao ladoMichel Cordeiro
 
Engenharia de Software - Ian Sommerville
Engenharia de Software - Ian SommervilleEngenharia de Software - Ian Sommerville
Engenharia de Software - Ian SommervilleTiago Canabarro
 
Análise de sistemas aula 2
Análise de sistemas   aula 2Análise de sistemas   aula 2
Análise de sistemas aula 2Mário Gomes
 
Metodologia Crystal Clear (Crystal Clear Methodologies)
Metodologia Crystal Clear (Crystal Clear Methodologies)Metodologia Crystal Clear (Crystal Clear Methodologies)
Metodologia Crystal Clear (Crystal Clear Methodologies)Thiago Sinésio
 
Introdução ao Banco de dados - Prof. Daniel Brandão
Introdução ao Banco de dados - Prof. Daniel BrandãoIntrodução ao Banco de dados - Prof. Daniel Brandão
Introdução ao Banco de dados - Prof. Daniel BrandãoDaniel Brandão
 
As aula 1 - introdução a análise de sistemas
As   aula 1 - introdução a análise de sistemasAs   aula 1 - introdução a análise de sistemas
As aula 1 - introdução a análise de sistemastontotsilva
 
Introdução à Análise de Sistemas - Parte II
Introdução à Análise de Sistemas - Parte IIIntrodução à Análise de Sistemas - Parte II
Introdução à Análise de Sistemas - Parte IINécio de Lima Veras
 
Introdução à Análise de Sistemas
Introdução à Análise de SistemasIntrodução à Análise de Sistemas
Introdução à Análise de SistemasNécio de Lima Veras
 
Aula1 e aula2 - Analise e Projeto de Sistemas
Aula1 e aula2 - Analise e Projeto de SistemasAula1 e aula2 - Analise e Projeto de Sistemas
Aula1 e aula2 - Analise e Projeto de SistemasGustavo Gonzalez
 
Análise e Projeto de Sistemas
Análise e Projeto de SistemasAnálise e Projeto de Sistemas
Análise e Projeto de SistemasGuilherme
 
Introdução a analise de sistemas i
Introdução a analise de sistemas iIntrodução a analise de sistemas i
Introdução a analise de sistemas iRay Fran Pires
 
Engenharia Requisitos - Aula4 06 03 2006
Engenharia Requisitos - Aula4 06 03 2006Engenharia Requisitos - Aula4 06 03 2006
Engenharia Requisitos - Aula4 06 03 2006Luís Fernando Richter
 

En vedette (19)

TDD - A Verdadeira Face do Teste
TDD - A Verdadeira Face do TesteTDD - A Verdadeira Face do Teste
TDD - A Verdadeira Face do Teste
 
Extreme programming
Extreme programmingExtreme programming
Extreme programming
 
Curso Xp
Curso XpCurso Xp
Curso Xp
 
Parear é um pouco mais que sentar ao lado
Parear é um pouco mais que sentar ao ladoParear é um pouco mais que sentar ao lado
Parear é um pouco mais que sentar ao lado
 
Extreme Programming
Extreme ProgrammingExtreme Programming
Extreme Programming
 
Xp - extreme programing
Xp - extreme programingXp - extreme programing
Xp - extreme programing
 
Trabalho xp
Trabalho xpTrabalho xp
Trabalho xp
 
Agile User Experience
Agile User ExperienceAgile User Experience
Agile User Experience
 
Engenharia de Software - Ian Sommerville
Engenharia de Software - Ian SommervilleEngenharia de Software - Ian Sommerville
Engenharia de Software - Ian Sommerville
 
Análise de sistemas aula 2
Análise de sistemas   aula 2Análise de sistemas   aula 2
Análise de sistemas aula 2
 
Metodologia Crystal Clear (Crystal Clear Methodologies)
Metodologia Crystal Clear (Crystal Clear Methodologies)Metodologia Crystal Clear (Crystal Clear Methodologies)
Metodologia Crystal Clear (Crystal Clear Methodologies)
 
Introdução ao Banco de dados - Prof. Daniel Brandão
Introdução ao Banco de dados - Prof. Daniel BrandãoIntrodução ao Banco de dados - Prof. Daniel Brandão
Introdução ao Banco de dados - Prof. Daniel Brandão
 
As aula 1 - introdução a análise de sistemas
As   aula 1 - introdução a análise de sistemasAs   aula 1 - introdução a análise de sistemas
As aula 1 - introdução a análise de sistemas
 
Introdução à Análise de Sistemas - Parte II
Introdução à Análise de Sistemas - Parte IIIntrodução à Análise de Sistemas - Parte II
Introdução à Análise de Sistemas - Parte II
 
Introdução à Análise de Sistemas
Introdução à Análise de SistemasIntrodução à Análise de Sistemas
Introdução à Análise de Sistemas
 
Aula1 e aula2 - Analise e Projeto de Sistemas
Aula1 e aula2 - Analise e Projeto de SistemasAula1 e aula2 - Analise e Projeto de Sistemas
Aula1 e aula2 - Analise e Projeto de Sistemas
 
Análise e Projeto de Sistemas
Análise e Projeto de SistemasAnálise e Projeto de Sistemas
Análise e Projeto de Sistemas
 
Introdução a analise de sistemas i
Introdução a analise de sistemas iIntrodução a analise de sistemas i
Introdução a analise de sistemas i
 
Engenharia Requisitos - Aula4 06 03 2006
Engenharia Requisitos - Aula4 06 03 2006Engenharia Requisitos - Aula4 06 03 2006
Engenharia Requisitos - Aula4 06 03 2006
 

Similaire à Desenvolvimento de Software

Scrum e Team Foundation Server - Qualidade ao longo de todo o ciclo de vida d...
Scrum e Team Foundation Server - Qualidade ao longo de todo o ciclo de vida d...Scrum e Team Foundation Server - Qualidade ao longo de todo o ciclo de vida d...
Scrum e Team Foundation Server - Qualidade ao longo de todo o ciclo de vida d...Igor Abade
 
Utilizando metologias ágeis com VSTS: Scrum e XP, YES WE CAN! (ALM204)
Utilizando metologias ágeis com VSTS: Scrum e XP, YES WE CAN! (ALM204)Utilizando metologias ágeis com VSTS: Scrum e XP, YES WE CAN! (ALM204)
Utilizando metologias ágeis com VSTS: Scrum e XP, YES WE CAN! (ALM204)André Dias
 
introxp-180413013250.pdf
introxp-180413013250.pdfintroxp-180413013250.pdf
introxp-180413013250.pdfPedroLuis216164
 
Métodos ágeis de desenvolvimento de software
Métodos ágeis de desenvolvimento de softwareMétodos ágeis de desenvolvimento de software
Métodos ágeis de desenvolvimento de softwareJerônimo Medina Madruga
 
SCRUM e XP - Desenvolvimento Ágil de Software - Experiências e relatos
SCRUM e XP - Desenvolvimento Ágil de Software - Experiências e relatosSCRUM e XP - Desenvolvimento Ágil de Software - Experiências e relatos
SCRUM e XP - Desenvolvimento Ágil de Software - Experiências e relatosPaulo César M Jeveaux
 
Qualidade no desenvolvimento de Software com TDD e PHPUnit
Qualidade no desenvolvimento de Software com TDD e PHPUnitQualidade no desenvolvimento de Software com TDD e PHPUnit
Qualidade no desenvolvimento de Software com TDD e PHPUnitDomingos Teruel
 
Texto de Apoio2_Síntese de Metodologias Ageis.ppt
Texto de Apoio2_Síntese de Metodologias Ageis.pptTexto de Apoio2_Síntese de Metodologias Ageis.ppt
Texto de Apoio2_Síntese de Metodologias Ageis.pptHurgelNeto
 
[GUTS-RS] GUTS Talks - Automação de Testes
[GUTS-RS] GUTS Talks - Automação de Testes[GUTS-RS] GUTS Talks - Automação de Testes
[GUTS-RS] GUTS Talks - Automação de TestesGUTS-RS
 
Engenharia de Software: A ponte para um código sustentável
Engenharia de Software: A ponte para um código sustentávelEngenharia de Software: A ponte para um código sustentável
Engenharia de Software: A ponte para um código sustentávelFernando Pontes
 
Introdução ao desenvolvimento ágil com Scrum
Introdução ao desenvolvimento ágil com ScrumIntrodução ao desenvolvimento ágil com Scrum
Introdução ao desenvolvimento ágil com ScrumInove
 
IPA Conhecendo XP
IPA Conhecendo XPIPA Conhecendo XP
IPA Conhecendo XPWildtech
 
Engenharia de software aula 6 - Introdução ao Desenvolvimento Ágil
Engenharia de software aula 6 - Introdução ao Desenvolvimento ÁgilEngenharia de software aula 6 - Introdução ao Desenvolvimento Ágil
Engenharia de software aula 6 - Introdução ao Desenvolvimento ÁgilRebecca Betwel
 
Arquitetura de Software e o DNAD2013
Arquitetura de Software e o DNAD2013Arquitetura de Software e o DNAD2013
Arquitetura de Software e o DNAD2013André Borgonovo
 

Similaire à Desenvolvimento de Software (20)

Metodologias Ágeis
Metodologias ÁgeisMetodologias Ágeis
Metodologias Ágeis
 
Metodologias Ágeis
Metodologias ÁgeisMetodologias Ágeis
Metodologias Ágeis
 
Scrum e Team Foundation Server - Qualidade ao longo de todo o ciclo de vida d...
Scrum e Team Foundation Server - Qualidade ao longo de todo o ciclo de vida d...Scrum e Team Foundation Server - Qualidade ao longo de todo o ciclo de vida d...
Scrum e Team Foundation Server - Qualidade ao longo de todo o ciclo de vida d...
 
Utilizando metologias ágeis com VSTS: Scrum e XP, YES WE CAN! (ALM204)
Utilizando metologias ágeis com VSTS: Scrum e XP, YES WE CAN! (ALM204)Utilizando metologias ágeis com VSTS: Scrum e XP, YES WE CAN! (ALM204)
Utilizando metologias ágeis com VSTS: Scrum e XP, YES WE CAN! (ALM204)
 
introxp-180413013250.pdf
introxp-180413013250.pdfintroxp-180413013250.pdf
introxp-180413013250.pdf
 
Métodos ágeis de desenvolvimento de software
Métodos ágeis de desenvolvimento de softwareMétodos ágeis de desenvolvimento de software
Métodos ágeis de desenvolvimento de software
 
SCRUM e XP - Desenvolvimento Ágil de Software - Experiências e relatos
SCRUM e XP - Desenvolvimento Ágil de Software - Experiências e relatosSCRUM e XP - Desenvolvimento Ágil de Software - Experiências e relatos
SCRUM e XP - Desenvolvimento Ágil de Software - Experiências e relatos
 
Qualidade no desenvolvimento de Software com TDD e PHPUnit
Qualidade no desenvolvimento de Software com TDD e PHPUnitQualidade no desenvolvimento de Software com TDD e PHPUnit
Qualidade no desenvolvimento de Software com TDD e PHPUnit
 
Texto de Apoio2_Síntese de Metodologias Ageis.ppt
Texto de Apoio2_Síntese de Metodologias Ageis.pptTexto de Apoio2_Síntese de Metodologias Ageis.ppt
Texto de Apoio2_Síntese de Metodologias Ageis.ppt
 
Extreme Programming
Extreme ProgrammingExtreme Programming
Extreme Programming
 
[GUTS-RS] GUTS Talks - Automação de Testes
[GUTS-RS] GUTS Talks - Automação de Testes[GUTS-RS] GUTS Talks - Automação de Testes
[GUTS-RS] GUTS Talks - Automação de Testes
 
O que é SCRUM
O que é SCRUMO que é SCRUM
O que é SCRUM
 
Engenharia de Software: A ponte para um código sustentável
Engenharia de Software: A ponte para um código sustentávelEngenharia de Software: A ponte para um código sustentável
Engenharia de Software: A ponte para um código sustentável
 
Introdução ao desenvolvimento ágil com Scrum
Introdução ao desenvolvimento ágil com ScrumIntrodução ao desenvolvimento ágil com Scrum
Introdução ao desenvolvimento ágil com Scrum
 
IPA Conhecendo XP
IPA Conhecendo XPIPA Conhecendo XP
IPA Conhecendo XP
 
Programacao Extrema
Programacao ExtremaProgramacao Extrema
Programacao Extrema
 
Engenharia de software aula 6 - Introdução ao Desenvolvimento Ágil
Engenharia de software aula 6 - Introdução ao Desenvolvimento ÁgilEngenharia de software aula 6 - Introdução ao Desenvolvimento Ágil
Engenharia de software aula 6 - Introdução ao Desenvolvimento Ágil
 
Lista de Práticas Ágeis
Lista de Práticas ÁgeisLista de Práticas Ágeis
Lista de Práticas Ágeis
 
Arquitetura de Software e o DNAD2013
Arquitetura de Software e o DNAD2013Arquitetura de Software e o DNAD2013
Arquitetura de Software e o DNAD2013
 
ageis2003.ppt
ageis2003.pptageis2003.ppt
ageis2003.ppt
 

Plus de Adilmar Dantas

APLICATIVO MÓVEL PARA AFERIÇÃO DA FREQUÊNCIA CARDÍACA E ACOMPANHAMENTO MÉDICO...
APLICATIVO MÓVEL PARA AFERIÇÃO DA FREQUÊNCIA CARDÍACA E ACOMPANHAMENTO MÉDICO...APLICATIVO MÓVEL PARA AFERIÇÃO DA FREQUÊNCIA CARDÍACA E ACOMPANHAMENTO MÉDICO...
APLICATIVO MÓVEL PARA AFERIÇÃO DA FREQUÊNCIA CARDÍACA E ACOMPANHAMENTO MÉDICO...Adilmar Dantas
 
Programação Android Phonegap 1
Programação Android Phonegap 1Programação Android Phonegap 1
Programação Android Phonegap 1Adilmar Dantas
 
Potenciação Divide and Conquer
Potenciação Divide and ConquerPotenciação Divide and Conquer
Potenciação Divide and ConquerAdilmar Dantas
 
Cinta de expansão torácica utilizando Arduino aplicado na fisioterapia respir...
Cinta de expansão torácica utilizando Arduino aplicado na fisioterapia respir...Cinta de expansão torácica utilizando Arduino aplicado na fisioterapia respir...
Cinta de expansão torácica utilizando Arduino aplicado na fisioterapia respir...Adilmar Dantas
 
Análise de Técnicas Computacionais para Classificação de Emoções
Análise de Técnicas Computacionais para Classificação de EmoçõesAnálise de Técnicas Computacionais para Classificação de Emoções
Análise de Técnicas Computacionais para Classificação de EmoçõesAdilmar Dantas
 
Reconhecimento Automático de Emoções
Reconhecimento Automático de EmoçõesReconhecimento Automático de Emoções
Reconhecimento Automático de EmoçõesAdilmar Dantas
 
Reconhecimento automático de emoções
Reconhecimento automático de emoçõesReconhecimento automático de emoções
Reconhecimento automático de emoçõesAdilmar Dantas
 
Detecção de Faces - Redes Neurais *MLP
Detecção de Faces - Redes Neurais *MLPDetecção de Faces - Redes Neurais *MLP
Detecção de Faces - Redes Neurais *MLPAdilmar Dantas
 
Rede Neural MLP para reconhecimento de Faces
Rede Neural MLP para reconhecimento de FacesRede Neural MLP para reconhecimento de Faces
Rede Neural MLP para reconhecimento de FacesAdilmar Dantas
 
ALgoritmo Genético - Escalonamento
ALgoritmo Genético - EscalonamentoALgoritmo Genético - Escalonamento
ALgoritmo Genético - EscalonamentoAdilmar Dantas
 
BIODATA: SOFTWARE WEB PARA GERENCIAMENTO DE COLETA DE DADOS BIOMÉDICOS
BIODATA: SOFTWARE WEB PARA GERENCIAMENTO DE COLETA DE DADOS BIOMÉDICOSBIODATA: SOFTWARE WEB PARA GERENCIAMENTO DE COLETA DE DADOS BIOMÉDICOS
BIODATA: SOFTWARE WEB PARA GERENCIAMENTO DE COLETA DE DADOS BIOMÉDICOSAdilmar Dantas
 
Alinhamento de Sequencia DNA
Alinhamento de Sequencia DNAAlinhamento de Sequencia DNA
Alinhamento de Sequencia DNAAdilmar Dantas
 
3ª maratona de games – facom ufu
3ª maratona de games – facom  ufu3ª maratona de games – facom  ufu
3ª maratona de games – facom ufuAdilmar Dantas
 
Monitor Cardíaco usando Arduino
Monitor Cardíaco usando Arduino Monitor Cardíaco usando Arduino
Monitor Cardíaco usando Arduino Adilmar Dantas
 
Algoritmo clique maximo - Analise de Algoritmos
Algoritmo clique maximo  - Analise de AlgoritmosAlgoritmo clique maximo  - Analise de Algoritmos
Algoritmo clique maximo - Analise de AlgoritmosAdilmar Dantas
 
TCC: WebLab Laboratório de Experimentação Remota
TCC: WebLab Laboratório de Experimentação RemotaTCC: WebLab Laboratório de Experimentação Remota
TCC: WebLab Laboratório de Experimentação RemotaAdilmar Dantas
 
Engenharia de software testes
Engenharia de software  testesEngenharia de software  testes
Engenharia de software testesAdilmar Dantas
 

Plus de Adilmar Dantas (20)

Querying nosql stores
Querying nosql storesQuerying nosql stores
Querying nosql stores
 
APLICATIVO MÓVEL PARA AFERIÇÃO DA FREQUÊNCIA CARDÍACA E ACOMPANHAMENTO MÉDICO...
APLICATIVO MÓVEL PARA AFERIÇÃO DA FREQUÊNCIA CARDÍACA E ACOMPANHAMENTO MÉDICO...APLICATIVO MÓVEL PARA AFERIÇÃO DA FREQUÊNCIA CARDÍACA E ACOMPANHAMENTO MÉDICO...
APLICATIVO MÓVEL PARA AFERIÇÃO DA FREQUÊNCIA CARDÍACA E ACOMPANHAMENTO MÉDICO...
 
Programação Android Phonegap 1
Programação Android Phonegap 1Programação Android Phonegap 1
Programação Android Phonegap 1
 
Potenciação Divide and Conquer
Potenciação Divide and ConquerPotenciação Divide and Conquer
Potenciação Divide and Conquer
 
Cinta de expansão torácica utilizando Arduino aplicado na fisioterapia respir...
Cinta de expansão torácica utilizando Arduino aplicado na fisioterapia respir...Cinta de expansão torácica utilizando Arduino aplicado na fisioterapia respir...
Cinta de expansão torácica utilizando Arduino aplicado na fisioterapia respir...
 
Análise de Técnicas Computacionais para Classificação de Emoções
Análise de Técnicas Computacionais para Classificação de EmoçõesAnálise de Técnicas Computacionais para Classificação de Emoções
Análise de Técnicas Computacionais para Classificação de Emoções
 
Reconhecimento Automático de Emoções
Reconhecimento Automático de EmoçõesReconhecimento Automático de Emoções
Reconhecimento Automático de Emoções
 
Reconhecimento automático de emoções
Reconhecimento automático de emoçõesReconhecimento automático de emoções
Reconhecimento automático de emoções
 
Detecção de Faces - Redes Neurais *MLP
Detecção de Faces - Redes Neurais *MLPDetecção de Faces - Redes Neurais *MLP
Detecção de Faces - Redes Neurais *MLP
 
Rede Neural MLP para reconhecimento de Faces
Rede Neural MLP para reconhecimento de FacesRede Neural MLP para reconhecimento de Faces
Rede Neural MLP para reconhecimento de Faces
 
ALgoritmo Genético - Escalonamento
ALgoritmo Genético - EscalonamentoALgoritmo Genético - Escalonamento
ALgoritmo Genético - Escalonamento
 
BIODATA: SOFTWARE WEB PARA GERENCIAMENTO DE COLETA DE DADOS BIOMÉDICOS
BIODATA: SOFTWARE WEB PARA GERENCIAMENTO DE COLETA DE DADOS BIOMÉDICOSBIODATA: SOFTWARE WEB PARA GERENCIAMENTO DE COLETA DE DADOS BIOMÉDICOS
BIODATA: SOFTWARE WEB PARA GERENCIAMENTO DE COLETA DE DADOS BIOMÉDICOS
 
Alinhamento de Sequencia DNA
Alinhamento de Sequencia DNAAlinhamento de Sequencia DNA
Alinhamento de Sequencia DNA
 
3ª maratona de games – facom ufu
3ª maratona de games – facom  ufu3ª maratona de games – facom  ufu
3ª maratona de games – facom ufu
 
Monitor Cardíaco usando Arduino
Monitor Cardíaco usando Arduino Monitor Cardíaco usando Arduino
Monitor Cardíaco usando Arduino
 
Algoritmo clique maximo - Analise de Algoritmos
Algoritmo clique maximo  - Analise de AlgoritmosAlgoritmo clique maximo  - Analise de Algoritmos
Algoritmo clique maximo - Analise de Algoritmos
 
Servidores Web
Servidores WebServidores Web
Servidores Web
 
TCC: WebLab Laboratório de Experimentação Remota
TCC: WebLab Laboratório de Experimentação RemotaTCC: WebLab Laboratório de Experimentação Remota
TCC: WebLab Laboratório de Experimentação Remota
 
Weblab TCC
Weblab TCCWeblab TCC
Weblab TCC
 
Engenharia de software testes
Engenharia de software  testesEngenharia de software  testes
Engenharia de software testes
 

Desenvolvimento de Software

  • 1.
  • 3. O que são métodos ágeis de desenvolvimento? • Metodologias de desenvolvimento que nos permita alterar constantemente o código sem comprometer sua qualidade. Quanto mais Estabilidade da relação custo e funcionalida funcionalidade des maior o custo
  • 4. Principais Métodos • Abordadas • Outros métodos • Programação extrema • Adaptive Software Development • Scrum • Crystal • Programação pareada • Pragmatic Programming • Orientado a testes
  • 5. Casos de sucesso !!!! • Assembléia Legislativa do Estado de São Paulo • Ikwa • ITM • Paggo • Parceria com Scopus e LARC • Sistema Janus • LocaWeb
  • 7. Programação eXtrema (XP) É uma metodologia ágil para equipes pequenas e médias e que irão desenvolver software com requisitos vagos e em constante mudança. Para isso, adota a estratégia de constante acompanhamento e realização de vários pequenos ajustes durante o desenvolvimento de software. Desenvolvedor (KENT BECK) Valores • Comunicação • Simplicidade • Retroalimentação (Feedback) • Coragem • Respeito Comunicação • A maioria dos problemas e erros são causados por falta de comunicação • Maximizar a comunicação entre a equipe e o cliente • Comunicação entre pessoas: direta • Comunicação entre pessoas e artefatos: • estes devem ser de leitura fácil e estar atualizados
  • 8. Programação eXtrema (XP) Valores contrários a programação XP • Comunicação – preferir papel a olho-no-olho • Simplicidade – fazer mais do que o necessário para resolver o problema atual pensando em antecipar a resolução de problemas futuros • Retroalimentação (Feedback) – Retroalimentação só bem perto do final. Contrato assinado. • Coragem • Respeito – Longas jornadas de trabalho para terminar o projeto
  • 9. Programação eXtrema (XP) Princípios da programação XP • Humanidade • Economia • Benefício mútuo • Auto similaridade • Melhora contínua • Diversidade • Reflexão • Oportunidade • Redundância • Falha • Qualidade • Passos de bebê • Responsabilidade aceita
  • 10. Programação eXtrema (XP) Praticas da programação XP • Categorias • Fatores relacionados a equipes e fatores humanos – Análise de Requisitos e Planejamento – Sentar junto – Fatores relacionados a equipes e fatores humanos – Time inteiro – Projeto (Design) – Ambiente de trabalho informativo – Codificação e lançamento (liberação) de código – Trabalho energizado – Programação Pareada • Análise de Requisitos e Planejamento • Projeto (Design) – Ciclo semanal – Ciclo quinzenal – Design incremental – Folga – Programação com testes primeiro
  • 11. Programação eXtrema (XP) Praticas da programação XP • Codificação e lançamento (liberação) de código – Build de dez minutos (compilar) – Integração contínua • Codificação e lançamento (liberação) de código – Código e testes – Código compartilhado – Base de código única – Entrega (deployment) diária
  • 13. Programação Scrum eXtrema (XP) • O Scrum é um processo de desenvolvimento iterativo e incremental para gerenciamento de projetos e desenvolvimento ágil de software. • Scrum possui seu foco na gerenciamento de projeto da organização onde é difícil planejar à frente.
  • 14. Programação Scrum eXtrema (XP) Características • Processo de controle e gerenciamento • Processo iterativo de inspeção e adaptação • Usado para gerenciar projetos complexos • Entrega valor de negócio periodicamente • Compatível com CMMi até o nível 3, ISO e outras metodologias • Extremamente simples, mas muito difícil
  • 15. Programação Scrum eXtrema (XP) • Princípios do SCRUM • Os envolvidos trabalham em equipe com: • – Responsabilidade • – Transparência • – Honestidade • – Auto-organização • Fornecer software funcionando • – De forma incremental • – Potencialmente empregável
  • 16. Programação Scrum eXtrema (XP) • Tipos de processo SCRUM • Processo prescritivo – Funciona em ambientes controlados • Processo empírico – Funciona para processos complexos e imprevisíveis
  • 18. Programação Programação Scrum eXtrema (XP) pareada • Programação pareada é a prática onde um ou mais programadores trabalham lado a lado em um computador colaborando no mesmo projeto, algoritmo, código ou teste. Principal vantagem Quando se está trabalhando em par se trabalha o dia todo. Pois ao trabalhar sozinho, você vê o seu e-mail, lê blogs e etc. E essas coisas não acontecem com programação em par. Ao fim de um dia de programação em par você está cansado, pois você realmente pensou e trabalhou o dia todo. Mas você fica contente, pois sabe que teve o trabalho realizado
  • 19. Programação Programação Scrum eXtrema (XP) pareada • O par é composto de: • Um motorista: que digita no computador ou registra o projeto • Um navegador: que observa o trabalho do motorista e identifica problemas, clarifica questões e faz sugestões. • Os parceiros devem trocar de papéis de tempos em tempos para compartilhar o trabalho igualmente e obter o máximo da sua experiência com a programação pareada.
  • 20. Programação Programação Scrum eXtrema (XP) pareada • Importante • Um controla o teclado e o mouse • O outro observa criticamente • Os dois estão continuamente dialogando • De tempos em tempos, o controle muda de mãos • Ao longo de um projeto, os companheiros são trocados
  • 21. Programação Programação Scrum eXtrema (XP) pareada • Vale a pena ? • Aparentemente não... • Usa dois “recursos” em vez de um • Pagar o salário de dois desenvolvedores para trabalharem num mesmo problema??? • Os dois usam o mesmo computador a maior parte do tempo (o outro fica ocioso...)
  • 22. Programação Programação Scrum eXtrema (XP) pareada • Por que fazer ? • Pesquisas mostraram que: • Aumenta a qualidade do software • As tarefas são completadas em menos tempo(mas não necessariamente em menos da metade do tempo que um programador sozinho gasta) • Tão importante quanto a programação pareada são a análise pareada e o projeto (design) pareado
  • 24. Programação Programação Orientado a Scrum eXtrema (XP) pareada testes • Orientada no modelo cascata – Licitação de requisitos – Projeto – Construção (implementação ou codificação) – Integração – Teste e depuração – Instalação – Manutenção de software
  • 25. Programação Programação Orientado a Scrum eXtrema (XP) pareada testes • Tipos de testes • Unidade • Integração • Interface de Usuário • Aceitação • Mutação • Desempenho • Estresse • Segurança
  • 26. Programação Programação Orientado a Scrum eXtrema (XP) pareada testes • Teste de Software: – Executar o programa a ser testado com alguma entrada e conferir visualmente os resultados obtidos • Teste Automatizado: – Programa ou script executável que roda o programa a ser testado e faz verificações automáticas em cima dos efeitos colaterais obtidos. • Testar NÃO é depurar – Testar é verificar a presença de erros – Depurar é seguir o fluxo para identificar um erro conhecido
  • 27. Programação Programação Orientado a Scrum eXtrema (XP) pareada testes Principais Métodos • Referencias • BECK, Kent. Simple Smalltalk Testing: With Patterns. • http://www.xprogramming.com/testfram.htm • http://www-128.ibm.com/developerworks/java/library/• • http://www.instrumentalservices.com/media/articles • http://www.prowareness.com/blog/pair-programing-an-xp-practice-benefits/ Livro: Metodologias Ágeis: Engenharia de Software sob Medida - José Henrique Teixeira de Carvalho Sbrocco e Paulo Cesar de Macedo