Coltrane. JColtrane: Parser XML com SAX + Anotações. c o l u n a. Processe arquivos XML sem comprometer memória e a clareza do código

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

Download "Coltrane. JColtrane: Parser XML com SAX + Anotações. c o l u n a. Processe arquivos XML sem comprometer memória e a clareza do código"

Transcrição

1 c o l u n a Made in Brazil Coltrane Better than SAX alone JColtrane: Parser XML com SAX + Anotações Processe arquivos XML sem comprometer memória e a clareza do código Renzo Nuccitelli (renzon@gmail.com): É graduado em Engenharia da Computação pelo ITA. Desenvolveu em seu TCC o tema Tratamento de Eventos em Java com Uso de Metadados, produzindo o framework JColtrane, premiado em 2º lugar no concurso search for a XML superstar promovido pela IBM e IDUG. Eduardo Guerra (guerraem@gmail.com) é desenvolvedor de frameworks, participando de projetos opensource como SwingBean, Esfinge Framework, ClassMock e JColtraine. Atualmente está cursando doutorado no ITA, onde também já concluiu graduação em Engenharia da Computação e mestrado. Possui as certificações SCJA, SCJP, SCWCD, SCBCD (1.3 e 5.0), SCJWSD, SCMAD e SCEA e experiência como arquiteto de software nas plataformas Java SE, Java EE e Java ME. Atua também como professor na graduação do ITA e nos cursos de pós-graduação ITA/Stefanini. A API SAX é muito utilizada para fazer processamento XML, porém sua utilização é muitas vezes difícil ou acarreta em códigos de difícil manutenção. Isto ocorre pois os métodos que tratam as tags no SAX são pouco granulares, criando a necessidade de criação de muitas expressões condicionais. Neste artigo será apresentado o framework Jcoltrane, que facilita o processamento de documentos XML com o uso de anotações, aumentando a granularidade das classes de processamento e evitando o grande aninhamento de blocos if/else. Também será visto como o framework fornece flexibilidade na definição do processamento, permitindo inclusive a criação de anotações personalizadas. Pesquisando por fóruns de Java pela internet, é comum observar que os programadores preferem utilizar o DOM (Domain Object abordagem se torna inviável, pois demanda um grande consumo de recursos, visto que todo o conteúdo do documento é armazenado em memória. Nesse momento, ao recorrer aos mesmos fóruns, é comum o programador receber precisa manter referência a todo o documento na memória. Ele percorre o documento em sua ordem natural, permitindo acesso a informações do elemento corrente, e apenas essas informações. Isso faz com que, muitas vezes, o usuário crie atributos em sua classe de processamento para guardar informações sobre elementos já percorridos e que em seus métodos necessite usar grandes aninhamentos de blocos if/else, comprometendo assim a legibilidade e manutenção do código produzido. Como uma alternativa a esse problema, este artigo apresentará o framework JColtrane, um framework nacional que foi um dos projetos premiados no não consumir muita memória, ao mesmo tempo em que mantém algumas formas de acessos às informações já processadas. Além disso, ele provê um conjunto de anotações padrão para definir condições de execução de métodos e a possibilidade de criação de anotações personalizadas, personalização no recebimento dos argumentos e wrapper automático para tipos primitivos. Os exemplos apresentados durante o artigo estarão disponíveis para donwload no site da revista. XML Programming Context Em outubro de 2008 o International DB2 Users Group, com o apoio da IBM, iniciou um concurso com cinco categorias, em 23 países, para promover o banco de dados DB2, especialmente o purexml nas comunidades de desenvolvedores e estudantes. O tema central, como indica o nome do concurso (Search for a XML Superstar), foi o XML. O framework JColtrane foi inscrito na categoria XML Programming Context por apresentar uma forma inovadora de realizar o parsing desse tipo de arquivo. A avaliação incluía tópicos como a utilidade, reusabilidade, documentação, segurança e inovação. Disputando com vários concorrentes, o JColtrane faturou o 1º lugar na sua categoria, afirmando-se como uma solução inovadora e reutilizável reconhecida internacionalmente. Parsing com SAX exemplos apresentados no artigo. Ele possui um elemento raiz chamado <listadeartigos> que pode possuir diversos tipos de elementos como <livro>, <revista> ou <paragrafo>. Cada elemento desse tipo pode possuir atributos representando a língua em que foram escritos e elementos que apresentem partes internas do mesmo. Note que a tag <paragrafo> pode ser encontrada em diversos locais, como, por exemplo, dentro de <livro> e diretamente dentro de <listadeartigos>. 26

2 Listagem 1. Exemplo.xml: arquivo base para os exemplos. <?xml version= 1.0 encoding= UTF-8?> <listadeartigos> <livro lingua= pt disponivelparavenda= true > <paragrafo lingua= ita >Corpo do parágrafo solto do livro</ paragrafo> <capitulo numero= 2 > <paragrafo lingua= pt linha= 5 >Corpo do parágrafo do capítulo </paragrafo> </capitulo> </livro> <revista lingua= eng > <secao numero= 5 > <paragrafo lingua= pt linha= 7 >Corpo do parágrafo da seção </paragrafo> </secao> <paragrafo lingua= pt linha= 6 >Corpo do parágrafo solto na resvista </paragrafo> </revista> <paragrafo lingua= es >Parágrafo Solto</paragrafo> </listadeartigos> Imagine, por exemplo, que esse arquivo tenha sido recebido de algum site, como resposta a uma busca por artigos científicos. Se fosse necessário processar esse documento, mostrando os nomes de todas as tags quando iniciam e quando terminam, bem como o corpo dos parágrafos, na Listagem 2. Listagem 2. SAXHandler: Classe que herda de DefautlHandler do SAX. package com.mundoj.exemplo1; public class SAXHandler extends DefaultHandler { private StringBuilder corpodoparagrafo=null; public void startdocument() { System.out.println( Reservando Recursos... ); corpodoparagrafo = new StringBuilder(); public void enddocument() { System.out.println( Liberando Recursos... ); corpodoparagrafo=null; public void startelement(string uri, String localname, String tag, Attributes atributos) throws SAXException { corpodoparagrafo.delete(0, corpodoparagrafo.length()); public void endelement(string uri, String localname, String tag) throws SAXException { if( paragrafo.equals(tag)){ corpodoparagrafo.delete(0, corpodoparagrafo.length()); public void characters(char[] ch, int start, int lenght) throws SAXException { corpodoparagrafo.append(ch, start, lenght); Esse exemplo básico mostra os cinco principais métodos da classe DefaultHandler que devem ser sobrescritos para realizar o processamento. Eles estão explicados brevemente na Tabela 1. A Listagem 3 apresenta um código que mostra como invocar o handler para fazer o processamento do documento. Listagem 3. SAXHandlerTest: Classe de teste para SAXHandler public class SAXHandlerTest { public static void main(string[] args) { SAXParser parser; try { parser= SAXParserFactory.newInstance().newSAXParser(); File file=new File( exemplo.xml ); InputSource input=new InputSource(file.getAbsolutePath()); parser.parse(input,new SAXHandler()); catch (ParserConfigurationException e) { e.printstacktrace(); catch (SAXException e) { e.printstacktrace(); catch (IOException e) { e.printstacktrace(); catch (Exception e){ e.printstacktrace(); Método startdocument() enddocument() public void startelement(string uri, String localname, String tag, Attributes atributos) public void endelement(string uri, String localname, String tag) Descrição Executado no início do processamento. Utilizado em geral para reservar recursos necessários ao processamento. Executado ao final do processamento. Utilizado em geral para liberar os recursos alocados para o processamento. Executado ao início de todo elemento. Recebe como parâmetros uri, localname, tag e atributos do elemento. Executado ao final de todo element. Recebe como parâmetros uri, local- Name e tag do elemento. Characters Executado diversas vezes para construir a cadeia de caracteres referentes ao corpo de um elemento. A cadeia construída deve ser utilizada somente ao fim dos elementos, momento no qual se garante a total construção da cadeia. Se fosse pedido, como condições, que a língua de um parágrafo fosse comparada à língua do objeto que contém aquele parágrafo (livro ou revista) e que também fossem impressos somente os corpos de parágrafos que estão dentro de livros ou imediatamente dentro de revista, a classe uma possível implementação. 27

3 Listagem 4. SAXHandlerModificada: Classe que herda de DefautlHandler do SAX. public class SAXHandlerModificada extends DefaultHandler { private StringBuilder corpodoparagrafo=new StringBuilder();; private String linguadolivro=null; private String linguadarevista=null; private String linguadoparagrafo=null; private int distanciadoelementoatualpararevista=-1; public void startelement(string uri, String localname, String tag, Attributes atributos) throws SAXException { if(distanciadoelementoatualpararevista!=-1){ distanciadoelementoatualpararevista++; if( livro.equals(tag)){ linguadolivro=new String(atributos.getValue( lingua )); else if( revista.equals(tag)){ linguadarevista=new String(atributos.getValue( lingua )); distanciadoelementoatualpararevista=0; else if( paragrafo.equals(tag)){ linguadoparagrafo=new String(atributos.getValue( lingua )); corpodoparagrafo.delete(0, corpodoparagrafo.length()); public void endelement(string uri, String localname, String tag) throws SAXException { if( livro.equals(tag)){ linguadolivro=null; else if( revista.equals(tag)){ linguadarevista=null; distanciadoelementoatualpararevista=-1; else if( paragrafo.equals(tag)){ if(isrevistaelementopai()){ System.out.println( Língua da revista e parágrafo são iguais: +(linguadarevista.equals(linguadoparagrafo))); else if(linguadolivro!=null){ System.out.println( Língua do livro e parágrafo são iguais: +(linguadolivro.equals(linguadoparagrafo))); if(distanciadoelementoatualpararevista!=-1){ distanciadoelementoatualpararevista--; corpodoparagrafo.delete(0, corpodoparagrafo.length()); public void characters(char[] ch, int start, int lenght) throws SAXException { corpodoparagrafo.append(ch, start, lenght); private boolean isrevistaelementopai(){ if(linguadarevista==null){ return false; else return distanciadoelementoatualpararevista==1; Apenas com a criação de algumas restrições relativamente simples, já se pode notar que foi necessário criar alguns atributos na classe de processamento para manter informações sobre elementos já iniciados, bem como a necessidade de criação de desvios condicionais. É possível perceber que quanto mais condições fossem impostas, mais atributos para manter estado seriam criados e mais blocos if/else seriam necessários para separar as informações. Essa estrutura aumenta a dificuldade para compreensão do código, tornando-o de difícil manutenção. Programadores experientes usariam Handlers, que implementariam uma interface comum, para evitar o uso de tantos desvios condicionais. Como, por exemplo, poderiam ser desenvolvidos handlers para cada tipo de tag e colocadas em um Mapa, de forma que o handler apropriado fosse utilizado dependendo do nome da tag. Contudo, o nome de um elemento não é o único fator que diferencia o processamento, e, nesse caso, o programador teria duas saídas: recorrer aos desvios lógicos ou criar outros handlers. Criando os desvios lógicos, acarretaria nos problemas de dificuldade de compreensão do código já mencionados. Criando mais handlers, a estrutura de tratamento ficaria muito granular, tornando difícil o entendimento da real da condição final para que um tratamento seja executado, já que seria necessária uma navegação entre as associações dos handlers. Listagem 5. ProcessadorComAnotacoesBasicas: Classe para exemplificação das principais Anotações do JColtrane. public class ProcessadorComAnotacoesBasicas private void startdocument() { System.out.println( Reservando Recursos... private void enddocument() { System.out.println( Liberando Recursos... ); Parsing com JColtrane Para utilizar o JColtrane e rodar os exemplos, basta adicionar o jar do projeto, que se encontra para donwload na página do framework (http// baixo dos panos, o jar é o único arquivo necessário. ma classe para executar o processamento. Ele faz uso de anotações para indicar os métodos a serem private void startelement(@tag String tag) { private void endelement(@body String corpodoparagrafo,@tag String tag) { 28

4 A Classe presente na Listagem 5 apresenta as anotações básicas do JColtrane. Elas são brevemente descritas na Tabela 2. Chama-se atenção pelo fato de que não foi necessário utilizar nenhum desvio condicional nem criar novos atributos. Além disso, os métodos não recebem argumentos que não são utilizados. Para testar o funcionamento da classe, poderia ser utilizada a classe constante na Listagem 3, com a alteração apenas do handler passado como ProcessadorComAnotaçõesBasicas()). Ou seja, em vez da implementação que em seu construtor leva como parâmetro a classe anotada para o sobrecarregado para que várias classes anotadas possam ser passadas implementar várias classes de processamento diferentes, o que permite inclusive que a leitura de um arquivo seja estendida sem alterar a classe de processamento original. Anotação Descrição Listagem 6. ProcessadorBasico: Classe para exemplificação de funcionalidades do JColtrane. public class ProcessadorBasico private void startdocument() { System.out.println( Reservando Recursos... private void enddocument() { System.out.println( Liberando Recursos... private void startelement(@tag String tag) { (tag= paragr.*,priority=1) private void endelement(@body String método anotado deve executar no início do processamento do private void imprimirtagencerramento(@tag método anotado deve executar no fim do processamento do método anotado deve executar iniciar método anotado deve executar terminar Tabela 2. Anotações Básicas do JColtrane. Como o leitor pode constatar comparando as tabelas 1 e 2, os nomes das anotações são os mesmos dos métodos principais da classe DefaultHan- Para elucidar algumas funcionalidades do JColtrane, na Listagem 6 consta o código para um processamento equivalente do executado pela classe da Listagem 2. É interessante notar que a primeira anotação possui dois parâmetros: tag e priority. Eles servem para indicar as condições nas quais ca que o método só deve ser executado se a tag possuir prefixo paragraf, outro, se possuir priority maior, ou após, se conter uma prioridade menor. O JColtrane trabalha sempre com expressões regulares para aumentar o "poder de fogo" do desenvolvedor na filtragem de elementos. Além das propriedades já descritas, as anotações fornecem outras opções que estão representadas na Tabela 3. Parâmetro Tipo do parâmetro Descrição Tag String (regex) Método deve ser executado se o elemento processado possui tag aceita pela expressão regular Uri String (regex) Método deve ser executado se o elemento processado possui uri aceita pela expressão regular localname String (regex) Método deve ser executado se o elemento processado possui local name aceito pela expressão regular Attributes Array que pode possui as propriedades name e value, ambos do tipo String(regex) Método deve executar se elemento possui atributo aceito pela regex name e valor aceito pela regex value (opcional) Priority Int Para métodos a serem executados no mesmo processamento de um elemento, aqueles com maior valor de priority executarão antes que os com menor valor Tabela 3. Opções básicas de filtragem. 29

5 Apesar das opções apresentadas já fornecerem uma boa maneira de exprimir condições de execução, o framework ainda fornece mais duas anotações que podem ser usadas. Para elucidar essas anotações, será es- Listagem 7. ProcessadorBasicoModificado: Classe exemplo para public class ProcessadorBasicoModificado private void startelement(@tag String tag) livro ) private void armazenarlinguadolivroi(@generalusemap Map<String,Object> lingua ) String lingua) { map.put( livro, revista ) private void armazenarlinguadarevista(@generalusemap Map<String,Object> lingua ) String lingua) { map.put( revista, livro ) (tag= paragr.*,priority=1) private void endelementdentrodelivro(@body String lingua ) String linguaparagrafo,@generalusemap Map<String,Object> map){ System.out.println( Língua do livro e parágrafo são iguais: +linguaparagrafo.equals(map.get( livro revista,elementdeep=1) (tag= paragr.*,priority=1) private void endelementdentroderevista(@body String corpodoparagrafo,@attribute( lingua ) String Map<String,Object> map){ System.out.println( Língua da revista e parágrafo são iguais: +linguaparagrafo.equals(map.get( revista ))); private void imprimirtagencerramento(@tag String tag){ (tag= livro ) private void anularlinguadolivro(@generalusemap Map<String,Object> map){ map.put( livro, null); (tag= revista ) private void anularlinguadarevista(@generalusemap Map<String,Object> map){ map.put( revista, null); Essa classe possui várias características interessantes a serem explicadas. Primeiramente se ressalta a Ela serve para indicar, como condição adicional, que o elemento em questão deve ser descendente, em qualquer profundidade, do elemento indicado na propriedade tag da anotação. Assim e, essa anotação aceita vários parâmetros de filtragem. Na sequência, pode se observar a Parecida essa anotação indica que o elemento em questão deve ser descendente de um elemento indicado nas propriedades e a profundidade de um para o outro é indicada através da propriedade elementdeep. Além dessas duas anotações, pode ser notado que os parâmetro dos métodos também possuem anotações. Isso acontece para que o framework possa prover para cada método apenas as informações necessárias para seu processamento. Chama-se atenção especial para a O parâmetro anotado com ela recebe o nome do atributo almejado indicado na sua anotação. são Strings, e caso ele tenha um valor inteiro ou booleano, é necessário fazer a conversão. Para evitar esse trabalho, o JColtrane já seta o parâmetro com o tipo correto, isso para os oito tipos primitivos e seus respectivos Wrappers, bem como para a classe String. Assim, para o caso poderia ser usado um parâmetro inteiro ou do tipo Integer anotado. O exemplo de assinatura de um método seria: private void acessarlinha(@ Attribute( linha ) int linha). As outras anotações para parâmetros podem ser observadas com sua descrição na Tabela 4. As opções de filtragem das e, mais o comportamento oferecem uma boa maneira de expressar condições de processamento. Contudo, é sabido que as possibilidades de condições são infinitas e apenas essas anotações não são suficientes em determinados casos. Com isso em mente, o JColtrane fornece uma estrutura que permite aos desenvolvedores criar anotações personalizadas para restringir a invocação de um determinado método. Será descrito no restante deste artigo como criar suas próprias anotações e como estender o JColtrane para implementar o comportamento desejado. Criando Anotações de Processamento Personalizadas Primeiramente, a anotação deve ser criada. Assim como programação de classes, é recomendável dar um nome sugestivo para as mesmas. Nesse exemplo, será criada uma anotação para filtrar elementos que possuam corpo respeitando uma expressão regular. Como o corpo só está disponível quando o elemento finaliza, essa anotação só deverá ser usada em conjunto com. O código da anotação consta na Listagem 8. Para criar um novo tipo de condição, deve-se criar uma classe que implementa a interface Condition. A interface Condition possui o método verify, que retorna um boleano, que deve retornar verdadeiro somente quando o método de processamento anotado deve ser executado. Uma anotação pode possuir várias Conditions ligadas a ela, de forma que todas devem ser satisfeitas para que o método seja executado. Esse método 30

6 Anotação Atribui para o parâmetro o valor do atributo dado pelo seu nome qualificador do elemento corrente. Faz casting automático para todos tipos primitivos ou seus respectivos wrappers. Retorna null para objetos, MIN_VALUE ou false para tipos primitivos, se o elemento não contiver o atributo Atribui para o parâmetro um mapa com todos os atributos daquele Atribui para o parâmetro o galho corrente do Atribui para o parâmetro a uri do elemento Atribui para o parâmetro a tag do elemento Atribui para o parâmetro o local name do elemento Atribui para o parâmetro um mapa de uso geral para armazenar informações importantes a serem compartilhadas entre os métodos. Seu uso evita a criação de inúmeros atributos e permite o compartilhamento de informações caso mais de uma classe seja utilizada para o Atribui para o parâmetro o corpo do elemento corrente e só pode ser utilizado em métodos anotados com. Possui as propriedades newline e tab, que podem assumir valores verdadeiro (true) ou falso (false), que configuram respectivamente se a String deve vir com ou sem marcadores de linha ou tabulação. Listagem 8. ContemCorpo: Anotação personalizada @Documented ContemCorpo { String value() default.* ; Listagem 9. CondicaoContemCorpo: implementação da interface Condition. public class CondicaoContemCorpo implements Condition { private Pattern pattern; public CondicaoContemCorpo(String regex) { super(); recebe um objeto da classe ContextVariables. Essa classe fornece várias informações sobre o contexto do processamento naquele momento. Ela não será aqui detalhada, porém, sua especificação pode ser encontrada no site do projeto. A classe recebe no construtor a expressão regular que deve buscar no corpo do elemento. No método verify(), busca-se o valor do corpo na variável contextvariables e verifica se ele se encaixa na expressão. public boolean verify(contextvariables contextvariables) { return pattern.matcher(contextvariables.getbody()).matches(); 31

7 A interface ConditionFactory é a responsável por ler a anotação e criar as instâncias de Condition apropriadas. Essa interface possui apenas um método que deve ser executado, o getconditions(). Ele retorna uma lista contendo todas as condições (instâncias de Condition) que devem ser obedecidas para que o método execute. Ele recebe como parâmetro uma anotação. Se ela for instância da anotação desejada, então as condições devem ser retornadas, levando em conta os parâmetros da anotação. Na Listagem 10 consta a implementação da interface ConditionFactory para o exemplo. O método getconditions() verifica se a anotação é do e em caso positivo retorna a lista de condições apenas com uma instância da condição CondicaoContemCorpo apresentada Listagem 10. FabricaDeCondicoesContemCorpo: implementação da interface ConditionFactory. public class FabricaDeCondicoesContemCorpo implements ConditionsFactory public List<Condition> getconditions(annotation annotation) { if(annotation instanceof ContemCorpo){ ContemCorpo anotacaocontemcorpo=(contemcorpo) annotation; List<Condition> list=new ArrayList<Condition>(); list.add(new CondicaoContemCorpo(anotacaoContemCorpo.value())); //Caso houvesse mais condições ligadas, elas seriam //adicionadas à lista aqui return list; return null; Para finalizar, basta acrescentar na anotação criada onde encontrar a fábrica apropriada para criar suas condições. Para isso, é necessário acrescentar a na própria anotação, com a classe ConditionFactory que lê aquela anotação. A anotação do exemplo, alterada, pode ser vista na Listagem 11. Listagem 11. ContemCorpo: Anotação personalizada com a configuração da fábrica de Executadas as etapas anteriores, é possível usar a anotação em conjunto com. A Listagem 12 apresenta uma classe que utiliza a anotação criada. Processando o arquivo exemplo.xml com a classe da Listagem 12, são impressos no console somente os corpos que possuem a palavra solto, conforme a saída abaixo. Corpo do parágrafo solto do livro Corpo do parágrafo solto na revista Listagem 12.ProcessadorContemCorpo: Classe que utiliza a anotação personalizada criada como exemplo. public class ProcessadorContemCorpo ) private void String corpo){ System.out.println(corpo); SAX versus JColtrane O JColtrane busca agregar algumas funcionalidades para facilitar o - Cabe ao usuário avaliar se as facilidades trazidas compensa a perda de gargalo da aplicação, na maioria dos casos usar um ou outro não afetará significativamente o tempo de processamento. Para comparar de forma mais criteriosa as duas abordagens, foi feito - processamento e foi criada uma versão utilizando o JColtrane. Os testes de unidade já existentes ajudaram a comprovar que a funcionalidade gerada era a mesma. Diversas métricas foram realizadas na utilização das duas abordagens. Em termos de qualidade de código, o JColtrane deixou coesos, menor acoplamento com outras classes e menor complexidade pouco de vantagem foi realmente o desempenho. Não está no escopo deste artigo se aprofundar na comparação @ConditionFactoryAnnotation(FabricaDeCondicoesContemCorpo.class) ContemCorpo { String value() default.* ; 32

8 mais detalhes sobre o experimento e das métricas realizadas podem ser encontrados no Trabalho de Conclusão de Curso que deu origem ao framework Tratamento de Eventos em Java com Uso de Metadados disponível através de uma busca em - Combinação Explosiva, falou sobre a criação de anotações. Na edição 34, o artigo Padrões de Projeto para Flexibilizar o Uso de Anotações apresentou dois padrões que foram utilizados durante a construção do JColtrane. Referências Saber mais Considerações finais Com este artigo é possível que o leitor tenha conhecimento sobre Buscou-se mostrar o quanto ele deixa as classes de processamento mais legíveis e mais fáceis de manter do que quando se usa somen- sados, buscando essa característica importante dos processadores baseados no DOM, mas como é baseado em eventos, não causa problemas com estouro de memória. Assim, nas aplicações em que o uso de outros parsers acarreta em problemas com memória, o JCol- na internet e não se conhece muito bem sua estrutura e só se deseja

Para entender o conceito de objetos em programação devemos fazer uma analogia com o mundo real:

Para entender o conceito de objetos em programação devemos fazer uma analogia com o mundo real: Introdução a Orientação a Objetos com Java Autor: Professor Victor Augusto Zago Menegusso. Orientação a Objetos É um paradigma de programação que define a estrutura de um programa baseado nos conceitos

Leia mais

Arquitecturas de Software Enunciado de Projecto 2007 2008

Arquitecturas de Software Enunciado de Projecto 2007 2008 UNIVERSIDADE TÉCNICA DE LISBOA INSTITUTO SUPERIOR TÉCNICO Arquitecturas de Software Enunciado de Projecto 2007 2008 1 Introdução Na primeira metade da década de 90 começaram a ser desenvolvidas as primeiras

Leia mais

Introdução à orientação a objetos

Introdução à orientação a objetos Universidade Federal de Juiz de Fora PET Elétrica Introdução à orientação a objetos Tutor: Francisco José Gomes Aluno: João Tito Almeida Vianna 18/05/2013 1 Programação Estruturada x Orientação a objetos

Leia mais

MDS II Aula 04. Concepção Requisitos Diagrama de Casos de Uso (Use Cases)

MDS II Aula 04. Concepção Requisitos Diagrama de Casos de Uso (Use Cases) MDS II Aula 04 Concepção Requisitos Diagrama de Casos de Uso (Use Cases) 55 DIAGRAMA DE CASOS DE USO BENEFÍCIOS DOS CASOS DE USO ILUSTRAR POR QUE O SISTEMA É NECESSÁRIO OS REQUISITOS DO SISTEMA SÃO COLOCADOS

Leia mais

Java na Prática. Célio Silva Aula 3

Java na Prática. Célio Silva Aula 3 Java na Prática Célio Silva Aula 3 Java na Prática Collections List List são listas de coisa ordenadas/não ordenadas, com duplicações permitidas e com um índice Servem para encapsular código de tratamento

Leia mais

HEMOVIDA (CICLO DO SANGUE - Gerenciamento de estoque para grandes eventos)

HEMOVIDA (CICLO DO SANGUE - Gerenciamento de estoque para grandes eventos) Ministério da Saúde Secretaria Executiva Departamento de Informática do SUS HEMOVIDA (CICLO DO SANGUE - Gerenciamento de estoque para grandes eventos) Manual do Usuário Versão 1.0 Fevereiro, 2014 Índice

Leia mais

Roteiro... Sistemas Distribuídos Aula 4. Troca de mensagens. Comunicação entre processos. Conceitos de SD, vantagens e desvantagens

Roteiro... Sistemas Distribuídos Aula 4. Troca de mensagens. Comunicação entre processos. Conceitos de SD, vantagens e desvantagens Roteiro... Conceitos de SD, vantagens e desvantagens Infra-estrutura de um SD Considerações de projeto Sistemas Distribuídos Aula 4 Karine de Pinho Peralta Modelos de Comunicação - comunicação entre processos

Leia mais

Simbiose entre Tecnologias: XML e Java

Simbiose entre Tecnologias: XML e Java Simbiose entre Tecnologias: XML e Java Marcio H. Zuchini USF - Itatiba mhzuchini@yahoo.com.br Oclair G. Prado Unisal - Americana oclair.prado@am.unisal.br Márcio Henrique Zuchini (Mestre em Engenharia

Leia mais

Engenharia de Software II

Engenharia de Software II Engenharia de Software II Aula 26 http://www.ic.uff.br/~bianca/engsoft2/ Aula 26-21/07/2006 1 Ementa Processos de desenvolvimento de software Estratégias e técnicas de teste de software Métricas para software

Leia mais

Fundamentos de Teste de Software

Fundamentos de Teste de Software Núcleo de Excelência em Testes de Sistemas Fundamentos de Teste de Software Módulo 1- Visão Geral de Testes de Software Aula 2 Estrutura para o Teste de Software SUMÁRIO 1. Introdução... 3 2. Vertentes

Leia mais

Aula 11: Desvios e Laços

Aula 11: Desvios e Laços Aula 11: Desvios e Laços Nesta aula explicaremos alguns comandos que podem alterar o fluxo dos seus programas em JavaScript. Você aprenderá a estrutura dos comandos de desvios e laços. Entenderá como funcionam

Leia mais

Módulo e-rede Magento v1.0. Manual de. Instalação do Módulo. estamos todos ligados

Módulo e-rede Magento v1.0. Manual de. Instalação do Módulo. estamos todos ligados Módulo e-rede Magento v1.0 Manual de Instalação do Módulo estamos todos ligados 01 02 03 04 Introdução 3 Versão 3 Requerimentos 3 Manual de instalação 4 05 06 4.1 Instruções iniciais 4 4.2 Instalação e

Leia mais

Num programa em JAVA é possível definir diferentes sequências de execução independente: Threads.

Num programa em JAVA é possível definir diferentes sequências de execução independente: Threads. Threads Folha 5-1 Num programa em JAVA é possível definir diferentes sequências de execução independente: Threads. Uma Thread é similar a um processo no sentido em que corresponde a um conjunto de instruções

Leia mais

Comandos de Eletropneumática Exercícios Comentados para Elaboração, Montagem e Ensaios

Comandos de Eletropneumática Exercícios Comentados para Elaboração, Montagem e Ensaios Comandos de Eletropneumática Exercícios Comentados para Elaboração, Montagem e Ensaios O Método Intuitivo de elaboração de circuitos: As técnicas de elaboração de circuitos eletropneumáticos fazem parte

Leia mais

Java RMI. RMI Remote Method Invocation. Chamadas Remotas de Procedimentos (RPC) RPC - Implementação

Java RMI. RMI Remote Method Invocation. Chamadas Remotas de Procedimentos (RPC) RPC - Implementação Java Remote Method Invocation Java Remote Method Invocation () é um protocolo Java para comunicação entre processos Permite objetos Java invocar transparentemente métodos de outros objetos (que podem estar

Leia mais

Orientação a Objetos

Orientação a Objetos Orientação a Objetos 1. Manipulando Atributos Podemos alterar ou acessar os valores guardados nos atributos de um objeto se tivermos a referência a esse objeto. Os atributos são acessados pelo nome. No

Leia mais

Programação Orientada a Objetos SANTOS, Rafael

Programação Orientada a Objetos SANTOS, Rafael Programação Orientada a Objetos SANTOS, Rafael É parte do software, e deve atender os requisitos do usuário Controla o hardware, incluindo periféricos de entrada e saída Usa um conjunto de comandos e regras:

Leia mais

Manual do Usuário. VpetConverter Ferramenta para adequação de documentos para Petições Eletrônicas. http://www.voat.com.br/ contato@voat.com.

Manual do Usuário. VpetConverter Ferramenta para adequação de documentos para Petições Eletrônicas. http://www.voat.com.br/ contato@voat.com. Manual do Usuário VpetConverter Ferramenta para adequação de documentos para Petições Eletrônicas http://www.voat.com.br/ contato@voat.com.br Descrição Geral O VPetConverter é um programa que facilita

Leia mais

Objetivo do Portal da Gestão Escolar

Objetivo do Portal da Gestão Escolar Antes de Iniciar Ambiente de Produção: É o sistema que contem os dados reais e atuais, é nele que se trabalha no dia a dia. Neste ambiente deve-se evitar fazer testes e alterações de dados sem a certeza

Leia mais

T.I. para o DealerSuite: Servidores Versão: 1.1

T.I. para o DealerSuite: Servidores Versão: 1.1 T.I. para o DealerSuite: Servidores Versão: 1.1 Lista de Figuras T.I. para o Dealer Suite: Servidores Figura 1 Tela Principal do ESXi...4 Figura 2 Tela VMware Player...5 Figura 3 Arquivo /etc/exports do

Leia mais

FastCube 2.0 Programmer Manual

FastCube 2.0 Programmer Manual FastCube 2.0 Programmer Manual I FastCube 2.0 Programmer Manual Table of contents Chapter I Arquitetura do FastCube 2 2 Chapter II Utilizaçã o dos componentes do FastCube 5 1 Salvar... e carregar um cubo

Leia mais

Sistemas Operacionais. Sincronização: Semáforos Problema dos Leitores/Escritores

Sistemas Operacionais. Sincronização: Semáforos Problema dos Leitores/Escritores Sistemas Operacionais Sincronização: Semáforos Problema dos Leitores/Escritores Autoria Autores Eduardo André Mallmann 0905/96-9 João Paulo Reginatto 1530/96-0 Local Instituto de Informática UFRGS disciplina:

Leia mais

Aula 03. Processadores. Prof. Ricardo Palma

Aula 03. Processadores. Prof. Ricardo Palma Aula 03 Processadores Prof. Ricardo Palma Definição O processador é a parte mais fundamental para o funcionamento de um computador. Processadores são circuitos digitais que realizam operações como: cópia

Leia mais

www.sysdevsolutions.com Driver Next Versão 1.0 de 07-03-2011 Português

www.sysdevsolutions.com Driver Next Versão 1.0 de 07-03-2011 Português Driver Next Versão 1.0 de 07-03-2011 Português Índice Configuração dos documentos no Backofficce... 3 O Driver ERP Next... 6 Configurações principais... 6 Configurações do vendedor... 7 Configurações do

Leia mais

TUTORIAL MATLAB Victor Breder 2016

TUTORIAL MATLAB Victor Breder 2016 TUTORIAL MATLAB Victor Breder 2016 1. INTERFACE A. Caminho de trabalho Mostra o caminho pasta raiz que será considerada para executar scripts e funções criados pelo usuário. B. Pasta de trabalho Mostra

Leia mais

Deswik.Sched. Sequenciamento por Gráfico de Gantt

Deswik.Sched. Sequenciamento por Gráfico de Gantt Deswik.Sched Sequenciamento por Gráfico de Gantt SOLUÇÕES EM SEQUENCIAMENTO DE LAVRA QUE NOS DIFERENCIAM Uma abordagem dinâmica e moderna para o sequenciamento de lavra Desde gráficos de Gantt interativos

Leia mais

Disciplina: Unidade III: Prof.: E-mail: Período:

Disciplina: Unidade III: Prof.: E-mail: Período: Encontro 09 Disciplina: Sistemas de Banco de Dados Unidade III: Modelagem Lógico de Dados Prof.: Mario Filho E-mail: pro@mariofilho.com.br Período: 5º. SIG - ADM 6. Introdução ao MS Access O Microsoft

Leia mais

ARQUITETURA DE COMPUTADORES. Professor: Clayton Rodrigues da Siva

ARQUITETURA DE COMPUTADORES. Professor: Clayton Rodrigues da Siva ARQUITETURA DE COMPUTADORES Professor: Clayton Rodrigues da Siva OBJETIVO DA AULA Objetivo: Conhecer a estrutura da arquitetura da Máquina de Von Neumann. Saber quais as funcionalidades de cada componente

Leia mais

Treinamento de e-commerce

Treinamento de e-commerce Treinamento de e-commerce Bem vindo ao treinamento de e commerce mais rápido e direto de todos! Utilize este documento para se orientar sempre que necessário e não se preocupe, em caso de necessidade,

Leia mais

A uma plataforma online de gestão de condomínios permite gerir de forma fácil e simples a atividade do seu condomínio.

A uma plataforma online de gestão de condomínios permite gerir de forma fácil e simples a atividade do seu condomínio. PLATAFORMA DE GESTÃO A uma plataforma online de gestão de condomínios permite gerir de forma fácil e simples a atividade do seu condomínio. Principais funcionalidades Possui uma série de funcionalidades

Leia mais

Sistemas de Informação: XML- Java

Sistemas de Informação: XML- Java XL 1 : XL- Java Todos os exemplos bem como o conteúdo teórico tem por base o livro: Steven Holzner, SAS Teach Yourself XL, SAS Publishing, 2004 XL Java e XL 2 Documentos XL podem ser abordados de dois

Leia mais

Inteligência Artificial

Inteligência Artificial Inteligência Artificial Aula 7 Programação Genética M.e Guylerme Velasco Programação Genética De que modo computadores podem resolver problemas, sem que tenham que ser explicitamente programados para isso?

Leia mais

Sefaz Virtual Ambiente Nacional Projeto Nota Fiscal Eletrônica

Sefaz Virtual Ambiente Nacional Projeto Nota Fiscal Eletrônica Projeto Nota Fiscal Eletrônica Orientações de Utilização do Sefaz Virtual Ambiente Nacional para as Empresas Versão 1.0 Fevereiro 2008 1 Sumário: 1. Introdução... 3 2. O que é o Sefaz Virtual... 4 3. Benefícios

Leia mais

5a. Aula - XML 2013.2

5a. Aula - XML 2013.2 5a. Aula -XML 2013.2 Introdução Criando Documentos XML Validando Documentos XML DTD ( Documents Type Definition) XML Schema ConsultandoXML com Xpath com XQuery Modularizando XML Namespaces Entities TransformandoXML

Leia mais

Algoritmos APRENDENDO A PROGRAMAR COM C#

Algoritmos APRENDENDO A PROGRAMAR COM C# Algoritmos APRENDENDO A PROGRAMAR COM C# Alô Mundo AULA 01 Conhecendo o ambiente O objetivo principal desse programa não é mostrar a mensagem Alo Mundo. O objetivo é apresentar o ambiente de desenvolvimento

Leia mais

CRIAÇÃO DE TABELAS NO ACCESS. Criação de Tabelas no Access

CRIAÇÃO DE TABELAS NO ACCESS. Criação de Tabelas no Access CRIAÇÃO DE TABELAS NO ACCESS Criação de Tabelas no Access Sumário Conceitos / Autores chave... 3 1. Introdução... 4 2. Criação de um Banco de Dados... 4 3. Criação de Tabelas... 6 4. Vinculação de tabelas...

Leia mais

Programação para Web HTML - Parte 2

Programação para Web HTML - Parte 2 Programação para Web HTML - Parte 2 Professor: Harlley Lima E-mail: harlley@decom.cefetmg.br Departamento de Computação Centro Federal de Educação Tecnológica de Minas Gerais Belo Horizonte, 2 de março

Leia mais

REITORA Ulrika Arns. VICE-REITOR Almir Barros da Silva Santos Neto. DIRETOR DO NTIC Leonardo Bidese de Pinho

REITORA Ulrika Arns. VICE-REITOR Almir Barros da Silva Santos Neto. DIRETOR DO NTIC Leonardo Bidese de Pinho 2014 Núcleo de Tecnologia da Informação e Comunicação - NTIC 17/01/2014 REITORA Ulrika Arns VICE-REITOR Almir Barros da Silva Santos Neto DIRETOR DO NTIC Leonardo Bidese de Pinho COORDENADOR DE DESENVOLVIMENTO

Leia mais

Gestão Documental. Gestão Documental

Gestão Documental. Gestão Documental Alcides Marques, 2007 Actualizado por Ricardo Matos em Junho de 2009 Neste capítulo pretende-se analisar a temática da, começando por apresentar um breve resumo dos conceitos subjacentes e apresentando

Leia mais

Software PHC com MapPoint 2007

Software PHC com MapPoint 2007 Software PHC com MapPoint 2007 Descritivo completo A integração entre o Software PHC e o Microsoft MapPoint permite a análise de informação geográfica (mapas, rotas e análise de dispersão), baseada em

Leia mais

Manual Mobuss Construção - Móvel

Manual Mobuss Construção - Móvel Manual Mobuss Construção - Móvel VISTORIA & ENTREGA - MÓVEL Versão 1.0 Data 22/04/2014 Mobuss Construção - Vistoria & Entrega Documento: v1.0 Blumenau SC 2 Histórico de Revisão Versão Data Descrição 1.0

Leia mais

Metodologias de PETI. Prof. Marlon Marcon

Metodologias de PETI. Prof. Marlon Marcon Metodologias de PETI Prof. Marlon Marcon PETI O PETI é composto de: Planejamento Estratégico da organização, que combina os objetivos e recursos da organização com seus mercados em processo de transformação

Leia mais

Árvores. ! utilizada em muitas aplicações. ! modela uma hierarquia entre elementos. ! O conceito de árvores está diretamente ligado à recursão

Árvores. ! utilizada em muitas aplicações. ! modela uma hierarquia entre elementos. ! O conceito de árvores está diretamente ligado à recursão Árvores 1 Árvores! utilizada em muitas aplicações! modela uma hierarquia entre elementos! árvore genealógica! diagrama hierárquico de uma organização! modelagem de algoritmos! O conceito de árvores está

Leia mais

Tópicos Avançados em Banco de Dados Dependências sobre regime e controle de objetos em Banco de Dados. Prof. Hugo Souza

Tópicos Avançados em Banco de Dados Dependências sobre regime e controle de objetos em Banco de Dados. Prof. Hugo Souza Tópicos Avançados em Banco de Dados Dependências sobre regime e controle de objetos em Banco de Dados Prof. Hugo Souza Após vermos uma breve contextualização sobre esquemas para bases dados e aprendermos

Leia mais

Registro de Retenções Tributárias e Pagamentos

Registro de Retenções Tributárias e Pagamentos SISTEMA DE GESTÃO DE PRESTAÇÃO DE CONTAS (SiGPC) CONTAS ONLINE Registro de Retenções Tributárias e Pagamentos Atualização: 20/12/2012 A necessidade de registrar despesas em que há retenção tributária é

Leia mais

TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS TURMA 2008/1 2 PERÍODO MÓDULO 3 AVALIAÇÃO MP2 DATA 2/10/2008 ESTRUTURAS DE DADOS 2008/2

TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS TURMA 2008/1 2 PERÍODO MÓDULO 3 AVALIAÇÃO MP2 DATA 2/10/2008 ESTRUTURAS DE DADOS 2008/2 TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS TURMA 2008/1 2 PERÍODO MÓDULO 3 AVALIAÇÃO MP2 DATA 2/10/2008 ESTRUTURAS DE DADOS 2008/2 Dados de identificação do Acadêmico: Nome: Login: CA: Cidade:

Leia mais

epucc.com.br SAIBA COMO INCLUIR INFORMAÇÕES DE COLABORADORES, CENTROS DE CUSTO E RATEIO DE DESPESAS

epucc.com.br SAIBA COMO INCLUIR INFORMAÇÕES DE COLABORADORES, CENTROS DE CUSTO E RATEIO DE DESPESAS epucc.com.br SAIBA COMO INCLUIR INFORMAÇÕES DE COLABORADORES, CENTROS DE CUSTO E RATEIO DE DESPESAS O PUCC permite que uma tabela com o nome dos Colaboradores e seus respectivos Departamentos e/ou Centros

Leia mais

Disponibilizada a rotina Vale Presente (LOJA830) no módulo Controle de Lojas (SIGALOJA), assim como já é utilizada no módulo Front Loja (SIGAFRT).

Disponibilizada a rotina Vale Presente (LOJA830) no módulo Controle de Lojas (SIGALOJA), assim como já é utilizada no módulo Front Loja (SIGAFRT). Vale Presente para Controle de Lojas Produto : Microsiga Protheus - Controle de Lojas - Versão 10 Chamado : TFDI16 Data da publicação : 12/07/12 País(es) : Brasil Banco(s) de Dados : Todos Esta melhoria

Leia mais

Banco de Dados I. Prof. Edson Thizon ethizon@bol.com.br

Banco de Dados I. Prof. Edson Thizon ethizon@bol.com.br Banco de Dados I Prof. Edson Thizon ethizon@bol.com.br Conceitos Dados Fatos conhecidos que podem ser registrados e que possuem significado implícito Banco de dados (BD) Conjunto de dados interrelacionados

Leia mais

django-pagseguro Documentation

django-pagseguro Documentation django-pagseguro Documentation Release 1.4.2 Fábio Cerqueira February 11, 2015 Contents 1 Tutorial django-pagseguro 3 1.1 Instalação................................................. 3 1.2 Configurando

Leia mais

2 Segmentação de imagens e Componentes conexas

2 Segmentação de imagens e Componentes conexas Universidade Tecnológica Federal do Paraná (UTFPR) Departamento Acadêmico de Informática (DAINF) Algoritmos II Professor: Alex Kutzke (alexk@dainf.ct.utfpr.edu.br) Especificação do Primeiro Trabalho Prático

Leia mais

http://rogerioaraujo.wordpress.com Série Rações Semanais Xpath e XSLT Rogério Araújo

http://rogerioaraujo.wordpress.com Série Rações Semanais Xpath e XSLT Rogério Araújo http://rogerioaraujo.wordpress.com Série Rações Semanais Xpath e XSLT Rogério Araújo http://rogerioaraujo.wordpress.com Série Rações Semanais Xpath e XSLT Rogério Araújo Questões A persistência é o menor

Leia mais

Registro Hospitalar de Câncer Conceitos Básicos Planejamento Coleta de Dados Fluxo da Informação

Registro Hospitalar de Câncer Conceitos Básicos Planejamento Coleta de Dados Fluxo da Informação Registro Hospitalar de Câncer Conceitos Básicos Planejamento Coleta de Dados Fluxo da Informação Registro Hospitalar de Câncer Este tipo de registro se caracteriza em um centro de coleta, armazenamento,

Leia mais

Cadeira de Tecnologias de Informação. Ano lectivo 2009/2010. Sites dinâmicos. Com Expression Web TI2009/10 EWD_1. Filipa Pires da Silva (2009)

Cadeira de Tecnologias de Informação. Ano lectivo 2009/2010. Sites dinâmicos. Com Expression Web TI2009/10 EWD_1. Filipa Pires da Silva (2009) Cadeira de Tecnologias de Informação Ano lectivo 2009/2010 Sites dinâmicos Com Expression Web TI2009/10 EWD_1 .ASPX vs.html HTML: HTML é uma linguagem para descrever páginas web HTML significa Hyper Text

Leia mais

Gestão de Actas Escolares. Manual Utilizador. (Versão 4)

Gestão de Actas Escolares. Manual Utilizador. (Versão 4) inovar TI Gestão de Actas Escolares Manual Utilizador (Versão 4) ÍNDICE: INTRODUÇÃO... 3 FUNCIONALIDADES DO UTILACTAS... 3 1.ENTRAR NO PROGRAMA... 4 2.CONVOCAR UMA REUNIÃO... 5 2.1. CRIAR... 5 2.2. EDITAR...

Leia mais

X-002 - SOFTWARE DESENVOLVIDO EM DELPHI PARA SELEÇÃO DE BOMBAS HIDRÁULICAS PARA ADUTORAS MODELADAS COM O SOFTWARE EPANET 2.0

X-002 - SOFTWARE DESENVOLVIDO EM DELPHI PARA SELEÇÃO DE BOMBAS HIDRÁULICAS PARA ADUTORAS MODELADAS COM O SOFTWARE EPANET 2.0 X-002 - SOFTWARE DESENVOLVIDO EM DELPHI PARA SELEÇÃO DE BOMBAS HIDRÁULICAS PARA ADUTORAS MODELADAS COM O SOFTWARE EPANET 2.0 André Batista Frota (1) Engenheiro Civil pela Universidade Federal do Ceará.

Leia mais

Capítulo 9 - Imagens. Imagens

Capítulo 9 - Imagens. Imagens Capítulo 9 - Imagens 9 Imagens EM JAVASCRIPT, É POSSÍVEL MANIPULAR COM AS IMAGENS DE UMA PÁGINA, alterando a URL que localiza o arquivo de imagem. Assim, pode-se trocar a imagem que está sendo exibida

Leia mais

Métricas de Software

Métricas de Software Métricas de Software Plácido Antônio de Souza Neto 1 1 Gerência Educacional de Tecnologia da Informação Centro Federal de Educação Tecnologia do Rio Grande do Norte 2006.1 - Planejamento e Gerência de

Leia mais

Lógica de Programação. Profas. Simone Campos Camargo e Janete Ferreira Biazotto

Lógica de Programação. Profas. Simone Campos Camargo e Janete Ferreira Biazotto Lógica de Programação Profas. Simone Campos Camargo e Janete Ferreira Biazotto O curso Técnico em Informática É o profissional que desenvolve e opera sistemas, aplicações, interfaces gráficas; monta estruturas

Leia mais

SISTEMA OPERACIONAL - ANDROID

SISTEMA OPERACIONAL - ANDROID Manual do Usuário SISTEMA OPERACIONAL - ANDROID 1 1 Índice 1 Índice... 2 2 Introdução Protegido... 3 3 Instalação do APLICATIVO DOS PAIS... 4 3.1 Local de instalação do Filho Protegido... 5 3.2 Tela de

Leia mais

Os passos a seguir servirão de guia para utilização da funcionalidade Acordo Financeiro do TOTVS Gestão Financeira.

Os passos a seguir servirão de guia para utilização da funcionalidade Acordo Financeiro do TOTVS Gestão Financeira. Acordo Financeiro Produto : RM - Totvs Gestão Financeira 12.1.1 Processo : Acordo Financeiro Subprocesso : Template de Acordo Controle de Alçada Negociação Online Data da publicação : 29 / 10 / 2012 Os

Leia mais

MANUAL DO INSTALADOR XD EM AMBIENTES MICROSOFT WINDOWS

MANUAL DO INSTALADOR XD EM AMBIENTES MICROSOFT WINDOWS MANUAL DO INSTALADOR XD EM AMBIENTES MICROSOFT WINDOWS Está disponível a partir da versão 2014.73 do XD Rest/Pos/Disco um novo formato no instalador em ambientes Microsoft Windows. O instalador passa a

Leia mais

Exercício de Estrutura de dados. Java Fila

Exercício de Estrutura de dados. Java Fila Exercício de Estrutura de dados Java Fila Obs.: Esse projeto foi um exercício realizado em sala de aula da matéria de Estrutura de dados com o Profº Frederico Augusto Siqueira Gentil Aqui está sendo relatado

Leia mais

Transformação de documentos XML

Transformação de documentos XML Transformação de documentos XML César Vittori cvittori@inf.ufrgs.br Outubro de 2000 Resumo XSLT: Transformações XSL. Transformação de documentos XML. XSLT Introdução XSLT: transformações XSL (inglês: XSL

Leia mais

DF-e Manager Manual de uso Manifestação do destinatário Setembro de 2015

DF-e Manager Manual de uso Manifestação do destinatário Setembro de 2015 DF-e Manager Manual de uso Manifestação do destinatário Setembro de 2015 Copyright 2015 Synchro Solução Fiscal Brasil 1 Conteúdo 1. Introdução... 3 2. A Manifestação do Destinatário no DF-e Manager...

Leia mais

Classificação de Ativo Orçamento e Provisão de Despesa

Classificação de Ativo Orçamento e Provisão de Despesa Classificação de Ativo Orçamento e Provisão de Despesa Produto : Microsiga Protheus Ativo Fixo versão 11 Requisito : 154.03 Data da publicação : 28/02/13 País(es) : Brasil Banco(s) de Dados : Todos Esta

Leia mais

1 Visão Geral. 2 Instalação e Primeira Utilização. Manual de Instalação do Gold Pedido

1 Visão Geral. 2 Instalação e Primeira Utilização. Manual de Instalação do Gold Pedido Manual de Instalação do Gold Pedido 1 Visão Geral Programa completo para enviar pedidos e ficha cadastral de clientes pela internet sem usar fax e interurbano. Reduz a conta telefônica e tempo. Importa

Leia mais

Os Sete Hábitos das Exceções Altamente Eficazes

Os Sete Hábitos das Exceções Altamente Eficazes c o l u n a Mundo OO Os Sete Hábitos das Exceções Altamente Eficazes Aprenda os bons hábitos na modelagem de erros de uma aplicação A modelagem no tratamento de erros de uma aplicação é uma atividade que

Leia mais

Gerenciador de Ambiente Laboratorial - GAL Manual do Usuário Módulo Controle de Qualidade Analítico

Gerenciador de Ambiente Laboratorial - GAL Manual do Usuário Módulo Controle de Qualidade Analítico Ministério da Saúde Secretaria Executiva Departamento de Informática do SUS DATASUS Gerenciador de Ambiente Laboratorial GAL Manual do Usuário Módulo Laboratório Manual de Operação_Módulo Laboratório_Controle

Leia mais

UNIVERSIDADE DO VALE DO RIO DOS SINOS - UNISINOS CENTRO DE CIÊNCIAS EXATAS E TECNOLÓGICAS - CENTRO 06. Funções, variáveis, parâmetros formais

UNIVERSIDADE DO VALE DO RIO DOS SINOS - UNISINOS CENTRO DE CIÊNCIAS EXATAS E TECNOLÓGICAS - CENTRO 06. Funções, variáveis, parâmetros formais UNIVERSIDADE DO VALE DO RIO DOS SINOS - UNISINOS CENTRO DE CIÊNCIAS EXATAS E TECNOLÓGICAS - CENTRO 06 Disciplina: Linguagem de Programação C Profª Viviane Todt Diverio Funções, variáveis, parâmetros formais

Leia mais

Pós-Graduação em Computação Distribuída e Ubíqua

Pós-Graduação em Computação Distribuída e Ubíqua Pós-Graduação em Computação Distribuída e Ubíqua INF612 - Aspectos Avançados em Engenharia de Software Engenharia de Software Experimental [Head First Statistics] Capítulos 10, 11, 12 e 13 [Experimentation

Leia mais

Banco de Dados. Banco de Dados Parte 2. Alcides Pamplona alcides.pamplona@gmail.com. Alcides Pamplona Linguagem de Programação CESBD 2010

Banco de Dados. Banco de Dados Parte 2. Alcides Pamplona alcides.pamplona@gmail.com. Alcides Pamplona Linguagem de Programação CESBD 2010 Alcides Pamplona Linguagem de Programação CESBD 2010 Parte 2 Alcides Pamplona alcides.pamplona@gmail.com Tópicos API JDBC Utilizando JDBC Statement PreparedStatement Controle de Transação Mapeamento Objeto-Relacional

Leia mais

FACULDADE MULTIVIX CURSO DE ENGENHARIA DE PRODUÇÃO 2º PERÍODO MARIANA DE OLIVEIRA BERGAMIN MONIQUE MATIELLO GOMES THANIELE ALMEIDA ALVES

FACULDADE MULTIVIX CURSO DE ENGENHARIA DE PRODUÇÃO 2º PERÍODO MARIANA DE OLIVEIRA BERGAMIN MONIQUE MATIELLO GOMES THANIELE ALMEIDA ALVES FACULDADE MULTIVIX CURSO DE ENGENHARIA DE PRODUÇÃO 2º PERÍODO MARIANA DE OLIVEIRA BERGAMIN MONIQUE MATIELLO GOMES THANIELE ALMEIDA ALVES COMPUTAÇÃO EM NUVEM CACHOEIRO DE ITAPEMIRIM 2015 MARIANA DE OLIVEIRA

Leia mais

Exercício. Exercício

Exercício. Exercício Exercício Exercício Aula Prática Utilizar o banco de dados ACCESS para passar o MER dos cenários apresentados anteriormente para tabelas. 1 Exercício oções básicas: ACCESS 2003 2 1 Exercício ISERIDO UMA

Leia mais

e Autorizador Odontológico

e Autorizador Odontológico 1 CONTROLE DE DOCUMENTO Revisor Versão Data Publicação Diego Ortiz Costa 1.0 08/08/2010 Diego Ortiz Costa 1.1 09/06/2011 Diego Ortiz Costa 1.2 07/07/2011 2 Sumário CONTROLE DE DOCUMENTO... 2 1. Informações

Leia mais

ÁREA DO PROFESSOR (TUTOR)

ÁREA DO PROFESSOR (TUTOR) ÁREA DO PROFESSOR (TUTOR) O MOODLE (Modular Object Oriented Dynamic Learning Environment) é um Ambiente Virtual de Ensino-Aprendizagem (AVEA) de código aberto, livre e gratuito que se mantém em desenvolvimento

Leia mais

Os salários de 15 áreas de TI nas cinco regiões do Brasil

Os salários de 15 áreas de TI nas cinco regiões do Brasil Os salários de 15 áreas de TI nas cinco regiões do Brasil Entre 2011 e 2012, os salários na área de tecnologia da informação (TI) cresceram em média 10,78% um número animador, que pode motivar jovens estudantes

Leia mais

Simulado de Linguagem de Programação Java

Simulado de Linguagem de Programação Java Simulado de Linguagem de Programação Java 1. Descreva o processo de criação de programas em Java, desde a criação do código-fonte até a obtenção do resultado esperado, por meio de sua execução. Cite as

Leia mais

ENGENHARIA DE SOFTWARE

ENGENHARIA 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 Um conjunto estruturado

Leia mais

Fundamentos de Bancos de Dados 3 a Prova Caderno de Questões

Fundamentos de Bancos de Dados 3 a Prova Caderno de Questões Fundamentos de Bancos de Dados 3 a Prova Caderno de Questões Prof. Carlos A. Heuser Dezembro de 2009 Duração: 2 horas Prova com consulta Questão 1 (Construção de modelo ER) Deseja-se projetar a base de

Leia mais

Método de ordenação - objetivos:

Método de ordenação - objetivos: Método de ordenação - objetivos: Corresponde ao processo de rearranjar um conjunto de objetos em uma ordem ascendente ou descendente. Facilitar a recuperação posterior de itens do conjunto ordenado. São

Leia mais

UTILIZAÇÃO DE RECURSOS AVANÇADOS DO EXCEL EM FINANÇAS (PARTE III): GERENCIAMENTO DE CENÁRIOS

UTILIZAÇÃO DE RECURSOS AVANÇADOS DO EXCEL EM FINANÇAS (PARTE III): GERENCIAMENTO DE CENÁRIOS UTILIZAÇÃO DE RECURSOS AVANÇADOS DO EXCEL EM FINANÇAS (PARTE III): GERENCIAMENTO DE CENÁRIOS! Criando cenários a partir do Solver! Planilha entregue para a resolução de exercícios! Como alterar rapidamente

Leia mais

AULA 1 INTRODUÇÃO A BANCO DE DADOS E VISÃO GERAL DO SQL CONCEITUANDO BANCO DE DADOS MODELO RELACIONAL

AULA 1 INTRODUÇÃO A BANCO DE DADOS E VISÃO GERAL DO SQL CONCEITUANDO BANCO DE DADOS MODELO RELACIONAL BANCO DE DADOS GERENCIAL 1 AULA 1 INTRODUÇÃO A BANCO DE DADOS E VISÃO GERAL DO SQL CONCEITUANDO BANCO DE DADOS Um banco de dados é uma coleção de dados (ou informações) organizadas de forma lógica, e que

Leia mais

Processamento Digital de Sinais. Conversão A/D e D/A. Prof. Dr. Carlos Alberto Ynoguti

Processamento Digital de Sinais. Conversão A/D e D/A. Prof. Dr. Carlos Alberto Ynoguti Processamento Digital de Sinais Conversão A/D e D/A Prof. Dr. Carlos Alberto Ynoguti Introdução A maioria dos sinais encontrados na natureza é contínua Para processá los digitalmente, devemos: Converter

Leia mais

10. CPU (Central Processor Unit)... 10 2 10.1 Conjunto das instruções... 10 2 10.2 Estrutura interna... 10 4 10.3 Formato das instruções...

10. CPU (Central Processor Unit)... 10 2 10.1 Conjunto das instruções... 10 2 10.2 Estrutura interna... 10 4 10.3 Formato das instruções... 10. CPU (Central Processor Unit)... 10 2 10.1 Conjunto das instruções... 10 2 10.2 Estrutura interna... 10 4 10.3 Formato das instruções... 10 4 10. CPU (CENTRAL PROCESSOR UNIT) Como vimos no capítulo

Leia mais

Formas de Pagamento Resumida... 34 Vendas Vendedor... 34 Vendas Vendedor Resumido... 35 Vendas Vendedor Caixa... 35 Vendas por Artigos...

Formas de Pagamento Resumida... 34 Vendas Vendedor... 34 Vendas Vendedor Resumido... 35 Vendas Vendedor Caixa... 35 Vendas por Artigos... Manual POS Conteúdo Configuração no Servidor... 3 Gestão de Stocks... 3 Manutenção de Artigos... 3 Gestão de Clientes... 4 Gestão de Fornecedores... 5 Sistema POS... 6 Manutenção de Series de Armazéns...

Leia mais

Análise de Requisitos

Análise de Requisitos Análise de Requisitos Análise de Requisitos O tratamento da informação é um requisito que fundamenta o processo de desenvolvimento de software antes da solução de tecnologia a ser aplicada. Cada projeto

Leia mais

Manual do Desenvolvedor Geração de Tokens

Manual do Desenvolvedor Geração de Tokens Manual do Desenvolvedor Geração de Tokens Setembro de 2012 Versão 1.3 ÍNDICE Página 1. Introdução... 1 2. Geração de Tokens... 1 2.1 Formato dos Tokens... 1 2.2 Geração de Tokens... 1 2.2.1 Gerar Token

Leia mais

Fundamentos de Sistemas Operacionais

Fundamentos de Sistemas Operacionais Fundamentos de Sistemas Operacionais Aula 2 Princípios de Programação Prof. Belarmino Linguagem de Computadores Internamente os computadores usam instruções e armazenam os dados no formato numérico binário

Leia mais

Unidade 1: O Computador

Unidade 1: O Computador Unidade : O Computador.3 Arquitetura básica de um computador O computador é uma máquina que processa informações. É formado por um conjunto de componentes físicos (dispositivos mecânicos, magnéticos, elétricos

Leia mais

SIG-ISS Manual de integração do WebService para NFS-e

SIG-ISS Manual de integração do WebService para NFS-e Sistema Integrado de Gerenciamento do ISS SIG-ISS Manual de integração do WebService para NFS-e São Paulo, 9 de Janeiro de 2015. 1. Introdução Este manual tem como objetivo apresentar as especificações

Leia mais

Auditoria de Meio Ambiente da SAE/DS sobre CCSA

Auditoria de Meio Ambiente da SAE/DS sobre CCSA 1 / 8 1 OBJETIVO: Este procedimento visa sistematizar a realização de auditorias de Meio Ambiente por parte da SANTO ANTÔNIO ENERGIA SAE / Diretoria de Sustentabilidade DS, sobre as obras executadas no

Leia mais

,QVWDODomR. Dê um duplo clique para abrir o Meu Computador. Dê um duplo clique para abrir o Painel de Controle. Para Adicionar ou Remover programas

,QVWDODomR. Dê um duplo clique para abrir o Meu Computador. Dê um duplo clique para abrir o Painel de Controle. Para Adicionar ou Remover programas ,QVWDODomR 5HTXLVLWRV0tQLPRV Para a instalação do software 0RQLWXV, é necessário: - Processador 333 MHz ou superior (700 MHz Recomendado); - 128 MB ou mais de Memória RAM; - 150 MB de espaço disponível

Leia mais

Programação WEB. Prof. André Gustavo Duarte de Almeida andre.almeida@ifrn.edu.br www3.ifrn.edu.br/~andrealmeida. Aula II jquery UI

Programação WEB. Prof. André Gustavo Duarte de Almeida andre.almeida@ifrn.edu.br www3.ifrn.edu.br/~andrealmeida. Aula II jquery UI Prof. André Gustavo Duarte de Almeida andre.almeida@ifrn.edu.br www3.ifrn.edu.br/~andrealmeida Aula II jquery UI Introdução O que é jquery UI? Biblioteca que fornece maior nível de abstração para interação

Leia mais

VERSÃO RESPOSTAS PROVA DE MARKETING

VERSÃO RESPOSTAS PROVA DE MARKETING UNIVERSIDADE DE SÃO PAULO FACULDADE DE ECONOMIA, ADMINISTRAÇÃO E CONTABILIDADE DE RIBEIRÃO PRETO PROGRAMA DE PÓS-GRADUAÇÃO EM ADMINISTRAÇÃO DE ORGANIZAÇÕES PROCESSO SELETIVO DOUTORADO - TURMA 2011 VERSÃO

Leia mais

UNIVERSIDADE DO TOCANTINS TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS PRÁTICA EM PROGRAMAÇÃO DE SISTEMAS

UNIVERSIDADE DO TOCANTINS TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS PRÁTICA EM PROGRAMAÇÃO DE SISTEMAS ESTUDO DE CASO I Uma das operações oferecidas pelos sistemas bancários para seus clientes é a emissão de extratos da conta corrente ou do cartão de crédito. Esses relatórios permitem que o cliente possa

Leia mais