SISTEMA NA CLOUD PARA CRIAÇÃO E PROCESSAMENTO DE FORMULÁRIOS ELETRÔNICOS COM OPÇÃO DE USO EM MOBILE ONLINE E OFFLINE

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

Download "SISTEMA NA CLOUD PARA CRIAÇÃO E PROCESSAMENTO DE FORMULÁRIOS ELETRÔNICOS COM OPÇÃO DE USO EM MOBILE ONLINE E OFFLINE"

Transcrição

1 SISTEMA NA CLOUD PARA CRIAÇÃO E PROCESSAMENTO DE FORMULÁRIOS ELETRÔNICOS COM OPÇÃO DE USO EM MOBILE ONLINE E OFFLINE Bruno Barbosa Ramos Diego Berg Brum Projeto de Graduação apresentado ao Curso de Engenharia Eletrônica e de Computação da Escola Politécnica, Universidade Federal do Rio de Janeiro, como parte dos requisitos necessários à obtenção do título de Engenheiro. Orientador: Sérgio Barbosa Villas-Boas Rio de Janeiro Março/2014

2 SISTEMA NA CLOUD PARA CRIAÇÃO E PROCESSAMENTO DE FORMULÁRIOS ELETRÔNICOS COM OPÇÃO DE USO EM MOBILE ONLINE E OFFLINE Bruno Barbosa Ramos Diego Berg Brum PROJETO DE GRADUAÇÃO SUBMETIDO AO CORPO DOCENTE DO CURSO DE ENGENHARIA ELETRÔNICA E DE COMPUTAÇÃO DA ESCOLA POLITÉCNICA DA UNIVERSIDADE FEDERAL DO RIO DE JANEIRO COMO PARTE DOS REQUISITOS NECESSÁRIOS PARA A OBTENÇÃO DO GRAU DE ENGENHEIRO ELETRÔNICO E DE COMPUTAÇÃO. Examinada por: Prof. Sérgio Barbosa Villas-Boas, Ph.D. Prof. Aloysio de Castro Pinto Pedroza, Dr. Prof. Jorge Lopes de Souza Leão, Dr.Ing. RIO DE JANEIRO, RJ - BRASIL MARÇO DE 2014

3 Ramos, Bruno Barbosa Brum, Diego Berg Sistema na Cloud para Criação e Processamento de Formulários Eletrônicos com Opção de Uso em Mobile Online e Offline/Bruno Barbosa Ramos, Diego Berg Brum. - Rio de Janeiro: UFRJ/Escola Politécnica, XII, 55 p.: il.; 27,9 cm. Orientador: Sérgio Barbosa Villas-Boas Projeto de Graduação - UFRJ/Escola Politécnica/Curso de Engenharia Eletrônica e de Computação, Referências Bibliográficas: p Formulários Eletrônicos. 2. Sistema na Cloud. 3. Webservices. 4. Android. I. Villas-Boas, Sérgio Barbosa. II. Universidade Federal do Rio de Janeiro, Escola Politécnica, Curso de Engenharia Eletrônica e de Computação. III. Título. iii

4 Dedicatória Dedicamos este trabalho às nossas famílias e em especial aos nossos pais que sempre nos ajudaram e batalharam para que tivéssemos uma ótima formação. Graças a eles nos tornamos pessoas educadas e conscientes de nossos deveres. iv

5 Agradecimentos Agradecemos aos professores que dedicaram seu tempo para nos passar os conhecimentos e experiências tão importantes para nossa formação, aos nossos amigos que compartilharam de nossas horas de estudos e aos nossos familiares que estavam sempre nos apoiando e estimulando para seguirmos em frente no curso. Também agradecemos ao povo brasileiro que paga seus impostos, contribuindo para manter esta Universidade e possibilitando nossa formação. v

6 Resumo do Projeto de Graduação apresentado à Escola Politécnica/UFRJ como parte dos requisitos necessários para a obtenção do grau de Engenheiro Eletrônico e de Computação. SISTEMA NA CLOUD PARA CRIAÇÃO E PROCESSAMENTO DE FORMULÁRIOS ELETRÔNICOS COM OPÇÃO DE USO EM MOBILE ONLINE E OFFLINE Bruno Barbosa Ramos Diego Berg Brum Março/2014 Orientador: Sérgio Barbosa Villas-Boas Curso: Engenharia Eletrônica e de Computação Este trabalho descreve o desenvolvimento de um sistema para criação e gerenciamento de formulários eletrônicos com objetivo de reduzir e simplificar o processo de pesquisa. Assim, observou-se a necessidade de criar um sistema que pudesse alcançar uma grande quantidade de pessoas e de rápido acesso. Para atingir os objetivos traçados, foi desenvolvido um sistema voltado para uso através da internet, com um servidor que centraliza e processa informações e aplicações que possibilitam a interação dos usuários com o sistema. Dois aplicativos são disponibilizados aos usuários, um aplicativo web e um aplicativo Android, sistema operacional para dispositivos móveis. Para o servidor, criou-se os modelos de dados necessários para manipular formulários e respostas, além de especificar a comunicação para o fornecimento dos recursos disponíveis. O projeto dos aplicativos foi voltado para tornar tanto a criação de formulários quanto a coleta de informações intuitivas e rápidas para os usuários. O aplicativo Android foi projetado principalmente para a coleta de dados, mas também é suportada a criação de formulários. A aplicação web possui, além destas funcionalidades, a exportação dos dados coletados, armazenados no servidor, e a visualização gráfica de relatórios gerados acerca destes dados. O resultado, ao final da implementação, é uma ferramenta para realização de pesquisas eficiente e que pode atender a diversas necessidades. Palavras-chave: Formulários Eletrônicos, Sistema na Cloud, Webservices, Android vi

7 Abstract of Undergraduate Project presented to POLI/UFRJ as a partial fulfillment of the requirements for the degree of Engineer. SYSTEM IN THE CLOUD FOR CREATION AND PROCESSING ELECTRONIC FORMS WITH ALTERNATIVE USE IN MOBILE ONLINE AND OFFLINE Bruno Barbosa Ramos Diego Berg Brum March/2014 Advisor: Sérgio Barbosa Villas-Boas Course: Electronic and Computer Engineering This work describes the development of a system for creation and management of electronic forms in order to reduce and simplify the survey process. Thus, there was a need to create a system that could reach a lot of people and with quick access. To achieve the objectives, a geared system was developed for use over the internet, with a server that centralizes and processes information and applications that allow users interaction with the system. Two applications are available to users, a web application and an application for Android, operating system for mobile devices. For the server, was created the data models needed to handle forms and responses, and specified the communication for the supply of available resources. The design of applications was geared to make both the creation of forms and the data collection intuitive and rapid for users. The Android application was designed to a data collection, but is also supported the creation of forms. In addition to these features, the web application has the export of the data collected, stored on the server, and a graphic display of generated reports about these data. The result, at the end of the implementation, is a tool for performing efficient surveys and that can handle various needs. Keywords: Electronic Forms, Cloud System, Webservices, Android vii

8 Sumário 1. INTRODUÇÃO MOTIVAÇÃO DELIMITAÇÃO OBJETIVO DESCRIÇÃO FERRAMENTAS E TECNOLOGIAS UTILIZADAS REST BACKEND Apache Tomcat MySQL Hibernate FRONTEND jquery e jquery UI Backbone Underscore RequireJS Highcharts Android DESENVOLVIMENTO IDE Eclipse StarUML MySQL Workbench DESENVOLVIMENTO COLABORATIVO Mercurial Google Code e Project Hosting SERVIDOR ARQUITETURA MODELOS DE DADOS BANCO DE DADOS RECURSOS APLICATIVOS APLICATIVO ANDROID Persistência de dados Realizando uma coleta Criando um formulário APLICATIVO WEB Interagindo com um formulário Criando um formulário ANÁLISE CASOS DE USO Aplicativo Android viii

9 Criar Formulário Adicionar Item Adicionar Opção Excluir Opção Excluir Item Salvar Formulário Baixar Formulário Realizar Coleta Enviar Coleta Remover Formulário Local Aplicativo Web Buscar Formulário Realizar Coleta Obter Relatório Exportar Dados Criar Formulário Adicionar Item Adicionar Opção Excluir Opção Excluir Item Salvar Formulário TESTES E RESULTADOS Criação de formulários Coleta de dados Relatório e Exportação CONCLUSÃO TRABALHOS FUTUROS BIBLIOGRAFIA APÊNDICE A EXEMPLO DE DESCRIÇÃO DE UM FORMULÁRIO Representação XML Representação JSON EXEMPLO DE DESCRIÇÃO DE UMA COLETA Representação XML Representação JSON ix

10 Lista de Figuras FIGURA ARQUITETURA ANDROID... 9 FIGURA CICLO DE VIDA DA ACTIVITY FIGURA ARQUITETURA CLIENTE-SERVIDOR FIGURA MODELO ENTIDADE-RELACIONAMENTO (MER) FIGURA ACTIVITY DE CONFIGURAÇÕES DO APLICATIVO ANDROID FIGURA ACTIVITY PRINCIPAL DO APLICATIVO ANDROID FIGURA MODELO ENTIDADE-RELACIONAMENTO DA BASE DE DADOS NO ANDROID FIGURA ACTIVITY COM LISTAGEM DE ITENS DE UM FORMULÁRIO FIGURA ACTIVITY PARA VISUALIZAÇÃO DE UM ITEM DO FORMULÁRIO FIGURA ACTIVITY DE INSERÇÃO DE INFORMAÇÕES DO FORMULÁRIO FIGURA ACTIVITY DE INSERÇÃO DE UM ITEM NO FORMULÁRIO FIGURA PÁGINA INICIAL DO APLICATIVO WEB FIGURA VISUALIZAÇÃO DE UM FORMULÁRIO NO APLICATIVO WEB FIGURA ÁREA DE CRIAÇÃO DE FORMULÁRIO NO APLICATIVO WEB FIGURA DIAGRAMA DE CASOS DE USO NO APLICATIVO ANDROID FIGURA DIAGRAMA DE CASOS DE USO NO APLICATIVO WEB FIGURA VALIDAÇÃO DE INFORMAÇÕES DO FORMULÁRIO NO APLICATIVO WEB FIGURA VALIDAÇÃO DE ITENS DO FORMULÁRIO FIGURA SUCESSO NA CRIAÇÃO DO FORMULÁRIO FIGURA VALIDAÇÃO DE USUÁRIO IDENTIFICADO FIGURA VALIDAÇÃO DE INFORMAÇÕES DO FORMULÁRIO NO APLICATIVO ANDROID FIGURA VALIDAÇÃO DE COLETA NO APLICATIVO WEB FIGURA VALIDAÇÃO DE COLETA NO APLICATIVO ANDROID FIGURA ENVIO DE COLETAS REALIZADO NO APLICATIVO ANDROID FIGURA RELATÓRIO DE NÚMERO DE COLETAS POR COLETOR FIGURA RELATÓRIO PERCENTUAL DE RESPOSTAS FIGURA VISUALIZAÇÃO DOS DADOS EXPORTADOS x

11 Lista de Tabelas TABELA REQUISIÇÕES HTTP PARA MANIPULAÇÃO DE RECURSOS xi

12 Lista de símbolos ou nomenclatura ABNT - Associação Brasileira de Normas Técnicas AJAX - Asynchronous JavaScript and XML API - Application Programming Interface AWS - Amazon Web Services CPU - Central Processing Unit DOM - Document Object Model HTML - HyperText Markup Text HTTP - Hypertext Transfer Protocol IDE - Integrated Development Environment Java EE - Java Plataform, Enterprise Edition JDT - Java Development Tools JSON - JavaScript Object Notation JVM - Java Virtual Machine MDA - Model Driven Architecture ORM - Object/Relational Mapping P2P - Peer-to-peer REST - Representational Stateless Transfer RPC - Remote Procedure Call SDK - Software Development Kit SGBDR - Sistema de Gerenciamento de Banco de Dados Relacional SOAP - Simple Object Access Protocol SQL - Structured Query Language TSV - Tab-Separated Values UI - User Interface UML - Unified Modeling Language URI - Uniform Resource Identifier URL - Uniform Resource Locator VM - Virtual Machine WSDL - Web Services Description Language XML - extensible Markup Language xii

13 1. Introdução Este trabalho descreve o desenvolvimento e uso de um sistema para criação e gerenciamento de formulários eletrônicos, com um processamento estatístico das informações coletadas. Se pretende viabilizar e agilizar a criação de formulários e o processo de coleta e tratamento de dados em pesquisas de opinião, ou qualquer outra aplicação de formulários. Com isso, busca-se reduzir e simplificar o trabalho daqueles que se utilizam de tais ferramentas. Na cloud [1], o sistema centralizará o acesso às informações através de um servidor, disponibilizando aos usuários formulários para preenchimento, reunindo os dados coletados e produzindo relatórios simples acerca desses dados. Os usuários do sistema poderão utilizar-se de aplicativos desenvolvidos que simplificam a criação de formulários e a coleta dos dados, enviando ao servidor as informações necessárias para realização dos serviços oferecidos. Destaca-se a opção de uso do sistema por dispositivos mobile, tanto smartphones quanto tablets, com um aplicativo nativo. Isso tornará possível a coleta offline de informações, as quais serão enviadas para a cloud em momento posterior a coleta dos dados Motivação A coleta de informações, tentando antecipar tendências, desejos e opinião das pessoas sempre foi crucial para o sucesso das organizações. Poucas áreas cresceram tanto e tão rápido quanto a da informação. O desenvolvimento de técnicas e tecnologia voltada para este fim é alvo de grande investimento. É com ela que se conhece e se define os problemas, opiniões e tendências, dando uma visão ampla e específica das atividades executadas. Avaliando isto, planeja-se o próximo passo a ser dado rumo ao sucesso de uma organização. A partir das informações coletadas em pesquisas de opinião, com o uso de um instrumento eficaz, mas acessível e de baixo custo, para gerenciamento de dados, as organizações podem otimizar suas necessidades e estratégias de desenvolvimento. Ainda, transformando o processo de pesquisa totalmente eletrônico, pode-se agilizar a obtenção de resultados, excluindo etapas desnecessárias e custosas como a impressão e retorno das informações coletadas para o computador. Isso indica também um compromisso com a sustentabilidade ambiental, uma vez que permite a redução de uso e desperdício de papel. 1

14 1.2. Delimitação O sistema descrito neste trabalho destina-se às pessoas, tanto físicas quanto jurídicas, que necessitam coletar informações por meio de consulta pública. A aplicação deverá ser a mais genérica possível, com o intuito de possibilitar sua utilização com inúmeros objetivos. Do lado do cliente, um aplicativo para dispositivos móveis surge como forte opção para atingir o objetivo de coletar informações públicas, visto que tais equipamentos eletrônicos, têm sua utilização cada vez mais ampla na sociedade e se encaixam bem na função de coletar dados do público. Smartphones, tablets e dispositivos semelhantes têm a capacidade de atingir diversas localidades. Integrado a esses equipamentos, o sistema não será limitado à utilização apenas em ambientes fechados e com acesso restrito a computadores. Ainda, a realização da coleta das informações nos formulários poderá ser realizada offline, armazenando os dados coletados localmente em seu equipamento, e dispensando estar sempre conectado à internet. A necessidade da conexão com a internet se dá apenas para criação e/ou procura de um formulário e envio das informações locais para o servidor. Contudo, uma simples aplicação web torna possível utilizar os serviços oferecidos pelo servidor a partir de um computador pessoal. Desta forma não se restringe o uso do sistema apenas àqueles que possuem smartphones e ainda permite ao usuário escolher o meio pelo qual mais se adequa ou prefere para criar um formulário ou realizar uma coleta. A diversificação nas formas de uso permite atingir um grande e abrangente número de usuários, alcançando até lugares de difícil acesso à tecnologia Objetivo Tem-se como objetivo geral deste projeto desenvolver um sistema capaz de melhorar e agilizar a realização de pesquisas através de formulários. De forma mais específica, os objetivos são: Desenvolver um servidor, com intuito de armazenar formulários, dados coletados e produzir relatórios simples acerca destes dados; Desenvolver aplicativos, um para web e outro para dispositivos móveis, para que os usuários possam interagir com o sistema, se comunicando com o servidor e utilizando suas funcionalidades. 2

15 1.4. Descrição No capítulo 2, serão descritas as ferramentas e tecnologias utilizadas na criação do sistema, tanto no desenvolvimento do sistema do lado do servidor quanto no desenvolvimento dos aplicativos. O capítulo 3 apresenta um detalhamento do funcionamento do sistema quanto ao lado do servidor. São descritos os serviços disponibilizados, a forma de armazenamento de dados e o tratamento das informações recebidas. O lado do cliente é detalhado no capítulo 4, onde são abordados os aplicativos desenvolvidos. Tanto o aplicativo voltado para os navegadores quanto o aplicativo para dispositivos móveis são apresentados e tem seu funcionamento explicado neste capítulo. O capítulo 5 é reservado para a avaliação das funcionalidades do sistema. Os casos de uso são descritos, assim como apresentados os testes realizados e seus resultados. As considerações finais são apresentadas no capítulo 6. São incluídas as conclusões do trabalho, assim como expostos melhorias e pontos que podem ser estudados futuramente. 3

16 2. Ferramentas e Tecnologias Utilizadas Por se tratar de um projeto acadêmico, as soluções buscadas para implementar o sistema tem caráter gratuito e/ou open source, visando o menor custo de desenvolvimento possível. O sistema pode ser dividido em dois grandes blocos: backend e frontend. O frontend é a interface de interação com o usuário, onde são realizadas as entradas de dados, o lado cliente do modelo cliente-servidor. Esses dados são devidamente processados no backend, o lado servidor. Cada um desses grupos tiveram ferramentas específicas, utilizadas visando não somente qualidade no desenvolvimento mas também agilidade e eficiência. A comunicação entre esses dois blocos ocorre através do Hipertext Transfer Protocol (HTTP), na forma de requisições e respostas. Na tentativa de tirar melhor proveito deste protocolo e não ter a necessidade do uso de outras tecnologias como Remote Procedure Call (RPC), Simple Object Access Protocol (SOAP) e Web Services Description Language (WSDL), o sistema foi desenvolvido baseado em princípios do Representational Stateless Transfer (REST) REST O termo REST foi definido por Roy Fielding [2] para descrever um estilo arquitetural de sistemas hipermídia distribuídos. De acordo com Fielding, REST é um estilo híbrido derivado de vários estilos arquiteturais baseados em rede e combinados com restrições adicionais que definem uma interface de conexão uniforme (2000, pg. 76). REST [3] é um estilo de arquitetura para comunicação baseada na web, com intuito de permitir que clientes possam conversar com servidores de maneira única. Espera-se que as requisições realizadas contenham todas as informações necessárias para definir o processamento no servidor, não sendo necessário nenhum tipo de armazenamento de estados (stateless). Os recursos, elementos de informação, localizam-se no centro de sistemas RESTful, termo esse utilizado para designar sistemas que seguem o princípio REST. Neste estilo de arquitetura cada recurso dentro de um dado servidor é representado unicamente por um identificador uniforme de recursos (URI) e podem possuir diferentes representações, geralmente em forma de dados autodescritivos. De forma mais clara, estes recursos podem representar objetos de dados usando uma variedade de tipos, como Hipertext Markup Language (HTML), 4

17 extensible Markup Language (XML) ou JavaScript Object Notation (JSON). Os recursos podem ser manipulados por meio de um Uniform Resource Locator (URL) utilizando operações HTTP padrão, como por exemplo GET, POST, DELETE e PUT. Usar HTTP como transporte facilita o desenvolvimento de sistemas RESTful, já que elas usam um protocolo de base bem conhecido e estável. Além de estar amplamente disponível e dispensar nova configuração para seu uso. Inclui serviços de Internet como gateways, proxies, entidades de aplicação de segurança e serviços de armazenamento em cache HTTP Backend Na parte central do sistema, o servidor Apache Tomcat foi utilizado e é o responsável por receber requisições, processá-las e enviar uma resposta. As informações são persistidas no servidor através de um banco de dados, com uso do MySQL. Caso seja necessário, é este servidor quem consulta as informações armazenadas ou insere novas informações no banco de dados Apache Tomcat Apache Tomcat [4] é um servidor web HTTP de código aberto, puramente em Java, desenvolvido pela Apache Software Foundation. Como um container de servlets o software apenas implementa algumas das especificações do Java Plataform, Enterprise Edition (Java EE): Java Servlet e Java Server Pages (JSP), duas especificações essenciais quando se trata de desenvolvimento para web. Por cobrir importantes tecnologias da web esse servidor é uma opção muito utilizada e uma solução leve, a qual não demanda muita memória e mantém uma performance boa mesmo em servidores menores MySQL O sistema de gerenciamento de banco de dados relacional (SGBDR) MySQL [5] é um dos mais utilizados em banco de dados para aplicações web, dado que exige pouco processamento. Compatível com diversas linguagens, como PHP, Java, Python, C#, Ruby e C/C++, está disponível em muitos sistemas operacionais (diversos sistemas baseados em Unix, Windows e Mac OS). Apesar de possuir uma versão com licença comercial, a utilizada, MySQL Community Server, é gratuita. Esta versão tem bom suporte e documentação encontrados na internet. Ainda, é disponibilizado o MySQL Workbench, um ambiente gráfico que possibilita de forma mais dinâmica e interativa a criação da base de dados, assim como sua manutenção. 5

18 Hibernate Hibernate [6,7] é um software livre de código aberto, em linguagem Java, que funciona como um framework para mapeamento objeto-relacional (ORM). Com uso de anotações diretamente no código, facilita a interação de objetos com tabelas e colunas de uma base de dados relacional, no caso, o banco de dados MySQL, possibilitando melhor gerenciamento de dados, seja por consultas ou com atualizações dos dados. Apesar do uso de um banco de dados especifico, por escolha própria, ao utilizar o framework não limitamos o uso do sistema a esse banco de dados. Isso, pois o Hibernate permite maior portabilidade a partir do momento em que gera as chamadas de linguagem de consulta estruturada (SQL) e libera o desenvolvedor de tratar manualmente os resultados e conversão dos objetos, com um pequeno overhead no desempenho Frontend As ferramentas básicas utilizadas para o desenvolvimento do aplicativo web foram HTML, Cascading Style Sheets (CSS) e JavaScript. Para melhorar e simplificar o desenvolvimento da interface entre o usuário e o servidor outras bibliotecas, trabalhadas em cima desta ferramentas básicas, foram incorporadas. O uso de bibliotecas como jquery, Backbone, Underscore e RequireJS permitiram estruturar e manipular melhor os códigos HTML e JavaScript. Ainda, aspectos visuais do aplicativo puderam ser melhor explorados com o uso de bibliotecas específicas para tais funcionalidades. O jqueryui permitiu tornar o uso da aplicação mais interativa e com o Highcharts gráficos puderam ser inseridos de forma simples. Para atingir o objetivo de possibilitar o uso do sistema em dispositivos móveis, um aplicativo voltado para ambiente Android se tornou a melhor opção. Além de possuir ferramentas de desenvolvimento gratuitas e sem muitas restrições, é uma plataforma que abrange grande parte do mercado e atinge um público consumidor bastante diversificado jquery e jquery UI jquery [8] é uma biblioteca JavaScript rápida, pequena e que disponibiliza vários recursos. Esta interface de programação de aplicações (API) torna processos como manipular e percorrer documento HTML, tratamento de eventos, animação e Asynchronous JavaScript and XML (AJAX) mais simples. Funciona com os principais navegadores. 6

19 O jquery UI [9] que é um conjunto de interações de interface de usuário, efeitos, widgets e temas, produzida em cima da biblioteca jquery. Auxilia na construção de aplicações web altamente interativas. Construído para designers e desenvolvedores, é flexível podendo evoluir com as necessidades de projeto e resolve diversos casos de uso Backbone O Backbone [10] é um framework JavaScript que oferece elementos, Model, View e Collection, para melhorar a estrutura de aplicações web, além de meios nativos de interagir com backends RESTful e JSON. Utilizando este framework é possível representar dados do servidor como Models no código JavaScript, dando suporte à validação, exclusão, e gravação no servidor, apresentar ao usuário o Model através de uma View, que manipula e define callbacks para eventos do Model em questão e organizar um conjunto ordenado de Model s com uma Collection, trazendo diversos métodos úteis para trabalhar com grupo de dados. A principal vantagem de sua aplicação é ter um código que não inspeciona, nem depende de todo o Document Object Model (DOM) da aplicação. Também não utiliza os seletores jquery ou identificadores (ID s) dos elementos, para atualizar manualmente o HTML, já que, aplicando o Backbone, as View s se manterão atualizadas conforme as mudanças dos Model s. Ainda, permite uma boa separação de cada parte do código JavaScript tornando o código mais modulado, o que facilita sua manutenção Underscore Underscore [11] é uma biblioteca de códigos utilitários voltados, principalmente, para a manipulação de estrutura de dados. Disponibiliza funcionalidades como map, select e invoke, além de uma engine de templating que é muito útil. Os scripts ainda procuram sempre utilizar recursos nativos do navegador e a biblioteca utiliza as implementações das funções já existentes nos navegadores modernos RequireJS RequireJS [12] é um arquivo JavaScript que possibilita o desenvolvedor modular e estruturar seus scripts. Seu uso permite otimizar o carregamento de arquivos, definindo dependências e ordenando a inclusão de cada um deles. Com isso é possível melhorar a velocidade e a qualidade do código escrito Highcharts Highcharts [13] é uma biblioteca gráfica compatível com a maioria e mais utilizados browsers atualmente, como Google Chrome, Internet Explorer (a partir da 7

20 versão 6), Firefox, Safari. Escrito puramente em JavaScript, não necessita de qualquer plugin extra do lado do cliente ou instalação do lado do servidor. Com a biblioteca, diversos tipos de gráficos podem ser gerados, por exemplo, linhas, colunas, barras, pizza. Ainda, disponibiliza opções como zoom e exportação para arquivo de imagem ou impressão, tudo de forma simples e dinâmica. Para projetos não comerciais, como é utilizado nesta ocasião, seu uso é gratuito e sob qualquer licença tem código aberto, permitindo modificações pessoais. Dados todas suas opções e facilidades se tornou uma ótima escolha de uso na geração dos gráficos do relatório das coletas de um formulário, feature prevista no sistema através do aplicativo web Android Android [14] é um sistema operacional baseado no kernel do Linux, desenvolvido principalmente para uso em dispositivos móveis, como smartphones e tablets. No entanto, devido sua característica aberta e customizável, não está limitado a esses dispositivos, podendo ser embarcado em outros eletrônicos. Hoje, amplamente disseminado, é encontrado em milhões de dispositivos dos mais diversos fabricantes de hardware, em mais de 190 países [15]. A plataforma foi revelada no final de 2007 pela Open Handset Alliance [16] como uma plataforma para telefonia móvel com licença open source. O consórcio, liderado pela Google, inclui fabricantes de dispositivos móveis, desenvolvedores de aplicativos, operadoras de telefonia móvel e fabricantes de chips. Sobre o kernel Linux a arquitetura da plataforma Android inclui camadas de Middleware, API s escritas em C e aplicações executadas em um framework de aplicações, que inclui bibliotecas compatíveis com Java. A figura 2.1 ilustra a arquitetura do Android. Apesar do desenvolvimento com a linguagem Java, os aplicativos não são compilados em Java bytecode e interpretados em uma máquina virtual Java (JVM). Foi desenvolvida uma máquina virtual (VM) específica para o Android, a qual é otimizada para conseguir trabalhar com baixa energia e com memória e unidades de processamento central (CPU) limitadas, a Dalvik VM. Ao invés do tradicional bytecode gerado em arquivos de classes.class, um único arquivo.dex (Dalvik Executable), traduzido dos.class, é executado em uma instância da máquina virtual. O arquivo.dex é compilado junto a todo o conteúdo necessário para o aplicativo ser executado no dispositivo em um.apk, o qual será utilizado para instalar o aplicativo nos dispositivos com a plataforma Android. 8

21 Figura Arquitetura Android Fonte: Tutorialspoint O aplicativo desenvolvido neste projeto é baseado apenas em Activities, um dentre os tipos de componentes possíveis de um aplicativo Android (Activities, Services, Content provider e Broadcast receivers) [17]. Uma Activity [18] é um componente que provê uma interface com o usuário, ocupando total ou parcial área da tela, para que o mesmo possa realizar alguma tarefa. Uma aplicação consiste de uma ou várias activities conectadas, e quando iniciada sua activity definida como principal é apresentada ao usuário. Toda interface com o usuário de uma activity é um conjunto de Views, as quais gerenciam um espaço da janela e podem responder à interação com o usuário. Com a utilização de diversas activities, é de grande importância conhecer e saber administrar o ciclo de vida de uma activity que pode ser afetado pela existência de outras activities, seja do mesmo aplicativo ou de aplicativos instalados no dispositivo. A figura 2.2 ilustra o ciclo de vida e seus métodos associados, que controlam os estados de uma aplicação. Cada método do ciclo de vida é descrito a seguir: oncreate(): O primeiro método executado quando uma activity é criada e chamado uma única vez no ciclo de vida. É onde são carregados os layouts estatícos, recursos definidos em XML, e feitas as inicializações necessárias; onstart(): Método executado logo antes da activity se tornar visível para o usuário; onresume(): Método executado logo antes de ser iniciada a interação da activity com o usuário, sempre quando a activity é trazida para o foco; 9

22 onpause(): Quando o sistema está prestes a resumir outra activity este método é chamado para a activity corrente. Aqui as mudanças não salvas em dados persistentes, interrupções de animações e outras tarefas que demandem consumo de CPU devem ser tratadas. A continuação da próxima activity só poderá acontecer quando este método, da activity corrente, for terminado; onrestart(): Método chamado quando uma activity está sendo iniciada novamente, após ter sido parada; onstop(): Método chamado assim que uma activity deixa de ser visível para o usuário, seja devido a sua destruição iminente ou por outra activity estar sendo retomada ao foco e a activity em questão estar sendo escondida; ondestroy(): Este é o método terminal de uma activity, que ocorre antes da mesma ser destruída. A chamada pode ocorrer devido a activity ter sido finalizada ou o sistema, para economizar espaço, destrói temporariamente a instância da activity em questão. Figura Ciclo de Vida da Activity Fonte: Android Developer 10

23 2.4. Desenvolvimento Java é a principal linguagem de programação utilizada no desenvolvimento do projeto. Com sua escolha foi possível unificar parte do desenvolvimento do frontend, relacionada ao aplicativo para Android, com o desenvolvimento do backend em um ambiente único, com uso de uma linguagem comum. Para integrar e agilizar todo o processo de desenvolvimento do projeto foi utilizado o ambiente de desenvolvimento integrado (IDE) Eclipse. Ainda, outras ferramentas auxiliaram no desenvolvimento: o StarUML facilitou na especificação do sistema e seus casos de uso e o MySQL Workbench permitiu mais interatividade com o banco de dados MySQL IDE Eclipse IDE é um software constituído por um conjunto de funcionalidades que tornam mais fácil e interativo o processo de construir e manipular softwares, visando maior produtividade do desenvolvedor. Um destes softwares é o Eclipse [19], plataforma de desenvolvimento de software livre extensível, o qual inclui diversas ferramentas de desenvolvimento Java (JDT). O uso de plugins disponibilizados gratuitamente ainda dá suporte às mais diversas necessidades do desenvolvedor e tornou possível centralizar interação com servidores, banco de dados e ferramentas de controle de versão. Para o desenvolvimento Android, um kit de desenvolvimento (SDK), disponibilizado como plugin, fornece bibliotecas de API e ferramentas de desenvolvimento necessárias para construir, testar e depurar aplicativos para Android. Incluindo esses plugins o ambiente de desenvolvimento foi bem integrado, sendo necessário apenas iniciar o Eclipse para que se pudesse desenvolver e testar o sistema StarUML StarUML [20] é um software de código aberto projetado para desenvolver plataformas de Unified Modeling Language (UML) e de Model Driven Architecture (MDA). O objetivo do projeto deste programa é desenvolver um software de ferramenta para modelagem que seja um bom substituto para ferramentas UML comerciais MySQL Workbench O MySQL Workbench [21] é uma ferramenta importante para o trabalho com banco de dados, pois permite manusear uma base de forma mais interativa. É possível criar diagramas entidade-relacionamento para bases de dados MySQL e ainda pode-se utilizá-lo para desenhar layout da base de dados ou documentar uma que já exista. Esta ferramenta simplifica o projeto de banco de dados e sua manutenção, além de permitir 11

24 visualizar os requisitos e resolver problemas de projeto antes que um grande investimento de tempo e recursos seja feito. O Workbench integra ferramentas de administração de banco de dados numa simples utilização de interfaces gráficas. O console visual permite que os administradores de banco de dados possam realizar facilmente operações como configuração de servidores, administração de usuários, exportação e importação, e visualização de logs. O Editor de SQL visual permite aos desenvolvedores construir, editar e executar consultas, criar e editar dados, também visualizar e exportar resultados. Sintaxe com destaque de cores, ajuda sensível ao contexto e auto-completar ajudam na escrita e depuração de instruções SQL Desenvolvimento Colaborativo Com o desenvolvimento do projeto sendo realizado em dupla, ferramentas que possam auxiliar o desenvolvimento colaborativo são essenciais. Apesar das tarefas na codificação serem bem definidas, quanto a responsabilidade de cada desenvolvedor envolvido, se mostra de grande importância possibilitar que um possa ajudar no trabalho do outro, sempre visando o bom andamento do projeto e a troca de conhecimento. Para que isso fosse possível foi utilizado um sistema de controle de versão, Mercurial, integrado em um ambiente de desenvolvimento colaborativo, disponibilizado através do Project Hosting do Google Code Mercurial O Mercurial [22], ou também conhecido por simplesmente Hg (símbolo químico do mercúrio), é um sistema distribuído de controle de versão, com licença gratuita de uso. Este segue uma arquitetura ponto-a-ponto (P2P), ou seja, vários repositórios autônomos e independentes, um para cada desenvolvedor. O controle de versões apoia o desenvolvimento nos seguintes aspectos: Histórico: Registra toda a evolução do projeto, cada alteração sobre cada arquivo. É possível saber quem realizou as alterações, quando e em que parte do código. Além disso, permite retornar para uma versão específica do arquivo caso necessário. Colaboração: Possibilita vários desenvolvedores trabalharem em paralelo no mesmo arquivo sem que um sobrescreva o código do outro. Variações no Projeto: Mantém linhas diferentes de evolução do mesmo projeto. Por exemplo, mantendo uma versão 1.0 enquanto a equipe de desenvolvimento prepara uma versão

25 O Mercurial foi escolhido com o objetivo de gerenciar o código do projeto, evitando que problemas ocorram por descuido, como perder alterações feitas, além de facilitar o trabalho de desenvolvimento em equipe Google Code e Project Hosting O Google Code [23] é uma área disponibilizada pela empresa Google direcionada aos desenvolvedores. Um de seus serviços é a hospedagem de projetos, através do Project Hosting, o qual fornece um ambiente de desenvolvimento colaborativo para projetos de código aberto. De forma simples, rápida, confiável e escalável, cada projeto possui seus próprios controles de membros, repositório com diferentes sistemas de controle de versão cambiáveis (Subversion, Mercurial ou Git), ferramenta de controle de tarefa (issue tracker) e páginas para documentação (wiki). O projeto hospedado pode ser acessado em https://code.google.com/p/geform/. 13

26 3. Servidor Os detalhes no desenvolvimento do servidor são apresentados neste capítulo. Serão consideradas as etapas de projeto do banco de dados, forma que serão guardados os dados enviados, e especificação da comunicação entre o servidor e as aplicações web e Android Arquitetura O sistema é baseado na arquitetura cliente-servidor. Esta arquitetura, distribui as tarefas entre os fornecedores de um recurso ou serviço, servidores, e os usuários dos serviços, clientes. Os clientes serão representados pelas aplicações que utilizam os serviços para criar os formulários, fazer entrada de dados obtidos e gerar os relatórios acerca destes dados. Já o servidor executa requisições de serviços no banco de dados e retorna os resultados destes ao cliente. A utilização dessa arquitetura para a implementação do sistema atende bem aos requisitos que definimos para nosso projeto (figura 3.1) Modelos de dados Figura Arquitetura Cliente-Servidor Fonte: Wikipedia Commons As duas principais entidades de todo o sistema são os formulários e as coletas referentes a um determinado formulário. Cada uma possui uma modelagem particular, mas interligadas, e estão descritas a seguir. O formulário foi pensado com sua descrição em formato XML. Cada formulário construído no sistema deve conter informações básicas obrigatórias para ser válido. Todo formulário criado deve conter: um identificador único associado pelo servidor no 14

27 momento de criação, um criador, uma data de criação (também inserida pelo servidor no momento da criação), um título e pelo menos um item, o qual será explicado em seguida. Opcionalmente, é possível incluir uma descrição para o formulário de forma que se explique do que se trata o formulário em questão. A modelagem de um formulário deve ser algo como: <form> <id>$identificador</id> <creator>$criador</creator> <timestamp>$data_de_criação</timestamp> <title>$título</title> [<description>$descrição_opcional</description>] <item>...</item> //quantos itens forem necessários </form> Um item, por sua vez, representa um componente de um formulário que deve receber uma resposta, obrigatoriamente, quando realizada a coleta de dados. Assim como o elemento formulário, cada item tem um identificador único ao qual é associado no momento de sua criação no servidor e que o diferencia dos outros itens. Todo item deve conter uma pergunta, questão ou algo que permita definir o que o usuário está respondendo naquele item. Três tipos de itens são suportados pelo sistema: texto, escolha única e múltipla escolha. O modelo do item segue o padrão: <item type=$tipo> <id>$identificador</id> <question>$pergunta</question> <options> //caso o tipo admita opções //opções disponíveis </options> </item> Caso o item seja de escolha, simples ou múltipla, pelo menos duas opções devem ser inseridas. Cada opção contém um identificador e o valor da opção, valor esse que é mostrado ao usuário: <option> <id>$identificador</id> <value>$valor</value> </option> Assim como para o formulário, foi pensado um modelo que representa os dados adquiridos pelo preenchimento de um formulário, a coleta. Mais simples que o elemento formulário, o elemento coleta deve conter as seguintes informações: o identificador do formulário o qual faz referência, o nome de quem está realizando a coleta e a resposta de cada item em sequência, de acordo com a disposição dos itens no formulário de referência. O padrão do modelo de uma coleta é: 15

28 <collection> <form>$identificador_do_formulário_de_referência</form> <collector>$quem_está_coletando_os_dados</collector> <item>...</item>... </collection> No caso de uma coleta, o elemento item deve conter a resposta para o item correspondente no formulário. Caso o item seja do tipo que possui opções, a resposta inserida deve ser o valor da opção, podendo ter mais de uma resposta inserida caso seja de múltipla escolha. <item> <answer>$resposta</answer> [<answer>$outra_resposta</answer>] //caso seja múltipla escolha </item> No Apêndice A é possível visualizar o exemplo de um modelo completo de formulário, contendo itens dos três tipos, assim como um modelo de uma coleta para o formulário exemplificado. Ainda, para cada modelo, tanto de formulário quanto de coleta, também são exemplificadas suas representações alternativas, em JSON Banco de Dados Utilizou-se o sistema de gerenciamento de banco de dados relacional MySQL, um banco de dados que permite uma maior compatibilidade e fácil implementação. O modelo de entidade-relacionamento (MER), ilustrado na figura 3.2, mostra a estrutura do banco de dados, o qual suporta a persistência das classes definidas para o sistema. Foram separadas as entidades ligadas a criação de um formulário das relacionadas a resposta com objetivo de deixar mais clara esta distinção e entendimento do modelo. 16

29 Figura Modelo Entidade-Relacionamento (MER) O modelo do banco de dados foi bastante discutido, a fim de se obter a maior flexibilidade e independência das entidades. A modelagem foi feita de forma a possibilitar o reaproveitamento de partes de formulários anteriores, como itens ou até opções, procurando poupar trabalho repetitivo. Analisando o MER pode-se notar que um item pode estar em mais de um formulário, assim como uma opção pode estar em mais de um item Recursos O servidor, como um fornecedor de recursos, está ligado aos seguintes recursos: Formulário: Este recurso representa o modelo de um formulário, conforme descrito anteriormente. 17

30 Coleta: Este recurso representa o modelo de uma coleta, conforme descrito anteriormente. Relatório: Este recurso disponibiliza um levantamento quantitativo das respostas obtidas para um dado formulário. No relatório estão contidas informações de quantas coletas no total foram realizadas para aquele formulário, quem realizou as coletas e por quantas cada um foi responsável e para cada item que contém opções, quantas respostas foram dadas para cada opção. Vale ressaltar que itens do tipo texto não geram entradas no relatório, já que não podem ser quantificadas. Exportação: Este recurso disponibiliza todas as coletas realizadas para um formulário em um arquivo texto com os valores separados por tab (TSV). Com esse arquivo é possível importar os dados coletados em programas de gerenciamento de planilhas, como o Excel, e realizar um relatório customizado, possivelmente mais completo que o disponibilizado pelo sistema. A interação com os recursos disponibilizados pode ser realizada através de requisições HTTP, de acordo com a definição na tabela

31 Tabela Requisições HTTP para manipulação de recursos. URI Método HTTP Descrição /rest/forms POST Criação de um formulário. As informações enviadas, descrevendo o formulário, são cadastradas no banco de dados. O id do novo formulário é retornado como resposta para que possa ser localizado posteriormente. Media types: application/xml, application/json /rest/forms/{id} GET Obtenção do formulário especificado. (p. ex.: /rest/forms/1) Media types: application/xml, application/json /rest/forms/{id} POST Adição de uma nova coleta para o formulário especificado no banco de dados. (p. ex. /rest/forms/1) Media types: application/xml, application/json /rest/forms/{id}/report GET Geração do relatório básico acerca dos dados coletados e armazenados na base para o formulário especificado. (p. ex. /rest/forms/1/report) Media types: application/json /rest/forms/{id}/export GET Exportação das coletas armazenadas na base, referentes ao formulário especificado. (p. ex. /rest/forms/1/export) Media types: text/tab-separeted-values 19

32 4. Aplicativos Do lado do cliente, dois aplicativos foram desenvolvidos para que o usuário possa interagir com o sistema: um aplicativo que roda em ambiente Android e outro para ser utilizado em computadores, através de um browser. Em ambos, estão disponíveis funcionalidades como criação de um formulário e a realização de coletas de dados. No entanto, apenas no aplicativo web é possível visualizar o relatório e obter todos os dados coletados de um formulário. Planeja-se dessa forma ter o aplicativo web como principal ferramenta de gerenciamento do formulário, com o aplicativo Android com principal função, mas não limitado, a realização de coletas. O aplicativo Android expande a área de utilização do sistema, visto que possibilita seu uso, com possíveis limitações, em qualquer lugar. Não é necessário acesso à internet para realizar a coleta de dados caso o formulário já tenha sido baixado previamente e esteja armazenado no dispositivo. Isso mostra ser seu diferencial Aplicativo Android O aplicativo GeForm para Android pode ser instalado em qualquer dispositivo móvel que rode a plataforma Android com versão mínima suportada 2.3, Android Gingerbread. A instalação apenas pede permissão para ter acesso à rede, o que permitirá que o aplicativo se conecte com o servidor para troca de dados. O aplicativo possui seis activities: GeForm é a activity principal e por isso leva o nome do sistema. O aplicativo é iniciado nessa activity; Duas activities Fill, em uma são listados os itens de um formulário específico e na outra é feita a visualização de um item desse formulário; Edit Form é a activity inicial de criação de um formulário, onde são inseridos os campos de título e descrição, e listados os itens inseridos naquele formulário; Edit Item é a activity de criação de um item para ser inserido no novo formulário; A activity Settings é utilizada para realizar a configuração do aplicativo; Ao iniciar o aplicativo é verificado se nas configurações está definido o nome do usuário. Caso ainda não tenha sido inserido, uma caixa de diálogo é aberta para indicar essa necessidade. Duas opções são dadas ao usuário, entrar nas configurações (figura 4.1) onde poderá ser inserido o nome de quem está utilizando o aplicativo ou 20

33 simplesmente continuar o uso do aplicativo sem realizar as configurações necessárias, porém restringindo as funcionalidades as quais terá acesso. Mesmo sem configuração ainda é possível fazer o download de formulários e realizar coletas. Figura Activity de configurações do aplicativo Android Na activity principal do aplicativo, o usuário tem disponível as seguintes opções: Baixar um formulário do servidor; Enviar coletas pendentes para o servidor; Criar um formulário; Configurar o aplicativo; Para se baixar um formulário, seu identificador único deve ser informado. Se a ação for realizada com sucesso, o arquivo que descreve o formulário será baixado do servidor, armazenado internamente no dispositivo e criada uma entrada no banco de dados local. Este formulário ficará acessível na listagem de formulários. Todos os formulários disponíveis no dispositivo móvel são listados na activity principal, com informações do título e de quantas coletas foram realizadas no dispositivo, além de quantas destas coletas ainda precisam ser enviadas para o servidor. A figura 4.2 apresenta a activity principal do aplicativo. 21

34 Figura Activity principal do aplicativo Android 1-Enviar coletas; 2-Baixar formulário Através de um clique longo em um dos formulários são mostradas suas informações, o que torna mais fácil a diferenciação e identificação de um formulário específico caso existam muitos armazenados localmente e possivelmente existam dois ou mais com o mesmo título. Nesta mesma visualização é disponibilizada a opção de deletar o formulário do dispositivo, excluindo seu arquivo XML e removendo as entradas no banco de dados referentes ao formulário e a todas as coletas feitas no dispositivo, mesmo que ainda não tenham sido enviadas para o servidor Persistência de dados Para tornar o aplicativo menos dependente da comunicação com o servidor, e tornar possível seu uso offline, é necessário persistir as informações importantes transmitidas quando realizada alguma interação com o servidor. Após baixar um formulário, o arquivo descrevendo suas informações em formato XML é armazenado em uma pasta interna do aplicativo e visível apenas para ele. Além disso, o banco de dados com suporte nativo no Android, o SQLite, também é utilizado para persistir informações. O SQLite é um banco auto-contido, compacto e de bom desempenho, consumindo poucos recursos do sistema. A base de dados criada no dispositivo é simplificada em relação ao existente no servidor e possui apenas duas tabelas, Forms e Collections. A tabela Forms contém as informações do identificador e do título de cada formulário armazenado no dispositivo. Através do identificador é possível saber qual arquivo buscar na pasta com os 22

35 formulários baixados do servidor. A tabela Collections armazena as coletas realizadas no dispositivo e possui as informações de: identificador do formulário (chave estrangeira que está relacionada com a tabela Forms, garantindo que existam coletas apenas para formulários existentes e cadastrados nesta tabela), número da coleta usado para quantificar quantas foram realizadas para um dado formulário, número que identifica a posição do item dentro de um dado formulário, resposta em si e indicação se a coleta já foi enviada para o servidor. Para o campo resposta, caso o item seja restrito à opções, o valor armazenado é o índice da opção dentro da lista de opções do item que está sendo respondido. Na figura 4.3 são apresentadas as tabelas descritas do banco de dados do dispositivo Android e seus relacionamentos. Figura Modelo Entidade-Relacionamento da base de dados no Android Realizando uma coleta Um clique simples em um dos formulário o abre para realização de uma coleta. Isso permite também, caso se queira, simplesmente visualizar seus itens. A activity aberta lista todos os itens do formulário (figura 4.4). 23

36 Figura Activity com listagem de itens de um formulário 1-Finalizar coleta de dados Deve-se clicar sobre uma das perguntas para abrir sua visualização e poder inserir ou editar a resposta para aquele item. A figura 4.5 ilustra a activity para a visualização de um item. Figura Activity para visualização de um item do formulário 1-Voltar para listagem de itens Dentro de um item específico é possível mudar para o próximo ou voltar para o anterior através do movimento de swipe horizontal (pressionando a tela e a arrastando 24

37 horizontalmente). Outra forma de alterar a visualização de um item é voltar para a listagem de itens através da opção disponibilizada e escolher o item que se deseja visualizar/responder. O botão voltar do dispositivo, se utilizado no contexto de visualização de um item, descarta a resposta inserida no item corrente e retorna para a listagem de itens. Com todos os itens respondidos, basta selecionar a opção de concluir uma coleta, localizada na activity Fill com a listagem de itens. As respostas dadas para o formulário serão salvas no banco de dados local e o usuário direcionado para a activity principal, onde pode iniciar uma nova coleta ou enviar para o servidor as coletas pendentes armazenadas no dispositivo. O envio somente poderá ser realizado caso o usuário tenha se identificado, através das configurações do aplicativo Criando um formulário Para criar um formulário é obrigatório ter configurado o nome do usuário do aplicativo. Quando clicado na opção de criação, a activity EditForm é aberta tornando possível a inserção do título do formulário e caso se deseje uma descrição (figura 4.6). Ainda, são listados todos os itens inseridos no novo formulário. É possível selecionar um dos itens para editá-lo ou, com um clique longo, removê-lo do formulário. Figura Activity de inserção de informações do formulário 1-Finalizar criação; 2-Inserir novo item Selecionando a opção de inserir um novo item, a activity EditItem é aberta para realizar a tarefa (figura 4.7). Nessa activity, uma pergunta deve ser inserida e o tipo do 25

38 item deve ser escolhido. Os tipos disponibilizados são: texto, para itens que tem respostas livres, escolha única, para itens que tem uma lista de opções predefinidas das quais o usuário pode escolher apenas uma, ou múltipla escolha, semelhante ao tipo escolha única mas possibilitando que o usuário possa escolher mais de uma opção como resposta. Figura Activity de inserção de um item no formulário 1-Concluir inclusão de novo item; 2-Inserir opção Por padrão, o tipo do item é o de texto e caso seja alterado para escolha única ou múltipla escolha as opções que poderão ser escolhidas deverão ser inseridas. As opções criadas serão listadas na parte de baixo da activity e podem ser editadas se selecionadas. Para remover uma opção basta realizar um clique longo sobre o item que se deseja remover e confirmar a remoção. A conclusão da criação de um formulário envia os dados inseridos para o servidor para que o mesmo concretize a criação do formulário. É obrigatório inserir o título e pelo menos um item para que se possa tentar concretizar a criação do formulário. Se criado com sucesso, no servidor será definido um identificador único para o formulário, para que o mesmo possa ser baixado posteriormente por outros usuários, e o formulário é armazenado localmente, ficando disponível para realização de coletas. 26

39 4.2. Aplicativo Web O aplicativo GeForm em sua versão web é desenvolvido para ser usado online. Permite ao usuário criar formulários, coletar dados com o preenchimento de um formulário, consultar relatórios básicos acerca dos dados coletados e baixar todos os dados coletados de um determinado formulário. Qualquer pessoa conectada à internet é um usuário em potencial do sistema, com acesso irrestrito a qualquer formulário e informações relacionadas. A página inicial do aplicativo, apresentada na figura 4.8, disponibiliza uma área onde é possível buscar ou criar um formulário. Figura Página inicial do aplicativo web 1-Campo de busca; 2-Botão de busca; 3-Botão de criação A busca é realizada através do identificador do formulário, informação essa que o diferencia de todos os outros formulários existentes. De posse desta informação, basta inseri-la no campo de busca e clicar no botão de buscar, ou pressionar a tecla Enter, para que o formulário desejado seja requisitado no servidor. Caso o formulário requisitado exista, suas informações são mostradas ao usuário. O campo de busca continua disponível para que uma nova consulta possa ser realizada, substituindo o formulário visível pelo novo formulário desejado. Ainda, com o formulário definido e suas informações em tela, ficam disponíveis as funções de coleta, geração de relatório e exportação de dados (figura 4.9). 27

40 Figura Visualização de um formulário no aplicativo web 1-Gerar relatório; 2-Exportar dados Interagindo com um formulário Inicialmente, definido e encontrado o formulário de interesse, os itens do formulário podem apenas ser visualizados, como em um modo read-only. Para que se possa preenchê-lo é necessário ativar o modo coleta. Quando se está nesse modo, os campos de preenchimento dos itens se tornam editáveis, tornando possível a tomada de dados. Ainda, um campo para identificar quem está se responsabilizando pela coleta dos dados é mostrado junto aos itens do formulário e deve ser preenchido antes do envio das informações para o servidor. Todos os itens devem conter uma resposta para que a coleta seja válida para envio ao servidor. Após terem sido enviadas com sucesso, indicando que as informações coletadas foram armazenadas no servidor, as repostas inseridas para cada item são apagadas do formulário, permitindo que uma nova coleta seja realizada. Selecionando a opção de relatório, é requisitado ao servidor a realização de uma análise básica e quantitativa dos dados coletados de um formulário, armazenados no servidor. Os resultados dessa análise são representados em diferentes gráficos. Em um gráfico de barras verticais são apresentadas as quantidades de formulários preenchidos por coletor participante na coleta de dados de um formulário. Excetuando itens do tipo texto que não são representados no relatório gerado, para cada item um gráfico de setores, ou mais conhecido como gráfico de pizza, é criado com a representação das proporções de cada resposta. A opção de exportação dos dados resulta, quando existem dados coletados para o formulário, em um arquivo para download. Após salvo em um local no computador do 28

41 usuário, o arquivo pode ser importado em um programa de gerenciamento de planilhas instalado no computador, dado que o arquivo está no formato TSV Criando um formulário Ao clicar para criar um formulário, o usuário é direcionado para a área onde são apresentados os componentes disponíveis e necessários para a criação de um formulário. Devem ser inseridos um título para o novo formulário e o usuário que o está criando. Opcionalmente, uma breve descrição do que se trata o formulário pode ser inserida. Deve existir pelo menos um item no formulário para que o mesmo possa ser considerado válido para ser criado. A figura 4.10 apresenta a área de criação de formulários. Figura Área de criação de formulário no aplicativo web 1-Item válido; 2-Remover item; 3-Remover opção O usuário pode inserir itens de qualquer um dos três tipo disponibilizados e suportados pelo sistema: texto, escolha única e múltipla escolha. Ao selecionar um tipo de item a ser adicionado, cria-se um componente na lista de perguntas. Este componente representa um item, e com isso possui um campo onde deve ser inserido a questão a qual deverá ser respondida. Caso seja do tipo escolha única ou escolha múltipla, as opções também devem ser criadas. Mesmo após ter sido inserido, um item específico pode ser excluído selecionando a opção de remoção existente no componente. O mesmo pode ser feito para uma opção específica do item. Os itens inseridos podem ser reordenados durante a criação do formulário. Para isso, basta selecionar um item e reposicioná-lo com a ação de drag-and-drop (pressionar o mouse sobre o item e arrastar até a posição de interesse). Caso o item esteja pronto, ou seja, 29

42 sua criação é válida, seu status será mostrado como ok. No entanto, caso não seja válido e se tente salvar o formulário, o status do item será de erro, gerando uma indicação em vermelho em seu componente, o que permite sua localização facilmente. Com o formulário montado e devidamente validado, este pode ser enviado ao servidor para concretizar sua criação. Se a criação for realizada com sucesso, o novo formulário será mostrado ao usuário que o criou. O criador do formulário deve guardar o identificador do novo formulário para futuras consultas ou divulgação para sua equipe de coletores, para que possam localizar o formulário que devem utilizar para realizar a coleta de dados. 30

43 5. Análise Este capítulo é reservado para fazer a descrição e avaliação mais detalhada com relação a utilização do sistema. Neste capitulo será feita a definição dos casos de uso intrínsecos, apresentados os testes realizados e seus resultados Casos de Uso Os casos de uso apresentam a utilização das funções do sistema, descreve de forma ampla e simples estas funções detalhando o uso dos aplicativos para cada um dos ambientes Aplicativo Android A figura 5.1 ilustra o diagrama de casos de uso para o aplicativo Android. Os casos de uso são detalhados em sequência. Figura Diagrama de casos de uso no aplicativo Android Criar Formulário Atores: Usuário Pré-condição: Usuário deve rodar o aplicativo em seu dispositivo e configurar. Casos de Uso Associados: Adicionar Item e Salvar Formulário. 31

44 Fluxo de Eventos: 1. O caso de uso inicia apertando o botão de menu e escolhendo a opção Create Form. 2. Usuário preenche o título e opcionalmente a descrição. 3. Adiciona itens apertando o menu e escolhendo Add Item, deve haver no mínimo 1 item. 4. Caso de uso encerrado após salvar formulário. Pós-condição: O formulário criado foi salvo no servidor e colocado na lista local do dispositivo. Adicionar Item Atores: Usuário Pré-condição: Usuário deve ter optado por criar um formulário. Casos de Uso Associados: Criar Formulário, Adicionar Opção, Excluir Item e Salvar Formulário. Fluxo de Eventos: 1. O caso de uso inicia apertando o botão menu e escolhendo Add Item. 2. Usuário preenche o texto da questão e escolhe o índice. 3. Escolhe um tipo para a pergunta. 4. Caso seja um item de escolha, aperte o menu e clique em Add Option. 5. Terminado o preenchimento, deve-se apertar o menu, em seguida, OK. 6. Caso de uso encerrado. Pós-condição: Listado um novo item na criação do formulário. Adicionar Opção Atores: Usuário Pré-condição: Usuário deve ter optado por adicionar um item do tipo escolha. Casos de Uso Associados: Adicionar Item e Excluir Opção. Fluxo de Eventos: 1. O caso de uso inicia apertando o botão menu e escolhendo Add Option. 2. Abre uma caixa de texto. 32

45 3. Usuário preenche o texto da opção, após isso, clica em OK. Deve ter 2 opções no mínimo. 4. Caso de uso encerrado. Pós-condição: Listada uma nova opção na criação do item. Excluir Opção Atores: Usuário Pré-condição: Usuário deve ter adicionado uma opção. Casos de Uso Associados: Adicionar Opção. Fluxo de Eventos: 1. O caso de uso inicia com um clique longo sobre a opção a ser excluída. 2. Visualiza-se uma caixa de escolha, após isso, escolher OK. 3. Opção correspondente ao clique longo é excluída. 4. Caso de uso encerrado. Pós-condição: Opção correspondente ao clique longo foi retirada da lista de opções do item. Excluir Item Atores: Usuário Pré-condição: Usuário deve ter adicionado um item. Casos de Uso Associados: Adicionar Item. Fluxo de Eventos: 1. O caso de uso inicia com um clique longo sobre o item a ser excluído. 2. Visualiza-se uma caixa de escolha, após isso, escolher OK. 3. Item correspondente ao clique longo é excluído. 4. Caso de uso encerrado. Pós-condição: Item correspondente ao clique longo foi retirado da lista de itens do formulário. 33

46 Salvar Formulário Atores: Usuário Pré-condição: Usuário deve ter optado por criar um formulário. Casos de Uso Associados: Criar Formulário, Adicionar Item, Realizar Coleta e Remover Formulário Local. Fluxo de Eventos: 1. O caso de uso inicia apertando o botão menu e escolhendo OK. 2. Verifica se os requisitos para criação de um formulário foram atendidos. 3. Caso positivo, as informações do formulário são enviadas ao servidor 4. Feito isso, o formulário é listado para uso no dispositivo. 5. Caso de uso encerrado. Pós-condição: As informações do formulário foram salvas no servidor e formulário disponível para uso no dispositivo. Baixar Formulário Atores: Usuário Pré-condição: Usuário deve rodar o aplicativo em seu dispositivo e configurar. Casos de Uso Associados: Realizar Coleta e Remover Formulário Local. Fluxo de Eventos: 1. O caso de uso inicia clicando no ícone localizado no canto superior direito referente ao download do formulário. 2. Surge uma caixa de texto, onde precisa colocar o identificador de um formulário existente no servidor. 3. Uma vez encontrados e obtidos os dados do formulário indicado, este é colocado na lista de formulários para uso do dispositivo. 4. Caso de uso encerrado. Pós-condição: Formulário escolhido está na lista de formulários para uso do dispositivo. 34

47 Realizar Coleta Atores: Usuário Pré-condição: Usuário deve baixar um formulário com identificador existente ou ter criado um formulário por seu dispositivo. Casos de Uso Associados: Baixar Formulário, Salvar Formulário e Enviar Coleta. Fluxo de Eventos: 1. O caso de uso inicia com o clique no formulário que se pretende usar. 2. Usuário clica na pergunta a ser respondida e passa para outra pressionando a tela e arrastando horizontalmente. 3. Usuário responde todas questões do formulário. 4. Terminado o preenchimento, deve-se apertar o menu, em seguida, Items List e Apertar novamente o botão menu, em seguida, Commit. 5. Atualiza a informação sobre as coletas no formulário utilizado. 6. Caso de uso encerrado. Pós-condição: As respostas dadas às questões foram salvas no dispositivo e atualizada a informação sobre as coletas no formulário utilizado. Enviar Coleta Atores: Usuário Pré-condição: Usuário deve rodar o aplicativo em seu dispositivo e configurar. Casos de Uso Associados: Realizar Coleta. Fluxo de Eventos: 1. O caso de uso inicia clicando no ícone localizado no canto superior direito referente ao envio das coletas. 2. Caso haja alguma coleta ainda não enviada, esta é enviada ao servidor. 3. Atualiza a informação to commit na lista de formulários. 4. Caso de uso encerrado. Pós-condição: As coletas de dados foram salvas no servidor e atualizada a informação to commit na lista de formulários. 35

48 Remover Formulário Local Atores: Usuário Pré-condição: Usuário deve baixar um formulário com identificador existente ou ter criado um formulário por seu dispositivo. Casos de Uso Associados: Baixar Formulário e Salvar Formulário. Fluxo de Eventos: 1. O caso de uso inicia com um clique longo sobre o formulário a ser excluído. 2. Visualiza-se as informações do formulário. 3. Após isso, escolher Delete. 4. Todas informações no dispositivo ligadas ao formulário escolhido são removido do mesmo. Caso haja coleta não enviada, esta será perdida. 5. Caso de uso encerrado. Pós-condição: Todas informações no dispositivo ligadas ao formulário escolhido foram removidas do mesmo Aplicativo Web A figura 5.2 ilustra o diagrama de casos de uso para o aplicativo web, e a descrição de cada caso é apresentada em sequência. Figura Diagrama de casos de uso no aplicativo web 36

49 Buscar Formulário Atores: Usuário Pré-condição: Usuário deve acessar o site do sistema, colocar o identificador do formulário e clicar no botão para buscar formulário. Casos de Uso Associados: Realizar Coleta, Obter Relatório e Exportar Dados. Fluxo de Eventos: 1. O caso de uso inicia preenchendo o campo para o identificador de formulário e clicando no botão de buscar formulário. 2. Usuário visualiza os dados do formulário consultado. 3. Pode optar por realizar uma coleta, obter relatório ou solicitar a exportação dos dados obtidos com as coletas. 4. Caso de uso encerrado. Pós-condição: Visualizadas as informações do formulário e possibilidade de realizar coleta, obter relatório ou solicitar a exportação dos dados obtidos com as coletas. Realizar Coleta Atores: Usuário Pré-condição: Usuário deve buscar um formulário com identificador existente. Casos de Uso Associados: Buscar Formulário. Fluxo de Eventos: 1. O caso de uso inicia com o clique no botão Collect Mode. 2. Usuário preenche o campo Collector. 3. Responde todas questões do formulário. 4. Clica no botão de enviar as respostas para o servidor. 5. Caso de uso encerrado. Pós-condição: As respostas dadas às questões foram salvas no servidor. 37

50 Obter Relatório Atores: Usuário Pré-condição: Usuário deve buscar um formulário com identificador existente. Casos de Uso Associados: Buscar Formulário. Fluxo de Eventos: 1. O caso de uso inicia com o clique no ícone View Report. 2. Usuário visualiza os gráficos gerados pelo sistema. 3. Pode fazer algumas interações e salva-los. 4. Caso de uso encerrado. Pós-condição: Usuário tem a visualização inicial dos gráficos para as questões com opções. Exportar Dados Atores: Usuário Pré-condição: Usuário deve buscar um formulário com identificador existente. Casos de Uso Associados: Buscar Formulário. Fluxo de Eventos: 1. O caso de uso inicia com o clique no ícone Export Collections. 2. Usuário grava localmente o arquivo enviado pelo servidor. 3. Caso de uso encerrado. Pós-condição: Já tem acesso aos dados coletados para o formulário. Criar Formulário Atores: Usuário Pré-condição: Usuário deve acessar o site do sistema e clicar no botão de criar formulário. Casos de Uso Associados: Adicionar Item e Salvar Formulário. Fluxo de Eventos: 1. O caso de uso inicia clicando no botão de criar formulário. 38

51 2. Usuário preenche o título, criador e opcionalmente a descrição. 3. Adiciona itens e possivelmente opções, deve haver no mínimo 1 item. 4. Pode reordenar itens os arrastando. 5. Caso de uso encerrado após salvar formulário. Pós-condição: O formulário criado foi salvo no servidor. Adicionar Item Atores: Usuário Pré-condição: Usuário deve ter optado por criar um formulário. Casos de Uso Associados: Criar Formulário, Adicionar Opção, Excluir Item e Salvar Formulário. Fluxo de Eventos: 1. O caso de uso inicia clicando para adicionar um dos três tipos de item. 2. Usuário preenche o texto da questão. 3. Caso seja um item de escolha, clica para adicionar opções. 4. Caso de uso encerrado. Pós-condição: Listado um novo item na criação do formulário. Adicionar Opção Atores: Usuário Pré-condição: Usuário deve ter optado por adicionar um item do tipo escolha. Casos de Uso Associados: Adicionar Item e Excluir Opção. Fluxo de Eventos: 1. O caso de uso inicia clicando para adicionar opção. 2. Usuário preenche o texto da opção, deve ter 2 opções no mínimo. 3. Caso de uso encerrado. Pós-condição: Listado um novo item na criação do formulário. 39

52 Excluir Opção Atores: Usuário Pré-condição: Usuário deve ter adicionado uma opção. Casos de Uso Associados: Adicionar Opção. Fluxo de Eventos: 1. O caso de uso inicia clicando no ícone com sinal de subtração. 2. Opção correspondente ao ícone clicado é excluída. 3. Caso de uso encerrado. Pós-condição: Opção correspondente ao ícone clicado foi retirada da visualização do item. Excluir Item Atores: Usuário Pré-condição: Usuário deve ter adicionado um item. Casos de Uso Associados: Adicionar Item. Fluxo de Eventos: 1. O caso de uso inicia clicando no ícone com a letra X. 2. Item correspondente ao ícone clicado é excluído. 3. Caso de uso encerrado. Pós-condição: Item correspondente ao ícone clicado foi retirado da lista de itens do formulário. Salvar Formulário Atores: Usuário Pré-condição: Usuário deve ter optado por criar um formulário. Casos de Uso Associados: Criar Formulário e Adicionar Item. Fluxo de Eventos: 1. O caso de uso inicia clicando no botão para salvar o formulário. 40

53 2. Verifica se os requisitos para criação de um formulário foram atendidos. 3. Caso positivo, as informações do formulário são enviadas ao servidor. 4. Caso de uso encerrado. Pós-condição: As informações do formulário foram salvas no servidor Testes e Resultados Com todas as funções, inicialmente planejadas, finalizadas e o sistema totalmente funcional, alguns testes foram realizados. O objetivo era verificar a integridade dos aplicativos desenvolvidos e o servidor, assim como a interação entre eles, com uso do sistema por completo Criação de formulários Acessando o aplicativo web através de um browser em um computador, tentou-se criar um formulário contendo todos os possíveis tipos de itens suportados pelo sistema. Para garantir que a validação do formulário funciona corretamente, tentou-se finalizar a criação sem ter inserido informações obrigatórias como título ou pelo menos um item (figura 5.3). Figura Validação de informações do formulário no aplicativo web Mesmo com pelo menos um item inserido no formulário, é certificado que a questão tenha sido inserida em cada um. Ainda, quando o item é do tipo que possui opções, o aplicativo o valida corretamente obrigando que sejam inseridas pelo menos duas opções. A figura 5.4 ilustra a validação dos itens de um formulário. 41

54 Figura Validação de itens do formulário Somente com todos os campos obrigatórios inseridos, foi possível criá-lo e em seguida verificá-lo no aplicativo web (figura 5.5). Figura Sucesso na criação do formulário De posse do identificador do formulário recém criado, em um dispositivo Android também foi possível baixar e verificar o formulário, deixando-o disponível para realização de coletas, mesmo se removido o acesso à internet. Assim como foi testada criação de um formulário com o aplicativo web, testou-se a criação com aplicativo Android. Antes mesmo de iniciar-se a criação, é verificado se o usuário está devidamente identificado, ação obrigatória para essa função (figura 5.6). 42

55 Figura Validação de usuário identificado Com essa informação configurada, o acesso a área de criação de formulários é permitido e pode-se inserir as informações desejadas. Semelhante ao visualizado no aplicativo web todas as informações do formulário são validadas (figura 5.7) antes do envio para o servidor, onde se concretizará a criação. Criado com sucesso, o formulário recém criado está disponível para realização de coletas, tanto no dispositivo quanto através do aplicativo web. Figura Validação de informações do formulário no aplicativo Android 43

56 Visando maior diversidade de entrada de dados para os formulários também foi verificada e garantida a possibilidade de utilização de diversos caracteres especiais (#, $, &, etc) e acentuação (~, ^, etc). Utilizando caracteres contidos e fisicamente visualizados em um teclado seguindo o padrão da Associação Brasileira de Normas Técnicas (ABNT), todos puderam ser utilizados em um formulário e corretamente visualizados tanto no aplicativo web quanto no aplicativo Android. Como o aplicativo web foi desenvolvido visando sua utilização em computadores de mesa e dispositivos com teclado e mouse, não há total suporte do seu uso em dispositivos touchscreen. Apesar de ainda ser possível utilizar todas as funcionalidades, durante a criação de um formulário não se consegue reordenar os itens, que é realizada por drag-and-drop. Isso limita principalmente o uso do sistema em dispositivos móveis com ios, como iphone e ipad, que sem um aplicativo nativo como o desenvolvido para a plataforma Android, tem como única opção o uso do aplicativo web através dos browsers disponibilizados Coleta de dados Para testar a coleta de dados, um formulário de teste foi escolhido e em cada aplicativo foi realizada um coleta. Assim como para a criação, durante uma coleta era esperado que as informações fossem validadas antes do envio para o servidor. No aplicativo web, após requisitado o formulário desejado é necessário ativar o modo coleta para então poder preencher os itens. Com todas as respostas e inserido o nome do coletor, foi possível enviar as informações. O envio não foi realizado enquanto o preenchimento não se tornou válido (figura 5.8). Figura Validação de coleta no aplicativo web 44

57 No aplicativo Android existe uma etapa intermediaria à coleta de dados e o envio para o servidor, o armazenamento local. Até que todos os itens estivessem sido respondidos, não foi possível finalizar uma coleta (figura 5.9). Figura Validação de coleta no aplicativo Android Quando tudo foi respondido a coleta pode ser finalizada e então armazenada localmente no dispositivo. Como esperado, o envio somente pode ser realizado com o usuário do aplicativo devidamente identificado. Ao final do envio a quantidade de coletas pendentes foi atualizada e o teste considerado finalizado com sucesso (figura 5.10). 45

58 Figura Envio de coletas realizado no aplicativo Android Relatório e Exportação O teste das funcionalidades de relatório e exportação são realizados somente pelo aplicativo web, onde são disponibilizados para o usuário. Algumas coletas foram realizadas, em ambos aplicativos, com cuidado de ter o controle de quantas e quais respostas foram dadas. Isso permitiu certificar que o resultado obtido estava correto. Analisando o relatório gerado acerca dos dados coletados foi possível verificar que as coletas realizadas por cada coletor foram corretamente identificas (figura 5.11). Para fins de teste foi diferenciado cada aplicativo como um coletor. As quantidades e percentuais de respostas de cada item também ficaram de acordo com as respostas dadas (figura 5.12). 46

59 Figura Relatório de número de coletas por coletor Figura Relatório percentual de respostas 47

60 Para a exportação, além da verificação dos dados exportados certificou-se que o formato do arquivo gerado tem suporte em diferentes programas de gerenciamento de planilhas. Foi testada a importação do arquivo com os dados exportados no Microsoft Excel, no LibreOffice Calc e no Google Spreadsheet. Em todos, foi possível verificar corretamente os dados coletados para o formulário de testes, que estavam armazenados no sistema. A figura 5.13 apresenta a visualização dos dados no Calc. Figura Visualização dos dados exportados 48

Aula 1 - Introdução e configuração de ambiente de desenvolvimento

Aula 1 - Introdução e configuração de ambiente de desenvolvimento Aula 1 - Introdução e configuração de ambiente de desenvolvimento Olá, seja bem-vindo à primeira aula do curso para desenvolvedor de Android, neste curso você irá aprender a criar aplicativos para dispositivos

Leia mais

Linguagem de Programação JAVA. Professora Michelle Nery Nomeclaturas

Linguagem de Programação JAVA. Professora Michelle Nery Nomeclaturas Linguagem de Programação JAVA Professora Michelle Nery Nomeclaturas Conteúdo Programático Nomeclaturas JDK JRE JEE JSE JME JVM Toolkits Swing AWT/SWT JDBC EJB JNI JSP Conteúdo Programático Nomenclatures

Leia mais

SISTEMA DE GESTÃO DE PRODUÇÃO DE EVENTOS

SISTEMA DE GESTÃO DE PRODUÇÃO DE EVENTOS SISTEMA DE GESTÃO DE PRODUÇÃO DE EVENTOS Rodrigo das Neves Wagner Luiz Gustavo Galves Mählmann Resumo: O presente artigo trata de um projeto de desenvolvimento de uma aplicação para uma produtora de eventos,

Leia mais

Frameworks para criação de Web Apps para o Ensino Mobile

Frameworks para criação de Web Apps para o Ensino Mobile 393 Frameworks para criação de Web Apps para o Ensino Mobile Lucas Zamim 1 Roberto Franciscatto 1 Evandro Preuss 1 1 Colégio Agrícola de Frederico Westphalen (CAFW) Universidade Federal de Santa Maria

Leia mais

MAPEAMENTO E LOCALIZAÇÃO DE REGIÕES DE INTERESSE UTILIZANDO REALIDADE AUMENTADA EM DISPOSITIVOS MÓVEIS COM PLATAFORMA ANDROID

MAPEAMENTO E LOCALIZAÇÃO DE REGIÕES DE INTERESSE UTILIZANDO REALIDADE AUMENTADA EM DISPOSITIVOS MÓVEIS COM PLATAFORMA ANDROID MAPEAMENTO E LOCALIZAÇÃO DE REGIÕES DE INTERESSE UTILIZANDO REALIDADE AUMENTADA EM DISPOSITIVOS MÓVEIS COM PLATAFORMA ANDROID Alessandro Teixeira de Andrade¹; Geazy Menezes² UFGD/FACET Caixa Postal 533,

Leia mais

REST Um Estilo de Arquitetura de Sistemas Distribuídos

REST Um Estilo de Arquitetura de Sistemas Distribuídos REST Um Estilo de Arquitetura de Sistemas Distribuídos Márcio Alves de Araújo¹, Mauro Antônio Correia Júnior¹ 1 Faculdade de Computação Universidade Federal de Uberlândia (UFU) Monte Carmelo MG Brasil

Leia mais

A plataforma Android: Uma Introdução

A plataforma Android: Uma Introdução A plataforma Android: Uma Introdução Android Iniciativa da Google de prover uma plataforma aberta para Web móvel Open Handset Alliance Associação de um grupo bastante heterogêneo de empresas (operadoras,

Leia mais

Consumindo um Web Service através de uma Aplicação Comercial em Android. Alex Malmann Becker www.alex.porthal.com.br alex@porthal.com.

Consumindo um Web Service através de uma Aplicação Comercial em Android. Alex Malmann Becker www.alex.porthal.com.br alex@porthal.com. Consumindo um Web Service através de uma Aplicação Comercial em Android Alex Malmann Becker www.alex.porthal.com.br alex@porthal.com.br 08/2014 Agenda Introdução Conceitos Web Service Por que utilizar

Leia mais

Programação para Android

Programação para Android Programação para Android Aula 01: Visão geral do android, instalação e configuração do ambiente de desenvolvimento, estrutura básica de uma aplicação para Android Objetivos Configurar o ambiente de trabalho

Leia mais

Android. Marcelo Quinta @mrquinta

Android. Marcelo Quinta @mrquinta Android Marcelo Quinta @mrquinta Oi, eu sou o Marcelo Quinta Pública Público-privada Privada Próprio negócio Voluntariado Parabéns à organização do GO-GTUG Tablets 160% de aumento em 2011 Smartphones

Leia mais

World Wide Web e Aplicações

World Wide Web e Aplicações World Wide Web e Aplicações Módulo H O que é a WWW Permite a criação, manipulação e recuperação de informações Padrão de fato para navegação, publicação de informações e execução de transações na Internet

Leia mais

WebUML: Uma Ferramenta Colaborativa de Apoio ao Projeto e Análise de Sistemas Descritos em Classes UML

WebUML: Uma Ferramenta Colaborativa de Apoio ao Projeto e Análise de Sistemas Descritos em Classes UML Carlos Henrique Pereira WebUML: Uma Ferramenta Colaborativa de Apoio ao Projeto e Análise de Sistemas Descritos em Classes UML Florianópolis - SC 2007 / 2 Resumo O objetivo deste trabalho é especificar

Leia mais

História e Evolução da Web. Aécio Costa

História e Evolução da Web. Aécio Costa Aécio Costa A História da Web O que estamos estudando? Período em anos que a tecnologia demorou para atingir 50 milhões de usuários 3 As dez tecnologias mais promissoras 4 A evolução da Web Web 1.0- Passado

Leia mais

Aula 2: RIA - Aplicações Ricas para Internet Fonte: Plano de Aula Oficial da Disciplina

Aula 2: RIA - Aplicações Ricas para Internet Fonte: Plano de Aula Oficial da Disciplina Programação para Internet Rica 1 Aula 2: RIA - Aplicações Ricas para Internet Fonte: Plano de Aula Oficial da Disciplina Objetivo: Identificar as principais características de uma Aplicação Internet Rica.

Leia mais

Introdução Dalvik Linux 2.6. Android. Diogo de Campos, João Paulo Pizani Flor, Maurício Oliveira Haensch, Pedro Covolan Bachiega

Introdução Dalvik Linux 2.6. Android. Diogo de Campos, João Paulo Pizani Flor, Maurício Oliveira Haensch, Pedro Covolan Bachiega Android Diogo de Campos, João Paulo Pizani Flor, Maurício Oliveira Haensch, Pedro Covolan Bachiega Universidade Federal de Santa Catarina November 18, 2008 Agenda 1 Introdução 2 Dalvik 3 Linux 2.6 Introdução

Leia mais

LEI DE ACESSO A INFORMAÇÃO DIREITO DO CIDADÃO

LEI DE ACESSO A INFORMAÇÃO DIREITO DO CIDADÃO DESCRIÇÃO DO SIGAI O SIGAI (Sistema Integrado de Gestão do Acesso à Informação) é uma solução de software que foi desenvolvida para automatizar os processos administrativos e operacionais visando a atender

Leia mais

O que é o Virto ERP? Onde sua empresa quer chegar? Apresentação. Modelo de funcionamento

O que é o Virto ERP? Onde sua empresa quer chegar? Apresentação. Modelo de funcionamento HOME O QUE É TOUR MÓDULOS POR QUE SOMOS DIFERENTES METODOLOGIA CLIENTES DÚVIDAS PREÇOS FALE CONOSCO Suporte Sou Cliente Onde sua empresa quer chegar? Sistemas de gestão precisam ajudar sua empresa a atingir

Leia mais

WWW - World Wide Web

WWW - World Wide Web WWW World Wide Web WWW Cap. 9.1 WWW - World Wide Web Idéia básica do WWW: Estratégia de acesso a uma teia (WEB) de documentos referenciados (linked) em computadores na Internet (ou Rede TCP/IP privada)

Leia mais

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

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

Leia mais

Banco de Dados de Músicas. Andre Lima Rocha Campos Osório Pereira Carvalho

Banco de Dados de Músicas. Andre Lima Rocha Campos Osório Pereira Carvalho Banco de Dados de Músicas Andre Lima Rocha Campos Osório Pereira Carvalho Definição Aplicação Web que oferece ao usuário um serviço de busca de músicas e informações relacionadas, como compositor, interprete,

Leia mais

EIMOBILE INSTITUIÇÕES DE ENSINO MOBILE

EIMOBILE INSTITUIÇÕES DE ENSINO MOBILE UNIVERSIDADE CATÓLICA DE PELOTAS CENTRO POLITÉCNICO TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS EIMOBILE INSTITUIÇÕES DE ENSINO MOBILE por Miguel Aguiar Barbosa Trabalho de curso II submetido como

Leia mais

Visão geral Estrutura do sistema Ferramentas de desenvolvimento Uma aplicação. Android. Universidade Federal de Santa Catarina. 17 de dezembro de 2008

Visão geral Estrutura do sistema Ferramentas de desenvolvimento Uma aplicação. Android. Universidade Federal de Santa Catarina. 17 de dezembro de 2008 Android José João Junior Universidade Federal de Santa Catarina 17 de dezembro de 2008 Agenda 1 Visão geral 2 Estrutura do sistema 3 Ferramentas de desenvolvimento 4 Uma aplicação Visão geral Histórico

Leia mais

SCE-557. Técnicas de Programação para WEB. Rodrigo Fernandes de Mello http://www.icmc.usp.br/~mello mello@icmc.usp.br

SCE-557. Técnicas de Programação para WEB. Rodrigo Fernandes de Mello http://www.icmc.usp.br/~mello mello@icmc.usp.br SCE-557 Técnicas de Programação para WEB Rodrigo Fernandes de Mello http://www.icmc.usp.br/~mello mello@icmc.usp.br 1 Cronograma Fundamentos sobre servidores e clientes Linguagens Server e Client side

Leia mais

DESENVOLVIMENTO COM JAVA EE E SUAS ESPECIFICAÇÕES

DESENVOLVIMENTO COM JAVA EE E SUAS ESPECIFICAÇÕES DESENVOLVIMENTO COM JAVA EE E SUAS ESPECIFICAÇÕES Hugo Henrique Rodrigues Correa¹, Jaime Willian Dias 1 Universidade Paranaense (Unipar) Paranavaí PR Brasil hugohrcorrea@gmail.com, jaime@unipar.br Resumo.

Leia mais

Análise de Sistemas I: Programação em Nuvem. Luiz Filipe Licidonio. Faculdade de Tecnologia Pastor Dohms. Porto Alegre, Rio Grande do Sul

Análise de Sistemas I: Programação em Nuvem. Luiz Filipe Licidonio. Faculdade de Tecnologia Pastor Dohms. Porto Alegre, Rio Grande do Sul 1 Análise de Sistemas I: Programação em Nuvem Luiz Filipe Licidonio Faculdade de Tecnologia Pastor Dohms Porto Alegre, Rio Grande do Sul luiz_np_poa@hotmail.com 2 Análise de Sistemas I: Programação em

Leia mais

Especificações Técnicas

Especificações Técnicas Visual COBOL é a solução líder da indústria para o desenvolvimento de aplicações COBOL e implantação em sistemas Windows, Unix e Linux. Ele combina as melhores ferramentas de desenvolvimento de sua classe

Leia mais

Dispositivos móveis e o mercado Android Open Handset Alliance Informações sobre Android Arquitetura

Dispositivos móveis e o mercado Android Open Handset Alliance Informações sobre Android Arquitetura Dispositivos móveis e o mercado Android Open Handset Alliance Informações sobre Android Arquitetura Dispositivos móveis e o mercado Mercado cresce a cada ano Muitos recursos Múltiplas plataforma Symbian

Leia mais

UNIVERSIDADE FEDERAL DE SANTA CATARINA. Informatização de farmácias publicas utilizando software livre.

UNIVERSIDADE FEDERAL DE SANTA CATARINA. Informatização de farmácias publicas utilizando software livre. UNIVERSIDADE FEDERAL DE SANTA CATARINA Informatização de farmácias publicas utilizando software livre. MURILO NUNES ELIAS FLORIANÓPOLIS SC 2007/2 UNIVERSIDADE FEDERAL DE SANTA CATARINA DEPARTAMENTO DE

Leia mais

MINISTÉRIO DA EDUCAÇÃO INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO PIAUÍ - IFPI CAMPUS FLORIANO

MINISTÉRIO DA EDUCAÇÃO INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO PIAUÍ - IFPI CAMPUS FLORIANO MINISTÉRIO DA EDUCAÇÃO INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO PIAUÍ - IFPI CAMPUS FLORIANO EDITAL Nº 003/2016, DE 14 DE JANEIRO DE 2016 Seleção para Alunos de Pós-Graduação Lato Sensu para

Leia mais

DESENVOLVIMENTO DE SOFTWARE DE VOTAÇÃO WEB UTILIZANDO TECNOLOGIA TOUCHSCREEN

DESENVOLVIMENTO DE SOFTWARE DE VOTAÇÃO WEB UTILIZANDO TECNOLOGIA TOUCHSCREEN DESENVOLVIMENTO DE SOFTWARE DE VOTAÇÃO WEB UTILIZANDO TECNOLOGIA TOUCHSCREEN José Agostinho Petry Filho 1 ; Rodrigo de Moraes 2 ; Silvio Regis da Silva Junior 3 ; Yuri Jean Fabris 4 ; Fernando Augusto

Leia mais

Departamento de Engenharia e Ciências do Mar Licenciatura em Engenharia Informática e de Computadores Projeto Fim de Curso TÍTULO

Departamento de Engenharia e Ciências do Mar Licenciatura em Engenharia Informática e de Computadores Projeto Fim de Curso TÍTULO Departamento de Engenharia e Ciências do Mar Licenciatura em Engenharia Informática e de Computadores Projeto Fim de Curso TÍTULO CLASS-REMINDER PARA ESTUDANTES DO DECM AUTOR: Arilson Jorge Santos Rocha

Leia mais

Manual do Usuário Características e recursos básicos Enterprise Resource Planning

Manual do Usuário Características e recursos básicos Enterprise Resource Planning Manual do Usuário Características e recursos básicos Enterprise Resource Planning www.pwi.com.br 1 Volpe Enterprise Resource Planning Este manual não pode, em parte ou no seu todo, ser copiado, fotocopiado,

Leia mais

ARQUITETURA DE SISTEMAS. Cleviton Monteiro (cleviton@gmail.com)

ARQUITETURA DE SISTEMAS. Cleviton Monteiro (cleviton@gmail.com) ARQUITETURA DE SISTEMAS Cleviton Monteiro (cleviton@gmail.com) Roteiro Definição Documento de arquitetura Modelos de representação da arquitetura Estilos arquiteturais Arquitetura de sistemas web Arquitetura

Leia mais

Este livro é dedicado a minha esposa Edna e a todos os desenvolvedores que fizeram do software livre um meio profissional levado a sério.

Este livro é dedicado a minha esposa Edna e a todos os desenvolvedores que fizeram do software livre um meio profissional levado a sério. EDSON GONÇALVES Este livro é dedicado a minha esposa Edna e a todos os desenvolvedores que fizeram do software livre um meio profissional levado a sério. AGRADECIMENTOS Primeiramente gostaria de agradecer

Leia mais

Uso de servlets nas aplicações web desenvolvidas para a plataforma java 1

Uso de servlets nas aplicações web desenvolvidas para a plataforma java 1 Uso de servlets nas aplicações web desenvolvidas para a plataforma java 1 Resumo Em uma interação feita em uma aplicação Web existem tarefas que devem ser executadas no servidor, tais como processamento

Leia mais

Anexo I - DAS (Documento de Arquitetura de Software) Concurso de Desenvolvimento de Jogos SEBRAE

Anexo I - DAS (Documento de Arquitetura de Software) Concurso de Desenvolvimento de Jogos SEBRAE Anexo I - DAS (Documento de Arquitetura de Software) Concurso de Desenvolvimento de Jogos SEBRAE 1 Sumário Sumário... 2 1 INTRODUÇÃO... 3 1.1 Propósito... 3 1.2 Escopo... 3 1.3 Referências... 3 2 DIRETRIZES...

Leia mais

SISTEMA GERENCIAL TRATORPLAN

SISTEMA GERENCIAL TRATORPLAN SISTEMA GERENCIAL TRATORPLAN SIGET Fabrício Pereira Santana¹, Jaime William Dias¹, ², Ricardo de Melo Germano¹ ¹Universidade Paranaense (Unipar) Paranavaí PR Brasil fabricioblack@gmail.com germano@unipar.br

Leia mais

Desenvolvimento Web. Saymon Yury C. Silva Analista de Sistemas. http://www.saymonyury.com.br

Desenvolvimento Web. Saymon Yury C. Silva Analista de Sistemas. http://www.saymonyury.com.br Desenvolvimento Web Saymon Yury C. Silva Analista de Sistemas http://www.saymonyury.com.br Vantagens Informação em qualquer hora e lugar; Rápidos resultados; Portabilidade absoluta; Manutenção facilitada

Leia mais

5 Detalhes da Implementação

5 Detalhes da Implementação Detalhes da Implementação 101 5 Detalhes da Implementação Neste capítulo descreveremos detalhes da implementação do Explorator que foi desenvolvido usando o paradigma MVC 45 e o paradigma de CoC 46 (Convention

Leia mais

ANEXO 11. Framework é um conjunto de classes que colaboram para realizar uma responsabilidade para um domínio de um subsistema da aplicação.

ANEXO 11. Framework é um conjunto de classes que colaboram para realizar uma responsabilidade para um domínio de um subsistema da aplicação. ANEXO 11 O MATRIZ Para o desenvolvimento de sites, objeto deste edital, a empresa contratada obrigatoriamente utilizará o framework MATRIZ desenvolvido pela PROCERGS e disponibilizado no início do trabalho.

Leia mais

UNIVERSIDADE ESTADUAL DE PONTA GROSSA

UNIVERSIDADE ESTADUAL DE PONTA GROSSA UNIVERSIDADE ESTADUAL DE PONTA GROSSA SECRETARIA MUNICIPAL DE GESTÃO DE RECURSOS HUMANOS CONCURSO PÚBLICO PARA ANALISTA DE SUPORTE 08 DE NOVEMBRO DE 2009... (NOME COMPLETO EM LETRA DE FORMA) INSTRUÇÕES

Leia mais

Relatório do GPES. Descrição dos Programas e Plugins Utilizados. Programas Utilizados:

Relatório do GPES. Descrição dos Programas e Plugins Utilizados. Programas Utilizados: Relatório do GPES Relatório referente à instalação dos programas e plugins que estarão sendo utilizados durante o desenvolvimento dos exemplos e exercícios, sendo esses demonstrados nos próximos relatórios.

Leia mais

M a n u a l d o R e c u r s o Q m o n i t o r

M a n u a l d o R e c u r s o Q m o n i t o r M a n u a l d o R e c u r s o Q m o n i t o r i t i l advanced Todos os direitos reservados à Constat. Uso autorizado mediante licenciamento Qualitor Porto Alegre RS Av. Ceará, 1652 São João 90240-512

Leia mais

INTRODUÇÃO AO DESENVOLVIMENTO DE JOGOS COM LIBGDX. Vinícius Barreto de Sousa Neto

INTRODUÇÃO AO DESENVOLVIMENTO DE JOGOS COM LIBGDX. Vinícius Barreto de Sousa Neto INTRODUÇÃO AO DESENVOLVIMENTO DE JOGOS COM LIBGDX Vinícius Barreto de Sousa Neto Libgdx é um framework multi plataforma de visualização e desenvolvimento de jogos. Atualmente ele suporta Windows, Linux,

Leia mais

Desenvolvimento de aplicações na plataforma Google Android

Desenvolvimento de aplicações na plataforma Google Android Desenvolvimento de aplicações na plataforma Google Android Rafael M. Lins Manoel Taenan Prof. Dr. Fábio Gomes Design by Rafael M. Lins Autores Rafael Madureira Lins de Araújo Bla bla bla Manoel Taenan

Leia mais

Programação para a Internet. Prof. M.Sc. Sílvio Bacalá Jr sbacala@gmail.com www.facom.ufu.br/~bacala

Programação para a Internet. Prof. M.Sc. Sílvio Bacalá Jr sbacala@gmail.com www.facom.ufu.br/~bacala Programação para a Internet Prof. M.Sc. Sílvio Bacalá Jr sbacala@gmail.com www.facom.ufu.br/~bacala A plataforma WEB Baseada em HTTP (RFC 2068) Protocolo simples de transferência de arquivos Sem estado

Leia mais

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

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

Leia mais

Processos (Threads,Virtualização e Migração de Código)

Processos (Threads,Virtualização e Migração de Código) Processos (Threads,Virtualização e Migração de Código) Roteiro Processos Threads Virtualização Migração de Código O que é um processo?! Processos são programas em execução. Processo Processo Processo tem

Leia mais

Noções de. Microsoft SQL Server. Microsoft SQL Server

Noções de. Microsoft SQL Server. Microsoft SQL Server Noções de 1 Considerações Iniciais Basicamente existem dois tipos de usuários do SQL Server: Implementadores Administradores 2 1 Implementadores Utilizam o SQL Server para criar e alterar base de dados

Leia mais

Manual de Utilização

Manual de Utilização Se ainda tiver dúvidas entre em contato com a equipe de atendimento: Por telefone: 0800 642 3090 Por e-mail atendimento@oisolucoespraempresas.com.br Introdução... 3 1. O que é o programa Oi Backup Empresarial?...

Leia mais

Potenciais de Aplicação da Metodologia AJAX

Potenciais de Aplicação da Metodologia AJAX SEGeT Simpósio de Excelência em Gestão e Tecnologia 1 Potenciais de Aplicação da Metodologia AJAX Bruno Simões Kleverson Pereira Marcos Santos Eduardo Barrere Associação Educacional Dom Bosco - AEDB RESUMO

Leia mais

Universidade Federal de Mato Grosso

Universidade Federal de Mato Grosso Universidade Federal de Mato Grosso Programação III Curso de Ciência da Computação Prof. Thiago P. da Silva thiagosilva@ufmt.br Material basedado em [Kurose&Ross 2009] e [Gonçalves, 2007] Agenda Internet

Leia mais

ANEXO 05 ARQUITETURAS TECNOLÓGICAS PROCERGS

ANEXO 05 ARQUITETURAS TECNOLÓGICAS PROCERGS ANEXO 05 ARQUITETURAS TECNOLÓGICAS PROCERGS Este anexo apresenta uma visão geral das seguintes plataformas: 1. Plataforma Microsoft.NET - VB.NET e C#; 2. Plataforma JAVA; 3. Plataforma Android, ios e Windows

Leia mais

Manual de referência do HP Web Jetadmin Database Connector Plug-in

Manual de referência do HP Web Jetadmin Database Connector Plug-in Manual de referência do HP Web Jetadmin Database Connector Plug-in Aviso sobre direitos autorais 2004 Copyright Hewlett-Packard Development Company, L.P. A reprodução, adaptação ou tradução sem permissão

Leia mais

Ambiente Web PHP Problemas Frameworks CakePHP Symfony Zend Framework Prado CodeIgniter Demonstração O livro

Ambiente Web PHP Problemas Frameworks CakePHP Symfony Zend Framework Prado CodeIgniter Demonstração O livro Desenvolvimento em PHP usando Frameworks Elton Luís Minetto Agenda Ambiente Web PHP Problemas Frameworks CakePHP Symfony Zend Framework Prado CodeIgniter Demonstração O livro Ambiente Web É o ambiente

Leia mais

ORDEM DE SERVIÇO OS 003/DINFO/2013 16/09/2013

ORDEM DE SERVIÇO OS 003/DINFO/2013 16/09/2013 A DIRETORIA DE INFORMÁTICA DINFO DA UNIVERSIDADE DO ESTADO DO RIO DE JANEIRO -UERJ, no uso de suas atribuições legais, estabelece: Art. 1º: Para fins de normatização do Desenvolvimento Tecnológico na UERJ

Leia mais

Programação para Dispositivos Móveis

Programação para Dispositivos Móveis Programação para Dispositivos Móveis Fatec Ipiranga Análise e Desenvolvimento de Sistemas Aula 02 História do desenvolvimento de software para dispositivos móveis Dalton Martins dmartins@gmail.com São

Leia mais

Ambiente Web PHP Problemas Frameworks CakePHP Symfony Zend Framework Prado CodeIgniter Demonstração

Ambiente Web PHP Problemas Frameworks CakePHP Symfony Zend Framework Prado CodeIgniter Demonstração Desenvolvimento em PHP usando Frameworks Elton Luís Minetto Agenda Ambiente Web PHP Problemas Frameworks CakePHP Symfony Zend Framework Prado CodeIgniter Demonstração Ambiente Web É o ambiente formado

Leia mais

Integrando Eclipse e Websphere Application Server Community Edition

Integrando Eclipse e Websphere Application Server Community Edition 1 Integrando Eclipse e Websphere Application Server Community Edition Sobre o Autor Carlos Eduardo G. Tosin (carlos@tosin.com.br) é formado em Ciência da Computação pela PUC-PR, pós-graduado em Desenvolvimento

Leia mais

Pré-Projeto do Trabalho de Conclusão de Curso Tiago Garcia Pereira 1. INTRODUÇÃO

Pré-Projeto do Trabalho de Conclusão de Curso Tiago Garcia Pereira 1. INTRODUÇÃO UM PADRÃO ABERTO DE SOFTWARE PARA COMPUTAÇÃO MÓVEL: UM ESTUDO SOBRE GOOGLE ANDROID 1. INTRODUÇÃO O aumento do número usuários de dispositivos móveis atrai cada vez os desenvolvedores a produzir aplicações

Leia mais

PROGRAMAÇÃO PARA INTERNET RICA RICH INTERNET APPLICATIONS

PROGRAMAÇÃO PARA INTERNET RICA RICH INTERNET APPLICATIONS PROGRAMAÇÃO PARA INTERNET RICA RICH INTERNET APPLICATIONS Prof. Dr. Daniel Caetano 2012-1 Objetivos Apresentar o que é uma Aplicação Rica para Internet Contextualizar tais aplicações na Web e os desafios

Leia mais

DESENVOLVIMENTO EM DISPOSITIVOS MÓVEIS UTILIZANDO BANCO DE DADOS

DESENVOLVIMENTO EM DISPOSITIVOS MÓVEIS UTILIZANDO BANCO DE DADOS DESENVOLVIMENTO EM DISPOSITIVOS MÓVEIS UTILIZANDO BANCO DE DADOS Leandro Guilherme Gouvea 1, João Paulo Rodrigues 1, Wyllian Fressatti 1 1 Universidade Paranaense (Unipar) Paranavaí PR Brasil leandrog.gouvea@gmail.com,

Leia mais

Professor: Paulo Macos Trentin paulo@paulotrentin.com.br http://www.paulotrentin.com.br Escola CDI de Videira

Professor: Paulo Macos Trentin paulo@paulotrentin.com.br http://www.paulotrentin.com.br Escola CDI de Videira Professor: Paulo Macos Trentin paulo@paulotrentin.com.br http://www.paulotrentin.com.br Escola CDI de Videira Objetivo e desafio do curso Como objetivo o curso irá tornar o aluno capaz de desenvolver um

Leia mais

Instalando o IIS 7 no Windows Server 2008

Instalando o IIS 7 no Windows Server 2008 Goiânia, 16/09/2013 Aluno: Rafael Vitor Prof. Kelly Instalando o IIS 7 no Windows Server 2008 Objetivo Esse tutorial tem como objetivo demonstrar como instalar e configurar o IIS 7.0 no Windows Server

Leia mais

Instalando o IIS 7 no Windows Server 2008

Instalando o IIS 7 no Windows Server 2008 Goiânia, 16/09/2013 Aluno: Rafael Vitor Prof. Kelly Instalando o IIS 7 no Windows Server 2008 Objetivo Esse tutorial tem como objetivo demonstrar como instalar e configurar o IIS 7.0 no Windows Server

Leia mais

O que é o Android? O que é o Android

O que é o Android? O que é o Android O que é o Android? O Android é um sistema operacional para dispositivos móveis, baseado em uma plataforma de código aberta sob a licença apache, permitindo que os fabricantes possam modificar seu código

Leia mais

Ferramenta: Spider-CL. Manual do Usuário. Versão da Ferramenta: 1.1. www.ufpa.br/spider

Ferramenta: Spider-CL. Manual do Usuário. Versão da Ferramenta: 1.1. www.ufpa.br/spider Ferramenta: Spider-CL Manual do Usuário Versão da Ferramenta: 1.1 www.ufpa.br/spider Histórico de Revisões Data Versão Descrição Autor 14/07/2009 1.0 15/07/2009 1.1 16/07/2009 1.2 20/05/2010 1.3 Preenchimento

Leia mais

A WEB COMO PLATAFORMA Revolução do HTML5

A WEB COMO PLATAFORMA Revolução do HTML5 A WEB COMO PLATAFORMA Revolução do HTML5 Juliano Flores Prof. Lucas Plautz Prestes Centro Universitário Leonardo da Vinci - UNIASSELVI Gestão de TI (GTI034) 06/11/2012 RESUMO Escrever programas de computador,

Leia mais

MANUAL DO ADMINISTRADOR DO MÓDULO

MANUAL DO ADMINISTRADOR DO MÓDULO MANUAL DO ADMINISTRADOR DO MÓDULO ÍNDICE Relatórios Dinâmicos... 3 Requisitos de Sistema... 4 Estrutura de Dados... 5 Operadores... 6 Tabelas... 7 Tabelas x Campos... 9 Temas... 13 Hierarquia Relacionamento...

Leia mais

What`s going on. Rede social para eventos geo-referenciados. Fernando Bunn Paul Eipper Jonatan

What`s going on. Rede social para eventos geo-referenciados. Fernando Bunn Paul Eipper Jonatan What`s going on Rede social para eventos geo-referenciados Fernando Bunn Paul Eipper Jonatan Introdução Rede social virtual, que provê informações geo-referenciadas sobre eventos em geral (ex.: festas,

Leia mais

www.f2b.com.br 18/04/2006 Micropagamento F2b Web Services Web rev 00

www.f2b.com.br 18/04/2006 Micropagamento F2b Web Services Web rev 00 www.f2b.com.br 18/04/2006 Micropagamento F2b Web Services Web rev 00 Controle de Revisões Micropagamento F2b Web Services/Web 18/04/2006 Revisão Data Descrição 00 17/04/2006 Emissão inicial. www.f2b.com.br

Leia mais

Ricardo R. Lecheta. Novatec

Ricardo R. Lecheta. Novatec Ricardo R. Lecheta Novatec Copyright 2015 da Novatec Editora Ltda. Todos os direitos reservados e protegidos pela Lei 9.610 de 19/02/1998. É proibida a reprodução desta obra, mesmo parcial, por qualquer

Leia mais

INDICE 3.APLICAÇÕES QUE PODEM SER DESENVOLVIDAS COM O USO DO SAXES

INDICE 3.APLICAÇÕES QUE PODEM SER DESENVOLVIDAS COM O USO DO SAXES w w w. i d e a l o g i c. c o m. b r INDICE 1.APRESENTAÇÃO 2.ESPECIFICAÇÃO DOS RECURSOS DO SOFTWARE SAXES 2.1. Funcionalidades comuns a outras ferramentas similares 2.2. Funcionalidades próprias do software

Leia mais

TEMA TECNOLOGIA DA INFORMAÇÃO -Tipos de SI e Recursos de Software parte2. AULA DE SISTEMAS DE INFORMAÇÃO PROFa. ROSA MOTTA

TEMA TECNOLOGIA DA INFORMAÇÃO -Tipos de SI e Recursos de Software parte2. AULA DE SISTEMAS DE INFORMAÇÃO PROFa. ROSA MOTTA TEMA TECNOLOGIA DA INFORMAÇÃO -Tipos de SI e Recursos de Software parte2 AULA DE SISTEMAS DE INFORMAÇÃO PROFa. ROSA MOTTA CONTEÚDO DA AULA Tipos de Software Serviços Web Tendências 2 OBJETIVOS ESPECÍFICOS

Leia mais

UFG - Instituto de Informática

UFG - Instituto de Informática UFG - Instituto de Informática Especialização em Desenvolvimento de Aplicações Web com Interfaces Ricas EJB 3.0 Prof.: Fabrízzio A A M N Soares professor.fabrizzio@gmail.com Aula 13 Web Services Web Services

Leia mais

Desenvolvendo para WEB

Desenvolvendo para WEB Nível - Básico Desenvolvendo para WEB Por: Evandro Silva Neste nosso primeiro artigo vamos revisar alguns conceitos que envolvem a programação de aplicativos WEB. A ideia aqui é explicarmos a arquitetura

Leia mais

Aplicativo web para definição do modelo lógico no projeto de banco de dados relacional

Aplicativo web para definição do modelo lógico no projeto de banco de dados relacional Aplicativo web para definição do modelo lógico no projeto de banco de dados relacional Juarez Bachmann Orientador: Alexander Roberto Valdameri Roteiro Introdução Objetivos Fundamentação teórica Desenvolvimento

Leia mais

Kassius Vargas Prestes

Kassius Vargas Prestes Kassius Vargas Prestes Agenda 1. Introdução Web Services 2. XML, SOAP 3. Apache Tomcat 4. Axis 5. Instalação Tomcat e Axis 6. Criação de um Web Service 7. Criação de um cliente Baixar http://www.inf.ufrgs.br/~kvprestes/webservices/

Leia mais

AUTOR(ES): CARLOS ANTONIO PINHEIRO PINTO, ERMÍNIO PEDRAL SANTANA, GUILHERME CASSIANO DA SILVA

AUTOR(ES): CARLOS ANTONIO PINHEIRO PINTO, ERMÍNIO PEDRAL SANTANA, GUILHERME CASSIANO DA SILVA Anais do Conic-Semesp. Volume 1, 2013 - Faculdade Anhanguera de Campinas - Unidade 3. ISSN 2357-8904 TÍTULO: SISTEMA MÓVEL DE COMPRAS POR QR CODE CATEGORIA: CONCLUÍDO ÁREA: ENGENHARIAS E TECNOLOGIAS SUBÁREA:

Leia mais

FERRAMENTA WEB PARA MODELAGEM LÓGICA EM PROJETOS DE BANCOS DE DADOS RELACIONAIS

FERRAMENTA WEB PARA MODELAGEM LÓGICA EM PROJETOS DE BANCOS DE DADOS RELACIONAIS FERRAMENTA WEB PARA MODELAGEM LÓGICA EM PROJETOS DE BANCOS DE DADOS RELACIONAIS PAULO ALBERTO BUGMANN ORIENTADOR: ALEXANDER ROBERTO VALDAMERI Roteiro Introdução Objetivos Fundamentação teórica Desenvolvimento

Leia mais

Manual do Usuário. Sistema Financeiro e Caixa

Manual do Usuário. Sistema Financeiro e Caixa Manual do Usuário Sistema Financeiro e Caixa - Lançamento de receitas, despesas, gastos, depósitos. - Contas a pagar e receber. - Emissão de cheque e Autorização de pagamentos/recibos. - Controla um ou

Leia mais

Integração de sistemas utilizando Web Services do tipo REST

Integração de sistemas utilizando Web Services do tipo REST Integração de sistemas utilizando Web Services do tipo REST Jhonatan Wilson Aparecido Garbo, Jaime Willian Dias Universidade Paranaense (Unipar) Paranavaí PR Brasil jhowgarbo@gmail.com jaime@unipar.br

Leia mais

UFG - Instituto de Informática

UFG - Instituto de Informática UFG - Instituto de Informática Especialização em Desenvolvimento de Aplicações Web com Interfaces Ricas EJB 3.0 Prof.: Fabrízzio A A M N Soares professor.fabrizzio@gmail.com Aula 5 Servidores de Aplicação

Leia mais

Service Oriented Architecture SOA

Service Oriented Architecture SOA Service Oriented Architecture SOA Arquitetura orientada aos serviços Definição: Arquitetura de sistemas distribuídos em que a funcionalidade é disponibilizada sob a forma de serviços (bem definidos e independentes)

Leia mais

Sistema para gestão de restaurante

Sistema para gestão de restaurante Sistema para gestão de restaurante Luciana Tavares Rosa luciana.rosa@inf.aedb.br AEDB Fábio Rezende Dutra fabio.dutra@inf.aedb.br AEDB Resumo:O sistema para gestão de restaurante é um software desenvolvido

Leia mais

Visão geral do XProtect

Visão geral do XProtect Milestone Systems Visão geral do Software de gerenciamento de vídeo Uma solução de vigilância que se ajusta a todas suas necessidades O da Milestone é um poderoso software de gerenciamento de vídeo (VMS)

Leia mais

Centro de Computação - Unicamp Gerência de Atendimento ao Cliente (e-mail:apoio@turing.unicamp.br) Sumário

Centro de Computação - Unicamp Gerência de Atendimento ao Cliente (e-mail:apoio@turing.unicamp.br) Sumário Sumário Conceitos Microsoft Access 97... 01 Inicialização do Access... 02 Convertendo um Banco de Dados... 03 Criando uma Tabela... 06 Estrutura da Tabela... 07 Propriedades do Campo... 08 Chave Primária...

Leia mais

Estudo comparativo entre tecnologias Java: Applet e JWS.

Estudo comparativo entre tecnologias Java: Applet e JWS. Estudo comparativo entre tecnologias Java: Applet e JWS. Clara Aben-Athar B. Fernandes¹, Carlos Alberto P. Araújo¹ 1 Centro Universitário Luterano de Santarém Comunidade Evangélica Luterana (CEULS/ULBRA)

Leia mais

Instalação do IBM SPSS Modeler Server Adapter

Instalação do IBM SPSS Modeler Server Adapter Instalação do IBM SPSS Modeler Server Adapter Índice Instalação do IBM SPSS Modeler Server Adapter............... 1 Sobre a Instalação do IBM SPSS Modeler Server Adapter................ 1 Requisitos de

Leia mais

Programação WEB Introdução

Programação WEB Introdução Programação WEB Introdução Rafael Vieira Coelho IFRS Instituto Federal de Educação, Ciência e Tecnologia do Rio Grande do Sul Campus Farroupilha rafael.coelho@farroupilha.ifrs.edu.br Roteiro 1) Conceitos

Leia mais

ABORDAGEM DE FRAMEWORKS PARA JSF QUE AUXILIAM O DESENVOLVIMENTO DE SOFTWARE

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

Leia mais

Uma Abordagem sobre Mapeamento Objeto Relacional com Hibernate

Uma Abordagem sobre Mapeamento Objeto Relacional com Hibernate Uma Abordagem sobre Mapeamento Objeto Relacional com Hibernate Luis Gustavo Zandarim Soares 1, Késsia Rita da Costa Marchi 1 1 Universidade Paranaense (Unipar) Paraná PR Brasil luisgustavo@live.co.uk,

Leia mais

Conceitos Básicos e Práticos do Android

Conceitos Básicos e Práticos do Android Pílula de Conhecimento Android Página: 1 Pílula 1 Conceitos Básicos e Práticos do Android I OBJETIVOS! Conhecer o Sistema Operacional Móvel Android.! Entender a composição do Android diferenciando suas

Leia mais

COMPUTAÇÃO MÓVEL. Prof. M.Sc Sílvio Bacalá Jr www.facom.ufu.br/~bacala/android

COMPUTAÇÃO MÓVEL. Prof. M.Sc Sílvio Bacalá Jr www.facom.ufu.br/~bacala/android COMPUTAÇÃO MÓVEL Prof. M.Sc Sílvio Bacalá Jr www.facom.ufu.br/~bacala/android O que é computação Móvel Acesso à informação a qualquer lugar, a qualquer momento. O que é computação Móvel Tecnicamente: Processamento

Leia mais

SCC-0263. Técnicas de Programação para WEB. Rodrigo Fernandes de Mello http://www.icmc.usp.br/~mello mello@icmc.usp.br

SCC-0263. Técnicas de Programação para WEB. Rodrigo Fernandes de Mello http://www.icmc.usp.br/~mello mello@icmc.usp.br SCC-0263 Técnicas de Programação para WEB Rodrigo Fernandes de Mello http://www.icmc.usp.br/~mello mello@icmc.usp.br 1 Cronograma Fundamentos sobre servidores e clientes Linguagens Server e Client side

Leia mais

API's e Aplicações para Android

API's e Aplicações para Android API's e Aplicações para Android Computação Móvel Prof. Me. Eng. Adauto Mendes adauto.inatel@gmail.com Introdução As API s estabelecidas para Android permitem total modificação por meio de programação do

Leia mais

Navegador ou browser, é um programa de computador que permite a seus usuários a interagirem com documentos virtuais da Internet.

Navegador ou browser, é um programa de computador que permite a seus usuários a interagirem com documentos virtuais da Internet. TERMINOLOGIA Navegador ou Browser Navegador ou browser, é um programa de computador que permite a seus usuários a interagirem com documentos virtuais da Internet. Os Browsers se comunicam com servidores

Leia mais

Implementar servidores de Web/FTP e DFS. Disciplina: Serviços de Redes Microsoft Professor: Fernando Santorsula fernando.santorsula@esamc.

Implementar servidores de Web/FTP e DFS. Disciplina: Serviços de Redes Microsoft Professor: Fernando Santorsula fernando.santorsula@esamc. Implementar servidores de Web/FTP e DFS Disciplina: Serviços de Redes Microsoft Professor: Fernando Santorsula fernando.santorsula@esamc.br Conteúdo programático Introdução ao protocolo HTTP Serviço web

Leia mais

DESENVOLVIMENTO DE INTERFACE PARA ACESSO AO BANCO DE DADOS METEOROLÓGICOS DO CPTEC/INPE.

DESENVOLVIMENTO DE INTERFACE PARA ACESSO AO BANCO DE DADOS METEOROLÓGICOS DO CPTEC/INPE. DESENVOLVIMENTO DE INTERFACE PARA ACESSO AO BANCO DE DADOS METEOROLÓGICOS DO CPTEC/INPE. Bianca Antunes de S. R. Alves 1, Luciana M. C. Mira 2, Ana Paula Tavarez 3, José Alberto Ferreira 4, Luíz Henrique

Leia mais

PROPOSTA DE SOFTWARE DE INSTALAÇÃO PARA UM AMBIENTE INTEGRADO DE GERÊNCIA DE PROJETOS E DE PROCESSOS DE NEGÓCIOS

PROPOSTA DE SOFTWARE DE INSTALAÇÃO PARA UM AMBIENTE INTEGRADO DE GERÊNCIA DE PROJETOS E DE PROCESSOS DE NEGÓCIOS PROPOSTA DE SOFTWARE DE INSTALAÇÃO PARA UM AMBIENTE INTEGRADO DE GERÊNCIA DE PROJETOS E DE PROCESSOS DE NEGÓCIOS Élysson Mendes Rezende Bacharelando em Sistemas de Informação Bolsista de Iniciação Científica

Leia mais