SlideShare uma empresa Scribd logo
Engenharia de Softwares e Gerência de
Projetos
Prof. Rudson Kiyoshi Souza Carvalho
Anhanguera - 2015
Engenharia de Software - Parte 3
Engenharia de Softwares e Gerência de
Projetos.
Processos de
Software
Modelo Espiral de Boehm
• O Modelo em espiral é um processo de
desenvolvimento de software que combina elementos
de projeto prototipação em etapas, em um esforço
para combinar as vantagens dos conceitos de top-
down e bottom-up, acrescentando um novo elemento,
a análise de riscos que falta a esses paradigmas.
Nota: o modelo em espiral foi definido por Barry
Boehm em seu artigo de 1988.
Wikipedia
Aula 3 - Engenharia de Software
• No estágio 1 devem ser determinados objetivos, soluções alternativas e
restrições.
• No estágio 2, devem ser analisados os riscos das decisões do estágio anterior.
Durante este estágio podem ser construídos protótipos ou realizar-se simulações
do software.
• No estágio 3 consiste nas atividades da fase de desenvolvimento, incluindo
design, especificação, codificação e verificação. A principal característica é que a
cada especificação que vai surgindo a cada ciclo - especificação de requisitos,
do software, da arquitetura, da interface de usuário e dos algoritmos e dados -
deve ser feita a verificação apropriadamente.
• No estágio 4 compreende a revisão das etapas anteriores e o planejamento da
próxima fase. Neste planejamento, dependendo dos resultados obtidos nos
estágios anteriores - decisões, análise de riscos e verificação, pode-se optar por
seguir o desenvolvimento num modelo Cascata (linear), Evolutivo ou
Transformação. Por exemplo, se já no primeiro ciclo, os requisitos forem
completamente especificados e validados pode-se optar por seguir o modelo
Cascata. Caso contrário, pode-se optar pela construção de novos protótipos,
incrementando-o, avaliando novos riscos e replanejando o processo.
RUP - Rational Unified
Process
Rational Unified Process
• O RUP, abreviação de Rational Unified Process (ou
Processo Unificado Rational), é um processo
proprietário de Engenharia de software criado pela
Rational Software Corporation, adquirida pela IBM,
ganhando um novo nome IRUP que agora é uma
abreviação de IBM Rational Unified Process e
tornando-se uma brand na área de Software,
fornecendo técnicas a serem seguidas pelos
membros da equipe de desenvolvimento de
software com o objetivo de aumentar a sua
produtividade no processo de desenvolvimento.
Wikipedia
Aula 3 - Engenharia de Software
Fases
• 1. Concepção: o objetivo desta fase é estabelecer um business case[2] para o sistema. Devem
ser identificadas todas as entidades externas (pessoas e sistemas) que irão interagir com o
sistema em desenvolvimento e definir essas interações. Essas informações são utilizadas para
avaliar a contribuição do novo sistema para o negócio.
• 2. Elaboração: os objetivos desta fase são desenvolver um entendimento do domínio do
problema, estabelecer um framework[3] de arquitetura para o sistema, desenvolver o plano de
projeto e identificar seus principais riscos. Ao final desta fase deve-se ter um modelo de
requisitos para o sistema (os casos de uso da UML são especificados), uma descrição de
arquitetura e um plano de desenvolvimento do software.
• 3. Construção: está fase está essencialmente relacionada ao projeto, programação e teste do
sistema. As partes do sistema são desenvolvidas paralelamente e integradas durante esta fase.
Ao final deve-se ter um sistema de software em funcionamento e a documentação associada
pronta para ser liberada para os usuários.
• 4. Transição: nesta fase, faz-se a transferência do sistema da comunidade de desenvolvimento
para a comunidade de usuários, com a entrada do sistema em funcionamento no ambiente real.
Esta é uma atividade ignorada na maioria dos modelos de processo de software, pois é onerosa
e às vezes problemática. Ao final desta fase, deve-se ter um sistema de software documentado,
funcionando corretamente em seu ambiente operacional.
Sommerville
Workflow
Disciplinas
Melhores práticas
abordadas
• 1. Desenvolver o software iterativamente: planejar os incrementos de software com
base nas prioridades do cliente e desenvolver e entregar o mais cedo possível às
características de sistema de maior prioridade no processo de desenvolvimento.
• 2. Gerenciar Requisitos: documentar explicitamente os requisitos do cliente e
manter acompanhamento das mudanças desses requisitos. Analisar o impacto das
mudanças no sistema antes de aceitá-las.
• 3. Usar arquiteturas baseadas em componentes: Estruturar a arquitetura do
sistema com componentes, reduzindo a quantidade de software a ser desenvolvido
e, consequentemente, reduzir custos e riscos.
• 4. Modelar software visualmente: usar modelos gráficos de UML para apresentar
as visões estática e dinâmica do software.
• 5. Verificar a qualidade do software: garantir que o software atenda aos padrões de
qualidade da organização.
• 6. Controlar as mudanças do software: gerenciar as mudanças do software,
usando um sistema de gerenciamento de mudanças, procedimentos e ferramentas
de gerenciamento de configuração.
Sommerville
Aula 3 - Engenharia de Software
Workflow de
Requisitos
Responsabilidades
Desenvolvimento
Ágil
Por que temos de ser ágeis?
• As regras de negócios mudam rapidamente
• O software tem que ser adaptado para as novas
regras
• Desenvolvimento e entrega rápida são
importantes em mercados competitivos
• A entrega rápida pode ser tão (ou mais) desejável
que a qualidade
Manifesto para o desenvolvimento ágil de software
Princípios por trás do
manifesto ágil
1. Nossa maior prioridade é satisfazer o cliente, através da entrega
adiantada e contínua de software de valor.
2. Aceitar mudanças de requisitos, mesmo no fim do
desenvolvimento. Processos ágeis se adequam a mudanças, para
que o cliente possa tirar vantagens competitivas.
3. Entregar software funcionando com freqüência, na escala de
semanas até meses, com preferência aos períodos mais curtos.
4. Pessoas relacionadas à negócios e desenvolvedores devem
trabalhar em conjunto e diariamente, durante todo o curso do
projeto.
5. Construir projetos ao redor de indivíduos motivados. Dando a eles
o ambiente e suporte necessário, e confiar que farão seu trabalho.
6. O Método mais eficiente e eficaz de transmitir informações para, e por dentro
de um time de desenvolvimento, é através de uma conversa cara a cara.
7. Software funcional é a medida primária de progresso.
8. Processos ágeis promovem um ambiente sustentável. Os patrocinadores,
desenvolvedores e usuários, devem ser capazes de manter indefinidamente,
passos constantes.
9. Contínua atenção à excelência técnica e bom design, aumenta a agilidade.
10.Simplicidade: a arte de maximizar a quantidade de trabalho que não precisou
ser feito.
11.As melhores arquiteturas, requisitos e designs emergem de times auto-
organizáveis.
12.Em intervalos regulares, o time reflete em como ficar mais efetivo, então, se
ajustam e otimizam seu comportamento de acordo.
Resumindo
• Envolvimento do cliente
• Entrega Incremental
• Pessoas, não processos
• Aceite as mudanças
• Manter a simplicidade
Ágil = Rápido
Ágil = Adaptativo
Scrum
GURUS
Primeiras Impressões
• Não possuí escopo fechado;
• A documentação é um monte de post-its;
• Jogam baralho durante o trabalho;
• É um processo sem gerente de projetos;
• Não possuí cronograma;
• Precisa de um time muito bom para funcionar;
• Não da para estimar, logo é impossível de vender;
• Meu cliente nunca vai aceitar isso;
• Jamais funcionará em projetos complexos;
O que é Scrum
• É um processo iterativo e incremental
para desenvolvimento de softwares.
• Seu principal objetivo é entregar
funcionalidades com o mais alto
valor de negócio para o cliente.
O que não é Scrum
• Scrum não é uma metodologia de
desenvolvimento de software.
• Scrum não garantirá a qualidade do seu
projeto.
• Scrum não fornece um conjunto de
templates para gerenciar tarefas,
requisitos, estimar ou gerar relatórios.
Papéis no Scrum
Aula 3 - Engenharia de Software
Product Owner
• Define as funcionalidades
• Prioriza as funcionalidades
• Escolhe as datas de
entregas
• Fornece Feedback
• Gerencia os stakeholders
• Aceita ou rejeita resultados
Aula 3 - Engenharia de Software
The Team
• Define as atividades
• Estima o esforço
• Desenvolve o produto
• Garante a qualidade
• Estão em constante
evolução
Aula 3 - Engenharia de Software
Scrum Master
• Remove os impedimentos
• Previne as interrupções
• Facilitador da equipe
• Suporte ao processo
Aula 3 - Engenharia de Software
Aula 3 - Engenharia de Software
Planejamento da Sprint
(Sprint Planning)
• Esta é uma reunião onde o próprio nome já diz
tudo, é uma reunião de planejamento. Uma reunião
de curta duração que dura entre 3 a 4 horas e que
tem como objetivo fazer todo o planejamento da
Sprint.
Reunião Diária
(Daily Meeting)
O Daily Scrum é uma reunião publica, onde todos podem participar mais só
membros do time podem fazer comentários e perguntas. A idéia é que seja
realizada fora do ambiente da equipe e que seja feita em no máximo 15 minutos.
Umas das principais regras a serem cumpridas são as três
• O que eu fiz desde a última reunião?
Ex.: Comecei a implementar a funcionalidade de login da aplicação.
• O que vou fazer até a próxima reunião?
Ex.: Vou codificar a validação da senha do usuário do lado cliente.
• Quais os problemas que estão impedindo a realização do meu trabalho?
Ex.: A minha máquina não liga.
Revisão do Sprint
(Spring Review)
• Está é uma reunião realizada no último dia da
Sprint, para apresentar o que foi feito durante a
Sprint, ou seja, apresentar o resultado do trabalho.
Retrospectiva da Sprint
(Sprint Retrospective)
• Esta é uma reunião formal e fechada, geralmente
com timeboxed de 3 horas. Participam o time, o
Scrum Master e Product Owner (presença
opcional).
• Esta reunião tem como objetivo detectar pontos de
melhorias.
Ciclo de Trabalho
Scrum
Aula 3 - Engenharia de Software
Estimativa com
Planning Poker
Estimativa com Planning
Poker
• A técnica Planning Poker foi definida pela primeira vez por
James Grenning em 2002, e popularizada por Mike Cohn
no livro Agile Estimating and Planning no qual registrou o
termo Planning Poker (PP). Cohn (2013) e Grenning (2002)
descrevem o PP como uma técnica de estimativa de
tamanho voltada para as metodologias ágeis de
desenvolvimento de software.
Aula 3 - Engenharia de Software
Aula 3 - Engenharia de Software
Quadro de Atividades
Aula 3 - Engenharia de Software
Aula 3 - Engenharia de Software
Aula 3 - Engenharia de Software
Layout de uma
atividade
Atividade
Definição de Pronto
Video Scrum
https://www.youtube.com/watch?v=CAZPC_kXW28
Atividade para Entrega
• Explique o processo Scrum apresentado em sala
de aula.
Aula 3 - Engenharia de Software

Mais conteúdo relacionado

Mais procurados (20)

PDF
Modelos de Processo de Software Parte 4
Elaine Cecília Gatto
 
PDF
ISO/IEC 9241-11
Elaine Cecília Gatto
 
PDF
Qualidade de Software: MPS.BR
Elaine Cecília Gatto
 
PDF
Modelos de Processo de Software Parte 2
Elaine Cecília Gatto
 
PDF
Modelos de Processo de Software Parte 3
Elaine Cecília Gatto
 
PDF
Aula Gestão de Projetos Escopo, Tempo e Custo
Rudson Kiyoshi Souza Carvalho
 
PDF
Feature-Driven Development - Visão Geral
Ruan Carvalho
 
PDF
Outras Metodologias Ágeis Parte 2
Elaine Cecília Gatto
 
PDF
Outras Metodologias Ágeis Parte 3
Elaine Cecília Gatto
 
PDF
Outras Metodologias Ágeis Parte1
Elaine Cecília Gatto
 
PDF
Modelos de Processo e Desenvolvimento de Software 1 - Prof.ª Cristiane Fidelix
Cris Fidelix
 
PPT
Engenharia Software Rup
Felipe
 
PDF
Feature Driven Development – Desenvolvimento Guiado por Funcionalidades
Hiury Araújo
 
PDF
Feature driven development
Izabel Rodrigues
 
PDF
Metodologia Ágil
Elaine Cecília Gatto
 
PDF
Crystal Clear
Elaine Cecília Gatto
 
PDF
Modelos de Processo de Desenvolvimento de Software 2 - Prof.ª Cristiane Fidelix
Cris Fidelix
 
Modelos de Processo de Software Parte 4
Elaine Cecília Gatto
 
ISO/IEC 9241-11
Elaine Cecília Gatto
 
Qualidade de Software: MPS.BR
Elaine Cecília Gatto
 
Modelos de Processo de Software Parte 2
Elaine Cecília Gatto
 
Modelos de Processo de Software Parte 3
Elaine Cecília Gatto
 
Aula Gestão de Projetos Escopo, Tempo e Custo
Rudson Kiyoshi Souza Carvalho
 
Feature-Driven Development - Visão Geral
Ruan Carvalho
 
Outras Metodologias Ágeis Parte 2
Elaine Cecília Gatto
 
Outras Metodologias Ágeis Parte 3
Elaine Cecília Gatto
 
Outras Metodologias Ágeis Parte1
Elaine Cecília Gatto
 
Modelos de Processo e Desenvolvimento de Software 1 - Prof.ª Cristiane Fidelix
Cris Fidelix
 
Engenharia Software Rup
Felipe
 
Feature Driven Development – Desenvolvimento Guiado por Funcionalidades
Hiury Araújo
 
Feature driven development
Izabel Rodrigues
 
Metodologia Ágil
Elaine Cecília Gatto
 
Crystal Clear
Elaine Cecília Gatto
 
Modelos de Processo de Desenvolvimento de Software 2 - Prof.ª Cristiane Fidelix
Cris Fidelix
 

Destaque (14)

PDF
Desenvolvimento Ágil com Scrum e XP
lucianocoelho
 
PPTX
Modelo cascata
Priscila Comparsi
 
PPT
Modelo cascata apresentação
erysonsi
 
PPT
Introdução a Metodologia XP (E Xtreme Programming)
Rennan Martini
 
PPTX
Processos de Desenvolvimento de Software - teoria e prática
Ralph Rassweiler
 
PPTX
Extreme programming (xp) - Resumo
Daniel Brandão
 
PPTX
Processo de Desenvolvimento de Software - Design de Software, Interface, Arqu...
Natanael Simões
 
PDF
Case Fábrica de Software: Metodologia de Desenvolvimento Híbrida e Ferramenta...
barros_val
 
PPTX
Fábrica de Software
Venki
 
PDF
O Processo de Desenvolvimento de Software
Camilo de Melo
 
ODP
Modelos de processos de software
Nécio de Lima Veras
 
PPT
Modelos de Processo de Software
Rogerio P C do Nascimento
 
PPT
Modelo cascata apresentação
erysonsi
 
PPT
Modelos de ciclo de vida de software
Yuri Garcia
 
Desenvolvimento Ágil com Scrum e XP
lucianocoelho
 
Modelo cascata
Priscila Comparsi
 
Modelo cascata apresentação
erysonsi
 
Introdução a Metodologia XP (E Xtreme Programming)
Rennan Martini
 
Processos de Desenvolvimento de Software - teoria e prática
Ralph Rassweiler
 
Extreme programming (xp) - Resumo
Daniel Brandão
 
Processo de Desenvolvimento de Software - Design de Software, Interface, Arqu...
Natanael Simões
 
Case Fábrica de Software: Metodologia de Desenvolvimento Híbrida e Ferramenta...
barros_val
 
Fábrica de Software
Venki
 
O Processo de Desenvolvimento de Software
Camilo de Melo
 
Modelos de processos de software
Nécio de Lima Veras
 
Modelos de Processo de Software
Rogerio P C do Nascimento
 
Modelo cascata apresentação
erysonsi
 
Modelos de ciclo de vida de software
Yuri Garcia
 
Anúncio

Semelhante a Aula 3 - Engenharia de Software (20)

PPT
Aula Nova Ageis Scrum Xp Spotify DDr.ppt
GustavoBarrosLins1
 
PPTX
1 apresentacao metodologia rcp
Frank Coelho
 
PPTX
1- Apresentacao Metodologia RCP
Frank Coelho
 
KEY
SCRUM - Aula1
Saulo Arruda
 
PPTX
Gestão Ágil de Projetos
InaniaVerba
 
PDF
Netshoes metodologia
Ale Uehara
 
PDF
Netshoes metodologia
Alexandre Uehara
 
PPTX
Extreme Programming (XP) e Scrum
Rafael Souza
 
PDF
Metodologias Ageis
MarcosMaozinha
 
PPTX
Desenvolvimento ágil de software
diogenes.araujo
 
PPT
SCRUM Processo de Desenvolvimento de Software
elliando dias
 
KEY
Slides da Aula de Gestão de Projetos Digitais
Márcio Oya
 
PDF
Agile
Eric Cavalcanti
 
PPT
Scrum
Andre Marsal
 
PPTX
Metodologia ágil
rolfczekus
 
PDF
Aula03 04 agile_scrum_xp
Joaquim Lopes Júnior
 
PPTX
Introdução às Metodologias Ágeis de Desenvolvimento
Jerry Medeiros
 
PPSX
Scrum - Introdução Interna para o Núcleo de Arquitetura de Informação
Alessandro Novais
 
PDF
Métodos ágeis
Evandro Agnes
 
PDF
Desenvolvimento ágil e práticas Lean
Renan Daré
 
Aula Nova Ageis Scrum Xp Spotify DDr.ppt
GustavoBarrosLins1
 
1 apresentacao metodologia rcp
Frank Coelho
 
1- Apresentacao Metodologia RCP
Frank Coelho
 
SCRUM - Aula1
Saulo Arruda
 
Gestão Ágil de Projetos
InaniaVerba
 
Netshoes metodologia
Ale Uehara
 
Netshoes metodologia
Alexandre Uehara
 
Extreme Programming (XP) e Scrum
Rafael Souza
 
Metodologias Ageis
MarcosMaozinha
 
Desenvolvimento ágil de software
diogenes.araujo
 
SCRUM Processo de Desenvolvimento de Software
elliando dias
 
Slides da Aula de Gestão de Projetos Digitais
Márcio Oya
 
Metodologia ágil
rolfczekus
 
Aula03 04 agile_scrum_xp
Joaquim Lopes Júnior
 
Introdução às Metodologias Ágeis de Desenvolvimento
Jerry Medeiros
 
Scrum - Introdução Interna para o Núcleo de Arquitetura de Informação
Alessandro Novais
 
Métodos ágeis
Evandro Agnes
 
Desenvolvimento ágil e práticas Lean
Renan Daré
 
Anúncio

Mais de Rudson Kiyoshi Souza Carvalho (12)

PDF
Aula Xml Schema - XSD
Rudson Kiyoshi Souza Carvalho
 
PDF
Aula de DTD Definição do Tipo de Documento
Rudson Kiyoshi Souza Carvalho
 
PDF
Aula Introdução a Linguagem XML
Rudson Kiyoshi Souza Carvalho
 
PDF
Aula MS Project Gestão de Projetos
Rudson Kiyoshi Souza Carvalho
 
PDF
Aula Gestão de Projetos
Rudson Kiyoshi Souza Carvalho
 
PPTX
Marketing inteligente
Rudson Kiyoshi Souza Carvalho
 
PDF
Data Warehouse - Modelagem
Rudson Kiyoshi Souza Carvalho
 
PDF
Business Intelligence - Data Warehouse
Rudson Kiyoshi Souza Carvalho
 
PPTX
Maven introdução Muito Rápida
Rudson Kiyoshi Souza Carvalho
 
PPT
Aula de Analise e Projetos - Diagramas UML - prof. Rudson Kiyoshi S. Carvalho
Rudson Kiyoshi Souza Carvalho
 
PPTX
Introdução ao banco de dados
Rudson Kiyoshi Souza Carvalho
 
PPT
Palestra Anhanguera de Business intelligence. Prof Rudson Kiyoshi S. Carvalho
Rudson Kiyoshi Souza Carvalho
 
Aula Xml Schema - XSD
Rudson Kiyoshi Souza Carvalho
 
Aula de DTD Definição do Tipo de Documento
Rudson Kiyoshi Souza Carvalho
 
Aula Introdução a Linguagem XML
Rudson Kiyoshi Souza Carvalho
 
Aula MS Project Gestão de Projetos
Rudson Kiyoshi Souza Carvalho
 
Aula Gestão de Projetos
Rudson Kiyoshi Souza Carvalho
 
Marketing inteligente
Rudson Kiyoshi Souza Carvalho
 
Data Warehouse - Modelagem
Rudson Kiyoshi Souza Carvalho
 
Business Intelligence - Data Warehouse
Rudson Kiyoshi Souza Carvalho
 
Maven introdução Muito Rápida
Rudson Kiyoshi Souza Carvalho
 
Aula de Analise e Projetos - Diagramas UML - prof. Rudson Kiyoshi S. Carvalho
Rudson Kiyoshi Souza Carvalho
 
Introdução ao banco de dados
Rudson Kiyoshi Souza Carvalho
 
Palestra Anhanguera de Business intelligence. Prof Rudson Kiyoshi S. Carvalho
Rudson Kiyoshi Souza Carvalho
 

Aula 3 - Engenharia de Software

  • 1. Engenharia de Softwares e Gerência de Projetos Prof. Rudson Kiyoshi Souza Carvalho Anhanguera - 2015 Engenharia de Software - Parte 3
  • 2. Engenharia de Softwares e Gerência de Projetos.
  • 4. Modelo Espiral de Boehm • O Modelo em espiral é um processo de desenvolvimento de software que combina elementos de projeto prototipação em etapas, em um esforço para combinar as vantagens dos conceitos de top- down e bottom-up, acrescentando um novo elemento, a análise de riscos que falta a esses paradigmas. Nota: o modelo em espiral foi definido por Barry Boehm em seu artigo de 1988. Wikipedia
  • 6. • No estágio 1 devem ser determinados objetivos, soluções alternativas e restrições. • No estágio 2, devem ser analisados os riscos das decisões do estágio anterior. Durante este estágio podem ser construídos protótipos ou realizar-se simulações do software. • No estágio 3 consiste nas atividades da fase de desenvolvimento, incluindo design, especificação, codificação e verificação. A principal característica é que a cada especificação que vai surgindo a cada ciclo - especificação de requisitos, do software, da arquitetura, da interface de usuário e dos algoritmos e dados - deve ser feita a verificação apropriadamente. • No estágio 4 compreende a revisão das etapas anteriores e o planejamento da próxima fase. Neste planejamento, dependendo dos resultados obtidos nos estágios anteriores - decisões, análise de riscos e verificação, pode-se optar por seguir o desenvolvimento num modelo Cascata (linear), Evolutivo ou Transformação. Por exemplo, se já no primeiro ciclo, os requisitos forem completamente especificados e validados pode-se optar por seguir o modelo Cascata. Caso contrário, pode-se optar pela construção de novos protótipos, incrementando-o, avaliando novos riscos e replanejando o processo.
  • 7. RUP - Rational Unified Process
  • 8. Rational Unified Process • O RUP, abreviação de Rational Unified Process (ou Processo Unificado Rational), é um processo proprietário de Engenharia de software criado pela Rational Software Corporation, adquirida pela IBM, ganhando um novo nome IRUP que agora é uma abreviação de IBM Rational Unified Process e tornando-se uma brand na área de Software, fornecendo técnicas a serem seguidas pelos membros da equipe de desenvolvimento de software com o objetivo de aumentar a sua produtividade no processo de desenvolvimento. Wikipedia
  • 10. Fases • 1. Concepção: o objetivo desta fase é estabelecer um business case[2] para o sistema. Devem ser identificadas todas as entidades externas (pessoas e sistemas) que irão interagir com o sistema em desenvolvimento e definir essas interações. Essas informações são utilizadas para avaliar a contribuição do novo sistema para o negócio. • 2. Elaboração: os objetivos desta fase são desenvolver um entendimento do domínio do problema, estabelecer um framework[3] de arquitetura para o sistema, desenvolver o plano de projeto e identificar seus principais riscos. Ao final desta fase deve-se ter um modelo de requisitos para o sistema (os casos de uso da UML são especificados), uma descrição de arquitetura e um plano de desenvolvimento do software. • 3. Construção: está fase está essencialmente relacionada ao projeto, programação e teste do sistema. As partes do sistema são desenvolvidas paralelamente e integradas durante esta fase. Ao final deve-se ter um sistema de software em funcionamento e a documentação associada pronta para ser liberada para os usuários. • 4. Transição: nesta fase, faz-se a transferência do sistema da comunidade de desenvolvimento para a comunidade de usuários, com a entrada do sistema em funcionamento no ambiente real. Esta é uma atividade ignorada na maioria dos modelos de processo de software, pois é onerosa e às vezes problemática. Ao final desta fase, deve-se ter um sistema de software documentado, funcionando corretamente em seu ambiente operacional. Sommerville
  • 12. Melhores práticas abordadas • 1. Desenvolver o software iterativamente: planejar os incrementos de software com base nas prioridades do cliente e desenvolver e entregar o mais cedo possível às características de sistema de maior prioridade no processo de desenvolvimento. • 2. Gerenciar Requisitos: documentar explicitamente os requisitos do cliente e manter acompanhamento das mudanças desses requisitos. Analisar o impacto das mudanças no sistema antes de aceitá-las. • 3. Usar arquiteturas baseadas em componentes: Estruturar a arquitetura do sistema com componentes, reduzindo a quantidade de software a ser desenvolvido e, consequentemente, reduzir custos e riscos. • 4. Modelar software visualmente: usar modelos gráficos de UML para apresentar as visões estática e dinâmica do software. • 5. Verificar a qualidade do software: garantir que o software atenda aos padrões de qualidade da organização. • 6. Controlar as mudanças do software: gerenciar as mudanças do software, usando um sistema de gerenciamento de mudanças, procedimentos e ferramentas de gerenciamento de configuração. Sommerville
  • 17. Por que temos de ser ágeis? • As regras de negócios mudam rapidamente • O software tem que ser adaptado para as novas regras • Desenvolvimento e entrega rápida são importantes em mercados competitivos • A entrega rápida pode ser tão (ou mais) desejável que a qualidade
  • 18. Manifesto para o desenvolvimento ágil de software
  • 19. Princípios por trás do manifesto ágil 1. Nossa maior prioridade é satisfazer o cliente, através da entrega adiantada e contínua de software de valor. 2. Aceitar mudanças de requisitos, mesmo no fim do desenvolvimento. Processos ágeis se adequam a mudanças, para que o cliente possa tirar vantagens competitivas. 3. Entregar software funcionando com freqüência, na escala de semanas até meses, com preferência aos períodos mais curtos. 4. Pessoas relacionadas à negócios e desenvolvedores devem trabalhar em conjunto e diariamente, durante todo o curso do projeto. 5. Construir projetos ao redor de indivíduos motivados. Dando a eles o ambiente e suporte necessário, e confiar que farão seu trabalho.
  • 20. 6. O Método mais eficiente e eficaz de transmitir informações para, e por dentro de um time de desenvolvimento, é através de uma conversa cara a cara. 7. Software funcional é a medida primária de progresso. 8. Processos ágeis promovem um ambiente sustentável. Os patrocinadores, desenvolvedores e usuários, devem ser capazes de manter indefinidamente, passos constantes. 9. Contínua atenção à excelência técnica e bom design, aumenta a agilidade. 10.Simplicidade: a arte de maximizar a quantidade de trabalho que não precisou ser feito. 11.As melhores arquiteturas, requisitos e designs emergem de times auto- organizáveis. 12.Em intervalos regulares, o time reflete em como ficar mais efetivo, então, se ajustam e otimizam seu comportamento de acordo.
  • 21. Resumindo • Envolvimento do cliente • Entrega Incremental • Pessoas, não processos • Aceite as mudanças • Manter a simplicidade
  • 22. Ágil = Rápido Ágil = Adaptativo
  • 23. Scrum
  • 24. GURUS
  • 25. Primeiras Impressões • Não possuí escopo fechado; • A documentação é um monte de post-its; • Jogam baralho durante o trabalho; • É um processo sem gerente de projetos; • Não possuí cronograma; • Precisa de um time muito bom para funcionar; • Não da para estimar, logo é impossível de vender; • Meu cliente nunca vai aceitar isso; • Jamais funcionará em projetos complexos;
  • 26. O que é Scrum • É um processo iterativo e incremental para desenvolvimento de softwares. • Seu principal objetivo é entregar funcionalidades com o mais alto valor de negócio para o cliente.
  • 27. O que não é Scrum • Scrum não é uma metodologia de desenvolvimento de software. • Scrum não garantirá a qualidade do seu projeto. • Scrum não fornece um conjunto de templates para gerenciar tarefas, requisitos, estimar ou gerar relatórios.
  • 30. Product Owner • Define as funcionalidades • Prioriza as funcionalidades • Escolhe as datas de entregas • Fornece Feedback • Gerencia os stakeholders • Aceita ou rejeita resultados
  • 32. The Team • Define as atividades • Estima o esforço • Desenvolve o produto • Garante a qualidade • Estão em constante evolução
  • 34. Scrum Master • Remove os impedimentos • Previne as interrupções • Facilitador da equipe • Suporte ao processo
  • 37. Planejamento da Sprint (Sprint Planning) • Esta é uma reunião onde o próprio nome já diz tudo, é uma reunião de planejamento. Uma reunião de curta duração que dura entre 3 a 4 horas e que tem como objetivo fazer todo o planejamento da Sprint.
  • 38. Reunião Diária (Daily Meeting) O Daily Scrum é uma reunião publica, onde todos podem participar mais só membros do time podem fazer comentários e perguntas. A idéia é que seja realizada fora do ambiente da equipe e que seja feita em no máximo 15 minutos. Umas das principais regras a serem cumpridas são as três • O que eu fiz desde a última reunião? Ex.: Comecei a implementar a funcionalidade de login da aplicação. • O que vou fazer até a próxima reunião? Ex.: Vou codificar a validação da senha do usuário do lado cliente. • Quais os problemas que estão impedindo a realização do meu trabalho? Ex.: A minha máquina não liga.
  • 39. Revisão do Sprint (Spring Review) • Está é uma reunião realizada no último dia da Sprint, para apresentar o que foi feito durante a Sprint, ou seja, apresentar o resultado do trabalho.
  • 40. Retrospectiva da Sprint (Sprint Retrospective) • Esta é uma reunião formal e fechada, geralmente com timeboxed de 3 horas. Participam o time, o Scrum Master e Product Owner (presença opcional). • Esta reunião tem como objetivo detectar pontos de melhorias.
  • 44. Estimativa com Planning Poker • A técnica Planning Poker foi definida pela primeira vez por James Grenning em 2002, e popularizada por Mike Cohn no livro Agile Estimating and Planning no qual registrou o termo Planning Poker (PP). Cohn (2013) e Grenning (2002) descrevem o PP como uma técnica de estimativa de tamanho voltada para as metodologias ágeis de desenvolvimento de software.
  • 56. Atividade para Entrega • Explique o processo Scrum apresentado em sala de aula.