ver/abrir - Repositório do Departamento de Ciência da Computação

Transcrição

ver/abrir - Repositório do Departamento de Ciência da Computação
Universidade de Brasília
Instituto de Ciências Exatas
Departamento de Ciência da Computação
AndCollector: Um gerador de aplicações
móveis para coleta de dados em campo
Paulo Roberto Mota
Jefferson dos Santos Motta
Monografia apresentada como requisito parcial
para conclusão do Curso de Computação – Licenciatura
Orientadora
Prof a.̄ Dra. Maria de Fátima Ramos Brandão
Brasília
2009
Universidade de Brasília – UnB
Instituto de Ciências Exatas
Departamento de Ciência da Computação
Curso de Computação – Licenciatura
Coordenador: Prof. Dr. Díbio Leandro Borges
Banca examinadora composta por:
Prof a.̄ Dra. Maria de Fátima Ramos Brandão (Orientadora) – CIC/UnB
Prof. Dr. Marco Aurélio de Carvalho – CIC/UnB
Prof. Dr. Flávio Leonardo Cavalcante de Moura – CIC/UnB
CIP – Catalogação Internacional na Publicação
Paulo Roberto Mota.
AndCollector: Um gerador de aplicações móveis para coleta de dados em campo/ Jefferson dos Santos Motta, Paulo Roberto Mota.
Brasília : UnB, 2009.
66 p. : il. ; 29,5 cm.
Monografia (Graduação) – Universidade de Brasília, Brasília, 2009.
1. Tecnologia móvel, 2. Computação ubíqua, 3. Geradores de
código, 4. Geradores de aplicativos, 5. Softwares móveis,
6. Android, 7. Software livre
CDU 004
Endereço:
Universidade de Brasília
Campus Universitário Darcy Ribeiro – Asa Norte
CEP 70910–900
Brasília – DF – Brasil
Universidade de Brasília – UnB
Instituto de Ciências Exatas
Departamento de Ciência da Computação
Curso de Computação – Licenciatura
Coordenador: Prof. Dr. Díbio Leandro Borges
Banca examinadora composta por:
Prof a.̄ Dra. Maria de Fátima Ramos Brandão (Orientadora) – CIC/UnB
Prof. Dr. Marco Aurélio de Carvalho – CIC/UnB
Prof. Dr. Flávio Leonardo Cavalcante de Moura – CIC/UnB
CIP – Catalogação Internacional na Publicação
Paulo Roberto Mota.
AndCollector: Um gerador de aplicações móveis para coleta de dados em campo/ Jefferson dos Santos Motta, Paulo Roberto Mota.
Brasília : UnB, 2009.
66 p. : il. ; 29,5 cm.
Monografia (Graduação) – Universidade de Brasília, Brasília, 2009.
8. Tecnologia móvel, 9. Computação ubíqua, 10. Geradores de
código, 11. Geradores de aplicativos, 12. Softwares móveis,
13. Android, 14. Software livre
CDU 004
Endereço:
Universidade de Brasília
Campus Universitário Darcy Ribeiro – Asa Norte
CEP 70910–900
Brasília – DF – Brasil
Universidade de Brasília
Instituto de Ciências Exatas
Departamento de Ciência da Computação
AndCollector: Um gerador de aplicações
móveis para coleta de dados em campo
Paulo Roberto Mota
Jefferson dos Santos Motta
Monografia apresentada como requisito parcial
para conclusão do Curso de Computação – Licenciatura
Prof a.̄ Dra. Maria de Fátima Ramos Brandão (Orientadora)
CIC/UnB
Prof. Dr. Marco Aurélio de Carvalho
CIC/UnB
Prof. Dr. Flávio Leonardo Cavalcante de Moura
CIC/UnB
Prof. Dr. Díbio Leandro Borges
Coordenador do Curso de Computação – Licenciatura
Brasília, 20 de dezembro de 2009
Dedicatória
Jefferson Dedico este trabalho a minha mãe, a maior benção de Deus
na minha vida, aos meus irmãos e a minha noiva Sirley que me apoiou bastante sempre me incentivando nos momentos de dificuldade. Em especial
dedico esse trabalho a Deus que me capacitou na conclusão da monografia
assim como em todas as vitórias em minha vida.
Paulo À Dionísia minha mãe, Evandro e Rayanne irmãos. À Bárbara
Lins, quem mais sofreu com minha ausência e dias na biblioteca, obrigado
pela compreensão. E em especial ao meu pai, Geraldo Roberto.
Agradecimentos
A todos que tornam possível a conclusão deste trabalho, em particular
à professora Maria de Fátima pelas instruções a respeito do processo de
pesquisa, na ajuda de delimitação do nosso tema, pelos inúmeros rabiscos a
cada versão entregue da monografia e pelo entusiamos demonstrado desde
o início em trabalhar conosco neste projeto.
Aos nossos colegas de curso pela parceria nesses cinco anos, aos demais
orientados da professora Maria de Fátima nesse semestre pela colaboração
que tiveram nesse processo.
Resumo
O projeto tem como área de estudo a tecnologia móvel, a qual oferece
suporte à criação de soluções para auxiliar os profissionais que não possuem conhecimento técnico em programação mas demandam de aplicativos
móveis para otimizar a execução de tarefas. Com este foco o papel do programador é suprimido devido a capacitação do usuário final na criação de
softwares móveis de acordo com as suas necessidades. O objetivo principal
do projeto é desenvolver um gerador de aplicativos com tecnologia móvel
que abstraia a necessidade de conhecimento técnico pelo usuário leigo. A
meta é criar um gerador na arquitetura do Android, levantar um source
forge e divulgar o projeto em várias comunidades com o propósito de criar
uma rede de desenvolvedores. O domínio de atuação do gerador será a
coleta de dados em campo podendo este ser extendido ou implementado
em outras áreas. Foram realizadas entrevistas e demonstrações de uso da
ferramenta desenvolvida, nas quais se verificou a aceitação do aplicativo
por pessoas que exerccem atividades em diversas áreas. O projeto procura
demonstrar o potencial da tecnologia móvel com a criação e utilização da
ferramenta AndCollector.
Palavras-chave: Tecnologia móvel, Computação ubíqua, Geradores de código,
Geradores de aplicativos, Softwares móveis, Android, Software livre
Abstract
The present project studies the mobile technology, which supports the
creation of solutions to assist professionals who have no expertise in programming but require mobile applications to optimize the performance of
his duties. Trying to reach this aim, the programmers work is deleted,
since the consumer is trained to create mobile software according to his
needs. We intend with this project develop an generator application with
mobile technology that makes unnecessary that the laic user has technical
knowledge. The aim is create a generator in the Androids architecture and
disseminate the project in several communities in order to create a large
network of developers for the generator. The main field of operation of the
generator will the data collect in external areas, but whit the possibility to
extended or be implemented for other situations, areas or purposes. With
the finished project were carried interviews and demonstrations for check
acceptance of the application with people who have jobs in several areas.
The project intend to prove the potential of mobile technology when used
for creation and development of AndCollector, a generator of mobile applications in androids architecture.
Keywords: Mobile technology, Ubiquitous computation, Code generators,
Applications generators, Mobile softwares, Android, Free software
Sumário
Lista de Figuras
12
Capítulo 1 Introdução
13
Capítulo 2 Computação ubíqua, software livre
aplicação
2.1 Computação Ubíqua . . . . . . . . . . . . . .
2.1.1 Aplicação da Ubicomp na educação . .
2.2 Software Livre . . . . . . . . . . . . . . . . . .
2.2.1 Propriedade Intelectual . . . . . . . .
2.2.2 Licença de Software . . . . . . . . . . .
2.2.3 Restrições em Licenças . . . . . . . . .
2.2.4 Licenças de Software Livre . . . . . .
2.3 Geradores de Código / Aplicação . . . . . . . .
2.3.1 Geradores de Código . . . . . . . . . .
2.3.2 Geradores de Aplicações . . . . . . . .
e geradores de
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Capítulo 3 Tecnologia Móvel para Desenvolvimento de
cações
3.1 Windows Mobile . . . . . . . . . . . . . . . . . . . . . . . .
3.2 Blackberry . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.3 Soluções BlackBerry . . . . . . . . . . . . . . . . . . . . .
3.3.1 BlackBerry Enterprise Solution . . . . . . . . . . .
3.3.2 BlackBerry Internet Service . . . . . . . . . . . . .
3.3.3 BlackBerry MDS . . . . . . . . . . . . . . . . . . .
3.4 Iphone . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.4.1 Iphone OS . . . . . . . . . . . . . . . . . . . . . . .
3.4.2 Camadas Tecnológicas . . . . . . . . . . . . . . . .
3.4.3 Escrevendo código para o Iphone . . . . . . . . . .
3.4.4 Primeiros Passos . . . . . . . . . . . . . . . . . . .
3.5 Symbian . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.5.1 Camada de Interface com o Usuário . . . . . . . .
3.5.2 Camada de Serviços de Aplicação . . . . . . . . . .
3.5.3 Camada de Serviços do Sistema Operacional . . .
3.5.4 Camada de Serviços Básicos . . . . . . . . . . . . .
3.5.5 Camada de Hardware . . . . . . . . . . . . . . . .
3.6 Tecnologia Java . . . . . . . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
17
17
18
18
19
19
19
20
21
21
22
Apli.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
24
24
26
27
27
28
28
28
28
29
29
30
30
31
31
31
32
32
32
3.6.1 Java Micro Edition . . . . . . . . . . . .
3.6.2 Os componentes da tecnologia J2ME . .
3.7 Android . . . . . . . . . . . . . . . . . . . . . . .
3.7.1 Recursos . . . . . . . . . . . . . . . . . .
3.7.2 Arquitetura . . . . . . . . . . . . . . . .
3.7.3 Applications . . . . . . . . . . . . . . . .
3.7.4 Application Framework . . . . . . . . .
3.7.5 Bibliotecas . . . . . . . . . . . . . . . . .
3.7.6 Android Runtime . . . . . . . . . . . . .
3.7.7 Linux Kernel . . . . . . . . . . . . . . . .
3.8 Análise das Tecnologias e Seleção do Ambiente
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
33
33
34
35
35
36
36
37
37
38
38
Capítulo 4 Estudo de Aplicações Móveis
39
4.1 Sistema de Monitoração de pacientes apoiado em web e palmtops . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
4.2 Sistema Simplificado de Prontuário . . . . . . . . . . . . . . . . 40
4.3 Aplicação HandMed . . . . . . . . . . . . . . . . . . . . . . . . . 41
4.4 Computação Móvel e Tecnologia Web em Sistemas de Controle Pós-Transplante . . . . . . . . . . . . . . . . . . . . . . . . 41
4.5 Epocrates Essential . . . . . . . . . . . . . . . . . . . . . . . . . 42
4.6 The m-learning Project . . . . . . . . . . . . . . . . . . . . . . . 42
4.7 Sistema de avaliação de cursos de EAD na UFPB . . . . . . . 44
4.8 Homer Framework Biblioteca para coleta de dados na plataforma
Symbian . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
4.8.1 Componentes de interface com usuário . . . . . . . . . . 46
4.8.2 Componentes de Comunicação . . . . . . . . . . . . . . 47
4.9 Cinq Census . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
Capítulo 5 O Problema
49
5.1 Soluções Proprietárias . . . . . . . . . . . . . . . . . . . . . . . 49
5.2 Recodificação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
Capítulo 6 AndCollector
6.1 Módulos . . . . . . . . . . . . . .
6.1.1 Módulo Construção . . .
6.1.2 Módulo Coleta de Dados
6.2 Modelo de dados . . . . . . . . .
6.3 Considerações . . . . . . . . . .
6.3.1 Viabilidade Econômica .
6.3.2 Viabilidade Técnica . . .
6.3.3 Vantagens . . . . . . . .
6.3.4 Desvantagens . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
51
52
52
54
54
55
55
55
56
57
Capítulo 7 Avaliação da ferramenta AndCollector
58
7.1 Roteiro da entrevista . . . . . . . . . . . . . . . . . . . . . . . . 58
7.2 Entrevistas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
7.3 Análise das Entrevistas . . . . . . . . . . . . . . . . . . . . . . 61
10
Capítulo 8 Conclusão
63
8.1 Trabalhos Futuros . . . . . . . . . . . . . . . . . . . . . . . . . . 63
11
Lista de Figuras
2.1 Formato Click-Wrap de Licença [20]. . . . . . . . . . . . . . . . 19
2.2 Relação entre geradores de código e aplicativo [12]. . . . . . . 22
2.3 A utilização da plataforma Symbian [12]. . . . . . . . . . . . . 23
3.1
3.2
3.3
3.4
Camadas Tecnológicas do Iphone [3]. .
Camadas da plataforma Symbian [6].
A Máquina Virtual Java [26]. . . . . .
A Arquitetura do Android [11]. . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
29
31
32
36
Sistema de Monitoração de pacientes - Palmtops [17]. . . . . .
Sistema de Monitoração de pacientes - Web [17]. . . . . . . . .
Sistema Simplificado de Prontuário [19]. . . . . . . . . . . . . .
Aplicação HandMed [14]. . . . . . . . . . . . . . . . . . . . . . .
Sistemas de Controle Pós-Transplante [17]. . . . . . . . . . . .
Epocrates Essential [1]. . . . . . . . . . . . . . . . . . . . . . .
Estrutura do Projeto na Universidade Federal da Paraíba [18].
Projeto na Universidade Federal da Paraíba - Tela Palmtop
[18]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.9 Sistema Symbian S60 3ed [5]. . . . . . . . . . . . . . . . . . . .
4.10 Sistema Symbian S60 5ed [5]. . . . . . . . . . . . . . . . . . . .
40
40
40
41
42
42
44
45
45
45
6.1
6.2
6.3
6.4
6.5
52
53
53
54
55
4.1
4.2
4.3
4.4
4.5
4.6
4.7
4.8
Tela inicial do AndCollector . . . . . . . . . . .
Tela de criação de formulários no AndCollector
Tela de cadastro de questões no AndCollector .
Tela de coleta de dados no AndCollector . . . .
Modelo Entidade Relacionamento da Aplicação
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
7.1 Usabilidade e Utilidade da ferramenta AndCollector . . . . . . 62
Capítulo 1
Introdução
O ambiente social, econômico e educacional está em um processo de revolução moldado por uma nova tecnologia para os dispositivos móveis. A
integração da tecnologia móvel na sociedade vêm transformando a execução de processos em diversos setores, como a área de saúde, educação,
comunicação, entre outros. Com o avanço tecnológico é perceptível as melhorias advindas da mobilidade e o seu extenso escopo de implementação.
Cada vez mais são realizados investimentos nesta área a fim de promover a
sua evolução e consequentemente melhoria das atividades realizadas pelo
homem.
A computação foi incorporada à sociedade inicialmente com a primeira
onda tecnológica na qual os mainframes eram compartilhados por muitas
pessoas, uma máquina era utilizada para prestar serviços para muitos indivíduos. A era da computação pessoal, teve seu marco com a inclusão dos
computadores de mesa criando uma relação direta homem-máquina. Uma
nova fase conhecida como computação ubíqua esta sendo representada de
maneira imperceptível pelos novos recursos e ferramentas móveis na vida
das pessoas e se consolida com a definição de uma realidade na qual o computador se integra, em um modelo de alta mobilidade, com estruturas físicas para implementação de espaços inteligentes, nos quais tarefas do dia a
dia são facilitadas com recursos e serviços computacionais [25].
Um fator determinante na produção de softwares que estabelece as formas de utilização de um determinado programa e seu código fonte é o seu
licenciamento, o qual fixa as formas de utilização do código e do sistema desenvolvido, caracterizando-o como proprietário ou livre. Um sistema livre
flexibiliza a reutilização de código e promove a evolução de softwares [21].
No desenvolvimento de qualquer sistema, seja livre ou proprietário, deve
ser fundamentado pela Engenharia de Software e existem diversas ferramentas que podem auxiliar o desenvolvimento de sistemas, como por exemplo, os geradores de código e os geradores de aplicações [12]. O primeiro
é utilizado na fase de implementação do projeto, produzindo códigos que a
princípio seriam escritos pelo programador. Um gerador de aplicação atua
13
em todo o ciclo de vida do software funcionando como uma ferramenta de
automação de processos.
Existe uma grande variedade de tecnologias para dispositivos móveis
como os smartphones, celulares, PDAS, e também muitas opções de plataforma
para desenvolvimento como J2ME, Symbian, BlackBerry, Android, entre
outros. Mesmo com tamanha diversidade de plataformas de desenvolvimento não foi encontrada solução otimizada para o desenvolvimento de
aplicações móveis de coleta de dados que ofereça ao usuário final a capacidade de realizar modificações nas funções dos programas desenvolvidos.
Muitas áreas de conhecimento necessitam de soluções dinâmicas para
coleta de dados em campo, como é o caso da Educação física, que precisa
coletar dados diversificados de acordo com a atividade realizada podendo
esta ser o acompanhamento de um atleta como até mesmo o rendimento de
uma turma de alunos. Outras áreas também demandam esse tipo de tecnologia, como por exemplo, a agronomia, para registro de informações sobre
o solo, na biologia na pesquisa de espécies em campo, na política no registro de informações de popularidade eleitoral, entre outras áreas. Em todos
esses campos de atuação é perceptível um domínio extenso de informações a
serem coletadas, devido às tendências e necessidades apresentadas. Assim
o usuário final da aplicação muitas vezes precisa modificar a estrutura do
sistema de coleta para comportar as exigências dinâmicas do serviço. Devido a esta necessidade de customização da aplicação, é necessário a implementação de uma solução livre que ofereça suporte a criação de aplicações
móveis para coleta de dados em campo, pois cada dia a sociedade demanda
soluções que forneçam mobilidade para os indivíduos economizando assim
tempo, dinheiro e espaço.
Com a criação de um gerador de aplicações móveis para coleta de dados, na qual o usuário final tenha completo domínio para poder customizar
o software de coleta sem a necessidade de conhecimento técnico, podemos
esperar que o usuário final do sistema tenha facilidade em alterar e criar
novos sistemas de acordo com as suas necessidades.
O objetivo deste trabalho é propor um gerador de aplicativos de coleta
de dados que seja capaz de abstrair a necessidade de conhecimento técnico
em programação para criação de aplicações específicas pelo próprio usuário
final. O trabalho propõe o desenvolvimento de um sistema gerador de aplicações de código aberto utilizando a arquitetura do Android que pode ser
alterado e aprimorado de acordo com as necessidades, podendo ser aplicado
em vários domínios de aplicação.
O gerador será desenvolvido sob Licença GPL(Licença Pública Geral)
garantindo assim a perpetuação livre do seu desenvolvimento e o mesmo
contará com a participação da comunidade de software livre para aprimoramento de sua arquitetura de produção intensificando dessa forma o de14
senvolvimento de softwares móveis com as facilidades oferecidas.
Foram realizadas pesquisas para tentar identificar alguma solução semelhante que ofereça suporte à geração de aplicativos móveis em código
aberto e desenvolvimento livre. De acordo com os levantamentos feitos nas
bases de dados acadêmicos: Banco de Teses da CAPS, Google Acadêmico, na
Biblioteca Digital de Teses e Dissertações da UNB, portal de Periódicos da
CAPES, DOAJ(Directory of Open Access Journals), Repositório Institucional da Universidade de Brasília da Faculdade de Tecnologia; e em sistemas
de buscas como Yahoo, Bing e Google, nenhum artefato foi encontrado com
essas características.
No desenvolvimento de sistemas para web e desktop podemos encontrar
diversas soluções de geradores de aplicativos, como por exemplo: Gas PRo,
Maker, Visual Kit 5, EngeBuilder, Genexus, Accode, LanceWeb e esses programas geradores possuem uma interface visual para criação da aplicação
que não necessita de conhecimento técnico em programação, gerando em
alguns casos somente o código objeto do sistema e em outros o fonte completo para compilação e execução do aplicativo.
A criação do gerador de aplicativos móveis no Android adotou a metodologia ágil de desenvolvimento devido a necessidade de se ter um ambiente
propício para comportar de maneira eficiente as mudanças de requisitos e
inovações decorrente de estudos sobre as áreas de conhecimento do projeto.
O curto prazo para desenvolvimento do gerador também foi um fator prioritário na escolha da metodologia já que essa foca na entrega mais rápida
de sistemas, diferente do método tradicional de engenharia de software.
Para validação da solução apresentada pelo projeto foram realizadas entrevistas e demonstrações de uso do gerador para pessoas leigas em programação. As entrevistas seguiram um roteiro específico, com perguntas sobre
a necessidade da solução, instruções de utilização do sistema, avaliação da
usabilidade e utilidade do gerador.
É esperado que o gerador de aplicativos seja utilizado como suporte para
o desenvolvimento de futuras aplicações móveis de coleta de dados, o protótipo foi desenvolvido sobre licenciamento livre e fornece um conjunto de
módulos dispostos a facilitar e a gerenciar várias aplicações de coleta de
dados. Como o código fonte é aberto para a sociedade, esperamos que seja
formada uma grande rede social para ampliação e aprimoramento do projeto suprindo assim as diversas áreas que demandam soluções móveis para
a execução das mais diversas tarefas em campo.
O capítulo 2 deste documento apresenta os conceitos de computação
ubíqua, software livre e geradores de aplicações que são os fundamentos do
trabalho e da aplicação desenvolvida. O capítulo 3 descreve as tecnologias
vigentes para desenvolvimento de aplicações móveis ilustrando os pontos
15
positivos e negativos de cada ambiente. No capítulo 4 são analisadas as
aplicações móveis existentes com o propósito de identificar as melhorias
na execução de serviços e também a estrutura de desenvolvimento de cada
aplicação. O capítulo 5 especifica o problema do trabalho e a sua resolução
é apresentada no desenvolvimento da proposta no capítulo 6. O capítulo 7
apresenta os resultados do estudo de caso realizado com a aplicação AndCollector e no capítulo 8 concluímos os resultados com a pesquisa realizada
no projeto.
16
Capítulo 2
Computação ubíqua, software
livre e geradores de aplicação
Este capítulo apresenta os conceitos e análises das principais áreas de conhecimento do processo de criação de ferramentas móveis para que sejam
compreendidos os argumentos e tecnologias envolvidos no desenvolvimento
do projeto. A fundamentação aborda conceitos de computação ubíqua, software livre, geradores de código e geradores de aplicativos.
2.1
Computação Ubíqua
O termo computação ubíqua é relativamente recente e teve sua primeira
publicação em 1991, quando Mark Weiser apresentou seu primeiro artigo
descrevendo como seria a computação do futuro[25].
Weiser descreve uma nova realidade onde os computadores de uma maneira
geral, passam a fazer parte dos ambientes de modo imperceptível [25]. Eles
são utilizados pelas pessoas para realização de diversas tarefas mas sem
que estas dirijam a atenção para a utilização de um determinado tipo de
computador, mas que as pessoas ajam como se estivem se relacionando diretamente com o próprio ambiente físico no qual se encontram. Devido a
essa característica a computação ubíqua, ou ubicomp, é também conhecida
como computação invisível. O pai da computação ubíqua como passa a ser
chamado Weiser com a publicação do artigo, usa uma analogia com a escrita para apresentar o que pode ser esperado desse paradigma.
Há milhares de anos as civilizações criaram um mecanismo para representar os pensamentos através de símbolos, surgia então a escrita moderna.
Atualmente todos utilizam a escrita como se fosse uma habilidade inata ao
ser humano. Alcançaremos a ubiquidade quando os computadores forem
utilizados com a mesma naturalidade que a escrita é hoje [13].
Uma boa ferramenta é aquela que se apresenta invisível, porém não
17
invisível de fato, mas que quem a utiliza tenha foco na tarefa e não na ferramenta em si. Quem usa óculos não volta sua atenção aos óculos, mas ao
mundo que os cerca [24].
O grande problema que surge é como criar um novo tipo de relacionamento entre as pessoas e os computadores de modo que os computadores
assumam a liderança e se tornem melhores e amplamente acessíveis de
forma que as pessoas não precisem sentar frente a um computador pois
este já deve estar disponível de maneira ubíqua como se fizessem parte de
suas vidas [23].
Weiser classifica a era da computação ubíqua como a terceira era computacional. As duas primeiras foram: a era dos mainframes, onde havia
uma única e grande máquina para vários usuários e a era dos computadores
pessoais, com maior acessibilidade aos desktops, caracterizada pela existência de uma máquina para cada um usuário. Finalmente a terceira era
da computação invisível, caracteriza-se pela existência de várias máquinas
para vários usuários [25]. Entretanto, como alguns podem pensar, ubicomp
não é o mesmo que realidade virtual, uma vez que, as pessoas e suas interações são simuladas nos computadores, enquanto na computação ubíqua, os
computadores compõe o mundo real e estão presentes nos ambientes com
as pessoas.
2.1.1
Aplicação da Ubicomp na educação
A ubicomp na educação pode ser útil para estimular a aprendizagem colaborativa, uma vez que o foco das iterações é many-to-many (muitos para
muitos) e baseado na idéia de que a tecnologia está disponível o tempo todo.
Na computação ubíqua tanto alunos como professores poderão participar do
processo de aprendizagem, analizando e criando informações e conhecimentos com as ferramentas apropriadas para os diferentes tipos de tarefa [16].
O uso de computação ubíqua na educação ainda é pouco difundido, fato
que motivou o desenvolvimento deste tema neste trabalho.
2.2
Software Livre
O fundamento do software livre apóia-o no compartilhamento de código e
aplicativos em várias comunidades de desenvolvedores criando assim uma
extensa rede e evolução de sistemas com apoio voluntário das pessoas. O
foco de pesquisa nesse movimento procura disponibilizar uma solução que
seja livre, modificável e replicável para as mais diversas áreas de conhecimento. Nesse intuito os conceitos de licenciamento e software livre são
trabalhados para que viabilize a compreensão de sua estrutura e benefícios.
18
2.2.1
Propriedade Intelectual
Toda atividade intelectual é protegida por leis que tratam da propriedade
intelectual ou copyright. Os softwares são incluídos nesse quadro pelo fato
de serem produções de atividades intelectuais. O copyright concede permissão para que o autor do sistema determine normas de uso, como permissões
para realização de cópias, alterações no software e distribuição, cobranças
pela utilização do programa editado, entre outros. As condições e direitos
atribuídos aos autores de sistemas são fixadas pela legislação de copyright
de cada país, sendo que a maioria dos países são integrantes da World Intellectual Property Organization(WIPO), esta que consolida as diretrizes
internacionais de copyright. O autor ao criar o software não necessita especificar explicitamente as direttrizes de utilização do sistema, pois este
por natureza já é protegido por lei com sua criação, fato que impede a utilização ilegal do programa desenvolvido[20].
Para os softwares essa questão de proteção por copyright é assunto de
extrema importância devido a facilidade de replicação e difusão, o que acaba
desvalorizando o preço do produto original. Para evitar esse tipo de problema os sistemas geralmente são acompanhados de um documento que
explicita os direitos que são oferecidos a seu receptor, conhecido como licença de software.
2.2.2
Licença de Software
A licença de software não precisa necessariamente ser registrada ou validada com algum orgão ou organização, sendo necessário apenas a emissão
de um documento que especifique as proteção aplicadas ao sistema desenvolvido. É um documento formal elaborado por um indivíduo que tenha
compreensão dos apesctos legais envolvidos e se baseia integralmente nos
termos especificados pelas leis de copyright. Um formato muito comum
de licença é a click-wrap, o qual apresenta para o usuário uma caixa de
aceitação dos termos de utilização do software para o usuário. A Figura 2.1
é um exemplo do formato click-wrap:
2.2.3
Restrições em Licenças
O principal foco das licenças atuais é a imposição de restrições ao uso
do software mas existem licenças que visam a direção oposta procurando
garantir ao usuário um conjunto de direitos que lhe garanta liberdade na
utilização do sistema. Com essas variedades de licenças é possivel categorizar um software com base na definiçaão de seu licenciamento, criando
assim grupos distintos de sistemas que são descritos em "Categories of
Free and Non-Free Software"do FSF(Free Software Foundation). Abaixo
trataremos os tipos de categoria mais relevantes para estudo.
19
Figura 2.1: Formato Click-Wrap de Licença [20].
• Software Proprietário: possui uma licença que proíbe a redistribuição
e alteração do software pelo usuário.
• Freeware: software que pode ser redistribuído mas não podem ser realizadas modificações no sistema, devido ao fato que é disponibilizado
sem o código fonte.
• Shareware: sistemas que pode ser redistribuído mas possui um período
de expiração na sua utilização, obrigando o usuário a comprar uma licença para continuar usando o sistema.
• Software Livre: softwares que concedem ao usuário o direito de usar,
estudar, modificar e redistribuir.
• Domínio Público: não possui copyright, pelo fato do proprietário rescindir seus direitos sobre o sistema ou por expiração do copyright. Não
apresenta qualquer tipo de restrição na sua utilização.
2.2.4
Licenças de Software Livre
Existem diversas licenças de software livre cada uma com suas particularidades que influenciam na liberdade de utilização dos sitemas. Detalharemos as principais licenças, para que possa ser compreendido as restrições e
liberdades oferecidas por cada umas delas.
• GNU GPL: (www.gnu.org/copyleft/gpl.html) - Esta é a licença de software livre mais importante atualmente, 70 por cento dos sistemas
livres desenvolvidos utilizam essa licença [20]. É uma licença não
permissiva, isto é, só permite redistribuição se for mantida a garantia de liberdade aos receptores da cópia redistribuída obrigando que
as versões modificadas sejam também livres acompanhadas de código
fonte.
20
• BSD, X, MIT, Apache: (www.freebsd.org/copyright/license.html) - Permite redistribuição do software. Sua versão original, a BSD, é não
permissiva obrigando manter visível um aviso do copyright da licença
nas versões modificadas. Já as outras versões são permissivas permitindo a criação de versões não livres com a sua utilização.
• MPL, GNU LGPL (www.mozilla.org/MPL/ e www.gnu.org/copyleft/ lesser.html)
- Permitem redistribuição e são não permissivas. Quando o código
é reutilizado por um sistema maior, não é obrigatório que este software tenha licenciamento livre também. Nos casos em que ocorrerem
modificações em códigos regidos pela licença MPL ou LGPL, estes devem ser fornecidos acompanhados do código fonte, mas o mesmo não
é aplicável para o código de sistemas maiores que os agregam.
2.3
Geradores de Código / Aplicação
Geradores de código e de aplicações são ferramentas que auxiliam o processo de criação de sistemas oferecendo recursos tanto para os desenvolvedores como para o próprio usuário final do sistema. Será feita uma análise
desses recursos identificando os fatores positivos e negativos que cada solução
compreende com o propósito de identificar qual dessas pode contribuir de
maneira mais eficiente com o projeto.
2.3.1
Geradores de Código
Um gerador de código auxilia na engenharia de software nos processos que
compreende a fase de implementação do projeto, gerando código fonte que
a princípio seria criado pelo programador. Geralmente essas ferramentas utilizam o modelo de dados para gerarem o código que será utilizado
poupando assim tempo para os desenvolvedores que podem focar em etapas
ou regras de negócios mais complexas. Apesar das vantagens oferecidas por
essa solução, os benefícios acabam ficando restritos à interface de cadastro,
listagens de registros e telas de baixa complexidade, devido ao vínculo com
o modelo de dados.
Mesmo com a produção correta de código fonte, podemos identificar algumas características negativas que ocorrem com esse tipo de ferramenta,
por exemplo:
• Caso o programador faça modificações no código gerado e ao mesmo
tempo seja feita alterações na base de dados, a geração deve ser reexecutada mas o trabalho realizado pelo desenvolvedor será perdido,
pois as modificações só são atualizáveis em um único sentido, da base
de dados para o código.
21
• O padrão de código gerado pela ferramente nem sempre está de acordo
com o padrão utilizado pela equipe de desenvolvimento.
• O código gerado não é otimizado para a situação na qual será utilizado, não levando em consideração como, por exemplo, questões de
desempenho, estrutura, integração com outros sistemas, documentação, entre outros.
• Complexidade de manutenção devido a grande restruturação que deve
ser feita devido ao sentido único de geração.
2.3.2
Geradores de Aplicações
Esta ferramenta funciona como um sistema automático que controla os processos de desenvolvimento de softwares, podendo atuar em todas as etapas
de vida da aplicação. Como seu domínio de utilização é mais abrangente,
os artefatos gerados por essa ferramenta vai além do código fonte, como
por exemplo interfaces de aplicação, documentação para o desenvolvedor
ou usuário, descrição de processos, estimativas, especificações de projeto,
entre outros [12].
Comparando-se o gerador de código com o de aplicações, percebe-se que
o segundo engloba o primeiro de acordo com os produtos gerados por cada
ferramenta. A Figura 2.2 representa a situação.
Figura 2.2: Relação entre geradores de código e aplicativo [12].
Como consequência dessa agregação verificamos que os problemas relacionados ao processo de manutenção do software são herdados do gerador
de código. Uma solução para contornar esta falha é suprimir o processo de
geração de código fonte realizado pelo gerador de aplicações. Temos assim
um tipo específico de gerador de sistemas que não gera código fonte, simplesmente produz o código objeto em tempo de execução para utilização pelo
usuário final.
Uma consequência direta para essa abordagem é que a manutanção do
software ocorre sem alterações de código, realizando-se apenas um remapeamento das regras de negócio e dos objetos utilizados. Abaixo listamos
outras consequências perceptíveis com essa solução.
22
• Como não existe código fonte, temos uma redução significativa de custos com as manutenções do sistema.
• Como o remapeamento das regras e objetos é um processo que demanda bem menos tempo que recodificação e pode ser realizado pelo
próprio usuário final, temos uma maior agilidade na disponibilização
de novas versões.
• A arquitetura otimiza a criação de protótipos totalmente funcionais.
• Como não há recodificação, não existe também o processo de recompilação do sistema.
• Criação de sistema executáveis sem falhas devido ao processo automatizado.
• O gerador de aplicações com as especificações do sistema, pode gerar
documentos de mecanismos de auxílio, manuais de uso, especificações
de telas, entre outros.
• Padronização das aplicações.
A figura 2.3 ilustra a arquitetura utilizada pelo gerador de aplicações.
Figura 2.3: A utilização da plataforma Symbian [12].
Verifica-se na Figura 2.3 duas partes do fluxo, uma representando o
tempo de projeto e outra o tempo de execução. Durante o tempo de projeto
são especificados o modelo de dados, os elementes de interface e as regras
de negócio da aplicação. Durante o tempo de execução, a aplicação abrange
em sua estrutura um sistema de geração de aplicações a partir do modelo
23
persistido no banco de dados.
O banco de dados é responsável pela persistência e controle dos dados
e o metamodelo é utilizado para persistência das informações obtidas de
procedimentos realizados junto ao modelo de dados, interfaces e regras
de negócio. As regras de negócio irão atuar sobre os dados definidos pelo
usuário e definem as relações entre os dados, seus ciclos de vida, seus estados corretos e as modificações que eles podem sofrer.
Na figura 12 temos o módulo denominado AndMeta que é responsável
pela importação e exportação das informações contidas no modelo de dados,
pela definição das interfaces e pela gravação das regras de negócio.
A aplicação final do cliente é o código objeto gerado pelo sistema gerador
e é produzido a partir de um mapeamento das regras de negócio e da criação
automática de interfaces com base nos dados armazenados no metamodelo.
24
Capítulo 3
Tecnologia Móvel para
Desenvolvimento de Aplicações
Este capítulo apresenta alguns dos ambientes e tecnologias de desenvolvimento para produção de sistemas móveis. O estudo identifica pontos positivos e negativos de cada tecnologia, orientando assim a escolha da plataforma
ideal para desenvolvimento de acordo com as necessidades do desenvolvedor.
3.1
Windows Mobile
O Windows Mobile é um sistema operacional para dispositivos móveis da
Microsoft baseado no Windows CE 5.0 [8] . Atualmente é utilizado por
uma extensa gama de hardwares de terceiros, como PDAS e smartphones.
Os principais componentes que são utilizados para o desenvolvimento na
plataforma, são o Microsft Visual Studio 2008 e o Windows SDK e ambos
geram códigos nativos em Visual C++ ou código gerenciado como Visual C
e Visual Basic.NET.
O Windows Mobile possui uma área de trabalho semelhante ao sistema
Windows para desktops e oferece suporte a .NET Compact Framework. A
plataforma oferece recursos de conectividade e segurança, desenvolvimento
de aplicativos multitarefa, uma API valiosa para conexão Bluetooth e o
Pockect Outlook Object Model para desenvolvimento de interfaces de mensagens.
O Microsoft Visual Studio 2005 é a principal ferramenta para desenvolvimento, compilação, testes e implantação de aplicativos para a plataforma
Microsoft Windows e Windows Mobile. O desenvolvimento para Windows
Mobile necessita do aplicativo Visual Studio 2005 Stardard Edition ou superior. É necessário a utilização de um SDK(kit de desenvolvimento) para
desenvolvimento de sistemas para o Windows Mobile sendo necessário a
instalação de um kit específico de acordo com a versão do sistema opera25
cional alvo e da arquitetura do dispositivo. Na utilização das SDKS não são
realizadas nenhum tipo de cobrança, o que dá liberdade ao desenvolvedor
de selecionar a versão do sitema operacional que rodará o aplicativo selecionando o kit adequado para desenvolvimento sem preocupações com gastos
em função ambiente adotado.
Os principais itens para o desenvolvimento para plataforma Windows
Mobile no Sistema operacional Windows Server 2003. São apresentados a
seguir:
• Microsoft Visual Studio 2005, Standard Edition ou versões superiores.
Pacote SP1;
• Microsoft .NET Compact Framework v2. Pacotes SP1 ou SP2;
• ActiveSync 4.5 e
• Windows Mobile 6 Professional SDK, ou Windows Mobile 6 Standard
SDK.
Para desenvolvimento no Windows XP são necessários as seguintes ferramentas:
• Microsoft Visual Studio 2005, Standard Edition ou versões superiores;
• Microsoft .NET Compact Framework v2. Pacotes SP1 ou SP2 são recomendados;
• ActiveSync 4.5 e
• Windows Mobile 6 Professional SDK, ou Windows Mobile 6 Standard
SDK.
Para desenvolvimento no Windows Vista são necessárias as seguintes
ferramentas:
• Microsoft Visual Studio 2005, Standard Edition ou versões superiores;
• Microsoft .NET Compact Framework v2. Pacotes SP1 ou SP2 são recomendados;
• Windows Mobile Device Center é requerido para sincronização de dados e
• Windows Mobile 6 Professional SDK, ou Windows Mobile 6 Standard
SDK.
Para auxiliar no desenvolvimento de aplicativos para o Windows Mobile
são utilizados emuladores, que são partes integrantes das SKDS instaladas
e também possuem componentes vinculados ao Visual Studio.
26
3.2
Blackberry
A arquitetura BlackBerry oferece um ambiente sem fio Java ME compatível
com aplicativos cliente/servidor. A partir desse ambiente, desenvolvedores
da plataforma podem criar um BlackBerry Java Application que utilize interfaces sofisticadas para entrada de dados e pesquisa e que ofereça suporte
a multithreading, internacionalização, comunicação em rede e armazenamento de dados local.
Os sistemas desenvolvidos podem se comunicar com outras redes utilizando conexões TCP e HTTP padrão, independentemente da rede sem fio
subjacente.
O ambiente de desenvolvimento BlackBerry oferece recursos que viabilizam a criação de aplicativos que sejam estreitamente integrados aos
sistemas principais do BlackBerry, como lista de mensagens, aplicativos
organizadores, telefone e navegador, proporcionando assim maior reutilização na programação dos softwares [2].
Todos os dispositivos BlackBerry possuem uma versão específica do BlackBerry Device Software e da BlackBerry Java Virtual Machine. De acordo
com o lançamento de novas versões desses ambientes, a Research In Motion
inclui as novas APIS Java correspondentes e a versão do BlackBerry Java
Development Environment. A versão do BlackBerry Device Software determina o componente BlackBerry Integrated Development Environment que
será utilizado para desenvolver os aplicativos.
O BlackBerry Java Development Environment é uma plataforma de
desenvolvimento e simulação voltado para criação aplicações Java para o
BlackBerry [2]. Utilizando-se o BlackBerry JDE, os programadores podem usufruir dos recursos para desenvolver aplicativos usando a linguagem
Java ME e as APIS Java estendidas para o BlackBerry .
O BlackBerry Java Development Environment possui as seguintes ferramentas de desenvolvimento:
R Integrated Development Environment;
• BlackBerry
• BlackBerry Smartphone Simulator e
• APIs Java ME e APIs do BlackBerry.
O BlackBerry IDE comporta um conjunto completo de ferramentas de
edição e depuração que são otimizadas para o desenvolvimento de uma
aplicação Java. O BlackBerry Smartphone Simulator oferece um ambiente
estilo Windows projetado para simular interfaces e interação do usuário,
conexões de rede, serviços de e-mail e sincronização na rede sem fio.
27
O BlackBerry Java Development Environment possui ferramentas para
desenvolvimento em IDEs de terceiros como NetBeans ou Eclipse, entre
estas temos:
• RAPC: é um compilador de prompt de comando utilizado compilar
arquivos .java e .jar em arquivos .cod que podem ser executados no
BlackBerry Smartphone Simulator ou em um dispositivo BlackBerry;
• JavaLoader: é uma ferramenta utilizada para adicionar ou atualizar
um aplicativo em um dispositivo BlackBerry para teste e também é
usado para exibir informações sobre os arquivos .cod do aplicativo;
• BlackBerry Signature Tool: é uma ferramenta utilizada para enviar
solicitações de assinatura de código para a BlackBerry Signing Authority Tool;
• Preverify Tool: é uma ferramenta utilizada para verificar parcialmente as classes antes de carregar o aplicativo em um dispositivo
BlackBerry e
• JDWP: é uma ferramenta utilizada para depurar os aplicativos usando
ambientes de desenvolvimento integrados de terceiros.
3.3
Soluções BlackBerry
Usuários de dispositivos BlackBerry podem utilizar recursos do BlackBerry
Enterprise Server ou o BlackBerry Internet Service ou caso ache necessário
pode usar os dois. É importante para o desenvolvedor identificar as diferenças entre esses componentes para restringir o tipo de usuário que sua ferramenta dará suporte, visto que a escolha por uma determinada arquitetura
pode afetar os modos de transporte utilizados e o modo de sincronização dos
dados.
3.3.1
BlackBerry Enterprise Solution
O BlackBerry Enterprise Server faz parte da BlackBerry Enterprise Solution e atua sob a proteção do firewall corporativo. O BlackBerry Enterprise Server disponibiliza um gateway para rede sem fio que viabiliza os
usuários de dispositivos BlackBerry de uma organização, o acesso ao email
corporativo e aos dados do organizador. Ele também apresenta os seguintes
recursos principais:
• criptografia e compactação de dados;
• gerenciamento de dispositivos BlackBerry e utilitários de monitoramento;
28
• gerenciamento simplificado de aplicativos e
R Java
• gateway autenticado para acesso à intranet em um BlackBerry
Application
3.3.2
BlackBerry Internet Service
Os usuários de dispositivos BlackBerry que não estiverem utilizando os
serviços do BlackBerry Enterprise Server poderão optar pelo BlackBerry
Internet Service. O BlackBerry Internet Service é um serviço de e-mail e
Internet para dispositivos BlackBerry projetado para fornecer aos usuários
entrega automática de mensagens de e-mail, acesso a rede sem fio, a anexos
de e-mail e acesso ao conteúdo da Internet. Este ambiente também apresenta suporte a conectividade HTTP direta e TCP/IP à Internet a partir de
um BlackBerry Java Application de terceiros.
3.3.3
BlackBerry MDS
Para viabilizar o acesso a recursos sob a proteção do firewall corporativo a
uma aplicação Java, o BlackBerry Enterprise Server possui o MDS(BlackBerry
Mobile Data System). O BlackBerry MDS disponibiliza proxies HTTP e
TCP/IP para aplicação, permitindo que o dispositivo BlackBerry se comunique com os servidores de aplicativos e da Web sob a proteção do firewall corporativo sem software VPN adicional. Os aplicativos que enviam
dados usando os serviços do BlackBerry Enterprise Server usufruem da
conectividade corporativa simplificada, a criptografia das informações, a
compactação dos dados e a independência da rede sem fio oferecida pela
BlackBerry Enterprise Solution. O BlackBerry MDS também dispõe de
uma interface aberta que permite, aos sistemas hospedados no servidor sob
a proteção do firewall corporativo, o envio de conteúdo aos aplicativos nos
dispositivos BlackBerry.
3.4
3.4.1
Iphone
Iphone OS
O Iphone compartilha a base de desenvolvimento com o Mac OS X [3],
facilitando assim o aprendizado para desenvolvedores Mac, havendo somente a necessidade de aprender novas tecnologias que estão disponíveis
somente para a arquitetura do Iphone contemplando as demandas do ambiente móvel, como a interface Multi-Touch e o acelerômetro.
No ambiente de produção de sistemas para o Iphone é utilizado o kit de
desenvolvimento Iphone SDK, com o qual o programa é capaz de depurar,
29
executar, testar e desenvolver as aplicações. O Xcode compreende um conjunto de ferramentas voltadas para auxiliar o desenvolvimento de aplicativos para o Iphone, capacitando a edição do código, compilação, depuração
e realização de testes até mesmo com a utilização de um simulador.
3.4.2
Camadas Tecnológicas
O kernel do sistema operacional do Iphone tem como base o Kernel do Mach
OS X e assim como este sua arquitetura se apresenta de acordo com a figura
3.1.
Figura 3.1: Camadas Tecnológicas do Iphone [3].
As camadas Core OS e Core Services compreendem interfaces essenciais para o Iphone como por exemplo, acesso a arquivos, serviços Bonjour,
sockets de rede, entre outros. A maioria dessas interfaces é codificada em
C e implementa tecnologias como CFNetwork, sockets Unix, e SQLite.
Nas camadas superiores encontramos tecnologias avançadas que usam
C-based e Objectie-C como base de suas interfaces. A camada Media utiliza
tecnologias que oferecem suporte para desenho 2D e 3D, vídeo e áudio. Continuando na camada Media verificamos a presença das tecnologias C-based
e o OpenGL ES, Quartz, Core Audio e Core Animation.
Na camada mais externa, na Cocoa Touch, temos o predomínio da utilização do Objective-C. Esta camada possui as frameworks fundamentais
que são utilizadas pelos programadores no desenvolvimento das aplicações.
Temos como exemplo de frameworks desta camada: framework Foundation
que dá suporte padrão orientado a objeto, gerencia arquivos, oferece suporte
a operações de rede, entre outros; framework UIKit que é utilizado para criação da estrutura visual do aplicativo, compreendendo classes de janelas,
controles e controladores que gerenciam os objetos. Outros frameworks
também são utilizados nesta camada fornecendo recursos para acesso aos
dados de contatos, acelerômetro e outros do hardware.
30
3.4.3
Escrevendo código para o Iphone
Um dos caminhos para o desenvolvimento de aplicações para o Iphone é a
utilização da SDK do ambiente para criação de programas orientados a gráficos que rodam nativamente na arquitetura do Iphone OS. Os aplicativos
criados e carregados no Iphone ficam na tela Home, agrupado com os outros
programas do sistema, tais como o relógio e tempo. Com a inicialização de
qualquer programa no sistema nenhum outro processo será executado em
conjunto, pois o sistema não é multithread [3].
A forma de tratamento de eventos no Iphone é bem diferente se comparada ao modelo utilizado no desenvolvimento de aplicativos para as aplicações desktops, sendo processados eventos de toque ao invés de eventos
de teclado e mouse. Familiarizando-se com o tratamento de eventos no sistema juntamente com a utilização dos frameworks Foundation e UIKit, o
programador será capaz de utilizar os principais serviços que o aparelho
dispõe sendo necessário somente em casos mais específicos estudar a utilização de outros frameworks e até mesmo recursos de camadas inferiores
para desenvolver funcionalidades específicas.
3.4.4
Primeiros Passos
O Xcode fornece templates que podem ser utilizados para desenvolvimento
de aplicações simples. Para a criação de aplicações mais complexas é necessário
que o programador reserve algum tempo para estudo da documentação
disponível. Os aplicativos mais robustos usufruem de todo o poder encontrado nas frameworks de desenvolvimento, pois com a sua utilização, a
codificação de determinados comportamentos pode ser extremamente mais
organizada e intuitiva por conta dos padrões estipulados.
A documentação essencial que todo desenvolvedor para Iphone deve possuir é encontrada na guia Cocoa Fundamentals Guide. Este guia apresenta
os conceitos da linguagem Objective-C e os padrões de projeto utilizados
pelo framework UIKit e muitos outros frameworks.
Após compreender os padrões e os recursos para programação de aplicativos para o Iphone, deve ser consultada outra documentação que é utilizada para implementação de detalhes específicos nos processos de desenvolvimento, a Application Programming Guide. Com este livro o programador encontra informações importantes que são baseadas em situações
específicas que demonstram como codificar para contornar o problema apresentado, exemplificando com exibição de interfaces para o usuário e manipulação de eventos. Esta documentação orienta de forma eficiente o desenvolvedor para que ele seja capaz de tirar proveito das principais características do Iphone OS.
31
3.5
Symbian
O Symbian OS é o sistema operacional para dispositivos móveis que tem
como principal destaque frente aos demais o fato de ser a plataforma que
está presente na maioria dos celulares e smartphones do mercado atualmente. É um sistema bastante robusto e confiável, entretanto sua complexidade torna difícil a manutenção e aprendizagem, apresentando muitos
desafios aos desenvolvedores [15]. Na figura 3.2 é apresentado as camadas
da plataforma Symbian.
Figura 3.2: Camadas da plataforma Symbian [6].
O modelo arquitetural do Symbian OS é descrito em camadas.
3.5.1
Camada de Interface com o Usuário
A camada de mais alto nível é a UI Framework Layer, ou camada de interface com o usuário que disponibiliza frameworks e bibliotecas para construção de componentes visuais de interação com o usuário.
3.5.2
Camada de Serviços de Aplicação
A camada de serviços de aplicação (The application Services Layer), provê
recursos independente da camada de interface.
Como exemplos, são disponibilizados serviços referentes a tratamento
de textos, calendário, agenda e comunicação HTTP.
As aplicações para o Symbian OS são orientadas à objetos e seguem o
modelo MVC.
Também na camada de serviços de aplicação o Symbian OS oferece suporte a Java, através da tecnologia J2ME.
32
A implementação Java é baseada em uma VM (virtual machine), um
conjunto de pacotes padrões MIDP 2.0, uma implementação da linguagem
CLDC 1.1 e uma série de plugins de baixo nível que fazem a integração do
Java com o Symbian.
3.5.3
Camada de Serviços do Sistema Operacional
Os serviços desta camada são divididos em quatro áreas:
• Operações genéricas do sistema;
• Comunicação;
• Gráficos e Multimídia e
• Conectividade.
Juntas essas quatro áreas oferecem serviços que são específicos da plataforma,
mas independentes de aplicação. Qualquer aplicação desenvolvida pode
utilizar tais serviços, mas apenas aplicações feitas para a plataforma Symbian.
3.5.4
Camada de Serviços Básicos
É a camada de software de mais baixo nível do sistema, os serviços incluem
o servidor de arquivos e a biblioteca de usuários. O modelo de persistência
e criptografia também são implementados aqui.
3.5.5
Camada de Hardware
A camada de hardware contém operações relativas a drivers de dispositivos
físicos e lógicos.
3.6
Tecnologia Java
A tecnologia Java, que foi desenvolvida e disponibilizada pela Sun em 1994,
tornou-se muito popular desde então. O sucesso dessa tecnologia é muito
grande no meio empresarial e acadêmico. Profissionais de desenvolvimento
de sistemas fazem cursos para provas de certificação que comprovem sua
proficiência na linguagem. No meio acadêmico, o ensino de Java é básico.
33
Seu sucesso se deve, sobretudo, à portabilidade de código, que permite
que um mesmo código-fonte seja usado em diferentes plataformas (desktops, servidores etc.).
A tecnologia foi desenvolvida com o intuito de criar um tipo de linguagem de programação universal, a qual poderia ser executada em qualquer tipo de sistema operacional para diversos tipos de hardware. Para isso,
a linguagem Java, quando compilada, gera um bytecode, que é lido por um
interpretador conhecido como Máquina Virtual Java (JVM). Este traduz,
em tempo de execução, as instruções para uma linguagem de máquina compatível com o tipo de processador utilizado.
Figura 3.3: A Máquina Virtual Java [26].
Assim, pode-se utilizar um único código-fonte e executar o mesmo bytecode em diversos sistemas operacionais diferentes, desde que possuam uma
JVM. Então, teoricamente, seria utilizar esse bytecode gerado em dispositivos móveis, pois eles também podem ter uma JVM instalada. Veremos
adiante que isso não é possível em razão de muitas diferenças entres os sistemas de grande poder de processamento (como servidores e computadores
desktop) e os dispositivos de computação móvel de pouco poder computacional, como telefones celulares.
34
3.6.1
Java Micro Edition
Em 1998 a Sun lançou uma tecnologia chamada de Personal Java (pJava),
voltada a dispositivos móveis e com restrições computacionais. A tecnologia funcionou bem com alguns tipos de dispositivos, entretanto, em testes
realizados com aparelhos menores, como celulares, a tecnologia não funcionava bem. Em 1999, foi lançada a J2ME, com o objetivo de permitir o
desenvolvimento de aplicativos para esses dispositivos.
Nessa plataforma, a implementação da Máquina Virtual Java é bastante reduzida. Foi necessário também reduzir os recursos da linguagem
em razão das limitações de processamento computacional dos dispositivos
[22].
A versão Java 2 Micro Edition (J2ME) tem o foco para aplicações Java
voltadas para dispositivos eletrônicos com capacidades computacionais e
gráficas reduzidas, como telefones celulares, PDAs e outros. Esta versão
tem alguns componentes que a diferenciam das demais versões do java,
a J2SE e a J2EE. A principal diferença é o uso de uma maquina virtual
denominada KVM (Kilo virtual machine), pois essa requer apenas alguns
kilobytes de memória para sua execução.
O fato de fazer parte do conjunto de tecnologias Java, a escolha da
plataforma J2ME para desenvolvimento traz como principal vantagem o
fato de o código fonte ser compilado e transformando em chamados bytecodes, e então interpretados pela JVM, e o código uma vez gerados os bytecodes qualquer maquina virtual é capaz de interpretar, fazendo assim que
o código seja independente de plataforma, em outras palavras isso permite
que uma mesma aplicação possa ser executada em uma maquina independentemente do sistema operacional que ela possua bastando para isso ter
uma maquina virtual java [26].
3.6.2
Os componentes da tecnologia J2ME
• Em primeiro lugar estão as máquinas virtuais, cada fabricante pode
desenvolver a sua de modo a atender os requisitos pretendidos pelo
pequeno dispositiv;
• As configurações: são um conjunto de classes básicas que permitem o
desenvolvimento para dispositivos com recursos limitados. São duas
as configurações definidas no J2ME: 1.CLDC Connected limited device configuration, tem o foco para dispositivos com restrições de processamento e memória; 2.CDC Connected devide configuration, foco
para dispositivos com mais recursos. Perfis: são bibliotecas de classes
Java que permitem a implementação de funcionalidades de mais alto
nível.
35
Os componentes em Detalhes:
As máquinas virtuais são de mais baixo nivel, e como não sao o foco
deste projeto não serão aprofundadas, já as configurações e os perfis que
são mais alto nível e o seu conhecimento é fundamental para o desenvolvimento de aplicações em J2ME são descritos nas próximas sessões.
• Configuracoes Uma configuracao é um conjunto minimo de APIs Java
que permitem desenvolver aplicacóes para dispositivos móveis. E as
caracteriscas básicas oferecidas por estas APIs são: suporte a linguagem de programação Java, suporte a maquina virtual e bibliotecas
básicas de Java como funções como I/O (Input/Output ou traduzindo
Entrada e saída de dados).
– CDC é voltada para dispostivos com certa capacidade computacional de processamento e memoria: - processador de 32 bits pelo menos 2MB de memoria - possuir maquna virtual java2 conexao a algum tipo de rede A CDC é baseada na versao 1.3
do java e inclui alguns pacotes da ediçao J2SE (edicao para computadores de grande porte)
– CLDC é dedicada a dispositivos que possuam algum tipo de conexao
e com recursos de processamento e memoria e capacidade grafica
bastante reduzidos. Um exemplo destes despostivos são a maioria dos telefones celulares disponíveis atualmente no mercado
brasileiro. Os dispositivos que usam CLDC devem atender os
requisitos abaixo: - ter entre 160kb e 512kb de memoria - um
processador de 16 a 32 bits com pelo menos 25Mhz de velocidade
- conexao com algum tipo de rede As funcionalidades suportadas
são: - um subconjunto da linguagem java; - suporte basico a operações de entrada e saida - suporte a acesso a redes segurança
3.7
Android
O Android é uma plataforma open source para dispositivos móveis.
Desenvolvido pela Open Handset Alliance, uma organização de 35
grandes empresas, entre elas a Google, Samsung, Motorola e LG. É
importante ressaltar que o Android não é uma plataforma de software e sim um ambiente de software que oferece diversos recursos
tanto para usuários quanto para desenvolvedores.
Nesta sessão abordaremos alguns conceitos e apresentaremos os recursos da plataforma.
36
3.7.1
Recursos
O Android SDK é o kit de desenvolvimento que disponibiliza as ferramentas e APIs necessárias para desenvolver aplicações para a plataforma
Android. Vejamos alguns dos recursos oferecidos pela plataforma:
– Application framework proporciona a reutilização e substituição
de componentes;
– Dalvik virtual machine otimizada para dispositivos móveis;
– Browser integrado baseado no Webkit engine;
– Gráficos Otimizados possui uma biblioteca 2D e 3D baseada na
especificação OpenGL;
– SQLite engine de banco de dados;
– Suporte multimídia para áudio, vídeo e formatos de imagem;
– Telefonia GSM;
– Bluetooth, EDGE, 3G e Wifi;
– Câmera, GPS e acelerômetro e
– Rico ambiente de desenvolvimento, incluindo um emulador de
dispositivo, ferramentas de depuração, memória, desempenho e
um plugin para a IDE Eclipse.
3.7.2
Arquitetura
A arquitetura foi projetada de maneira a possibilitar a reutilização
de recursos disponibilizados por outras aplicações. Esse compartilhamento otimiza o desenvolvimento de novas aplicações que necessitem
utilizar dados de aplicações do sistema, localizadas na camada Applications
[4]
.
Os desenvolvedores tem total acesso aos frameworks, APIs e bibliotecas da plataforma, o que os proporciona um rico ambiente de desenvolvimento. Uma das grandes vantagens da plataforma é o suporte a
linguagem Java, esse fator tem proporcionado uma rápida popularização, agregando muitos adeptos à comunidade.
Na figura 3.4 visualizamos os principais componentes da plataforma
Android.
37
Figura 3.4: A Arquitetura do Android [11].
3.7.3
Applications
Aplicativos que vem com o Android, como um cliente de e-mail, programa de envio de SMS, calendários, mapas (Google Maps), jogos, navegador web, contatos (o software que gerencia e mostra os contatos
do celular) e muitos outros. Vários desses foram selecionados durante
o Android Challenger, uma competição mundial que foi iniciada junto
ao lançamento da plataforma. Todas essas aplicações são escritos na
linguagem de programação Java.
3.7.4
Application Framework
A framework Application foi toda escrita em Java e todos aplicativos
que rodam no Android tem acesso as mesmas APIs que são utilizadas
pelos aplicativos padrões do sistema operacional. A arquitetura dos
aplicativos é desenvolvida para simplificar a reutilização de componentes. Qualquer aplicativo pode publicar suas capacidades (suas
funções, métodos, etc) e qualquer outro programa pode utilizá-los:
1. Views: utilizados para a construção de telas de aplicativos, tais
como: listas, grids, caixas de texto, botões e também um navegador web embutido;
2. Content Providers: permite que aplicativos acessem dados de
outros aplicativos do aparelho e também que compartilhem seus
38
próprios dados;
3. Resource Manager: provê o acesso a recursos como textos (strings),
gráficos e arquivos de layout. Cada aplicativo tem o seu organizador de recursos, o arquivo R.java;
4. Notification Manager: permite que todos os aplicativos mostrem
alertas cutominizados na barra de status;
5. Activity Manager: gerencia o ciclo de vida dos aplicativos;
6. Packet Manager: gerencia o local dos aplicativos e arquivos de
dados armazenados.
3.7.5
Bibliotecas
O Android inclui um conjunto de bibliotecas C/C++ utilizadas por vários
componentes do sistema. Os recursos providos pelas bibliotecas são
oferecidos aos desenvolvedores através do Framework. Abaixo, algumas das principais bibliotecas:
1. System C library: uma implementação derivada da biblioteca C
padrão sistema (libc) do BSD sintonizada para dispositivos rodando Linux;
2. Media Libraries: baseado no PacketVideos OpenCORE; as bibliotecas suportam os mais populares formatos de áudio e vídeo,
bem como imagens estáticas;
3. Surface Manager: gera o acesso ao subsistema de exibição bem
como as múltiplas camadas de aplicações 2D e 3D;
4. LibWebCore: web browser engine utilizado tanto no Android Browser
quanto para exibições web;
5. SGL: bibliotecas de gráficos para construção em 2D;
6. 3D libraries: implementação baseada no OpenGL ES 1.0 APIs; as
bibliotecas utilizam aceleração 3D via hardware (quando disponível)
ou o software de renderização 3D altamente otimizado incluído no
Android;
7. FreeType: impressão de fontes vetoriais ou raster;
8. SQLite: poderosa e leve ferramenta de banco de dados relacional
disponível para todas as aplicações.
3.7.6
Android Runtime
O Android inclui um grupo de bibliotecas que fornece a maioria das
funcionalidades disponíveis nas principais bibliotecas da linguagem
Java. Toda aplicação Android roda em seu próprio processo, com sua
39
própria instância da máquina virtual Dalvik [11].
O Dalvik foi escrito de forma a executar várias VMs eficientemente.
Ele executa arquivos .dex, que é otimizado para consumo mínimo de
memória. A VM é baseada em registros e roda classes compiladas pela
linguagem Java que foram transformadas em arquivos .dex, através
da ferramenta dx incluída no SDK. O Dalvik VM baseia-se no kernel
do Linux para funcionalidades subjacentes como o encadeamento e a
gestão de baixo nível de memória.
3.7.7
Linux Kernel
Utiliza a versão 2.6 do kernel do Linux, esse sistema operacional
gerencia os serviços centrais do sistema, tais como: segurança, gestão
de memória, gestão de processos, etc. O kernel também atua como
uma camada de abstração entre o hardware e o resto do software. O
código do sistema operacional é aberto e pode ser obtido no endereço:
http://git.android.com/.
3.8 Análise das Tecnologias e Seleção do
Ambiente
O Windows mobile, Iphone e o BlackBerry são plataformas proprietárias e já o Symbian, J2ME e o Android são plataformas livres que
possuem um conjunto de frameworks e ferramentas que auxiliam o
processo de desenvolvimento de aplicativos. Os aplicativos desenvolvidos para o Symbian podem ser codificados em Python ou em C++ e no
Android é utilizado a linguagem Java, mas no caso do Symbian existem alguns problemas de incompatibilidade entre sistemas por conta
das diferentes versões do sistema operacional e também pelas diferentes linguagens de desenvolvimento no ambiente. O J2ME atualmente
é um ambiente que oferece poucos recursos se comparado as plataformas atuais e gera muita incompatibilidade dos sistemas produzidos
nos diversos aparelhos existentes.
40
Capítulo 4
Estudo de Aplicações Móveis
Este capítulo apresenta um levantamento das aplicações móveis existentes no mercado procurando analisar as tecnologias utilizadas e
identificar as características das aplicações, bem como as vantagens
e desvantagens das soluções implementadas em cada aplicativo.
4.1 Sistema de Monitoração de pacientes
apoiado em web e palmtops
Esse sistema visa o monitoramento de pacientes internados no Hospital, utilizando recursos web e moveis a partir de Palmtops. Sua necessidade foi verificada a partir de um levantamento de campo realizado
em hospitais na cidade de Franca-SP. A pesquisa demonstrou que são
necessários cerca de trinta formulários para acompanhamento diário
dos pacientes internados. Devido a esta grande quantidade de documentos físicos para controle de dados dos pacientes, foi verificado a
existência de informações redundantes e uma dificuldade na recuperação dos dados[17].
As informações são transmitidas com o Palmtop para um servidor de
dados (Banco de dados Relacional) e podem ser acessadas por qualquer computador ligado a rede como por outro Palmtop. A comunicação dos aparelhos móveis com o servidor é feita através da tecnologia wi-fi, apoiada em ondas de rádio.
O sistema foi desenvolvido em Delphi 7 oferecendo recursos para acesso
aos dados pela Intra e Internet. O aplicativo web se conecta com o
servidor de dados a partir da ferramenta chamada DBExpress e para
o desenvolvimento dos recursos para o Palmtop, foi utilizado o NsBasic 3. Na figura 4.1 verificamos a interface com o usuário no disposi41
tivo móvel.
Figura 4.1: Sistema de Monitoração de pacientes - Palmtops [17].
A interface de acesso aos dados do servidor foi desenvolvida em Delphi
7, sendo que esta centraliza os serviços do sistema e é acessível tanto
pela Intranet como pela Internet. Para trabalhar com o Palmtop foi
utilizado o NsBasic 3.1 e para a conexão entre o Aplicativo WEB e o
servidor de dados foi utilizada ferramenta chamada DBExpress. Na
figura 4.2 é demonstrada a interface web para acesso aos dados.
Figura 4.2: Sistema de Monitoração de pacientes - Web [17].
42
4.2
Sistema Simplificado de Prontuário
O sistema simplificado de prontuário eletrônico do paciente, baseado
no sistema Clinic Manager da UNIFESP, é uma aplicação onde os
profissionais médicos realizam acesso à ficha do paciente através de
aparelhos smartphones (PDA com funcionalidades de telefone celular)[19].
A tecnologia de desenvolvimento adotada foi a biblioteca AppForge
aplicada a ferramenta Visual Basic. Essa biblioteca permite a geração do código do aplicativo em diferentes plataformas como Symbian
OS, Windows Pocket PC e Palm OS, sem a necessidade de efetuar alterações no código-fonte.
O intuito da aplicação é diminuir a perda de informação nos atendimentos médicos que ocorrem fora do consultório, como situações em
que o profissional médico presta auxílio ao paciente via telefone. Tornase possível através dessa aplicação obter e manter mais informações
do paciente nessas situações. Na figura 4.3 podem ser conferidas algumas telas do sistema.
Figura 4.3: Sistema Simplificado de Prontuário [19].
4.3
Aplicação HandMed
A aplicação HandMed (HM) é parte de um projeto maior denominado
GIMPA, o qual tem por intuito monitorar o paciente integrando uma
rede de sensores ao corpo humano, mantendo bibliotecas de sintomas,
Prontuários Eletrônicos, entre outros [14].
O HM está encarregado de realizar a captura automatizada desses
sintomas do paciente, com intuito de possibilitar um acompanhamento
43
e prevenção de problemas com a saúde do mesmo.
A aplicação é desenvolvida em J2ME com a API Personal JAVA na ferramenta Jbuilder, sendo os testes realizados no aparelho PDA Sharp
Zaurus SI-5500, que se baseia em uma plataforma Linux.
Parte da monitoração do paciente é feita através de formulários preenchidos pelo próprio paciente. Além disso, o sistema é alimentado por
informações fornecidas por profissionais de saúde, responsáveis pelo
paciente, entre outras pessoas envolvidas. Na figura 4.4 verificamos
alguma telas do HandMed.
Figura 4.4: Aplicação HandMed [14].
4.4 Computação Móvel e Tecnologia Web
em Sistemas de Controle Pós-Transplante
A utilização da computação móvel e tecnologia web em sistemas de
controle pós-transplante é outro exemplo de aplicação encontrada. Essa
aplicação é composta de duas partes, uma residente no PDA e outra
em um servidor de informações. Procura facilitar o acompanhamento
do paciente e centralizar a informação de forma a eliminar a redundância de dados, aumentando a segurança da informação do paciente na
situação de pós-transplante. Toda informação pertinente ao paciente
é armazenada em um servidor de banco de dados, no caso o Interbase
[17].
O funcionamento ocorre da seguinte forma: os dispositivos Palm são
carregados com as informações do paciente no início do dia e descarregados no final do turno do profissional. Para desenvolvimento da
aplicação, a parte móvel utiliza a API AppForge para Visual Basic
com o intuito de gerar uma aplicação independente de plataforma. Já
44
a outra parte foi implementada na linguagem PHP, também independente de plataforma, provendo um sistema acessível aos usuários de
qualquer computador capaz de se conectar a Internet. A cada usuário
é permitido o acesso apenas às informações dos pacientes de sua responsabilidade e proibido a alteração de informações antigas. Na figura
4.5 são apresentadas telas do projeto.
Figura 4.5: Sistemas de Controle Pós-Transplante [17].
4.5
Epocrates Essential
Uma outra solução de contexto internacional é o Epocrates Essential, um pacote de aplicativos para PDA que se compõe de serviços
de consulta, referência e apoio à decisão. Os produtos da família
Epocrates são: o Rx, o SxDx e o Lab, são guias de referências para
escolha de medicamentos, identificação de doenças e lista de sintomas
e para apoio ao diagnóstico e escolha de testes laboratoriais; respectivamente.
O aplicativo foi desenvolvido no ramo móvel para PDA nas plataformas Palm OS e Pocket PC OS. Na figura 4.6 visualizamos telas do
Epocrates Essential.
4.6
The m-learning Project
O sistema foi desenvolvido para aparelhos que são ao mesmo tempo
celular, PDA e smartphones. Aposta-se que o público entre 18 e 25
anos utilizará aparelhos desse tipo em 4 ou 5 anos [10].
45
Figura 4.6: Epocrates Essential [1].
A análise e estudos das opções de hardware e software para desenvolvimento do projeto evidenciou o acesso a internet diretamente pelos
dispositivos móveis, poderia ser feito a partir de um browser. Essa alternativa foi escolhida por resolver os problemas de portabilidade, os
PDAs, celulares e smartphones poderiam ter acesso a aplicação sem a
necessidade de implementação específica para cada plataforma.
O usuário acessa o portal, denominado mPortal, este é formado por
uma série de mini-páginas de navegação e cada uma delas oferece os
seguintes recurso:
– material de leitura;
– página de construção de ferramentas;
– ferramenta de atividade colaborativa;
– comunicação: chat, mensagens, blogs;
– sistema de gerenciamento de aprendizagem;
– guia de ajuda do sistema e
– links interessantes na web.
Na página de construção de ferramentas os usuários podem criar suas
próprias páginas. O sistema de gerenciamento de aprendizagem (Sistema tutorial) possui um repositório de materiais de aprendizagem
onde se mantém a trilha de aprendizagem do usuário. Novos módulos
podem ser escolhidos com base nas preferências e no desempenho do
usuário.
Por julgarem que no atual momento as tecnologias de desenvolvimento para dispositivos móveis não apresentam uma solução genérica
46
de modo a ser compatível com qualquer ambiente, algumas opções de
plataformas são oferecidas:
– SO Microsoft pocket pc para PDA/Celular;
– SO Sony Ericsson para PDA/celular;
– J2ME para celulares - Quiz games;
– Atividades de aprendizagem colaborativa usando a câmera dos
celulares e
– SMS
Várias pesquisas foram realizadas no Reino Unido, Suécia e Itália,
90 [10] aparelhos foram distribuídos aos estudantes a fim de descobrirem a reação a esta nova forma de aprendizagem. O entusiasmo
dos alunos e maior aprendizado colaborativo foram observados. Algumas das observações levantadas sobre o uso de aprendizagem com
dispositivos móveis foram:
– os estudantes identificaram áreas que precisam de algum suporte;
– pode ser usado para estimular o estudo individual e também experiências colaborativas;
– melhora das capacidades de leitura, cálculos e a identificar outras
habilidades;
– minimiza a resistência ao uso de novas tecnologias;
– Diminui alguns formalismos de estudantes mais experientes;
– ajuda os estudantes a manterem o foco por períodos maiores;
– melhora a auto-estima dos estudantes.
4.7 Sistema de avaliação de cursos de EAD
na UFPB
Trata-se de um projeto de suporte a avaliação de cursos de EAD (ensino a distância) realizados pela internet. Um subsistema é responsável pela aplicação de formulários que podem ser acessados e respondidos diretamente pela tela de um dispositivo móvel, como um celular,
um PDA ou um smartphone. Os formulários são gerados ainda nos
computadores desktops e em seguida convertidos obedecendo a uma
estrutura padrão, a qual o dispositivo móvel é capaz de interpretar ao
receber o arquivo. Após preenchido o formulário no PDA/celular ele é
transferido de volta para um banco de dados no computador. Segundo
[18] a utilização da computação móvel para auxiliar no acompanhamento do desempenho dos alunos nos cursos de EAD pode ser uma
47
ferramenta muito útil, já que os pequenos equipamentos estão mais
tempo com o seu usuário, seja na fila do banco, na parada do ônibus
na sala de reunião etc.
O sistema é dividido em módulos(figura 3.8) da seguinte maneira:
1. Módulo 1 - Responsável pela criação do formulário, com o cadastro das questões, seus tipos e respostas;
2. Módulo 2 - Converter os dados armazenados no banco de dados
para um layout aceito pelo dispositivo móvel;
3. Módulo 3 - Comunicação entre os dispositivos, celular x PC e
4. Módulo 4 - Interface para o preenchimento do formulário no dispositivo móvel.
Figura 4.7: Estrutura do Projeto na Universidade Federal da Paraíba [18].
A tecnologia empregada no desenvolvimento é baseada na plataforma
Java. Um sistema web feito em J2EE (Java 2 Entrepise Edition) para
ser acessado pelo computador para criação dos formulários e uma aplicação J2ME (Java 2 Mobile Edition) para rodar em um dispositivo
PDA ou um celular. A questão da aceitação é superada pelo fato da
maioria dos alunos já possuírem um celular com suporte Java.
As ferramentas que podem ser instaladas nos dispositivos móveis possivelmente terão boa aceitação por parte dos alunos que utilizam essa
tecnologia. [18]O mobile learning seria mais uma alternativa do leque
de opções para os alunos, e teria a facilidade de poder ser utilizada a
qualquer tempo, mesmo não tendo um computador disponível para realização da tarefa.
No PDA é oferecida um interface amigável ao usuário com poucas informações e de fácil preenchimento, como pode ser visto no figura 4.8.
48
Figura 4.8: Projeto na Universidade Federal da Paraíba - Tela Palmtop [18].
4.8 Homer Framework Biblioteca para coleta de dados na plataforma Symbian
Trata-se de um projeto que consiste no desenvolvimento de uma biblioteca de componentes voltados para a produção de interfaces gráficas
e transferência de dados [5]. Este foco visa facilitar o uso de smartphones para coleta de dados em campo. O sistema operacional escolhido para criação do framework foi o S60, baseado no Symbian, e a
linguagem de codificação foi Python. Na figura 4.9 e 4.10 são apresentadas algumas imagens do sistema operacional S60 a partir de um
emulador.
As características principais do framework são:
– Controles de interface com o usuário.
– Componentes de conectividade, como bibliotecas para comunicação por bluetooth, adaptadores de rede e USB. Esses componentes são usados tanto para importação quanto para exportação
de dados.
Abaixo é apresentado a estrutura dos dois componentes principais do
framework.
4.8.1
Componentes de interface com usuário
São controles gráficos para o sistema operacional S60, desenvolvidos
na linguagem de programação Python.
49
Figura 4.9: Sistema Symbian S60 3ed [5].
Figura 4.10: Sistema Symbian S60 5ed [5].
50
– HomerForm: Componente principal do framework. Sua função é
receber os controles de interface e de troca de informações. Para
a coleta de dados, o conteúdo deste formulário será transformado
em um arquivo de saída através do componente HomerOutputDatafile.
– HomerWizardForm: Extensão do HomerForm, preparado para
funcionamento como um wizard, trabalhando em vários passos
com comandos para Voltar, Avançar e Finalizar a coleta.
– HomerGPSPositionCollector: Textbox que coleta a posição corrente através do GPS. Depende de disponibilidade de recurso no
aparelho.
– HomerRequiredFieldValidator: Validador de Textbox para campos requeridos. Mostra mensagem de erro para o usuário em caso
de input nulo. Será utilizado em conjunto com o HomerSubmitCommand.
– HomerRegexValidator: Validador de Textbox contra uma expressão
regular. Mostra mensagem de erro para o usuário em caso de
input inválido. Será utilizado em conjunto com o HomerSubmitCommand.
– HomerRangeValidator: Validador de Textbox numérica para um
conjunto de valores. Mostra mensagem de erro caso o número
não esteja entre os limites impostos. Será utilizado em conjunto
com o HomerSubmitCommand.
– HomerCompareValidator: Validador de Textbox numérica para
comparação com valores. Mostra mensagem de erro caso o número
não esteja de acordo com o critério de comparação. Será utilizado
em conjunto com o HomerSubmitCommand.
– HomerMaskedTextBox: Textbox com máscara para entrada de
valores.
– HomerPhotoCollector: Componente para coleta de fotos. Depende
de disponibilidade de recurso no aparelho.
– HomerSoundCollector: Componente para coleta de sons a partir
do gravador de som. Depende de disponibilidade de recurso no
aparelho.
– HomerFilteredGrid: Extensão do grid disponível na plataforma,
com possibilidade de filtragem de conteúdo.
– HomerSubmitCommand: Comando que submete o formulário.
Aciona os componentes de validação e apenas submete o formulário
se todas as validações forem bem sucedidas. Utilizado no menu
associado às softkeys.
– HomerResetCommand: Comando que limpa todos os campos do
formulário. Utilizado no menu associado às softkeys.
51
4.8.2
Componentes de Comunicação
São os componentes utilizados para troca de informações entre o dispositivo e sistemas externos. Serão desenvolvidos de modo que no
futuro suportem novos formatos de arquivo e componentes de conectividade para saída e entrada de informações.
– HomerDataSource: Fonte de dados para componentes como ListBox, CheckBoxList, RadioButtonList e HomerFilteredGrid. Inicialmente será implementado com suporte somente a fontes de
dados XML.
– HomerFormDatafile: Componente que transforma um HomerForm em um arquivo de saída que pode ser lido por sistemas externos. Este arquivo de saída será um arquivo GZip (Algoritmo
para compressão de dados), onde há um arquivo XML com o conteúdo do HomerForm e todos os arquivos binários que forem coletados pela aplicação desenvolvida.
Com a análise realizada nos estudos de aplicações, foi verificado que a
maioria dos aplicativos possuem uma raíz proprietária não permitindo
assim que sejam utilizados como base para modelagem e desenvolvimento de novas aplicações. O caso Home Framework é uma solução
interessante pois facilita as tarefas de codificação dos programadores
além de ser uma solução livre. Mas este herda os problemas da plataforma
Symbian, como incompatibilidade de dispositivos, que continuarão sendo
um grande obstáculo no desenvolvimento de aplicativos. Por último
identificamos o software Cinq Sensus, o qual apresenta uma solução
eficiente para criação de formulários de coleta de dados, com um módulo de criação na web e outro de coleta no Palm. O Cinq Sensus
reestringe a criação de formulários somente pela Web e outro fator
negativo é o fato do sistema ser proprietário o que impede a modificação da sua estrutura para atender novas demandas pelos usuários.
4.9
Cinq Census
O Cinq Census é uma solução para desenvolvimento de questionários
e pesquisas para Palmtops. É uma ferramenta comercial de propriedade
da empresa brasileira Cinq Technologies. Os questionários são elaborados em um programa em ambiente Windows, ou seja, é necessário
o uso de um computador desktop. O questionário é então transmitido para os Palmtops, onde existe um programa que os executa para
coletar as respostas. As respostas são então transmitidas para o microcomputador para consolidação ou integração com outros sistemas
[9].
52
É possível personalizar a elaboração de questionários, pesquisas de
opinião, inspeções e coletas de informações em geral e executá-las em
um dispositivo Palmtop. Produto de fácil utilização, composto por dois
módulos, um que elabora questionários em microcomputador e outro
que os executa em Palmtops ou celulares compatíveis com J2ME.
A solução é direcionada ao usuário final, facilidade de uso, baixo custo,
permite automatizar a coleta de pesquisas de campo, check-lists no
chão de fábrica, provas/testes e muitas outras aplicações de coleta de
informações. Com o uso de celulares é possivel, inclusive, transmitir
em tempo real estas informações de coleta em campo para bancos de
dados centralizados com publicação simultânea na WEB.
Esse aplicativo sugiu após a Cinq Technologies verificar que várias
empresas clientes tinham uma necessidade comum. Então foi criado
um ambiente de desenvolvimento de questionários para os próprios
usuários criarem as pesquisas e carregarem nos PDAs. Isto evita a
necessidade de se acionar uma desenvolvedor para toda vez que houver necessidade de alterar o questionário (perguntas, respostas, etc).
O Cinq Census se destina a qualquer empresa que necessite coletar
dados em campo com precisão, flexibilidade e agilidade, como companhias que monitoram a satisfação dos clientes e as atividades da concorrência e empresas especializadas em pesquisas e marketing. Além
disto, esta solução poderá ser utilizada em qualquer empresa ou instituição que queira rapidamente elaborar um questionário e carregálo em Palmtops para coletar informações em campo e publicá-las de
forma automatizada, com segurança e rapidez.
53
Capítulo 5
O Problema
A maioria dos profissionais que trabalham em campo muitas vezes ao
estarem coletando dados se deparam com a situação na qual o software utilizado não comporta as necessidades específicas no momento
da coleta e infelizmente devido a incapacidade de customização do
sistema pelo usuário, as informações não são coletadas da maneira
correta. Isso acaba acarretando sérios problemas, como por exemplo,
perdas de informações, descentralização das informações e dificuldade
de migração das informações para outras plataformas, dificuldade de
integração dos dados.
5.1
Soluções Proprietárias
Dentre os sistemas levantados podemos destacar na área de saúde
o Sistema Simplificado de Prontuário[19], Aplicação HandMed[14],
Epocrates Essential[1]. Na área de Educação temos The m-learning
Project e Projeto na Universidade Federal da Paraíba. Mesmo com
essa grande diversidade de sistemas móveis existentes, nenhum deles citados oferece uma base de desenvolvimento que possa contornar
as dificuldaddes apresentadas pelos profissionais que trabalham em
campo pelo fato de possuírem código fechado impedindo que outros
programadores possam replicar a solução em outros setores carentes
destas tecnologia. Muitas vezes os desenvolvedores necessitam reescrever códigos preexistentes que poderiam ser reuutilizados mas devido ao seu licenciamento bloqueiam o seu reaproveitamento em outros projetos. Além do fato dos sistemas serem proprietários, os mesmo
não oferecem suporte ao usuário final da aplicação, pois mesmo que
seu código fosse aberto obrigaria usuário a ter conhecimento técnico
para modificar o seus sistemas de acordo com suas necessidades.
49
Uma ferramenta para desenvolvimento de aplicativos móveis, denominada Homer Framework, consiste no desenvolvimento de um framework para coleta de dados na plataforma Symbian que fornece recursos para otimizar o desenvolvimento de interfaces com o usuário e
facilitar a comunicação através de módulos para importação e exportação de dados. Com essa plataforma podemos superar a dificuldade
de reutilização de código pois a mesma oferece uma extensa biblioteca para abstração de funcionalidades evitando assim a reescrita
de código. Entretanto é uma solução somente para o desenvolvedor
pois não oferece meios de viabilizar ao usuário final a manipulação
do framework para desenvolvimento de seus próprios programas sem
necessidade de conhecimento em programação.
5.2
Recodificação
Com a adoção de uma solução otimizada como a utilização do Home
Framework, haveria uma redução expressiva no tempo de entrega das
aplicações facilitando assim as modificações dos sistemas, mas tal fato
não impediria a recodificação a fim de contemplar as necessidades específicas de cada sistema, que podem apresentar um dinamismo implicando em gastos desnecessários.
Atualmente o usuário final de softwares móveis é incapaz de efetuar
alterações nos sistemas que gerenciam necessitando recorrer a programadores para que sejam realizadas adaptações que atendam as
novas demandas do domínio da aplicação. Este fator é crítico em situações na qual o usuário final está em campo e não dispõe de tempo
e meio de comunicação com desenvolvedores para que seja feita as
modificações desejadas obrigando-o assim a procurar métodos suplementares que o auxilie na coleta da informação. Tal fato implica na
descentralização dos dados e pode implicar em dificuldades de integração dos dados, perda de informações e inconsistência dos dados.
A solução encontrada para o projeto foi o CinqSensus, o qual apresenta uma solução eficiente para criação de formulários de coleta de
dados, com um módulo de criação na web e outro de coleta no Palm.
O Cinq Sensus contorna o problema definido no projeto mas o mesmo
reestringe a criação de formulários somente pela Web e é um sistema
proprietário, o que impede a modificação de seu código fonte para aprimoramento de suas funcionalidades de acordo com as necessidades
dos usuários.
50
Capítulo 6
AndCollector
Para contornar os custos das alterações em sistemas móveis, é necessário
que seja utilizada uma ferramenta móvel que forneça uma interface
com usabilidade eficiente para que o programa possa ser alterado e
até mesmo criado por um usuário leigo em programação de sistemas.
Uma solução eficiente que já é encontrada no desenvolvimento de
sistemas para desktops e para web, são os geradores de aplicativos,
esses são ferramentas que proporcionam ao usuário final uma interface amigável para que seja gerenciada a criação e a alteração de sistemas da plataforma sem a necessidade de conhecimento técnico, apenas com a manipulação dos componentes do próprio gerador. Essas
ferramentas que foram abordadas no capítulo 1, como a Gas Pro e a
Maker, fornecem ao usuário a capacidade de criação de sistemas com
a utilização de dispositivos de médio e grande porte, como notebooks
e computadores de mesa, mas não viabilizam a criação de softwares
para dispositivos móveis e mesmo que tivessem recursos para implementação de sistemas móveis, o usuário final ficaria comprometido a
utilização de dispositivos maiores para desenvolvimento dos programas.
O aplicativo AndCollector tem como objetivo oferecer mobilidade a
profissionais que necessitam coletar dados em campo. Foi desenvolvido
para celulares e smartphones com a plataforma Android. Essa escolha ocorreu devido a plataforma ser baseada na linguagem Java e
por ser a primeira plataforma mobile Open Source e totalmente customizável. O desenvolvimento seguiu o padrão de arquitetura MVC
(Model-view-controller) e foi disponibilizado para a comunidade sob
licença livre com o objetivo de facilitar e estimular o desenvolvimento
de aplicações para dispositivos móveis, permitindo a adaptação da ferramenta para necessidades não previstas.
O diferencial do AndCollector é permitir que as operações sejam re51
alizadas diretamente no dispositivo móvel, sem a necessidade de um
computador para comunicação. As principais características são:
– Criação de fórmulários, com o cadastro das questões, seus tipos e
suas possíveis respostas;
– A Coleta de dados dos formulários.
Ferramentas que possam ser instaladas nos dipositivos móveis possivelmente terão boa aceitação por parte dos profissionais envolvidos
pelo fato da maioria das pessoas já possuirem celulares ou smartphones e estarem adaptadas a manipularem tais aparelhos.
Podemos encontrar uma quantidade significativa de softwares voltados para coleta de dados em campo, mas esses programas rodam em
dispositivos diferenciados, como Palmtops, PocketPC, notebooks, entre outros, sendo soluções restritas aos aparelhos dos fabricantes. Por
ser livre o Android pode ser executado em aparelhos de diversos fabricantes. O projeto foca no desenvolvimento de recursos que possam ser
utilizados na produção de softwares que ampliem os usos para coleta
de dados em campo.
6.1
Módulos
O aplicativo é constituido por dois grandes módulos: Módulo Construção e Módulo Coleta de dados, a Figura 6.1 exibe a tela inicial do
AndCollector, onde o usuário seleciona o módulo que deseja trabalhar.
Os módulos da aplicação são descritos a seguir.
Figura 6.1: Tela inicial do AndCollector
52
6.1.1
Módulo Construção
O módulo Construção permite ao usuário criar os formulários que ele
necessita para coletar seus dados. Podem ser criados diversos formulários, e estes podem não ter nenhum tipo de relacionamento. A
criação de um novo formulário ocorre de maneira simples. Toda operação é feita através de interfaces simples e intuitivas diretamente
pelo AndCollector, não sendo necessário qualquer tipo de programação
de código e por isso pode ser feito por pessoas sem conhecimento técnico. Um formulário ou Aplicação (como chamado no AndCollector)
é representado pela entidade Questionário que está dentro do pacote
br.unb.cic.android.dominio.
Para criação de um nova aplicação com um questionário para coleta
de dados o usuário deve selecionar o módulo Construção na tela inicial, será então exibida uma lista com todos os questionários já criados
anteriormente e as opções do menu apresentadas são Inserir Novo e
Buscar. Ao escolher a opção Inserir Novo, a tela de criação de um
novo formulário é exibida e nela é preciso informar um nome para o
formulário, uma breve descrição e informar se as respostas que serão
coletadas são de carácter anônimo ou não. A Figura 6.2 representa
este cenário.
Figura 6.2: Tela de criação de formulários no AndCollector
Uma vez que o usuário aciona o comando salvar, a aplicação criada é
listada na tela inicial do módulo Construção juntamente com todas as
demais Aplicações já criadas anteriormente. Cada dado que precise
ser coletado em um formulário deve ser cadastrado como uma entidade questão.
Para criação de uma questão o usuário deve acessar sua aplicação
na tela inicial do módulo Construção que exibe a listagem de aplicações criadas. A tela de edição da aplicação é exibida, essa tela tem
os mesmos campos ilustrados na Figura 6.2 porém já apresenta os
campos preenchidos e no lugar do botão salvar apresenta o botão edi53
tar e as opções do menu são Adicionar Questão e Visualizar Questões.
Ao escolher a opção Adicionar Questão é apresentado a tela de cadastro de questão. Cada Questão tem uma referência ao Questionário
ao qual foi adicionada e um tipo, identi?cado pelo enum TipoQuestao
e pode assumir os valores SIM OU NAO, MULTIPLA ESCOLHA ou
ABERTA. A Figura 6.3 exibe a tela de cadastro de questões no AndCollector.
Figura 6.3: Tela de cadastro de questões no AndCollector
Outra entidade do pacote de dominio do AndCollector é Resposta,
que armazena as possíveis respostas de uma determinada questão, no
caso de uma Questao do tipo MULTIPLA ESCOLHA, para cada possível resposta informada pelo usuário é salvo um registro Resposta,
no caso de uma Questão do tipo SIM OU NAO a aplicação salva automaticamente as duas respostas e para o tipo ABERTA não é salva
nenhuma Resposta no momento da criação da Questão. Cada Resposta tem referência a Questao a qual foi adicionada, uma descrição
que é o texto visível na tela do programa, um identi?cador de resposta
certa para ser usado por Aplicações do tipo avaliação de conhecimento
e ainda um campo justi?cativa.
Cada classe de domínio tem uma tabela correspondente no banco de
dados que possui uma coluna correspondente a cada atributo.
6.1.2
Módulo Coleta de Dados
O Módulo Coleta de Dados possibilita ao usuário a execução da coleta de dados em si, uma vez criada a Aplicação com o cadastramento
dos dados necessários, no Módulo Coleta de Dados é possível coletar os dados navegando por todas as questões da Aplicação. Como
para cada questionário podem ser feitas diversas coletas, como no caso
de pesquisas de opinião com ?ns estatísticos, existe a entidade ColetaQuestionario, esta possui um identi?cador do Questionário, o nome
54
do entrevistado para o caso de uma coleta não anônima e a data da
coleta que é salva automaticamente pelo sistema. Para cada dado coletado, ou seja a resposta dada para a questão, é salvo no banco de dados um registro na tabela ColetaResposta. Esse registro é composto
por um identi?cador para o seu ColetaQuestionario e outro identificador para a questão. Um identificador é associado a resposta escolhida para o caso de uma questão do tipo MULTIPLA ESCOLHA.
Por último, respostaAberta é um atributo texto para ser utilizado em
questões do tipo ABERTA. A Figura 6.4 exibe uma tela do módulo coleta de dados para uma questão do tipo certo errado.
Figura 6.4: Tela de coleta de dados no AndCollector
Uma vez que os dados referentes a coleta estão salvos no banco de
dados é possível utilizá-los para análise. Para ser possível ver a consolidação dos dados no próprio AndCollector é necessário o desenvolvimento de um outro módulo que apresente os resultados de acordo com
o desejado, ou ainda pode-se pensar em um sistema externo (web ou
desktop) que recebe de alguma forma os dados exportados pelo AndCollector.
6.2
Modelo de dados
A Figura 6.5 representa o MER (modelo entidade relacionamento)
definido para o desenvolvimento da aplicação. O banco de dados utilizado é o Sqlite3 [7], que é o banco de dados relacional embarcado
disponível na plataforma Android. As cinco tabelas armazenam todas as informações referentes tanto a construção de questionários
e formulários como a execução da coleta e obtenção das respostas.
As tabelas Questionario, Questao e Respostas armazenam os dados
55
cadastrados no momento da construção de um novo fomulário, enquanto as outras duas tabelas armazenam informações referentes às
coletas em si. Um registro da tabela ColetaQuestionario é criada no
momento em que um questionário é selecionado no módulo Coleta de
Dados e armazena o nome do entrevistado e a data na qual foi realizada a coleta, possui como chave estrangeira o id do questionário que
está sendo respondido. A tabela ColetaResposta armazena registros
referentes às respostas dadas a cada questão de um fomulário.
Figura 6.5: Modelo Entidade Relacionamento da Aplicação
6.3
6.3.1
Considerações
Viabilidade Econômica
As demais plataformas móveis existentes (Palms, por exemplo) são
sempre limitadas devido a restrições impostas pelo ambiente como por
exemplo, incompatibilidade de softwares entre as versões do sistemas
operacionais dos dispositivos. Uma vez feita a escolha da tecnologia de
desenvolvimento, existe o risco de rápida obsolescência, como é o caso
da tecnologia J2ME. O Android é uma tecnologia móvel em ascenção
que tem como base um grande acordo comercial para aprimoramento
do seu projeto. O sistema operacional da Google já possui várias ferramentas para desenvolvimento de sistemas, como por exemplo, plugins de codificação e emuladores acoplados ao Eclipse ou NetBeans, e
56
uma grande comunidade de desenvolvedores. Considerando que algumas ferramentas de desenvolvimento são free, como o Eclipse, o projeto apresenta um baixo custo tanto de aperfeiçoamento do gerador
quanto de utilização pelo fato de ser um sistema livre. Considerando
a robustez da plataforma Android, a promessa que esse sistema operacional representa, o código fonte aberto, a utilização free do gerador e
o fato de que os smartphones têm se tornado comuns e relativamente
baratos, é perceptívil as vantagens econômicas oferecidas pela ferramenta AndCollector.
6.3.2
Viabilidade Técnica
Além do desenvolvimento de aplicações, a plataforma Android possibilita o acesso a funcionalidades do aparelho como recursos de áudio e
vídeo. Assim é possível criar, além de formulários de entrada de dados,
componentes que capturem informações importantes e que não necessariamente estariam vinculadas à coleta de dados. Existem várias
comunidades de programdores e uma extensa documentação sobre desenvolvimento na plataforma Android para que mais desenvolvedores
venham participar no desenvolvimento de novas funcionalidades para
o AndCollecor. Outro fator importante é o fato da código ser aberto,
pois desta forma os programadores podem estudar o código fonte para
modificação do gerador de acordo com as necessidades dos usuários.
6.3.3
Vantagens
– A Open Handset Alliance é um grupo de empresas de tecnologia
liderados pela Google, eles são os responsável pela criação do Android e investe na melhoria da plataforma;
– O Android não é restrito a nenhum fabricante de celulares;
– Possuir um banco de dados relacional embarcado, facilitando a
persistência dos dados e a integração com outros sistemas.
– Devido ao sistema operacional ser Open Source pode permitir que
fabricantes de hardware para dispositivos móveis consigam reduzir o custo de seus produtos. Desta forma principalmente as
operadoras de telefonia celular poderão cobrar menos e assim oferecer planos e pacotes mais interessantes para diversas empresas
que pretendem se automatizar e não o fazem em razão do custo
do dispositivo móvel.
– Para empresas que possuem sua própria área de desenvolvimento,
trabalhar com o Android proporcionará uma grande redução no
custo das ferramentas de desenvolvimento bem como na redução
57
na compra de componentes de terceiros já que como o código é
aberto ficará mais fácil e acessível a todos os desenvolvedores as
nuances do SO.
– O sistema operacional do Google para celulares, o Android, aproveitase do software livre e da comunidade de desenvolvedores para
obter sucesso. A plataforma tem código aberto baseado em Java
e já conta com vários programas desenvolvidos por terceiros.
– Cada vez mais celulares de diferentes marcas são lançados (além
de HTC, Huawei e Samsung, pelo menos LG e Motorola têm aparelhos) com o sistema, o que deve impulsionar o uso e as vendas.
– De acordo com o estudo da Strategy Analytics, num prazo de até
três anos, o Android - que em março, nos Estados Unidos - empatou com o Palm - estará com uma boa posição no ranking global
do mercado de smartphones.
6.3.4
Desvantagens
– A tecnologia Android ainda é recente e o número de aparelhos
disponíveis no mercado é reduzido;
– Devido a baixa oferta de aparelhos o preço ainda é elevado;
58
Capítulo 7
Avaliação da ferramenta
AndCollector
Este capítulo apresenta os resultados obtidos com as pesquisas de
aceitação da ferramenta AndCollector nas diversas áreas em que foi
aplicado. Foram realizadas entrevistas qualitativas para avaliar o
grau de aceitação e facilidade de uso do sistema. As entrevistas foram
gravadas e as respostas foram analisadas a partir de um roteiro padronizado
de perguntas com o propósito de agrupar os fatores positivos e negativos que foram apresentados.
7.1
Roteiro da entrevista
Foram selecionadas áreas diversificadas de utilização para demonstrar o caráter genérico da ferramenta, enfatizando o potencial do gerador para contornar problemas de coleta de dados em variadas situações. As entrevistas foram realizadas com profissionais da área de
medicina, educação física, agronomia, biologia e geografia. Os tópicos
abordados nas entrevistas foram:
– Verificar a necessidade de coletar dados em campo e áreas de aplicação potencial;
– Tipos de informações coletadas nas atividades em campo;
– Meios utilizados para coletar dados;
– Dificuldades que os meios utilizados apresentam;
– Verificar se ocorre o uso de tecnologia móvel para coleta de dados;
– Apresentar a ferramenta AndCollector e fornecer orientação na
sua utilização;
– Levantar as facilidades e dificuldades encontradas no uso do gerador de aplicativos e questionar se o entrevistado a utilizaria;
59
– Analisar junto ao entrevistado sobre a aceitação da ferramenta
no seu trabalho e
– Quantificar a usabilidade e utilidade da ferramenta com o profissional entrevistado.
7.2
Entrevistas
Foram realizadas sete entrevistas nas quais foram gravadas todas as
respostas dos entrevistados. Um roteiro pré-definido foi padronizado.
As áreas de atuação profissional dos entrevistados são:
– Medicina;
– Agronomia;
– Biologia;
– Educação Física e
– Geografia.
Nas entrevistas realizadas com as pessoas da área de saúde verificouse que eles necessitam deste tipo de solução, pois em muitos casos
são feitos atendimentos a domicílio e o único meio atual para registro de dados para o paciente é o papel e caneta. Uma dificuldade
que foi comum para dois entrevistados de medicina é o fato do manuseio do prontuário físico, pois este muitas vezes precisa ser levado
para atendimento fora do hospital e não existe uma forma eficiente
de compartilhamento do mesmo entre os médicos. Os médicos entrevistados acharam importante a utilização desse tipo de ferramenta
na área, pois o uso deste tipo de ferramenta no serviço aumentaria
a praticidade dos processos e integraria de maneira eficiente as informações. Ambas as entrevistas foram questionadas adversidades
quanto ao preço dos aparelhos com o Android e também questões de
falha operacional do sistema.
A entrevista realizada com o profissional da área Agronomia evidenciou a necessidade deste tipo de tecnologia, pois as atividades de coleta realizadas em campo utilizam o meio básico, o papel e a caneta,
para registrar informações. Essa coleta de dados com papel é extremamente desvantajosa para esses profissionais devido ao seu domínio de
aplicação, pois em uma atividade de coleta no solo este material pode
ser facilmente danificado o que comprometeria parcialmente ou completamente a análise do local de estudo. Alguns exemplos interessantes de aplicação da ferramenta AndCollector na Agronomia que foram
ressaltados pelo estudante Ricardo são: acompanhamento de melhoramento do solo com a utilização de determinadas concentrações de
60
químicos específicos e levantamento de pragas na lavoura. O entrevistado questionou sobre o preço dos aparelhos e também sobre a necessidade de um conhecimento prévio para manipulação tanto do sistema
operacional quanto do gerador de aplicativos. Apesar dos entraves o
entrevistado reconheceu que é uma tecnologia de extrema utilidade
para sua área profissional e acredita que as dificuldades não são significativas se comparado as vantagens que tecnologia pode oferecer.
Na área de Biologia foi possível verificar que existem situações que a
tecnologia móvel seria uma solução ideal para execução de determinadas atividades em campo, como por exemplo, o acompanhamento
do número de representantes de uma espécie em uma determinada
área de análise. Outro exemplo importante foi a utilização da ferramenta para análise da biodiversidade de uma determinada área.
Uma questão importante que foi levantada e que futuramente pode
ser implementada é a capacidade do sistema no compartilhamento de
dados em tempo real, para que os biólogos que estejam trabalhando
em campo possam enviar informações para o laboratório através de
alguma rede e com isso seriam feitas análises aprimoradas para que
novos procedimentos fossem repassados em uma margem inferior de
tempo. Aspectos negativos importantes com relação a custo e manuseio do aparelho também foram novamente levantados demonstrando
assim que esta é uma complicação comum para todas as áreas estudadas. Com relação as vantagens foram observados argumentos comuns como a organização e digitalização dos dados. A aceitação da
ferramenta é uma questão de divulgação da solução e política. Os representantes e líderes conservadores de laboratórios poderão ser substituídos por profissionais modernos que valorizem a tecnologia.
Na área de educação física uma boa parte das atividades realizadas
é em campo. Por exemplo, o acompanhamento dos atletas ou alunos
envolvidos nos treinamentos. Nessa área foi identificada a tecnologia
móvel com a utilização de relógios específicos que são capazes de registrar diversos dados para acompanhamento de desempenho de atletas. Esses relógios são muito eficientes, mas ainda são muito caros
e apresentam uma interface ruim para inserção de dados. Preocupações demonstradas com relação ao preço de celulares com Adroid
e complicações que poderiam surgir com bateria descarregada foram
identificadas. Destacou-se como vantagem principal a questão do sistema ser livre, pois ele já trabalhou em algumas academias nas quais
eram utilizados sistemas proprietários de alto custo para especificar
treinamentos e coletar dados de desempenho. Assim como os outros
entrevistados avaliou-se positivamente a ferramenta acreditando que
esta será até mais utilizada do que os relógios atuais, pois é capaz
de modelar formulários específicos para coleta com a utilização de
questões abertas, opção que não é disponível para os relógios. Ou61
tras vantagens importantes levantadas são: os celulares possuem um
teclado que otimizaria a inserção de dados pelo treinador; caso existam aparelhos mais baratos que os relógios, estes seriam as soluções
idéias para coleta de dados. Com relação à aceitação no mercado o estudante acredita que se a ferramenta tiver custos acessíveis, esta será
difundida entre a comunidade de profissionais da área rapidamente.
Na área de Geografia a ferramenta também possui um extenso campo
de atuação. Identificou-se que os profissionais necessitam coletar os
mais diversificados tipos de informações possíveis devido aos diferentes domínios que esta ciência abrange. Situações como coleta de dados
sobre estrutura do relevo, clima, análise hidrográfica, entre outros,
podem usufruir da ferramenta para digitalização das informações que
devem ser armazenadas e analisadas. O meio comum utilizado continua sendo o papel e a caneta, o que pode comprometer a informação
devido a fragilidade do material. Vantagens como digitalização dos dados e capacidade de criação instantânea de formulários foram citadas.
A desvantagem levantada consistiu no custo para adquirir um aparelho com Android.
7.3
Análise das Entrevistas
Das entrevistas realizadas foram selecionadas vantagens e desvantagens comuns para as diferentes áreas analisadas com o propósito de
verificar o grau de aceitação da ferramenta por profissionais de diversas áreas.
As desvantagens comuns para a maioria das áreas analisadas foram:
custo para obtenção de smartphones que possuam o Android como sistema operacional; necessidade de conhecimento prévio para manuseio
tanto do sistema operacional quanto do aplicativo gerador; risco de
interrupção do serviço de coleta com o descarregamento da bateria.
Com relação ao custo de um aparelho devemos ressaltar que os primeiros
aparelhos que estão chegando ao mercado são modelos mais avançados que possuem interface touch screen e ao mesmo tempo possui um
teclado retrátil para facilitar a inserção de dados, chegando a custar
mais de mil reais.
O Android é um sistema operacional que comporta aparelhos que possuem interface somente com teclado, touch screen ou as duas interfaces. Aparelhos mais simples que compreendem somente uma interface de comando estarão chegando ao mercado e terão valores bem
62
mais acessíveis. O sistema AndCollector foi desenvolvido com foco
na interface de teclado para que seja utilizado em todos os aparelhos que possuam o Android como sistema de controle. Como qualquer outro sistema é necessário que seja realizado um treinamento
básico para que a pessoa seja capaz de utilizar os recursos do aparelho e dos aplicativos existentes. Boa parte dos usuários consegue
contornar esse problema com apenas alguns dias de reconhecimento
dos recursos do dispositivo por se tratar de algo simples. O problema
de descarga da bateria pode ser facilmente contornado com a compra
de baterias reservas para o aparelho.
As vantagens comuns identificadas são: digitalização das informações
evitando perda de tempo para realizar este procedimento posteriormente; integridade da informação; possível integração do sistema com
outros aplicativos. Além das vantagens apresentadas podemos verificar na figura 8.1 o nível de usabilidade e utilidade atribuído a ferramenta pelos profissionais.
Figura 7.1: Usabilidade e Utilidade da ferramenta AndCollector
Apesar das dificuldades apontadas podemos supor que essas poderão
ser minimizadas e quando comparadas com as facilidades que a ferramenta pode oferecer. Nas entrevistas os profissionais identificaram
adversidades, mas asseguraram que as vantagens se sobresaem. As
aplicações sugeridas e criadas nas entrevistas com a ferramenta AndCollector confirmaram que usuários leigos podem criar seus aplicativos específicos para coleta de dados em campo mesmo sem conhecimento técnico de programação.
Enfatizamos que o gerador AndCollector é uma ferramenta que exige
um pequeno conhecimento para manipulação do aparelho e do aplicativo mas, como foi confirmado pelos entrevistados, com uma pequena
orientação qualquer indivíduo com um simples grau de instrução estará capacitado para criar seus próprios aplicativos de coleta.
63
Capítulo 8
Conclusão
No que tange a implementação do software gerador de aplicativos no
Android, foi concluído o desenvolvimento de um sistema gerador de
formulários na arquitetura Android que se demonstrou eficaz, nos estudos de casos realizados, na capacitação de usuários leigos na criação de aplicativos específicos de coleta de dados. De acordo com
a avaliação realizada pelos entrevistados nos casos aplicados verificamos a aceitação da ferramenta pelos profissionais abordados que
confirmaram a importância do software para as necessidades de suas
áreas de atuação. A avaliação final da ferramenta vislumbrou a facilidade de incorporação da solução nas mais diversas áreas, confirmando
sua utilidade e usabilidade.
O AndCollector é um software livre sob licenciamento GPL e esperase a sua difusão e aprimoramento devido a quantidade de desenvolvedores do movimento de software livre. O código fonte do gerador pode
ser adquirido no Source forge a partir do link https://sourceforge.net/
projects/andcollector. Foram realizadas divulgações nas seguintes comunidades de desenvolvimento no Android: Android Community, Android Developers, Portal Android, Android Pro e AndroidPT. O projeto
tem o intuito de criar uma rede de desenvolvimento, a fim de aprimorar suas funcionalidades e contemplar novos módulos que ofereçam componentes de comunicação, integração com outros sistemas e
que possam contribuir com o seu desenvolvimento.
8.1
Trabalhos Futuros
A ferramenta AndCollector é apenas um protótipo inicial, é necessário
que o mesmo seje aprimorado e que novos módulos sejam implementados para comtemplar funções importantes que venham oferecer controle maior das informações coletadas pelos aplicativos criados. Entre
64
os trabalhos importantes que visam aprimorar a ferramenta podemos
citar:
– Módulo de comunicação para transferência dos dados coletados
para outro ambiente, web ou desktop;
– Módulo de análise estatística para o AndCollector;
– Sistema web ou desktop integrado com a ferramenta AndCollector, tanto para análise das informações quanto para criação de
aplicativos;
– Módulo para transferência de dados em várias interfaces, USB,
bluetooth, wifi;
– Módulo para controle de versão dos aplicativos criados;
– Módulo para recuperação das respostas e edição das mesmas.
65
Referências Bibliográficas
[1] Eprocates essencial. http://www.pdamd.com/home, 2006.
[2] Blackberry java development environment. http://docs.
blackberry.com/pt-br/developers/deliverables/
8882/BlackBerry_Java_Development_Environment-4.7.
0-PT.pdf, 2009.
[3] Developer iphone. http://developer.apple.com/iphone/
gettingstarted/docs/iphoneosoverview.action, 2009.
[4] Documentação oficial android. http://code.google.com/
android/intro/index.html, 2009.
[5] Homer framework - project home. http://code.google.com/
p/homerframework/, 2009.
[6] Intrinsyc.
http://www.intrinsyc.com/os_expertise/
symbian.aspx, 2009.
[7] Página oficial do sqlite. http://www.sqlite.org/, 2009.
[8] Windows mobile developer center. http://msdn.microsoft.
com/pt-br/windowsmobile, 2009.
[9] Cinq census. http://www-304.ibm.com/jct09002c/gsdod/
solutiondetails.do?solution=408&expand=true&lc=
pt-BR, Acessado em 22 de janeiro de 2009.
[10] Jill Attewell. The m-learning project. Technical report, Technology Enhanced Learning Research Centre, 2004.
[11] Ed Burnette. Hello, Android: Introducing Google’s Mobile Development Platform. O’Reilly, 2008.
[12] Marcelo Mrack Diego Moreira. Sistemas dinâmicos baseados em
metamodelos. 2008.
[13] Alexandre Rodrigues Gomes. Ubiquitos uma proposta de arquitetura de middleware para a adaptabilidade de serviços em
sistemas de computação ubíqua. Master’s thesis, Universidade
de Brasília, Brasília, Brasil, 2007.
66
[14] Erika C. Figueiredo F. A. O. Nascimento1 A. F. Rocha1 H. S. Carvalho L. S. S.Castro1, Henrique J. P. Branisso. Handmed um
sistema móvel integrado para captura automática de sintomas.
Technical report, Universidade de Brasília, Brasília, Brasil,
2004.
[15] Roger Lee. Software Engineering Research, Management and Applications. Springer, 2008.
[16] Karen Swan Mark van’t Hooft. Ubiquotous Computing in Education. Routledge, 2006.
[17] Renato Bonellis Willian Pires da Silva Marília Pinheiro,
Reinaldo A de Carvalho. Sistema de monitoração de pacientes
apoiado em web e palmtops. Technical report, Centro de Ciências das Imagens e Física Médica da Faculdade de Medicina de
Ribeirão Preto da Universidade de São Paulo, Ribeirão Preto,
Brasil, 2004.
[18] Álvaro Francisco de C Medeiros Nisston Moraes Tavares de Melo.
A utilização da computação móvel para auxiliar na avaliação dos
cursos em EAD: Implementação de um subsistema para aplicação
de formulários. 2008.
[19] Dr. Daniel Sigulem Paulo Salomão. Utilização do computador de
mão integrado à telefonia celular no atendimento médico: Desenvolvimento de sistema e avaliação. Technical report, Universidade Federal de São Paulo, São Paulo, Brasil, 2004.
[20] Cristhian Robottom Reis. Caracterizacão de um processo de software para projetos de software livre. Technical report, Universidade de São Paulo, São Paulo, Brasil, 2003.
[21] Amir Mostafa Saleh. Adoção de tecnologia - um estudo sobre o
uso de softwares livres na empresa. Technical report, Universidade de São Paulo, São Paulo, Brasil, 2004.
[22] Lucas Ortega Díaz Sergio Gálvez Rojas. Java a Tope: J2me (java
2 Micro Edition). Universidad de Málaga, 2006.
[23] Mark Weiser. Some computer science issues in ubiquitous computing. CACM, 1993.
[24] Mark Weiser. The world is not a desktop. Perspectives article for
ACM Interactions, 1993.
[25] Mark Weiser. Ubiquitous computing. http://www.ubiq.com/
hypertext/weiser/UbiHome.html, 2009.
[26] Michael Juntao Yuan. Enterprise J2ME: developing mobile Java
applications. Pearson Education Inc., 2004.
67