uma metodologia adaptativapara desenvolvimento de software

Tamanho: px
Começar a partir da página:

Download "uma metodologia adaptativapara desenvolvimento de software"

Transcrição

1 do Minho, Outubro 24 1 extreme Progra ming uma metodologia adaptativapara desenvolvimento de software Ademar Aguiar ademar.aguiar@fe.up.pt XP é adequada para pequenasemédias equipas(2-12 elementos) lidar comrequisitos vagos ouemconstante alteração sistemas rapidamente testáveis emfracçõesde dia Universidade do Minho, 24 de Outubro de Universidade do Minho, 24 de Outubro de Extreme Progra ming (XP) O que é XP? Porquemotivotemmerecido tanta atenção? Emqueconsiste? Quando é apropriada? História 1990 Kent Beck começou a estudarformas melhores de desenvolver software, juntamente comward Cuningham 1996 Kent começou umprojecto na DaimlerChrysler onde usou novos conceitos para desenvolvimento O resultado foi a Extreme Programing Os quatro valoresfundamentaisparaumxp ersão -comunicação -simplicidade -feedback -coragem Universidade do Minho, 24 de Outubro de Universidade do Minho, 24 de Outubro de XP é. lightweight (vs heavyweight ) eficiente debaixo-risco flexível e muito agradável de usar éuma disciplina adaptativa parao desenvolvimentode software XP distingue-se por. Feedback antecipadoe continuado através de curtosciclosde desenvolvimento Planeamentoincremental começandocomumplanoglobal quese espera evoluir ao longode todo o projecto Escalonamento flexível para responder às exigênciasdos clientes/negócio Testes escritos por programadorese clientes ajudamamonitorizar progresodo projecto dão segurança na evolução permitemdiagnosticar problemas rapidamente Universidade do Minho, 24 de Outubro de Universidade do Minho, 24 de Outubro de

2 do Minho, Outubro 24 2 XP distingue-se por. Estruturae propósito do sistema comunicado oralmentee atravésde testes ecódigo Processode designevolutivo durante todaavidado sistema Estreita colaboração entre programadores semlhes exigir capacidades excepcionais Integrar práticas que se adaptambem aos objectivosde curto-prazodos programadores aos interesesde longo-prazodo projecto Controlo de Projectos Quatro variáveis de controlo Custo Tempo Qualidade Âmbito (da Funcionalidade) Não é posível fixaro valor de todas as variáveis simultaneamente O âmbito é a variável que nos oferecea mais valiosa forma de controlo Universidade do Minho, 24 de Outubro de Universidade do Minho, 24 de Outubro de Learning to Drive Conduzir nãoésó apontarocaro na direcção certa Éestar constantementecomatençãoà estrada Éfazer pequenas correcções paraumladoeparaooutro,sem nunca tirar os olhos da estrada Porto Braga Lisboa Custo de alterar ModeloAntigo Custo de Alteração Requisitos Análise Design Implementação Teste Produção Universidade do Minho, 24 de Outubro de Universidade do Minho, 24 de Outubro de Learning to Drive Aodesenvolversoftware Tudo muda:requisitos, design,negócio,tecnologia,equipa. Oproblema nãoéestar sempre tudoamudar Oproblemaé adificuldadeemconstantemente nos adaptarmosàmudança É necesário Muitofeedback emuita habilidadeemalterarcomcustos baixos Custodealterar. Novo Modelo? Custo de Alteração Tempo Universidade do Minho, 24 de Outubro de Universidade do Minho, 24 de Outubro de

3 do Minho, Outubro 24 3 Comoreduziro custode alterar? Design simples semelementosextra necesários Testes automatizados confiança, segurançadasalterações Ter bastante práticaa alterar código semmedo, comcoragem atitude de constante refinamento do design (refactoring) Quadro de valores daxp Comunicação Testing, pairing and estimating requires that programers and customers need to co municate Simplicidade Do the simplest thing that could posibly work Feedback Ask the system, Code smels Coragem Fix it!, Tos it!, Test it! Universidade do Minho, 24 de Outubro de Universidade do Minho, 24 de Outubro de Ciclo típicode desenvolvimento Pares de programadores programamemconjunto O desenvolvimento é orientado por testes Test first, then code (add functionality) Os programadores evoluemo design do sistema, aumentando o seu valor sempre que é necesário A integraçãoé imediatamente efectuada apóso desenvolvimento, incluindo testes de integração Princípios fundamentais da XP Feedback Rápido Design o maissimples posível Alterações pequenase incrementais Assumir que as mudançassão inevitáveis Produzir trabalhode qualidade Universidade do Minho, 24 de Outubro de Universidade do Minho, 24 de Outubro de Desenvolvimento Adaptativo Especular Colaborar Aprender Práticas XP The Planning Game. Smal Releases. Metaphor. Simple Design. Testing. Refactoring. Pair Programing. Colective Ownership. Continuous Integration. 40-hour Week. On-site Customer. Coding Standards. Universidade do Minho, 24 de Outubro de Universidade do Minho, 24 de Outubro de

4 do Minho, Outubro 24 4 Planning Game Clientes decidem Âmbito Prioridades Composiçãodas entregas Data dasversões/entregas Técnicosdecidem Estimativas Consequências Processo Escalonamentodetalhado (função do risco) The practices support each other. The weaknes of one is covered by the strengths of others. -Kent, 1999 Universidade do Minho, 24 de Outubro de Simple Design O designcorecto parao software éaquele que Pasa todos os testes Não temlógica repetida Declara tudo aquilo que é importante para os programadores Temo menor númerode clases e métodos Put in what you need when you need it Evitar Muitos hooks Sermuitoabstracto Projectado para o futuro longínquo e incerto. O futuroéincertoe éfácil alterar qdoé preciso Universidade do Minho, 24 de Outubro de Smal Releases Versõesmuitoreduzidasimplementandoos requisitosde maiorvalor parao cliente Utilização de ciclosmuitoreduzidos Anteciparversõescomvalor parao cliente Feedback rápido Sentidode responsabilidade Riscoreduzido Confiançado Cliente Ajuste aosrequisitos Testing Umpedaço de programa semumteste automatizado simplesmente não deve existir! Os testes de unidades dão confiança aos programadores na execução do sistema Os testes funcionaisidempara os clientes Universidade do Minho, 24 de Outubro de Universidade do Minho, 24 de Outubro de Metaphor Uma visão comumdo sistema Exemplos Umsistemade processamento de encomendas é como um tapete rolante onde vão sendo depositados materiais que vão sendo encaminhados para diversos pontos de saída onde serão processados The Internet is like air-trafic control, with al-powerful master controlers observing everything, teling each packet where to go. Refactoring Definição Uma série de pequenos pasos, cada umdos quais altera a estrutura interna do programa semalterar o seu comportamento exterior -Martin Fowler, 1999 Aoadicionarfuncionalidade Antes:existe algumaforma de alteraro programa que torne a adição mais simples? Depois: existe alguma forma de tornar o programa mais simples e passe todos os testes? Não fazer refactoring especulativamente, mas apenas quando o sistema e o processo o pedem Universidade do Minho, 24 de Outubro de Universidade do Minho, 24 de Outubro de

5 do Minho, Outubro 24 5 Pair Progra ming Todoo códigoé escritoporduaspesoasnuma únicamáquinacomumtecladoe umrato. Duas pessoas, duas funções diferentes Táctica Comoimplementar estafuncionalidade? Estratégia Isto funciona? Quetestes não funcionarão? Como é que podemos tornar isto mais simples? Continuous Integration Ciclos curtos de Code and Test Integrare testar após poucas horas aadicionar funcionalidade -no máximo umdia If a test fails -you broke it! Universidade do Minho, 24 de Outubro de Universidade do Minho, 24 de Outubro de Colective Code Ownership O desenvolvimentode código comobjectos naturalmente se estende a todo o sistema -devese ir até onde seja necessário A coordenação de alteraçãodas classes é morosa e cria fortes resistências Don t coordinate, just do it; integrate frequently (Continuous Integration) 40-hour week Todos queremos Estar frescos e entusiasmadostodas as manhãs Estar cansados e satisfeitos todas as noites À sexta-feira, estar cansado e satisfeito o suficiente para se sentir emter dois dias para fazer algo que não trabalhar À segunda-feira, ir trabalhar cheio de vontade e ideias Trabalho fora-de-horas podeser umsintoma de problemas sériosno projecto :( Universidade do Minho, 24 de Outubro de Universidade do Minho, 24 de Outubro de Colective Code Ownership. Semprequealguémvêoportunidadede valorizar umpedaçode códigodeve fazê-lo logo Whoever finds a snake, kils it Permitea evolução rápida do sistema Todos são responsáveis por todo o sistema Os testes protegema funcionalidade do sistema Colective Code Ownership + Refactoring promovema reutilização Need it? Enhance it, subclas it, use it. Lots of programers, no waiting! On-Site Customer Umcliente deve sentar-se coma equipa, disponibilizar-se para responder a dúvidas e definir prioridades empequenos detalhes Não é posível pagar para ter umcliente na equipa? Se o sistema não merece o tempo do cliente, talvez não valha a penaserconstruído! -Kent, 1999 Universidade do Minho, 24 de Outubro de Universidade do Minho, 24 de Outubro de

6 do Minho, Outubro 24 6 Coding Standards Colective code ownership, Pair programing e refactoring requerema definiçãode normas de escritade código O ideal: serimposível dizer quemescreveuoquê Asnormas devemsimplificaraomáximoo trabalho Reforçama comunicação entre todos na equipa Devemser adoptadas voluntariamentepor toda a equipa Considerar XP quando. Sedesenvolvenumcontexto de rápida mudança os requisitos são vagos e imprecisos Se valoriza suceso emvez de pompae circunstância Se valorizao trabalhoemequipa emvez de força-bruta Universidade do Minho, 24 de Outubro de Universidade do Minho, 24 de Outubro de Principais dificuldades da XP? Estarsemprea encontraras soluções maissimples Admitir faltade conhecimento e ter que aprender Colaborar comos restantes colegas de equipa Derubar bareiras emocionais para cooperar Mais Informação sobrexp Livros Extreme Programming Explained: Embrace Change -Kent Beck, 1999 Extreme Programming Installed -Ron Jefries, Ann Anderson and ChetHendrickson, 2000 Planning Extreme Programming -Kent Beck and Martin Fowler, 2000 Universidade do Minho, 24 de Outubro de Universidade do Minho, 24 de Outubro de Zonasde turbulênciaparaa XP Grandes Especificações EspertoDemais. O TamanhoImporta Curva Exponencialde Custos de Alteração Feedback lento Testes? Não, obrigado! Mais Informação sobrexp. URL s Conferências XP 2000, Cagliary, Itália OOPSLA 2000, Minneapolis, EUA Universidade do Minho, 24 de Outubro de Universidade do Minho, 24 de Outubro de

Processos de Desenvolvimento de Software

Processos de Desenvolvimento de Software Processos de Desenvolvimento de Software Raul Vidal, João Pascoal Faria, Ademar Aguiar, Gil Gonçalves FEUP/LEIC/LGP 2003-04 Processos de Desenvolvimento Software 1 Controlo de Projectos Quatro variáveis

Leia mais

Modulo I Introdução ao XP

Modulo I Introdução ao XP Modulo I Introdução ao XP Prof. Ismael H F Santos April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 1 Ementa Modulo VI Xtreme Programming Valores e Princípios do XP Desenvolvimento centrado

Leia mais

Processos Ágeis de Desenvolvimento de Software

Processos Ágeis de Desenvolvimento de Software Processos Ágeis de Desenvolvimento de Software -Focono XP - Rodrigo Rebouças de Almeida rodrigor@rodrigor.com Processo Conjunto de atividades ordenadas, restrições e recursos que produzem um resultado

Leia mais

Engenharia de Software

Engenharia de Software Engenharia de Software Metodologia XP (extreme Programming) Entre 80% e 90% dos projetos de software fracassam devido a atrasos no cronograma; falta de planejamento; inúmeros bugs; incompreensão dos requisitos

Leia mais

Introdução à Programação extrema (XP)

Introdução à Programação extrema (XP) Introdução à Programação extrema (XP) Cursos de Verão 2008 - IME/USP Mariana Bravo e Hugo Corbucci Departamento de Ciência da Computação www.agilcoop.org.br O que é? XP é leve XP é focado no desenvolvimento

Leia mais

Metodologias Ágeis de Desenvolvimento. Fernando Trinta

Metodologias Ágeis de Desenvolvimento. Fernando Trinta Metodologias Ágeis de Desenvolvimento Fernando Trinta Contextualização A Engenharia de software vêm recorrentemente enfrentando o cenário onde... as aplicações são cada vez mais complexas... o tempo de

Leia mais

abraçando a mudança extreme Programming Helder da Rocha

abraçando a mudança extreme Programming Helder da Rocha abraçando a mudança extreme Programming Helder da Rocha www.argonavis.com.br 1 Desenvolvimento de software no passado Engenharia de software tradicional Analisar, projetar, e só depois começar a construir

Leia mais

XP EXTREME PROGRAMMING. AGO106 - Gestão

XP EXTREME PROGRAMMING. AGO106 - Gestão XP EXTREME PROGRAMMING AGO106 - Gestão de Processos de Desenvolvimento de Software DESENVOLVIMENTO TRADICIONAL Sequencial: Análise, Design, Implementação, Teste, Implantação e Manutenção Características:

Leia mais

Tópicos. Métodos Ágeis. Histórico; Valores; Métodos Ágeis x Modelos Tradicionais; Exemplo: Referências Bibliográficas.

Tópicos. Métodos Ágeis. Histórico; Valores; Métodos Ágeis x Modelos Tradicionais; Exemplo: Referências Bibliográficas. Métodos Ágeis Edes Garcia da Costa Filho edes_filho@dc.ufscar.br 1 Tópicos Histórico; Valores; Métodos Ágeis x Modelos Tradicionais; Exemplo: Extreme Programming (XP). Referências Bibliográficas. 2 Histórico

Leia mais

Princípios e práticas de extremme Programming

Princípios e práticas de extremme Programming Princípios e práticas de extremme Programming Tiago Eugenio de Melo tiago@comunidadesol.org 1 Sumário Introdução Princípios Práticas Quando não usar Conclusões Referências 2 extreme Programming É uma metodologia

Leia mais

Vinícius Manhães Teles prefácio de Kent Beck colaborações especiais de Kent Beck e Robert Mee

Vinícius Manhães Teles prefácio de Kent Beck colaborações especiais de Kent Beck e Robert Mee Vinícius Manhães Teles prefácio de Kent Beck colaborações especiais de Kent Beck e Robert Mee Novatec Copyright 2004, 2014 da Novatec Editora Ltda. Todos os direitos reservados e protegidos pela Lei 9.610

Leia mais

Extreme Programming. Projeto de. Desenvolvimento. Software. Prof.: Ari Oliveira

Extreme Programming. Projeto de. Desenvolvimento. Software. Prof.: Ari Oliveira Projeto de Desenvolvimento Software Extreme Programming Prof.: Ari Oliveira O Extreme Programming (XP) é uma metodologia de desenvolvimento de software que auxilia na produção de sistemas de maior qualidade,

Leia mais

Treinamento em Métodos Ágeis

Treinamento em Métodos Ágeis Departamento de Tecnologia e Desenvolvimento Coorporativo de Sistemas Móveis Treinamento em Métodos Ágeis XP - Extreme Programming Giuliano Prado M. Giglio Coordenador Setor / SMC 02 Extreme Programming

Leia mais

Extreme Programming: Valores e Práticas

Extreme Programming: Valores e Práticas Programação Extrema Extreme Programming: Valores e Práticas Prof. Mauro Lopes 1-31 34 Objetivos Anteriormente trabalhamos os conceitos do Desenvolvimento Tradicional e do Desenvolvimento Ágil. Trouxemos

Leia mais

Metodologias Ágeis de Desenvolvimento de Software FEUP, MEI e LEIC, 2005/06

Metodologias Ágeis de Desenvolvimento de Software FEUP, MEI e LEIC, 2005/06 Metodologias Ágeis de Desenvolvimento de Software FEUP, MEI e LEIC, 2005/06 Ademar Aguiar ademar.aguiar at fe.up.pt http://www.fe.up.pt/~aaguiar/mads FEUP/LEIC Ademar Aguiar Metodologias Ágeis de Desenvolvimento

Leia mais

A Evolução de XP segundo Kent Beck Parte 1

A Evolução de XP segundo Kent Beck Parte 1 A Evolução de XP segundo Kent Beck Parte 1 O que mudou nesses 5 anos? Danilo Toshiaki Sato dtsato@ime.usp.br Agenda PARTE 1 1. Introdução 2. O que é XP? 3. O que mudou em XP? Valores, Princípios e Práticas

Leia mais

Modulo I Método Ágil XP Extreme Programming

Modulo I Método Ágil XP Extreme Programming Modulo I Método Ágil XP Extreme Programming Prof. Ismael H F Santos April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 1 Bibliografia Vinicius Manhaes Teles, Extreme Programming, Novatec Editora

Leia mais

Sumário. Capítulo 3 Valores do XP Feedback Comunicação... 46

Sumário. Capítulo 3 Valores do XP Feedback Comunicação... 46 Sumário Sobre o autor... 6 Revisores técnicos... 7 Agradecimentos... 9 Prefácio... 17 Introdução... 19 Capítulo 1 Extreme Programming: visão geral... 21 Valores do XP... 22 Práticas do XP... 23 Cliente

Leia mais

Refatoração: Melhorando a Qualidade de Código Pré-Existente. Cursos de Verão 2009 IME/USP Mariana Bravo & Hugo Corbucci

Refatoração: Melhorando a Qualidade de Código Pré-Existente. Cursos de Verão 2009 IME/USP   Mariana Bravo & Hugo Corbucci Refatoração: Melhorando a Qualidade de Código Pré-Existente Cursos de Verão 2009 IME/USP www.agilcoop.org.br Mariana Bravo & Hugo Corbucci Refatoração Uma modificação no sistema que não altera o seu comportamento

Leia mais

Modulo I Método Ágil XP Extreme Programming

Modulo I Método Ágil XP Extreme Programming Modulo I Método Ágil XP Extreme Programming Prof. Ismael H F Santos April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 1 Bibliografia Vinicius Manhaes Teles, Extreme Programming, Novatec Editora

Leia mais

Desenvolvimento Ágil de Software. Prof. Edjandir Corrêa Costa

Desenvolvimento Ágil de Software. Prof. Edjandir Corrêa Costa Desenvolvimento Ágil de Software Prof. Edjandir Corrêa Costa edjandir.costa@ifsc.edu.br Métodos Ágeis História Na início da década de 90 havia uma visão de que a melhor maneira para se criar software era

Leia mais

extreme Programming extreme Programming (XP) Metodologia Ágil Partes do XP Communication (comunicação) 1. Valores do XP

extreme Programming extreme Programming (XP) Metodologia Ágil Partes do XP Communication (comunicação) 1. Valores do XP extreme Programming extreme Programming (XP) Metodologia ágil para equipes pequenas a médias desenvolvendo software com requesitos vagos ou que mudam freqüentemente. [Beck 2000] Em XP, codificação é principal

Leia mais

MANIFESTO ÁGIL, SCRUM E EXTREME PROGRAMMING COMO CONSTRUIR SOFTWARE COM QUALIDADE E QUE AGREGAM VALOR AO CLIENTE?

MANIFESTO ÁGIL, SCRUM E EXTREME PROGRAMMING COMO CONSTRUIR SOFTWARE COM QUALIDADE E QUE AGREGAM VALOR AO CLIENTE? MANIFESTO ÁGIL, SCRUM E EXTREME PROGRAMMING COMO CONSTRUIR SOFTWARE COM QUALIDADE E QUE AGREGAM VALOR AO CLIENTE? CAIO ROSÁRIO DIAS FORMADO EM TÉCNICO DE INFORMÁTICA IFBA; QUINTO SEMESTRE DO CURSO DE ANALISE

Leia mais

BibIme - Um Software Gerenciador de Bibliotecas Produzido de Forma Cooperativa

BibIme - Um Software Gerenciador de Bibliotecas Produzido de Forma Cooperativa BibIme - Um Software Gerenciador de Bibliotecas Produzido de Forma Cooperativa Dairton Bassi, Kelly Braghetto, Eduardo Colli, Fabio Kon, João Eduardo Ferreira Instituto de Matemática e Estatística Universidade

Leia mais

Desenvolvimento ágil de software

Desenvolvimento ágil de software Desenvolvimento ágil de software Prof. Cristiane Aparecida Lana slide 1 Bibliografia utilizada: Mais opções visite meu site, clique aqui para acessá-lo. slide 2 2011 Pearson 2011 Pearson Prentice Prentice

Leia mais

extreme Programming extreme Programming

extreme Programming extreme Programming extreme Programming Os riscos mais frequentes do processo de desenvolvimento são tratados da seguinte forma: Atrasos na calendarização diversas pequenas versões, no máximo com uns poucos meses de duração

Leia mais

Programação Extrema na Prática

Programação Extrema na Prática Programação Extrema na Prática Engenharia de Software Conference - 13:40-15:00 maio/09 São Paulo Dairton Bassi - dbassi@gmail.com Assuntos de Hoje Métodos Ágeis Valores Ágeis Programação Extrema Princípios

Leia mais

Metodologias Ágeis de Desenvolvimento de Software

Metodologias Ágeis de Desenvolvimento de Software Metodologias Ágeis de Desenvolvimento de Software Ademar Aguiar www.fe.up.pt/~aaguiar ademar.aguiar@fe.up.pt Projectos de Software Possuem quatro variáveis de controlo Custo Tempo Qualidade Âmbito (da

Leia mais

Mediador: Mauro Cesar Sobrinho

Mediador: Mauro Cesar Sobrinho Mediador: Mauro Cesar Sobrinho Secretário de TIC do Ministério Público Federal maurosobrinho@mpf.mp.br Pesquisa Gartner 2015, 2016 e 2017 análise em 2018 Média de 170 respondentes Amostra mundial: governo

Leia mais

Giovane Mendes Costa Kennedy da Silva Menezes

Giovane Mendes Costa Kennedy da Silva Menezes Giovane Mendes Costa Kennedy da Silva Menezes 2 INTRODUÇÃO A indústria de software passou por grandes transformações e grandes desafios, entre eles, desenvolver software com qualidade no menor tempo possível;

Leia mais

PDS. Aula 1.7 Métodos Ágeis. Prof. Dr. Bruno Moreno

PDS. Aula 1.7 Métodos Ágeis. Prof. Dr. Bruno Moreno PDS Aula 1.7 Métodos Ágeis Prof. Dr. Bruno Moreno bruno.moreno@ifrn.edu.br O que é ser ágil? 2 Definição Ágil: Refere-se a capacidade de criar e responder a mudanças com o objetivo de ter sucesso em um

Leia mais

Engenharia de Software

Engenharia de Software Engenharia de Software Metodologias para Desenvolvimento de Software XP e SCRUM Prof. MSc. Edilberto Silva prof.edilberto.silva@gmail.com http://www.edilms.eti.br Agenda Desenvolvimento Ágil de Software

Leia mais

Processos de software

Processos de software Processos de software 1 Processos de software Conjunto coerente de atividades para especificação, projeto, implementação e teste de sistemas de software. 2 Objetivos Introduzir modelos de processos de

Leia mais

Metodologias Ágeis. Gerenciando e Desenvolvendo Projetos de forma eficiente. Gabriel Verta 0767948 Rafael Reimberg 0767701 Vinicius Quaiato - 0767697

Metodologias Ágeis. Gerenciando e Desenvolvendo Projetos de forma eficiente. Gabriel Verta 0767948 Rafael Reimberg 0767701 Vinicius Quaiato - 0767697 Metodologias Ágeis Gerenciando e Desenvolvendo Projetos de forma eficiente Gabriel Verta 0767948 Rafael Reimberg 0767701 Vinicius Quaiato - 0767697 Introdução Ao longo dos anos a indústria de desenvolvimento

Leia mais

Processos Ágeis de Desenvolvimento de Software. Yuri Pereira

Processos Ágeis de Desenvolvimento de Software. Yuri Pereira Processos Ágeis de Desenvolvimento de Software Yuri Pereira ycssp@cin.ufpe.br Contexto Processos ágeis surgiram como alternativa aos processos tradicionais...... que apresentam restrições principalmente

Leia mais

Refatoração: Melhorando a Qualidade de Código Pré-Existente. Cursos de Verão 2008 IME/USP Mariana Bravo & Hugo Corbucci

Refatoração: Melhorando a Qualidade de Código Pré-Existente. Cursos de Verão 2008 IME/USP  Mariana Bravo & Hugo Corbucci Refatoração: Melhorando a Qualidade de Código Pré-Existente Cursos de Verão 2008 IME/USP www.agilcoop.org.br Mariana Bravo & Hugo Corbucci Refatoração Uma modificação no sistema que não altera o seu comportamento

Leia mais

Refatoração: Melhorando código existente

Refatoração: Melhorando código existente Refatoração: Melhorando código existente AgilCoop Cursos de Verão 2010 Mariana Bravo IME/USP Refatoração Uma mudança no sistema que não altera seu comportamento funcional, mas melhora sua estrutura interna

Leia mais

JAVA. Tópicos Especiais de Programação Orientada a Objetos. sexta-feira, 26 de outubro de 12

JAVA. Tópicos Especiais de Programação Orientada a Objetos. sexta-feira, 26 de outubro de 12 JAVA Tópicos Especiais de Programação Orientada a Objetos 1 REFATORAÇÃO DE CÓDIGOS 2 REFATORAÇÃO O QUE É REFATORAR? Refatorar é alterar o código de um projeto existente, sem mudar o seu comportamento,

Leia mais

Engenharia de Software

Engenharia de Software UNIVERSIDADE DE LISBOA INSTITUTO SUPERIOR TÉCNICO Engenharia de Software LEIC/LETI, 3 o Ano, 2 o Semestre 1 o Teste, 4 de Abril de 2017 Duração: 90 minutos Nome: Número: Este teste tem um conjunto de 8

Leia mais

Comparação entre Metodologias Rational Unified Process (RUP) e extreme Programming(XP)

Comparação entre Metodologias Rational Unified Process (RUP) e extreme Programming(XP) Comparação entre Metodologias Rational Unified Process (RUP) e extreme Programming(XP) Fundamentos de Engenharia de Software PPGIA Carlos G. Vasco, Marcelo H. Vithoft, Paulo R. Estante Design and programming

Leia mais

Engenharia de Software Processo de Desenvolvimento. Ciclo de Vida - Modelo Cascata

Engenharia de Software Processo de Desenvolvimento. Ciclo de Vida - Modelo Cascata Processo de Desenvolvimento Também chamado de ciclo de vida do software Reflete os passos necessários para se construir um produto de software Existem vários modelos de ciclo de vida Cascata (1956) Iterativo

Leia mais

Introdução a Métodos Ágeis com ênfase em XP. Alfredo Goldman Professor do IME - USP

Introdução a Métodos Ágeis com ênfase em XP. Alfredo Goldman Professor do IME - USP Introdução a Métodos Ágeis com ênfase em XP Alfredo Goldman Professor do IME - USP Pequeno histórico Docente do IME - USP desde 1993 Interesse inicial em métodos ágeis: 2001 Ensino: Laboratório de Programação

Leia mais

PROGRAMAÇÃO EXTREMA - XP

PROGRAMAÇÃO EXTREMA - XP PROGRAMAÇÃO EXTREMA - XP Hoje em dia o maior problema para a entrega de um projeto, é a quantidade de riscos que podem ocorrer com o mesmo, como atraso na entrega, sistema que está sendo entregue não é

Leia mais

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE PROCESSO DE DESENVOLVIMENTO DE SOFTWARE Luiz Leão luizleao@gmail.com http://www.luizleao.com Questão 1 Sobre a Metodologia de Desenvolvimento de Software Extreme Programming (XP), explique e cite os benefícios

Leia mais

Refatorando

Refatorando Refatorando TUDO! @marcosbrizeno @marcosbrizeno A única maneira de ir rápido é ter qualidade https://pt.wikipedia.org/wiki/procrastinação esforço tempo esforço prazo tempo esforço tempo O Scrum resolve

Leia mais

Prof. Luiz A. Nascimento. As práticas denominadas ágeis vêm sendo cada vez mais utilizadas na gerência de projetos de software.

Prof. Luiz A. Nascimento. As práticas denominadas ágeis vêm sendo cada vez mais utilizadas na gerência de projetos de software. Prof. Luiz A. Nascimento As práticas denominadas ágeis vêm sendo cada vez mais utilizadas na gerência de projetos de software. Porque metodologias ágeis? A história dos fracassos no desenvolvimento de

Leia mais

Engenharia de Software

Engenharia de Software UNIVERSIDADE DE LISBOA INSTITUTO SUPERIOR TÉCNICO Engenharia de Software LEIC/LETI, 3 o Ano, 2 o Semestre 1 o Teste, 4 de Abril de 2017 Duração: 90 minutos Nome: Número: Este teste tem um conjunto de 8

Leia mais

Acelere a inovação simplificando o Desenvolvimento de Apps Fiori e Leonardo

Acelere a inovação simplificando o Desenvolvimento de Apps Fiori e Leonardo Acelere a inovação simplificando o Desenvolvimento de Apps Fiori e Leonardo Eugenio García GeneXus for SAP Systems Product Manager egarcia@genexus.com Ricardo Recchi Country Manager Brazil rrecchi@genexus.com

Leia mais

Métodos Ágeis de desenvolvimento de software: uma abordagem humana

Métodos Ágeis de desenvolvimento de software: uma abordagem humana Métodos Ágeis de desenvolvimento de software: uma abordagem humana Alfredo Goldman Professor do IME USP Copyleft Pequeno histórico Docente do IME - USP desde 1993 Começamos uma disciplina: Laboratório

Leia mais

1. A função DevOps, que se concentra principalmente em Produtos & Serviços:

1. A função DevOps, que se concentra principalmente em Produtos & Serviços: Questões de múltipla escolha 1. A função DevOps, que se concentra principalmente em Produtos & Serviços: a) Desenvolvimento Ágil b) Melhoria Contínua c) Automatizar tudo d) Centralizar o Desenvolvimento

Leia mais

Introdução a Engenharia de Software

Introdução a Engenharia de Software Introdução a Engenharia de Software Proj. Desenvolvimento de Software Prof. Cleverton Hentz cleverton.hentz@ifrn.edu.br 5 de abril de 2017 Material Apresentado Sumário de Aula 1 O que é Engenharia de Software

Leia mais

Ideal para que tipo de empresa (equipe): pequena, média, grande? Em software onde os requisitos não são conhecidos é recomendado o uso do XP? Por quê?

Ideal para que tipo de empresa (equipe): pequena, média, grande? Em software onde os requisitos não são conhecidos é recomendado o uso do XP? Por quê? Significado de XP? Extreme Programming (Programação Extrema). Ideal para que tipo de empresa (equipe): pequena, média, grande? Pequenas e Médias. Em software onde os requisitos não são conhecidos é recomendado

Leia mais

Sumário. Escrita de Programas. Qualidades. Objectivos. Engenharia de Software. Caracterização. Técnicas Casos Notáveis Conclusões

Sumário. Escrita de Programas. Qualidades. Objectivos. Engenharia de Software. Caracterização. Técnicas Casos Notáveis Conclusões Engenharia de Software Escrita de Programas António Rito Silva Rito.Silva@inesc-id.pt Sumário Caracterização Objectivos Qualidades Técnicas Casos Notáveis Conclusões Escrita de Programas 2 Objectivos O

Leia mais

Escrita de Programas. António Rito Silva

Escrita de Programas. António Rito Silva Escrita de Programas António Rito Silva Rito.Silva@inesc-id.pt Sumário Caracterização Objectivos Qualidades Técnicas Casos Notáveis Conclusões Escrita de Programas 2 Objectivos O desenho pode não ter abordado

Leia mais

Engenharia de Software

Engenharia de Software UNIVERSIDADE DE LISBOA INSTITUTO SUPERIOR TÉCNICO Engenharia de Software LEIC/LETI, 3 o Ano, 2 o Semestre 1 o Teste, 4 de Abril de 2017 Duração: 60 minutos Nome: Número: Este teste tem um conjunto de 8

Leia mais

Qualidade. Ana Madureira

Qualidade. Ana Madureira Qualidade Ana Madureira Qualidade da Informação A qualidade de uma informação é apreciada em função da sua pertinência (adaptação às necessidades do sistema de gestão). Três características permitem medir

Leia mais

Como aplicar práticas de DevOps em um sistema monolítico de mais de 15 anos. Trilha DevOps

Como aplicar práticas de DevOps em um sistema monolítico de mais de 15 anos. Trilha DevOps Como aplicar práticas de DevOps em um sistema monolítico de mais de 15 anos Trilha DevOps Quem somos nós? Anderson Silveira Agile Coach KMP CSM - CPQD anderson.silveira.br /andersonsilveira /andersonsilvra

Leia mais

Programação Orientada a Objectos - P. Prata, P. Fazendeiro

Programação Orientada a Objectos - P. Prata, P. Fazendeiro Programação Orientada a Objetos 1.1 - Perspectiva histórica: Conceitos A evolução das linguagens de programação tem-se feito na procura de ferramentas: -cada vez mais próximas da percepção humana - e que

Leia mais

Engenharia de Software. Prof. Me. Clodoaldo Brasilino

Engenharia de Software. Prof. Me. Clodoaldo Brasilino Engenharia de Software Prof. Me. Clodoaldo Brasilino clodoaldo.neto@ifpi.edu.br Acompanhamento da Disciplina 1. Introdução à Engenharia de Software 2. Processos de Software e Projetos 3. Metodologia Ágil

Leia mais

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE PROCESSO DE DESENVOLVIMENTO DE SOFTWARE Luiz Leão luizleao@gmail.com http://www.luizleao.com Questão 1 O desenvolvimento de software envolve usuários, clientes e desenvolvedores. Avalie as seguintes afirmações

Leia mais

Engenharia de Software

Engenharia de Software Engenharia de Software Tópico 1 - Visão Geral da Engenharia de Software Sistemas Computacionais o Definição e conceitos básicos o Evolução do desenvolvimento Natureza do produto software Definição de Engenharia

Leia mais

Visão Geral do Processo de Desenvolvimento de Software Introdução aos Sistemas de Informação

Visão Geral do Processo de Desenvolvimento de Software Introdução aos Sistemas de Informação - Centro de Ciências Exatas, Naturais e de Saúde Departamento de Computação Visão Geral do Processo de Desenvolvimento de Software Introdução aos Sistemas de Informação COM06852 - Introdução aos SI Prof.

Leia mais

Engenharia de Software 2006/2007

Engenharia de Software 2006/2007 Instituto Superior Técnico Engenharia de Software 2006/2007 Segundo Teste (perguntas 5-10, 70 minutos) Primeiro Exame (perguntas 1-10, 120 minutos) 29/6/2007 Nome: Número: Escreva o seu número em todas

Leia mais

Desenvolvimento de Projetos

Desenvolvimento de Projetos Desenvolvimento de Projetos Aula 1.3 Modelos de Processo Prof. Dr. Bruno Moreno bruno.moreno@ifrn.edu.br Tipos de Modelos Modelo em Cascata; Prototipação; Modelo Incremental; Desenvolvimento Evolucionário;

Leia mais

scrum foundations workshop

scrum foundations workshop workshop Lisboa scrum foundations SOBRE O WORKSHOP O Scrum é caracterizado por um conjunto de simples princípios e práticas que ajudam as equipas de desenvolvimento de software a entregar produtos em ciclos

Leia mais

TDD Desenvolvimento Guiado por Testes (Portuguese Edition)

TDD Desenvolvimento Guiado por Testes (Portuguese Edition) TDD Desenvolvimento Guiado por Testes (Portuguese Edition) Kent Beck Click here if your download doesn"t start automatically TDD Desenvolvimento Guiado por Testes (Portuguese Edition) Kent Beck TDD Desenvolvimento

Leia mais

O papel do QA (Testador) em um time Ágil. #caipiraagil2017

O papel do QA (Testador) em um time Ágil. #caipiraagil2017 O papel do QA (Testador) em um time Ágil #caipiraagil2017 Mariana Elisa Moisés Atualmente Mobile QA Analyst na Tegra (Sorocaba) e entusiasta de mulheres na Tecnologia!

Leia mais

Problemas e Práticas Recomendadas no Desenvolvimento de Software

Problemas e Práticas Recomendadas no Desenvolvimento de Software Problemas e Práticas Recomendadas no Desenvolvimento de Software Objetivos deste módulo Levantar problemas enfrentados na prática do desenvolvimento de software Discutir boas práticas para o desenvolvimento

Leia mais

Programação Extrema. Luis Fernando Machado. Engenharia de Software

Programação Extrema. Luis Fernando Machado. Engenharia de Software Programação Extrema Luis Fernando Machado Engenharia de Software Desenvolvimento Ágil Programação Extrema, ou Extreme Programming (XP) é um modelo de desenvolvimento ágil. Desenvolvimento ágil foi criado

Leia mais

Desenvolvimento Ágil de Software

Desenvolvimento Ágil de Software DCC / ICEx / UFMG Desenvolvimento Ágil de Software Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo Agenda Métodos ágeis Histórico e Motivação Manifesto ágil Desenvolvimento dirigido a planos e ágil

Leia mais

Engenharia de Software Simulado para a 1ª Avaliação Bimestral Professor: Danilo Giacobo - RESPOSTAS. Nome:

Engenharia de Software Simulado para a 1ª Avaliação Bimestral Professor: Danilo Giacobo - RESPOSTAS. Nome: Engenharia de Software Simulado para a 1ª Avaliação Bimestral Professor: Danilo Giacobo - RESPOSTAS Nome: 1. A figura abaixo representa, simplificadamente, as fases do Modelo de Ciclo de Vida Cascata.

Leia mais

Ciclo de vida: fases x atividades

Ciclo de vida: fases x atividades Ciclo de vida Fase de definição Análise e Especificação Estudo de Viabilidade Estimativas Planejamento Fase de desenvolvimento Design Implementação e integração Verificação e Validação Fase de operação

Leia mais

Integração do Desenvolvimento Ágil com a Governança Corporativa de TI Usando Métricas Funcionais

Integração do Desenvolvimento Ágil com a Governança Corporativa de TI Usando Métricas Funcionais Integração do Desenvolvimento Ágil com a Governança Corporativa de TI Usando Métricas Funcionais Carlos Eduardo Vazquez FATTO Consultoria e Sistemas Brasília Novembro/2014 www.fattocs.com 1 Queda do Muro

Leia mais

Aplicando testes em XP com o framework JUnit APPLYING TESTS IN XP WITH THE JUNIT FRAMEWORK

Aplicando testes em XP com o framework JUnit APPLYING TESTS IN XP WITH THE JUNIT FRAMEWORK Aplicando testes em XP com o framework JUnit ADRIANE PEDROSO DIAS 1 SABRINA BORBA DALCIN 1 MARCOS CORDEIRO D ORNELLAS 1 UFSM - Universidade Federal de Santa Maria PPGEP - Programa de Pós-Graduação em Engenharia

Leia mais

<Nome do Projeto> Plano do Projeto

<Nome do Projeto> Plano do Projeto Plano do Projeto Versão 1 Data Índice 1. DESCRIÇÃO DO PROJETO 2. ORGANIZAÇÃO DO PROJETO 2.1. Estrutura Organizacional 2.2. Interface Externa 3. PROCESSO DE GERENCIAMENTO 3.1. Estimativas

Leia mais

PROCESSOS DE SOFTWARE

PROCESSOS DE SOFTWARE PROCESSOS DE SOFTWARE Atividades para especificar, projetar, implementar e testar sistemas de software 1 Processos de software Uma Visão Genérica: 3 Fases Definição - o que Engenharia do Sistema Planejamento

Leia mais

INTRODUÇÃO A ENGENHARIA DE SOFTWARE

INTRODUÇÃO A ENGENHARIA DE SOFTWARE Universidade Estadual Vale do Acaraú INTRODUÇÃO A ENGENHARIA DE SOFTWARE : Prof. Raquel Silveira Métodos ágeis focam em simplicidade, software funcional no início das iterações, flexibilidade e intensa

Leia mais

Engenharia de Software

Engenharia de Software Engenharia de Software Processos de Software Professor: Charles Leite O processo de software Um conjunto estruturado de atividades, procedimentos, artefatos e ferramentas necessários para o desenvolvimento

Leia mais

abraçando a mudança extreme Programming Helder da Rocha www.argonavis.com.br

abraçando a mudança extreme Programming Helder da Rocha www.argonavis.com.br abraçando a mudança extreme Programming Helder da Rocha www.argonavis.com.br 1 Desenvolvimento de software no passado Engenharia de software tradicional Analisar, projetar, e só depois começar a construir

Leia mais

Desenvolvimento Ágil

Desenvolvimento Ágil Programação para a Plataforma Android Aula 15 Desenvolvimento Ágil O que são métodos ágeis de programação? O que é desenvolvimento orientado a testes? Quais recursos podem ser usados para deixar o desenvolvimento

Leia mais

ICET CURSO: Ciência da Computação e Sistemas de Informação (Engenharia de Software) Campus: Data: / / Nome:

ICET CURSO: Ciência da Computação e Sistemas de Informação (Engenharia de Software) Campus: Data: / / Nome: ICET CURSO: Ciência da Computação e Sistemas de Informação (Engenharia de Software) Estudos Disciplinares Campus: Data: / / Nome: RA: Turma: Questão 1: Assinale a função correta de engenharia de requisitos:

Leia mais

Processos de Software

Processos de Software DCC / ICEx / UFMG Processos de Software Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo Processos Procedimentos e métodos definindo relação entre tarefas PROCESSO Pessoas com habilidades, treinadas

Leia mais

Manifesto Ágil Princípios

Manifesto Ágil Princípios Manifesto Ágil Princípios Indivíduos e interações são mais importantes que processos e ferramentas. Software funcionando é mais importante do que documentação completa e detalhada. Colaboração com o cliente

Leia mais

Evolução de Software. Agenda a Aula. Evolução de Software. Evolução de Software. Atividades Comuns. Atividades de Desenvolvimento

Evolução de Software. Agenda a Aula. Evolução de Software. Evolução de Software. Atividades Comuns. Atividades de Desenvolvimento Engenharia de Software Aula 12 Atividades Comuns Evolução de Software Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo dcc603@gmail.com 16 Abril 2012 1. Especificação de requisitos 2. Projeto de Software

Leia mais

Métodos Ágeis e Programação Extrema (XP)

Métodos Ágeis e Programação Extrema (XP) Métodos Ágeis e Programação Extrema (XP) 1 Métodos Ágeis A insatisfação com os overheads envolvidos em métodos tradicionais de desenvolvimento levou à criação dos métodos ágeis. Esses métodos: Focam no

Leia mais

2 Processos Ágeis Scrum

2 Processos Ágeis Scrum 2 Processos Ágeis Processos ágeis, também conhecidos como métodos ágeis, referem-se a um grupo de processos de desenvolvimento de software baseados em desenvolvimento iterativo, onde os requisitos e as

Leia mais

Plano de testes. Norma ANSI/IEEE para Documentação de Teste de Software define plano de testes como:

Plano de testes. Norma ANSI/IEEE para Documentação de Teste de Software define plano de testes como: Plano de testes Norma ANSI/IEEE 829-1998 para Documentação de Teste de Software define plano de testes como: Um documento que define o âmbito, abordagem, recursos e escalonamento (planeamento) das atividades

Leia mais

ENGENHARIA DE SOFTWARE

ENGENHARIA DE SOFTWARE CURSO TÉCNICO DE INFORMÁTICA Módulo A ENGENHARIA DE SOFTWARE Processos de Software O PROCESSO É LENTO... Todo software deve ser construído de forma organizada, através de processos. Um processo pode ser

Leia mais

Paradigmas de Software

Paradigmas de Software Paradigmas de Software Objetivos Introdução aos paradigmas de software. Descrição de modelos genéricos e sua aplicabilidade. Descrição dos processos de requisitos, desenvolvimento, teste e evolução. Modelo

Leia mais

Estamos prontos para entregar software inteligente?

Estamos prontos para entregar software inteligente? Estamos prontos para entregar software inteligente? Tiago Moura thvmoura CTO da Hop Mestre em Ciência da Computação IBM Lifetime Champion Fã de futebol e MMORPG Quem somos? Engenharia de software até agora...

Leia mais

Capítulo 2 - Processos de Software

Capítulo 2 - Processos de Software Capítulo 2 - Processos de Software Capítulo 2 Processos Software 1 Assuntos abordados Modelos de processo de software Atividades no processo de software Mudança no processo de software Melhoria de processos

Leia mais

Cadeira: Engenharia de Software

Cadeira: Engenharia de Software Cadeira: Engenharia de Software Aulas 9, 10 15/08/15 Docente: Cláudia Ivete F. Jovo cifjovo@gmail.com or cjovo@up.ac.mz M.Sc. Cláudia Jovo 2017/DI 0 Definição de Eng. Software; Eng. Software Tecnologia

Leia mais

Extending Extreme Programming With Practices From Other Methodologies

Extending Extreme Programming With Practices From Other Methodologies Extending Extreme Programming With Practices From Other Methodologies Danilo Sato, Dairton Bassi, Alfredo Goldman DCC-IME/USP - Departamento de Ciência da Computação do Instituto de Matemática e Estatística

Leia mais

Evolução de Software e Refatoração. Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 21 1

Evolução de Software e Refatoração. Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 21 1 Evolução de Software e Refatoração Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 21 1 Mudança de software Mudança de software é inevitável Novos requisitos surgem quando o software

Leia mais

Community. .com. Introdução ao T D

Community. .com. Introdução ao T D Community Introdução ao T D D Cadastro de Usuário Cadastro de Usuário Cadastro de Usuário Cadastro de Usuário Cadastro de Usuário Cadastro de Usuário Cadastro de Usuário Cadastro de Usuário Meu sistema

Leia mais

A Relação entre Ágil e DevOps

A Relação entre Ágil e DevOps A Relação entre Ágil e DevOps Marcell Castelo Branco DevOpsDays São Paulo 6 de Junho de 2018 Sobre o palestrante 2 Marcell Castelo Branco Arquiteto de Soluções DevOps Coach +13 anos desenvolvendo softwares

Leia mais

Scrum e Extreme Programming

Scrum e Extreme Programming Scrum e Extreme Programming CODEX Sumário Objetivo 3 Scrum 4 Papéis de Atuação 4 Eventos do Scrum 5 Artefatos do Scrum 5 Porque Scrum? 5 Extreme Programming 6 Práticas do Extreme Programming 6 Porque XP?

Leia mais

Os Desafios da Segurança no Desenvolvimento com Métodos Ágeis. OWASP Education Project. The OWASP Foundation http://www.owasp.org

Os Desafios da Segurança no Desenvolvimento com Métodos Ágeis. OWASP Education Project. The OWASP Foundation http://www.owasp.org Os Desafios da Segurança no Desenvolvimento com Métodos Ágeis Education Project Rafael Dreher Porto Alegre Chapter - Co-founder Security Consultant @ Dell dreher@owasp.org Copyright 2007 The Foundation

Leia mais

Processos de Software by Pearson Education Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 4 Slide 1

Processos de Software by Pearson Education Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 4 Slide 1 Processos de Software Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 4 Slide 1 Objetivos Apresentar modelos de processos de software Descrever três modelos genéricos de processo e quando

Leia mais