SlideShare uma empresa Scribd logo
1 de 50
Baixar para ler offline
Engenharia de Softwares e Gerência de
Projetos
Prof. Rudson Kiyoshi Souza Carvalho
Anhanguera - 2015
Engenharia de Software - Parte 4
Engenharia de Softwares e Gerência de
Projetos.
Processos de
Software
CODE AND FIX
Code and Fix
• A metodologia de desenvolvimento codificar e consertar é a mais
frequentemente usada em engenharia de software. Ela começa com
pouco ou nenhum planejamento inicial, e imediatamente ao
começarmos a desenvolver , começamos a corrigir os problemas à
medida que ocorrem, até a conclusão do projeto .
• Codificar e consertar é uma escolha tentadora, quando nos
deparamos com um cronograma de desenvolvimento apertado, pois
necessitamos desenvolver o código imediatamente e obter um
resultado instantâneo.
• Infelizmente, podemos encontrar grandes problemas arquitetônicos ao
avançar neste processo, geralmente temos que reescrever grande
parte da aplicação, pois normalmente muitas empresas não tem
tempo para planejar, mas, sempre tem dinheiro para refazer.
Rudson Kiyoshi Souza Carvalho - 2015
Ainda temos problemas
• Código complexo;
• Baixa produtividade;
• Dificuldade em realizar
mudanças;
• Documentação defasada,
excessiva, incorreta;
• Cronograma sempre
atrasado;
• entre outros…
Manifesto para o desenvolvimento ágil de software
Nuvem de Mudanças
Scrum
XP
TDD
FDD
Crystal
LeanDynamic Systems
Development Method
Adaptative Software
Development Method
Extreme Programming
Extreme Programing - XP
Programação extrema (do inglês eXtreme Programming),
ou simplesmente 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.
Wikipedia
Valores
• Coragem
• Comunicação
• Respeito
• Simplicidade
• Feedback
Princípios Básicos
• Feedback rápido
• Presumir simplicidade
• Mudanças incrementais
• Abraçar mudanças
• Trabalho de alta qualidade.
Ciclo de Vida XP
Jogo de Planejamento
Jogo de Planejamento
• Jogo de Planejamento (Planning Game): O desenvolvimento é
feito em iterações semanais. No início da semana,
desenvolvedores e cliente reúnem-se para priorizar as
funcionalidades. Essa reunião recebe o nome de Jogo do
Planejamento. Nela, o cliente identifica prioridades e os
desenvolvedores as estimam. O cliente é essencial neste
processo e assim ele fica sabendo o que está acontecendo e o
que vai acontecer no projeto. Como o escopo é reavaliado
semanalmente, o projeto é regido por um contrato de escopo
negociável, que difere significativamente das formas tradicionais
de contratação de projetos de software. Ao final de cada
semana, o cliente recebe novas funcionalidades, completamente
testadas e prontas para serem postas em produção.
Stand Up Meeting
Stand Up Meeting
• O dia de trabalho de uma equipe XP sempre começa com um
stand up meeting . é uma reunião rápida pela manhã, com
aproximadamente 20 minutos de duração e onde seus
integrantes permaneçam preferencialmente em pé.
• Segundo estudos uma reunião em pé é mais rápida, evita bate-
papos paralelos e faz os integrantes irem diretamente ao
assunto. Mais uma vez, ágil e simples.
• A reunião tem por objetivo atualizar a equipe sobre o que foi
implementado no dia anterior e trocar experiências das
dificuldades enfrentadas. Neste momento também são decididas
as estórias que serão implementadas no dia e em conjunto
definir os responsáveis por cada uma delas.
Metáforas
Metáforas
• Metáfora (Metaphor): Procura facilitar a
comunicação com o cliente, entendendo a
realidade dele. O conceito de rápido para um
cliente de um sistema jurídico é diferente para um
programador experiente em controlar comunicação
em sistemas em tempo real, como controle de
tráfego aéreo. É preciso traduzir as palavras do
cliente para o significado que ele espera dentro do
projeto.
Programação Pareada
Programação Pareada
• Programação Pareada (Pair Programming): é a
programação em par/dupla num único computador.
Geralmente a dupla é formada por um iniciante na
linguagem e outra pessoa funcionando como um
instrutor. Como é apenas um computador, o novato é
que fica à frente fazendo a codificação, e o instrutor
acompanha ajudando a desenvolver suas habilidades.
Desta forma o programa sempre é revisto por duas
pessoas, evitando e diminuindo assim a possibilidade
de defeitos. Com isto busca-se sempre a evolução da
equipe, melhorando a qualidade do código fonte
gerado.
Design Simples
Design Simples
• Design Simples (Simple Design): Simplicidade é
um princípio da XP. Projeto simples significa dizer
que caso o cliente tenha pedido que na primeira
versão apenas o usuário "teste" possa entrar no
sistema com a senha "123" e assim ter acesso a
todo o sistema, você vai fazer o código exato para
que esta funcionalidade seja implementada, sem
se preocupar com sistemas de autenticação e
restrições de acesso.
Propriedade Coletiva
Propriedade Coletiva
• Propriedade Coletiva (Collective Ownership): O
código fonte não tem dono e ninguém precisa
solicitar permissão para poder modificar o mesmo.
O objetivo com isto é fazer a equipe conhecer
todas as partes do sistema.
Time Coeso
Time Coeso
• Time Coeso (Whole Team): A equipe de
desenvolvimento é formada por pessoas
engajadas e de forma multidisciplinar (no sentido
de incluir pessoas com cada uma das habilidades
necessárias para o projeto).
Integração Continua
Integração Continua
• Os diversos módulos do software são integrados
diversas vezes por dia e todos os testes unitários
são executados. O código não passa até obter
sucesso em 100% dos testes unitários, facilitando,
dessa forma, o trabalho de implementação da
solução.
Refatoração
Refatoração
• Refatoração (Refactoring): É um processo que
permite a melhoria continua da programação, com
o mínimo de introdução de erros e mantendo a
compatibilidade com o código já existente. Re-
fabricar melhora a clareza (leitura) do código,
divide-o em módulos mais coesos e de maior
reaproveitamento, evitando a duplicação de
código-fonte;
TDD - Test Driven
Development
TDD - Test Driven
Development
• A mecânica da prática é simples: escreva um teste
que falha, faça-o passar da maneira mais simples
possível e, por fim, refatore o código. Esse ciclo é
conhecido como Ciclo Vermelho-Verde-Refatora.
Custo do Conserto
Desenvolvimento Guiado
por Funcionalidades
Feature Driven
Development
FDD
Feature Driven Development
• O Desenvolvimento Guiado por Funcionalidades
(do inglês, Feature Driven Development; FDD) é
uma das seis metodologias ágeis originais do
desenvolvimento de software.
Lema: ”Resultados frequentes, tangíveis e funcionais".
Kanban
Kanban
• Kanban é um palavra em japonês que significa
literalmente registro ou placa visível.
• Em Administração da produção significa um cartão
de sinalização que controla os fluxos de produção
ou transportes em uma indústria. O cartão pode
ser substituído por outro sistema de sinalização,
como luzes, caixas vazias e até locais vazios
demarcados.
Video Kanban
Video Extreme
Programming
Atividade para Entrega
• Explique a metodologia XP apresentada em sala
de aula.
Aula 4- Engenharia de Software

Mais conteúdo relacionado

Mais procurados

Gestão de Projetos e Ferramentas
Gestão de Projetos e FerramentasGestão de Projetos e Ferramentas
Gestão de Projetos e FerramentasNei Grando
 
Aula 1 - Gestão de Projetos
Aula 1 - Gestão de ProjetosAula 1 - Gestão de Projetos
Aula 1 - Gestão de ProjetosFernando Dantas
 
Noções básicas de seis sigma
Noções básicas de seis sigmaNoções básicas de seis sigma
Noções básicas de seis sigmaGerisval Pessoa
 
Introdução à Engenharia de Software
Introdução à Engenharia de SoftwareIntrodução à Engenharia de Software
Introdução à Engenharia de SoftwareNécio de Lima Veras
 
Engenharia de Requisitos
Engenharia de RequisitosEngenharia de Requisitos
Engenharia de RequisitosCloves da Rocha
 
Engenharia de Software - Conceitos e Modelos de Desenvolvimento
Engenharia de Software - Conceitos e Modelos de Desenvolvimento Engenharia de Software - Conceitos e Modelos de Desenvolvimento
Engenharia de Software - Conceitos e Modelos de Desenvolvimento Sérgio Souza Costa
 
Gerenciamento de projetos apostila completa
Gerenciamento de projetos   apostila completaGerenciamento de projetos   apostila completa
Gerenciamento de projetos apostila completaPaulo Junior
 
Novidades da Sétima Edição do Guia PMBOK
Novidades da Sétima Edição do Guia PMBOKNovidades da Sétima Edição do Guia PMBOK
Novidades da Sétima Edição do Guia PMBOKRildo (@rildosan) Santos
 
Aula - Introdução a Engenharia de Software
Aula - Introdução a Engenharia de SoftwareAula - Introdução a Engenharia de Software
Aula - Introdução a Engenharia de SoftwareCloves da Rocha
 
SIG - Sistema de Informação Gerencial - Técnico em RH
SIG - Sistema de Informação Gerencial - Técnico em RHSIG - Sistema de Informação Gerencial - Técnico em RH
SIG - Sistema de Informação Gerencial - Técnico em RHAntonio Pinto Pereira
 
Metodologia de Desenvolvimento de Softwares
Metodologia de Desenvolvimento de SoftwaresMetodologia de Desenvolvimento de Softwares
Metodologia de Desenvolvimento de SoftwaresAragon Vieira
 
Gerenciamento de Projetos de TI
Gerenciamento de Projetos de TIGerenciamento de Projetos de TI
Gerenciamento de Projetos de TIEliseu Castelo
 
Aula 6 - Design e Processo de Design de Interfaces de Usuário
Aula 6 - Design e Processo de Design de Interfaces de UsuárioAula 6 - Design e Processo de Design de Interfaces de Usuário
Aula 6 - Design e Processo de Design de Interfaces de UsuárioAndré Constantino da Silva
 
Treinamento de Scrum
Treinamento de ScrumTreinamento de Scrum
Treinamento de ScrumLuiz Duarte
 

Mais procurados (20)

Gestao De Projetos
Gestao De ProjetosGestao De Projetos
Gestao De Projetos
 
Engenharia de software
Engenharia de softwareEngenharia de software
Engenharia de software
 
Gestão de Projetos e Ferramentas
Gestão de Projetos e FerramentasGestão de Projetos e Ferramentas
Gestão de Projetos e Ferramentas
 
Aula 1 - Gestão de Projetos
Aula 1 - Gestão de ProjetosAula 1 - Gestão de Projetos
Aula 1 - Gestão de Projetos
 
Noções básicas de seis sigma
Noções básicas de seis sigmaNoções básicas de seis sigma
Noções básicas de seis sigma
 
Introdução à Engenharia de Software
Introdução à Engenharia de SoftwareIntrodução à Engenharia de Software
Introdução à Engenharia de Software
 
Engenharia de Requisitos
Engenharia de RequisitosEngenharia de Requisitos
Engenharia de Requisitos
 
Engenharia de Software - Conceitos e Modelos de Desenvolvimento
Engenharia de Software - Conceitos e Modelos de Desenvolvimento Engenharia de Software - Conceitos e Modelos de Desenvolvimento
Engenharia de Software - Conceitos e Modelos de Desenvolvimento
 
Gerenciamento de projetos apostila completa
Gerenciamento de projetos   apostila completaGerenciamento de projetos   apostila completa
Gerenciamento de projetos apostila completa
 
Gestão de projetos
Gestão de projetosGestão de projetos
Gestão de projetos
 
Novidades da Sétima Edição do Guia PMBOK
Novidades da Sétima Edição do Guia PMBOKNovidades da Sétima Edição do Guia PMBOK
Novidades da Sétima Edição do Guia PMBOK
 
Aula - Introdução a Engenharia de Software
Aula - Introdução a Engenharia de SoftwareAula - Introdução a Engenharia de Software
Aula - Introdução a Engenharia de Software
 
SIG - Sistema de Informação Gerencial - Técnico em RH
SIG - Sistema de Informação Gerencial - Técnico em RHSIG - Sistema de Informação Gerencial - Técnico em RH
SIG - Sistema de Informação Gerencial - Técnico em RH
 
Modelos de Engenharia de Software
Modelos de Engenharia de SoftwareModelos de Engenharia de Software
Modelos de Engenharia de Software
 
Metodologia de Desenvolvimento de Softwares
Metodologia de Desenvolvimento de SoftwaresMetodologia de Desenvolvimento de Softwares
Metodologia de Desenvolvimento de Softwares
 
Gerenciamento de Projetos de TI
Gerenciamento de Projetos de TIGerenciamento de Projetos de TI
Gerenciamento de Projetos de TI
 
Qualidade de Software
Qualidade de SoftwareQualidade de Software
Qualidade de Software
 
Fundamentos da Gestão de Projetos
Fundamentos da Gestão de ProjetosFundamentos da Gestão de Projetos
Fundamentos da Gestão de Projetos
 
Aula 6 - Design e Processo de Design de Interfaces de Usuário
Aula 6 - Design e Processo de Design de Interfaces de UsuárioAula 6 - Design e Processo de Design de Interfaces de Usuário
Aula 6 - Design e Processo de Design de Interfaces de Usuário
 
Treinamento de Scrum
Treinamento de ScrumTreinamento de Scrum
Treinamento de Scrum
 

Destaque

Metodologias ágeis de desenvolvimento - Foco em SCRUM
Metodologias ágeis de desenvolvimento - Foco em SCRUMMetodologias ágeis de desenvolvimento - Foco em SCRUM
Metodologias ágeis de desenvolvimento - Foco em SCRUMFelipe Almeida da Silva
 
Palestra Métodos Ágeis SERPRO
Palestra Métodos Ágeis SERPROPalestra Métodos Ágeis SERPRO
Palestra Métodos Ágeis SERPROWildtech
 
Xp Metodologias Ageis Para Desenvolvimento De Software
Xp   Metodologias Ageis Para Desenvolvimento De SoftwareXp   Metodologias Ageis Para Desenvolvimento De Software
Xp Metodologias Ageis Para Desenvolvimento De SoftwareMarcos Cardoso
 
10 Boas Práticas de Programação
10 Boas Práticas de Programação10 Boas Práticas de Programação
10 Boas Práticas de ProgramaçãoCarlos Schults
 
Apostila de Crystal Report
Apostila de Crystal ReportApostila de Crystal Report
Apostila de Crystal ReportAndre Nascimento
 
Comparativo entre Processos Ágeis
Comparativo entre Processos ÁgeisComparativo entre Processos Ágeis
Comparativo entre Processos ÁgeisDaniel Ferreira
 
Crystal - Engenharia de Software
Crystal - Engenharia de SoftwareCrystal - Engenharia de Software
Crystal - Engenharia de SoftwareFelipe Bastos
 
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
 
Metodologias ágeis de desenvolvimento de software por Givanaldo Rocha
Metodologias ágeis de desenvolvimento de software por Givanaldo RochaMetodologias ágeis de desenvolvimento de software por Givanaldo Rocha
Metodologias ágeis de desenvolvimento de software por Givanaldo RochaFernando Palma
 
Desenho arquitetônico - Gildo Montenegro
Desenho arquitetônico - Gildo MontenegroDesenho arquitetônico - Gildo Montenegro
Desenho arquitetônico - Gildo MontenegroUrban Acabamentos
 
Apostila fundações ifpa
Apostila fundações ifpaApostila fundações ifpa
Apostila fundações ifpaJhon Gomes
 
Apostila Serie Maos A Obra Excelente
Apostila Serie Maos A Obra   ExcelenteApostila Serie Maos A Obra   Excelente
Apostila Serie Maos A Obra Excelenteguest301b56e
 
Apostilas senai - processo soldagem
Apostilas   senai - processo soldagemApostilas   senai - processo soldagem
Apostilas senai - processo soldagemPaulo Cezar santos
 
Contabilidade fácil de entender
Contabilidade fácil de entenderContabilidade fácil de entender
Contabilidade fácil de entenderRodolfo Avona
 
Apostila CEFET - Instalações Elétricas
Apostila CEFET - Instalações ElétricasApostila CEFET - Instalações Elétricas
Apostila CEFET - Instalações ElétricasFermi Xalegre
 

Destaque (20)

Metodologias ágeis de desenvolvimento - Foco em SCRUM
Metodologias ágeis de desenvolvimento - Foco em SCRUMMetodologias ágeis de desenvolvimento - Foco em SCRUM
Metodologias ágeis de desenvolvimento - Foco em SCRUM
 
Palestra Métodos Ágeis SERPRO
Palestra Métodos Ágeis SERPROPalestra Métodos Ágeis SERPRO
Palestra Métodos Ágeis SERPRO
 
UX + ágil
UX + ágilUX + ágil
UX + ágil
 
Xp Metodologias Ageis Para Desenvolvimento De Software
Xp   Metodologias Ageis Para Desenvolvimento De SoftwareXp   Metodologias Ageis Para Desenvolvimento De Software
Xp Metodologias Ageis Para Desenvolvimento De Software
 
10 Boas Práticas de Programação
10 Boas Práticas de Programação10 Boas Práticas de Programação
10 Boas Práticas de Programação
 
Apostila de Crystal Report
Apostila de Crystal ReportApostila de Crystal Report
Apostila de Crystal Report
 
Crystal
CrystalCrystal
Crystal
 
Comparativo entre Processos Ágeis
Comparativo entre Processos ÁgeisComparativo entre Processos Ágeis
Comparativo entre Processos Ágeis
 
Crystal - Engenharia de Software
Crystal - Engenharia de SoftwareCrystal - Engenharia de Software
Crystal - Engenharia de Software
 
Metodologia Crystal Clear (Crystal Clear Methodologies)
Metodologia Crystal Clear (Crystal Clear Methodologies)Metodologia Crystal Clear (Crystal Clear Methodologies)
Metodologia Crystal Clear (Crystal Clear Methodologies)
 
Métodos Ágeis
Métodos ÁgeisMétodos Ágeis
Métodos Ágeis
 
Crystal
CrystalCrystal
Crystal
 
Metodologias ágeis de desenvolvimento de software por Givanaldo Rocha
Metodologias ágeis de desenvolvimento de software por Givanaldo RochaMetodologias ágeis de desenvolvimento de software por Givanaldo Rocha
Metodologias ágeis de desenvolvimento de software por Givanaldo Rocha
 
Desenho arquitetônico - Gildo Montenegro
Desenho arquitetônico - Gildo MontenegroDesenho arquitetônico - Gildo Montenegro
Desenho arquitetônico - Gildo Montenegro
 
Grecia Antiga
Grecia AntigaGrecia Antiga
Grecia Antiga
 
Apostila fundações ifpa
Apostila fundações ifpaApostila fundações ifpa
Apostila fundações ifpa
 
Apostila Serie Maos A Obra Excelente
Apostila Serie Maos A Obra   ExcelenteApostila Serie Maos A Obra   Excelente
Apostila Serie Maos A Obra Excelente
 
Apostilas senai - processo soldagem
Apostilas   senai - processo soldagemApostilas   senai - processo soldagem
Apostilas senai - processo soldagem
 
Contabilidade fácil de entender
Contabilidade fácil de entenderContabilidade fácil de entender
Contabilidade fácil de entender
 
Apostila CEFET - Instalações Elétricas
Apostila CEFET - Instalações ElétricasApostila CEFET - Instalações Elétricas
Apostila CEFET - Instalações Elétricas
 

Semelhante a Aula 4- Engenharia de Software

Apresentação do Workshop BDD (Desenvolvimento Guiado por Comportamento) com V...
Apresentação do Workshop BDD (Desenvolvimento Guiado por Comportamento) com V...Apresentação do Workshop BDD (Desenvolvimento Guiado por Comportamento) com V...
Apresentação do Workshop BDD (Desenvolvimento Guiado por Comportamento) com V...Developer Academy
 
Extreme Programming (XP) Metodologia Ágil
Extreme Programming (XP) Metodologia ÁgilExtreme Programming (XP) Metodologia Ágil
Extreme Programming (XP) Metodologia ÁgilJaffer Veronezi
 
Extreme Programming
Extreme ProgrammingExtreme Programming
Extreme Programmingceife
 
Os Benefícios dos testes no desenvolvimento de software
Os Benefícios dos testes no desenvolvimento de softwareOs Benefícios dos testes no desenvolvimento de software
Os Benefícios dos testes no desenvolvimento de softwareDextra Sistemas / Etec Itu
 
XP Programming
XP ProgrammingXP Programming
XP ProgrammingCJR, UnB
 
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
 
XP - Extreme Programming
XP - Extreme ProgrammingXP - Extreme Programming
XP - Extreme ProgrammingMarcelo Láias
 
Métodos Ágeis para Desenvolvimento de Software
Métodos Ágeis para Desenvolvimento de SoftwareMétodos Ágeis para Desenvolvimento de Software
Métodos Ágeis para Desenvolvimento de Softwarealexandre_malaquias
 
5 meses de python o que aprendi
5 meses de python  o que aprendi5 meses de python  o que aprendi
5 meses de python o que aprendiVinta Software
 
eXtreme Programming (xp)
eXtreme Programming (xp)eXtreme Programming (xp)
eXtreme Programming (xp)Renato Pina
 
Gerenciamento de equipes no desenvolvimento de software
Gerenciamento de equipes no desenvolvimento de softwareGerenciamento de equipes no desenvolvimento de software
Gerenciamento de equipes no desenvolvimento de softwareRoberto Brandini
 
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
 

Semelhante a Aula 4- Engenharia de Software (20)

Programacao Extrema
Programacao ExtremaProgramacao Extrema
Programacao Extrema
 
Apresentação do Workshop BDD (Desenvolvimento Guiado por Comportamento) com V...
Apresentação do Workshop BDD (Desenvolvimento Guiado por Comportamento) com V...Apresentação do Workshop BDD (Desenvolvimento Guiado por Comportamento) com V...
Apresentação do Workshop BDD (Desenvolvimento Guiado por Comportamento) com V...
 
Extreme Programming (XP) Metodologia Ágil
Extreme Programming (XP) Metodologia ÁgilExtreme Programming (XP) Metodologia Ágil
Extreme Programming (XP) Metodologia Ágil
 
Extreme Programming
Extreme ProgrammingExtreme Programming
Extreme Programming
 
eXtreme Programming (XP)
eXtreme Programming (XP)eXtreme Programming (XP)
eXtreme Programming (XP)
 
Os Benefícios dos testes no desenvolvimento de software
Os Benefícios dos testes no desenvolvimento de softwareOs Benefícios dos testes no desenvolvimento de software
Os Benefícios dos testes no desenvolvimento de software
 
XP Programming
XP ProgrammingXP Programming
XP Programming
 
Extreme programming (xp)
 Extreme programming   (xp) Extreme programming   (xp)
Extreme programming (xp)
 
Aula 3 - Engenharia de Software
Aula 3 - Engenharia de SoftwareAula 3 - Engenharia de Software
Aula 3 - Engenharia de Software
 
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)
 
XP - Extreme Programming
XP - Extreme ProgrammingXP - Extreme Programming
XP - Extreme Programming
 
Métodos Ágeis para Desenvolvimento de Software
Métodos Ágeis para Desenvolvimento de SoftwareMétodos Ágeis para Desenvolvimento de Software
Métodos Ágeis para Desenvolvimento de Software
 
Lista de Práticas Ágeis
Lista de Práticas ÁgeisLista de Práticas Ágeis
Lista de Práticas Ágeis
 
5 meses de python o que aprendi
5 meses de python  o que aprendi5 meses de python  o que aprendi
5 meses de python o que aprendi
 
eXtreme Programming (xp)
eXtreme Programming (xp)eXtreme Programming (xp)
eXtreme Programming (xp)
 
38484931 questionario-es
38484931 questionario-es38484931 questionario-es
38484931 questionario-es
 
Gerenciamento de equipes no desenvolvimento de software
Gerenciamento de equipes no desenvolvimento de softwareGerenciamento de equipes no desenvolvimento de software
Gerenciamento de equipes no desenvolvimento de software
 
Trabalho xp
Trabalho xpTrabalho xp
Trabalho xp
 
eXtreme Programming
eXtreme ProgrammingeXtreme Programming
eXtreme Programming
 
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
 

Mais de Rudson Kiyoshi Souza Carvalho

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. CarvalhoRudson Kiyoshi Souza Carvalho
 
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. CarvalhoRudson Kiyoshi Souza Carvalho
 

Mais de Rudson Kiyoshi Souza Carvalho (15)

Aula Xml Schema - XSD
Aula Xml Schema - XSDAula Xml Schema - XSD
Aula Xml Schema - XSD
 
Aula 2 - Processos de Software
Aula 2 - Processos de SoftwareAula 2 - Processos de Software
Aula 2 - Processos de Software
 
Engenharia de Software Aula 1 - Intro
Engenharia de Software Aula 1 - IntroEngenharia de Software Aula 1 - Intro
Engenharia de Software Aula 1 - Intro
 
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 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
 
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 4- Engenharia de Software

  • 1. Engenharia de Softwares e Gerência de Projetos Prof. Rudson Kiyoshi Souza Carvalho Anhanguera - 2015 Engenharia de Software - Parte 4
  • 2. Engenharia de Softwares e Gerência de Projetos.
  • 5. Code and Fix • A metodologia de desenvolvimento codificar e consertar é a mais frequentemente usada em engenharia de software. Ela começa com pouco ou nenhum planejamento inicial, e imediatamente ao começarmos a desenvolver , começamos a corrigir os problemas à medida que ocorrem, até a conclusão do projeto . • Codificar e consertar é uma escolha tentadora, quando nos deparamos com um cronograma de desenvolvimento apertado, pois necessitamos desenvolver o código imediatamente e obter um resultado instantâneo. • Infelizmente, podemos encontrar grandes problemas arquitetônicos ao avançar neste processo, geralmente temos que reescrever grande parte da aplicação, pois normalmente muitas empresas não tem tempo para planejar, mas, sempre tem dinheiro para refazer. Rudson Kiyoshi Souza Carvalho - 2015
  • 6.
  • 7. Ainda temos problemas • Código complexo; • Baixa produtividade; • Dificuldade em realizar mudanças; • Documentação defasada, excessiva, incorreta; • Cronograma sempre atrasado; • entre outros…
  • 8. Manifesto para o desenvolvimento ágil de software
  • 9. Nuvem de Mudanças Scrum XP TDD FDD Crystal LeanDynamic Systems Development Method Adaptative Software Development Method
  • 10.
  • 12. Extreme Programing - XP Programação extrema (do inglês eXtreme Programming), ou simplesmente 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. Wikipedia
  • 13. Valores • Coragem • Comunicação • Respeito • Simplicidade • Feedback Princípios Básicos • Feedback rápido • Presumir simplicidade • Mudanças incrementais • Abraçar mudanças • Trabalho de alta qualidade.
  • 15.
  • 17. Jogo de Planejamento • Jogo de Planejamento (Planning Game): O desenvolvimento é feito em iterações semanais. No início da semana, desenvolvedores e cliente reúnem-se para priorizar as funcionalidades. Essa reunião recebe o nome de Jogo do Planejamento. Nela, o cliente identifica prioridades e os desenvolvedores as estimam. O cliente é essencial neste processo e assim ele fica sabendo o que está acontecendo e o que vai acontecer no projeto. Como o escopo é reavaliado semanalmente, o projeto é regido por um contrato de escopo negociável, que difere significativamente das formas tradicionais de contratação de projetos de software. Ao final de cada semana, o cliente recebe novas funcionalidades, completamente testadas e prontas para serem postas em produção.
  • 19. Stand Up Meeting • O dia de trabalho de uma equipe XP sempre começa com um stand up meeting . é uma reunião rápida pela manhã, com aproximadamente 20 minutos de duração e onde seus integrantes permaneçam preferencialmente em pé. • Segundo estudos uma reunião em pé é mais rápida, evita bate- papos paralelos e faz os integrantes irem diretamente ao assunto. Mais uma vez, ágil e simples. • A reunião tem por objetivo atualizar a equipe sobre o que foi implementado no dia anterior e trocar experiências das dificuldades enfrentadas. Neste momento também são decididas as estórias que serão implementadas no dia e em conjunto definir os responsáveis por cada uma delas.
  • 21. Metáforas • Metáfora (Metaphor): Procura facilitar a comunicação com o cliente, entendendo a realidade dele. O conceito de rápido para um cliente de um sistema jurídico é diferente para um programador experiente em controlar comunicação em sistemas em tempo real, como controle de tráfego aéreo. É preciso traduzir as palavras do cliente para o significado que ele espera dentro do projeto.
  • 23. Programação Pareada • Programação Pareada (Pair Programming): é a programação em par/dupla num único computador. Geralmente a dupla é formada por um iniciante na linguagem e outra pessoa funcionando como um instrutor. Como é apenas um computador, o novato é que fica à frente fazendo a codificação, e o instrutor acompanha ajudando a desenvolver suas habilidades. Desta forma o programa sempre é revisto por duas pessoas, evitando e diminuindo assim a possibilidade de defeitos. Com isto busca-se sempre a evolução da equipe, melhorando a qualidade do código fonte gerado.
  • 25. Design Simples • Design Simples (Simple Design): Simplicidade é um princípio da XP. Projeto simples significa dizer que caso o cliente tenha pedido que na primeira versão apenas o usuário "teste" possa entrar no sistema com a senha "123" e assim ter acesso a todo o sistema, você vai fazer o código exato para que esta funcionalidade seja implementada, sem se preocupar com sistemas de autenticação e restrições de acesso.
  • 27. Propriedade Coletiva • Propriedade Coletiva (Collective Ownership): O código fonte não tem dono e ninguém precisa solicitar permissão para poder modificar o mesmo. O objetivo com isto é fazer a equipe conhecer todas as partes do sistema.
  • 29. Time Coeso • Time Coeso (Whole Team): A equipe de desenvolvimento é formada por pessoas engajadas e de forma multidisciplinar (no sentido de incluir pessoas com cada uma das habilidades necessárias para o projeto).
  • 31. Integração Continua • Os diversos módulos do software são integrados diversas vezes por dia e todos os testes unitários são executados. O código não passa até obter sucesso em 100% dos testes unitários, facilitando, dessa forma, o trabalho de implementação da solução.
  • 32.
  • 34. Refatoração • Refatoração (Refactoring): É um processo que permite a melhoria continua da programação, com o mínimo de introdução de erros e mantendo a compatibilidade com o código já existente. Re- fabricar melhora a clareza (leitura) do código, divide-o em módulos mais coesos e de maior reaproveitamento, evitando a duplicação de código-fonte;
  • 35. TDD - Test Driven Development
  • 36. TDD - Test Driven Development • A mecânica da prática é simples: escreva um teste que falha, faça-o passar da maneira mais simples possível e, por fim, refatore o código. Esse ciclo é conhecido como Ciclo Vermelho-Verde-Refatora.
  • 40. Feature Driven Development • O Desenvolvimento Guiado por Funcionalidades (do inglês, Feature Driven Development; FDD) é uma das seis metodologias ágeis originais do desenvolvimento de software. Lema: ”Resultados frequentes, tangíveis e funcionais".
  • 41.
  • 43. Kanban • Kanban é um palavra em japonês que significa literalmente registro ou placa visível. • Em Administração da produção significa um cartão de sinalização que controla os fluxos de produção ou transportes em uma indústria. O cartão pode ser substituído por outro sistema de sinalização, como luzes, caixas vazias e até locais vazios demarcados.
  • 44.
  • 46.
  • 48.
  • 49. Atividade para Entrega • Explique a metodologia XP apresentada em sala de aula.