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

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

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

Transcrição

1 Metodologias Ágeis de Desenvolvimento de Software FEUP, MEI e LEIC, 2005/06 Ademar Aguiar ademar.aguiar at fe.up.pt FEUP/LEIC Ademar Aguiar Metodologias Ágeis de Desenvolvimento de Software, 2005/06 1

2 Papéis XP FEUP/LEIC Ademar Aguiar Metodologias Ágeis de Desenvolvimento de Software, 2005/06 2

3 Papeis principais Programador Cliente Tester Tracker Coach Consultant Big Boss FEUP/LEIC Ademar Aguiar Metodologias Ágeis de Desenvolvimento de Software, 2005/06 3

4 Estratégia de Desenvolvimento FEUP/LEIC Ademar Aguiar Metodologias Ágeis de Desenvolvimento de Software, 2005/06 4

5 Today s problem today, tomorrow s problem tomorrow A programação é considerada a actividade principal no XP. XP adiciona pequenas práticas à actividade típica de programação, tais como os testes automatizados. Continuous Integration reduz os conflitos na equipa. Collective Ownership encoraja a cooperação da equipa. Pair Programming liga todo o processo. FEUP/LEIC Ademar Aguiar Metodologias Ágeis de Desenvolvimento de Software, 2005/06 5

6 Continuous Integration Novo código deve ser integrado em poucas horas (1,2,4..7) Ao fim de cada dia de desenvolvimento, deve ser produzida uma nova release em que todos os testes correm a 100%. A integração contínua tem as vantagens dos estilos de desenvolvimento programador individual e integração instantânea Como programador parece que se está sózinho. Como integrador consegue-se identificar onde estão os conflitos em termos de definições de classes e métodos. Ao correr os testes pode-se identificar onde estão os conflitos em termos semânticos. FEUP/LEIC Ademar Aguiar Metodologias Ágeis de Desenvolvimento de Software, 2005/06 6

7 Continuous Integration... É importante usar ferramentas que possibilitem um ciclo rápido integrate/build/test. O refactoring motiva a escrita de código fácil de compreender, simples e desacoplado. Os riscos do projecto são minimizados porque os conflitos são detectados muito rapidamente na altura de integração. Todos sabem construir uma release, porque o fazem todos os dias várias vezes ao dia. O compartimentar do trabalho em pequenas unidades learn/test/code/release dão ritmo ao desenvolvimento, o que é motivador porque o progresso é facil de avaliar. FEUP/LEIC Ademar Aguiar Metodologias Ágeis de Desenvolvimento de Software, 2005/06 7

8 Collective Ownership Anyone can change any piece of code at any time :? Sem testes, isto seria impensável. Sem integração contínua, isto seria muito ineficaz. O código complexo passa a ter um tempo de vida reduzido de acordo com o nível médio da equipa, porque todos o podem e devem simplificar quando o acham complexo. O refactoring ajuda neste processo de simplificação. Os testes ajudam a validar se as simplificações foram feitas de forma correcta, sem corromper o sistema. Esta prática aumenta a sensação de poder pessoal no projecto, o que é bom e motivador, levando a um equilibrio saudável e natural na equipa. Não se pode culpabilizar os outros porque algo está mal e poderia estar melhor... O conhecimento sobre o projecto é facilmente disseminado pela equipa ao longo da vida do projecto, de par em par, o que também reduz os riscos do projecto. FEUP/LEIC Ademar Aguiar Metodologias Ágeis de Desenvolvimento de Software, 2005/06 8

9 Pair Programming Não é uma pessoa a programar e outra a observar. Não é uma pessoa a ensinar outra, embora pares formados por pessoas com níveis de experiência muito diferentes o possam parecer, pelo menos inicialmente. Com o tempo, os pares ficam mais homogéneos porque aprendem muito uns com os outros e podem-se ajudar mutuamente. O valor principal é COMUNICAÇÃO: o conhecimento é rapidamente disseminado pela equipa, de par em par, e enriquecido com a experiência e ideias de cada um. Existem pessoas que não gostam de trabalhar em pares. FEUP/LEIC Ademar Aguiar Metodologias Ágeis de Desenvolvimento de Software, 2005/06 9

10 Pair Programming... A programação em pares provou ser mais produtiva do que a divisão do trabalho em dois e depois integrar: um é operacional enquanto o outro actua a um nível mais estratégico. A programação em pares permite ainda melhor qualidade final, melhor conhecimento global do sistema, reduz riscos do projecto. Em stress tende-se a esquecer testes, refactoring, integração... Mas a programação em pares tende a reduzir o risco de ocorrência destas tentações. Todo o processo de desenvolvimento beneficia com a programação em pares porque todos, pouco a pouco, ficam a conhecer todo o sistema e a ter capacidade de trabalhar em qualquer uma das suas partes. FEUP/LEIC Ademar Aguiar Metodologias Ágeis de Desenvolvimento de Software, 2005/06 10

11 Estratégia de Design FEUP/LEIC Ademar Aguiar Metodologias Ágeis de Desenvolvimento de Software, 2005/06 11

12 The simplest thing that could possibly work Todos os valores de XP actuam no design. Comunicação Um design complicado é mais dificil de compreender do que um simples. O design deve ser comunicativo, e transmitir de forma rápida os aspectos mais importantes do sistema. Simplicidade O design deve ser simples, mas a estratégia que o origina também deve ser simples. ( Simple, clear purpose and principles give rise to complex, intelligent behavior. Complex rules and regulations give rise to simple, stupid behavior ) Feedback O design está certo ou errado? Design simples é rápido de codificar e de avaliar. Coragem Não ter medo de desenhar apenas uma parte do sistema e ter confiança de que se poderá continuar o desenho depois, quando e se for necessário. FEUP/LEIC Ademar Aguiar Metodologias Ágeis de Desenvolvimento de Software, 2005/06 12

13 The simplest thing that could possibly work... Pequeno investimento inicial O investimento deve ser reduzido até se tirar beneficio do design. Assumir a simplicidade Ter coragem para assumir que o design mais simples funciona. Alterações incrementais O design irá ser refinado continuamente, evoluindo gradualmente e incrementalmente ao longo do tempo, à medida das necessidades. O design nunca estará completo, embora existam partes dele que se encontram bastante estáveis há muito tempo (princípio aberto-fechado ). Travel light O design não deve ter mais do que o estritamente necessário, tudo o que é necessário, mas nem mais um pouco. Ao programar somos tentados a antecipar problemas e portanto a fazer overengineering... O XP tenta evitar estes delírios quase nunca necessários. Test-Driven Development: escrever teste, fazer compilar o teste, fazer passar o teste, refactoring para simplificar o código e o design. FEUP/LEIC Ademar Aguiar Metodologias Ágeis de Desenvolvimento de Software, 2005/06 13

14 Simplest O sistema deve comunicar tudo que se pretende comunicar. O sistema não deve ter código duplicado. O sistema deve ter o menor número possível de classes. O sistema deve ter o menor número possível de métodos. FEUP/LEIC Ademar Aguiar Metodologias Ágeis de Desenvolvimento de Software, 2005/06 14

15 Estratégia de Teste FEUP/LEIC Ademar Aguiar Metodologias Ágeis de Desenvolvimento de Software, 2005/06 15

16 Write tests before coding... Escrever testes antes de escrever o código. Obriga a definir bem os requisitos a ser satisfeitos pelo código. Documenta os requisitos. Simplifica o design. Os testes serão preservados ao longo do tempo e executados sempre que o sistema é integrado e construído. Escrever testes para documentar os requisitos do ponto de vista do cliente. Os testes são automatizáveis. FEUP/LEIC Ademar Aguiar Metodologias Ágeis de Desenvolvimento de Software, 2005/06 16

17 Code to pass the tests, fast! Escrever código para passar os testes rápidos, obrigam a concentrar no essencial, simplificando a implementação. FEUP/LEIC Ademar Aguiar Metodologias Ágeis de Desenvolvimento de Software, 2005/06 17

18 Then, refactor... A redundância e erros de design introduzidos deverão ser eliminados por refactoring imediatamente a seguir aos testes passarem, mas apenas então. FEUP/LEIC Ademar Aguiar Metodologias Ágeis de Desenvolvimento de Software, 2005/06 18

19 TDD Test Driven Development FEUP/LEIC Ademar Aguiar Metodologias Ágeis de Desenvolvimento de Software, 2005/06 19

20 Test-Driven Development (TDD) The rhythm of Test-Driven Development (TDD) can be summed up as follows: 1. Quickly add a test. 2. Run all tests and see the new one fail. 3. Make a little change. 4. Run all tests and see them all succeed. 5. Refactor to remove duplication. (Kent Beck, Test-Driven Development, Addison-Wesley, 2003) FEUP/LEIC Ademar Aguiar Metodologias Ágeis de Desenvolvimento de Software, 2005/06 20

21 Test-Driven Development: um exemplo Escrever e testar uma rotina que converte um inteiro n entre 0 e numa string com a sua representação por extenso em português. Sugestão: considerar sucessivamente números com mais dígitos Caso do zero Unidades de 1 a 9 Números de 10 a 20 Dezenas exactas Dezenas compostas Centenas exactas Centenas compostas Milhares exactos Milhares compostos... FEUP/LEIC Ademar Aguiar Metodologias Ágeis de Desenvolvimento de Software, 2005/06 21

22 Refactoring FEUP/LEIC Ademar Aguiar Metodologias Ágeis de Desenvolvimento de Software, 2005/06 22

23 O que é Refactoring? A ideia tem origem na tese de Bill Opdyke, A refactoring is a change made to the internal structure of software to make it easier to understand and cheaper to modify without changing its observable behavior [Fowler 2000] O processo de refactoring envolve a eliminação de duplicação, a simplificação de lógica complexa e clarificação de código, tornando-o mais fácil de entender. Exemplos: alterar nome de variável, dividir um método grande, instanciar um padrão de design. FEUP/LEIC Ademar Aguiar Metodologias Ágeis de Desenvolvimento de Software, 2005/06 23

24 Como fazer refactoring? Refactoring implica alterar código funcional logo é necessário ter testes para nos dar segurança de que o refactoring não alterou a funcionalidade do sistema. Os testes automatizados permitem-nos rapidamente confirmar que a funcionalidade do código alterado se mantém. Deve-se fazer refactoring de forma contínua sempre que se ache que o código deve ser evoluído, e não por fases, e em pequenos passos sucessivos para evitar a introdução de defeitos. Pequenos refactorings podem demorar segundos ou minutos. Grandes refactorings podem demorar horas ou meses, mas deverão ser sempre feitos em pequenos passos. FEUP/LEIC Ademar Aguiar Metodologias Ágeis de Desenvolvimento de Software, 2005/06 24

25 Porquê fazer refactoring? Facilitar a inserção de código novo e novas funcionalidades. Melhorar o desenho do código existente. Compreender melhor o código. Tornar o código mais agradável de manipular, menos aborrecido de lidar, tanto individualmente como colaborativamente. Limpar e arrumar o código. Baixar o défice de design devido a não se fazer na altura certa e dose certa: o remover de duplicação, simplificar e clarificar o intuito do código. Evoluir uma arquitectura existente. Any fool can write code that a computer can understand. Good programmers write code that humans can understand. [Fowler 2000] FEUP/LEIC Ademar Aguiar Metodologias Ágeis de Desenvolvimento de Software, 2005/06 25

26 Quando fazer refactoring? Quando se adicionam novas funcionalidades Para melhor compreender o código a modificar Para melhorar o design do código existente e assim facilitar a adição das novas funcionalidades Quando se pretende encontrar um bug Para melhor compreender o código com o bug e assim o identificar Quando se está a fazer revisão de código FEUP/LEIC Ademar Aguiar Metodologias Ágeis de Desenvolvimento de Software, 2005/06 26

27 Dificuldades de refactoring Bases de dados Aplicações fortemente dependentes dos esquemas das BDs Alterações na interface das classes Quando não se tem acesso a todo o código que usa uma interface que se pretende alterar o refactoring dessa interface pode ser complicado. - Don't publish interfaces prematurely. - Modify your code ownership policies to smooth refactoring. O código não funciona Nesta situação de nada serve fazer refactoring... FEUP/LEIC Ademar Aguiar Metodologias Ágeis de Desenvolvimento de Software, 2005/06 27

28 Refactoring e Design As actividades de refactoring e design são complementares. Design: da ideia à melhor solução Refactoring: da ideia à solução mais razoável. A aplicação contínua de refactoring conduz a design mais simples, resultando numa forma mais eficaz de na prática se chegar a uma boa solução de design. A ênfase é a mesma: idealizar a melhor solução. Na prática, implementa-se apenas a solução mais simples que funciona, pois sabe-se que se pode evoluir essa solução quando for efectivamente necessário fazê-lo. FEUP/LEIC Ademar Aguiar Metodologias Ágeis de Desenvolvimento de Software, 2005/06 28

29 Refactoring e Performance Antes de se tentar melhorar a performance de código ajuda muito fazer-se refactoring para eliminar duplicação, simplificar e melhor entender o código e só depois afinar a sua performance. FEUP/LEIC Ademar Aguiar Metodologias Ágeis de Desenvolvimento de Software, 2005/06 29

30 Formato dos Refactorings Nome Resumo Motivação Mecânica Exemplos FEUP/LEIC Ademar Aguiar Metodologias Ágeis de Desenvolvimento de Software, 2005/06 30

31 Catálogo de Refactorings Add Parameter Change Bidirectional Association to Unidirectional Change Reference to Value Change Unidirectional Association to Bidirectional Change Value to Reference Collapse Hierarchy Consolidate Conditional Expression Consolidate Duplicate Conditional Fragments Convert Dynamic to Static Construction by Gerard M. Davison Convert Static to Dynamic Construction by Gerard M. Davison Decompose Conditional Duplicate Observed Data Eliminate Inter-Entity Bean Communication (Link only) Encapsulate Collection Encapsulate Downcast Encapsulate Field Extract Class Introduce A Controller (Link only) Introduce Assertion Introduce Business Delegate (Link only) Introduce Explaining Variable Introduce Foreign Method Introduce Local Extension Introduce Null Object Introduce Parameter Object Introduce Synchronizer Token (Link only) Localize Disparate Logic (Link only) Merge Session Beans (Link only) Move Business Logic to Session (Link only) Move Class by Gerard M. Davison Move Field Move Method Parameterize Method Preserve Whole Object FEUP/LEIC Ademar Aguiar Metodologias Ágeis de Desenvolvimento de Software, 2005/06 31

32 Refactoring to Patterns FEUP/LEIC Ademar Aguiar Metodologias Ágeis de Desenvolvimento de Software, 2005/06 32

33 Refactoring + Patterns "Refactoring to patterns is a revolutionary approach to applying patterns that combines the top-down utility of design patterns with the bottom-up discovery of iterative development and continuous refactoring. FEUP/LEIC Ademar Aguiar Metodologias Ágeis de Desenvolvimento de Software, 2005/06 33

34 Design patterns Existem muitas formas possíveis de implementar/instanciar um padrão de software, umas mais simples, outras mais complexas e mais próximas da estrutura sugerida no padrão. Implementações minimalistas fazem parte do prática de design evolutivo. Muitas vezes, uma implementação não-baseada em design patterns tem que evoluir para poder incluir um padrão. Neste caso, pode-se fazer refactoring do design para uma implementação simples de um padrão. Isto é Refactoring to Patterns! FEUP/LEIC Ademar Aguiar Metodologias Ágeis de Desenvolvimento de Software, 2005/06 34

35 Direcções possíveis para refactoring Refactoring to (para)... Refactoring towards (no sentido de)... Refactoring away (de)... FEUP/LEIC Ademar Aguiar Metodologias Ágeis de Desenvolvimento de Software, 2005/06 35

36 Catálogo de Refactorings to Patterns Creation Simplification Generalization Protection Accumulation Utilities FEUP/LEIC Ademar Aguiar Metodologias Ágeis de Desenvolvimento de Software, 2005/06 36

37 Referências William F. Opdyke, Ph.D. diss., "Refactoring Object-Oriented Frameworks. " University of Illinois at Urbana-Champaign, Fowler, Martin. Refactoring: Improving the Design of Existing Code. Boston, MA: Addison-Wesley, Kerievsky, Joshua. Refactoring to Patterns. Addison-Wesley, FEUP/LEIC Ademar Aguiar Metodologias Ágeis de Desenvolvimento de Software, 2005/06 37

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

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

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

Refactoring Visão Geral do Catálogo de Martin Fowler

Refactoring Visão Geral do Catálogo de Martin Fowler Refactoring Visão Geral do Catálogo de Martin Fowler Jorge Fernandes Janeiro de 2001 Catálogo de Refactorings Composição de Métodos Movendo Características entre Objetos Organizando Dados Simplificando

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

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

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

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

Reengenharia, Refatoração e Bad Smell

Reengenharia, Refatoração e Bad Smell DCC / ICEx / UFMG Reengenharia, Refatoração e Bad Smell Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo Reengenharia de Sistemas Reestruturação ou reescrita de parte ou de todo um sistema legado

Leia mais

ALGORITMOS AVANÇADOS. UNIDADE III Algoritmo de Ordenação por Intercalação (Mergesort) Luiz Leão

ALGORITMOS AVANÇADOS. UNIDADE III Algoritmo de Ordenação por Intercalação (Mergesort) Luiz Leão UNIDADE III Algoritmo de Ordenação por Intercalação (Mergesort) Luiz Leão luizleao@gmail.com http://www.luizleao.com Conteúdo Programático 3.1 - Definição 3.2 - Dividir para conquistar 3.3 - Problema da

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

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

Refatoração: uma introdução. Prof. André Luiz Peron Martins Lanna

Refatoração: uma introdução. Prof. André Luiz Peron Martins Lanna Refatoração: uma introdução Prof. André Luiz Peron Martins Lanna Agenda Introdução Idéias preliminares Um primeiro exemplo Conclusões Bibliografia Introdução Em DSW o assunto principal foi o Projeto de

Leia mais

Refatoração de Software

Refatoração de Software Refatoração de Software O que é? Atividade em que a estrutura interna de um software é modificada de modo que seu comportamento externo seja preservado; O objetivo é melhorar a qualidade do software; Cada

Leia mais

Testes Automatizados. Cursos de Verão 2007 IME/USP Dairton Bassi & Paulo Cheque

Testes Automatizados. Cursos de Verão 2007 IME/USP   Dairton Bassi & Paulo Cheque Testes Automatizados Cursos de Verão 2007 IME/USP www.agilcoop.org.br Dairton Bassi & Paulo Cheque Roteiro 1) Motivação 2) Introdução a Testes 3) Testes de Unidade 4) Testes de Aceitação 5) Testes de Integração

Leia mais

Estratégias de Escrita de Testes Automatizados

Estratégias de Escrita de Testes Automatizados Estratégias de Escrita de Testes Automatizados Paulo Cheque 12/02/2009 Verão 2009 2 Sobre a Palestra Refatoração TAD TFD/POUT TDD BDD Padrões e Anti padrões 3 (Refatoração) Uma modificação feita em pequenos

Leia mais

Padrões de Testes Automatizados

Padrões de Testes Automatizados Padrões de Testes Automatizados Paulo Cheque 10/02/2009 Verão2009 2 Introdução Testes codificados Exigem boa programação Mesmos problemas de um software Devem receber o mesmo tratamento Exigem manutenção

Leia mais

" ##$#$!% # & #$#$!!! "!!

 ##$#$!% # & #$#$!!! !! " ##$#$!% # & #$#$ # $ % &'! $ ( Desenho com Padrões (top-down) Identificar o problema a resolver Seleccionar os padrões adequados Verificar a aplicabilidade dos padrões ao problema em questão Instanciar

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

Prof. Dr. Fabio Kon Prof. Dr. Alfredo Goldman. Departamento de Ciência da Computação IME / USP. 3 de Abril de 2003 VI Semana da Computação

Prof. Dr. Fabio Kon Prof. Dr. Alfredo Goldman. Departamento de Ciência da Computação IME / USP. 3 de Abril de 2003 VI Semana da Computação Refatoração: Melhorando a Qualidade de Código Pré-Existente Prof. Dr. Fabio Kon Prof. Dr. Alfredo Goldman Departamento de Ciência da Computação IME / USP 3 de Abril de 2003 VI Semana da Computação 1 Refatoração

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

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

Modulo II Técnicas para desenvolvimento de Software Ágil

Modulo II Técnicas para desenvolvimento de Software Ágil Modulo II Técnicas para desenvolvimento de Software Ágil Prof. Ismael H F Santos April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 1 Bibliografia Vinicius Manhaes Teles, Extreme Programming,

Leia mais

Desenvolvimento Dirigido por Testes (TDD)

Desenvolvimento Dirigido por Testes (TDD) Desenvolvimento Dirigido por Testes (TDD) Cursos de Verão 2009 www.agilcoop.org.br Mariana Bravo O que é Desenvolvimento Dirigido por Testes? Dúvidas? Copyleft AgilCoop 2008 2 Testes a priori Conhecer

Leia mais

Princípios em refatoração. Prof. André Luiz Peron Martins Lanna

Princípios em refatoração. Prof. André Luiz Peron Martins Lanna Princípios em refatoração Prof. André Luiz Peron Martins Lanna Agenda Definição de refatoração. Por que refatorar? Quando refatorar? Problemas com refatoração. Refatoração e projeto. Refatoração e performance.

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

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

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

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

Arquitectura de Sistemas de Software Mestrado em Engenharia Informática Licenciatura em Engenharia Informática e Computação

Arquitectura de Sistemas de Software Mestrado em Engenharia Informática Licenciatura em Engenharia Informática e Computação Arquitectura de Sistemas de Software Mestrado em Engenharia Informática Licenciatura em Engenharia Informática e Computação Ademar Aguiar Universidade do Porto & INESC Porto ademar.aguiar at fe.up.pt FEUP

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

Arquitectura de Sistemas de Software

Arquitectura de Sistemas de Software Arquitectura de Sistemas de Software Ademar Aguiar www.fe.up.pt/~aaguiar ademar.aguiar@fe.up.pt Arquitectura de Sistemas de Software, LEIC/MEI, 2003/2004 1 Revisões Arquitectura de Sistemas de Software,

Leia mais

SUnit Referências. SUnit. Jefferson Serafim Ascaneo, Suzana de Siqueira Santos

SUnit Referências. SUnit. Jefferson Serafim Ascaneo, Suzana de Siqueira Santos Jefferson Serafim Ascaneo Suzana de Siqueira Santos Departamento de Ciência da Computação Instituto de Matemática e Estatística Universidade de São Paulo Abril de 2013 Agenda 1 2 3 2/ 30 Agenda História

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

2. Modelos de Desenvolvimento de Software

2. Modelos de Desenvolvimento de Software 2. Modelos de Desenvolvimento de Software Patrícia Macedo Joaquim Filipe João Ascenso Engenharia de Software 2005/06 EST, Setúbal Ciclo de Vida do Software Um sistema de software é desenvolvido gradualmente

Leia mais

Desenvolvimento orientado por testes, padrões de testes e JWebUnit

Desenvolvimento orientado por testes, padrões de testes e JWebUnit Desenvolvimento orientado por testes, padrões de testes e JWebUnit ou por que você quer fazer isso mas sempre deixa pro final? Copyleft -- Alexandre Freire Por que testar? Precisamos saber se o software

Leia mais

Práticas de desenvolvimento aplicadas na automação de testes com Selenium Robson Bittencourt #gutsrs

Práticas de desenvolvimento aplicadas na automação de testes com Selenium Robson Bittencourt #gutsrs Práticas de desenvolvimento aplicadas na automação de testes com Selenium Robson Bittencourt #gutsrs /@gutsrs Programação 19h15 às 19h45 Recepção, boas vindas e Coffee para integração 19h45 às 19h55 Abertura

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

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

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

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

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

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

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

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

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

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

Desafios do desenvolvimento de Software (Desenvolvimento Tradicional x Desenvolvimento Ágil)

Desafios do desenvolvimento de Software (Desenvolvimento Tradicional x Desenvolvimento Ágil) Programação Extrema Desafios do desenvolvimento de Software (Desenvolvimento Tradicional x Desenvolvimento Ágil) Prof. Mauro Lopes 1-31 25 Plano de Aula Desafios do Desenvolvimento de Software Introdução

Leia mais

Disciplina: Engenharia de Software. 3 Bimestre Aula 2: EVOLUÇÃO DE SOFTWARE

Disciplina: Engenharia de Software. 3 Bimestre Aula 2: EVOLUÇÃO DE SOFTWARE Disciplina: Engenharia de Software 3 Bimestre Aula 2: EVOLUÇÃO DE SOFTWARE Quando termina o desenvolvimento de um software? A maioria das grandes empresas gasta mais na manutenção de sistemas existentes

Leia mais

UML Visão Geral UML Visão geral v.1.1, Novembro de 2001

UML Visão Geral UML Visão geral v.1.1, Novembro de 2001 UML Visão Geral 1 Índice Introdução Diagramas O que é a UML? Diagrama de casos de utilização Valor da UML Diagrama de classes Origens da UML Diagrama de objectos Parceiros da UML Diagrama de componentes

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

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

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

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

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

Tipos para uma Linguagem de Transformação

Tipos para uma Linguagem de Transformação Universidade Federal de Pernambuco Graduação em Ciência da Computação Centro de Informática Proposta de Trabalho de Graduação Tipos para uma Linguagem de Transformação Aluno: Orientador: Alexandra Barreto

Leia mais

Modelos de Gestão de Projetos

Modelos de Gestão de Projetos Modelos de Gestão de Projetos Gestão de Projetos Tradicionais Criados para situações de baixo risco e incertezas, já existe conhecimento sobre o que será desenvolvido, o escopo envolvido e o objetivo proposto

Leia mais

Engenharia de Software

Engenharia de Software Engenharia de Software Design Principles Representando SW em UML OO em C Pattens úteis para embedded Rodrigo M A Almeida Design Principles Design Principles são guias para decompor as funcionalidades e

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

Engenharia da Programação

Engenharia da Programação Engenharia da Programação LEIC 4º ano, 1º Semestre, ano lectivo de 2002-03 2º Exame (o exame é composto por 10 perguntas (1-10) cotadas com 1 valor cada) Data: 8 de Fevereiro de 2003 Duração Exame: 1h30

Leia mais

Reuso de Software Aula Maio 2012

Reuso de Software Aula Maio 2012 Reuso de Software Aula 19 Tópicos da Aula Engenharia de Software baseada em Componentes (CBSE) Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo reuso.software@gmail.com Componentes Modelos de Componentes

Leia mais

Desconstruindo Monolitos. Como construir micro serviços Delphi com agilidade e qualidade

Desconstruindo Monolitos. Como construir micro serviços Delphi com agilidade e qualidade Desconstruindo Monolitos Como construir micro serviços Delphi com agilidade e qualidade Hello World!! Felipe Caputo May Fernandes Desenvolvedor sênior e líder técnico na Softplan, atualmente sou responsável

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

BEHAVIOR DRIVEN DEVELOPMENT BRUNO ROLIM MANSUR

BEHAVIOR DRIVEN DEVELOPMENT BRUNO ROLIM MANSUR BEHAVIOR DRIVEN DEVELOPMENT BRUNO ROLIM MANSUR AGENDA Motivação Processo Tradicional Processo BDD Fazer certo o certo Ciclo BDD Ferramentas Exemplo - Vídeo Rspec Vantagens e Desvantagens Referências MOTIVAÇÃO

Leia mais

Aula 3 - Modelos de Processo - cascata, iterativo e incremental e ágil

Aula 3 - Modelos de Processo - cascata, iterativo e incremental e ágil Aula 3 - Modelos de Processo - cascata, iterativo e incremental e ágil Análise de Sistemas Prof. Filipe Arantes Fernandes filipe.arantes@ifsudestemg.edu.br 2 Vale a pena ver de novo Modelo de Processo:

Leia mais

Desenho e documentação de arquitectura de software e de aplicações empresariais

Desenho e documentação de arquitectura de software e de aplicações empresariais Desenho e documentação de arquitectura de software e de aplicações empresariais João Pascoal Faria Laboratório de Engenharia de Software 10 de Novembro de 2003 1 Definição de arquitectura de software Arquitectura

Leia mais

Programming in C# Conteúdo Programático. Área de formação Plataforma e Tecnologias de Informação

Programming in C# Conteúdo Programático. Área de formação Plataforma e Tecnologias de Informação Destinatários Programadores experientes com algum conhecimento de C, C++, JavaScript, Objective-C, Microsoft Visual Basic, ou Java e conheçam os conceitos de programação orientada por objetos. Nº mínimo

Leia mais

ENGENHARIA DE SOFTWARE

ENGENHARIA DE SOFTWARE ENGENHARIA DE SOFTWARE Teste de Software Verificação e validação Testes de desenvolvimento Testes de release Testes de usuário Desenvolvimento dirigido a testes Kele Teixeira Belloze kelebelloze@gmail.com

Leia mais

Domain Logic Patterns. Pedro Lemos N.º Arquitecturas de Software LEIC

Domain Logic Patterns. Pedro Lemos N.º Arquitecturas de Software LEIC Pedro Lemos N.º 49467 pcml@rnl.ist.utl.pt Arquitecturas de Software 2004 - LEIC Outline da Apresentação 1. Introdução e Motivação de Padrões de Software 2. Padrões Arquitecturais para Aplicações Empresariais

Leia mais

Desenvolvendo aplicações de qualidade com TDD

Desenvolvendo aplicações de qualidade com TDD 23 de junho, 2016 Desenvolvendo aplicações de qualidade com TDD Huge Isabella Silveira Web Engineer @ Huge. Front-End, Back-End, Agile e Integração Contínua. Agenda. 1. Introdução 2. O que é TDD? 3. Por

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

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

Scrum Foundations. Fundamentos de Scrum

Scrum Foundations. Fundamentos de Scrum Scrum Foundations Fundamentos de Scrum Sobre o curso Curso base para as funções de Scrum Developer e Scrum Master Histórico, Estrutura e Funções Scrum Product Owner Scrum Developer Scrum Master Artefatos

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

Teste Unitários com NUnit. Anderson Martiniano da Rocha

Teste Unitários com NUnit. Anderson Martiniano da Rocha Teste Unitários com NUnit Anderson Martiniano da Rocha martiniano@dcc.ufba.br Sumário Conceito de teste unitário Vantagens da utilização de testes unitários NUnit (Características, Atributos, Ferramentas)

Leia mais

Engenharia de Software Experimental 2013.2

Engenharia de Software Experimental 2013.2 Engenharia de Software Experimental 2013.2 Avaliação de introdução de anomalias de software, após aplicação de refatorações automáticas para remoção de code smells Chrystinne Fernandes Sumário Conceitos

Leia mais

Introdução a Testes Automatizados

Introdução a Testes Automatizados Introdução a Testes Automatizados Cursos de Verão 2008 IME/USP www.agilcoop.org.br Paulo Cheque Testes Automatizados Teste de Software: Executar o programa a ser testado com alguma entrada e conferir visualmente

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

Refatoração Melhorando o sistema e preparando pra a Web

Refatoração Melhorando o sistema e preparando pra a Web POO Programação Orientada a Objetos Refatoração Melhorando o sistema e preparando pra a Web Jefferson S. Silva IFET - PI Copyright Jefferson S. Silva Slide 1 Refatoração Uma prática bastante comum e difundida

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 Para Sommerville a arquitetura de sistemas descreve o sistema em termos de um conjunto de unidades

Leia mais

Tracking Acompanhamento de Projetos Ágeis

Tracking Acompanhamento de Projetos Ágeis Tracking Acompanhamento de Projetos Ágeis Curso de Verão 2009 IME/USP www.agilcoop.org.br Mariana Bravo Tracking da Aula Número de perguntas Tempo por slide Número de pessoas dormindo/pescando Progresso

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

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

Trilha Análise de Negócios A Transformação da Análise de Negócios frente às Mudanças de Metodologias Alexandre Xavier / Fernanda Matzenbacher

Trilha Análise de Negócios A Transformação da Análise de Negócios frente às Mudanças de Metodologias Alexandre Xavier / Fernanda Matzenbacher Trilha Análise de Negócios A Transformação da Análise de Negócios frente às Mudanças de Metodologias Alexandre Xavier / Fernanda Matzenbacher Apresentação Alexandre Xavier Product Owner na Dell Atua há

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

Desenvolvimento de Software de Qualidade através de Testes Automatizados

Desenvolvimento de Software de Qualidade através de Testes Automatizados Desenvolvimento de Software de Qualidade através de Testes Automatizados Paulo Cheque (paulocheque@agilcoop.org.br) Cursos de Verão 2010 Licença: Creative Commons: Attribution-Share Alike 3.0 Unported

Leia mais

Teste de Software. Estratégias de Teste. Rosemary Silveira Filgueiras Melo

Teste de Software. Estratégias de Teste. Rosemary Silveira Filgueiras Melo Teste de Software Estratégias de Teste Rosemary Silveira Filgueiras Melo rosesfmelo@hotmail.com 1 Agenda Estratégias de Teste Tipos de Estratégias de Teste 2 Estratégias de teste Define as fases em que

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

October 13, 2016 Web.br hugeinc.com

October 13, 2016 Web.br hugeinc.com October 13, 2016 Web.br hugeinc.com 13 de outubro, 2016 Desenvolvendo aplicações de qualidade com TDD Huge Isabella Silveira Web Engineer @ Huge. Front-End, Back-End, Agile e Integração Contínua. Agenda.

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

especificação por meio de exemplos não é garantia de corretude, mas a experiência mostra que tende a ser melhor do que o estado da prática hoje

especificação por meio de exemplos não é garantia de corretude, mas a experiência mostra que tende a ser melhor do que o estado da prática hoje 1 Introdução Testar é o conjunto de tarefas ou passos executados para verificar se um produto ou serviço atende à sua proposta. Dessa forma, a execução de testes em um programa contribui para a melhoria

Leia mais

Model Driven Development (MDD)

Model Driven Development (MDD) DCC / ICEx / UFMG Model Driven Development (MDD) Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo Motivação para MDD Software é caro Os EUA sozinho investem mais de $250 bilhões em software Nos EUA,

Leia mais

Desenvolvimento Ágil no Governo. Produtos de Software. Luís Dosso. Outubro/2011. Sistemas e aplicações sob medida para as necessidades do seu negócio.

Desenvolvimento Ágil no Governo. Produtos de Software. Luís Dosso. Outubro/2011. Sistemas e aplicações sob medida para as necessidades do seu negócio. Desenvolvimento Ágil no Governo Luís Dosso Outubro/2011 Produtos de Software Sistemas e aplicações sob medida para as necessidades do seu negócio. A Dextra Soluções de Software Projetos de software complexos

Leia mais

Software Testing with Visual Studio 2013 (20497)

Software Testing with Visual Studio 2013 (20497) Software Testing with Visual Studio 2013 (20497) Formato do curso: Presencial Preço: 800 Nível: Intermédio Duração: 12 horas Este curso, mostra a Programadores e Testers como utilizar as ferramentas do

Leia mais

DS: notação. Falta-nos apenas dar exemplos de DSS que contenham a criação de objectos temporários e sua posterior destruição.

DS: notação. Falta-nos apenas dar exemplos de DSS que contenham a criação de objectos temporários e sua posterior destruição. DS: notação Falta-nos apenas dar exemplos de DSS que contenham a criação de objectos temporários e sua posterior destruição. Martins 2008 147 DS: notação Martins 2008 148 DS: notação Mensagem condicional

Leia mais

Diagramas de Use Case Resumo

Diagramas de Use Case Resumo 0 Diagramas de Use Case Resumo Os diagramas de Use Case permitem definir os requisitos funcionais de um sistema: que serviços deve fornecer; a quem os deve fornecer. Notação diagramática facilita o diálogo

Leia mais

Tracking Acompanhamento de Projetos Ágeis

Tracking Acompanhamento de Projetos Ágeis Tracking Acompanhamento de Projetos Ágeis Curso de Verão 2007 IME/USP www.agilcoop.org.br Danilo Sato & Mariana Bravo Tracking da Aula # perguntas Tempo por slide # pessoas dormindo/pescando Progresso

Leia mais

Design Patterns na Geração de Código

Design Patterns na Geração de Código Design Patterns na Geração de Código Guarda, 28 Maio 2003 João Macedo Cunha jcunha@quatrosi.com Design Patterns Software Engenieering Necessidade Conhecimento do Domínio Experiência Contexto Arquitectura

Leia mais

Arquitectura de Sistemas de Software

Arquitectura de Sistemas de Software Arquitectura de Sistemas de Software Ademar Aguiar www.fe.up.pt/~aaguiar ademar.aguiar@fe.up.pt Arquitectura de Sistemas de Software, LEIC/MEI, 2003/2004 1 Frameworks orientadas por objectos Arquitectura

Leia mais