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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Á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

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

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

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

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

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

Pós Graduação Engenharia de Software

Pós Graduação Engenharia de Software Pós Graduação Engenharia de Software Ana Candida Natali COPPE/UFRJ Programa de Engenharia de Sistemas e Computação FAPEC / FAT Estrutura do Módulo Parte 1 QUALIDADE DE SOFTWARE PROCESSO Introdução: desenvolvimento

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

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

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

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

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

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

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP)

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP) Hardware (Nível 0) Organização O AS/400 isola os usuários das características do hardware através de uma arquitetura de camadas. Vários modelos da família AS/400 de computadores de médio porte estão disponíveis,

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

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

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

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

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 05 PROFª BRUNO CALEGARO UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 05 PROFª BRUNO CALEGARO Santa Maria, 24 de Setembro de 2013. Revisão aula anterior Processos de Software Engenharia de Requisitos, Projeto,

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

Tópicos. Engenharia de Software: Uma Visão Geral

Tópicos. Engenharia de Software: Uma Visão Geral Tópicos 2 3 Engenharia de Software: Uma Visão Geral SCE 186 - Engenharia de Software Profs. José Carlos Maldonado e Elisa Yumi Nakagawa 2 o semestre de 2002 A importância do Software Software Aplicações

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

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

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

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

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

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

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

Capítulo 1 - Introdução 14

Capítulo 1 - Introdução 14 1 Introdução Em seu livro Pressman [22] define processo de software como um arcabouço para as tarefas que são necessárias para construir software de alta qualidade. Assim, é-se levado a inferir que o sucesso

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

Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini E-mail: prof.andre.luis.belini@gmail.com /

Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini E-mail: prof.andre.luis.belini@gmail.com / Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini E-mail: prof.andre.luis.belini@gmail.com / andre.belini@ifsp.edu.br MATÉRIA: SIG Aula N : 11 Tema: Como desenvolver e

Leia mais

LEVANTAMENTO DE REQUISITOS SEGUNDO O MÉTODO VOLERE

LEVANTAMENTO DE REQUISITOS SEGUNDO O MÉTODO VOLERE LEVANTAMENTO DE REQUISITOS SEGUNDO O MÉTODO VOLERE RESUMO Fazer um bom levantamento e especificação de requisitos é algo primordial para quem trabalha com desenvolvimento de sistemas. Esse levantamento

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

Comparativo entre Processos Ágeis. Daniel Ferreira dfs3@cin.ufpe.br

Comparativo entre Processos Ágeis. Daniel Ferreira dfs3@cin.ufpe.br Comparativo entre Processos Ágeis Daniel Ferreira dfs3@cin.ufpe.br O que discutiremos: Histórico Os Princípios Ágeis Comparação Do ponto de vista incremental Do ponto de vista funcional Vantagens e Desvantagens

Leia mais

APLICATIVO WEB PARA O SETOR DE EXTENSÃO IFC VIDEIRA

APLICATIVO WEB PARA O SETOR DE EXTENSÃO IFC VIDEIRA APLICATIVO WEB PARA O SETOR DE EXTENSÃO IFC VIDEIRA Autores: Claudiléia Gaio BANDT; Tiago HEINECK; Patrick KOCHAN; Leila Lisiane ROSSI; Angela Maria Crotti da ROSA Identificação autores: Aluna do Curso

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

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

GARANTIA DA QUALIDADE DE SOFTWARE

GARANTIA DA QUALIDADE DE SOFTWARE GARANTIA DA QUALIDADE DE SOFTWARE Fonte: http://www.testexpert.com.br/?q=node/669 1 GARANTIA DA QUALIDADE DE SOFTWARE Segundo a NBR ISO 9000:2005, qualidade é o grau no qual um conjunto de características

Leia mais

INOVANDO UM PROCESSO DE SERVIÇOS DE TI COM AS BOAS PRÁTICAS DO ITIL E USO DE BPMS

INOVANDO UM PROCESSO DE SERVIÇOS DE TI COM AS BOAS PRÁTICAS DO ITIL E USO DE BPMS INOVANDO UM PROCESSO DE SERVIÇOS DE TI COM AS BOAS PRÁTICAS DO ITIL E USO DE BPMS Cilene Loisa Assmann (UNISC) cilenea@unisc.br Este estudo de caso tem como objetivo trazer a experiência de implantação

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

UNIVERSIDADE FEDERAL DO RIO GRANDE TECNOLOGIA EM ANALISE E DESENVOLVIMENTO DE SISTEMAS

UNIVERSIDADE FEDERAL DO RIO GRANDE TECNOLOGIA EM ANALISE E DESENVOLVIMENTO DE SISTEMAS UNIVERSIDADE FEDERAL DO RIO GRANDE TECNOLOGIA EM ANALISE E DESENVOLVIMENTO DE SISTEMAS Professor: Adriel Ziesemer Disciplina: Engenharia de Software TRABALHO ACADÊMICO Cristian Santos - nº 45671 Guilherme

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

Java Programação para Fábrica de Software. Fernando Lozano Consultor 4Linux lozano@4linux.com.br

Java Programação para Fábrica de Software. Fernando Lozano Consultor 4Linux lozano@4linux.com.br Java Programação para Fábrica de Software Fernando Lozano Consultor 4Linux lozano@4linux.com.br Quem É o Lozano? Atua há mais de 15 anos em TI Consultoria para Amsterdam Sauer, Banco Bovorantim, Bob's,

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

Sistemas de Informação I

Sistemas de Informação I + Sistemas de Informação I Processo de software I Ricardo de Sousa Britto rbritto@ufpi.edu.br + O que é Engenharia de Software n Definição dada pela IEEE [IEE93]: n Aplicação de uma abordagem sistemática,

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

[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

APLICACAÇÃO DE METRICAS E INDICADORES NO MODELO DE REFERENCIA CMMI-Dev NIVEL 2

APLICACAÇÃO DE METRICAS E INDICADORES NO MODELO DE REFERENCIA CMMI-Dev NIVEL 2 APLICACAÇÃO DE METRICAS E INDICADORES NO MODELO DE REFERENCIA CMMI-Dev NIVEL 2 Renan J. Borges 1, Késsia R. C. Marchi 1 1 Universidade Paranaense (UNIPAR) Paranavaí, PR Brasil renanjborges@gmail.com, kessia@unipar.br

Leia mais

Notas de Aula 02: Processos de Desenvolvimento de Software

Notas de Aula 02: Processos de Desenvolvimento de Software Notas de Aula 02: Processos de Desenvolvimento de Software Objetivos da aula: Introduzir os conceitos de um processo de desenvolvimento de software Definir os processos básicos Apresentar as vantagens

Leia mais

5. Métodos ágeis de desenvolvimento de software

5. Métodos ágeis de desenvolvimento de software Engenharia de Software 5. Métodos ágeis de desenvolvimento de software Nuno Miguel Gil Fonseca nuno.fonseca@estgoh.ipc.pt Desenvolver e entregar software o mais rapidamente possível é hoje em dia um dos

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

Na medida em que se cria um produto, o sistema de software, que será usado e mantido, nos aproximamos da engenharia.

Na medida em que se cria um produto, o sistema de software, que será usado e mantido, nos aproximamos da engenharia. 1 Introdução aos Sistemas de Informação 2002 Aula 4 - Desenvolvimento de software e seus paradigmas Paradigmas de Desenvolvimento de Software Pode-se considerar 3 tipos de paradigmas que norteiam a atividade

Leia mais

Sistemas de Informação e Programação II Odorico Machado Mendizabal

Sistemas de Informação e Programação II Odorico Machado Mendizabal Sistemas de Informação e Programação II Odorico Machado Mendizabal Universidade Federal do Rio Grande FURG C3 Engenharia de Computação 16 e 23 de março de 2011 Processo de Desenvolvimento de Software Objetivos

Leia mais

ERP: Pacote Pronto versus Solução in house

ERP: Pacote Pronto versus Solução in house ERP: Pacote Pronto versus Solução in house Introdução Com a disseminação da utilidade e dos ganhos em se informatizar e integrar os diversos departamentos de uma empresa com o uso de um ERP, algumas empresas

Leia mais

Programa do Módulo 2. Processo Unificado: Visão Geral

Programa do Módulo 2. Processo Unificado: Visão Geral 9.1 Programa do Módulo 2 Orientação a Objetos Conceitos Básicos Análise Orientada a Objetos (UML) O Processo Unificado (RUP) Processo Unificado: Visão Geral 9.2 Encaixa-se na definição geral de processo:

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

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

Gerenciamento de Projetos de Software

Gerenciamento de Projetos de Software Gerenciamento de Projetos de Software Framework Ágil, Scrum Prof. Júlio Cesar da Silva Msc. 2º Encontro Ementa & Atividades Aula 1: Fundamentos do Gerenciamento de Projetos (p. 4) 30/abr (VISTO) Aula 2:

Leia mais

Engenharia de Software

Engenharia de Software Engenharia de Software Roteiro Inspeção Defeitos dos Software Classificação dos Erros Técnica de Leitura Ad-hoc Checklist Exercício Inspeção Inspeção de Software Definição É um método de análise estática

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

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

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

Introdução ao OpenUP (Open Unified Process)

Introdução ao OpenUP (Open Unified Process) Introdução ao OpenUP (Open Unified Process) Diferentes projetos têm diferentes necessidades de processos. Fatores típicos ditam as necessidades de um processo mais formal ou ágil, como o tamanho da equipe

Leia mais

ENGENHARIA DE SOFTWARE/ SISTEMAS DE SOFTWARE

ENGENHARIA DE SOFTWARE/ SISTEMAS DE SOFTWARE ENGENHARIA DE SOFTWARE/ SISTEMAS DE SOFTWARE CMP1280/CMP1250 Prof. Me. Fábio Assunção Introdução à Engenharia de Software SOFTWARE Programa de computador acompanhado dos dados de documentação e configuração

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

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

Plano de Projeto G Stock. G Stock. Plano de Projeto. Versão 1.0

Plano de Projeto G Stock. G Stock. Plano de Projeto. Versão 1.0 Plano de Projeto G Stock Plano de Projeto G Stock Versão 1.0 Histórico das Revisões Data Versão Descrição Autores 10/09/2010 1.0 Descrição inicial do plano de projeto Denyson José Ellís Carvalho Isadora

Leia mais

Engenharia da WEB 16/08/2011. Vida moderna. Sistemas WEB

Engenharia da WEB 16/08/2011. Vida moderna. Sistemas WEB Engenharia da WEB Fernando Schütz Especialização 2010 UTFPR Vida moderna Sistemas WEB Início Arquivos hipertexto Hoje Bancos! Powell Sistemas WEB envolvem uma mistura de publicação impressa e desenvolvimento

Leia mais

V O C Ê N O C O N T R O L E.

V O C Ê N O C O N T R O L E. VOCÊ NO CONTROLE. VOCÊ NO CONTROLE. O que é o Frota Fácil? A Iveco sempre coloca o desejo de seus clientes à frente quando oferece ao mercado novas soluções em transportes. Pensando nisso, foi desenvolvido

Leia mais

O Processo de Desenvolvimento de Software

O Processo de Desenvolvimento de Software O Processo de Desenvolvimento de Software Objetivos Contextualizar Análise e Projeto de software dentro de uma metodologia de desenvolvimento (um processo de desenvolvimento de software) Um processo de

Leia mais

ENGENHARIA DE SOFTWARE I

ENGENHARIA DE SOFTWARE I ENGENHARIA DE SOFTWARE I Prof. Cássio Huggentobler de Costa [cassio.costa@ulbra.br] Twitter: www.twitter.com/cassiocosta_ Agenda da Aula (002) Metodologias de Desenvolvimento de Softwares Métodos Ágeis

Leia mais

Engenharia de Software

Engenharia de Software Engenharia de Software Roteiro Software Evolução do Software Engenharia de Software Modelo Espiral Software Software Definição Conjunto de instruções que manipulam estruturas de dados (informação) Composição

Leia mais

Concepção e Elaboração

Concepção e Elaboração UNIVERSIDADE ESTADUAL PAULISTA INSTITUTO DE BIOCIÊNCIAS, LETRAS E CIÊNCIAS EXATAS DEPARTAMENTO DE CIÊNCIAS DE COMPUTAÇÃO E ESTATÍSTICA Análise e Projeto Orientado a Objetos Concepção e Elaboração Estudo

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

EMISSÃO DE CERTIFICADOS ELETRÔNICOS NOS EVENTOS DO INSTITUTO FEDERAL CATARINENSE CÂMPUS VIDEIRA

EMISSÃO DE CERTIFICADOS ELETRÔNICOS NOS EVENTOS DO INSTITUTO FEDERAL CATARINENSE CÂMPUS VIDEIRA EMISSÃO DE CERTIFICADOS ELETRÔNICOS NOS EVENTOS DO INSTITUTO FEDERAL CATARINENSE CÂMPUS VIDEIRA Autores : Jeferson BOESING; Tiago HEINECK; Angela Maria Crotti da ROSA; Leila Lisiane ROSSI Identificação

Leia mais

Engenharia de Software

Engenharia de Software CENTRO UNIVERSITÁRIO NOVE DE JULHO Profº. Edson T. França edson.franca@uninove.br Software Sistemas Conjunto de elementos, entre os quais haja alguma relação Disposição das partes ou dos elementos de um

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

Auxiliar de instalação (Português Brasileiro) Primeiros passos

Auxiliar de instalação (Português Brasileiro) Primeiros passos Primeiros passos Auxiliar de instalação (Português Brasileiro) Agradecemos que você tenha optado por nosso produto e esperamos que esteja sempre satisfeito(a) com seu novo software da G DATA. Caso algo

Leia mais