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

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

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

Transcrição

1 c a p a Lucas Souza é 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 e instrutor pela Caelum. Entusiasta de metodologias ágeis e editor-chefe do InfoQ Brasil. Paulo Silveira é bacharel e mestre em Ciência da Computação pela USP, trabalha com Java há 10 anos, sendo 6 anos com consultoria, desenvolvimento e treinamento na Caelum. Evolução do Design através de Testes e o TDD Como os testes de unidade impactam diretamente no design da sua aplicação Os testes de unidade já são obrigatórios em muitas empresas e ganham cada vez mais importância no mercado. Ainda é considerado por muitos apenas como uma forma de demonstrar a corretude do seu sistema, mas os testes de unidade vão muito além: são uma forma de validar o design de sua aplicação, garantindo a possibilidade de evoluir, mudar e refatorar o seu código. Veremos, através de um exemplo, como os testes, aliados ao Test Driven Development, possuem o potencial de manter seu design com um baixo acoplamento. Testes de unidade têm se tornado cada vez mais imprescindíveis no atual mercado de desenvolvimento de software. Além de ser uma maneira de diminuirmos a possível quantidade de problemas que o software pode ter, a principal característica dos testes de unidade sem dúvida é aumentar a qualidade do código, diminuindo o acoplamento e obtendo assim um software de fácil manutenção e extensão. Devido a sua existência, a equipe se sente tranquila para efetuar refatorações, manutenções ou até mesmo fazer a adição de novas funcionalidades. Porém obter um código com baixo acoplamento e que seja de fácil manutenção não é uma tarefa trivial de ser alcançada. O que ocorre, muitas vezes, é que ao desenvolver alguma funcionalidade, tomamos decisões que podem tornar o código difícil de ser testado. O Test Driven Development (TDD) é uma técnica de desenvolvimento que pode ser utilizada para evitar esse tipo de problema. O TDD nos questiona frequentemente sobre questões como o Princípio da Responsabilidade Única (SRP) e Não Se Repita (DRY), e esses questionamentos surgem quando sentimos alguma dificuldade para criar o teste. Utilizando TDD o design das classes emerge de forma poderosa (pela facilidade de extensão) e simples (pela fácil manutenabilidade). TDD não substituirá seus princípios e decisões sobre o design ou mesmo seus diagramas UML, a ideia é validar e melhorar suas decisões de design. TDD é uma técnica que ajuda na criação e evolução do design, mas não é a única maneira de fazê-lo. Nosso objetivo aqui é demonstrar na prática como o TDD vai acelerar essa evolução de design. 32

2 Exemplo: enviando um ao cadastrar um novo usuário Para nossa demonstração, considere que em um sistema precisamos que, ao adicionar um novo usuário, um seja enviado dando boas-vindas a esse cliente. Em um pensamento rápido, podemos criar um método estático envia dentro de uma classe EnviadorDe . Invocaremos esse método de dentro do nosso NovoUsuarioController, que será responsável por adicionar o novo usuário no banco de dados e enviar o de boas-vindas, como nas Listagens 1 e 2. Para isso, considere que também temos uma classe DaoFactory, responsável por retornar as classes do sistema responsáveis pela persistência de dados. Listagem 1. Classe NovoUsuarioController. EnviadorDe .envia (usuario.get ()); Listagem 2. Classe EnviadorDe . import org.apache.commons.mail. exception; import org.apache.commons.mail.simple ; public class EnviadorDe { public static void envia (string para) { try { Simple = new Simple (); .sethostname( smtp.server.com ); .addto(para).setfrom( Lucas Souza ).setsubject( Confirmação de cadastro ).setmsg( Seja bem-vindo ).send(); catch ( Exception e) { e.printstacktrace(); É um código que parece funcionar, mas será que possui um bom design? Está desacoplado o suficiente? Para garantir o funcionamento desse método de adição de novo usuário, será criado um teste de unidade, que verifica se o foi enviado corretamente. A Listagem 3 mostra como podemos preparar o teste de unidade. Listagem 3. Cenário do teste de unidade da classe NovoUsuarioController. Com o usuário e o controller criados, estaríamos prontos para fazer as asserções e assim garantir que o método adiciona() está funcionando como esperado. Mas como verificar se um está sendo enviado para o usuário? Se mantivermos o teste com o código assim, um de verdade será disparado para esse cliente cada vez que o executarmos! Uma alternativa seria, antes de iniciar os testes, levantar um servidor SMTP que apenas simulasse o envio do . Poderíamos até fazer isso via Java no setup do teste, programaticamente, ao usar um servidor como o Apache James. Porém, com isso, começamos a nos complicar com um teste de unidade que deveria ser bastante simples. Dessa forma, ele estaria se tornando um teste de integração. O problema neste caso é que não temos como verificar de uma maneira fácil se o foi enviado, afinal, dentro do método adiciona() mantemos um acoplamento muito forte com a classe EnviadorDe . Isso ocorre devido a ela ser uma dependência que não podemos mudar com facilidade. Outra maneira um tanto complicada de evitar que o método de envio de fosse realmente invocado (para não enviar o e apenas testá-lo) seria, através de um classloader customizado e manipulação de bytecode, os quais trocariam a implementação desse método. Alguns frameworks de mock (se não sabe o que é mock, aguarde que será explicado mais a frente) possibilitam isso, mas esse é um forte indício de alto acoplamento. Para testar esse método de uma forma mais elegante, em vez de usar essas opções apresentadas, será necessário refatorar o nosso controller: em vez de procurarmos o que queremos, vamos inverter isso e receber a dependência no construtor. Isso é, vamos aplicar o princípio de inversão de controle através da injeção de dependências, como na Listagem 4. Para essa mudança ser possível, o método envia () da classe EnviadorDe apresentada na Listagem 2 precisará deixar de ser estático. Será que agora podemos testar facilmente nossa classe? NovoUsuarioController novousuario = new NovoUsuarioController(); // que verificações faço aqui? Listagem 4. Removendo acoplamento com EnviadorDe . private EnviadorDe enviadorde ; public NovoUsuarioController(EnviadorDe enviadorde ) { this.enviadorde = enviadorde ; enviadorde .envia (usuario.get ()); 33

3 Utilizando Mocks Uma solução eficaz para o teste dessa nova versão da classe é o uso de mock objects, que nos permite isolar os testes das classes de um sistema de forma simples. Como muitos já conhecem, um mock object é um objeto falso criado com base em uma estrutura definida, que pode simular comportamentos de dependências e verificar a corretude na interação da classe testada com a mesma. No caso do exemplo, a classe NovoUsuarioController depende diretamente da classe EnviadorDe para cumprir suas responsabilidades. Ao invés de utilizarmos a classe EnviadorDe , usaremos outra, que finge fazer o que essa dependência deveria fazer, porém é mais simples e fácil de ser usada no ambiente de testes, por termos controle sobre ela. O código atual da classe NovoUsuarioController já está com um design bem melhor, que nos possibilita injetar um mock no lugar da dependência. Para fazer isso, precisaríamos estender a classe EnviadorDe e reescrever o método envia (), de tal forma que ele apenas fingisse enviar um . Essa invocação do método também seria registrada para depois ser usada na asserção do teste. Sendo assim, essa nova classe-filha seria utilizada para os testes. Apesar dessa solução funcionar, podemos usar algo mais elegante para evoluir o design da aplicação. Devemos refatorar: agora a classe NovoUsuarioController passará a receber como dependência (Listagem 6) uma referência para alguém que implemente uma nova interface chamada Enviador (Listagem 5) que possui um único método envia () declarado (o que pode ser feito através de uma IDE como o Eclipse, que oferece a refatoração automatizada Extract Interface ). Agora, durante o teste (Listagem 8), passaríamos um objeto especial, da classe Enviador Dummy, que implementa a interface Enviador e simula um envio de (Listagem 7). Esse dummy é um mock menos inteligente, já que não verifica e nem realiza nenhuma operação. No teste, basta fazer uma asserção para verificar se o destinatário do que foi utilizado dentro do mock é igual ao do usuário que está sendo cadastrado. Listagem 5. Interface Enviador. public interface Enviador { void envia (string para); Listagem 6. Troca da dependência da classe Enviador para a interface Enviador. private Enviador enviadorde ; public NovoUsuarioController(Enviador enviadorde ) { this.enviadorde = enviadorde ; enviadorde .envia (usuario.get ()); Listagem 7. Criação do EnviadorDe Dummy. public class EnviadorDe Dummy implements Enviador { private String enviadopara; public void envia (string para) { // simulação de envio de this.enviadopara = para; public String getenviadopara() { return this.enviadopara; Listagem 8. Teste usando um mock object. EnviadorDe Dummy mock = new EnviadorDe Dummy(); NovoUsuario novousuario = new NovoUsuario(mock); Assert.assertEquals(usuario.get (), mock.getenviadopara()); Apesar de ter sido fácil criar o mock para a interface Enviador como um objeto bobo (dummy object), muitas vezes a dependência pode ter métodos que são difíceis de serem simulados, pois retornam outros objetos, por exemplo. Outra dificuldade que podemos enfrentar é quando a unidade que estamos testando possui muitas dependências, o que acarretaria na criação de mocks para cada uma delas. Ao enfrentarmos estas situações uma boa opção seria a utilização de ferramentas que criam em tempo de execução objetos mockados para serem utilizados e nos testes de unidade. Criação automatizada de mocks Um dos frameworks que vem se destacando no mercado é o Mockito (http://mockito.org), por ser simples e de fácil entendimento, considerado uma evolução em relação às outras alternativas. Utilizaremos ele para mockar nossa dependências, mas, como visto na edição 31 da Mundoj, o Jmock é uma outra excelente opção Para utilizarmos o mockito, basta fazer o download no site (ver referências) e colocar o mockito-all-x.x.x.jar no classpath da aplicação. O código de teste com o uso do Mockito está apresentado na Listagem

4 Listagem 9. Mock de dependências com mockito. Criar mocks utilizando frameworks do tipo Mockito torna-se uma tarefa muito simples e que pode nos levar a acreditar que nosso design está simples e extensível. Porém, na maioria das vezes, isso indica um cenário em que o código está muito acoplado e ruim, um sinal de que a unidade que estamos testando talvez esteja fazendo mais do que deveria por ter muitas dependências. No caso de encontrar esse tipo de problema, o melhor a se fazer é refatorar essa classe de forma a diminuir suas dependências, separando as responsabilidades e testando cada uma das novas classes individualmente. Enviador mock = Mockito.mock(Enviador.class); NovoUsuarioController novousuario = new NovoUsuarioController(mock); Mockito.verify(mock).envia (usuario.get ()); E se usássemos TDD? Como sabemos, Test-Driven Development é o nome dado a prática de criar os testes antes mesmo de escrevermos o código que queremos que seja testado. Muitos citam que sua grande vantagem é que dessa forma não teremos código que não possua teste, mas essa realmente não é a única vantagem. O primeiro passo para utilizar o Mockito é pedir para que ele crie através do seu método principal, o método mock(), um objeto mockado a partir de uma interface ou classe. Em nossos testes precisamos de um mock da interface Enviador, que é obtida invocando Mockito.mock(Enviador.class). Uma das principais características do Mockito é que quando criamos algum mock não precisamos definir antecipadamente quais métodos serão invocados nele, como seria feito se utilizásemos um stub. Em seguida, basta passarmos a dependência para a classe NovoUsuarioController e depois da execução do método fazemos a verificação para saber quais métodos do mock foram chamados no método adiciona(), comprovando que o método realmente invoca a funcionalidade para envio de quando o cadastro é finalizado. Isso é feito utilizando o método verify() da classe Mockito. No teste da Listagem 9 verificamos se o método envia () foi invocado recebendo como parâmetro a propriedade do objeto Usuario que está sendo cadastrado. O Mockito pode ajudar em muitas tarefas durante o desenvolvimento de testes de unidade. Considere que o cenário de teste em que método envia- () deve retornar uma exceção quando o de destino indicado for inválido. Um teste utilizando Mockito que verifica esse comportamento está representado na Listagem 10. No exemplo, o comportamento esperado para a classe NovoUsuarioController seria enviar uma exceção do tipo IllegalArgumentException Listagem 10. Teste mais avançado utilizando mockito. (expected = IllegalArgumentException.class) public void retornaexcecaoquando forinvalido() { usuario.set ( lucas.souza#caelum.com.br ); usuario.setusuario( lucas.souza ); usuario.setsenha( ); Enviador mock = Mockito.mock(Enviador.class); Mockito.doThrow(new IllegalArgumentException()).when(mock).envia (usuario.get ()); NovoUsuarioController novousuario = new NovoUsuarioController(mock); A vantagem de fazer os testes primeiro é que não precisaríamos repensar todo o design da nossa aplicação como exemplificado no exemplo deste artigo. Se tivéssemos guiado nosso desenvolvimento a partir dos testes, terminaríamos com um design mais simples, abstrações mais bem definidas e códigos mais reutilizáveis. E por consequência ganharíamos a confiança no código implementado a partir dos próprios testes. No artigo, para obter um design elegante e simples, várias vezes tivemos que refatorar o código e o teste. Utilizando TDD também faríamos refatorações, que é uma ótima prática, mas com certeza chegaríamos no design ideal bem mais facilmente do que fazendo os testes depois. Por que esse design melhorado já apareceria desde cedo? Vamos ilustrar isso escrevendo o teste para a classe NovoUsuarioController, considerando que ainda não implementamos nem essa classe, nem o enviador de . A Listagem 11 esboça o início dessa situação. Listagem 11. Mock de dependências com mockito. NovoUsuarioController novousuario = new NovoUsuarioController(); // aqui preciso testar se o foi enviado. Como? Escrevendo o teste dessa Listagem 11, logo perceberíamos duas coisas: precisamos criar a classe NovoUsuarioController e necessitamos que ela tenha um método que adiciona um usuário. Isso já mostra como o teste guia também a criação de como a classe interage com seus clientes. Depois disso, como verificar se o foi enviado? De alguma forma precisamos de um objeto (um mock?) que vá dizer se foi tentado enviar um para o Esse objeto de alguma forma tem de estar relacionado com o NovoUsuarioController. Para fazer isso, passaremos esse objeto via construtor (poderia ser de outra forma, 35

5 como usando um método setter) para o controller. A fim de tornar mais fácil o processo de criar um mock para esse objeto, será criada uma interface para abstrair seu comportamento. Dado esse raciocínio, cairíamos diretamente num código muito semelhante ao da Listagem 9. Outra prova de como o TDD auxilia no design é que dificilmente teríamos usado o DaoFactory com métodos estáticos, pois perceberíamos que seria complicado conseguir simular essa parte na hora de criar um teste que verificasse se o DAO foi acionado ao adicionar um novo usuário. Normalmente percebe-se que é importante tornar o código mais desacoplado, por exemplo, recebendo no construtor o UsuarioDAO. Ou talvez outra solução, como recebê-lo através de um setter ou ainda utilizando uma busca em um registro. Porém, a injeção via construtor acaba sendo uma alternativa muito popular e demonstra vantagens em relação a outras abordagens de inversão de controle, já que isso impede que o objeto seja instanciado e fique num estado inconsistente, sem ter suas dependências preparadas. São por esses motivos que algumas pessoas chegam até a se referir ao TDD como Test-Driven Design. TDD e injeção de dependências Injeção de dependências é uma maneira de diminuir acoplamento, na qual a classe recebe suas dependências externamente, através de métodos ou construtores, ao invés de criá-las de forma interna. Evitar que classes busquem suas dependências torna possível construirmos testes de unidade que foquem apenas no comportamento da classe que está sendo testada, ou seja, qualquer mudança que ocorra em alguma dependência da classe testada não deveria impactar no teste. Com TDD alcançamos isso de maneira mais fácil, porque quando vamos escrever os testes percebemos a necessidade de torná-los de fato um teste de unidade. Por exemplo, no caso do teste da adição de um novo usuário perceberíamos prematuramente que o envio de não deveria ser um envio real que utiliza um SMTP de verdade. No exemplo de teste apresentado, a classe NovoUsuarioController deve ser independente do comportamento da classe EnviadorDe . Isso nos levaria a perceber a necessidade de desacoplar o código através da injeção da dependência. Considerações finais O teste de unidade já se provou essencial, mas sabemos como é difícil criar esses testes se o código já está pronto: ele pode estar (e provavelmente está) muito acoplado, sendo difícil evitar que os testes de unidade se tornem de integração. Muitos desistem de criar testes por essa dificuldade inicial, ao tentar criar testes para código já existente. O uso do TDD, além de trazer o benefício de garantir que você vai ter uma boa cobertura de testes e só vai escrever o que realmente é necessário, implica em um design mais desacoplado. Isso pode ser explicado por um motivo muito simples: sem design desacoplado, criar um teste de unidade é bastante difícil. Logo, o TDD de certa maneira o força a ir em direção a inversão de controle, muitas vezes através de injeção de dependências, de uma maneira clara e natural. Referências Independentemente se usamos algum framework de injeção de dependências (Spring, Guice, Pico etc.) no ambiente de produção, nos testes é importante utilizarmos essa práticaa para que os objetos mockados possam substituir as dependências, isolando assim a unidade que estamos testando. 36

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

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

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

Fixture-Factory. Criando objetos para seus testes. Como criar objetos através de templates para serem utilizados como massa de dados em seus testes.

Fixture-Factory. Criando objetos para seus testes. Como criar objetos através de templates para serem utilizados como massa de dados em seus testes. fixture-factory_ Fixture-Factory Criando objetos para seus testes Como criar objetos através de templates para serem utilizados como massa de dados em seus testes. Começamos testando métodos simples, mas

Leia mais

Universidade Federal Rural de Pernambuco. Bacharelado em Sistemas de Informação. Disciplina: Análise e Projeto de Sistemas de Informação

Universidade Federal Rural de Pernambuco. Bacharelado em Sistemas de Informação. Disciplina: Análise e Projeto de Sistemas de Informação Universidade Federal Rural de Pernambuco Bacharelado em Sistemas de Informação Disciplina: Análise e Projeto de Sistemas de Informação Docente: Rodrigo Aluna: Thays Melo de Moraes Diagramas do Projeto

Leia mais

DESENVOLVENDO APLICAÇÃO UTILIZANDO JAVA SERVER FACES

DESENVOLVENDO APLICAÇÃO UTILIZANDO JAVA SERVER FACES DESENVOLVENDO APLICAÇÃO UTILIZANDO JAVA SERVER FACES Alexandre Egleilton Araújo, Jaime Willian Dias Universidade Paranaense (Unipar) Paranavaí PR Brasil araujo.ale01@gmail.com, jaime@unipar.br Resumo.

Leia mais

LOGGING DE EVENTOS COM LOG4J

LOGGING DE EVENTOS COM LOG4J LOGGING DE EVENTOS COM LOG4J por Luiz Gustavo Stábile de Souza O que é logging? Fazer o logging de uma aplicação é uma das possíveis maneiras de debugá-la, registrando em algum meio (arquivo, enviando

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

Prototype, um Design Patterns de Criação

Prototype, um Design Patterns de Criação Prototype, um Design Patterns de Criação José Anízio Pantoja Maia Este artigo tem como finalidade compreender o funcionamento do padrão de projeto prototype, serão abordados os participantes que compõe

Leia mais

Programação Orientada a Objetos - 3º semestre AULA 08 Prof. André Moraes

Programação Orientada a Objetos - 3º semestre AULA 08 Prof. André Moraes Pág 50 Programação Orientada a Objetos - 3º semestre AULA 08 Prof. André Moraes 10 CORREÇÃO DE QUESTÕES DE AVALIAÇÃO 1 PARTE I - AVALIAÇÃO TEÓRICA 11 RESPONDA AS QUESTÕES ABAIXO: A) Qual a diferença entre

Leia mais

Demoiselle Report Guide. Demoiselle Report. Marlon Carvalho. Rodrigo Hjort. Robson Ximenes

Demoiselle Report Guide. Demoiselle Report. Marlon Carvalho. <marlon.carvalho@gmail.com> Rodrigo Hjort. <rodrigo.hjort@gmail.com> Robson Ximenes Demoiselle Report Guide Demoiselle Report Marlon Carvalho Rodrigo Hjort Robson Ximenes Demoiselle Report... v 1. Configuração

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

Guia de Fatores de Qualidade de OO e Java

Guia de Fatores de Qualidade de OO e Java Qualiti Software Processes Guia de Fatores de Qualidade de OO e Java Versã o 1.0 Este documento só pode ser utilizado para fins educacionais, no Centro de Informática da Universidade Federal de Pernambuco.

Leia mais

Curso - Padrões de Projeto Módulo 2: Padrões de Criação

Curso - Padrões de Projeto Módulo 2: Padrões de Criação Curso - Padrões de Projeto Módulo 2: Padrões de Criação Vítor E. Silva Souza vitorsouza@gmail.com http://www.javablogs.com.br/page/engenho http://esjug.dev.java.net Sobre o Instrutor Formação: Java: Graduação

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

Programação Orientada a Objetos Prof. Rone Ilídio UFSJ/CAP

Programação Orientada a Objetos Prof. Rone Ilídio UFSJ/CAP Programação Orientada a Objetos Prof. Rone Ilídio UFSJ/CAP 1) Introdução Programação Orientada a Objetos é um paradigma de programação bastante antigo. Entretanto somente nos últimos anos foi aceito realmente

Leia mais

3.5. Cuidado com o modelo anêmico

3.5. Cuidado com o modelo anêmico 3.5. Cuidado com o modelo anêmico public Periodo adiaumasemana() { Calendar novofim = (Calendar) this.fim.clone(); novofim.add(calendar.day_of_month, 7); return new Periodo(inicio, novofim); E, com uma

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

ABORDAGEM DE FRAMEWORKS PARA JSF QUE AUXILIAM O DESENVOLVIMENTO DE SOFTWARE

ABORDAGEM DE FRAMEWORKS PARA JSF QUE AUXILIAM O DESENVOLVIMENTO DE SOFTWARE ABORDAGEM DE FRAMEWORKS PARA JSF QUE AUXILIAM O DESENVOLVIMENTO DE SOFTWARE Amarildo Aparecido Ferreira Junior 1, Ricardo Ribeiro Rufino 1 ¹Universidade Paranaense (Unipar) Paranavaí PR Brasil aapfjr@gmail.com

Leia mais

Parte I. Demoiselle Mail

Parte I. Demoiselle Mail Parte I. Demoiselle Mail Para o envio e recebimento de e-s em aplicativos Java, a solução mais natural é usar a API JavaMail [http:// www.oracle.com/technetwork/java/java/index.html]. Ela provê um framework

Leia mais

DESENVOLVIMENTO WEB UTILIZANDO FRAMEWORK PRIMEFACES E OUTRAS TECNOLOGIAS ATUAIS

DESENVOLVIMENTO WEB UTILIZANDO FRAMEWORK PRIMEFACES E OUTRAS TECNOLOGIAS ATUAIS DESENVOLVIMENTO WEB UTILIZANDO FRAMEWORK PRIMEFACES E OUTRAS TECNOLOGIAS ATUAIS Emanuel M. Godoy 1, Ricardo Ribeiro Rufino 1 1 Universidade Paranaense (Unipar) Paranavaí PR Brasil godoymanel@gmail.com,

Leia mais

5 Mecanismo de seleção de componentes

5 Mecanismo de seleção de componentes Mecanismo de seleção de componentes 50 5 Mecanismo de seleção de componentes O Kaluana Original, apresentado em detalhes no capítulo 3 deste trabalho, é um middleware que facilita a construção de aplicações

Leia mais

Interface para Regras de Negócios em Multi-Banco

Interface para Regras de Negócios em Multi-Banco 1 Interface para Regras de Negócios em Multi-Banco MARCELO JALOTO (marcelo@jaloto.net) é graduado no curso superior Projetos e Gestão de Redes de Computadores e formado no curso Técnico em Processamento

Leia mais

UNIVERSIDADE FEDERAL DO PARANÁ. CURSO: Ciência da Computação DATA: / / 2013 PERÍODO: 4 o.

UNIVERSIDADE FEDERAL DO PARANÁ. CURSO: Ciência da Computação DATA: / / 2013 PERÍODO: 4 o. CURSO: Ciência da Computação DATA: / / 2013 PERÍODO: 4 o. PROFESSOR: Andrey DISCIPLINA: Técnicas Alternativas de Programação AULA: 08 APRESENTAÇÃO Na aula de hoje vamos apresentar e discutir como definir

Leia mais

Apesar de existirem diversas implementações de MVC, em linhas gerais, o fluxo funciona geralmente da seguinte forma:

Apesar de existirem diversas implementações de MVC, em linhas gerais, o fluxo funciona geralmente da seguinte forma: 1 Introdução A utilização de frameworks como base para a construção de aplicativos tem sido adotada pelos desenvolvedores com três objetivos básicos. Primeiramente para adotar um padrão de projeto que

Leia mais

Lidando de Forma Eficiente com Validações Locais de Objetos

Lidando de Forma Eficiente com Validações Locais de Objetos Lidando de Forma Eficiente com Validações Locais de Objetos Aprenda a construir um mini-framework para validar objetos locais sem afetar a complexidade do código. Autor Paulo César M. N. A. Coutinho (pcmnac@gmail.com):

Leia mais

Etc & Tal. Volume 2 - Número 1 - Abril 2009 SBC HORIZONTES 44

Etc & Tal. Volume 2 - Número 1 - Abril 2009 SBC HORIZONTES 44 Armazenando Dados em Aplicações Java Parte 2 de 3: Apresentando as opções Hua Lin Chang Costa, hualin@cos.ufrj.br, COPPE/UFRJ. Leonardo Gresta Paulino Murta, leomurta@ic.uff.br, IC/UFF. Vanessa Braganholo,

Leia mais

SISTEMA DE WORKFLOW PARA MODELAGEM E EXECUÇÃO DE PROCESSOS DE SOFTWARE. Aluno: Roberto Reinert Orientador: Everaldo A. Grahl

SISTEMA DE WORKFLOW PARA MODELAGEM E EXECUÇÃO DE PROCESSOS DE SOFTWARE. Aluno: Roberto Reinert Orientador: Everaldo A. Grahl SISTEMA DE WORKFLOW PARA MODELAGEM E EXECUÇÃO DE PROCESSOS DE SOFTWARE Aluno: Roberto Reinert Orientador: Everaldo A. Grahl Roteiro de apresentação Introdução Objetivos Fundamentação Teórica Workflow Processo

Leia mais

Se observarmos nos diferentes livros. Planejamento de Testes a partir de Casos de Uso

Se observarmos nos diferentes livros. Planejamento de Testes a partir de Casos de Uso Planejamento de Testes a partir de Casos de Uso Arilo Cláudio Dias Neto ariloclaudio@gmail.com É Bacharel em Ciência da Computação formado na Universidade Federal do Amazonas, Mestre em Engenharia de Sistemas

Leia mais

Orientação a Objetos

Orientação a Objetos 1. Domínio e Aplicação Orientação a Objetos Um domínio é composto pelas entidades, informações e processos relacionados a um determinado contexto. Uma aplicação pode ser desenvolvida para automatizar ou

Leia mais

Sumário do Plano de Testes

Sumário do Plano de Testes GESTOC Versão 9.1 Plano de Testes Sumário do Plano de Testes 1. Introdução... 2 2. Escopo... 2 3. Implementações... 2 0002061: Emissão de notas de remessa com vasilhames e embalagens... 3 0002062: Emissão

Leia mais

Módulo 5 JPATransaction Camadas Turma Turma TurmaBC .business @BusinessController TurmaBC TurmaBC TurmaBC

Módulo 5 JPATransaction Camadas Turma Turma TurmaBC .business @BusinessController TurmaBC TurmaBC TurmaBC Módulo 5 No módulo anterior adaptamos nosso projeto para persistir as informações no banco de dados utilizando as facilidades da extensão demoiselle-jpa. Experimentamos o controle transacional do Framework

Leia mais

Engenharia de Software III

Engenharia de Software III Engenharia de Software III Casos de uso http://dl.dropbox.com/u/3025380/es3/aula6.pdf (flavio.ceci@unisul.br) 09/09/2010 O que são casos de uso? Um caso de uso procura documentar as ações necessárias,

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

OMT-G Design. Instalação por pacotes

OMT-G Design. Instalação por pacotes OMT-G Design A plataforma Eclipse OMT-G Design não é um software independente, é um plug-in que se utiliza dos mecanismos de extensão do Eclipse que por sua vez é um ambiente de desenvolvimento de software.

Leia mais

Tutoriais de apoio para a migração do e-mail @pmmc.com.br para @se-pmmc.com.br Atualização: 30/04/2014

Tutoriais de apoio para a migração do e-mail @pmmc.com.br para @se-pmmc.com.br Atualização: 30/04/2014 Tutoriais de apoio para a migração do e-mail @pmmc.com.br para @se-pmmc.com.br Atualização: 30/04/2014 Sumário Introdução... 3 1. Redirecionando e-mails novos... 4 2. Fazendo backup e encaminhando e-mails

Leia mais

Implementando uma Classe e Criando Objetos a partir dela

Implementando uma Classe e Criando Objetos a partir dela Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 04 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO) Parte: 2 Prof. Cristóvão Cunha Implementando uma Classe

Leia mais

Facebook. Java com o. Integrando Aplicações. Descubra como é fácil criar uma aplicação para rodar no Facebook. _capa

Facebook. Java com o. Integrando Aplicações. Descubra como é fácil criar uma aplicação para rodar no Facebook. _capa _capa Integrando Aplicações Java com o Facebook Descubra como é fácil criar uma aplicação para rodar no Facebook Desde o lançamento oficial do Facebook, em 2004, o número de usuários vem aumentando a cada

Leia mais

[MANUAL DE INTEGRAÇÃO PARA SITES DE MEMBROS]

[MANUAL DE INTEGRAÇÃO PARA SITES DE MEMBROS] 2011 [MANUAL DE INTEGRAÇÃO PARA SITES DE MEMBROS] Destinado a usuários que desejam vender conteúdo premium, disponível em sites de membros, através da plataforma Hotmart. Versão do documento: 1.0, 11/04/2011.

Leia mais

NOVIDADES DO JAVA PARA PROGRAMADORES C

NOVIDADES DO JAVA PARA PROGRAMADORES C PROGRAMAÇÃO SERVIDOR EM SISTEMAS WEB NOVIDADES DO JAVA PARA PROGRAMADORES C Prof. Dr. Daniel Caetano 2012-1 Objetivos Apresentar o Conceito de Classes e Objetos Capacitar para a criação de objetos simples

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

Engenharia de Software. Parte I. Introdução. Metodologias para o Desenvolvimento de Sistemas DAS 5312 1

Engenharia de Software. Parte I. Introdução. Metodologias para o Desenvolvimento de Sistemas DAS 5312 1 Engenharia de Software Parte I Introdução Metodologias para o Desenvolvimento de Sistemas DAS 5312 1 Mitos do Desenvolvimento de Software A declaração de objetivos é suficiente para se construir um software.

Leia mais

3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio

3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio 32 3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio Este capítulo apresenta o framework orientado a aspectos para monitoramento e análise de processos de negócio

Leia mais

BPMN. Business Process Modeling Notation

BPMN. Business Process Modeling Notation BPMN Business Process Modeling Notation Montar viagem UML (diagrama de atividades) Montar viagem BPMN Tipos de diagrama 1) Private Business Process ou Diagramas de processos privados: usado quando não

Leia mais

Requisitos de Software. Requisitos de Software. Requisitos de Software. Requisitos de Software. Requisitos de Software. Requisitos de Software

Requisitos de Software. Requisitos de Software. Requisitos de Software. Requisitos de Software. Requisitos de Software. Requisitos de Software INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE Curso Técnico em Informática ENGENHARIA DE SOFTWARE Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br Clayton Maciel Costa

Leia mais

Estudo de Viabilidade

Estudo de Viabilidade Estudo de Viabilidade Disciplina: Especificação de Requisitos e Validação de Sistemas Professora: Carla Silva Equipe (Ciência da Computação): Airton Sobral (asds) Alan Gomes (aga) Glauco Roberto (grps)

Leia mais

Manual de Utilização do Assistente do Certificado Digital Serasa Experian. Manual do Produto

Manual de Utilização do Assistente do Certificado Digital Serasa Experian. Manual do Produto Manual de Utilização do Assistente do Certificado Digital Serasa Experian Manual do Produto Índice Introdução - Assistente do Certificado Digital Serasa Experian 3 1. Verificação de Ambiente 4 2. Instalação

Leia mais

Autor: Ricardo Francisco Minzé Júnior - ricardominze@yahoo.com.br Desenvolvendo aplicações em camadas com PHP 5.

Autor: Ricardo Francisco Minzé Júnior - ricardominze@yahoo.com.br Desenvolvendo aplicações em camadas com PHP 5. Desenvolvendo aplicações em camadas com PHP 5. Talvez a primeira vista você ache estranha a palavra Camada em programação, mas o que vem a ser Camada? Segundo o dicionário: Camada 1 - Qualquer matéria

Leia mais

Nos artigos anteriores apresentamos. Desenvolvimento de Software Dirigido por Caso de Uso Parte III: Caso de Uso de Negócio

Nos artigos anteriores apresentamos. Desenvolvimento de Software Dirigido por Caso de Uso Parte III: Caso de Uso de Negócio Desenvolvimento de Software Dirigido por Caso de Uso Parte III: Caso de Uso de Negócio Vinicius Lourenço de Sousa vinicius.lourenco.sousa@gmail.com Atua no ramo de desenvolvimento de software há mais de

Leia mais

METODOLOGIAS ÁGEIS - SCRUM -

METODOLOGIAS ÁGEIS - SCRUM - METODOLOGIAS ÁGEIS - SCRUM - André Roberto Ortoncelli ar_ortoncelli@hotmail.com 2010 Organização da Apresentação Introdução as Metodologias Ágeis Scrum Conceitos Básicos Artefatos Papeis Cerimônias Estórias

Leia mais

UML - Unified Modeling Language

UML - Unified Modeling Language UML - Unified Modeling Language Casos de Uso Marcio E. F. Maia Disciplina: Engenharia de Software Professora: Rossana M. C. Andrade Curso: Ciências da Computação Universidade Federal do Ceará 24 de abril

Leia mais

Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 03 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO)

Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 03 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO) Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 03 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO) Parte: 1 Prof. Cristóvão Cunha Objetivos de aprendizagem

Leia mais

APLICAÇÃO DA MODELAGEM UML NA FASE DE ANÁLISE DE UM PROJETO DE SOFTWARE PARA AGENDAMENTO DE USO DE VEÍCULOS INTERNOS DE UMA EMPRESA

APLICAÇÃO DA MODELAGEM UML NA FASE DE ANÁLISE DE UM PROJETO DE SOFTWARE PARA AGENDAMENTO DE USO DE VEÍCULOS INTERNOS DE UMA EMPRESA APLICAÇÃO DA MODELAGEM UML NA FASE DE ANÁLISE DE UM PROJETO DE SOFTWARE PARA AGENDAMENTO DE USO DE VEÍCULOS INTERNOS DE UMA EMPRESA ANDRE APARECIDO LEAL DE ALMEIDA Discente da AEMS Faculdades Integradas

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

UNIVERSIDADE FEDERAL DE GOIÁS CERCOMP (CENTRO DE RECURSOS COMPUTACIONAIS) TUTORIAL DE USO DO WEBMAIL - UFG

UNIVERSIDADE FEDERAL DE GOIÁS CERCOMP (CENTRO DE RECURSOS COMPUTACIONAIS) TUTORIAL DE USO DO WEBMAIL - UFG UNIVERSIDADE FEDERAL DE GOIÁS CERCOMP (CENTRO DE RECURSOS COMPUTACIONAIS) TUTORIAL DE USO DO WEBMAIL - UFG Página 1 de 26 Sumário Introdução...3 Layout do Webmail...4 Zimbra: Nível Intermediário...5 Fazer

Leia mais

Boas Práticas de Desenvolvimento Seguro

Boas Práticas de Desenvolvimento Seguro Boas Práticas de Desenvolvimento Seguro Julho / 2.012 Histórico de Revisões Data Versão Descrição Autor 29/07/2012 1.0 Versão inicial Ricardo Kiyoshi Página 2 de 11 Conteúdo 1. SEGURANÇA DA INFORMAÇÃO

Leia mais

Soluções de Acessibilidade. VLibras - Desktop. Manual de Instalação da Ferramenta. Microsoft Windows R. Núcleo de Pesquisa e Extensão / LAViD

Soluções de Acessibilidade. VLibras - Desktop. Manual de Instalação da Ferramenta. Microsoft Windows R. Núcleo de Pesquisa e Extensão / LAViD Soluções de Acessibilidade VLibras - Desktop Manual de Instalação da Ferramenta Microsoft Windows R Núcleo de Pesquisa e Extensão / LAViD 2015 INTRODUÇÃO Objetivo Este manual contém introdução e informações

Leia mais

VRAPTOR: O FRAMEWORK DE APRENDIZADO JAVA WEB AUGUSTO BEVILAQUA RAFAEL CIRINO LACERDA SAULO ALMEIDA LIMA

VRAPTOR: O FRAMEWORK DE APRENDIZADO JAVA WEB AUGUSTO BEVILAQUA RAFAEL CIRINO LACERDA SAULO ALMEIDA LIMA VRAPTOR: O FRAMEWORK DE APRENDIZADO JAVA WEB AUGUSTO BEVILAQUA RAFAEL CIRINO LACERDA SAULO ALMEIDA LIMA RESUMO Framework MVC Java voltado para facilitar o desenvolvimento de aplicações web, o VRaptor é

Leia mais

PADRÕES DE SOFTWARE. Jerffeson Teixeira de Souza, Ph.D. Tarciane de Castro Andrade. Grupo de Padrões de Software da UECE (GPS.

PADRÕES DE SOFTWARE. Jerffeson Teixeira de Souza, Ph.D. Tarciane de Castro Andrade. Grupo de Padrões de Software da UECE (GPS. PADRÕES DE SOFTWARE 1 Jerffeson Teixeira de Souza, Ph.D. Tarciane de Castro Andrade Grupo de Padrões de Software da UECE (GPS.UECE) Julho-2009 CONTEÚDO Introdução aos Padrões de Software O quê são padrões?

Leia mais

Programação Orientada a Objetos Herança Técnico em Informática. Prof. Marcos André Pisching, M.Sc.

Programação Orientada a Objetos Herança Técnico em Informática. Prof. Marcos André Pisching, M.Sc. Herança Técnico em Informática, M.Sc. Herança 2 Herança Reutilização de código Exemplo Banco: Um banco oferece diversos serviços que podem ser contratados individualmente pelos clientes. Quando um serviço

Leia mais

Como já foi muito bem detalhado no Capítulo IV, o jcompany Developer Suite pode ser

Como já foi muito bem detalhado no Capítulo IV, o jcompany Developer Suite pode ser A1Criando um módulo de negócio Capítulo 27 Aplicação dividida em módulos - Introdução Como já foi muito bem detalhado no Capítulo IV, o jcompany Developer Suite pode ser compreendido como uma solução de

Leia mais

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DE ALAGOAS CURSO TECNICO EM INFORMATICA DISCIPLINA:

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DE ALAGOAS CURSO TECNICO EM INFORMATICA DISCIPLINA: INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DE ALAGOAS CURSO TECNICO EM INFORMATICA DISCIPLINA: PROGRAMAÇÃO ORIENTADA A OBJETOS PROFESSOR: REINALDO GOMES ASSUNTO: REVISÃO DA INTRODUÇÃO A ORIENTAÇÃO

Leia mais

Tópicos de Orientação a Objetos

Tópicos de Orientação a Objetos Capítulo 3 Tópicos de Orientação a Objetos Um bom design de software visa a uma arquitetura flexível que permita futuras alterações, facilite a produção de código organizado e legível, maximizando seu

Leia mais

Tutorial Folha Express. Como otimizar a confecção da folha de pagamento.

Tutorial Folha Express. Como otimizar a confecção da folha de pagamento. Tutorial Folha Express Como otimizar a confecção da folha de pagamento. Índice Apresentação Pág. 2 Passo 1 Pág. 3 Disponibilização da Folha de Pagamento Passo 2 Pág. 5 Exportação de clientes e Folha de

Leia mais

2 Diagrama de Caso de Uso

2 Diagrama de Caso de Uso Unified Modeling Language (UML) Universidade Federal do Maranhão UFMA Pós Graduação de Engenharia de Eletricidade Grupo de Computação Assunto: Diagrama de Caso de Uso (Use Case) Autoria:Aristófanes Corrêa

Leia mais

Introdução. Olá! Seja bem-vindo ao emailmanager. O melhor sistema de email marketing do mercado.

Introdução. Olá! Seja bem-vindo ao emailmanager. O melhor sistema de email marketing do mercado. 1 Introdução Olá! Seja bem-vindo ao emailmanager. O melhor sistema de email marketing do mercado. Esta guia disponibiliza as principais etapas para sua iniciação ao uso do emailmanager. Nesta guia você

Leia mais

22 DICAS para REDUZIR O TMA DO CALL CENTER. em Clínicas de Imagem

22 DICAS para REDUZIR O TMA DO CALL CENTER. em Clínicas de Imagem para REDUZIR O TMA DO CALL CENTER em Clínicas de Imagem Objetivo Um atendimento eficiente e personalizado é um dos principais fatores que o cliente leva em consideração ao iniciar um processo de fidelização

Leia mais

PROGRAMAÇÃO ORIENTADA A OBJETOS -TRATAMENTO DE EXCEÇÕES. Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br

PROGRAMAÇÃO ORIENTADA A OBJETOS -TRATAMENTO DE EXCEÇÕES. Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br PROGRAMAÇÃO ORIENTADA A OBJETOS -TRATAMENTO DE EXCEÇÕES Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br ROTEIRO 5. Tratamento de Exceções Introdução e conceitos Capturando exceção usando

Leia mais

Geração Automática de Código Android Eficiente a partir de Modelos UML

Geração Automática de Código Android Eficiente a partir de Modelos UML Geração Automática de Código Android Eficiente a partir de Modelos UML Abilio Gambim Parada Aline Rodrigues Tonini Lisane Brisolara de Brisolara Grupo de Arquiteturas e Circuitos Integrados - GACI Universidade

Leia mais

4 O Workflow e a Máquina de Regras

4 O Workflow e a Máquina de Regras 4 O Workflow e a Máquina de Regras O objetivo do workflow e da máquina de regras é definir um conjunto de passos e regras configuráveis. Ao longo de sua execução, um usuário consegue simplificar o seu

Leia mais

software CRON Central de Relacionamento On-Line que consiste em um software completo de gerenciamento de

software CRON Central de Relacionamento On-Line que consiste em um software completo de gerenciamento de Este manual foi elaborado a fim de orientar e auxiliar nossos colaboradores na instalação e manuseio do software CRON Central de Relacionamento On-Line que consiste em um software completo de gerenciamento

Leia mais

Soluções de Acessibilidade. VLibras - Desktop. Manual de Instalação da Ferramenta. Microsoft Windows R. Núcleo de Pesquisa e Extensão / LAViD

Soluções de Acessibilidade. VLibras - Desktop. Manual de Instalação da Ferramenta. Microsoft Windows R. Núcleo de Pesquisa e Extensão / LAViD Soluções de Acessibilidade VLibras - Desktop Manual de Instalação da Ferramenta Microsoft Windows R Núcleo de Pesquisa e Extensão / LAViD 2016 INTRODUÇÃO Objetivo Este manual contém introdução e informações

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos Marcelo Lobosco DCC/UFJF Comunicação em Sistemas Distribuídos Aula 06 Agenda Modelo Cliente-Servidor (cont.) Invocação Remota de Método (Remote Method Invocation RMI) Visão Geral

Leia mais

Diamond Powder - um framework Java ME para coleta de dados

Diamond Powder - um framework Java ME para coleta de dados Artigo GUJ.com.br Diamond Powder - um framework Java ME para coleta de dados Autor Renato Bellia: é formado em Engenharia de Computadores, trabalha com Java EE a mais de 08 anos, e atualmente está utilizando

Leia mais

UM ESTUDO SOBRE ARQUITETURA PARA DESENVOLVIMENTO DE SOFTWARE WEB UTILIZANDO NOVAS TECNOLOGIAS

UM ESTUDO SOBRE ARQUITETURA PARA DESENVOLVIMENTO DE SOFTWARE WEB UTILIZANDO NOVAS TECNOLOGIAS UM ESTUDO SOBRE ARQUITETURA PARA DESENVOLVIMENTO DE SOFTWARE WEB UTILIZANDO NOVAS TECNOLOGIAS Edi Carlos Siniciato ¹, William Magalhães¹ ¹ Universidade Paranaense (Unipar) Paranavaí PR Brasil edysiniciato@gmail.com,

Leia mais

Tutorial para atividades do Trabalho Prático da disciplina DCC 603 Engenharia de Software

Tutorial para atividades do Trabalho Prático da disciplina DCC 603 Engenharia de Software Tutorial para atividades do Trabalho Prático da disciplina DCC 603 Engenharia de Software Antes de iniciar o tutorial, baixar os seguintes arquivos da página do Prof. Wilson: Plataforma reutilizável: http://homepages.dcc.ufmg.br/~wilson/praxis/3.0/praxis.zip

Leia mais

IREasy Manual do Usuário Versão do manual - 0.0.9

IREasy Manual do Usuário Versão do manual - 0.0.9 OBJETIVOS DO PROGRAMA DE COMPUTADOR IREasy Permitir a apuração do Imposto de Renda dos resultados das operações em bolsa de valores (mercado à vista, a termo e futuros). REQUISITOS MÍNIMOS DO COMPUTADOR

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

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

Omega Tecnologia Manual Omega Hosting

Omega Tecnologia Manual Omega Hosting Omega Tecnologia Manual Omega Hosting 1 2 Índice Sobre o Omega Hosting... 3 1 Primeiro Acesso... 4 2 Tela Inicial...5 2.1 Área de menu... 5 2.2 Área de navegação... 7 3 Itens do painel de Controle... 8

Leia mais

Java 2 Standard Edition Como criar classes e objetos

Java 2 Standard Edition Como criar classes e objetos Java 2 Standard Edition Como criar classes e objetos Helder da Rocha www.argonavis.com.br 1 Assuntos abordados Este módulo explora detalhes da construção de classes e objetos Construtores Implicações da

Leia mais

O melhor do PHP. Por que PHP? CAPÍTULO 1. Uma Pequena História do PHP

O melhor do PHP. Por que PHP? CAPÍTULO 1. Uma Pequena História do PHP CAPÍTULO 1 O melhor do PHP Este livro levou bastante tempo para ser feito. Venho usando agora o PHP por muitos anos e o meu amor por ele aumenta cada vez mais por sua abordagem simplista, sua flexibilidade

Leia mais

GuiBi: Um aplicativo para plataforma Android com um guia comercial da cidade de Bambuí MG

GuiBi: Um aplicativo para plataforma Android com um guia comercial da cidade de Bambuí MG GuiBi: Um aplicativo para plataforma Android com um guia comercial da cidade de Bambuí MG Bruno Alberto Soares Oliveira 1,3 ; Lucas Vieira Murilo 1,3 ; Maik Olher Chaves 2,3 1 Estudante de Engenharia de

Leia mais

Geração e execução de scripts de teste em aplicações web a partir de casos de uso direcionados por comportamento 64

Geração e execução de scripts de teste em aplicações web a partir de casos de uso direcionados por comportamento 64 direcionados por comportamento 64 5 Estudo de caso Neste capítulo serão apresentadas as aplicações web utilizadas na aplicação da abordagem proposta, bem como a tecnologia em que foram desenvolvidas, o

Leia mais

AJAX no GASweb. Mas e afinal, para que usamos o AJAX?

AJAX no GASweb. Mas e afinal, para que usamos o AJAX? Nível - Avançado AJAX no GASweb Por: Pablo Hadler AJAX (Asynchronous Javascript and XML) foi criado com o princípio de ser uma maneira rápida e otimizada de podermos fazer requisições Web, sendo esta totalmente

Leia mais

UNIVERSIDADE FEDERAL DE SANTA CATARINA CURSO DE GRADUAÇÃO EM SISTEMAS DE INFORMAÇÃO. Contribuições do MDA para o desenvolvimento de software

UNIVERSIDADE FEDERAL DE SANTA CATARINA CURSO DE GRADUAÇÃO EM SISTEMAS DE INFORMAÇÃO. Contribuições do MDA para o desenvolvimento de software UNIVERSIDADE FEDERAL DE SANTA CATARINA CURSO DE GRADUAÇÃO EM SISTEMAS DE INFORMAÇÃO Contribuições do MDA para o desenvolvimento de software Anna Carla Mohr Verner Helder Eugenio dos Santos Puia Florianópolis,

Leia mais

Sistema de Controle de Solicitação de Desenvolvimento

Sistema de Controle de Solicitação de Desenvolvimento Sistema de Controle de Solicitação de Desenvolvimento Introdução O presente documento descreverá de forma objetiva as principais operações para abertura e consulta de uma solicitação ao Setor de Desenvolvimento

Leia mais

Grécia Um Framework para gerenciamento de eventos científicos acadêmicos utilizando componentes

Grécia Um Framework para gerenciamento de eventos científicos acadêmicos utilizando componentes Grécia Um Framework para gerenciamento de eventos científicos acadêmicos utilizando componentes Resumo Este trabalho apresenta uma infra-estrutura para gerenciamento de eventos científicos acadêmicos na

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

Aprenda como instalar o plugin EclipseUML no Eclipse e como utilizá-lo para fazer engenharia reversa de seu código-fonte.

Aprenda como instalar o plugin EclipseUML no Eclipse e como utilizá-lo para fazer engenharia reversa de seu código-fonte. Omondo EclipseUML Ricardo Rodrigues Lecheta Aprenda como instalar o plugin EclipseUML no Eclipse e como utilizá-lo para fazer engenharia reversa de seu código-fonte. Introdução Neste tutorial será apresentado

Leia mais

Metodologia de Desenvolvimento de Sistemas

Metodologia de Desenvolvimento de Sistemas Metodologia de Desenvolvimento de Sistemas Aula 1 Ementa Fases do Ciclo de Vida do Desenvolvimento de Software, apresentando como os métodos, ferramentas e procedimentos da engenharia de software, podem

Leia mais

AUTOR(ES): VINICIUS RUIZ PONTES SILVA, JAQUELINE CRISTINA DA SILVA, JOÃO PAULO DE OLIVEIRA HONESTO

AUTOR(ES): VINICIUS RUIZ PONTES SILVA, JAQUELINE CRISTINA DA SILVA, JOÃO PAULO DE OLIVEIRA HONESTO Anais do Conic-Semesp. Volume 1, 2013 - Faculdade Anhanguera de Campinas - Unidade 3. ISSN 2357-8904 TÍTULO: IMPLEMENTAÇÃO DE UM SISTEMA PARA INTERCÂMBIOS ESTUDANTIS CATEGORIA: CONCLUÍDO ÁREA: ENGENHARIAS

Leia mais

DESENVOLVENDO APLICAÇÕES UTILIZANDO JAVASERVER FACES E MVC

DESENVOLVENDO APLICAÇÕES UTILIZANDO JAVASERVER FACES E MVC DESENVOLVENDO APLICAÇÕES UTILIZANDO JAVASERVER FACES E MVC Felipe Moreira Decol Claro 1, Késsia Rita da Costa Marchi 1 1 Universidade Paranaense (Unipar) Paranavaí PR Brasil felipe4258@hotmail.com, kessia@unipar.br

Leia mais

Factory Method. Edeyson Andrade Gomes www.edeyson.com.br

Factory Method. Edeyson Andrade Gomes www.edeyson.com.br Factory Method Edeyson Andrade Gomes www.edeyson.com.br Agenda Resumo Quando Usar Participantes Colaborações Conseqüências Exemplo Estrutura Genérica Exercício 2 Resumo Ao invés do cliente instanciar objetos

Leia mais

O Novo Portal Etilux também foi criado para ser um facilitador para nossa Força de Vendas, abrangendo as seguintes características:

O Novo Portal Etilux também foi criado para ser um facilitador para nossa Força de Vendas, abrangendo as seguintes características: INTRODUÇÃO: O Novo Portal Etilux também foi criado para ser um facilitador para nossa Força de Vendas, abrangendo as seguintes características: Ser uma alternativa para substituição dos volumosos e pesados

Leia mais

Estrutura de Relacionamento:

Estrutura de Relacionamento: 1 Índice Por que ter Guia de Relacionamento e Suporte?... 3 Qual a Estrutura de Relacionamento com o Cliente?... 3 Agente de Atendimento (CAT):... 3 Gerente de Contas (GC):... 3 Gerente de Serviço (GS):...

Leia mais

Laravel: De Aprendiz a Artesão (Brazilian Portuguese)

Laravel: De Aprendiz a Artesão (Brazilian Portuguese) Laravel: De Aprendiz a Artesão (Brazilian Portuguese) Taylor Otwell and Pedro Borges This book is for sale at http://leanpub.com/laravel-pt-br This version was published on 2013-10-01 This is a Leanpub

Leia mais

Prototipação de Software

Prototipação de Software UNIVERSIDADE ESTADUAL PAULISTA INSTITUTO DE BIOCIÊNCIAS, LETRAS E CIÊNCIAS EXATAS DEPARTAMENTO DE CIÊNCIAS DE COMPUTAÇÃO E ESTATÍSTICA Prototipação de Software Engenharia de Software 2o. Semestre de 2005

Leia mais

LONWORKS VISÃO DO PROTOCOLO DE COMUNICAÇÃO

LONWORKS VISÃO DO PROTOCOLO DE COMUNICAÇÃO LONWORKS VISÃO DO PROTOCOLO DE COMUNICAÇÃO Aldo Ventura da Silva * RESUMO O presente trabalho teve como objetivo principal apresentar a tecnologia LonWorks, passando por alguns atributos da tecnologia,

Leia mais