SlideShare uma empresa Scribd logo
1 de 57
Baixar para ler offline
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
• 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
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
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
Product Owner
• Define as funcionalidades
• Prioriza as funcionalidades
• Escolhe as datas de
entregas
• Fornece Feedback
• Gerencia os stakeholders
• Aceita ou rejeita resultados
The Team
• Define as atividades
• Estima o esforço
• Desenvolve o produto
• Garante a qualidade
• Estão em constante
evolução
Scrum Master
• Remove os impedimentos
• Previne as interrupções
• Facilitador da equipe
• Suporte ao processo
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
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.
Quadro de Atividades
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

Modelos de Processo de Software Parte 4
Modelos de Processo de Software Parte 4Modelos de Processo de Software Parte 4
Modelos de Processo de Software Parte 4Elaine Cecília Gatto
 
Modelos de Processo de Software Parte 2
Modelos de Processo de Software Parte 2Modelos de Processo de Software Parte 2
Modelos de Processo de Software Parte 2Elaine Cecília Gatto
 
Modelos de Processo de Software Parte 3
Modelos de Processo de Software Parte 3Modelos de Processo de Software Parte 3
Modelos de Processo de Software Parte 3Elaine Cecília Gatto
 
Feature-Driven Development - Visão Geral
Feature-Driven Development - Visão GeralFeature-Driven Development - Visão Geral
Feature-Driven Development - Visão GeralRuan Carvalho
 
Modelos de Processo e Desenvolvimento de Software 1 - Prof.ª Cristiane Fidelix
Modelos de Processo e Desenvolvimento de Software 1 - Prof.ª Cristiane FidelixModelos de Processo e Desenvolvimento de Software 1 - Prof.ª Cristiane Fidelix
Modelos de Processo e Desenvolvimento de Software 1 - Prof.ª Cristiane FidelixCris Fidelix
 
Engenharia Software Rup
Engenharia Software   RupEngenharia Software   Rup
Engenharia Software RupFelipe
 
Feature Driven Development – Desenvolvimento Guiado por Funcionalidades
Feature Driven Development – Desenvolvimento Guiado por FuncionalidadesFeature Driven Development – Desenvolvimento Guiado por Funcionalidades
Feature Driven Development – Desenvolvimento Guiado por FuncionalidadesHiury Araújo
 
Feature driven development
Feature driven developmentFeature driven development
Feature driven developmentIzabel Rodrigues
 
Modelos de Processo de Desenvolvimento de Software 2 - Prof.ª Cristiane Fidelix
Modelos de Processo de Desenvolvimento de Software 2 - Prof.ª Cristiane FidelixModelos de Processo de Desenvolvimento de Software 2 - Prof.ª Cristiane Fidelix
Modelos de Processo de Desenvolvimento de Software 2 - Prof.ª Cristiane FidelixCris Fidelix
 

Mais procurados (20)

Modelos de Processo de Software Parte 4
Modelos de Processo de Software Parte 4Modelos de Processo de Software Parte 4
Modelos de Processo de Software Parte 4
 
ISO/IEC 9241-11
ISO/IEC 9241-11ISO/IEC 9241-11
ISO/IEC 9241-11
 
Qualidade de Software: MPS.BR
Qualidade de Software: MPS.BRQualidade de Software: MPS.BR
Qualidade de Software: MPS.BR
 
Modelos de Processo de Software Parte 2
Modelos de Processo de Software Parte 2Modelos de Processo de Software Parte 2
Modelos de Processo de Software Parte 2
 
Modelos de Processo de Software Parte 3
Modelos de Processo de Software Parte 3Modelos de Processo de Software Parte 3
Modelos de Processo de Software Parte 3
 
FDD
FDDFDD
FDD
 
Aula Gestão de Projetos Escopo, Tempo e Custo
Aula Gestão de Projetos Escopo, Tempo e CustoAula Gestão de Projetos Escopo, Tempo e Custo
Aula Gestão de Projetos Escopo, Tempo e Custo
 
DSDM
DSDMDSDM
DSDM
 
Feature-Driven Development - Visão Geral
Feature-Driven Development - Visão GeralFeature-Driven Development - Visão Geral
Feature-Driven Development - Visão Geral
 
Outras Metodologias Ágeis Parte 2
Outras Metodologias Ágeis Parte 2Outras Metodologias Ágeis Parte 2
Outras Metodologias Ágeis Parte 2
 
Outras Metodologias Ágeis Parte 3
Outras Metodologias Ágeis Parte 3Outras Metodologias Ágeis Parte 3
Outras Metodologias Ágeis Parte 3
 
Outras Metodologias Ágeis Parte1
Outras Metodologias Ágeis Parte1Outras Metodologias Ágeis Parte1
Outras Metodologias Ágeis Parte1
 
Modelos de Processo e Desenvolvimento de Software 1 - Prof.ª Cristiane Fidelix
Modelos de Processo e Desenvolvimento de Software 1 - Prof.ª Cristiane FidelixModelos de Processo e Desenvolvimento de Software 1 - Prof.ª Cristiane Fidelix
Modelos de Processo e Desenvolvimento de Software 1 - Prof.ª Cristiane Fidelix
 
Engenharia Software Rup
Engenharia Software   RupEngenharia Software   Rup
Engenharia Software Rup
 
Feature Driven Development – Desenvolvimento Guiado por Funcionalidades
Feature Driven Development – Desenvolvimento Guiado por FuncionalidadesFeature Driven Development – Desenvolvimento Guiado por Funcionalidades
Feature Driven Development – Desenvolvimento Guiado por Funcionalidades
 
Scrum
ScrumScrum
Scrum
 
Feature driven development
Feature driven developmentFeature driven development
Feature driven development
 
Metodologia Ágil
Metodologia ÁgilMetodologia Ágil
Metodologia Ágil
 
Crystal Clear
Crystal ClearCrystal Clear
Crystal Clear
 
Modelos de Processo de Desenvolvimento de Software 2 - Prof.ª Cristiane Fidelix
Modelos de Processo de Desenvolvimento de Software 2 - Prof.ª Cristiane FidelixModelos de Processo de Desenvolvimento de Software 2 - Prof.ª Cristiane Fidelix
Modelos de Processo de Desenvolvimento de Software 2 - Prof.ª Cristiane Fidelix
 

Destaque

Desenvolvimento Ágil com Scrum e XP
Desenvolvimento Ágil com Scrum e XPDesenvolvimento Ágil com Scrum e XP
Desenvolvimento Ágil com Scrum e XPlucianocoelho
 
Modelo cascata apresentação
Modelo cascata apresentaçãoModelo cascata apresentação
Modelo cascata apresentaçãoerysonsi
 
Introdução a Metodologia XP (E Xtreme Programming)
Introdução a Metodologia XP (E Xtreme Programming)Introdução a Metodologia XP (E Xtreme Programming)
Introdução a Metodologia XP (E Xtreme Programming)Rennan Martini
 
Processos de Desenvolvimento de Software - teoria e prática
Processos de Desenvolvimento de Software - teoria e práticaProcessos de Desenvolvimento de Software - teoria e prática
Processos de Desenvolvimento de Software - teoria e práticaRalph Rassweiler
 
Extreme programming (xp) - Resumo
Extreme programming (xp) - ResumoExtreme programming (xp) - Resumo
Extreme programming (xp) - ResumoDaniel Brandão
 
Processo de Desenvolvimento de Software - Design de Software, Interface, Arqu...
Processo de Desenvolvimento de Software - Design de Software, Interface, Arqu...Processo de Desenvolvimento de Software - Design de Software, Interface, Arqu...
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...
Case Fábrica de Software: Metodologia de Desenvolvimento Híbrida e Ferramenta...Case Fábrica de Software: Metodologia de Desenvolvimento Híbrida e Ferramenta...
Case Fábrica de Software: Metodologia de Desenvolvimento Híbrida e Ferramenta...barros_val
 
Fábrica de Software
Fábrica de SoftwareFábrica de Software
Fábrica de SoftwareVenki
 
O Processo de Desenvolvimento de Software
O Processo de Desenvolvimento de SoftwareO Processo de Desenvolvimento de Software
O Processo de Desenvolvimento de SoftwareCamilo de Melo
 
Modelo cascata apresentação
Modelo cascata apresentaçãoModelo cascata apresentação
Modelo cascata apresentaçãoerysonsi
 
Modelos de ciclo de vida de software
Modelos de ciclo de vida de softwareModelos de ciclo de vida de software
Modelos de ciclo de vida de softwareYuri Garcia
 

Destaque (14)

Desenvolvimento Ágil com Scrum e XP
Desenvolvimento Ágil com Scrum e XPDesenvolvimento Ágil com Scrum e XP
Desenvolvimento Ágil com Scrum e XP
 
Modelo cascata
Modelo cascataModelo cascata
Modelo cascata
 
Modelo cascata apresentação
Modelo cascata apresentaçãoModelo cascata apresentação
Modelo cascata apresentação
 
Introdução a Metodologia XP (E Xtreme Programming)
Introdução a Metodologia XP (E Xtreme Programming)Introdução a Metodologia XP (E Xtreme Programming)
Introdução a Metodologia XP (E Xtreme Programming)
 
Processos de Desenvolvimento de Software - teoria e prática
Processos de Desenvolvimento de Software - teoria e práticaProcessos de Desenvolvimento de Software - teoria e prática
Processos de Desenvolvimento de Software - teoria e prática
 
Extreme programming (xp) - Resumo
Extreme programming (xp) - ResumoExtreme programming (xp) - Resumo
Extreme programming (xp) - Resumo
 
Processo de Desenvolvimento de Software - Design de Software, Interface, Arqu...
Processo de Desenvolvimento de Software - Design de Software, Interface, Arqu...Processo de Desenvolvimento de Software - Design de Software, Interface, Arqu...
Processo de Desenvolvimento de Software - Design de Software, Interface, Arqu...
 
Case Fábrica de Software: Metodologia de Desenvolvimento Híbrida e Ferramenta...
Case Fábrica de Software: Metodologia de Desenvolvimento Híbrida e Ferramenta...Case Fábrica de Software: Metodologia de Desenvolvimento Híbrida e Ferramenta...
Case Fábrica de Software: Metodologia de Desenvolvimento Híbrida e Ferramenta...
 
Fábrica de Software
Fábrica de SoftwareFábrica de Software
Fábrica de Software
 
O Processo de Desenvolvimento de Software
O Processo de Desenvolvimento de SoftwareO Processo de Desenvolvimento de Software
O Processo de Desenvolvimento de Software
 
Modelos de processos de software
Modelos de processos de softwareModelos de processos de software
Modelos de processos de software
 
Modelos de Processo de Software
Modelos de Processo de SoftwareModelos de Processo de Software
Modelos de Processo de Software
 
Modelo cascata apresentação
Modelo cascata apresentaçãoModelo cascata apresentação
Modelo cascata apresentação
 
Modelos de ciclo de vida de software
Modelos de ciclo de vida de softwareModelos de ciclo de vida de software
Modelos de ciclo de vida de software
 

Semelhante a Aula 3 - Engenharia de Software

1- Apresentacao Metodologia RCP
1- Apresentacao Metodologia RCP1- Apresentacao Metodologia RCP
1- Apresentacao Metodologia RCPFrank Coelho
 
1 apresentacao metodologia rcp
1  apresentacao metodologia rcp1  apresentacao metodologia rcp
1 apresentacao metodologia rcpFrank Coelho
 
Scrum - Gerenciamento de Projetos
Scrum - Gerenciamento de ProjetosScrum - Gerenciamento de Projetos
Scrum - Gerenciamento de ProjetosWilliam Lima
 
Este trabalho trata
Este trabalho trataEste trabalho trata
Este trabalho trataRoni Reis
 
Extreme Programming (XP) e Scrum
Extreme Programming (XP) e ScrumExtreme Programming (XP) e Scrum
Extreme Programming (XP) e ScrumRafael Souza
 
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
 
Gerenciamento ágil de processos - SCRUM
Gerenciamento ágil de processos - SCRUMGerenciamento ágil de processos - SCRUM
Gerenciamento ágil de processos - SCRUMLucas Vinícius
 
Desenvolvimento ágil e práticas Lean
Desenvolvimento ágil e práticas LeanDesenvolvimento ágil e práticas Lean
Desenvolvimento ágil e práticas LeanRenan Daré
 
Scrum: Uma Nova Abordagem No Desenvolvimento De Software Face À Demanda...
Scrum: Uma Nova Abordagem No Desenvolvimento De Software Face À       Demanda...Scrum: Uma Nova Abordagem No Desenvolvimento De Software Face À       Demanda...
Scrum: Uma Nova Abordagem No Desenvolvimento De Software Face À Demanda...Luiz Lemos
 
Palestra sobre Fundamentos do Scrum e Kanban.
Palestra sobre Fundamentos do Scrum e Kanban.Palestra sobre Fundamentos do Scrum e Kanban.
Palestra sobre Fundamentos do Scrum e Kanban.Rafael de Oliveira
 
Projeto e Desenvolvimento de Software
Projeto e Desenvolvimento de SoftwareProjeto e Desenvolvimento de Software
Projeto e Desenvolvimento de SoftwareAragon Vieira
 

Semelhante a Aula 3 - Engenharia de Software (20)

1- Apresentacao Metodologia RCP
1- Apresentacao Metodologia RCP1- Apresentacao Metodologia RCP
1- Apresentacao Metodologia RCP
 
1 apresentacao metodologia rcp
1  apresentacao metodologia rcp1  apresentacao metodologia rcp
1 apresentacao metodologia rcp
 
Scrum - Gerenciamento de Projetos
Scrum - Gerenciamento de ProjetosScrum - Gerenciamento de Projetos
Scrum - Gerenciamento de Projetos
 
Este trabalho trata
Este trabalho trataEste trabalho trata
Este trabalho trata
 
Extreme Programming (XP) e Scrum
Extreme Programming (XP) e ScrumExtreme Programming (XP) e Scrum
Extreme Programming (XP) e Scrum
 
Metodologias Ageis
Metodologias AgeisMetodologias Ageis
Metodologias Ageis
 
Método Ágil Scrum
Método Ágil ScrumMétodo Ágil Scrum
Método Ágil Scrum
 
Introdução ao RUP
Introdução ao RUPIntrodução ao RUP
Introdução ao RUP
 
Gerenciamento ágil de projetos com scrum
Gerenciamento ágil de projetos com scrumGerenciamento ágil de projetos com scrum
Gerenciamento ágil de projetos com scrum
 
38484931 questionario-es
38484931 questionario-es38484931 questionario-es
38484931 questionario-es
 
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
 
Gerenciamento ágil de processos - SCRUM
Gerenciamento ágil de processos - SCRUMGerenciamento ágil de processos - SCRUM
Gerenciamento ágil de processos - SCRUM
 
Lista de Práticas Ágeis
Lista de Práticas ÁgeisLista de Práticas Ágeis
Lista de Práticas Ágeis
 
Desenvolvimento ágil e práticas Lean
Desenvolvimento ágil e práticas LeanDesenvolvimento ágil e práticas Lean
Desenvolvimento ágil e práticas Lean
 
Scrum: Uma Nova Abordagem No Desenvolvimento De Software Face À Demanda...
Scrum: Uma Nova Abordagem No Desenvolvimento De Software Face À       Demanda...Scrum: Uma Nova Abordagem No Desenvolvimento De Software Face À       Demanda...
Scrum: Uma Nova Abordagem No Desenvolvimento De Software Face À Demanda...
 
Aula 3
Aula 3Aula 3
Aula 3
 
Scrum
ScrumScrum
Scrum
 
Palestra sobre Fundamentos do Scrum e Kanban.
Palestra sobre Fundamentos do Scrum e Kanban.Palestra sobre Fundamentos do Scrum e Kanban.
Palestra sobre Fundamentos do Scrum e Kanban.
 
Projeto e Desenvolvimento de Software
Projeto e Desenvolvimento de SoftwareProjeto e Desenvolvimento de Software
Projeto e Desenvolvimento de Software
 
Scrum
ScrumScrum
Scrum
 

Mais de Rudson Kiyoshi Souza Carvalho (12)

Aula Xml Schema - XSD
Aula Xml Schema - XSDAula Xml Schema - XSD
Aula Xml Schema - XSD
 
Aula de DTD Definição do Tipo de Documento
Aula de DTD Definição do Tipo de DocumentoAula de DTD Definição do Tipo de Documento
Aula de DTD Definição do Tipo de Documento
 
Aula Introdução a Linguagem XML
Aula Introdução a Linguagem XMLAula Introdução a Linguagem XML
Aula Introdução a Linguagem XML
 
Aula MS Project Gestão de Projetos
Aula MS Project Gestão de ProjetosAula MS Project Gestão de Projetos
Aula MS Project Gestão de Projetos
 
Aula Gestão de Projetos
Aula Gestão de ProjetosAula Gestão de Projetos
Aula Gestão de Projetos
 
Marketing inteligente
Marketing inteligenteMarketing inteligente
Marketing inteligente
 
Data Warehouse - Modelagem
Data Warehouse - ModelagemData Warehouse - Modelagem
Data Warehouse - Modelagem
 
Business Intelligence - Data Warehouse
Business Intelligence - Data WarehouseBusiness Intelligence - Data Warehouse
Business Intelligence - Data Warehouse
 
Maven introdução Muito Rápida
Maven introdução Muito RápidaMaven introdução Muito Rápida
Maven introdução Muito Rápida
 
Aula de Analise e Projetos - Diagramas UML - prof. Rudson Kiyoshi S. Carvalho
Aula de Analise e Projetos - Diagramas UML - prof. Rudson Kiyoshi S. CarvalhoAula de Analise e Projetos - Diagramas UML - prof. Rudson Kiyoshi S. Carvalho
Aula de Analise e Projetos - Diagramas UML - prof. Rudson Kiyoshi S. Carvalho
 
Introdução ao banco de dados
Introdução ao banco de dadosIntrodução ao banco de dados
Introdução ao banco de dados
 
Palestra Anhanguera de Business intelligence. Prof Rudson Kiyoshi S. Carvalho
Palestra Anhanguera de Business intelligence. Prof Rudson Kiyoshi S. CarvalhoPalestra Anhanguera de Business intelligence. Prof Rudson Kiyoshi S. Carvalho
Palestra Anhanguera de Business intelligence. Prof Rudson Kiyoshi S. 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
  • 5.
  • 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
  • 9.
  • 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
  • 13.
  • 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.
  • 29.
  • 30. Product Owner • Define as funcionalidades • Prioriza as funcionalidades • Escolhe as datas de entregas • Fornece Feedback • Gerencia os stakeholders • Aceita ou rejeita resultados
  • 31.
  • 32. The Team • Define as atividades • Estima o esforço • Desenvolve o produto • Garante a qualidade • Estão em constante evolução
  • 33.
  • 34. Scrum Master • Remove os impedimentos • Previne as interrupções • Facilitador da equipe • Suporte ao processo
  • 35.
  • 36.
  • 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.
  • 42.
  • 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.
  • 45.
  • 46.
  • 48.
  • 49.
  • 50.
  • 56. Atividade para Entrega • Explique o processo Scrum apresentado em sala de aula.