7HVW'ULYHQ'HYHORSPHQW

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

Download "7HVW'ULYHQ'HYHORSPHQW"

Transcrição

1 81,9(56,'$'()('(5$/'25,2*5$1'('268/,167,7872'(,1)250È7,&$ 7HVW'ULYHQ'HYHORSPHQW Otávio Gaspareto REJDVSDUHWR#LQIXIUJVEU,QWURGXomR 7HVWGULYHQGHYHORSPHQW, ou TDD, também conhecido por WHVWILUVWGHYHORSPHQW, é um conjunto de técnicas associadas com ([WUHPH 3URJUDPPLQJ(XP) e métodos ágeis. TDD, no processo XP, é a única maneira de se codificar [1]. Segundo Miller [12], TDD reivindica um desenvolvimento incremental do código que inicia com testes, incluindo freqüentemente testes de regressão. Uma das regras do TDD é a seguinte: se você não consegue escrever um teste para aquilo que você está codificando, então você nem deveria pensar sobre codificar. Esta técnica de desenvolvimento é antiga, mas tornou-se conhecida, após sua adoção em metodologias ágeis de desenvolvimento, tornando assim, um desenvolvimento incremental, onde o código é escrito para passar pelos testes já escritos previamente. Quando uma nova funcionalidade é adicionada ao sistema, isto deve manter a estrutura simples inicial intacta, e pode ser que seja necessário reestruturar algo. Isto, entretanto, pode quebrar alguma outra funcionalidade que já estivesse funcionado. Para garantir que isto não irá acontecer, testes automatizados devem acontecer [6]. Atualmente, TDD tem sido usado em muitas áreas de tecnologia, além do desenvolvimento de software, como também no desenvolvimento de sistemas embarcados [5], onde além do software, é desenvolvido o hardware sob o qual ele irá ser executado. Em algumas universidades, TDD está sendo ensinado junto com as cadeiras básicas de programação, a fim de enfatizar testes como sendo uma prática fundamental para a carreira de informata [13] [15]. Este artigo pretende realizar uma revisão mostrando do que trata a TDD e o que existe de atual nesta disciplina, como técnicas associadas, SDWWHUQV e ferramentas disponíveis. 2TXHp7HVW'ULYHQ'HYHORSPHQW De acordo com Kent Beck [18], um método ágil é comparável ao ato de dirigir um carro: você deve observar a estrada e fazer correções contínuas para se manter no caminho. Neste contexto onde a agilidade é fundamental, o testador seria aquele que ajuda o motorista a chegar com segurança ao seu destino, impedindo que sejam feitas conversões incorretas durante o percurso, evitando que o motorista se perca e fazendo com que ele pare e peça instruções quando necessário. Neste ambiente, destaca-se o TDD, como sendo uma

2 abordagem evolutiva na qual o desenvolvedor escreve o teste antes de escrever o código funcional necessário para satisfazer aquele teste [6]. Segundo Marrero [15], o objetivo principal do TDD é especificação e não validação. Em outras palavras, é uma forma de refletir sobre a modelagem antes de escrever código funcional. Já segundo Baumeister [6], desenvolvimento dirigido por testes é uma técnica de programação onde o principal objetivo é escrever código funcional limpo a partir de um teste que tenha falhado. Como efeito colateral, obtém-se um código fonte bem testado. Após escrever os casos de teste, que devem especificar apenas uma pequena parte da funcionalidade, inicialmente nem devem compilar, pois a funcionalidade ainda nem foi escrita, o desenvolvedor deve implementar o código necessário apenas para passar pelo teste. Feito isto, fica a cargo do desenvolvedor realizar o UHIDFWRU do código, garantindo que continue a forma mais simples de código para satisfazer a determinada funcionalidade [2]. O ciclo, de uma visão macro, poderia ser visto como: escrever poucos casos de teste, implementar o código; escrever poucos casos de teste, implementar o código, e assim por diante. A figura 1 ilustra como é feito o processo de TDD. )LJXUD±&LFORGR7'' O processo XP sugere, que outras disciplinas sejam utilizadas junto com o TDD, como por exemplo, a SDLUSURJUDPPLQJ (programação em par) e o UHIDFWRULQJ. Existem várias questões que são levantadas da adoção do TDD em um projeto. Uma delas é em relação ao que não deve ser testado. Kent Beck [2] diz que devem ser testados condições, ORRSV, operações e polimorfismos, porém, somente aqueles que o próprio desenvolvedor escreveu. Quanto à questão sobre se os testes estão bons, há três pontos que devem ser observados:

3 i) se são necessárias muitas linhas de código criando objetos para uma simples asserção, então há algo de errado; ii) se não é possível encontrar facilmente um lugar comum para o código de inicialização, então existem muitos objetos firmemente associados. iii) testes que quebram inesperadamente sugerem que uma parte da aplicação está afetando outra parte. É necessário projetar até que esta distância seja eliminada, ou quebrando esta conexão ou trazendo as duas partes juntas. Uma vantagem significativa do TDD é que ele possibilita ao desenvolvedor dar pequenos e controlados passos durante a codificação do software [6]. Esta prática é mais aconselhável do que escrever grandes quantidades de código de uma só vez. Alguns motivos para a adoção do TDD, segundo Kaufmann [10], são: i) o desenvolvimento parte do princípio dos objetivos, após isto, é pensado nas possíveis soluções; ii) iii) iv) o entendimento do sistema pode ser feito a partir da leitura dos testes; não é desenvolvido código desnecessário; não existe código sem teste; v) uma vez um teste funcionando, é sabido que ele irá funcionar sempre, servindo também, como teste de regressão; vi) os testes permitem que seja feito UHIDFWRU, pois eles garantirão que as mudanças não alteram o funcionamento do sistema. Segundo Mugridge [7], como conseqüências do uso do TDD, têm-se que o código é escrito de maneira testável isoladamente, pois geralmente, códigos escritos da maneira tradicional, possuem alto acoplamento e uma pobre orientação a objetos. Os testes atuam como uma documentação do sistema, pois eles seriam os primeiros clientes a usarem as classes desenvolvidas, mostrando ao desenvolvedor, o que é necessário fazer. Outros benefícios provindos da adoção do modelo de desenvolvimento TDD foram abordados por Müller [1], no qual, foi feita uma análise do retorno de investimento em se utilizar TDD ao invés de modelos convencionais de desenvolvimento. Nele, obteve-se a qualidade final do código, era superior ao modelo convencional, pois não seria necessário perder uma grande fatia de tempo no final do projeto para a correção de defeitos, pois estes eram capturados e corrigidos ao longo do desenvolvimento do sistema. A figura 2 mostra de forma clara a diferença existente entre os dois modelos.

4 7''HWHVWHVWUDGLFLRQDLV TDD é primariamente uma técnica de programação que garante que o código de um sistema esteja inteiramente testado de forma unitária [20]. Entretanto, há mais teste do que isto, pois ainda é necessário que sejam realizados os tradicionais testes, como testes funcionais, testes de usuário, testes de integração, entre outros. A maioria destes testes podem ser realizados tardiamente ao sistema [20]. Com a realização de testes tradicionais, serão encontrados mais defeitos. Isto ocorre com o TDD; quando um teste falha, o desenvolvedor sabe que necessita resolver o problema [20]. TDD aumenta a credibilidade de que o sistema realmente funciona, e está de acordo com os requerimentos propostos [2]. Um interessante efeito do TDD, é que é possível cobrir 100% do sistema com testes, pois cada linha de código é testada, sendo algo que não é garantido com testes tradicionais. Estudos comprovam que sistemas desenvolvidos utilizando-se de TDD resultam com melhor código e menos defeitos do que sistemas que utilizaram somente testes tradicionais [9] [13]. )HUUDPHQWDV Existem atualmente diversas ferramentas, tanto RSHQVRXUFH como proprietárias, que apóiam o desenvolvimento de sistemas baseados em TDD, dentre elas, podemos citar IUDPHZRUNV para testes unitários, os chamados xunits, entre os quais, o mais famoso é o JUnit, e para a criação do PRFNobjects, como também editores de código que auxiliam no desenvolvimento tanto do código como na execução dos testes. -8QLW JUnit é um IUDPHZRUN implementado inteiramente em Java, seguindo a filosofia do código-livre, que possibilita a criação de suítes de testes [19]. Uma suíte de testes, nada mais é, do que uma grande coleção de classes de testes, onde cada conjunto de classes é responsável por testar uma classe ou uma pequena funcionalidade do código que será colocado em produção [16].

5 Outra facilidade que a ferramenta apresenta é uma interface gráfica que facilita a execução da suíte de teste, e conta também, com uma barra de progresso, mostrando ao usuário o sucesso ou falha dos métodos de testes individualmente, assim que eles são executados. A figura 3 apresenta um teste que foi executado com sucesso. Nota-se que a barra verde está relacionado com o lema do JUnit, que é NHHSWKHEDUJUHHQWRNHHSWKH FRGHFOHDQ [19]. Quando algum teste falhar, a barra troca de cor, e passa de verde para vermelha, alertando assim o desenvolvedor que algo está errado. Esta interface gráfica, também exibe a causa do erro, e mostra informações completas sobre a execução da suíte de testes, como é exibido na figura 4.

6 Com JUnit, um test case é implementado como sendo uma subclasse de junit.framework.testcase. Para realizar o teste de comparação entres os valores esperados com os valores obtidos, são utilizados métodos como assertequals, asserttrue, assertnull, entre outros [14]. O método setup() é invocado para inicializar a suíte de testes antes da execução dos mesmos, enquanto que o método teardown() é usado após finalizar a suíte de testes. Os métodos que irão realizar os testes no sistema devem iniciar com a palavra test, pois é utilizada a reflexão do Java para a chamada dos mesmos; não devem retornar nenhum valor, ou seja, serem métodos void; e não devem receber nenhum parâmetro. 0RFN2EMHFWV 0RFN2EMHFWV são utilizados com o propósito de escrever testes como se tivéssemos tudo o que realmente necessitamos do ambiente [11]. Este processo apresenta ao desenvolvedor o que o ambiente deve prover para o desenvolvimento do sistema. Ao se testar partes isoladas do sistema, como apenas um objeto, por exemplo, o programador deve levar em consideração a interação deste objeto em questão com outros objetos. A figura 5 apresenta como é realizado um teste usando-se PRFNREMHWFV. No caso, têm-se um objeto A, que necessita interar-se com um serviço que é disponibilizado pelo objeto S, mas como ainda não se tem uma implementação de S, ou este será implementado por terceiros, realiza-se o PRFN do objeto S, forçando assim, o uso de interfaces para o desenvolvimento.

7 Um conhecido IUDPHZRUN utilizado para o desenvolvimento de PRFN REMHFWV é o jmock[11], que assim como o JUnit, é escrito em Java. O ponto de entrada principal do jmock, é a classe MockObjectTestCase, que faz uso da classe TestCase do JUnit. Os PRFN objetos são criados a partir do método mock(...), o qual recebe como parâmetro um objeto Class representando um tipo de interface, e retorna um objeto Mock, que imlpementa este interface. 3DWWHUQVSDUD7'' Existem inúmeros padrões para várias atividades na área de informática, entre eles, os mais conhecidos são os GHVLJQSDWWHUQV, que são utilizados na construção de sistemas. Para a disciplina de TDD não é diferente, e existem alguns padrões, que no âmbito geral, tornam-se mais dicas sobre o que testar em um sistema. 7HVWHVLVRODGRV A execução de um teste não pode afetar outro teste. Segundo Beck [2], os testes devem ser desenvolvidos de maneira que sejam rápidos de serem executados, assim, eles podem ser rodados a todo o momento, não necessitando de um momento específico de execução de testes. Dessa forma, os testes isolados servem para que uma execução de um determinado teste, não interfira na execução do teste seguinte, não necessitando assim, iniciar e parar o sistema assim que cada teste é executado. /LVWDGHWHVWHV De acordo com Beck [2], antes de iniciar a codificação, devem ser feita uma lista com todos os testes que o desenvolvedor acredita que será necessário escrever. Assim, quando o desenvolvedor sentar para começar a programar, ele terá um guia do que é necessário fazer, e não corre o risco de esquecer algo. 7HVWHSULPHLUR Os testes devem ser escritos antes do código que será testado [2]. Os testes servem para dar um IHHGEDFN rápido do desenvolvimento do sistema. Assim que o tempo passa, mais estressado fica o desenvolvedor, e, portanto, caso os testes sejam deixados para o final, o desenvolvedor irá aumentar o nível de estresse, diminuindo a quantidade de testes no sistema, e impactando na qualidade do produto final.

8 'DGRVGHWHVWH Segundo Beck [2], devem ser utilizados dados que tornem os testes fáceis de ler e seguir. Caso o sistema tenha múltiplas entradas, então, devem existir testes que abranjam estas entradas. Porém, é desnecessário ter uma lista com dez entradas, se com apenas três, cobrem-se todas as alternativas [2]. 'DGRVHYLGHQWHV Devem ser incluídos nos testes os dados esperados e o resultado atual, e tentar exibir um relacionamento aparente entre eles, pois os testes não são escritos apenas para o computador, e sim, para que futuros desenvolvedore possam entender o código como sendo uma parte da documentação do sistema [2]. 'LVFLSOLQDVUHODFLRQDGDVGR;3 Mesmo TDD sendo uma disciplina do XP [18], esta não se encontra isolada no universo do ([WUHPH 3URJUDPPLQJ. Abaixo, uma lista de disciplinas que são complementares e/ou completadas usando-se o TDD [2]: 3URJUDPDomR HP SDUHV os testes escritos no TDD são excelentes peças de conversação quando se está trabalhando de forma pareada. A programação pareada melhora o TDD no momento em que o programador que está codificando o código está cansado, assim, o outro pra ficaria se encarregaria de codificar;,qwhjudomr FRQWtQXD testes são um excelente recurso para esta disciplina, permitindo que sempre seja feita uma integração. Os ciclos são definidos em períodos curtos, algo entre quinze e trinta minutos, ao invés de uma ou duas horas de codificação; 'HVLJQ VLPSOHV codificando apenas o necessário para os testes, e removendo código duplicado, automaticamente obtém-se um design adaptado para a necessidade atual. 5HIDFWRULQJ a regra de remoção de código duplicado é outra maneira de se fazer UHIDFWRULQJ. Mas os testes conferem ao desenvolvedor, que grandes mudanças feitas no sistema, não alteraram o funcionamento do mesmo. Quanto mais seguro de que mudanças feitas não alteram o sistema, mais agressivo se torna o UHIDFWRULQJ aplicado pelo desenvolvedor. (QWUHJD FRQWtQXD com testes realizados no sistema, têm-se mais confiança na entrega de partes do sistema, e o código vai para produção mais rápido.

9 &RQVLGHUDo}HVILQDLV Diante das possibilidades existentes atualmente para o desenvolvimento de sistemas, nota-se que TDD torna-se uma alternativa viável para as organizações utilizarem em seus processos de desenvolvimento iterativo. 5HIHUrQFLDV [1] M. Müller, F. Padberg, About the Return on Investment of Test-Driven Development. Disponível em muellerm/publications/edser03.pdf. [2] K. Beck, Test-Driven Development By Example. Addison Wesley, Estados Unidos [3] L. Crispin, T. House, The Need for Speed: Automatic Acceptance Testing in an Extreme Programming Environment. Tensegrent, EUA [4] H. Heinecke, C. Noak, Integrating Extreme Programming and Contracts. Disponível em [5] J. Grenning, Progress before hardware. Disponível em ogressbeforehardware [6] H. Baumeister, M. Wirsing, Applying Test-First Programming and Iterative Development in Building an E-Business Application. Disponível em projekte/caruso/ssgrr2002w.pdf [7] R. Mugridge, Test Driven Development and the Scientific Method. Disponivel em 2003/files/P6Paper.pd [8] D. Saff, M. Ernst, An Experimental Evaluation of Continuous Testing During Development. Disponivel em pubs/ct-user-studyissta2004.pdf [9] B. George, L. Williams, An Initial Investigation of Test Driven Development In Industry. Disponivel em

10 [10] R. Kaufmann, D. Janzen, Implications of Test-Driven Development A Pilot Study. Disponivel em kaufmann.pdf [11] S. Freeman, T. Mackinnon, N. Pryce, Mock Roles, Not Objects. Disponivel em [12] K. W. Miller, Test Driven Development on the Cheap: Text Files and Explicit Scaffolding. Disponivel em 2004/augustmailing2004final.doc [13] C. G. Jones, Test-Driven Development Goes to School. Disponível em dl=acm&coll=guide&cfid= &cftoken= [14] M. Olan, Unit Testing: Test Early, Test Often. Disponivel em [15] W. Marrero, A. Settle, Testing First: Emphasizing Testing in Early Programming Courses. Disponivel em UIDE&CFID= &CFTOKEN= [16] J. Langr, Evolution of Test and Code Via Test-First Design. Disponivel em [17] Wikipedia. Disponível em [18] K. Beck, Extreme Programming Explained. Addison Wesley, Estados Unidos [19] JUnit. Disponível em: [20] Agile Data. Disponível em

Conceitos e Benefícios do Test Driven Development

Conceitos e Benefícios do Test Driven Development Conceitos e Benefícios do Test Driven Development Eduardo N. Borges Instituto de Informática Universidade Federal do Rio Grande do Sul (UFRGS) Caixa Postal 15.064 91.501-970 Porto Alegre RS Brazil enborges@inf.ufrgs.br

Leia mais

Introdução ao TDD. Dionatan Moura. #guma10anos Abril de 2014. about.me/dionatanmoura

Introdução ao TDD. Dionatan Moura. #guma10anos Abril de 2014. about.me/dionatanmoura Introdução ao TDD #guma10anos Abril de 2014 Dionatan Moura about.me/dionatanmoura Introdução ao TDD Extreme Programming TDD Refatoração xunit Baby Steps Clean Code Patterns para TDD Red Bar Test Green

Leia mais

O CONCEITO DE TDD NO DESENVOLVIMENTO DE SOFTWARE

O CONCEITO DE TDD NO DESENVOLVIMENTO DE SOFTWARE O CONCEITO DE TDD NO DESENVOLVIMENTO DE SOFTWARE Renan Leme Nazário, Ricardo Rufino Universidade Paranaense (Unipar) Paranavaí PR - Brasil renazariorln@gmail.com, ricardo@unipar.br Resumo. Este artigo

Leia mais

TESTE DE SOFTWARE COM XP. Isac Aguiar isacaguiar.com.br isacaguiar@gmail.com

TESTE DE SOFTWARE COM XP. Isac Aguiar isacaguiar.com.br isacaguiar@gmail.com TESTE DE SOFTWARE COM XP Isac Aguiar isacaguiar.com.br isacaguiar@gmail.com Contexto Inúmeros processos de software Evolução das formas/metodologias de desenvolvimento de software Dificuldades encontradas

Leia mais

Trilha Agile TDD e 20 coisas que você precisa saber

Trilha Agile TDD e 20 coisas que você precisa saber Trilha Agile TDD e 20 coisas que você precisa saber Camilo Lopes Quem sou eu?! Trabalha com desenvolvimento de software desde 2003. Atualmente Desenvolvedor de Software na ADP Labs, escritor do livro "Guia

Leia mais

Ferramenta para Inclusão do Código de Testes na Documentação das Classes

Ferramenta para Inclusão do Código de Testes na Documentação das Classes Ferramenta para Inclusão do Código de Testes na Documentação das Classes Herbert Vieira 1, Jolienai Viegas 1, Eduardo Guerra 1, Fábio Silveira 2, Clovis Fernandes 1 1 Instituto Tecnológico de Aeronáutica

Leia mais

Desenvolvimento Guiado por Testes

Desenvolvimento Guiado por Testes Desenvolvimento Guiado por Testes Test-Driven Development (TDD) Guilherme Chapiewski http://gc.blog.br gc@mandic.com.br O que é TDD? Regras fundamentais do TDD: Escreva o teste da implementação ANTES de

Leia mais

Teste de software. Definição

Teste de software. Definição Definição O teste é destinado a mostrar que um programa faz o que é proposto a fazer e para descobrir os defeitos do programa antes do uso. Quando se testa o software, o programa é executado usando dados

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

UTILIZAÇÃO DA METODOLOGIA TDD PARA DESENVOLVIMENTO DE SOFTWARE

UTILIZAÇÃO DA METODOLOGIA TDD PARA DESENVOLVIMENTO DE SOFTWARE FUNDAÇÃO DE ENSINO EURÍPIDES SOARES DA ROCHA CENTRO UNIVERSITÁRIO EURÍPIDES DE MARÍLIA UNIVEM CURSO DE CIÊNCIA DA COMPUTAÇÃO ALLAN RETT FERREIRA UTILIZAÇÃO DA METODOLOGIA TDD PARA DESENVOLVIMENTO DE SOFTWARE

Leia mais

DOMAIN-DRIVEN DESIGN E TEST-DRIVEN DEVELOPMENT

DOMAIN-DRIVEN DESIGN E TEST-DRIVEN DEVELOPMENT DOMAIN-DRIVEN DESIGN E TEST-DRIVEN DEVELOPMENT Jaqueline Rissá Franco email: jaquerifr@gmail.com Karla Marturelli Mattos Luciano Mathias Doll João Almeida Resumo: Este artigo mostra novas abordagens na

Leia mais

TDD-Test Driven Development

TDD-Test Driven Development CENTRO UNIVERSITÁRIO UNA TDD-Test Driven Development Desenvolvimento guiado por testes Pós-graduação em Engenharia de Software Centrada em Métodos Ágeis TIME CAVE!RA Bruno Eustáquio Andrade Juliana Villas

Leia mais

Metodologias Ágeis de Desenvolvimento de Software

Metodologias Ágeis de Desenvolvimento de Software "Antes de imprimir pense em sua responsabilidade e compromisso com o MEIO AMBIENTE." Engenharia de Software de Desenvolvimento de Software Givanaldo Rocha de Souza givanaldo.rocha@ifrn.edu.br http://docente.ifrn.edu.br/givanaldorocha

Leia mais

Manifesto Ágil e as Metodologias Ágeis (XP e SCRUM)

Manifesto Ágil e as Metodologias Ágeis (XP e SCRUM) Programação Extrema Manifesto Ágil e as Metodologias Ágeis (XP e SCRUM) Prof. Mauro Lopes Programação Extrema Prof. Mauro Lopes 1-31 45 Manifesto Ágil Formação da Aliança Ágil Manifesto Ágil: Propósito

Leia mais

Jonas de Souza H2W SYSTEMS

Jonas de Souza H2W SYSTEMS Jonas de Souza H2W SYSTEMS 1 Tecnólogo em Informática Fatec Jundiaí MBA em Gerenciamento de Projetos FGV Project Management Professional PMI Mestrando em Tecnologia UNICAMP Metodologia de apoio à aquisição

Leia mais

Evolução do Design através de Testes e o TDD

Evolução do Design através de Testes e o TDD c a p a Lucas Souza (lucas.souza@caelum.com.br): é bacharel em Engenharia da Computação pela Universidade de Ribeirão Preto, possui a certificação SCJP e trabalha com Java há 4 anos. Atualmente é desenvolvedor

Leia mais

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 06 PROFª BRUNO CALEGARO

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 06 PROFª BRUNO CALEGARO UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 06 PROFª BRUNO CALEGARO Santa Maria, 27 de Setembro de 2013. Revisão aula anterior Desenvolvimento Ágil de Software Desenvolvimento e entrega

Leia mais

Processo de Desenvolvimento de Software. Unidade V Modelagem de PDS. Luiz Leão luizleao@gmail.com http://www.luizleao.com

Processo de Desenvolvimento de Software. Unidade V Modelagem de PDS. Luiz Leão luizleao@gmail.com http://www.luizleao.com Processo de Desenvolvimento de Software Luiz Leão luizleao@gmail.com http://www.luizleao.com Conteúdo Programático desta aula Modelo Cascata (Waterfall) ou TOP DOWN. Modelo Iterativo. Metodologia Ágil.

Leia mais

Engenharia de Software II

Engenharia de Software II Engenharia de Software II Aula 5 http://www.ic.uff.br/~bianca/engsoft2/ Aula 5-05/05/2006 1 Dúvidas da aula passada RUP (Rational Unified Process) é uma ferramenta ou um processo? Resposta: os dois. O

Leia mais

Prof. Me. Marcos Echevarria

Prof. Me. Marcos Echevarria Prof. Me. Marcos Echevarria Nas décadas de 80 e 90 a visão geral sobre a melhor maneira de desenvolver software era seguir um cuidadoso planejamento para garantir uma boa qualidade; Esse cenário era aplicável

Leia mais

UMA ABORDAGEM SOBRE TESTES AUTOMATIZADO DE SOFTWARES EM AMBIENTES DE DESENVOLVIMENTO

UMA ABORDAGEM SOBRE TESTES AUTOMATIZADO DE SOFTWARES EM AMBIENTES DE DESENVOLVIMENTO UMA ABORDAGEM SOBRE TESTES AUTOMATIZADO DE SOFTWARES EM AMBIENTES DE DESENVOLVIMENTO Robson L. Nascimento 1, Késsia R. C. Marchi¹ 1 Universidade Paranaense (UNIPAR) Paranavaí-PR-Brasil robsonluisn@yahoo.com.br,

Leia mais

XP extreme Programming, uma metodologia ágil para desenvolvimento de software. Equipe WEB Cercomp web@cercomp.ufg.br

XP extreme Programming, uma metodologia ágil para desenvolvimento de software. Equipe WEB Cercomp web@cercomp.ufg.br XP extreme Programming, uma metodologia ágil para desenvolvimento de software. Equipe WEB Cercomp web@cercomp.ufg.br Introdução Criada por Kent Baeck em 1996 durante o projeto Daimler Chrysler. O sucesso

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

Casos de Teste de Uso: uma alternativa de especificação para o desenvolvimento dirigido por testes

Casos de Teste de Uso: uma alternativa de especificação para o desenvolvimento dirigido por testes Casos de Teste de Uso: uma alternativa de especificação para o desenvolvimento dirigido por testes Simone Tejo Salgado Beato Instituto de Pesquisas Tecnológicas de São Paulo SP Brasil sisalgado@uol.com.br

Leia mais

Capítulo 1. Extreme Programming: visão geral

Capítulo 1. Extreme Programming: visão geral Capítulo 1 Extreme Programming: visão geral Extreme Programming, ou XP, é um processo de desenvolvimento de software voltado para: Projetos cujos requisitos são vagos e mudam com freqüência; Desenvolvimento

Leia mais

Programação Orientada a Testes Rodrigo Rebouças de Almeida

Programação Orientada a Testes Rodrigo Rebouças de Almeida Programação Orientada a Testes Rodrigo Rebouças de Almeida http://rodrigor.com rodrigor@rodrigor.com Agenda Nossos objetivos hoje: Entender o que é programação orientada a testes Entender a sua função

Leia mais

Qualidade de Software

Qualidade de Software Qualidade de Software O software é algo abstrato, pois são as instruções que quando executadas atingem o propósito desejado no sistema computacional. (Algoritmo). As principais características são: Complexidade:

Leia mais

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

A Evolução de XP segundo Kent Beck Parte 2 A Evolução de XP segundo Kent Beck Parte 2 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

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

TESTES AUTOMATIZADOS COM JUNITE MOCKITO

TESTES AUTOMATIZADOS COM JUNITE MOCKITO TESTES AUTOMATIZADOS COM JUNITE MOCKITO Jaime William Dias 12, Dener Barranco 1, Douglas Delapria 1 1 Universidade Paranaense (Unipar) 2 Universidade Estadual de Maringá (UEM) Paranavaí PR Brasil dener_barranco@hotmail.com,

Leia mais

METODOLOGIA LEAN DE DESENVOLVIMENTO DE SOFTWARE: UMA VISÃO GERAL

METODOLOGIA LEAN DE DESENVOLVIMENTO DE SOFTWARE: UMA VISÃO GERAL METODOLOGIA LEAN DE DESENVOLVIMENTO DE SOFTWARE: UMA VISÃO GERAL Guilherme Vota Pereira guivotap@hotmail.com Prof. Pablo Schoeffel, Engenharia de Software Aplicada RESUMO: Este artigo irá efetuar uma abordagem

Leia mais

[Agile] Scrum + XP. Wagner Roberto dos Santos. Agilidade extrema. Arquiteto Java EE / Scrum Master wrsconsulting@gmail.com. Globalcode open4education

[Agile] Scrum + XP. Wagner Roberto dos Santos. Agilidade extrema. Arquiteto Java EE / Scrum Master wrsconsulting@gmail.com. Globalcode open4education [Agile] Scrum + XP Agilidade extrema Wagner Roberto dos Santos Arquiteto Java EE / Scrum Master wrsconsulting@gmail.com 1 Apresentação Arquiteto Java EE / Scrum Master Lead Editor da Queue Arquitetura

Leia mais

Desenvolvimento ágil de software

Desenvolvimento ágil de software Desenvolvimento ágil de software Desenvolvimento ágil de software (do inglês Agile software development) ou Método ágil é um conjunto de metodologias de desenvolvimento de software. O desenvolvimento ágil,

Leia mais

MÓDULO 9 METODOLOGIAS DE DESENVOLVIMENTO DE SISTEMAS

MÓDULO 9 METODOLOGIAS DE DESENVOLVIMENTO DE SISTEMAS MÓDULO 9 METODOLOGIAS DE DESENVOLVIMENTO DE SISTEMAS O termo metodologia não possui uma definição amplamente aceita, sendo entendido na maioria das vezes como um conjunto de passos e procedimentos que

Leia mais

Sistemas de Informação I

Sistemas de Informação I + Sistemas de Informação I Extreme Programming I Ricardo de Sousa Britto rbritto@ufpi.edu.br Você gostaria de trabalhar assim? Análise de Requisitos Longe de acordo Requerimentos Complexo Anarquia Perto

Leia mais

Métodos Ágeis para Desenvolvimento de Software Livre

Métodos Ágeis para Desenvolvimento de Software Livre Métodos Ágeis para Desenvolvimento de Software Livre Dionatan Moura Jamile Alves Porto Alegre, 09 de julho de 2015 Quem somos? Dionatan Moura Jamile Alves Ágil e Software Livre? Métodos Ágeis Manifesto

Leia mais

MÉTODO ÁGIL XP (EXTREME PROGRAMMING)

MÉTODO ÁGIL XP (EXTREME PROGRAMMING) MÉTODO ÁGIL XP (EXTREME PROGRAMMING) Luciano Malaquias de Souza* * RESUMO: Como o emprego dos métodos para desenvolvimento de software tem se tornado mais popular, existe uma grande demanda, pela industria,

Leia mais

Aula 06 Introdução à Teste de Módulos II e Exercícios. Alessandro Garcia LES/DI/PUC-Rio Março 2014

Aula 06 Introdução à Teste de Módulos II e Exercícios. Alessandro Garcia LES/DI/PUC-Rio Março 2014 Aula 06 Introdução à Teste de Módulos II e Exercícios Alessandro Garcia LES/DI/PUC-Rio Março 2014 Princípios Discutidos até aqui Cada módulo deveria implementar uma única abstração similarmente: cada função

Leia mais

O que é software? Software e Engenharia de Software. O que é software? Tipos de Sistemas de Software. A Evolução do Software

O que é software? Software e Engenharia de Software. O que é software? Tipos de Sistemas de Software. A Evolução do Software O que é software? Software e Engenharia de Software Programas de computador Entidade abstrata. Ferramentas (mecanismos) pelas quais: exploramos os recursos do hardware. executamos determinadas tarefas

Leia mais

Engenharia de Software I

Engenharia de Software I Engenharia de Software I Curso de Sistemas de Informação Karla Donato Fook karladf@ifma.edu.br DESU / DAI 2015 Desenvolvimento Rápido de Software 2 1 Para quê o Desenvolvimento Rápido de Software? Os negócios

Leia mais

Evolução de Software e Refatoração

Evolução de Software e Refatoração Evolução de Software e Refatoração Mudança de software Mudança de software é inevitável Novos requisitos surgem quando o software é usado; O ambiente de negócio muda; Erros devem ser reparados; Novos computadores

Leia mais

DISCIPLINA ENGENHARIA DE SOFTWARE Aula 03 Processo Unificado e Desenvolvimento Ágil. Profª Esp.: Maysa de Moura Gonzaga

DISCIPLINA ENGENHARIA DE SOFTWARE Aula 03 Processo Unificado e Desenvolvimento Ágil. Profª Esp.: Maysa de Moura Gonzaga DISCIPLINA ENGENHARIA DE SOFTWARE Aula 03 Processo Unificado e Desenvolvimento Ágil Profª Esp.: Maysa de Moura Gonzaga 2º Semestre / 2011 O Processo Unificado dos autores Ivar Jacobson, Grady Booch e James

Leia mais

Metodologias de Desenvolvimento de Sistemas. Analise de Sistemas I UNIPAC Rodrigo Videschi

Metodologias de Desenvolvimento de Sistemas. Analise de Sistemas I UNIPAC Rodrigo Videschi Metodologias de Desenvolvimento de Sistemas Analise de Sistemas I UNIPAC Rodrigo Videschi Histórico Uso de Metodologias Histórico Uso de Metodologias Era da Pré-Metodologia 1960-1970 Era da Metodologia

Leia mais

Melhoria no Desenvolvimento Ágil com Implantação de Processo de Integração Contínua Multiplataforma para Java e.net. Hudson

Melhoria no Desenvolvimento Ágil com Implantação de Processo de Integração Contínua Multiplataforma para Java e.net. Hudson QUALIDADE Simpósio Brasileiro de Qualidade de Software - SBQS Instituto Nokia de Tecnologia Unit Test Sucess Bug INdT Melhoria no Desenvolvimento Ágil com Implantação de Processo de Integração Contínua

Leia mais

Ágil. Rápido. Métodos Ágeis em Engenharia de Software. Introdução. Thiago do Nascimento Ferreira. Introdução. Introdução. Introdução.

Ágil. Rápido. Métodos Ágeis em Engenharia de Software. Introdução. Thiago do Nascimento Ferreira. Introdução. Introdução. Introdução. Introdução Métodos Ágeis em Engenharia de Software Thiago do Nascimento Ferreira Desenvolvimento de software é imprevisível e complicado; Empresas operam em ambiente global com mudanças rápidas; Reconhecer

Leia mais

Testes Orientação Visão Conceitual em Testes Versão 0.3

Testes Orientação Visão Conceitual em Testes Versão 0.3 Testes Versão 0.3 ori_visao_conceitual_testes.odt 1 de 10 Histórico de Revisões Data Versão Descrição Autor 23/04/2010 0.1 Versão inicial Fernanda Monteiro 07/10/10 0.2 Verificação ortográfica Ana Eckel

Leia mais

Utilizando Testes de Unidade no Ciclo de Desenvolvimento de Software para Processamento e Análise de Imagens

Utilizando Testes de Unidade no Ciclo de Desenvolvimento de Software para Processamento e Análise de Imagens RESI Revista Eletrônica de Sistemas de Informação, Edição 10, nº 1, 2007. 1 Utilizando Testes de Unidade no Ciclo de Desenvolvimento de Software para Processamento e Análise de Imagens Sabrina Borba Dalcin,

Leia mais

Dirigindo o Desenvolvimento com Testes: ATDD e TDD

Dirigindo o Desenvolvimento com Testes: ATDD e TDD Dirigindo o Desenvolvimento com Testes: ATDD e TDD Uma versão atualizada dos materiais submetidos para minhas apresentações no STANZ 2008 e STARWest 2008 Elisabeth Hendrickson, Quality Tree Software, Inc.

Leia mais

De acordo com [Clark2000] estas são algumas vantagens de se utilizar JUnit:

De acordo com [Clark2000] estas são algumas vantagens de se utilizar JUnit: JUNIT UMA SOLUÇÃO JAVA PARA A REALIZAÇÃO DE TESTES DE PROGRAMAÇÃO Paulo Roberto Furtado Serra 1 paulo-serra@ig.com.br Antônio de Barros Serra 2 antonio.de_barros_serra@int-evry.fr Hélio Augusto Sabóia

Leia mais

Introdução aos Testes Automatizados

Introdução aos Testes Automatizados Introdução aos Testes Automatizados Paulo Cheque (paulocheque@agilcoop.org.br) Cursos de Verão 2010 Licença: Creative Commons: Attribution Share Alike 3.0 Unported http://creativecommons.org/licenses/by

Leia mais

Desenvolvimento Ágil de Software

Desenvolvimento Ágil de Software Desenvolvimento Ágil de Software Métodos ágeis (Sommerville) As empresas operam em um ambiente global, com mudanças rápidas. Softwares fazem parte de quase todas as operações de negócios. 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

UTILIZAÇÃO DAS METODOLOGIAS ÁGEIS XP E SCRUM PARA O DESENVOLVIMENTO RÁPIDO DE APLICAÇÕES

UTILIZAÇÃO DAS METODOLOGIAS ÁGEIS XP E SCRUM PARA O DESENVOLVIMENTO RÁPIDO DE APLICAÇÕES UTILIZAÇÃO DAS METODOLOGIAS ÁGEIS XP E SCRUM PARA O DESENVOLVIMENTO RÁPIDO DE APLICAÇÕES Marcelo Augusto Lima Painka¹, Késsia Rita da Costa Marchi¹ ¹Universidade Paranaense (Unipar) Paranavaí PR Brasil

Leia mais

REVISÃO ENGENHARIA DO SOFTWARE. Isac Aguiar isacaguiar.com.br isacaguiar@gmail.com

REVISÃO ENGENHARIA DO SOFTWARE. Isac Aguiar isacaguiar.com.br isacaguiar@gmail.com REVISÃO ENGENHARIA DO SOFTWARE Isac Aguiar isacaguiar.com.br isacaguiar@gmail.com Software Sequencia de Instruções a serem seguidas ou executadas Dados e rotinas desenvolvidos por computadores Programas

Leia mais

Engenharia de Software Introdução. Ricardo Argenton Ramos UNIVASF Engenharia de Software I - Aula 1

Engenharia de Software Introdução. Ricardo Argenton Ramos UNIVASF Engenharia de Software I - Aula 1 Engenharia de Software Introdução Ricardo Argenton Ramos UNIVASF Engenharia de Software I - Aula 1 Tópicos Apresentação da Disciplina A importância do Software Software Aplicações de Software Paradigmas

Leia mais

Engenharia de Software

Engenharia de Software Engenharia de Software Testes de Software Prof. MSc. Edilberto Silva prof.edilberto.silva@gmail.com http://www.edilms.eti.br Introdução Teste é um conjunto de atividades que pode ser planejado antecipadamente

Leia mais

Processo de Desenvolvimento de Software. Engenharia de Software. nelmarpg@yahoo.com.br

Processo de Desenvolvimento de Software. Engenharia de Software. nelmarpg@yahoo.com.br Processo de Desenvolvimento de Software nelmarpg@yahoo.com.br 1 Objetivos Contextualizar Análise e Projeto de software dentro de uma metodologia de desenvolvimento (um processo de desenvolvimento de software)

Leia mais

Engenharia de Software Introdução. Ricardo Argenton Ramos UNIVASF Engenharia de Software I - Aula 1

Engenharia de Software Introdução. Ricardo Argenton Ramos UNIVASF Engenharia de Software I - Aula 1 Engenharia de Software Introdução Ricardo Argenton Ramos UNIVASF Engenharia de Software I - Aula 1 Tópicos Apresentação da Disciplina A importância do Software Software Aplicações de Software Paradigmas

Leia mais

1. Introdução. fymoribe@gmail.com

1. Introdução. fymoribe@gmail.com Aplicação em cenário empresarial da utilização das metodologias de teste de software Fábio Yoshiaki Moribe¹ ¹ Departamento de Informática - Universidade Estadual de Maringá (UEM) fymoribe@gmail.com Abstract.

Leia mais

Engenharia de Software I CURSO DE INFORMÁTICA. 3O SEMESTRE PROF.: LUIS AUGUSTO MACHADO MORETTO. ESP.

Engenharia de Software I CURSO DE INFORMÁTICA. 3O SEMESTRE PROF.: LUIS AUGUSTO MACHADO MORETTO. ESP. Engenharia de Software I CURSO DE INFORMÁTICA. 3O SEMESTRE PROF.: LUIS AUGUSTO MACHADO MORETTO. ESP. Na aula passada... Atividade em grupo Intro Eng. Software Conhecimento, Problemas Video habilidades

Leia mais

SIPTEST System Intelligent Process Testing. Abordagens de teste para metodologias de desenvolvimento específicas.

SIPTEST System Intelligent Process Testing. Abordagens de teste para metodologias de desenvolvimento específicas. SIPTEST System Intelligent Process Testing. Abordagens de teste para metodologias de desenvolvimento específicas. SIPTEST - System Intelligent Testing Link Consulting,SA Pág. 0 de 8 Índice 1 Introdução...

Leia mais

04/08/2012 MODELAGEM DE DADOS. PROF. RAFAEL DIAS RIBEIRO, M.Sc. @ribeirord MODELAGEM DE DADOS. Aula 2. Prof. Rafael Dias Ribeiro. M.Sc.

04/08/2012 MODELAGEM DE DADOS. PROF. RAFAEL DIAS RIBEIRO, M.Sc. @ribeirord MODELAGEM DE DADOS. Aula 2. Prof. Rafael Dias Ribeiro. M.Sc. MODELAGEM DE DADOS PROF. RAFAEL DIAS RIBEIRO, M.Sc. @ribeirord MODELAGEM DE DADOS Aula 2 Prof. Rafael Dias Ribeiro. M.Sc. @ribeirord 1 Objetivos: Revisão sobre Banco de Dados e SGBDs Aprender as principais

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

MOCKITO - - Alexandre Gazola (alexandregazola@gmail.com / Twitter: @alexandregazola)

MOCKITO - - Alexandre Gazola (alexandregazola@gmail.com / Twitter: @alexandregazola) cinto de utilidades mocks_ CRIAÇÃO DE MOCKS COM MOCKITO No último artigo desta coluna, falamos de uma forma geral sobre diversas ferramentas para suporte a testes automatizados. Dentre as ferramentas mencionadas,

Leia mais

Com metodologias de desenvolvimento

Com metodologias de desenvolvimento Sociedade demanda grande quantidade de sistemas/aplicações software complexo, sistemas distribuídos, heterogêneos requisitos mutantes (todo ano, todo mês, todo dia) Mas, infelizmente, não há gente suficiente

Leia mais

Testes de Software. Anne Caroline O. Rocha TesterCertified BSTQB NTI UFPB

Testes de Software. Anne Caroline O. Rocha TesterCertified BSTQB NTI UFPB Testes de Software 1 AULA 01 INTRODUÇÃO A TESTES DE SOFTWARE Anne Caroline O. Rocha TesterCertified BSTQB NTI UFPB Conteúdo Programático do Curso Introdução a Testes de Software Técnicas de Testes de Software

Leia mais

Pesquisa sobre código limpo (clean code) 09-05-2014 Por: Tarik Boschi http://boschi.com.br

Pesquisa sobre código limpo (clean code) 09-05-2014 Por: Tarik Boschi http://boschi.com.br Pesquisa sobre código limpo (clean code) 09-05-2014 Por: Tarik Boschi http://boschi.com.br 1. QUESTIONÁRIO O presente questionário foi disponibilizado para o levantamento sobre práticas de código limpo

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

Leia mais

Resumo artigo Agile Modeling- Overview

Resumo artigo Agile Modeling- Overview Universidade Federal de Santa Catarina Centro Tecnológico Disciplina: Projetos I Aluno: Diogo Ludvig 0313812-7 Resumo artigo Agile Modeling- Overview Este trabalho se refere ao resumo do artigo Agile Modeling,

Leia mais

TDD depois do mainstream. E agora?

TDD depois do mainstream. E agora? TDD depois do mainstream. E agora? Mauricio Aniche mauricio.aniche@caelum.com.br www.aniche.com.br Nós amamos métodos ágeis (e TDD mais ainda)! Na academia... Mas tudo faz sentido... Será que vale a pena

Leia mais

Processos de Desenvolvimento de Software

Processos de Desenvolvimento de Software Processos de Desenvolvimento de Software Gerenciamento de Projetos Mauro Lopes Carvalho Silva Professor EBTT DAI Departamento de Informática Campus Monte Castelo Instituto Federal de Educação Ciência e

Leia mais

SCRUM. Fabrício Sousa fabbricio7@yahoo.com.br

SCRUM. Fabrício Sousa fabbricio7@yahoo.com.br SCRUM Fabrício Sousa fabbricio7@yahoo.com.br Introdução 2 2001 Encontro onde profissionais e acadêmicos da área de desenvolvimento de software de mostraram seu descontentamento com a maneira com que os

Leia mais

O evento não fará uso do vídeo (webcam), somente slides e áudio. Se necessário, ajuste o idioma da sala na barra de ferramentas superior

O evento não fará uso do vídeo (webcam), somente slides e áudio. Se necessário, ajuste o idioma da sala na barra de ferramentas superior 1 Orientações iniciais Dê preferência ao uso de uma conexão de banda larga O evento não fará uso do vídeo (webcam), somente slides e áudio Se necessário, ajuste o idioma da sala na barra de ferramentas

Leia mais

Mini-Curso Agile Testing

Mini-Curso Agile Testing Mini-Curso Agile Testing Como funciona na prática? contato@qualister.com.br (48) 3285-5615 twitter.com/qualister facebook.com/qualister linkedin.com/company/qualister Instrutor Elias Nogueira

Leia mais

METODOLOGIA ÁGIL. Lílian Simão Oliveira

METODOLOGIA ÁGIL. Lílian Simão Oliveira METODOLOGIA ÁGIL Lílian Simão Oliveira Fonte: Pressman, 2004 Aulas Prof. Auxiliadora Freire e Sabrina Schürhaus Alexandre Amorin Por quê???? Principais Causas Uso das Funcionalidades Processos empírico

Leia mais

Introdução a Métodos Ágeis de Desenvolvimento de Software

Introdução a Métodos Ágeis de Desenvolvimento de Software Introdução a Métodos Ágeis de Desenvolvimento de Software Curso de Verão Centro de Competência em Software Livre Departamento de Ciência da Computação - IME / USP Realização: AgilCoop Verão Ágil 2010 Copyleft

Leia mais

Metodologia Scrum e TDD Com Java + Flex + Svn Ambiente Eclipse

Metodologia Scrum e TDD Com Java + Flex + Svn Ambiente Eclipse SOFTWARE PARA GERENCIAMENTO DE AUTO PEÇAS Renan Malavazi Mauro Valek Jr Renato Malavazi Metodologia Scrum e TDD Com Java + Flex + Svn Ambiente Eclipse Sistema de Gerenciamento de AutoPeças A aplicação

Leia mais

O que é Domain-Driven Design

O que é Domain-Driven Design O que é Domain-Driven Design Desenvolvimento Software é mais freqüentemente aplicado a automatizar processos que existem no mundo real, ou fornecimento de soluções para problemas reais de negócios; Os

Leia mais

SCRUM Gerência de Projetos Ágil. Prof. Elias Ferreira

SCRUM Gerência de Projetos Ágil. Prof. Elias Ferreira SCRUM Gerência de Projetos Ágil Prof. Elias Ferreira Métodos Ágeis + SCRUM + Introdução ao extreme Programming (XP) Manifesto Ágil Estamos descobrindo maneiras melhores de desenvolver software fazendo-o

Leia mais

1 UML (UNIFIED MODELING LANGUAGE)

1 UML (UNIFIED MODELING LANGUAGE) 1 UML (UNIFIED MODELING LANGUAGE) Segundo Tonsig (2003), para conseguir desenvolver um software capaz de satisfazer as necessidades de seus usuários, com qualidade, por intermédio de uma arquitetura sólida

Leia mais

Escolha e implantação de uma metodologia de desenvolvimento de software: um estudo de caso para o Laboratório de Aplicação em Tecnologia da Informação

Escolha e implantação de uma metodologia de desenvolvimento de software: um estudo de caso para o Laboratório de Aplicação em Tecnologia da Informação Escolha e implantação de uma metodologia de desenvolvimento de software: um estudo de caso para o Laboratório de Aplicação em Tecnologia da Informação Elton A. dos Santos Departamento de Informática e

Leia mais

Sistema Gerenciador de Hotel. Adriano Douglas Girardello. Ana Paula Fredrich. Tiago Alexandre Schulz Sippert

Sistema Gerenciador de Hotel. Adriano Douglas Girardello. Ana Paula Fredrich. Tiago Alexandre Schulz Sippert UNIOESTE Universidade Estadual do Oeste do Paraná CENTRO DE CIÊNCIAS EXATAS E TECNOLÓGICAS Colegiado de Informática Curso de Bacharelado em Informática Sistema Gerenciador de Hotel Adriano Douglas Girardello

Leia mais

Desenvolvimento guiado por testes e ferramentas xunit

Desenvolvimento guiado por testes e ferramentas xunit Desenvolvimento guiado por testes e ferramentas xunit Carlos Eduardo Santin Disciplina de Engenharia de Software Universidade Federal do Rio Grande do Sul - UFRGS 1 de Maio de 2006 Roteiro 1 Teste de Software

Leia mais

Aula 17: Estudo de Caso: JUnit

Aula 17: Estudo de Caso: JUnit Aula 17: Estudo de Caso: JUnit O framework JUnit o qual você tem usado para testar seu próprio código no curso 6170 merece, ele próprio, ser estudado. Ele foi desenvolvido por Kent Beck e Erich Gamma.

Leia mais

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

Processos de Software. 2007 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

Características do Software

Características do Software Questionamentos Por que tanta demora para entregar? Por que os prazos se atrasam? Por que os custos são altos? Por que não achar todos os erros antes de entregar? Por que dificuldade em medir o progresso

Leia mais

CÓDIGO DA VAGA: TP05 QUESTÕES DE MÚLTIPLAS ESCOLHAS

CÓDIGO DA VAGA: TP05 QUESTÕES DE MÚLTIPLAS ESCOLHAS QUESTÕES DE MÚLTIPLAS ESCOLHAS 1. Sistemas de gerenciamento de rede tem sua arquitetura baseada em três componentes principais. São eles: a) Protocolo de gerenciamento, protocolo de monitoramento, segurança.

Leia mais

DISCIPLINA ENGENHARIA DE SOFTWARE Aula 03 Desenvolvimento Ágil Modelos Ágeis. Profª Esp.: Maysa de Moura Gonzaga

DISCIPLINA ENGENHARIA DE SOFTWARE Aula 03 Desenvolvimento Ágil Modelos Ágeis. Profª Esp.: Maysa de Moura Gonzaga DISCIPLINA ENGENHARIA DE SOFTWARE Aula 03 Desenvolvimento Ágil Modelos Ágeis Profª Esp.: Maysa de Moura Gonzaga 2º Semestre / 2011 Extreme Programming (XP); DAS (Desenvolvimento Adaptativo de Software)

Leia mais

ANÁLISE DA UTILIZAÇÃO DE PRÁTICAS DO EXTREME PROGRAMMING PARA A PREVENÇÃO DO DÉBITO TÉCNICO DE PROJETOS DE SOFTWARE

ANÁLISE DA UTILIZAÇÃO DE PRÁTICAS DO EXTREME PROGRAMMING PARA A PREVENÇÃO DO DÉBITO TÉCNICO DE PROJETOS DE SOFTWARE CENTRO UNIVERSITÁRIO UNA DIRETORIA DE EDUCAÇÃO CONTINUADA, PESQUISA E EXTENSÃO CURSO DE PÓS GRADUAÇAO EM ENGENHARAIA DE SOFTWARE CENTRADA EM MÉTODOS ÁGEIS ANÁLISE DA UTILIZAÇÃO DE PRÁTICAS DO EXTREME PROGRAMMING

Leia mais

Workshop. Workshop SCRUM. Rildo F Santos. rildo.santos@etecnologia.com.br. Versão 1 Ago 2010 RFS. www.etcnologia.com.br (11) 9123-5358 (11) 9962-4260

Workshop. Workshop SCRUM. Rildo F Santos. rildo.santos@etecnologia.com.br. Versão 1 Ago 2010 RFS. www.etcnologia.com.br (11) 9123-5358 (11) 9962-4260 Workshop www.etcnologia.com.br (11) 9123-5358 (11) 9962-4260 Rildo F Santos twitter: @rildosan skype: rildo.f.santos http://rildosan.blogspot.com/ Todos os direitos reservados e protegidos 2006 e 2010

Leia mais

Tópicos abordados. Testes de Software (Capítulo 8 Sommerville) 2/2/2015. Testes de desenvolvimento. Desenvolvimento dirigido a testes

Tópicos abordados. Testes de Software (Capítulo 8 Sommerville) 2/2/2015. Testes de desenvolvimento. Desenvolvimento dirigido a testes Testes de Software (Capítulo 8 Sommerville) slide 569 2011 Pearson Prentice Hall. Todos os direitos reservados. Tópicos abordados Testes de desenvolvimento Desenvolvimento dirigido a testes Testes de release

Leia mais

Indicadores para teste de software em desenvolvimento ágil

Indicadores para teste de software em desenvolvimento ágil Sistemas Produtivos e Desenvolvimento Profissional: Desafios e Perspectivas Indicadores para teste de software em desenvolvimento ágil RAQUEL BORTOLUCI Centro Paula Souza SP Brasil raquelborto@gmail.com

Leia mais

GENS S.A. Metodologia de Desenvolvimento Padrões de uso para o Sistema Gemini Versão Reduzida Relatório Análise de Causa

GENS S.A. Metodologia de Desenvolvimento Padrões de uso para o Sistema Gemini Versão Reduzida Relatório Análise de Causa GENS S.A. Metodologia de Desenvolvimento Padrões de uso para o Sistema Gemini Versão Reduzida Relatório Análise de Causa 1. Relatório de Análise de Causa Quando utilizar? O template deve ser utilizado

Leia mais

Desenvolvimento Orientado a Testes de Aceitação

Desenvolvimento Orientado a Testes de Aceitação Desenvolvimento Orientado a Testes de Aceitação José Inácio Ferreira Filho, Olissea Artiaga da Silva 1 Pontifícia Universidade Católica de Goiás (PUC - Goiás) Av. Universitária, nº 1.069, Setor Leste Universitário

Leia mais

Gerenciamento de Requisitos em Scrum baseado em Test Driven Development

Gerenciamento de Requisitos em Scrum baseado em Test Driven Development Gerenciamento de Requisitos em Scrum baseado em Test Driven Development Rafael Soares 1, Thiago Cabral 1, Fernanda Alencar 1,2 1 Programa de Pós Graduação em Engenharia da Computação, Universidade de Pernambuco,

Leia mais

Workshop SCRUM. Versão 5 Out 2010 RFS. rildo.santos@etecnologia.com.br

Workshop SCRUM. Versão 5 Out 2010 RFS. rildo.santos@etecnologia.com.br Todos os direitos reservados e protegidos 2006 e 2010 Objetivo: Estudo de Caso Objetivo: Apresentar um Estudo de Caso para demonstrar como aplicar as práticas do SCRUM em projeto de desenvolvimento de

Leia mais

Capítulo 1. Introdução. 1.1 Linguagens. OBJETIVOS DO CAPÍTULO Ao final deste capítulo você deverá ser capaz de:

Capítulo 1. Introdução. 1.1 Linguagens. OBJETIVOS DO CAPÍTULO Ao final deste capítulo você deverá ser capaz de: i Sumário 1 Introdução 1 1.1 Linguagens....................................... 1 1.2 O que é um Compilador?................................ 2 1.3 Processadores de Programas: Compiladores, Interpretadores

Leia mais

DSI é o processo cujo objetivo é introduzir mudanças num sistema de informação, com objetivo de melhorar o seu desempenho.

DSI é o processo cujo objetivo é introduzir mudanças num sistema de informação, com objetivo de melhorar o seu desempenho. - DSI DSI é o processo cujo objetivo é introduzir mudanças num sistema de informação, com objetivo de melhorar o seu desempenho. Preocupação: Problema técnicos Mudança na natureza e conteúdo do trabalho

Leia mais

Verificação, Validação e Testes. Leonardo Gresta Paulino Murta leomurta@ic.uff.br

Verificação, Validação e Testes. Leonardo Gresta Paulino Murta leomurta@ic.uff.br Verificação, Validação e Testes Leonardo Gresta Paulino Murta leomurta@ic.uff.br O que é? Herrar é Umano!!! Mas nossos usuários não tem culpa Precisamos fazer o máximo para entregar software de qualidade

Leia mais

Ciência da Computação ENGENHARIA DE SOFTWARE. Teste de Software

Ciência da Computação ENGENHARIA DE SOFTWARE. Teste de Software Ciência da Computação ENGENHARIA DE SOFTWARE Teste de Software Prof. Claudinei Dias email: prof.claudinei.dias@gmail.com Introdução Teste é um conjunto de atividades que pode ser planejado antecipadamente

Leia mais