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
|
|
- Matheus Henrique Aranha Ribas
- 6 Há anos
- Visualizações:
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:
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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:
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
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
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
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
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:
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
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
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
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
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
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
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,
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
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
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?
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
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
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
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...
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
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
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
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
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
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
Á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á
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
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 é
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:
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
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
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
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
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
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
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,
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
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...
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á.
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
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
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
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
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
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
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
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
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...
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
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
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
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
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
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
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
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
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
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
Á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
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
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
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
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
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
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
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
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
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
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...
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
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
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
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
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
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
,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
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
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
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