abrir - dpi@ufv

Propaganda
UNIVERSIDADE FEDERAL DE VIÇOSA
CENTRO DE CIÊNCIAS EXATAS E
TECNOLÓGICAS
DEPARTAMENTO DE INFORMÁTICA
Pizzaria Manão
Emilio Gonçalves
Fabrício Luís Santos da Silva
Filipe Ribeiro Nalon
Leonardo Vieira Dos Santos Reis
41281
50293
50295
50264
Documentação do Projeto realizado na
Disciplina INF 492 – Computação Móvel
VIÇOSA
MINAS GERAIS – BRASIL
MARÇO/2007
Sumário
Sumário
1. Introdução
2. Motivações
3. Objetivos
4. Tecnologias e Ferramentas Utilizadas
5. Decisões de Projeto
6. Telas da Aplicação
7. Dificuldades Encontradas
8. Conclusões
9. Agradecimentos
10. Referências Bibliográficas
02
03
04
06
07
10
12
16
17
18
19
2
1. Introdução
Esse documento tem por finalidade descrever o projeto final da disciplina INF 492
(Computação Móvel) lecionada no segundo semestre de 2006, contendo as motivações,
tecnologias utilizadas, dificuldades encontradas e soluções para a implementação do mesmo.
O projeto tem como finalidade desenvolver uma aplicação para dispositivos móveis,
com objetivo de colocar em prática o aprendizado visto em aula e de trazer um nova realidade
para os alunos do curso de Ciência da Computação, a de desenvolver software baseado em
algum tipo de restrição seja esta a de memória, linguagem ou até mesmo de tecnologias pouco
difundidas.
Neste projeto foi desenvolvida uma aplicação para PDA cujo objetivo é atender
pedidos dos clientes de uma determinada pizzaria de forma automatizada. Desta forma o
cliente poderá fazer seu pedido sem a necessidade de um garçom. Para isto basta-se o cliente
sentar-se à mesa, analisar o cardápio e envia através de um PDA o que deseja consumir à
cozinha. O cliente também finalizará a sua conta através do PDA
3
2. Motivações
2.1 Aplicações para dispositivos móveis
Os sistemas de computação e os sistemas de comunicação estão se tornando cada vez
mais interdependentes, e isto já está evidente em muitas áreas da sociedade. Essa tendência
força a comunidade de computação não só a desenvolver sistemas inovadores, mas também a
redefinir os sistemas existentes em termos dos papéis que estes representam. O que nos
conduz a uma faixa de novas perspectivas e exploração de novos paradigmas para o
desenvolvimento da próxima geração de sistemas. Destes, salienta-se o desenvolvimento de
sistemas em escala global e sistemas cujas arquiteturas são dinâmicas e adaptativas.
Dentro deste contexto, a computação móvel está aumentando em importância e
presença. Esse desenvolvimento é o resultado de avanços tecnológicos em muitos domínios.
Prevê-se que redes de comunicação sem fio combinada com o desenvolvimento de
computadores portáteis (notebook, PDA) permitirão ao usuário deslocar-se junto com seu
ambiente computacional e ter um acesso constante às fontes de informações.
Nesta perspectiva, aplicações móveis, executando em diferentes ambientes, trazem
novos desafios para prover a funcionalidade que os usuários móveis esperam obter do
sistema. O dinamismo fornecido pelo ambiente permite ao usuário deslocar-se enquanto a
aplicação continua em execução. Durante o deslocamento, as aplicações estão sujeitas a
importantes variações no ambiente de execução (banda, latência, serviços, etc...), as quais
devem ser absorvidas por um comportamento adaptativo.
A complexidade inerente deste ambiente, heterogêneo, dinâmico e adaptativo, induz à
necessidade de se prover suporte para o desenvolvimento de aplicações, tanto no nível de
runtime quanto no de ferramentas, modelos, linguagens e metodologias de programação.
Sistemas atuais para desenvolvimento de aplicações móveis são específicos de um
domínio de aplicação, como acesso a dados multimídia, tornando-os difíceis de serem
reutilizados para o projeto de outras aplicações.
2.2 Aplicação para móvel para uma pizzaria
Quando um cliente entra uma determinada pizzaria (ou qualquer outro tipo de
comércio que necessite de garçons para atender clientes) ele se acomoda sentando em uma
mesa, escolhe através do cardápio o que ele deseja consumir e em seguida chama o garçom
4
para requisitar o seu pedido. No entanto este processo de chamar o garçom muitas vezes é
dispendioso, pois poderão ocorrer momentos em que nenhum garçom esteja por perto e
acessível, deixando o cliente incomodado e fará que o seu pedido seja atrasado já que sem o
garçom a cozinha fica incapaz de receber a sua solicitação.
Em uma pizzaria com muita demanda de clientes este processo se tornará mais caro,
pois a pizzaria necessitará de mais garçom para atender todos os clientes em um tempo
razoável, porém, podendo ainda, mesmo com uma boa quantidade de garçons, deixar alguns
clientes insatisfeitos.
2.3 Conclusão
Visto que neste processo do cliente fazer o pedido e ser entregue à cozinha, o garçom
exerce somente o papel de meio de transporte para fazer a comunicação entre o cliente e a
cozinha e considerando o avanço e a crescente utilização de dispositivos móveis e redes sem
fio, entende-se que este processo pode ser automatizado utilizando um meio de comunicação
mais eficiente e dispositivos móveis, minimizando o tempo de atendimento ao cliente,
deixando-os mais satisfeitos, e reduzindo custos com garçons.
5
3. Objetivos
Este projeto tem como objetivo desenvolver um aplicativo para dispositivos móveis
(para um PDA) cuja finalidade é automatizar o processo de pedidos, visando otimizar e
melhorar a qualidade do atendimento aos clientes da pizzaria.
Este trabalho também tem como objetivo estabelecer um primeiro contato, a todos
elementos do grupo, com o desenvolvimento de uma aplicação voltada para dispositivos
móveis.
6
4. Tecnologias e Ferramentas Utilizadas
4.1
Wireless Fidelity – Wi-FI
O Wi-Fi é a tecnologia de interconexão entre dispositivos sem fio mais popular do
momento, a transmição dos seus dados ocorre via rádio. Desde que foi aprovado pelo IEEE
(Institute of Eletrical and Eletronics Engineers) em 1996, o padrão de rede sem fio Wi-Fi
(802.11), bem como sua popularidade, tem crescido de forma surpreendente.
Muitos se referem (erroneamente) ao Wi-Fi como uma tecnologia móvel, sendo esta,
na verdade, está na categoria de tecnologias sem fio ou semi-móveis, já que a sua
(semi)mobilidade existe apenas dentro dos limites da rede sem fio local.
O Wi-Fi tem algumas variações principais:
802.11b - a mais difundida no momento, opera na faixa de frequência não
regulamentada de 2.4GHz e com taxas de transferência de até 11Mbps;
802.11a - opera em 5.0GHz (também não regulamentada) permite taxas de
transferências bem maiores, de aproximadamente 54Mbps;
802.11g - além de permitir taxas de transferência de até 54Mpbs, ele também opera
em 2.4GHz.
Um dos assuntos mais discutidos e polêmicos em torno do Wi-Fi é a questão da
segurança, que acontece muitas vezes por causa da utilização do espectro rádio-elétrico. Para
garantir um nível maior de segurança, é necessário se proteger com formas de encriptação,
filtros e chaves de segurança, evitando assim que intrusos tenham acesso ao seus dados mesmo que a pessoa esteja dentro da área de cobertura do sinal. No entanto, chaves do tipo
WEP não são muito seguras, pois podem ser facilmente "quebradas" por pessoas que tenham
algum conhecimento sobre o assunto. O ideal é usar encriptação do tipo WPA, que dão uma
segurança maior.
4.2
J2ME
O Java Plataform, Micro Edition (Java ME) ou J2ME É uma tecnologia que
possibilita o desenvolvimento de software para sistemas e aplicações embarcadas, ou seja,
toda aquela que roda em um dispositivo de propósito específico, desempenhando alguma
tarefa que seja útil para o dispositivo.
7
É a plataforma Java para dispositivos compactos, como celulares, PDAs, controles
remotos e uma outra gama de dispositivos. Java ME é uma coleção de APIs do Java definidas
através da JCP (Java Community Proccess).
A comunidade JCP adotou duas abordagens para especificar as necessidades dos
pequenos dispositivos - a sua arquitetura computacional.
Primeiro eles definiram o ambiente de execução Java (do inglês Java run-time
environment) e um conjunto de classes básicas, chamadas de core, que operam sobre cada
dispositivo. Isso foi denominado Configurações (do inglês Configurations). Uma
configuração define a JVM (Java Virtual Machine) para um pequeno e específico dispositivo
computacional. Há duas configurações para um dispositivo embarcado, uma para dispositivos
com maior capacidade computacional (do inglês High-end consumer devices), denominado
CDC (Connected Device Configuration). A outra com menor capacidade computacional (do
inglês Low-end consumer devices), denominado CLDC (Connected Limited Device
Configuration), esta é usada para celulares e PDAs.
A segunda abordagem foi definida como um perfil (do inglês profile). Um perfil
consiste em um conjunto de classes que possibilita os desenvolvedores de software
implementar as aplicações de acordo com as características das aplicações dos pequenos
dispositivos computacionais. Foi denominado o MIDP (Mobile Information Device Profile),
oferecendo recursos como rede, componentes de interface, armazenamento local, etc.
4.3
Netbeans
A Netbeans IDE é um ambiente de desenvolvimento - uma ferramenta para
programadores, que permite escrever, compilar, debugar e instalar programas. A IDE é
completamente escrita em Java, mas pode suportar qualquer linguegem de programação.
Existem também um grande número de módulos para extender a IDE NetBeans. A NetBeans
IDE é um produto livre, sem restrições de como ele pode ser usado.
O Netbeans disponibilizar em seu site pacotes para desenvolvimento específicos em
determinada área da computação. Vejamos alguns:
Mobility Pack - fornece auxilio no desenvolvimento de aplicativos móveis poderosos e com
ferramentas visuais.
Visual Web Pack - facilita o desenvolvimento de aplicativos para Web.
C/C++ Pack - disponibiliza o desenvolvimentos de aplicativos C/C++ no NetBeans IDE.
8
Profiler - ajuda os usuários a localizar gargalos e vazamentos de memória nos seus
aplicativos.
Enterprise Pack (Esquema XML, WSDL, BPEL, serviços de segurança da Web) – facilita o
desenvolvimento de aplicativos SOA(Services-Oriented Architecture ) e sua modelagem.
4.4
Banco de Dados Access
Microsoft Access é um sistema relacional de gerenciamento de banco de dados, uma
ferramenta poderosa que pode ser usada para classificar, organizar e mostrar em forma de
relatório as informações importantes que você usa todos os dias. Devido à sua facilidade de
uso, ele é uma ferramenta excelente para aqueles que estão começando a usar banco de dados,
assim como para aqueles que já têm experiência.
Banco de dados é definido como um caso especial de um arquivo, isto porque os
componentes (campos) são relacionados entre si por alguma coisa a mais do que uma simples
concatenação. Arquivos comuns de acesso direto ou seqüencial não são banco de dados de
acordo com esta definição, já que seus elementos (registros) são simplesmente colocados em
ordem, formando assim o conjunto. A única razão para introduzir relacionamentos adicionais
entre os elementos de um arquivo é que você pode ter acesso às informações por diferentes
caminhos. Assim: “Um banco de dados é qualquer arquivo que pode ser acessado por uma
chave que não seja a sua chave de ordenação”. Qualquer arquivo é ou um arquivo simples ou
um banco de dados. É um arquivo simples se você tem que acessá-lo em uma e somente uma
maneira; de outra forma ele é um banco de dados.
9
5. Decisões de Projeto
5.1
Aplicação
Este projeto necessita de dois sub-sistemas, uma aplicação desktop que funcionaria
com servidor recebendo as mensagens dos clientes, e outra aplicação para dispositivos móveis
que fará os pedidos.
Entretanto, para este projeto optou-se por desenvolver somente a aplicação para o
dispositivo móvel, tendo em vista que o foco da disciplina era proporcionar aos alunos um
contato com o desenvolvimento de software para dispositivos com pouca disponibilidade de
recursos (dispositivos móveis) e a complexidade de um sistema desktop que faz o controle de
uma pizzaria.
Portanto, a modelou-se o banco de dados de forma à atender as necessidades do
aplicativo em questão, retirando relacionamento referentes a parte de controle de estoque, e
outras coisas para a aplicação desktop.
5.2
Wi-FI x Bluetooth
Bluetooth é uma tecnologia que possibilita a comunicação sem fio entre dispositivos,
porém ela tem limitações de distância de 10 a 15 metros de alcance e apenas setes dispositivos
podem se comunicar com o servidor ao mesmo tempo, portanto, para esta aplicação, esta
tecnologia não atenderia as necessidades, por isso foi decidido utilizar a tecnologia wi-fi, visto
que esta tem um alcance de até 100 metros e que não tem restrições de quantidade de usuários
se comunicando ao mesmo tempo e é uma tecnologia gratuita.
5.3
Banco de Dados
Optamos pelo uso do Microsoft Access pelo fato dele ser um banco de dados simples,
de fácil utilização, que suporta todas as exigências desta aplicação e porque este seria um dos
bancos de dados que nos possibilitaria um desenvolvimento da aplicação com uma maior
velocidade.
5.4
Modelagem
Para a modelagem do banco de dados foi utilizada a ferramenta de modelagem amos o
ERwin .
10
Abaixo temos duas figuras obtidas desta modelagem a primeira contendo o modelo
físico e segunda contendo o modelo lógico, ambas foram tirada do modelo entidade
relacionamento da pizzaria gerado pelo ERwin.
Figura1 – Modelo Físico
Figura2 – Modelo Lógico
11
6. Telas da Aplicação
Figura 1 – Telas Inicial
Neste Tela Inicial o usuário escolherá o que ele deseja naquele momento, as opções
variam desde a escolher um pedido, ver o valor da conta até que aquele instante até pedir a
conta.
12
Figura 2 – Tela de Pedidos
Na tela de pedidos o usuário preencherá os dados referentes aos produtos escolhidos
por ele no cardápio. De forma que ele poderá escolher a opção incluir, na qual ele vai
adicionando estes produtos na lista, ou escolher a opção enviar, na qual ele enviará os
produtos escolhidos para o órgão responsável pela recepção dos pedidos feitos pelos os
usuários deste estabelecimento.
13
Figura 3 – Tela de Sub Total
Nesta tela o cliente poderá ver todos os pedidos solicitados por ele até então e valor
parcial da sua conta.
14
Figura 4 – Tela Pedir Conta
Nesta tela o cliente faz a solicitação do encerramento da sua conta. Após ele ter
escolhido a opção pedir, o estabelecimento enviará algum funcionário para receber o valor da
conta.
15
7. Dificuldades Encontradas
Encontramos dificuldades com o J2ME, pois, apesar de alguns integrantes do grupo
estarem familiarizados com linguagem de programação JAVA, o ambiente de programação é
totalmente novo para todos, no qual não temos todos os recursos habituais da programação
desktop e também pela falta de documentação para auxiliar na programação. J2ME está bem
desenvolvida para programar com celulares, porém para PDAs ainda não tem boas
ferramentas de desenvolvimento, dificultando assim o desenvolvimento do nosso projeto, pois
ele foi desenvolvido com uma aplicação normal para celular, o qual tem recursos de tela mais
limitados do que para PDAs, e depois testado em um PDA. Portanto, todo o posicionamento
dos campos e comandos na interface não pode ser feita da melhor forma e como desejávamos.
Tivemos dificuldades em encontrar um emulador para testar nossa aplicação, pois
todos que encontrávamos não era gratuito e quando achamos, ele não rodou a aplicação,
portanto tivemos que testá-la em um dispositivo real.
Encontramos dificuldades em compatibilidade do projeto quando testado no emulador
de celular e quando testado no PDA, pois os botões, labels, tickers são posicionado diferentes
e a tabela fica da cor preta, assim o posicionamento foi feito na base da tentativa e erro, ou
seja, colocamos alguma coisa e a testamos no PDA.
A IDE utilizada para fazer a aplicação também nos trouxe problemas, pois ela não
deixa alterar o código gerado automaticamente e se este é alterado usando um outro editor
qualquer o projeto não funciona, simplesmente temos que recomeçar tudo novamente.
16
8. Conclusões
Trabalhar com dispositivos móveis foi uma tarefa bem árdua, já que tivemos muitas
dificuldades para colocar o nosso projeto funcionando na pratica. No entanto, não podemos
deixar de citar que ter desenvolvido um projeto nesta área da computação foi uma tarefa
muito gratificante para todos integrantes deste grupo, pois além de nos permitir trabalhar no
desenvolvimento de programas que possuem algum tipo de restrição, possibilitou nos
trabalhar com tecnologias novas, sem falar na experiência que ganhamos ao produzir este
software.
Com relação às ferramentas utilizadas, concluímos que elas são extremamente
importantes para o desenvolvimento deste tipo de aplicação, já que facilita muita a vida de
seus usuários. Mas com certeza elas ainda deixam muita coisa a desejar principalmente o
J2ME e a IDE Netbeans que nos trouxe vários problemas no decorrer do trabalho.
17
9. Agradecimentos
- Ao professor Mauro pelo auxilio prestado durante o desenvolvimento deste projeto.
- Ao PDA professor do Mauro, que nos encorajou a terminar o projeto, quando tivemos
problemas com o emulador.
- Aos nossos professores orientadores que permitiu os desenvolvedores deste projeto
darem o seu enfoque necessário neste trabalho.
18
10. Referências Bibliográficas
Netbeans - http://www.netbeans.org/index_pt.html - último acesso março de 2007
Sites relacionados ao J2ME -http
://www.devmedia.com.br/visualizacomponente.aspx?comp=3451&site=6 - último acesso
março de 2007
Sites relacionados ao J2ME http://www.imasters.com.br/artigo/3462/java/interface_de_alto_nivel_do_j2me/ - último
acesso março de 2007
Programando em Palm - http://www.lia.ufc.br/~windson/palm.html - último acesso fevereiro
de 2007
Sites relacionado ao Wi-FI - http://pt.wikipedia.org/wiki/Wi-Fi - último acesso março de 2007
Sites relacionado ao Wi-FI - http://www.comunicacao.pro.br/setepontos/15/wifi.htm - último
acesso março de 2007
Sites relacionado ao Wi-FI - http://www.mobilezone.com.br/conect_wifi.htm - último acesso
março de 2007
19
Download