Fixture-Factory. Criando objetos para seus testes. Como criar objetos através de templates para serem utilizados como massa de dados em seus testes.
|
|
- Heloísa Affonso Felgueiras
- 8 Há anos
- Visualizações:
Transcrição
1 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 e quando dependemos de objetos com determinados valores para realizar o teste, como fazer? O Fixture-Factory é um framework que surgiu para auxiliar na criação e manutenção de objetos utilizados nos testes, tudo isto de uma maneira simples e intuitiva através da declaraçāo de templates. Já faz algum tempo que a comunidade de desenvolvimento de software discute a necessidade de garantir a qualidade do que está sendo desenvolvido. Em busca disto surgiram algumas soluções como o uso de testes automatizados e TDD. Aplicar estes conceitos pode parecer um pouco complicado no início e uma das maiores dificuldades encontradas é de como criar os dados necessários para realizar os testes. Uma das soluções mais utilizadas é o uso de Fixtures. Neste artigo apresentaremos uma solução alternativa/complementar às Fixtures, que é o Fixture- -Factory um framework que auxiliar na criação dos dados necessários quando e onde precisamos. Tudo isto através uma maneira programática, feito de programadores para programadores. Fixtures As Fixtures são utilizadas para especificar os dados que serão criados. Para realizar essa especificação podem ser utilizados arquivos xml, json, yaml etc. Além de criar estes arquivos que dizem quais valores os objetos criados terão é necessário realizar algumas configurações para que tudo funcione (acesso a base de dados, por exemplo). Após configurado, é possível utilizar esses dados para mockar resultados de métodos, consultas a base de dados, consultas webservices etc. O grande problema das Fixtures é que elas acabam tornando-se difíceis de manter em longo prazo. Com o passar do tempo, a tendência é termos diversos arquivos de Fixtures e em alguns casos até arquivos grandes demais, que causam grande dificuldade / 26
2 Nykolas Laurentino de Lima É programador na Amil, trabalha com Java há mais de 4 anos. Certificado SCJP e SCWCD. na manutenção. Além disso, os dados configurados nas Fixtures são em sua grande maioria hard-coded, o que muitas vezes leva o programador a escrever testes baseados nesses dados específicos. O problema de testar baseado em dados fixos é que quando os dados mudarem, quando a aplicação for para produção, por exemplo, o código pode não funcionar. Exemplo de fixture usando YAML: valid_student: id: 1 nome: Nykolas Laurentino de Lima nykolas.lima@gmail.com datanascimento: 02/06/1991 mediafinal: 7 Fixture-Factory O Fixture-Factory é um framework que foi criado para facilitar a criação de objetos para serem utilizados nos testes. Diferente das Fixtures, não é necessária nenhuma configuração adicional. Só é necessário descrever quais valores queremos que nossos objetos tenham e pronto. Além de não precisar de nenhuma configuração adicional, a definição dos valores que serão utilizados nos nossos objetos é feita programaticamente, ou seja, utilizando código Java. Sem arquivos XML, YAML, JSON ou qualquer outro tipo. O framework funciona de maneira similar ao Factory-Girl utilizado na criação de testes em Ruby. Template Para definirmos os valores que nossos objetos gerados terão é necessário escrevermos um template para eles. O template irá definir quais valores serão gerados para cada propriedade do nosso objeto, mas, diferentemente das Fixtures, os templates podem definir diversos valores possíveis para a mesma propriedade. Podemos gerar valores aleatórios baseados em uma lista de valores possíveis, por meio de expressões regulares, períodos de data etc. Uma das grandes vantagens na utilização de Templates e não de Fixtures estáticas é que criamos objetos que possuem valores que variam constantemente, a cada execução do mesmo teste o objeto utilizado por ele pode ter valores diferentes. Desta maneira nossos testes tendem a ser menos atrelados a dados específicos e mais direcionados a padrões de dados que nós definimos como válidos. Um exemplo muito comum de testes criados baseados em dados é quando dependemos de um período de data. Com o uso de Templates podemos definir que o valor de determinado atributo deve ser de 6 meses atrás, isto pode ser feito de uma maneira simples e fácil, o que com o uso Fixtures poderia demandar uma quantidade considerável de refactoring e mocks. Criando o Template A criação do template é bem simples, dizemos para qual classe desejamos criar o template, qual o nome dele e então configuramos os valores para as propriedades da classe. Vale lembrar que uma mesma classe pode ter diversos templates diferentes. Listagem 1. A Listagem 1 exemplifica a codificação de um template para a classe Client. add( id, 1L); add( name, Nykolas Laurentino de Lima ); add( nickname, geek ); add( , ${nickname@gmail.com ); add( birthday, new Date()); ).addtemplate( nerdclient, add( id, 2L); add( name, Anderson Parra ); add( nickname, nerd ); add( , ${nickname@gmail.com ); add( birthday, new Date()); 27 \
3 Na Listagem 1 nós criamos dois templates para a classe Client, um deles se chama geekclient e o outro nerdclient. Note que podemos utilizar placeholders para criar valores de uma propriedade a partir de outra propriedade, como foi feito na propriedade . Mais abaixo será explicado o uso de funções para gerar valores dinamicamente na criação do objeto. Para obter uma instância do template criado só precisamos informar a classe desejada e o nome do template: Listagem 2. A Listagem 2 exemplifica a codificação para obter uma instância da classe Client através do template geekclient. Fixture.from(Client.class).gimme( geekclient ); Um exemplo do objeto gerado para o template geekclient pode ser visto na figura 1. Figura 1. Exemplo de objeto gerado para o template geekclient. Relacionamentos Tratar os relacionamentos entre os objetos também pode ser feito de maneira simples e fácil através das RelationFunctions. Listagem 3. A Listagem 3 exemplifica a codificação das Relation Functions one e has. Fixture.of(Address.class).addTemplate( brazilianaddress, add( id, 1L); add( street, Paulista Avenue ); add( city, São Paulo ); add( state, SP ); add( country, Brazil ); add( zipcode, ); Fixture.of(Phone.class).addTemplate( brazilianphonenumber, add( number, ); add( address, one(address.class, brazilianaddress )); add( phones, has(3).of(phone.class, brazilianphonenumber )); A função one irá criar uma instância da classe Address utilizando o template brazilianaddress que foi criado logo acima. A propriedade phones é uma lista de telefones, portanto utilizamos a função has e dizemos para ela quantas instâncias nós queremos, de qual classe e qual template será utilizado. Agora ao obtermos uma instância do template geekclient, automaticamente serão criados os relacionamentos com Address e Phone utilizando os templates declarados. Um exemplo dos relacionamentos criados pode ser visto na figura 2. Functions As Functions são utilizadas para gerar valores dinâmicos para as propriedades de um objeto. As RelationFunctions explicadas na seção anterior exemplificam a geração de objetos para os relacionamentos, mas existem outras funções para auxiliar na criação de valores simples. Random A função random é utilizada para escolher um valor aleatoriamente dentre uma lista de possíveis valores. Figura 2. Exemplo de objeto gerado utilizando as funções de relacionamento one e has. / 28
4 Listagem 4. A Listagem 4 exemplifica a codificação da função random para geração de valores aleatórios. add( name, random( Nykolas Laurentino de Lima, Anderson Parra )); Ao obter uma instância do template geekclient a propriedade name terá seu valor gerado aleatoriamente conforme configurado. Regex A função regex pode ser utilizada para gerar valores baseados em uma expressão regex. Listagem 5. Utilizando expressões regulares para gerar o valor da propriedade. Fixture.of(Phone.class). addtemplate( brazilianphonenumber, add( number, regex( (\\d{2) (\\d{4) - (\\d{4) )); new SimpleDateFormat( yyyy-mm-dd ))); add( contractendingdate, afterdate( ), new SimpleDateFormat( yyyy-mm-dd )); add( lastlogindate, instant( now )); Name As funções name auxiliam na criação de nomes aleatórios. Listagem 7. Utilizando as funções de nomes para gerar nomes aleatórios. new Rule(){{ add( name, firstname()); add( lastname, lastname()); Um exemplo dos valores gerados pelas funções name e lastname pode ser visto na figura 4. Um exemplo do resultado da função regex pode ser visto na figura 3. Figura 4. Exemplo de valores gerados através das funções name e lastname. Figura 3. Exemplo de valor gerado através da função regex. Date Para tratamento de datas podemos utilizar as funções beforedate, afterdate, randomdate e instant. Estas funções facilitam a manipulação de datas através de uma interface simples e intuitiva. Listagem 6. Utilizando as funções de datas para gerar o valor das propriedades. add( birthday, randomdate( , , new SimpleDateFormat( yyyy-mm-dd ))); add( contractbegginingdate, beforedate( , Refatorando nossos templates Podemos agora refatorar os templates para Client, Address e Phone para utilizarem as functions. Deste modo os valores serão gerados dinamicamente no momento em que nossos objetos forem utilizados nos testes. Listagem 8.Template para Client refatorado. Fixture.of(Client.class).addTemplate( geekandnerdclient, add( id, random(long.class, range(1l, 200L))); add( name, random( Nykolas Laurentino de Lima, Anderson Parra )); add( lastname, lastname()); add( nickname, random( nerd, geek )); add( , ${nickname@gmail.com ); add( birthday, instant( 18 years ago )); add( address, one(address.class, brazilianaddress )); 29 \
5 add( phones, has(3).of(phone.class, brazilianphonenumber )); // Client Listagem 9. Template para Address refatorado. Fixture.of(Address.class).addTemplate( brazilianaddress, add( id, random(long.class, range(1l, 100L))); add( street, random( Paulista Avenue, Ibirapuera avenue )); add( city, São Paulo ); add( state, SP ); add( country, Brazil ); add( zipcode, random( , )); Listagem 10. Template para Phone refatorado. Fixture.of(Phone.class). addtemplate( brazilianphonenumber, add( number, regex( (\\d{2) \\d{4-\\d{4 )); Após o refactoring é possível notar a melhora no código, na definição dos valores que serão gerados e o ganho que isto traz na abrangência e diversidade de dados que serão testados. Organizando seus templates É possível criar os templates em qualquer lugar. de uma classe de testes ou até mesmo dentro do próprio método que realiza o teste. Entretanto, uma boa prática para a organização dos templates é a criação de classes separadas para declarar os templates de cada módulo do seu sistema. Nos meus projetos pessoais eu costumo criar uma classe TemplateLoader que contém uma inner class para cada entidade ou módulo do meu sistema. Listagem 11. Exemplo de TemplateLoader responsável pela criação dos templates. public class TemplateLoader { public static void loadtemplates() { TemplateLoader.ClientTemplate.loadTemplates(); private static class ClientTemplate { public static void loadtemplates() { //Declaração dos outros templates relacionados a Após criar o TemplateLoader é possível chamar o método TemplateLoader.loadTemplates para carregar todos os templates ou carregar somente os templates desejados através do método TemplateLoader. ClientTemplate.loadTemplates(). Considerações finais O Fixture-Factory oferece uma DSL (domain- -specific language) simples e intuitiva para criação de objetos para nossos testes. Com o uso das Relation Functions, configurar os relacionamentos entre as entidades torna-se uma tarefa fácil. Para relacionamentos one-to-one basta utilizar a função one dizendo a classe e o nome do template a ser utilizado. Para relacionamentos one- -to-many a função has recebe a classe, a quantidade de instâncias desejadas e o nome do template a ser utilizado. Comparado com as Fixtures, o Fixture-Factory possui a vantagem de sua utilização e configuração ser feita 100% com código Java, não precisando de arquivos XML ou JSON. Com isto a leitura, debug, identificação de erros e refactoring são muito melhores (caso você erre algo na sintaxe, o compilador vai te avisar). Quando utilizamos fixtures ou criamos nossos objetos na mão no momento do teste, estes objetos possuem sempre os mesmos valores fixos que foram configurados. Isto pode influenciar o programador a escrever testes baseados nesses dados hard-coded, o que pode acabar escondendo problemas na implementação do código que poderiam ser identificados no momento do teste caso os valores fossem gerados através de padrões configurados no Template do Fixture-Factory. Este é um exemplo claro da vantagem do uso de Templates e das Functions do framework para geração dos objetos. /referências > DO repositório do Fixture-Factory no github é: github.com/aparra/fixture-factory > Dúvidas, sugestões ou qualquer outro assunto relacionado ao framework podem ser enviadas para a lista Mailing List( forum/?fromgroups#!forum/fixture-factory). > Fontes utilizados no artigo: nykolaslima/fixture-factory-mundoj > Factory-Girl, solução parecida utilizada em Ruby: / 30
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 maisOrientação a Objetos
Orientação a Objetos 1. Sobrecarga (Overloading) Os clientes dos bancos costumam consultar periodicamente informações relativas às suas contas. Geralmente, essas informações são obtidas através de extratos.
Leia maisSistema 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 maisAná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 maisManual de utilização do sistema OTRS (Atendimento) Cliente Externo
Manual de utilização do sistema OTRS (Atendimento) Cliente Externo 1 LISTA DE ILUSTRAÇÕES FIGURA 1 - TELA DE LOGIN... 5 FIGURA 2 - TELA INICIAL... 6 FIGURA 3 PREFERÊNCIAS DO USUÁRIO... 6 FIGURA 4 NOVO
Leia maisTESTES 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 maisGerenciamento de Projetos
Gerenciamento de Projetos O objetivo do módulo de Gerenciamento de Projetos é ajudar a empresa a gerenciar com mais eficiência os seus projetos. Controle dos prazos, das tarefas, dos eventos, da quantidade
Leia maisIntrodução a Java. Hélder Nunes
Introdução a Java Hélder Nunes 2 Exercício de Fixação Os 4 elementos básicos da OO são os objetos, as classes, os atributos e os métodos. A orientação a objetos consiste em considerar os sistemas computacionais
Leia maisManual Operacional SIGA
SMS - ATTI Julho -2012 Conteúdo Sumário... 2... 3 Consultar Registros... 4 Realizar Atendimento... 9 Adicionar Procedimento... 11 Não Atendimento... 15 Novo Atendimento... 16 Relatórios Dados Estatísticos...
Leia maisParte 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 maisSistema de Digitalização e Gerenciamento de Arquivos On-Line
Sistema de Digitalização e Gerenciamento de Arquivos On-Line O aplicativo Aplicativo com quase 3 anos de mercado, onde gerencia atualmente mais de 500.000 arquivos sendo eles entre digitalizados ou anexados
Leia maisTOTVS BA Guia de Customização Linha Logix
TOTVS BA Guia de Customização Linha Logix Guia de Customização Sumário Título do documento 1. Objetivo... 3 2. Introdução... 3 3. Customização... 3 2 TOTVS BA Linha Logix Guia de Customização Projeto/Versão:
Leia maisIP significa Internet Protocol. A Internet é uma rede, e assim como ocorre em qualquer tipo de rede, os seus nós (computadores, impressoras, etc.
Endereços IP Endereços IP IP significa Internet Protocol. A Internet é uma rede, e assim como ocorre em qualquer tipo de rede, os seus nós (computadores, impressoras, etc.) precisam ter endereços. Graças
Leia maisUSANDO O IZCODE PARA GERAR SOFTWARE RAPIDAMENTE
USANDO O IZCODE PARA GERAR SOFTWARE RAPIDAMENTE SUMÁRIO usando o izcode... 1 para gerar software rapidamente... 1 introdução... 2 o que é o izcode?... 2 Como funciona o izcode?... 2 os tipos diferentes
Leia maisGerenciamento de Contatos
Gerenciamento de Contatos O objetivo deste módulo é ajudar a gerenciar todos os contatos da empresa. Além dos dados mais importantes, o módulo permite cadastrar anotações e relacionar as tarefas e eventos
Leia maisImplementando 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 maisISO/IEC 12207: Gerência de Configuração
ISO/IEC 12207: Gerência de Configuração Durante o processo de desenvolvimento de um software, é produzida uma grande quantidade de itens de informação que podem ser alterados durante o processo Para que
Leia maisEngenharia 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 maisPadrões de Projeto. Singleton
Padrões de Projeto Padrões de Criação Singleton Singleton Assegura que uma classe tenha apenas uma instância e provê um ponto de acesso global a ela 2 Livro Texto: Design Pattern - Elements 1 Motivação
Leia maisLinguagem de Programação III
Linguagem de Programação III Aula-3 Criando Classes em Java Prof. Esbel Tomás Valero Orellana Da Aula Anterior Classes em Java, sintaxe básica Tipos básicos de dados em Java, como escolher o tipo apropriado
Leia maisDespachante Express - Software para o despachante documentalista veicular DESPACHANTE EXPRESS MANUAL DO USUÁRIO VERSÃO 1.1
DESPACHANTE EXPRESS MANUAL DO USUÁRIO VERSÃO 1.1 1 Sumário 1 - Instalação Normal do Despachante Express... 3 2 - Instalação do Despachante Express em Rede... 5 3 - Registrando o Despachante Express...
Leia maisManual Administrador - Mídia System
Manual Administrador - Mídia System Logo após cadastrarmos sua Empresa em nosso sistema, será enviado um e-mail confirmando as informações de acesso do Administrador do sistema. Obs: Caso não tenha recebido
Leia maisManual do Visualizador NF e KEY BEST
Manual do Visualizador NF e KEY BEST Versão 1.0 Maio/2011 INDICE SOBRE O VISUALIZADOR...................................................... 02 RISCOS POSSÍVEIS PARA O EMITENTE DA NOTA FISCAL ELETRÔNICA.................
Leia maisConstrutor de sites SoftPixel GUIA RÁPIDO - 1 -
GUIA RÁPIDO - 1 - Sumário Introdução...3 Por que utilizar o Construtor de Sites?...3 Vantagens do Construtor de Sites...3 Conceitos básicos...3 Configuração básica do site...5 Definindo o layout/template
Leia maisManual do Atendente. Treinamento OTRS Help Desk
Manual do Atendente Treinamento OTRS Help Desk Sumário Apresentação... 4 Efetuando login... 5 Conhecendo a interface de atendimento...5 Painel de Controle... 5 Chamados... 6 Visão de Filas... 6 Pesquisas...
Leia maisCriar alertas de suprimentos e serviço
Criar alertas de suprimentos e serviço Para criar alertas de suprimentos e ser avisado quando o toner está próximo de acabar ou problemas com os dispositivos, sabendo antecipadamente o código de erro que
Leia maisControle de Estoque. Configuração e personalização do módulo
Controle de Estoque O objetivo do módulo de Controle de Estoque á ajudar a controlar a quantidade de produtos no estoque da empresa, avisar sobre problemas com quantidades mínimas, lotes e validades vencendo.
Leia maisCriando & Consumindo um WebService com ASP.NET 2.0 Publicado em: 25 de Agosto de 2007 Por Herman Ferdinando Arais
ASP.NET > WebService herman_arais@yahoo.com.br Introdução Um WebService é um componente, ou unidade lógica de aplicação, acessível através de protocolos padrões de Internet. Como componentes, esses serviços
Leia maistarefa 1. Para criar uma Tarefa clique em Ativar edição.
tarefa Possibilita que o aluno faça um envio de arquivo ou texto através do editor do Moodle. Aos professores, o recebimento de tarefas permite fazer comentários, avaliar e dar nota. 1. Para criar uma
Leia maisQUALIDATA Soluções em Informática. Módulo CIEE com convênio empresas
FM-0 1/21 ÍNDICE 1. MÓDULO DESKTOP(SISTEMA INSTALADO NO CIEE)... 2 Cadastro de Ofertas de Empregos:... 2 Cadastro de Eventos:... 3 Cadastro de Instituições do Curriculum:... 5 Cadastro de Cursos do Curriculum:...
Leia maisManual do Sistema "Vida Controle de Contatos" Editorial Brazil Informatica
Manual do Sistema "Vida Controle de Contatos" Editorial Brazil Informatica I Vida Controle de Contatos Conteúdo Part I Introdução 2 1 Vida Controle... de Contatos Pessoais 2 Part II Configuração 2 1 Configuração...
Leia maisO Excel é um programa de computador desenvolvido para gerenciar dados na forma de planilhas.
O que é o Excel? O Excel é um programa de computador desenvolvido para gerenciar dados na forma de planilhas. Ele possibilita ao usuário desenvolver planilhas que efetuem cálculos, dos mais simples aos
Leia maisEsta dissertação apresentou duas abordagens para integração entre a linguagem Lua e o Common Language Runtime. O objetivo principal da integração foi
5 Conclusão Esta dissertação apresentou duas abordagens para integração entre a linguagem Lua e o Common Language Runtime. O objetivo principal da integração foi permitir que scripts Lua instanciem e usem
Leia maisgerenciamento de portais e websites corporativos interface simples e amigável, ágil e funcional não dependendo mais de um profissional especializado
O NetPublisher é um sistema de gerenciamento de portais e websites corporativos (intranets ou extranets), apropriado para pequenas, médias e grandes empresas. O conteúdo do website pode ser atualizado
Leia maisPROGRAMANDO EM C# ORIENTADO A OBJETOS
PROGRAMANDO EM C# ORIENTADO A OBJETOS AGENDA MÓDULO 2 Domínio e Aplicação Objetos, Atributos e Métodos Classes em C# Criando Objetos em C# Referências em C# Manipulando Atributos Valores Padrão Exercícios
Leia maisEntendendo como funciona o NAT
Entendendo como funciona o NAT Vamos inicialmente entender exatamente qual a função do NAT e em que situações ele é indicado. O NAT surgiu como uma alternativa real para o problema de falta de endereços
Leia maisPAINEL GERENCIADOR DE E-MAILS
Este manual foi criado com o objetivo de facilitar o gerenciamento de suas contas de e-mail. Com ele, o administrador poderá criar e excluir e-mails, alterar senha, configurar redirecionamento de contas,
Leia maisCasos de teste semânticos. Casos de teste valorados. Determinar resultados esperados. Gerar script de teste automatizado.
1 Introdução Testes são importantes técnicas de controle da qualidade do software. Entretanto, testes tendem a ser pouco eficazes devido à inadequação das ferramentas de teste existentes [NIST, 2002].
Leia maisData Transformation Services (DTS) por Anderson Ferreira Souza
Data Transformation Services (DTS) por Anderson Ferreira Souza O Sql Server possui um recurso extremamente poderoso que é muito pouco utilizado pelos administradores e programadores. Com certeza, sendo
Leia maisPlugins TerraView. Última revisão: 12/12/32006 Versão TerraLib: 3.1.4
Plugins TerraView Última revisão: 12/12/32006 Versão TerraLib: 3.1.4 Requisitos Código completo da TerraLib na estrutura de diretórios sugerida no site da TerraLib 1. Código completo do TerraView na estrutura
Leia maisEspecificação do 3º Trabalho
Especificação do 3º Trabalho I. Introdução O objetivo deste trabalho é abordar a prática da programação orientada a objetos usando a linguagem Java envolvendo os conceitos de classe, objeto, associação,
Leia maisPrevayler. Perola. André Luís Sales de Moraes Juliana Keiko Yamaguchi Tatiana Yuka Takaki
Prevayler Perola André Luís Sales de Moraes Juliana Keiko Yamaguchi Tatiana Yuka Takaki Prevayler Prevayler é a implementação em Java do conceito de Prevalência. É um framework que prega uma JVM invulnerável
Leia mais1. Apresentação. 1.1. Objetivos
1.1. Objetivos 1. Apresentação Neste capítulo estão descritos os objetivos gerais do livro, os requisitos desejáveis do estudante para que possa utilizá-lo eficientemente, e os recursos necessários em
Leia maisProgramação de Computadores - I. Profª Beatriz Profº Israel
Programação de Computadores - I Profª Beatriz Profº Israel Ambiente de Desenvolvimento Orientação a Objetos É uma técnica de desenvolvimento de softwares que consiste em representar os elementos do mundo
Leia maisJava Mail Server. Manual do Utilizador
Java Mail Server Manual do Utilizador Introdução às Redes e Comunicações 2002/2003 Java Mail Client Janela de Ligação O Java Mail Client (JMC), assim que é inicializado, mostra uma janela que irá possibilitar
Leia maiswww.coldfusionbrasil.com.br
www.coldfusionbrasil.com.br 2000 PASSANDO VARIÁVEIS ATRAVÉS DE FORM E URL 3 ALTERA.CFM 3 FORMALTERA.CFM 4 ALTERA.CFM 4 FORMALTERA.CFM 4 CRIANDO E MANIPULANDO VARIÁVEIS COM CFSET 4 VALORES ESTÁTICOS 5 PARÂMETROS
Leia maisManual do Painel Administrativo
Manual do Painel Administrativo versão 1.0 Autores César A Miggiolaro Marcos J Lazarin Índice Índice... 2 Figuras... 3 Inicio... 5 Funcionalidades... 7 Analytics... 9 Cidades... 9 Conteúdo... 10 Referência...
Leia maisSISTEMA 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 maisTrecho retirando do Manual do esocial Versão 1.1
Trecho retirando do Manual do esocial Versão 1.1 A rotina de acesso direto ao XML do S-1000, o usuário pode encontrar na opção de cadastro de Empresas do SIP. Sempre que o usuário localizar a figura ao
Leia maisSistemas Operacionais
Sistemas Operacionais Sistemas Operacionais Prof. Marcelo Sabaris Carballo Pinto Gerenciamento de Dispositivos Gerenciamento de Dispositivos de E/S Introdução Gerenciador de Dispositivos Todos os dispositivos
Leia mais4 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 maisPlanejando o aplicativo
Um aplicativo do Visual FoxPro geralmente inclui um ou mais bancos de dados, um programa principal que configura o ambiente de sistema do aplicativo, além de uma interface com os usuários composta por
Leia maisManual de Utilização do Zimbra
Manual de Utilização do Zimbra Compatível com os principais navegadores web (Firefox, Chrome e Internet Explorer) o Zimbra Webmail é uma suíte completa de ferramentas para gerir e-mails, calendário, tarefas
Leia maisEvoluçã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 maisVamos criar uma nova Página chamada Serviços. Clique em Adicionar Nova.
3.5 Páginas: Ao clicar em Páginas, são exibidas todas as páginas criadas para o Blog. No nosso exemplo já existirá uma página com o Título Página de Exemplo, criada quando o WorPress foi instalado. Ao
Leia maisAcessando um Banco de Dados
Acessando um Banco de Dados Introdução Agora que você já está craque em JSP e já instalou seu servidor, vamos direto para a parte prática! Neste tutorial vamos aprender a acessar um banco de dados. Para
Leia maisA máscara de sub-rede pode ser usada para dividir uma rede existente em "sub-redes". Isso pode ser feito para:
Fundamentos: A máscara de pode ser usada para dividir uma rede existente em "s". Isso pode ser feito para: 1) reduzir o tamanho dos domínios de broadcast (criar redes menores com menos tráfego); 2) para
Leia maisAnálise de Dados do Financeiro
Análise de Dados do Financeiro Introdução Para reunir em um só local as informações de contas a pagar e receber cadastradas e/ou geradas no sistema TTransp existe a interface de análise de dados do financeiro.
Leia maisPortal Sindical. Manual Operacional Empresas/Escritórios
Portal Sindical Manual Operacional Empresas/Escritórios Acesso ao Portal Inicialmente, para conseguir acesso ao Portal Sindical, nos controles administrativos, é necessário acessar a página principal da
Leia maisPROGRAMAÇÃ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 maisIW10. Rev.: 02. Especificações Técnicas
IW10 Rev.: 02 Especificações Técnicas Sumário 1. INTRODUÇÃO... 1 2. COMPOSIÇÃO DO IW10... 2 2.1 Placa Principal... 2 2.2 Módulos de Sensores... 5 3. APLICAÇÕES... 6 3.1 Monitoramento Local... 7 3.2 Monitoramento
Leia maisNeXT Help Desk Manual do usuário. Abril/2011. NeXT Software
NeXT Help Desk Manual do usuário Abril/2011 NeXT Software Página 1 de 11 Índice Descrição e características do NeXT Help Desk... 3 Conectando no NeXT Help Desk... 4 Menu de acesso... 5 Enviando chamado
Leia maisProjeto de Software Orientado a Objeto
Projeto de Software Orientado a Objeto Ciclo de Vida de Produto de Software (PLC) Analisando um problema e modelando uma solução Prof. Gilberto B. Oliveira Estágios do Ciclo de Vida de Produto de Software
Leia mais3 Dicas MATADORAS Para Escrever Emails Que VENDEM Imóveis
3 Dicas MATADORAS Para Escrever Emails Que VENDEM Imóveis O que é um e- mail bem sucedido? É aquele e- mail que você recebe o contato, envia o e- mail para o cliente e ele te responde. Nós não estamos
Leia maisSISTEMA DE GERENCIAMENTO DE PROJETOS - REDMINE MANUAL DE USO
SISTEMA DE GERENCIAMENTO DE PROJETOS - REDMINE MANUAL DE USO AGOSTO DE 2013 SUMÁRIO STI/UFF - Sistema de Gerenciamento de Projetos do PDI SUMÁRIO... 2 1 Introdução... 3 1.1 O que é e qual a finalidade
Leia maisROTEIRO PARA TREINAMENTO DO SAGRES DIÁRIO Guia do Docente
Conceito ROTEIRO PARA TREINAMENTO DO SAGRES DIÁRIO Guia do Docente O Sagres Diário é uma ferramenta que disponibiliza rotinas que facilitam a comunicação entre a comunidade Docente e Discente de uma instituição,
Leia maisPrototype, 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 maisComo ganhar dinheiro recomendando cursos.
Afiliados Cursos Como ganhar dinheiro recomendando cursos. Conteúdo Apresentação do Autor... 3 Introdução... 4 Panorama do mercado de cursos on-line no Brasil... 4 Objetivo... 5 Requisitos... 5 Métodos
Leia maisProcessos Técnicos - Aulas 4 e 5
Processos Técnicos - Aulas 4 e 5 Trabalho / PEM Tema: Frameworks Públicos Grupo: equipe do TCC Entrega: versão digital, 1ª semana de Abril (de 31/03 a 04/04), no e-mail do professor (rodrigues.yuri@yahoo.com.br)
Leia maisComunidade de Suporte e Feedback
Comunidade de Suporte e Feedback O objetivo deste complemento é criar um canal simples, barato e eficiente de suporte aos clientes, onde eles possam na maioria das vezes aproveitar dúvidas já respondidas,
Leia maisAPLICATIVO 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 maisNetBeans. Conhecendo um pouco da IDE
NetBeans Conhecendo um pouco da IDE Professor: Edwar Saliba Júnior Sumário Apresentação:...1 Criando Um Novo Projeto de Software:...1 Depurando Um Código-fonte:...4 Entendendo o Código-fonte:...7 Dica
Leia maisTutorial Sistema de Eventos de Certificação e Capacitação
Tutorial Sistema de Eventos de Certificação e Capacitação Junho 2014 Sumário 1 O que é o Sistema de Certificados?... 3 2 Como acessar o Sistema?... 3 3 - Pré-requisitos para a Geração dos Certificados...
Leia maisVVS Sistemas (21)3405-9500
Índice Assunto Página Apresentação... 2 Funcionamento do Módulo... 3 Instalação do Módulo... 4 Configurações no C-Plus NF-e... 9 Acessando os arquivos... 11 Apresentação Apresentamos o módulo C-Plus NF-e
Leia maisManual de Operação do Sistema de Tickets Support Suite
Manual de Operação do Sistema de Tickets Support Suite Sumário Acessando a página do HelpDesk helpdesk.virtuem.com.br... 3 Criando um Ticket... 6 Visualizando Tickets Existentes... 9 Respondendo um Ticket...
Leia maisTUTORIAL DO ALUNO. Olá, bem vindo à plataforma de cursos a distância da Uniapae!!!
TUTORIAL DO ALUNO Olá, bem vindo à plataforma de cursos a distância da Uniapae!!! O Moodle é a plataforma de ensino a distância utilizada pela Uniapae sendo a unidade de ensino para rápida capacitação
Leia maisAlgoritmos e Estruturas de Dados II. Trabalho Prático 2
Algoritmos e Estruturas de Dados II Entrega: 24/09/08 Devolução: 15/10/08 Trabalho individual Prof. Jussara Marques de Almeida Trabalho Prático 2 Você foi contratado pela XOL X Online para desenvolver
Leia maisFERRAMENTAS DE COLABORAÇÃO CORPORATIVA
FERRAMENTAS DE COLABORAÇÃO CORPORATIVA Compartilhamento de Arquivos no Google Drive Sumário (Clique sobre a opção desejada para ir direto à página correspondente) Utilização do Google Grupos Introdução...
Leia maisMANUAL DO USUÁRIO SORE Sistema Online de Reservas de Equipamento. Toledo PR. Versão 2.0 - Atualização 26/01/2009 Depto de TI - FASUL Página 1
MANUAL DO USUÁRIO SORE Sistema Online de Reservas de Equipamento Toledo PR Página 1 INDICE 1. O QUE É O SORE...3 2. COMO ACESSAR O SORE... 4 2.1. Obtendo um Usuário e Senha... 4 2.2. Acessando o SORE pelo
Leia maisManual Portal Ambipar
Manual Portal Ambipar Acesso Para acessar o Portal Ambipar, visite http://ambipar.educaquiz.com.br. Login Para efetuar o login no Portal será necessário o e-mail do Colaborador e a senha padrão, caso a
Leia mais3 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 maisUML Aspectos de projetos em Diagramas de classes
UML Aspectos de projetos em Diagramas de classes Após ser definido o contexto da aplicação a ser gerada. Devemos pensar em detalhar o Diagrama de Classes com informações visando uma implementação Orientada
Leia maisManual do Ambiente Moodle para Professores
UNIVERSIDADE FEDERAL DA FRONTEIRA SUL Manual do Ambiente Moodle para Professores Tarefas Versão 1.0b Setembro/2011 Direitos Autorais: Essa apostila está licenciada sob uma Licença Creative Commons 3.0
Leia mais5 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 maisSISTEMAS DE GESTÃO São Paulo, Janeiro de 2005
SISTEMAS DE GESTÃO São Paulo, Janeiro de 2005 ÍNDICE Introdução...3 A Necessidade do Gerenciamento e Controle das Informações...3 Benefícios de um Sistema de Gestão da Albi Informática...4 A Ferramenta...5
Leia maisGuia Prático. PGRural. Adendo Livro Caixa Avançado
Guia Prático PGRural Adendo Livro Caixa Avançado Índice Sobre o PGRural... 3 Conceito... 3 Configurando a empresa... 4 Plano de contas... 5 Conta padrão para participante... 6 Forçar vínculo... 6 Tela
Leia maisPHP: Formulários e upload de múltiplos arquivos Por Alfred Reinold Baudisch 28 de fevereiro de 2006.
PHP: Formulários e upload de múltiplos arquivos Por Alfred Reinold Baudisch 28 de fevereiro de 2006. Veja como montar um formulário para upload de múltiplos arquivos e como processá-lo com o PHP, usando
Leia maisDesenvolvendo Websites com PHP
Desenvolvendo Websites com PHP Aprenda a criar Websites dinâmicos e interativos com PHP e bancos de dados Juliano Niederauer 19 Capítulo 1 O que é o PHP? O PHP é uma das linguagens mais utilizadas na Web.
Leia maisPasso 1: Abra seu navegador e digite http://www.no-ip.com. Passo 2: Na tela que surgir, clique em Get Started.
1 - Como obter seu DNS Dinâmico no No-IP O No-IP, é um sistema de DNS (Domain Name Server), que converte o seu endereço IP em um nome. O que o No-IP faz, é converter o nome do tipo minhacameraip.no-ip.org
Leia maishttp://aurelio.net/vim/vim-basico.txt Entrar neste site/arquivo e estudar esse aplicativo Prof. Ricardo César de Carvalho
vi http://aurelio.net/vim/vim-basico.txt Entrar neste site/arquivo e estudar esse aplicativo Administração de Redes de Computadores Resumo de Serviços em Rede Linux Controlador de Domínio Servidor DNS
Leia maisSistema LigaMagic de Torneios
Sistema LigaMagic de Torneios O Sistema LigaMagic de Torneios (www.ligamagic.com.br) tem como objetivo fortalecer as lojas e organizadores de Magic no Brasil. Para isto estamos criando um sistema de torneios
Leia maisCONFIGURAÇÃO DE WORKFLOW
Manual de Procedimentos - SISPREV WEB CONFIGURAÇÃO DE WORKFLOW Revisado em: 25/05/2010 1/15 O treinamento com o Manual de Procedimentos É com muita satisfação que a Agenda Assessoria prepara este manual
Leia maisManual de utilização do sistema de envio de sms marketing e corporativo da AGENCIA GLOBO. V 1.0. www.sms.agenciaglobo.net
Manual de utilização do sistema de envio de sms marketing e corporativo da AGENCIA GLOBO. V 1.0 www.sms.agenciaglobo.net 1 ACESSO O SISTEMA 1.1 - Para acessar o sistema de envio entre no site http://sms.agenciaglobo.net/
Leia maisPHC XL CS. Reporting Financeiro em Microsoft Excel. O que ganha com este software:
PHC XL CS O que ganha com este software: Apoio à tomada de decisão Relatórios pormenorizados Análises sobre áreas vitais Personalização de funcionalidades Criação automática de mapas e gráficos Importação
Leia maisAnálise e Projeto de Sistemas
Análise e Projeto de Sistemas Prof. M.Sc. Ronaldo C. de Oliveira ronaldooliveira@facom.ufu.br FACOM - 2012 Análise Estruturada de Sistemas Modelo Essencial O Modelo Essencial Indica o que o sistema deve
Leia maisPag: 1/20. SGI Manual. Controle de Padrões
Pag: 1/20 SGI Manual Controle de Padrões Pag: 2/20 Sumário 1 Introdução...3 2 Cadastros Básicos...5 2.1 Grandezas...5 2.2 Instrumentos (Classificação de Padrões)...6 3 Padrões...9 3.1 Padrão Interno...9
Leia maisConfigurar o Furbot no Eclipse
Configurar o Furbot no Eclipse Primeiramente, precisamos abrir o Eclipse. Logo no início, deverá aparecer uma tela assim: Nela, você irá selecionar o local do seu workspace. Workspace é o local onde ficarão
Leia maisO 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