DESENVOLVIMENTO DE APLICATIVO PARA GERENCIAMENTO E ACOMPANHAMENTO DE ESCAVAÇÃO ARQUEOLÓGICA Nome dos autores: Sávio S. Dias, Andreas Kneip Sávio Soares Dias 1 ; Andreas Kneip 2 ; 1 Aluno do Curso de Ciência da Computação; Campus de Palmas; e-mail: diasssavio@gmail.com PIBIC/CNPq 2 Orientador(a) do Curso de Ciência da Computação; Campus de Palmas; e-mail: andreas@mail.uft.edu.br RESUMO Este texto apresenta o processo de desenvolvimento de um software de gerenciamento e acompanhamento de uma escavação arqueológica em uma plataforma móvel (como celulares e tablets), tomando como base um software de plataforma desktop já existente. É descrito neste texto como foi desenvolvida e aproveitada a base de dados do software já existente, além de seus formulários e a lógica de controle da aplicação. Ele também demonstra como foi solucionado o problema da documentação do software desktop já existente, jabuti, de forma que essa documentação auxilie durante o processo de desenvolvimento da aplicação mobile. O código fonte do jabuti se divide em três pacotes bases, sendo eles: model, persistence, view que se baseia no modelo de engenharia de software MVC (model-view-controller), que serve de conceito para separar e definir o que cada parte do programa é responsável por fazer, separando, por exemplo, a lógica da interface com o usuário. Palavras-chave: Escavação Arqueológica; Android; Jabuti; Desenvolvimento Mobile; INTRODUÇÃO A escavação de um sítio arqueológico é uma mistura de intuição, interpretação e rigor pseudocientífico. Geralmente, ao fim do processo de escavação, têm-se como resultado um arquivo contendo representações escritas, desenhadas e fotografadas das características físicas do que foi removido da terra, as relações estratigráficas entre estas características e as amostras reais, artefatos e estruturas. A justificação para tal preservação pelo registro é que o arquivo é acessível para análises, interpretação e reinterpretação futura. Para tornar fácil o acesso e a recuperação do que são geralmente conjuntos grandes e complexos de informação, é essencial que os dados sejam estruturados e
armazenados logicamente e sem ambiguidade. O uso crescente de computadores, e particularmente dos Sistemas de Gerência de Banco de Dados, foram fundamentais ao desenvolvimento de sistemas de registro de escavação nas últimas duas décadas (LOCK, 2003). Banco de dados é uma coleção de dados organizados de tal maneira que um computador pode eficientemente armazenar e recuperar os dados (WORBOYS, 2004). O modelo relacional é o mais popular para dados estruturados. Um banco de dados relacional é formado por tabelas (formalmente chamadas de relação) compostas de linhas (registros) e colunas (campos ou atributos). As tabelas são ligadas por uma chave primária que é duplicada nas tabelas a serem unidas. Os relacionamentos podem ser um-para-um ou um-para-muitos (LOCK, 2003). O software Jabuti é um software para computadores desktop de gerenciamento de informações de escavações arqueológicas, ou seja, ele serve de alternativa ao tradicional armazenamento de formulários em várias pilhas de papel de toda informação obtida a partir da escavação de sítios. Esse software utiliza-se de um banco de dados para auxiliar no armazenamento e organização dessas informações. Após superado o problema de documentação do software Jabuti para desktops, partiu-se para uma tentativa de desenvolvimento do software em uma plataforma mobile, que execute em dispositivos com sistema operacional Android. MATERIAL E MÉTODOS Os softwares utilizados para a análise e desenvolvimento dos arquivos fontes e dados do projeto são de distribuição livre. Eles são: Ø A IDE (Integrated Development Environment, ou em português, Ambiente de Desenvolvimento Integrado) Eclipse; Ø Banco de dados sqlite3 (para armazenamento dos dados em arquivo); Ø SQLite Manager 0.8.0 para visualização, gerenciamento e realização de consultas ao banco de dados;
Ø Android SDK (Software Development Kit) Tools, pacote de aplicativos, plug-ins e bibliotecas para desenvolvimento de softwares para a plataforma Android. O desenvolvimento da aplicação se iniciou na etapa de instalação dos softwares supracitados, depois foi realizada a migração do SGBD. Para realizar essa migração tivemos que realizar alterações no arquivo SQL.properties do pacote persistence do software do Jabuti original. Alteramos a linha que indicava o driver escolhido para org.sqlite.jdbc e a linha da url do banco de dados, como o sqlite é um banco de dados em arquivo local, alteramos para jdbc:sqlite:jabuti.db. Dessa forma o jabuti será capaz de criar um arquivo chamado jabuti.db dentro da pasta do projeto, este arquivo conterá todos os dados de tabelas e relacionamentos, assim como no MySQL. Realizar a alteração do SGBD, nesse caso, facilitou porque as aplicações locais no Android costumam funcionar com o sqlite. Deste modo, o processo de migração será facilitado, além do mais, realizar testes em outros dispositivos será mais cômodo, já que não haverá a necessidade de configurar e cadastrar todos os dados sempre que necessitar testar o software em um novo dispositivo. Usaremos então a IDE eclipse para o desenvolvimento da aplicação mobile para Android. Esta IDE trabalha perfeitamente em conjunto com o plug-in ADT (Android Development Toolkit), que vem incluso no Android SDK. A IDE em conjunto com o ADT permitem a criação e edição de arquivos fonte java específicos da plataforma, arquivos XML de configuração das views da aplicação e tudo o mais que for necessário ao desenvolvimento. Criou-se então o projeto de uma aplicação Android, como pode ser visualizado na figura 1. A partir de agora será um trabalho de transcrição dos modelos, criação de interfaces e desenvolvimento dos métodos e eventos dos elementos de interface, para transformar a aplicação desktop em uma que rode em plataforma Android. Figura 1: Criação do projeto Android
RESULTADOS E DISCUSSÃO Com base da documentação sucinta obtida no relatório parcial desse mesmo projeto do software jabuti obtemos a aplicação desenvolvida, com sua estrutura de arquivos, telas e armazenamento de dados de forma bem explicada. Utilizamos como base da aplicação um exemplo já pronto (AppNavHomeActivity) disponibilizado junto ao SDK, que configura um menu básico de navegação lateral entre telas, como pode ser visualizado na figura 2. Figura 2: AppNavHomeActivity A estrutura de arquivos e pastas do projeto é bem organizada, e separa bem a lógica funcional do programa com a parte de visualização do usuário, seguindo a teoria proposta no modelo MVC. Na estrutura organizacional do JabutiMobile as classes da lógica funcional da aplicação são feitas em código fonte Java e ficam armazenadas dentro da subpasta src, sources, é nelas que ficam contidas as classes Activity, ou seja, as classes responsáveis por tratar eventos relativos à tela que eles foram desenvolvidos. Por exemplo, carregar o layout da tela, invocar uma nova tela reagindo ao toque de determinado botão e etc. Na subpasta res, resources, é aonde se encontram todos os recursos do sistema. Nessa subpasta é aonde ficaram as imagens em diversos tamanhos e o xml do desenho da interface da janela (Figura 3). Nos arquivos xml presentes na pasta resources, cada elemento de interface corresponde a um elemento xml (todos esses elementos ficam dentro da tag pai da janela, LinearLayout), como por
exemplo os dois botões (Button). Cada elemento possui uma série de características definidas pelos seus atributos, que diferenciam coisas como aonde ele deve ficar, qual o tamanho do elemento, qual o texto que o elemento deve conter, qual método deve tratar tal evento, dentre inúmeros outros. LITERATURA CITADA Figura 3: Tela da aplicação e seu xml correspondente LOCK, Gary R. Using computers in archaeology: towards virtual pasts. London: Routledge, 2003. WORBOYS, Michael. DUCKHAM, Matt. GIS: a computing perspective. 2. ed. Boca Raton, FL: CRC Press, 2004. REENSKAUG, Trygve. The Model-View-Controller (MVC): Its Past and Present. The Model-View-Controller (MVC): Its Past and Present (2003). AGRADECIMENTOS O presente trabalho foi realizado com o apoio do Conselho Nacional de Desenvolvimento Científico e Tecnológico CNPq Brasil