19
UNIVERSIDADE FEDERAL DE VIÇOSA CENTRO DE CIÊNCIAS EXATAS E TECNOLÓGICAS DEPARTAMENTO DE INFORMÁTICA Pizzaria Manão Emilio Gonçalves 41281 Fabrício Luís Santos da Silva 50293 Filipe Ribeiro Nalon 50295 Leonardo Vieira Dos Santos Reis 50264 Documentação do Projeto realizado na Disciplina INF 492 – Computação Móvel VIÇOSA MINAS GERAIS – BRASIL

UNIVERSIDADE FEDERAL DE VIÇOSA TECNOLÓGICAS …nacif/cmovel/files/2006/05/relat.pdf · MARÇO/2007 Sumário ... O projeto tem como finalidade desenvolver uma aplicação para

Embed Size (px)

Citation preview

Page 1: UNIVERSIDADE FEDERAL DE VIÇOSA TECNOLÓGICAS …nacif/cmovel/files/2006/05/relat.pdf · MARÇO/2007 Sumário ... O projeto tem como finalidade desenvolver uma aplicação para

UNIVERSIDADE FEDERAL DE VIÇOSACENTRO DE CIÊNCIAS EXATAS E

TECNOLÓGICASDEPARTAMENTO DE INFORMÁTICA

Pizzaria Manão

Emilio Gonçalves 41281 Fabrício Luís Santos da Silva 50293

Filipe Ribeiro Nalon 50295 Leonardo Vieira Dos Santos Reis 50264

Documentação do Projeto realizado naDisciplina INF 492 – Computação Móvel

VIÇOSAMINAS GERAIS – BRASIL

Page 2: UNIVERSIDADE FEDERAL DE VIÇOSA TECNOLÓGICAS …nacif/cmovel/files/2006/05/relat.pdf · MARÇO/2007 Sumário ... O projeto tem como finalidade desenvolver uma aplicação para

MARÇO/2007Sumário

Sumário 021. Introdução 032. Motivações 043. Objetivos 064. Tecnologias e Ferramentas Utilizadas 075. Decisões de Projeto 106. Telas da Aplicação 127. Dificuldades Encontradas 168. Conclusões 179. Agradecimentos 1810. Referências Bibliográficas 19

2

Page 3: UNIVERSIDADE FEDERAL DE VIÇOSA TECNOLÓGICAS …nacif/cmovel/files/2006/05/relat.pdf · MARÇO/2007 Sumário ... O projeto tem como finalidade desenvolver uma aplicação para

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

Page 4: UNIVERSIDADE FEDERAL DE VIÇOSA TECNOLÓGICAS …nacif/cmovel/files/2006/05/relat.pdf · MARÇO/2007 Sumário ... O projeto tem como finalidade desenvolver uma aplicação para

2. Motivações

2.1 Aplicações para dispositivos móveisOs 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

Page 5: UNIVERSIDADE FEDERAL DE VIÇOSA TECNOLÓGICAS …nacif/cmovel/files/2006/05/relat.pdf · MARÇO/2007 Sumário ... O projeto tem como finalidade desenvolver uma aplicação para

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

Page 6: UNIVERSIDADE FEDERAL DE VIÇOSA TECNOLÓGICAS …nacif/cmovel/files/2006/05/relat.pdf · MARÇO/2007 Sumário ... O projeto tem como finalidade desenvolver uma aplicação para

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

Page 7: UNIVERSIDADE FEDERAL DE VIÇOSA TECNOLÓGICAS …nacif/cmovel/files/2006/05/relat.pdf · MARÇO/2007 Sumário ... O projeto tem como finalidade desenvolver uma aplicação para

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

Page 8: UNIVERSIDADE FEDERAL DE VIÇOSA TECNOLÓGICAS …nacif/cmovel/files/2006/05/relat.pdf · MARÇO/2007 Sumário ... O projeto tem como finalidade desenvolver uma aplicação para

É 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

Page 9: UNIVERSIDADE FEDERAL DE VIÇOSA TECNOLÓGICAS …nacif/cmovel/files/2006/05/relat.pdf · MARÇO/2007 Sumário ... O projeto tem como finalidade desenvolver uma aplicação para

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

Page 10: UNIVERSIDADE FEDERAL DE VIÇOSA TECNOLÓGICAS …nacif/cmovel/files/2006/05/relat.pdf · MARÇO/2007 Sumário ... O projeto tem como finalidade desenvolver uma aplicação para

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

Page 11: UNIVERSIDADE FEDERAL DE VIÇOSA TECNOLÓGICAS …nacif/cmovel/files/2006/05/relat.pdf · MARÇO/2007 Sumário ... O projeto tem como finalidade desenvolver uma aplicação para

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

Page 12: UNIVERSIDADE FEDERAL DE VIÇOSA TECNOLÓGICAS …nacif/cmovel/files/2006/05/relat.pdf · MARÇO/2007 Sumário ... O projeto tem como finalidade desenvolver uma aplicação para

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

Page 13: UNIVERSIDADE FEDERAL DE VIÇOSA TECNOLÓGICAS …nacif/cmovel/files/2006/05/relat.pdf · MARÇO/2007 Sumário ... O projeto tem como finalidade desenvolver uma aplicação para

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

Page 14: UNIVERSIDADE FEDERAL DE VIÇOSA TECNOLÓGICAS …nacif/cmovel/files/2006/05/relat.pdf · MARÇO/2007 Sumário ... O projeto tem como finalidade desenvolver uma aplicação para

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

Page 15: UNIVERSIDADE FEDERAL DE VIÇOSA TECNOLÓGICAS …nacif/cmovel/files/2006/05/relat.pdf · MARÇO/2007 Sumário ... O projeto tem como finalidade desenvolver uma aplicação para

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

Page 16: UNIVERSIDADE FEDERAL DE VIÇOSA TECNOLÓGICAS …nacif/cmovel/files/2006/05/relat.pdf · MARÇO/2007 Sumário ... O projeto tem como finalidade desenvolver uma aplicação para

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

Page 17: UNIVERSIDADE FEDERAL DE VIÇOSA TECNOLÓGICAS …nacif/cmovel/files/2006/05/relat.pdf · MARÇO/2007 Sumário ... O projeto tem como finalidade desenvolver uma aplicação para

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

Page 18: UNIVERSIDADE FEDERAL DE VIÇOSA TECNOLÓGICAS …nacif/cmovel/files/2006/05/relat.pdf · MARÇO/2007 Sumário ... O projeto tem como finalidade desenvolver uma aplicação para

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

Page 19: UNIVERSIDADE FEDERAL DE VIÇOSA TECNOLÓGICAS …nacif/cmovel/files/2006/05/relat.pdf · MARÇO/2007 Sumário ... O projeto tem como finalidade desenvolver uma aplicação para

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