Você está na página 1de 131

UNIVERSIDADE DO PLANALTO CATARINENSE

Texto DE INFORMAÇÃO
CURSO DE SISTEMAS
(BACHARELADO)

SERGIO ANTONIO FONTANA JUNIOR

PROTÓTIPO DE UM APLICATIVO ANDROID PARA PEDIDOS DE


LANCHES E UM PORTAL WEB PARA GESTÃO E
MONITORAMENTO

LAGES (SC)
2013
SERGIO ANTONIO FONTANA JUNIOR

PROTÓTIPO DE UM APLICATIVO ANDROID PARA PEDIDOS DE


LANCHES E UM PORTAL WEB PARA GESTÃO E
MONITORAMENTO

Trabalho de Conclusão de Curso


submetido à Universidade do Planalto
Catarinense para obtenção dos créditos
de disciplina com nome equivalente no
curso de Sistemas de Informação -
Bacharelado.

Orientação: Alexandre Rech, Bel.

LAGES (SC)
2013
SERGIO ANTONIO FONTANA JUNIOR

PROTÓTIPO DE UM APLICATIVO ANDROID PARA PEDIDOS DE


LANCHES E UM PORTAL WEB PARA GESTÃO E MONITORAMENTO

ESTE RELATÓRIO, DO TRABALHO DE


CONCLUSÃO DE CURSO, FOI
JULGADO ADEQUADO PARA
OBTENÇÃO DOS CRÉDITOS DA
DISCIPLINA DE TRABALHO DE
CONCLUSÃO DE CURSO, DO 8º.
SEMESTRE, OBRIGATÓRIA PARA
OBTENÇÃO DO TÍTULO DE:

BACHAREL EM SISTEMAS DE
INFORMAÇÃO

Lages (SC), 4 de Dezembro de 2013

Prof. Alexandre Rech, Bel.


Orientador

BANCA EXAMINADORA:

Prof. Ismael dos Santos, Bel. Prof. Rafael Gattino, Bel.


UNIPLAC UNIPLAC

Prof. Sabrina Bet Koerich, M.Sc


Coordenador de Curso / Professor de TCC
LISTA DE ILUSTRAÇÕES

FIGURA 1 - Crescimento do faturamento anual dos fast-foods.................................. 19


FIGURA 2 - Camadas da arquitetura Android .............................................................. 23
FIGURA 3 - Diagrama ER (Banco de Dados) – Grupo dos Endereços ..................... 38
FIGURA 4 - Diagrama ER (Banco de Dados) – Grupo das Empresas....................... 39
FIGURA 5 - Diagrama ER (Banco de Dados) – Grupo dos Items.............................. 40
FIGURA 6 - Diagrama ER (Banco de Dados) – Grupo dos Pedidos ......................... 41
FIGURA 7 - Diagrama de casos de uso do Módulo Cliente ........................................ 42
FIGURA 8 - Diagrama de Atividade - Caso de Uso UC001 – Alterar Informações do
Usuário ....................................................................................................................... 43
FIGURA 9 - Diagrama de Atividade - Caso de Uso UC002 – Efetuar Login ........... 44
FIGURA 10 - Diagrama de Atividade - Caso de Uso UC003 – Efetuar Login Via
Facebook ..................................................................................................................... 45
FIGURA 11 - Diagrama de Atividade - Caso de Uso UC004 – Efetuar Login Via
Usuário ..................................................................................................................... 46
FIGURA 12 - Diagrama de Atividade - Caso de Uso UC005 – Efetuar Logout ...... 47
FIGURA 13 - Diagrama de Atividade - Caso de Uso UC006 – Efetuar Pedido de
Lanche ..................................................................................................................... 48
FIGURA 14 - Diagrama de Atividade - Caso de Uso UC007 – Obter Endereço ..... 49
FIGURA 15 - Diagrama de Atividade - Caso de Uso UC008 – Obter Endereço via
CEP ..................................................................................................................... 50
FIGURA 16 - Diagrama de Atividade - Caso de Uso UC009 – Obter Endereço Via
GPS ..................................................................................................................... 51
FIGURA 17 - Diagrama de casos de uso do Módulo Empresarial ............................. 53
FIGURA 18 - Diagrama de Atividade - Caso de Uso UC012 – Alterar Informações
da Empresa ..................................................................................................................... 53
FIGURA 19 - Diagrama de Atividade - Caso de Uso UC013 – Avaliar o Pedido
Solicitado ..................................................................................................................... 54
FIGURA 20 - Diagrama de Atividade - Caso de Uso UC014 – Efetuar Login......... 56
FIGURA 21 - Diagrama de Atividade - Caso de Uso UC015 – Efetuar Logout ...... 57
FIGURA 22 - Diagrama de Atividade - Caso de Uso 16 – Enviar Feedback para o
Administrador ..................................................................................................................... 58
FIGURA 23 - Diagrama de Atividade - Caso de Uso 17 – Visualizar Itens Mais
Pedidos ..................................................................................................................... 59
FIGURA 24 - UC020 - «CRUD» Manter Itens do Cardápio....................................... 60
FIGURA 25 - Emulador Android SDK NHibernate ..................................................... 63
FIGURA 26 - Android SDK e AVD Manager .............................................................. 64
FIGURA 27 - Diagrama que representa o padrão Modelo-Visão-Controlador......... 65
FIGURA 28 - Visão geral em alto nível como trabalha o NHibernate ....................... 67
FIGURA 29 - Web Service Roles ................................................................................... 68
FIGURA 30 - Tela inicial Visual Studio 2010 .............................................................. 71
FIGURA 31 - Visualização Object Explorer do SQL Server 2008 ............................ 72
FIGURA 32 - Visualização Solução Visual Studio (Arquitetura Portal Web e
WebService) ..................................................................................................................... 73
FIGURA 33 - Visualização Projeto Eclipse (Aplicativo Android) ............................. 75
FIGURA 34 - Formulário de login do usuário ao sistema – Portal Web ................... 98
FIGURA 35 - Tela de alteração de informações Empresariais – Portal Web............ 99
FIGURA 36 - Tela de Central de Pedidos em Aberto – Portal Web ........................ 100
FIGURA 37 - Tela de Central de Pedidos Fechados – Portal Web .......................... 100
FIGURA 38 - Tela de Cadastro de Bebidas – Portal Web ......................................... 101
FIGURA 39 - Tela de Cadastro de Ingredientes – Portal Web.................................. 102
FIGURA 40 - Tela de Cadastro de Lanches – Portal Web......................................... 102
FIGURA 41 - Tela de Gráficos de Lanches mais Pedidos – Portal Web ................. 103
FIGURA 42 - Tela de Contato – Portal Web ............................................................... 103
FIGURA 43 - Interface Inicial – Protótipo aplicativo Android ................................. 104
FIGURA 44 - Tela de informação de usuário e senha – Protótipo aplicativo Android .
................................................................................................................... 104
FIGURA 45 - Tela de preenchimento do número e observações de localização –
Protótipo aplicativo Android.............................................................................................. 105
FIGURA 46 - Tela de apresentação de empresa disponíveis – Protótipo aplicativo
Android ................................................................................................................... 106
FIGURA 47 - Tela de apresentação de cardápio de determinada empresa – Protótipo
aplicativo Android............................................................................................................... 107
FIGURA 48 - Tela de desmarcação de ingredientes de lanche – Protótipo aplicativo
Android ................................................................................................................... 108
FIGURA 49 - Tela de carrinho de compras – Protótipo aplicativo Android ........... 109

QUADRO 1-
Cronograma do TCC ................................................................................ 17
QUADRO RF 001 – Permitir empresas enviar Feedbacks para o Administrador34
2-
QUADRO RF 002 – Validar usuário e senha........................................................... 34
3-
QUADRO RF 003 – Permitir o filtro de informações ............................................ 35
4-
QUADRO RF 004 – Verificar conexão com o WebService .................................. 35
5-
QUADRO RF 005 – Verificar conexão com a Internet .......................................... 35
6-
QUADRO RF 006 – Validar Cep .............................................................................. 35
7-
QUADRO RF 007 – Validar token de acesso do usuário ....................................... 35
8-
QUADRO RF 008 – Processar Informações de Localização ................................. 36
9-
QUADRO RF 009 – Aprovar/Cancelar Pedidos.................................................... 36
10 -
QUADRO RF 010 – Enviar Pedido......................................................................... 36
11 -
QUADRO RF 011 – Gerar relatórios de bebidas e lanches mais pedidos.......... 36
12 -
QUADRO 13 -
RNF 001 - Trafegar informações com o WebService no formato Json
................................................................................................................... 36
QUADRO 14 - RNF 002 - Módulos restritos a tipos específicos de usuários ........... 37
QUADRO 15 - RNF 003 - Funcionar em todas as versões do Android ..................... 37
QUADRO 16 - RNF 004 – Validar Informações Digitadas ......................................... 37
QUADRO 17 -
Código fonte do método CreateSessionFactory................................. 77
QUADRO 18 -
Código fonte do método SendCrossTalkToWebService ................... 78
QUADRO 19 -
Código fonte do método SendEmail. ................................................... 79
QUADRO 20 -
Código fonte da classe CityMap ........................................................... 80
QUADRO 21 -
Código fonte do método de Inserção e Alteração de dados na base de
dados. ................................................................................................................... 81
QUADRO 22 - Código fonte do método Delete. ........................................................... 82
QUADRO 23 - Código fonte do método GetById ......................................................... 83
QUADRO 24 - Código fonte do método SignIn............................................................ 84
QUADRO 25 - Código fonte do método de Auto Mapeamento entre Objetos ......... 85
QUADRO 26 - Código fonte do trecho de código do componente de Grid do Telerik.
................................................................................................................... 86
QUADRO 27 - Código fonte do método userAuthentication que retorna se as
credências (usuário e senha) são válidos. ........................................................................... 87
QUADRO 28 - Código fonte da classe para validação de informações do Sistema . 89
QUADRO 29 - Código Fonte do Método GetSnacksByEnterprise............................. 90
QUADRO 30 - Xml do Layout da interface inicial do protótipo do aplicativo
Android ................................................................................................................... 92
QUADRO 31 - Código fonte do método getAddressByPostalCode ........................... 93
QUADRO 32 - Código fonte do método getAddressByGps ........................................ 95
QUADRO 33 - Código fonte do método LoadAndSendRequest ................................. 97
LISTA DE ABREVIATURAS E SIGLAS

API - Advanced Programming Interface


ASP - Active Server Pages
CGI - Common Gateway Interface
CLR -Common Language Runtime
GPS - Global Positioning System
JSP - Java Server Pages
MVC -Model-View-Controller
PU - Processo Unificado
SOAP -Simple Object Access Protocol
SQL -Structured Query Language
UC - Use Case (Caso de uso)
UML - Unified Modeling Language
WEB - World Wide Web
WSDL - Web Service Description Language
XML - Extensible Markup Language
RESUMO

Atualmente as pessoas desejam e optam por usufruir de serviços que lhe tragam mais
facilidade, flexibilidade e qualidade em suas atividades em geral, através da alta
capacidade tecnológica disponível para desenvolvimento de aplicativos e softwares com
uma elevada redução de tempo e transparência nas atividades realizadas. Quando uma
pessoa deseja realizar um pedido alimentício, devido ao crescimento exorbitante pela
busca de serviços de delivery de empresas alimentícias, por muitas vezes a mesma
encontra-se com dificuldades por questões de transito, congestionamento, linhas
telefônicas ocupadas e alto fluxo de pessoas concorrendo com as mesmas vontades. Com
isso o objetivo deste trabalho consiste no desenvolvimento de na implementação de um
protótipo de aplicativo móvel na plataforma Android com a linguagem de programação
JAVA, para realização do pedido por parte do cliente e um portal Web com a tecnologia
ASP.NET MVC3 e a linguagem de programação .NET C# para a análise, gestão e
monitoramento e auxílio na tomada de decisão, por parte dos funcionários da empresa.
Após a conclusão do desenvolvimento deste trabalho, o cliente poderá realizar pedidos
de lanches de forma mais simplifica, ágil e transparente, possuindo apenas um
smartphone com conexão de internet, sem a necessidade direta de contato físico ou
telefônico e por parte da empresa, a mesma precisará possuir apenas um computador
com acesso à internet, que através de uma página web moderna e simplificada,
possibilitará controle e gestão de seus pedidos, inclusive auxilio a tomada de decisão,
tais como quais as preferências do cliente, podendo assim, focar em suas preferências .

Palavras-chave:
Aplicativo Android; Portal Web; ASP.NET MVC3.
ABSTRACT

Nowadays people want and choose to make use of services that bring greater ease,
flexibility and quality in their activities in general, through high technological capacity
available for application development and software with a high reduction of time and
transparency in the activities. When a person wishes to make a request for food, due to
the exorbitant growth by seeking services delivery food companies, often by the same
meets with difficulties for reasons of traffic congestion, busy telephone lines and high
flow of people competing with the same desires. Therefore, the objective of this work
is the development of the implementation of a prototype mobile application on the
Android platform with the JAVA programming language, to perform the request from
the client and a Web portal with technology ASP.NET MVC3 and language
programming. NET C # for the analysis, management and monitoring and aid in decision
making on the part of employees. Upon completion of the development of this work, the
client can make requests for snacks in a more simplified, streamlined and transparent,
having only a smartphone with internet connection, without direct physical contact or
by telephone, and the company, the same just need to have a computer with internet
access that through a modern, streamlined website, enable control and management of
their applications, including aid decision making, such as which customer preferences
and can thus focus on your preferences .

Keywords:
Android Application; Web Portal; ASP.NET MVC3.
SUMÁRIO

1 INTRODUÇÃO ................................................................................................................ 13
1.1 Apresentação ................................................................................................................... 13
1.2 Descrição do problema................................................................................................... 14
1.3 Justificativa ...................................................................................................................... 14
1.4 Objetivo Geral ................................................................................................................. 15
1.5 Objetivos específicos...................................................................................................... 16
1.6 Metodologia..................................................................................................................... 16
1.7 Cronograma ..................................................................................................................... 17
2 ANDROID E PEDIDOS DE LANCHES NO BRASIL ........................................... 18
2.1 Preferências dos Brasileiros .......................................................................................... 18
2.2 Crescimento nas redes de Fast-Foods.......................................................................... 18
2.3 Formas Atuais de Pedidos ............................................................................................. 19
2.3.1 Pedido indo ao Local ....................................................................................................... 19
2.3.2 Pedido via Telefone ......................................................................................................... 20
2.3.3 Pedido via Internet através de um Celular ....................................................................... 20
2.4 Gestão dos Pedidos por parte dos Estabelecimentos .................................................. 20
2.4.1 Comanda de Papel ........................................................................................................... 20
2.4.2 Comanda com Cartão ...................................................................................................... 21
2.4.3 Comanda em Softwares ................................................................................................... 21
2.4.4 Portal de Gestão e Estatísticas na Web para os administradores das Empresas .............. 21
2.5 Android ............................................................................................................................ 22
2.5.1 Utilização do Android no Brasil ...................................................................................... 22
2.5.2 Arquitetura Android......................................................................................................... 23
2.6 Vantagens da utilização de dispositivos móveis ......................................................... 24
2.6.1 Mobilidade ....................................................................................................................... 24
2.6.2 Portabilidade .................................................................................................................... 24
2.7 Conclusão......................................................................................................................... 25
3 COMÉRCIO ELETRÔNICO E OFERTAS ON-LINE.......................................... 26
3.1 Comércio eletrônico ....................................................................................................... 26
3.1.1 Crescimento do comércio eletrônico no mercado Brasileiro ........................................... 26
3.1.2 Vantagens do comércio eletrônico................................................................................... 27
3.1.3 Segurança......................................................................................................................... 27
3.2 Formas de pagamento utilizadas no comércio eletrônico .......................................... 28
3.2.1 Dinheiro ........................................................................................................................... 28
3.2.2 Boleto bancário ................................................................................................................ 29
3.2.3 Cartão de crédito / débito................................................................................................. 29
3.2.4 Paypal / PagSeguro .......................................................................................................... 29
3.3 Cardápio e ofertas online no ramo alimentício ........................................................... 30
3.3.1 Cardápio online personalizado ........................................................................................ 30
3.3.2 Agendamentos de pedidos on- line ................................................................................... 30
3.3.3 Ofertas e promoções atualizadas em tempo real.............................................................. 31
3.4 Conclusão......................................................................................................................... 31
4 MODELAGEM DO SISTEMA .................................................................................... 32
4.1 UML ................................................................................................................................. 32
4.1.1 Processo Unificado – UP ................................................................................................ 32
4.1.2 Casos de Uso ................................................................................................................... 33
4.1.3 Levantamento de Requisitos ............................................................................................ 34
4.1.4 Diagrama de Classes ....................................................................................................... 37
4.2 Módulos ........................................................................................................................... 41
4.2.1 Módulo Cliente ................................................................................................................ 41
4.2.2 Módulo Empresarial ........................................................................................................ 52
4.3 Conclusão......................................................................................................................... 61
5 IMPLEMENTAÇÃO DO SISTEMA .......................................................................... 62
5.1 Tecnologias utilizadas .................................................................................................... 62
5.1.1 Plataforma .NET.............................................................................................................. 62
5.1.2 Plataforma Android SDK ................................................................................................ 62
5.1.3 Padrão MVC .................................................................................................................... 64
5.1.4 nHibernate ORM ............................................................................................................. 66
5.1.5 Web Service ..................................................................................................................... 67
5.1.6 XML ................................................................................................................................. 69
5.1.7 JSON ................................................................................................................................ 70
5.2 Ferramentas utilizadas.................................................................................................... 70
5.2.1 Visual Studio .................................................................................................................... 70
5.2.2 Eclipse IDE ...................................................................................................................... 71
5.2.3 SQL Server ....................................................................................................................... 72
5.3 Implementação do sistema............................................................................................. 76
5.3.1 Criação de Sessão do nHibernate ................................................................................... 76
5.3.2 Serialização e Deserialização Json ................................................................................. 77
5.3.3 Enviar E-Mail .................................................................................................................. 78
5.3.4 Criar classe de Mapeamento ........................................................................................... 80
5.3.5 Manipular Dados na Base de Dados ............................................................................... 81
5.3.6 Controle de Login – MemberShip.................................................................................... 83
5.3.7 Auto Mapeamento entre Objetos ..................................................................................... 85
5.3.8 Componente Gráfico Telerik Grid ................................................................................... 85
5.3.9 Autenticação de Credências de Usuário ......................................................................... 87
5.3.10 Validação de Informações do Sistema........................................................................... 88
5.3.11 Busca de Lanches de Acordo com determinada Empresa ............................................. 90
5.3.12 Validação de Informações do Sistema........................................................................... 92
5.3.13 Busca de Localização do usuário (cliente) via Cep ...................................................... 93
5.3.14 Busca de Localização do usuário (cliente) via Gps ...................................................... 95
5.3.15 Carregamento e Envio de Pedido de Lanche ................................................................ 96
5.4 Apresentação do sistema ................................................................................................ 98
5.4.1 Portal Web para Gestão e Monitoramento ..................................................................... 98
5.4.2 Protótipo do aplicativo Android para realização dos pedidos ..................................... 104
5.5 Conclusão....................................................................................................................... 109
6 CONSIDERAÇÕES FINAIS....................................................................................... 110
REFERENCIAS BIBLIOGRAFICAS ......................................................................... 112
APÊNDICES ...................................................................................................................... 118
13

1 INTRODUÇÃO

1.1 Apresentação

“Nos últimos anos o crescimento de empreendimentos como restaurantes, bares,


lanchonetes e outros estabelecimentos de produção de alimentos tem sido maior que a
capacidade de atendimento da Agência Nacional de Vigilância Sanitária (Anvisa) e de
instituições que qualificam esse tipo de atividade” (AGÊNCIA SEBRAE, 2008).
Com o aumento do número de estabelecimentos, aumenta o número de opções e
possibilidades de escolha do cliente de acordo com sua vontade no momento, mesmo não
tendo muitas formas para realização de seus pedidos (celulares, telefones e computadores),
sendo os celulares, os campeões no quesito crescimento atualmente.
Conforme a reportagem publica por G1(2013), de acordo com as estimativas sobre
a penetração do serviço de telefonia móvel no planeta, até o fim de 2013, o mundo terá quase
sete bilhões de linhas ativas. Isso representa praticamente um celular por pessoa, mesmo que
a taxa utilização seja muito maior em determinados locais e menor em outros.
“O número de usuários domésticos com computador no Brasil ultrapassa 99
milhões e o número de usuário com celulares chega a incrível marca de 87% presente dos
lares brasileiros, perdendo apenas para a televisão” (AGÊNCIA BRASIL, 2012).
A proposta deste trabalho de conclusão de curso é o desenvolvimento de um
sistema de gestão de pedidos de lanches, capaz de aproximar o cliente do estabelecimento,
evitando toda a burocracia do negócio, através de um prático e completo software, capaz de
oferecer ofertas aos clientes e diferentes formas de pagamento.
O desenvolvimento deste trabalho começará através de um estudo sobre os
problemas e necessidades encontradas na área alimentícia, após isso, será realizada a criação
dos casos de uso e modelagem, após o termino dos mesmo será iniciado o desenvolvimento
das atividades, liberando para os testes a procura de possíveis falhas e com a conclusão das
14

mesmas, iniciando a implantação nos estabelecimentos.

1.2 Descrição do problema

Atualmente, ainda existe dificuldade para o usuário (cliente) fazer pedidos de


lanches em empresas (estabelecimentos) alimentícios, há tempo de espera, linhas ocupadas,
trânsito e incômodo, devido ao crescimento muito alto do número de pedidos muito acima
aos números de novas empresas que prestam serviço desta natureza.
Além da problemática da realização dos pedidos, há também da falta de
conhecimento por parte da empresa (estabelecimento) sobre os hábitos e preferências do
usuário (cliente), tais como quais os sabores de lanches mais pedidos, quais as preferências
de cada cliente sobre determinado tipo de lanche, além de quais os lanches e características
que mais agradam ao público.

1.3 Justificativa

A tecnologia evolui diariamente a índices incríveis, porém, as empresas e pessoas


não conseguem acompanhar ou nem mesmo se interessam em evoluir e ficam estagnados
num padrão global, abaixo do que a tecnologia permite.
Segundo SHOPPER EXPERIENCE (2011), foi realizada uma pesquisa sobre a
opinião sobre as empresas de fast-food no Brasil onde foi conduzida com 5.815 pessoas
entre 18 e 55 anos em todo o país – revela os hábitos de consumo e preferências dos clientes
de alimentação rápida. O estudo mostra que a preferência pelo fast-food em detrimento do
restaurante tradicional se dá, para 74% dos entrevistados, pela conveniência, rapidez e
agilidade na refeição.
De acordo com ECOMMERCE NEWS (2011), 84% dos brasileiros entrevistados
acessam a sua web móvel diariamente, valor ligeiramente superior aos 82% verificados no
Reino Unido. O grande nível de utilização da web e comércio móvel andam juntos com a
redução no uso de internet de linhas fixas: 41% dos brasileiros entrevistados e 34% dos
britânicos acessam hoje seus computadores pessoais com menor frequência do que há 18
meses.
“Esta pesquisa mundial demonstra claramente que os consumidores em todo o
15

mundo estão adotando o dispositivo móvel como um ponto de acesso chave para acessar
conteúdos e satisfazer as suas necessidades do comércio”, afirmou BUD (2012), presidente
global da MEF.” Ela também ilustra que o telefone móvel é uma plataforma essencial para
empresas que desejam satisfazer as demandas dos consumidores e faturar com a venda de
seus bens, serviços e produtos digitais.”
Baseado nas pesquisas acima descritas e chega-se à conclusão que uma empresa
que ofereça maior agilidade e qualidade em seus serviços abrangerá uma maior fatia do
mercado deixando seus concorrentes para trás.
SILVINO (2012), presidente da Liquigás Distribuidora, destacou o seguinte:
“Proximidade é a palavra-chave para conquistar a preferência dos clientes e depois poder
fidelizá-los”.
Para ter uma maior proximidade entre o cliente e as empresas alimentícias, é
necessário desenvolver um sistema capaz de englobar boa parte das empresas, através de
filtros, trazer os estabelecimentos dentro dos filtros, com seus cardápios e lanches mais
solicitados, possibilitando efetuar pedidos e pagamentos através de apenas um dispositivo
móvel (celular, tablet) ou portal web, sem precisar do contato físico ou telefônico, como
acontece atualmente.
Segundo a empresa Agência Estado “As vendas on-line feitas por meio de
aparelhos móveis (mobile commerce, ou m-commerce) devem apresentar um crescimento
expressivo no Brasil nos próximos meses. A estimativa é que esse segmento movimente
cerca de 2 bilhões de reais em 2013 (no primeiro semestre de 2012, foram 1 32 milhões de
reais). As grandes varejistas já começam a se adaptar a essa migração de plataforma.”.
Um sistema desta forma facilitaria em agilidade e qualidade de serviço,
possibilitando planejamento, histórico e relatórios por parte da empresa, trazendo conforto
ao cliente final para realização de seus pedidos e diminuindo o fluxo de carros e poluição
nos grandes polos.

1.4 Objetivo Geral

O objetivo geral deste trabalho consiste no desenvolvimento de um protótipo de


um aplicativo móvel para realização do pedido por parte do cliente e também um portal Web
para a análise, gestão, auxílio na tomada de decisão e monitoramento dos pedidos.
16

1.5 Objetivos específicos

Os objetivos específicos referentes a este trabalho estão descritos a seguir:


a) Desenvolver um protótipo que possibilite a realização de pedidos de
lanches por parte dos clientes.
b) Permitir a empresa o monitoramento dos pedidos realizados pelo cliente
através do aplicativo móvel.
c) Possibilitar o armazenamento e divulgação dos cardápios e informações das
empresas expostas.

1.6 Metodologia

A primeira etapa deste trabalho será iniciada através de estudos sobre a área de
estabelecimentos alimentícios, como seus problemas e necessidades, além de estudos sobre
a tecnologia jQuery, para futuro desenvolvimento de um Portal Web mais dinâmico.
Após isso será realizado estudos de caso, criação da modelagem do sistema
utilizando a linguagem UML.
A próxima etapa será a implementação de um portal para cadastro dos produtos,
central de pedidos com gráficos e relatórios por parte do estabelecimento contratado.
Em seguida será implementado um WebService para integração dos dados do
portal com um aplicativo móvel. Posteriormente será implementado uma aplicação móvel
com a plataforma Android, para o usuário realizar pedidos via celular/tablet.
Para a implementação deste software será utilizada a ferramenta Microsoft Visual
Studio 2010, com a linguagem C#, no padrão MVC utilizando ASP.NET e o Banco de Dados
o Microsoft SQL Server 2008 além do Eclipse e SQLite Mobile.
Ao final de cada etapa, o sistema será disponibilizado para os testes necessários,
tanto de carga, quanto de funcionalidades, a fim de identificar possíveis erros que deverão
ser corrigidos.
17

1.7 Cronograma

QUADRO 1 - Cronograma do TCC


2012 2013
Tarefas Ago. Fev.
Abr. Mai. Jun.
Jul.
Set. Out. Nov. Dez.
Nov. Mar. Ago.
PROJETO DO TCC XX
Etapa 1: XX
- Elaboração Pré-Projeto XX
Etapa 2:
-Defesa Pré-Projeto XX
Etapa 3:
- Estudo sobre a área de estabelecimentos
XX
alimentícios.
- Estudo sobre tecnologias web em geral XX XX
- Elaborar referencial teórico do relatório XX XX
- Estudo de casos de uso XX XX
- Criação de documentação XX XX
- Modelagem do sistema utilizando a linguagem
XX XX
UML.
BANCA DE TCC I XX
Etapa 4:
- Revisão literária tecnologias web XX XX XX XX
- Desenvolvimento Portal Web XX XX XX XX
- Desenvolvimento Web Service XX
- Desenvolvimento Aplicação Android XX XX
ENTREGA DO RELATÓRIO DE TCC I
PRÉ-BANCA DE TCC II XX
Etapa 5:
- Finalização do desenvolvimento XX XX XX
- Revisão Literária XX XX XX
- Testes XX XX
- Elaboração do Artigo XX
ENTREGA DO RELATÓRIO DE TCC II XX
APRESENTAÇÃO EM BANCA XX
CORREÇÕES E ENTREGA DA VERSÃO
XX
FINAL DO TCC
18

2 ANDROID E PEDIDOS DE LANCHES NO BRASIL

Neste capítulo serão mostrados informações sobre a plataforma Android e sobre


os pedidos de lanches no Brasil, tais como estatísticas e conceitos sobre os mesmos.

2.1 Preferências dos Brasileiros

Desenvolvida pela Shopper Experience, com a pesquisa “Fast-Food no Brasil”, ao


questionar quais são os três fatores mais importantes para a escolha de um fast-food, a
pesquisa Fast-Food no Brasil aponta que 56% dos consumidores costumam creditar como
fator mais importante para a escolha o sabor da comida; e 27% consideram mais importante
a higiene do local. Na hora de escolher o restaurante fast-food, o fator preço pesa pouco:
apenas 3% dos entrevistados consideraram esse quesito importante. Fila, visual da loja e
apresentação dos funcionários também não pesam muito: apenas 1% dos entrevistados
considerou cada um desses tópicos importante no momento da escolha, segundo a pesquisa
(ABRASEL, 2011).
Do que você mais gosta na rede de fast-food? De acordo com a coordenadora da
pesquisa, 65% dos entrevistados responderam que o sabor é o fator determinante para o
consumo; 12% frequentam pela variedade de pratos/sanduíches; e 10% pela rapidez.
Questões como apresentação do alimento, preço, higiene do local e atendimento têm,
respectivamente, os índices de 4%, 4%, 4% e 1% dos entrevistados (ABRASEL, 2011).

2.2 Crescimento nas redes de Fast-Foods

As franquias de redes de Fast-Foods aumentaram sua participação no mercado


brasileiro em 2011 e passaram a representar 8% do Produto Interno Bruto Nacional (PIB) –
o faturamento foi de 286 bilhões de reais, segundo pesquisa realizada consultoria Rizzo
Franchise (ÁLVARES, 2012). Conforme a Figura 1, o crescimento do faturamento anual
dos fast-foods anual vem crescendo desenfreadamente.
19

FIGURA 1 - Crescimento do faturamento anual dos fast-foods

Fonte: (FRANCHISE, 2012)

Por esta linha de raciocínio, (CARNEIRO, 2012), comenta:

No ano passado, segundo dados da Abia (Associação Brasileira da Indústria de


Alimentos), o setor de serviços de alimentação faturou R$ 235 bilhões, crescimento
de 16% em relação a 2010. Na última década, os serviços de alimentação cresceram
em média 15% ao ano no Brasil, e o varejo de produtos alimentícios, 12%.

De acordo com o levantamento da Associação Brasileira de Franchising (ABF),


cada brasileiro deixou 0,51 centavos nos caixas das franquias por hora em 2011. A pesquisa
destaca, ainda, a geração de 266 mil novos empregos diretos – um crescimento de 16% na
comparação com 2010 – e o emprego de cerca de dois milhões de pessoas. Em 2011, 19 mil
novas unidades de franquias foram abertas – o que corresponde a 53 franquias por dia ou
dois por hora – e 284 empresas entraram para o Franchising (ÁLVARES, 2012).

2.3 Formas Atuais de Pedidos

2.3.1 Pedido indo ao Local

A mais convencional e primitiva forma de pedido de lanches é indo ao local e


esperando o pedido ficar pronto, para comer no local ou levar para comer em outro lugar. A
desvantagem desta forma é que acaba causando transtornos, exigindo transporte, podendo
haver filas e congestionamentos nas cidades grandes, ocasionando atraso e inconvenientes
aos clientes.
20

2.3.2 Pedido via Telefone

Esta forma é a que mais tem força no mercado atualmente, pois apenas com o
auxílio de um telefone fixo, ou mesmo um telefone celular. O cliente através do serviço
telefônico liga para o estabelecimento e efetua seu pedido, porém, em muitas vezes encontra-
se linhas telefônicas ocupadas por parte dos estabelecimentos, devido à grande demanda.
Em outras situações, acabam sendo enviados pedidos de forma errônea, ou entregues em
lugares errados, devido à falha de comunicação telefônica, que pode se encontrar com
chiados e ruídos, trazendo prejuízos para o estabelecimento e descontentamento por parte
do cliente.

2.3.3 Pedido via Internet através de um Celular

Com certeza a forma de realização de pedidos mais tecnológica e qualificada, pois


com apenas o auxílio de um celular (smartphone), o cliente pode efetuar a realização de
pedidos, de forma mais rápida, ágil e segura. Através do celular o cliente tem acesso à
visualização completa do cardápio do estabelecimento e informações privilegiadas, tais
como: os produtos mais pedidos e promoções atuais. Além, de driblar as filas,
congestionamentos e linhas telefônicas ocupadas, que muitas vezes lhe causam um grande
inconveniente. Desta forma, com a utilização desta forma, o cliente estará evitando falhas
nos pedidos e falhas de entrega de pedido. Trazendo conforto e qualidade de serviço e
atendimento do estabelecimento para o cliente.

2.4 Gestão dos Pedidos por parte dos Estabelecimentos

2.4.1 Comanda de Papel

É a forma mais simples e antiga de controle do que foi consumido pelo cliente.
Podendo a mesma, ficar com o cliente ou o caixa do estabelecimento, variando de um para
o outro.

2.4.1.1 Comanda em Posse do Cliente

Com a comanda ficando em posse do cliente, a chance de acabar gerando algum


21

constrangimento em caso de perda da comanda é bem alta. De acordo com a Lei Federal nº.
8.079, de 11 de setembro de 1990, do Código de Defesa do Consumidor a cobrança da taxa
sobre a perda da comanda é um abuso e é considerada ilegal.

2.4.1.2 Comanda em Posse do Caixa do Estabelecimento

No caso de a comanda ficar com o caixa do estabelecimento, a chance de perda é


minimizado, porém, desta forma o cliente dependerá de lembrar-se do valor no momento de
efetuar o pagamento, sendo que nem todos os estabelecimentos inserem na nota o valor total
consumido, mesmo isto sendo ilegal pelo Código de Defesa do Consumidor.

2.4.2 Comanda com Cartão

O modelo de comanda com cartão é muito comum em bares, restaurantes,


lanchonetes e boates. Cada item consumido pelo cliente é marcado na comanda por parte do
estabelecimento para a devida cobrança no momento de saída do cliente.
Este modelo possui a vantagem de agilidade no atendimento, porém, em muitos
casos, acabam-se perdendo a comanda, causando constrangimento por parte do cliente, com
a empresa.

2.4.3 Comanda em Softwares

É o modelo de comanda mais utilizado atualmente no mercado Brasileiro, a cada


item consumido pelo cliente o mesmo é inserido no sistema pelo atendente do
estabelecimento, sendo devidamente cobrado no momento de saída, sem a necessidade de o
cliente se preocupar em ficar em posse da comanda, como ocorre na comanda com cartão.
A grande desvantagem deste modelo é a falta de transparência a comanda durante
o atendimento, pois o cliente só terá acesso a comanda no momento do pagamento, pois a
comanda virtual fica em posse do estabelecimento.

2.4.4 Portal de Gestão e Estatísticas na Web para os administradores das Empresas

O modelo de portal de gestão e estatísticas na web é a forma mais inovadora e


tecnológica que existe no mercado brasileiro, devido sua agilidade, qualidade e
transparência do serviço sendo disponibilizado.
22

2.4.4.1 Central de Pedidos Online

O módulo de central de pedidos online é algo muito importante a ser destacado,


sendo utilizado geralmente por grandes empresas. Com este modelo o estabelecimento
recebe seus pedidos efetuados via celular, diretamente em sua plataforma online, onde
estarão todas as informações inerentes aos pedidos, tais como dos produtos desejados e
informações para entrega já detalhadas e validadas.
Com a utilização deste modelo, empresas que possuem filiais podem acompanhar
avaliar e analisar a evolução de suas filiais em tempo real.

2.4.4.2 Relatórios

No modelo de portal de gestão Web, deve ser destacado o módulo de relatórios,


que por muitas vezes, fazem uma grande diferença para os estabelecimentos, por possuir
informações detalhadas e minuciosas, de quais os produtos mais pedidos, quais as
promoções mais aguardadas, podendo, através disso realizar planos de marketing e
promoções para atrair o cliente, exatamente nos pontos preferidos do cliente.

2.5 Android

Segundo Lecheta (2010), o Android é uma plataforma de desenvolvimento para


aplicativos móveis como smartphones e contém um sistema operacional baseado em Linux,
uma interface visual rica, GPS, diversas aplicações já instaladas e ainda um ambiente de
desenvolvimento bastante poderoso, inovador e flexível.

2.5.1 Utilização do Android no Brasil

A empresa Kantar Worldpanel ComTech divulgou os dados sobre a utilização de


smartphones no país e apontou que a base de usuários brasileiros usando a plataforma do
Google já corresponde a 46.8% do mercado. (BARROS, 2012)
A taxa de aquisição de dispositivos iOS e Android superou a de qualquer
tecnologia de consumo da história, segundo estudo realizado pela Flurry. Comparado às
recentes tecnologias em uso, as chamadas tecnologias smart foram adotadas pelos usuários
10 vezes mais rápido que os computadores, em 1980,2 vezes mais que a Internet, durante a
23

bolha, na década de 90, e 3 vezes mais rápido que a adoção recente das redes sociais.
No geral, a Flurry estima que havia mais de 640 milhões de dispositivos iOS e
Android em uso durante o mês de julho de 2012. Ainda segundo a análise, a adoção dos
dispositivos móveis cresce rapidamente para além dos mercados iniciais, como América do
Norte e Europa Ocidental. Ou seja, com as tecnologias smart, foi criado "um verdadeiro
mercado mundial", segundo disse Peter Farago, no blog da empresa. (IDGNOW, 2012)

2.5.2 Arquitetura Android

A arquitetura do sistema operacional Android, como mostra a Figura 2, é dividida


em camadas, aonde cada parte é responsável por gerenciar os seus respectivos processos
(LECHETA, 2010).
FIGURA 2 - Camadas da arquitetura Android

Fonte: (TISELVAGEM, 2012)

As quatro camadas demonstradas na Figura 2 são:


 Linux Kernel: O Google usou a versão 2.6 do Linux para construir o kernel
do Android, o que inclui os programas de gerenciamento de memória, as
configurações de segurança, o software de gerenciamento de energia e
vários drivers de hardware (STRICKLAND, 2009).
 Bibliotecas e Serviços: Nesta camada encontram-se as principais
bibliotecas utilizadas pelo Android, dentre elas a OpenGl/ES para trabalhar
24

com gráficos e a SQLite que permite manipular a base de dados. Encontra-


se também a Dalvik, que é uma JVM (Java Virtual Machine) para rodar o
conteúdo Java. A maior parte destas bibliotecas foi desenvolvida em C++
(PRADO, 2011).
 Frameworks: Desenvolvida basicamente por completo em Java, esta
camada é responsável pela interface com as aplicações Android. Ela provê
um conjunto de bibliotecas para acessar os diversos recursos do dispositivo
como interface gráfica, telefonia, serviço de localização (GPS), banco de
dados persistente, armazenamento no cartão SD, 20 etc. Fornece blocos de
alto nível de construção utilizados para criação de aplicações. O framework
vem pré-instalado com o Android (MOBILEIN, 2010).
 Aplicações: Nesta camada que ficam as aplicações (desenvolvidas em
Java) para o Android. E é um dos grandes segredos do sucesso da
plataforma, já que possui mais de 250.000 aplicações no Android Market,
e continua crescendo cada dia que passa (PRADO, 2011).

2.6 Vantagens da utilização de dispositivos móveis

2.6.1 Mobilidade

Conforme o Dicionário Online de Português DICIO (2013), a palavra mobilidade


pode ser definida da seguinte forma, “facilidade para se mover, para ser movido”. Esta
definição genérica mostra que tudo que se move fisicamente no espaço por si só ou por
intervenção de algo ou de alguém está exercendo mobilidade.
Mobilidade, segundo (Lee et al, 2005), são as capacidades de poder deslocar-se
facilmente. Na visão computacional, a mobilidade pode ser atribuída ao uso de dispositivos
móveis funcionais e com capacidade de conectar-se, obter dados e fornecê-los a outros
usuários, aplicações e sistemas.
Seguindo esta mesma linha de raciocínio, MENDONÇA (2013) afirma que a
vantagem mais trivial da mobilidade é, logicamente, a possibilidade de acessar dados em
qualquer lugar e a qualquer momento.

2.6.2 Portabilidade
25

A portabilidade de um programa de computador é a sua capacidade de ser


compilado ou executado em diferentes arquiteturas (seja de hardware ou de software). O
termo pode ser usado também para se referir a reescrita de um código fonte para outra
linguagem de computador.
Segundo FROZZA (2013), a portabilidade é definida como a capacidade de ser
facilmente transportável. “Hoje em dia”, para serem considerados portáteis, os dispositivos
móveis em geral têm que ser transportados facilmente na mão.
A mobilidade atualmente é uma necessidade mundial, sua evolução ocorreu de
forma muito acelerada devido ao acesso a dados e informações sem restrições de horário e
lugar, sendo este o grande atrativo da tecnologia.

2.7 Conclusão

Nesse capítulo foi apresentado referenciais teóricos sobre as redes de fast-food no


Brasil, contemplando informações de sua história e desenvolvimento, além, de citar quais as
preferências dos brasileiros em detrimento das redes de fast-food.
Foram mostrados quais as atuais formas de realização e gestão de pedidos
alimentícios atuais e futuros, apresentando o crescimento das redes de fast-foods, além de
dados e estatísticas da utilização da plataforma Android e da vantagem da utilização dos
dispositivos móveis em geral.
Pode-se concluir de acordo com as informações levantadas neste capítulo, o
mercado do ramo alimentício é uma área em bastante crescimento, com alta necessidade de
inovação nas atuais formas de trabalho, possuindo um grande potencial econômico não só
no mercado brasileiro, como no mercado mundial.
26

3 COMÉRCIO ELETRÔNICO E OFERTAS ON-LINE

Neste capítulo serão mostradas informações sobre o mercado do comércio


eletrônico, chamado também de e-commerce.
Além disto, será visto quais as formas atuais de pagamento eletrônico, além, de
formas e tipos de cardápios online.

3.1 Comércio eletrônico

Segundo LOGISTA ONLINE (2013), o comércio eletrônico ou e-commerce é a


compra e venda de mercadorias ou serviços por meio da Internet, onde as chamadas Lojas
Virtuais oferecem seus produtos e formas de pagamento online. O comércio eletrônico é um
meio facilitador dos negócios, tornando o processo de venda fácil, seguro, rápido e
transparente, reduzindo os custos das empresas que atuam neste segmento e estimulando a
competitividade.

3.1.1 Crescimento do comércio eletrônico no mercado Brasileiro

As vendas no comércio eletrônico brasileiro devem atingir R$ 28 bilhões neste


ano, quando o segmento pode superar 50 milhões de consumidores, conforme projeções
traçadas pela empresa especializada em dados do setor, e-bit (G1, 2013).
Para Luís Felipe Cota, cofundador e diretor de Marketing da Goomark, agência de
comunicação e marketing para pequenas e médias empresas (PMEs), este é um grande
momento para as empresas investirem nas vendas pela internet. “O mercado está crescendo,
já que a comodidade e segurança das compras feitas pela internet atraem um público cada
vez maior. Para os empresários, a mudança de comportamento do consumidor representa
uma oportunidade de fazer os negócios alavancarem”, avalia Cota (ADRENALINE, 2013).
Em 2012, foi realizado ao longo do ano 66,7 milhões de pedidos, um volume
24,2% maior do que o registrado no ano anterior. Conforme a e-bit, 42,2 milhões de pessoas
já fizeram, ao menos, uma compra on-line no Brasil. O tíquete médio em 2012 fechou em
27

R$ 342 (G1, 2013).


O número de consumidores virtuais também deve saltar neste ano, superando 50
milhões de pessoas, segundo o diretor geral da e-bit, Pedro Guasti. Atualmente, 42,2 milhões
de consumidores já realizaram uma compra online no Brasil (G1, 2013).

3.1.2 Vantagens do comércio eletrônico

De acordo com FAST COMPRAS(2011), Para suprir as demandas de serviços


logísticos nas operações desse novo mercado, a logística para o e-commerce tenta minimizar
as dificuldades para se tornar mais flexível e alinhada ao planejamento da empresa, criando
assim um ambiente propicio para a criação e desenvolvimento de vantagens competitivas.
O comércio eletrônico permite aos clientes e empresas maior produtividade nas
operações, redução de custos, além de maior confiabilidade e qualidade nos serviços
prestados, através de um seguro sistema web on-line 24 horas por dia, proporcionando alta
rentabilidade e conforto para as empresas e facilidade e economia por parte dos clientes.

“O e-commerce traz grandes benefícios para os clientes, para os consumidores e


também para os fornecedores. Os grandes ganhos para os consumidores é
proporcionar compras mais eficientes, oferecendo um maior leque de escolhas,
preços mais baixos e um alto nível de serviços personalizados. Também oferece
novos tipos de produtos e serviços com novas maneiras de adquiri-los” (CASTRO,
2011).

Outro grande diferencial do e-commerce é que é possível o sistema da empresa


interagir de forma individual com cada cliente, possibilitando assim um marketing
personalizado e obviamente aumentar as vendas com esse tipo de atendimento.
Sobre os principais benefícios disponibilizados para as empresas, segundo Castro
(2011), são “custos mais baixos para alcançar um público maior, aberto 24 horas por dia,
novos métodos de distribuição, contato direto com o cliente, mais informações sobre os
consumidores e marketing personalizado.

3.1.3 Segurança

Um dos assuntos mais importantes no comércio eletrônico é a segurança, a internet


móvel possui as mesmas características que a Internet como um todo.
Mas pode-se dizer que o usuário (cliente), necessita de cuidados básicos já
conhecidos mundialmente, tais como fornecimento de informações pessoais em apenas
28

páginas confiáveis.
As empresas atualmente focam muito em segurança, utilizando-se da criptografia
nos dados trafegados na página, dificultando a atividade de hackers com a intenção de
capturar informações sigilosas dos usuários.

3.1.3.1 Criptografia

Segundo Alecrim (2009), O termo criptografia surgiu da fusão das palavras gregas
"kryptós" e "gráphein", que significam “ocultos” e "escrever", respectivamente. Trata-se de
um conjunto de conceitos e técnicas que visa codificar uma informação de forma que
somente o emissor e o receptor possam acessá-la, evitando que um intruso consiga
interpretá-la. Para isso, uma série de técnicas é usada e muitas outras surgem com o passar
do tempo.
Na computação, a técnica usada são a de chaves, as chamadas “CHAVES
CRIPTOGRÁFICAS”, trata-se de um conjunto de bit’s baseado em um algoritmo capaz de
codificar e de decodificar informações. Se o receptor da mensagem usar uma chave diferente
e incompatível com a do emissor ela não conseguira ter a informação. (ROMAGNOLO,
2013)

3.2 Formas de pagamento utilizadas no comércio eletrônico

3.2.1 Dinheiro

A forma mais primitiva, porém ainda muito utilizada, desta maneira o cliente, no
momento da recepção de seu produto, realiza o pagamento em dinheiro “vivo” à empresa
prestadora do serviço.
Apesar do crescimento dos cartões, o dinheiro continua sendo o principal meio de
pagamento para transações de pequeno valor. Nas compras de valores entre R$ 20 a R$ 50,
o dinheiro é responsável por 61% dos pagamentos, ante 39% dos cartões. Entre R$ 10 e R$
20, o dinheiro chega a 83% e abaixo de R$ 10, a 91%, segundo a quarta edição da pesquisa
nacional de uso de meios eletrônicos, realizada pelo Instituto Datafolha a pedido da Abecs
(Associação Brasileira das Empresas de Cartões e Serviços) (JÚNIOR, 2011).
29

3.2.2 Boleto bancário

Desta forma o cliente imprime boleto ao finalizar a compra e paga no banco de sua
preferência ou por meio do Internet Banking.
O boleto bancário ainda é um meio de pagamento utilizado por muitos no e-
commerce, uma vez que nem todos os compradores possuem cartão de crédito e alguns ainda
têm receio de utilizar o cartão na Internet.
Cerca de 12% dos clientes, optam por esta forma de pagamento, sendo minoria
dentre as formas disponíveis.

3.2.3 Cartão de crédito / débito

Segundo a empresa de cartões de crédito, VISA (2013), comenta que o


crescimento no uso dos produtos de pagamento eletrônico como os cartões de crédito e
débito acrescentou US$ 51,3 bilhões ao Produto Interno Bruto (PIB) do Brasil.
Ao optar por esse meio de pagamento no carrinho de compras do e-commerce, o
cliente digita o número e código de segurança do cartão, por meio de uma conexão segura,
diretamente no sistema da operadora. Com isso, após a aprovação do crédito a compra está
finalizada.

3.2.4 Paypal / PagSeguro

Segundo Sardinha (2012), o PayPal é um serviço de pagamento online. Você se


cadastra para ter uma conta virtual e com ela você pode fazer compras em qualquer parte do
mundo, pois ele é internacional. É claro que o site em que você deseja comprar deve ser
conveniado com o PayPal.
Após isso, Sardinha (2012) complementa que nesse cadastro você vincula sua
conta bancária e/ou cartão de crédito(s). Então o site envia a cobrança para o seu
banco/cartão (o que você escolher) e paga o vendedor. Ou seja, o site onde a compra foi
efetuada não terá acesso a qualquer informação sua e você não precisará fazer um cadastro
no mesmo.
Vale ressaltar que o PagSeguro possui a mesma idéia de negócio, exatamente nos
mesmos moldes, a única diferença entre eles, é o PagSeguro pertencer a empresa brasileira
UOL e o PayPal é americano, mais especificamente da Califórnia.
30

O Pay-Pal / PagSeguro, transfere o valor para a conta do lojista virtual. O clie nte
pode utilizar a sua conta tanto para pagar quanto para receber. A vantagem deste sistema é
que é relativamente barato e é utilizado no mundo todo. Uma desvantagem é que representa
uma etapa a mais para os clientes no processo de compra.

3.3 Cardápio e ofertas online no ramo alimentício

3.3.1 Cardápio online personalizado

Em empresas do ramo alimentício, um cardápio online personalizado com certeza


é a vontade de todas, sendo um cardápio com as listagens de todos seus produtos disponíveis
com um design limpo, bonito e personalizável, sendo assim, possível a realização de pedidos
sem a necessidade do contato pessoal do garçom ou o contato telefônico do atendente, que
na maioria das vezes não é possível.
Atualmente não existem muitos sites e empresas que disponibilizam este tipo de
serviço, pode-se citar a empresa PedidosJá.com, pioneira no ramo, sendo iniciada em 2013
já possui em seu sistema mais de 1800 cardápios online cadastrados e milhares de usuários
que frequentemente visualizam a página a procura de novas escolhas e opções de produtos.

3.3.2 Agendamentos de pedidos on-line

Outra modalidade, mas, não menos importante é a área de agendamento de pedidos


de forma online e instantânea no ramo alimentício, através desta modalidade de serviço, a
empresa que disponibiliza este serviço através de um portal web ou aplicação móvel, o
cardápio online é disponibilizado pela empresa contratante, com isso o usuário (cliente),
pode através de sua rede Wireless ou 3G, realizar a escolha de seu pedido e pedir diretamente
seu pedido, sendo assim, desnecessário o contato pessoal ou telefônico.
Com o passar dos anos, este serviço deve tomar comum no ramo alimentício e
possuir inúmeras funcionalidades, pois a cada dia, as pessoas em geral brigam contra o
tempo para realização de suas atividades, portanto, com um sistema nestas características,
facilitaria e muito a vida das pessoas, trazendo agilidade e conforto no serviço.
31

3.3.3 Ofertas e promoções atualizadas em tempo real

Conforme já descrito anteriormente, as empresas e os clientes buscam conforto,


agilidade e qualidade nos serviços, seja por eles, disponibilizados ou usufruídos.
Os brasileiros em geral, por sua maioria possuir uma condição econômica não
muito favorável, esperam muitas vezes, por dia, meses, para realizar um desejo pessoal, ou
para ter a possibilidade de presentear alguém, com isso, ficam a todo o momento a procura
de promoções para facilitação da realização de suas vontades.
O ideal para esta fatia do mercado seria, conforme comentado anteriormente, um
portal web ou uma aplicação móvel capaz de num único sistema, disponibilizar em tempo
real, quais são as promoções e ofertas e diversas empresas ao mesmo tempo, sem a
necessidade da procura incessante vivida pelas pessoas atualmente, sendo assim, no mesmo
momento já sendo possível a escolha e realização do pedido.

3.4 Conclusão

Neste capítulo foi explanada a história, crescimento, características e vantagens do


comércio eletrônico, citando inclusive a questão da segurança da informação dos dados
trafegados no mesmo.
Foram apresentadas e descritas as principais formas de pagamentos utilizadas
atualmente no mercado de comércio eletrônico mundial, além de ser mostrado formas
inovadoras de cardápios e ofertas online no ramo alimentício, tais como as ofertas e
promoções atualizadas em tempo real, centralizadas num único aplicativo.
Com bases das informações levantadas, pode-se concluir que o comércio
eletrônico, já é uma alternativa bastante segura e madura, capaz de possibilitar a
confiabilidade e segurança andarem lado a lado dos pagamentos realizados fisicamente,
além de um grande potencial de mercado disponível para inclusão no ramo alimentício.
32

4 MODELAGEM DO SISTEMA

Neste capítulo será abordada a modelagem do sistema utilizando a linguagem


UML, descrevendo seu conceito, visão geral, definição dos requisitos funcionais e não
funcionais e o dos casos de uso juntamente com seus diagramas de atividade, além da
expansão destes casos de uso.

4.1 UML

Segundo BOOCHET (2006), a UML é uma linguagem padrão para a elaboração


da estrutura de projetos de software, onde poderá ser empregada para a visualização, a
especificação, a construção e a documentação de artefatos que façam uso de sistemas
complexos de software.
De acordo WAZLAWICK (2011), UML significa Unified Modeling Language
(Linguagem de Modelagem Unificada), com isso pode ser dito que é uma linguagem que
descreve coisas.
Conforme WAZLAWICK (2011), a UML está dividida em três diagramas:
a) Diagramas estruturais, sendo posto como diagramas de pacotes, classes, objetos,
estrutura composta, componentes e distribuição.
b) Diagramas comportamentais, compreendendo os diagramas de casos de uso, atividades
e máquina de estados.
c) Diagramas de interação, compreendendo os diagramas de comunicação, sequência,
tempo e visão geral de integração.

4.1.1 Processo Unificado – UP

Segundo WAZLAWICK (2011), o processo unificado é desmistificado em três


valores:
a) É dirigido por casos de uso: quando o planejamento do desenvolvimento é feito em
função dos casos de uso identificados, tratando-se primeiramente os mais complexos.
33

b) É centrado na arquitetura: quando o processo de desenvolvimento prioriza a


construção de uma arquitetura de sistema. Essa arquitetura baseia-se na identificação
de uma estrutura de classes, produzida a partir de um modelo conceitual.
c) É iterativo e incremental: quando a cada ciclo de trabalho realizado, novas
características são adicionadas à arquitetura do sistema, deixando-a mais completa e
mais próxima do sistema final com o passar do tempo.
O processo unificado é dividido em quatro fases: concepção, elaboração,
construção e transição. (WAZLAWICK, 2011).
 Concepção é a primeira fase do processo unificado, na qual se procurar
levantar as principais características e compreender o sistema como um
todo.
 Elaboração e Construção ocorrem em ciclos iterativos. A Elaboração é
onde é incorporado a maior parte da análise e projeto, e a Construção
incorpora a maioria da implementação e testes a serem realizados.
 Transição, após a conclusão do sistema, será implantada substituindo o
sistema atual, seja ela manual ou computadorizada.

4.1.2 Casos de Uso

Segundo WAZLAWICK (2004, p. 44), os casos de uso devem corresponder aos


principais processos de negócio da empresa e possivelmente são associados a vários
requisitos funcionais.
GUEDES (2005) relata que:

“O diagrama de caso de uso por meio de uma linguagem simples, demonstra o


comportamento externo do sistema, procurando apresentar o sistema através de
uma perspectiva do usuário, demonstrando as funções e serviços oferecidos e quais
usuários poderão utilizar cada serviço. Este diagrama é, dentre todos os diagramas
de UML, o mais abstrato, flexível e informal, sendo utilizado principalmente no
início da modelagem do sistema, embora venha a ser consultado e possivelmente
modificado durante todo o processo de engenharia e sirva de base para a
modelagem de outros diagramas.”. (GUEDES, 2005)

Um caso de uso bem escrito é fácil de ler. O caso de uso contém sentenças em uma
única forma gramatical – um passo de ação simples – na qual um ator alcança um resultado
ou transmite informação para outro ator. Aprender a ler casos de uso não deve tomar mais
do que poucos minutos. Aprender a escrever um bom caso de uso é difícil. (COCKBURN,
34

2005)
Segundo COCKBURN (2005), os casos de uso são fundamentalmente uma forma
textual, embora possam consistir em fluxogramas ou diagramas de sequência. Servem como
meio de comunicação entre pessoas que muitas vezes não possuem treinamento especial e,
portanto, texto simples geralmente é a melhor escolha.
Os casos de uso com o estereótipo «CRUD» são casos de uso que, conforme
COCKBURN (2005) representam operações em inglês Create, Retrieve, Update e Delete
ou Criar, Recuperar, Atualizar e Deletar.

4.1.3 Levantamento de Requisitos

Abaixo serão apresentados os principais requisitos funcionais e não funcionais


deste projeto, nos quais foram analisados os três módulos desenvolvidos, tais como: Portal
Web e o Aplicativo Android para Pedidos para administração do sistema como um todo.

QUADRO 2 - RF 001 – Permitir empresas enviar Feedbacks para o


Administrador

RF 001 – Permitir empresas enviar feed-back para o Administrador


Descrição:
O sistema deverá permitir o envio de feedbacks, enviados pelos os responsáveis das
empresas.
Todos os usuários com permissão a central administrativa.
Caso ocorra algum erro, o sistema deverá enviar uma mensagem de erro.

QUADRO 3 - RF 002 – Validar usuário e senha

RF 002 – Validar usuário e senha


Descrição:
O sistema deve validar o usuário e senha de acesso.
O sistema não deverá permitir a realização de pedido por parte do cliente, caso as
credências sejam inválidas.
O sistema não deverá permitir acesso ao sistema algum ao sistema por parte
empresarial e administrador, caso as credências sejam inválidas.
Caso o usuário e senha sejam inválidos, o sistema deverá enviar uma mensagem do
erro.
35

QUADRO 4 - RF 003 – Permitir o filtro de informações

RF 003 – Permitir o filtro de informações


Descrição:
Em atividades em que existam uma grande massa de dados, o sistema deve permitir
a realização de filtros nas informações presentes.
O filtro deverá ser pré-definido, possibilitando ao usuário apenas manipular apenas
as informações que serão verificadas nos filtros.
Caso seja informado algum filtro incorreto, o sistema deverá apresentar uma
mensagem de erro, informando qual foi a ação ocasionadora.

QUADRO 5 - RF 004 – Verificar conexão com o WebService

RF 004 – Verificar conexão com o WebService


Descrição:
Na inicialização do sistema, o mesmo deverá verificar se existe conexão com o
WebService.
Caso o mesmo esteja indisponível ou possua informações inválidas, o sistema deverá
informar uma mensagem de erro e fechar a aplicação.

QUADRO 6 - RF 005 – Verificar conexão com a Internet

RF 005 – Verificar conexão com a Internet


Descrição:
Na inicialização do sistema, o mesmo deverá verificar se possui conexão com a
Internet.
Caso o mesmo não possuir, o sistema deverá informar uma mensagem de erro e
fechar a aplicação.

QUADRO 7 - RF 006 – Validar Cep

RF 006 – Validar Cep


Descrição:
O sistema deverá validar o Cep, através de um WebService externo especialista na
função.
Caso o Cep seja inválido, o sistema deverá enviar uma mensagem de erro e retornar
a etapa de informação do Cep, possibilitando a escolha de outra forma de busca de
endereço.
QUADRO 8 - RF 007 – Validar token de acesso do usuário

RF 007 – Validar token de acesso do usuário


Descrição:
O sistema deverá validar o token de acesso do usuário.
Caso o token de acesso do usuário seja inválido, o sistema deverá enviar uma
mensagem do erro e não permitir a realização de pedidos.
36

QUADRO 9 - RF 008 – Processar Informações de Localização

RF 008 – Processar Informações de Localização


Descrição:
Cabe ao dispositivo móvel presente na utilização do aplicativo, estar com seu GPS
atualizado e em pleno funcionamento.
Caso o smartphone não possuir o recurso de GPS, o aplicativo ao iniciar, deverá
desabilitar a opção de busca de endereço via GPS.
Se ocorrer algum erro durante a busca da localização do dispositivo móvel, o
aplicativo deverá apresentar uma mensagem de erro.

QUADRO 10 - RF 009 – Aprovar/Cancelar Pedidos

RF 009 – Aprovar/Cancelar Pedidos


Descrição:
Para a realização aprovação ou cancelamento de pedidos, o sistema deverá certificar
de o funcionário da empresa, está com seu login ativo e permissões totais.
Caso ocorra algum erro durante o processo, o sistema deverá uma mensagem de erro.

QUADRO 11 - RF 010 – Enviar Pedido

RF 010 – Enviar Pedido


Descrição:
Para realizar o envio do pedido, o sistema deverá certificar-se de que todas as etapas
prévias já foram concluídas.
Caso ocorra algum erro durante o processo, o sistema deverá enviar uma mensagem
de erro.
Restrições lógicas:
Caso o estabelecimento escolhido para pedido, possua um valor mínimo para
pedidos e este não seja alcançado, o sistema deverá enviar uma mensagem de
informação, não concluindo o pedido.

QUADRO 12 - RF 011 – Gerar relatórios de bebidas e lanches mais pedidos

RF 011– Gerar relatórios de bebidas e lanches mais pedidos


Descrição:
O sistema deverá buscar em todos os pedidos já concluídos, quais os lanches e
bebidas mais presentes, gerando um relatório para acompanhamento e auxílio na
tomada de decisão empresarial.
Os resultados do relatório deverão ser baseados apenas nos pedidos realizados a
empresa vinculada ao login utilizado para dar acesso ao sistema.
Caso ocorra algum erro, o sistema deverá enviar uma mensagem de erro.
QUADRO 13 - RNF 001 - Trafegar informações com o WebService no formato
Json

RNF 001 - Trafegar informações com o WebService no formato Json


Descrição:
O sistema deverá trafegar as informações com o WebService no formato Json, para
maior agilidade na comunicação.
37

QUADRO 14 - RNF 002 - Módulos restritos a tipos específicos de usuários

RNF 002 - Módulos restritos a tipos específicos de usuários


Descrição:
Os módulos do sistema, deverão ser restritos a tipos específicos de usuários, usuários
do tipo cliente por exemplo, não poderão acessar o módulo administrador e ao
contrário também.
Caso o tipo de usuário a tentar conectar-se a um módulo, no qual o mesmo não tem
permissão, o sistema
QUADROdeverá
15 -enviar uma- mensagem
RNF 003 detodas
Funcionar em erro..as versões do Android

RNF 003 - Funcionar em todas as versões do Android


Descrição:
O módulo móvel deverá funcionar em todas as versões do Android, sem
diferenciação de recursos ou ações.

QUADRO 16 - RNF 004 – Validar Informações Digitadas

RNF 004 – Validar Informações Digitadas


Descrição:
O sistema deverá validar as informações digitadas, conforme as regras de negócio
da atividade a ser realizada, tais como campos e formulários.
O sistema deverá enviar uma mensagem do erro caso as informações digitadas sejam
inválidas.

4.1.4 Diagrama de Classes

Neste tópico será apresentado o diagrama de classes do projeto como um todo,


devido o mesmo possuir um grande número de tabelas no banco de dados, o mesmo foi
subdividido em 4 grupos.
Conforme apresentado na Figura 03, o primeiro destes grupos, é o grupo dos
Endereços, no qual possui 5 entidades, entre elas: Address, City, State, Country e User.
38

FIGURA 3 - Diagrama ER (Banco de Dados) – Grupo dos Endereços

Fonte: Próprio Autor

O segundo é o grupo das Empresas, pode ser definida como o mais complexo, pois
quase todas as outras entidades, possuem alguma ligação que se não direta, indireta, por
vínculos com outras tabelas. Entre suas entidades básicas, estão: Enterprise, CookeryType,
EnterprisePaymentForm, PaymentForm, EnterpriseSnackTypeType, SnackType e
Feedback. Conforme apresentadas na Figura 04.
39

FIGURA 4 - Diagrama ER (Banco de Dados) – Grupo das Empresas

Fonte: Próprio Autor

O terceiro grupo subdividido é o grupo dos Itens, que podem ser definidos, como
as entidades relacionadas aos produtos - lanches, bebidas e ingredientes - disponíveis para
cada estabelecimento. Dentre as entidades deste grupo, são: Snack, SnackIngredient,
SnackType, Drink, DrinkEnterprise e Ingredient, conforme apresentados na Figura 05.
40

FIGURA 5 - Diagrama ER (Banco de Dados) – Grupo dos Items

Fonte: Próprio Autor

O quarto e último é o grupo dos Pedidos, que consiste nas entidades relacionadas
a realização de pedido. Dentre suas entidades estão: Request, RequestDrink e RequestSnack,
conforme apresentados na Figura 06.
41

FIGURA 6 - Diagrama ER (Banco de Dados) – Grupo dos Pedidos

Fonte: Próprio Autor

4.2 Módulos

4.2.1 Módulo Cliente

4.2.1.1 Apresentação

Este módulo compreende um aplicativo móvel na plataforma Android para


utilização do cliente, para visualizações dos cardápios de todas as empresas cadastradas,
realização de pedidos e possibilidade de avaliações dos serviços prestados por parte da
empresa.
42

4.2.1.2 Diagrama de casos de uso

A figura 07 demonstra o diagrama de casos de uso do Módulo Cliente, que está


totalmente integrado ao outro módulo deste projeto.
FIGURA 7 - Diagrama de casos de uso do Módulo Cliente

Fonte: Próprio Autor

4.2.1.2.1 UC001 - Alterar Informações do Usuário

Este caso de uso tem o objetivo de possibilitar ao cliente alterar suas informações
de usuário.

4.2.1.2.1.1 Diagrama de Atividade


43

FIGURA 8 - Diagrama de Atividade - Caso de Uso UC001 – Alterar Informações do


Usuário
act Diagrama de Ativ idade

Inicio

Selecionar Usuário

Preencher Informações

Informações Válidas?

Não
Env iar Mensagem de Erro

Sim

Sistema Grav a
Informações

Final

Fonte: Próprio Autor


Abaixo serão apresentados os fluxos do diagrama de atividade apresentado na
Figura 8.
 Fluxo Principal
o O cliente irá selecionar seu usuário, preencherá suas informações, o
sistema irá valida-las e então as gravará no banco de dados.
 Fluxo Alternativo
o O cliente irá selecionar seu usuário, preencherá suas informações, o
sistema irá identificar que as informações são inválidas, enviará uma
mensagem de erro e retornará a etapa de preenchimento de
informações, seguindo seu fluxo normalmente.
44

4.2.1.2.2 UC002 - Efetuar Login

Este caso de uso tem o objetivo de possibilitar ao cliente Efetuar Login no Sistema
de diferentes formas.

4.2.1.2.2.1 Diagrama de Atividade

FIGURA 9 - Diagrama de Atividade - Caso de Uso UC002 – Efetuar Login

Fonte: Próprio Autor


Abaixo serão apresentados os fluxos do diagrama de atividade apresentado na
figura 9.
 Fluxo Principal
o O cliente irá selecionar a forma de login via Usuário e o sistema dará
acesso total ao mesmo para realização de pedidos de lanches.
 Fluxo Alternativo
o O cliente irá selecionar a forma de login via Facebook e o sistema
dará acesso total ao mesmo para realização de pedidos de lanches.

4.2.1.2.3 UC003 - Efetuar Login via Facebook

Este caso de uso tem o objetivo de possibilitar ao cliente Efetuar Login no Sistema,
informando as credencias de sua conta no Facebook.
45

4.2.1.2.3.1 Diagrama de Atividade

FIGURA 10 - Diagrama de Atividade - Caso de Uso UC003 – Efetuar Login Via


Facebook
act Diagrama de Ativ idade

Ini ci o

Informar Usuário e Senha

Usuári o Correto?

Não
Env iar Mensagem de Erro

Si m

Acesso ao Aplicativ o

Fi nal

Fonte: Próprio Autor


Abaixo serão apresentados os fluxos do diagrama de atividade apresentado na
figura 10.
 Fluxo Principal
o O cliente irá digitar seu usuário e senha do facebook, então o sistema
irá validar e liberar o acesso.
 Fluxo Alternativo
o O cliente informará um usuário e senha inválidos do facebook e o
sistema irá enviar uma mensagem de erro, retornando ao passo
anterior seguindo o fluxo normalmente.

4.2.1.2.4 UC004 - Efetuar Login via Usuário

Este caso de uso tem o objetivo de possibilitar ao cliente Efetuar Login no Sistema
através da informação de suas credencias do Sistema.
46

4.2.1.2.4.1 Diagrama de Atividade

FIGURA 11 - Diagrama de Atividade - Caso de Uso UC004 – Efetuar Login Via


Usuário
act Diagrama de Ativ idade

Inicio

Possui Usuário?

Registrar Usuário
Não

Sim

Informar Usuário e Senha

Usuário Correto?
Não
Env iar Mensagem de Erro

Sim

Acesso ao Aplicativ o

Final

Fonte: Próprio Autor


Abaixo serão apresentados os fluxos do diagrama de atividade apresentado na
figura 11.
 Fluxo Principal
o O sistema irá verificar que o cliente já possui conta, o cliente irá
digitar seu usuário e senha, então o sistema irá validar e liberar o
acesso ao aplicativo.
 Fluxo Alternativo 1
o O sistema irá verificar que o cliente não possui usuário, então o
usuário irá registrar um usuário, o sistema irá validar e liberar o
acesso ao aplicativo.
 Fluxo Alternativo 2
o O sistema irá verificar que o cliente já possui conta, o cliente irá
47

digitar seu usuário e senha, o sistema irá identificar que as


informações não são válidas, então enviará uma mensagem de erro,
retornando a etapa anterior, seguindo seu fluxo normalmente.
 Fluxo Alternativo 3
o O sistema irá verificar que o cliente não possui usuário, então o
usuário irá registrar um usuário, então o sistema irá identificar que
as informações não são válidas, então enviará uma mensagem de
erro, retornando a etapa anterior, seguindo seu fluxo normalmente.

4.2.1.2.5 UC005 - Efetuar Logout

Este caso de uso tem o objetivo de possibilitar ao cliente Efetuar Logout no


Sistema.

4.2.1.2.5.1 Diagrama de Atividade

FIGURA 12 - Diagrama de Atividade - Caso de Uso UC005 – Efetuar Logout


act Diagrama de Ativ idade

Inicio

Env iar Mensagem de


Confirmação

Confirmar Logout?

Não Sim
Cancelar Ação de Logout Executar Ação de Logout

Final

Fonte: Próprio Autor


Abaixo serão apresentados os fluxos do diagrama de atividade apresentado na
figura 12.
48

 Fluxo Principal
o O cliente clicará em logout, o sistema irá enviar uma mensagem de
confirmação e executará a ação de logout.
 Fluxo Alternativo
o O cliente clicará em logout, o sistema irá enviar uma mensagem de
confirmação e o mesmo não confirmará, e o sistema cancelará a ação
de logout.

4.2.1.2.6 UC006 - Efetuar Pedido de Lanche

Este caso de uso tem o objetivo de possibilitar ao cliente Efetuar um Pedido de


Lanche.

4.2.1.2.6.1 Diagrama de Atividade

FIGURA 13 - Diagrama de Atividade - Caso de Uso UC006 – Efetuar Pedido de


Lanche
act Diagrama de Ativ idade

Inicio

Obter Endereço

Visualizar Cardápio Escolher Empresa Filtrar Empresas

Definir Quantidade de Selecionar a Forma de


Adicionar Items Pagamento
Cada Item Escolhido
Desej ados no Carrinho

Env iar Pedido

Final

Fonte: Próprio Autor


49

Abaixo serão apresentados os fluxos do diagrama de atividade apresentado na


figura 13.
 Fluxo Principal
o O sistema obtém o endereço do cliente, o cliente filtra e escolhe a
empresa, visualiza o cardápio, adiciona os itens desejado no carrinho
com sua quantidade desejada, após isso, o cliente selecionará a
forma de pagamento e enviará o pedido de lanche ao sistema.

4.2.1.2.7 UC007 - Obter Endereço

Este caso de uso tem o objetivo de possibilitar ao sistema a obtenção do endereço,


através da escolha do cliente da forma para obtenção.

4.2.1.2.7.1 Diagrama de Atividade

FIGURA 14 - Diagrama de Atividade - Caso de Uso UC007 – Obter Endereço

Fonte: Próprio Autor


Abaixo serão apresentados os fluxos do diagrama de atividade apresentado na
figura 14.
 Fluxo Principal
o O cliente irá selecionar a forma de obtenção de endereço via Cep.
 Fluxo Alternativo 1
o O cliente irá selecionar a forma de obtenção de endereço via GPS.
50

4.2.1.2.8 UC008 - Obter Endereço via CEP

Este caso de uso tem o objetivo de possibilitar ao sistema a obtenção do endereço


do cliente através do CEP informando pelo mesmo.

4.2.1.2.8.1 Diagrama de Atividade

FIGURA 15 - Diagrama de Atividade - Caso de Uso UC008 – Obter Endereço


via CEP
act Diagrama de Ativ idade

Inicio

Informar o CEP

CEP Válido?
Não
Env iar Mensagem de Erro

Sim

Consultar o Cep

Obter o Retorno

Retorno Válido?

Não

Sim

Informar Número e
Observ ações do Endereço

Final

Fonte: Próprio Autor


51

Abaixo serão apresentados os fluxos do diagrama de atividade apresentado na


figura 15.
 Fluxo Principal
o O cliente informará o Cep, o sistema validará o mesmo e consultará
Cep, ao obter o resultado, efetuará uma validação e então o cliente
informará o número e observações do endereço.
 Fluxo Alternativo 1
o O cliente informará o Cep, o sistema identificará que o mesmo não
é válido, enviará uma mensagem de erro ao cliente e retornará ao
passo anterior, continuando o fluxo normalmente.
 Fluxo Alternativo 2
o O cliente informará o Cep, o sistema validará o mesmo e consultará
Cep, ao efetuar uma validação identificará que o retorno não é válido
e enviará uma mensagem de erro, retornando ao primeiro passo,
continuando o fluxo normalmente.

4.2.1.2.9 UC009 - Obter Endereço via GPS

Este caso de uso tem o objetivo de possibilitar ao sistema a obtenção do endereço


do cliente através da localização do GPS do mesmo.

4.2.1.2.9.1 Diagrama de Atividade

FIGURA 16 - Diagrama de Atividade - Caso de Uso UC009 – Obter Endereço


Via GPS
act Diagrama de Ativ idade

Inicio

Serv iço de Localização


Processa as Informações

Resultado do Processamento Válido?

Não Sim Informar Número e


Env iar Mensagem de Erro
Observ ações do Endereço

Final

Fonte: Próprio Autor


52

Abaixo serão apresentados os fluxos do diagrama de atividade apresentado na


figura 16.
 Fluxo Principal
o O serviço de localização processa as informações, caso o resultado
do processamento seja válido, o cliente informará o número e
observações referentes ao seu endereço.
 Fluxo Alternativo 1
o O serviço de localização processa as informações, caso o resultado
do processamento não seja válido, o sistema enviará uma mensagem
de erro e finalizará o processo.

4.2.2 Módulo Empresarial

4.2.2.1 Apresentação

Este módulo compreende em um Portal Web para utilização das empresas, para
cadastro de seus produtos (itens do cardápio), para avaliação dos pedidos, visualização de
relatórios e avaliações realizadas pelos clientes, para que através disso os mesmos possam
tomar decisões.

4.2.2.2 Diagrama de casos de uso

A figura 17 demonstra o diagrama de casos de uso do Módulo Empresarial, que


está totalmente integrado aos outros dois módulos deste projeto.
53

FIGURA 17 - Diagrama de casos de uso do Módulo Empresarial

Fonte: Próprio Autor

4.2.2.2.1 UC012 - Alterar informações da Empresa

Este caso de uso tem o objetivo de possibilitar ao operador alterar as informações


relacionadas a empresa.

4.2.2.2.1.1 Diagrama de Atividade

FIGURA 18 - Diagrama de Atividade - Caso de Uso UC012 – Alterar


Informações da Empresa
act Diagrama de Ativ idade

Inicio

Preencher Informações

Informações Válidas?

Não Sim Sistema Grav a


Env iar Mensagem de Erro Informações

Final

Fonte: Próprio Autor


54

Abaixo serão apresentados os fluxos do diagrama de atividade apresentado na


figura 18.
 Fluxo Principal
o O funcionário da empresa preenche as informações da mesma, o
sistema válida e grava as informações.
 Fluxo Alternativo
o O funcionário da empresa preenche as informações da mesma, o
sistema identificará que as informações não são válidas, enviará uma
mensagem de erro e retornará ao passo anterior, seguindo o fluxo
normalmente.
o A informações da empresa terão sido alteradas na base de dados.

4.2.2.2.2 UC013 - Avaliar Pedido Solicitado

Este caso de uso tem o objetivo de possibilitar ao operador avaliar o pedido


solicitado pelo cliente.

4.2.2.2.2.1 Diagrama de Atividade

FIGURA 19 - Diagrama de Atividade - Caso de Uso UC013 – Avaliar o Pedido


Solicitado
act Diagrama de Ativ idade

Inicio

Selecionar Pedido

Aprovar ou Rejeitar?

Env iar Mensagem de Rejeitar Aprovar Env iar Mensagem de


Confirmação de Confirmação de
Rej eição Aprov ação

Confirmar Aprovação de Pedido?


Informar Tempo
Não Aproximado Para Entrega

Confirmar Rejeição de Pedido?

Não

Sim

Sim Aprov ar Pedido

Rej eitar Pedido

Final

Fonte: Próprio Autor


55

Abaixo serão apresentados os fluxos do diagrama de atividade apresentado na


figura 19.
 Fluxo Principal
o O funcionário da empresa, selecionará o pedido, ao mandar aprovar,
o sistema enviará uma mensagem de confirmação de aprovação,
então o funcionário informará o tempo aproximado para entrega e
confirmará a aprovação, com isso, o sistema aprovará o pedido.
 Fluxo Alternativo 1
o O funcionário da empresa, selecionará o pedido, ao mandar rejeitar,
o sistema enviará uma mensagem de confirmação de reprovação,
então o funcionário confirmará a rejeição, com isso, o sistema
rejeitará o pedido.
 Fluxo Alternativo 2
o O funcionário da empresa, selecionará o pedido, ao mandar aprovar,
o sistema enviará uma mensagem de confirmação de aprovação,
então o funcionário informará o tempo aproximado para entrega, e
não confirmará a aprovação, com isso, o sistema retornará ao
primeiro passo, seguindo seu fluxo normalmente.
 Fluxo Alternativo 3
o O funcionário da empresa, selecionará o pedido, ao mandar rejeitar,
o sistema enviará uma mensagem de confirmação de reprovação,
então o funcionário não confirmará a rejeição, com isso, o sistema
retornará ao primeiro passo, seguindo seu fluxo normalmente.

4.2.2.2.3 UC014 - Efetuar Login

Este caso de uso tem o objetivo de possibilitar ao operador Efetuar Login no


Sistema.
56

4.2.2.2.3.1 Diagrama de Atividade

FIGURA 20 - Diagrama de Atividade - Caso de Uso UC014 – Efetuar Login


act Diagrama de Ativ idade

Inicio

Informar Usuário e Senha

Usuário Correto?

Não
Env iar Mensagem de Erro

Sim

Acessar o Sistema

Final

Fonte: Próprio Autor


Abaixo serão apresentados os fluxos do diagrama de atividade apresentado na
figura 20.
 Fluxo Principal
o O funcionário da empresa irá digitar seu usuário e senha, então o
sistema irá validar e liberar o acesso.
 Fluxo Alternativo
o O funcionário da empresa informará um usuário e senha inválidos e
o sistema irá enviar uma mensagem de erro, retornando a etapa
anterior, seguindo o fluxo normalmente.
57

4.2.2.2.4 UC015 - Efetuar Logout

Este caso de uso tem o objetivo de possibilitar ao operador Efetuar Logout no


Sistema.

4.2.2.2.4.1 Diagrama de Atividade

FIGURA 21 - Diagrama de Atividade - Caso de Uso UC015 – Efetuar Logout


act Diagrama de Ativ idade

Inicio

Env iar Mensagem de


Confirmação

Confirmar Logout?
Não Sim
Cancelar Ação de Logout Executar Ação de Logout

Final

Fonte: Próprio Autor


Abaixo serão apresentados os fluxos do diagrama de atividade apresentado na
figura 21.
 Fluxo Principal
o O funcionário da empresa clicará em logout, o sistema irá enviar
uma mensagem de confirmação e executará a ação de logout.
 Fluxo Alternativo
o O funcionário da empresa clicará em logout, o sistema irá enviar
uma mensagem de confirmação e o mesmo não confirmará, e o
sistema cancelará a ação de logout.
58

4.2.2.2.5 UC016 - Enviar Feedback para o Administrador

Este caso de uso tem o objetivo de possibilitar ao operador alterar as informações


relacionadas a empresa.

4.2.2.2.5.1 Diagrama de Atividade

FIGURA 22 - Diagrama de Atividade - Caso de Uso 16 – Enviar Feedback para o


Administrador
act Diagrama de Ativ idade

Inicio

Preencher Formulário de
Contato

Escolher Qual a Forma de


Contato

Informações Válidas?

Não
Env iar Mensagem de Erro

Sim

Env iar Feedback

Final

Fonte: Próprio Autor


Abaixo serão apresentados os fluxos do diagrama de atividade apresentado na
figura 22.
 Fluxo Principal
o O funcionário da empresa irá preencher o formulário de contato e
escolher qual a forma de contato que o mesmo deseja, o sistema irá
validar as informações e enviar o feedback para o administrador do
sistema.
59

 Fluxo Alternativo
o O funcionário da empresa irá preencher o formulário de contato e
escolher qual a forma de contato que o mesmo deseja, o sistema irá
identificar que as informações não são válidas e retornará a primeira
etapa, seguindo seu fluxo normalmente.

4.2.2.2.6 UC017 - Visualizar Itens Mais Pedidos

Este caso de uso tem o objetivo de possibilitar ao operador visualizar os itens mais
pedidos.

4.2.2.2.6.1 Diagrama de Atividade

FIGURA 23 - Diagrama de Atividade - Caso de Uso 17 – Visualizar Itens Mais


Pedidos
act Diagrama de Ativ idade

Inicio

Buscar Items no Banco de


Dados

Processar Informações

Ordernar Items Mais


Pedidos

Env iar Informações para o


Componente Gráfico

Apresentar o Gráfico

Final

Fonte: Próprio Autor


60

Abaixo serão apresentados os fluxos do diagrama de atividade apresentado na


figura 23.
 Fluxo Principal
o O sistema irá buscar os itens no banco de dados, processará as
informações e ordenará os itens mais pedidos, enviando as
informações para o componente gráfico que irá apresentar o gráfico.

4.2.2.2.7 UC020 - «CRUD» Manter Itens do Cardápio

Este caso de uso tem o objetivo de possibilitar ao administrador realizar as


operações de CRUD em relação a três principais entidades: Drink, Ingredient e Snack.
Conforme apresentados na Figura 24.
FIGURA 24 - UC020 - «CRUD» Manter Itens do Cardápio

Fonte: Próprio Autor

4.2.2.2.7.1 Diagrama de Atividade

Este caso de uso não possui diagrama de atividade, pois o mesmo possui ao
estereótipo CRUD.
61

4.3 Conclusão

Neste capítulo foi apresentada a visão geral do sistema, descrevendo suas


características e funcionalidades. Foram definidos os principais requisitos f uncionais e não
funcionais do sistema, para que o mesmo funcione de acordo com o que é proposto nos casos
de uso. Foram elaborados os casos de uso conforme os objetivos da criação deste projeto,
além de apresentar também, todos os diagramas de atividades pertencentes aos mesmos.
Durante o processo da modelagem, foram apresentadas as expansões dos casos de
uso, com isso, demonstrando o funcionamento, passo a passo de cada caso de uso.
Além destes, foi apresentado o diagrama de classes do projeto como um todo,
subdividido em 4 grupos, apresentados de forma clara e limpa.
Com isso, pode-se definir o processo de modelagem do sistema, como uma das
fases mais importantes no processo de construção de software, onde é possível ter uma visão
de negócios do sistema a ser implementado, sendo assim possível evitar ao máximo o
retrabalho e aumentar a otimização de tempo durante o processo de desenvolvimento.
62

5 IMPLEMENTAÇÃO DO SISTEMA

Neste capítulo apresenta-se o desenvolvimento do sistema elaborado para este


trabalho, são explanadas as tecnologias e ferramentas utilizadas durante o processo, além da
apresentação de fragmentos de código mais importantes.

5.1 Tecnologias utilizadas

Devido algumas restrições dos sistemas a serem implementados serão necessários


à utilização de algumas tecnologias e ferramentas. Abaixo estão descritos breves conceitos
destas tecnologias.

5.1.1 Plataforma .NET

Resumidamente a Microsoft .NET pode ser definida como uma plataforma única
para desenvolvimento e execução de sistemas.

“A plataforma .NET criada pela Microsoft, oferece serviços poderosos em formato


binário independente de processador, novas linguagens gerenciadas, extensões de
linguagem gerenciada para linguagens existentes.” (TURTSCHI et Al, 2004).

O coração da plataforma.NET é o CLR (Common Language Runtime), que é uma


aplicação similar a uma máquina virtual que se encarrega de providenciar a execução das
aplicações para ela escritas. São oferecidos a estas aplicações numerosos serviços que
facilitam seu desenvolvimento e manutenção que favorece sua confiança e segurança
(ALVAREZ, 2004).

5.1.2 Plataforma Android SDK

De acordo com FARIA (2013), o Android SDK (kit de desenvolvimento)


proporciona ferramentas e chamadas via API na linguagem JAVA para desenvolvimento de
programas. Resumidamente, são programas para celulares com um sistema operacional,
63

middleware e interface. A seguir um breve resumo da arquitetura, onde os principais


recursos desta plataforma mobile são a máquina virtual otimizada, navegador integrado,
biblioteca 2D e 3D, banco SQLite e plug-in para o Eclipse (ADT).
O Android SDK fornece as bibliotecas da API e ferramentas de desenvolvimento
necessárias para construir, testar e depurar aplicativos para o Android" (ANDROID, 2013).
Segundo Meyer (2010), inclusos no SDK, estão:
APIs do Android: Possui as bibliotecas que possibilitam o desenvolvimento dos
aplicativos para a plataforma. São as mesmas bibliotecas utilizadas pela Google no
desenvolvimento das aplicações nativas;
Ferramentas de desenvolvimento: Estas ferramentas, possuem a finalidade de
possibilitar ao desenvolvedor, compilar e depurar suas aplicações;
Android SDK e AVD (Android Virtual Device) Manager: Ferramenta utilizada
na criação dos dispositivos virtuais (emuladores em geral, Figura 33), e o gerenciamento de
APIs (Figura 34). Nos simuladores é possível a realização de testes, com isso eliminando a
necessidade do desenvolvedor possuir um dispositivo real para este propósito.
FIGURA 25 - Emulador Android SDK NHibernate

Fonte: Próprio Autor

De acordo com ANDROID (2013), para desenvolvedores é recomendado o pacote


de desenvolvimento ADT (Android Developer Tools) para um início rápido e fácil no
desenvolvimento de aplicativos. Ele inclui os componentes essenciais do Android SDK e
64

uma versão do Eclipse IDE com built-in ADT para agilizar o desenvolvimento de aplicativos
Android. O pacote inclui tudo que é necessário para começar a desenvolver aplicativos, tais
como:
 Eclipse + ADT Plugin
 Android SDK Tools
 Android Platform-tools
 A mais recente plataforma Android
 A imagem mais recente do sistema Android para o emulador
FIGURA 26 - Android SDK e AVD Manager

Fonte: (O'HIGGINS, 2010)

5.1.3 Padrão MVC

O padrão de projeto Modelo-Visão-Controlador (MVC) tem tido uma grande


aceitação no desenvolvimento de aplicações voltadas para Web e software corporativo. Com
a divisão das tarefas do software em três camadas para controle da interface, manipulação
de dados e controle lógico, este padrão facilita a manutenção e evolução dos sistemas pela
independência das classes de cada camada (PEREIRA, 2006).
65

FIGURA 27 - Diagrama que representa o padrão Modelo-Visão-Controlador

FONTE: (SUN, 2002)

O padrão MVC está dividido em três módulos, chamados de Model, View e


Controller, conforme a Figura 27, que serão descritos abaixo.

5.1.3.1 Model

Está é a camada responsável pelas regras de negócio da aplicação. Também é o


encarregado de guardar o estado dos objetos. Em outras palavras, essa camada manipula os
dados do sistema, de maneira que os dados estejam prontos para que as camadas de controle
e visão possam utilizá-las (BAPTISTELLA, 2009).

5.1.3.2 View

É a representação visual do modelo, onde se encontra todo o conteúdo a ser


visualizado pelo usuário.
É a camada de apresentação com usuário, é a interface que proporcionará á entrada
de dados e a visualização de respostas geradas, nas aplicações web é representado pelo
HTML que é mostrado pelo browser, geralmente a visão contém formulários, tabelas, menus
66

e botões para entrada e saída de dados, com base nisso pode-se dizer que é camada de visão
é responsável por mostrar os dados de uma maneira que o usuário possa entender e pelos
inputs de entrada de dados (BAPTISTELLA, 2009).

5.1.3.3 Controller

Um controlador define o comportamento da aplicação, é ele que interpreta as ações


do usuário e as mapeia para chamadas do modelo. Em um cliente de aplicações Web essas
ações do usuário poderiam ser cliques em botões ou seleções de menus. As ações realizadas
pelo modelo incluem ativar processos de negócio ou alterar o estado do modelo. Com base
na ação do usuário e no resultado do processamento do modelo, o controlador seleciona uma
visualização a ser exibida como parte da resposta a solicitação do usuário. Há normalmente
um controlador para cada conjunto de funcionalidades relacionadas (MACORATTI, 2013).

5.1.4 nHibernate ORM

O NHibernate é um framework open source, desenvolvido usando .NET


framework, baseado no Hibernate do Java, que possibilita o mapeamento de objetos -
relacionais (ORM).

"O NHibernate é um ORM Open-Source, que surgiu através do Hibernate, voltado


exclusivamente para desenvolvedores Java, sendo a princípio era um port do
Hibernate, mas passou a ser um projeto independente. Sendo assim, apresenta uma
certa maturidade, principalmente por ser um framework com uma equipe
colaborando ativamente" (RANIERI, 2013).

Segundo RANIERI, (2013), O Mapeamento Objeto-Relacional (ORM) consiste


em um framework que tem por objetivo suprir as disparidades entre o paradigma orientado
a objetos e o modelo entidade-relacional, criando uma ponte (mapeamento) entre o modelo
relacional e o modelo orientado a objetos. Ou seja, ao trabalhar com essa abordagem, é
possível a construção de sistemas utilizando o paradigma orientado a objetos, cujos objetos
são persistidos em um banco de dados relacional. Conforme a Figura 28 apresentada abaixo.
67

FIGURA 28 - Visão geral em alto nível como trabalha o NHibernate

FONTE: (EMILIO, 2010)

Basicamente tem-se a aplicação com seus objetos persistentes que são usados pelo
NHibernate, mapeados por XML (ou Atributtes) onde relaciona-se a classe e seus atributos
com a tabela e suas colunas. O NHibernate precisa de alguns arquivos de configuração para
funcionar e conectar no banco de dados (EMILIO, 2010).

"O FluentNHibernate é uma biblioteca para auxilia na realização dos mapeamentos


das suas entidades com o banco de dados. Por padrão o NHibernate usa arquivos
xml(.hbm) para realizar esse mapeamento, porém criar esses arquivos
manualmente gera um bom trabalho, para isso foi criada o FluentNHibernate que
podemos realizar esse mapeamento pelo próprio código sem precisar de usar os
arquivos HBM" (L. PRADO, 2012).

5.1.5 Web Service

Segundo MENÉNDEZ (2009), há uma definição bastante simples para um Web


Services: É uma aplicação que aceita solicitações de outros sistemas através da Internet.

“Simplificando, Web Service é uma maneira de expor funcionalidades para


usuários Web através de protocolos padrão. Também podemos citar como uma
aplicação identificada por uma URI (Uniform Resource Identifier), cujas interfaces
podem ser descobertas e definidas através de artefatos XML, e que suporta
interações diretas com outros softwares utilizando mensagens XML através de
protocolos padrão da Internet (W3C)” (RECKZIEGEL, 2006).

Os Web Services trazem diversos benefícios quando utilizados de maneira correta


e bem sucedida. Os serviços são baseados em um conjunto de padrões da internet definidos
68

pelo W3C, não requerem configurações especiais nos firewalls, pois o protocolo HTTP, o
qual é o mais utilizado, atua como transporte na comunicação entre cliente e Web Service.
Possuem independência de plataforma, devido a ser baseado em XML, o qual pode gerar
documentos complexos (RECKZIEGEL, 2006).
A arquitetura do Web Service é baseada na interação de três personagens:
Provedor de Serviços, Consumidor de Serviços e Registro dos Serviços. A interação destes
personagens envolve as operações de publicação, pesquisa e ligação. (KREGER, 2001).
A Figura 29 ilustrada abaixo representa a arquitetura do Web Service descrito
anteriormente.
FIGURA 29 - Web Service Roles

FONTE: (OFICINADANET, 2007)


As funcionalidade dos quadros representados na figura 29 acima, estão descritos
abaixo:
Provedor de serviços – O provedor de serviços é a entidade que cria o Web
Service. Ele disponibiliza o serviço para que alguém possa utilizá-lo. Mas, para que isto
ocorra, ele precisa descrever o Web Service em um formato padrão, que seja compreensível
para qualquer um, que precise usar esse serviço, também publicar os detalhes sobre seu Web
Service em um registro central que esteja disponível (RECKZIEGEL, 2006).
Consumidor de Serviços – Qualquer um que utilize Web Service criado por um
provedor de serviços é chamado de consumidor de serviços. Este conhece a funcionalidade
do Web Service, a partir da descrição disponibilizada pelo provedor de serviços,
recuperando os seus detalhes através de uma pesquisa sobre o registro publicado. Através
desta pesquisa, também o consumidor de serviços pode obter o mecanismo para ligação com
este Web Service (LOPES, 2008).
Registro dos serviços - Um registro de serviço é a localização central onde o
provedor de serviços pode relacionar os seus serviços Web e com isso o consumidor de
serviços pode pesquisar serviços Web. Informações como detalhar da empresa, serviços
69

Web por ela fornecidos e detalhes sobre cada serviço Web, detalhes técnicos, são
armazenados no registro do serviço (BASHA, et. 2002).
Segundo OFICINADANET (2007), as bases para a construção de um Web service
são os padrões XML e SOAP. O transporte dos dados é realizado normalmente via protocolo
HTTP (o padrão não determina o protocolo de transporte). Os dados são transferidos no
formato XML, encapsulados pelo protocolo SOAP.

5.1.6 XML

Segundo W3, Extensible Markup Language (XML) é um formato de texto simples,


muito flexível derivado do SGML (ISO 8879). Originalmente concebido para enfrentar os
desafios da publicação eletrônica em grande escala, o XML também está desempenhando
um papel cada vez mais importante na troca de uma ampla variedade de dados na Web e em
outros lugares.

“XML significa Extensible Markup Language (Linguagem de Marcação


Extensível). Linguagens de marcação compreendem todas aquelas que possibilitam
a formatação de elementos por meio de tags e atributos como o HTML e XHTML.
Por ser extensível, o XML possibilita a criação de elementos, ou seja, você mesmo
pode inventar as suas tags.” (DÉCIO, 2000).

Segundo PEREIRA (2009), o XML traz uma sintaxe básica que pode ser utilizada
para compartilhar informações entre diferentes computadores e aplicações. Quando
combinado com outros padrões, torna possível definir o conteúdo de um documento
separadamente de seu formato, tornando simples para reutilizar o código em outras
aplicações para diferentes propósitos. Uma das suas principais características é sua
portabilidade, pois, por exemplo, um banco de dados pode escrever um arquivo XML para
que outro banco consiga lê-lo.
Alguns dos propósitos do XML são: auxiliar os sistemas de informação no
compartilhamento de dados (especialmente via internet), codificar documentos e inserir
seriais nos dados comparando o texto com o de outras linguagens baseadas em serialização
(PEREIRA, 2009).
Ainda de acordo com GTA (2013), o XML não é uma simples linguagem de
marcação pré-definida: ela é uma metalinguagem - uma linguagem usada para descrever
outras linguagens - que permite que o seu usuário defina a sua própria marcação. Uma
linguagem de marcação pré-definida como o HTML especifica um modo de descrever
70

informação em apenas uma classe específica de documento. O XML permite que o usuário
defina as suas próprias linguagens de marcação para atender à inúmeras classes de
documentos diferentes. Isto é possível porque o XML é escrito em SGML, a metalinguagem
padronizada internacionalmente para sistemas de marcação de texto.

5.1.7 JSON

JSON (JavaScript Object Notation) pode ser definido como uma estrutura de dados
em Javascript, além de o Javascript não ser requerido para seu funcionamento.

“Um Objeto JSON é definido como um conjunto de nomes e valores separados por
dois pontos e delimitados por vírgulas.” (SAMPAIO, 2007, pg. 115).

Segundo AUGUSTO (2009), o JSON pode substituir o XML, e faz isso muito bem
na hora de trabalhar com respostas em AJAX. A estrutura de dados fica mais simples de
trabalhar e o tempo de execução de um script lendo dados em JSON é dezenas de vezes mais
rápido do que ler um conteúdo XML.
O JSON é um formato de troca de dados que também serve para serializar objetos.
Um objeto na memória poder ser transformado em um formato independente da linguagem
e ser transportado por qualquer meio até o seu destino, de maneira semelhante ao SOAP
(SAMPAIO, 2007).
Dentre as principais vantagens do JSON, de acordo com GAMA, são:
 Leitura mais simples
 Suporte a objetos
 Velocidade maior na execução e transporte de dados
 Arquivo com tamanho reduzido
O JSON é bastante utilizado para auxiliar a execução de chamadas AJAX onde o
retorno obtido da execução no servidor obedece aos padrões de criação de objetos JSON
para que os dados retornados possam ser lidos em JavaScript (JACONETE, 2013).

5.2 Ferramentas utilizadas

5.2.1 Visual Studio


71

Segundo MICROSOFT (2013), o Visual Studio é um pacote de ferramentas de


desenvolvimento baseadas em componentes e outras tecnologias para a criação de
aplicativos avançados de alto desempenho. Além disso, o Visual Studio é otimizado para o
design, o desenvolvimento e a implantação de soluções empresariais com base em equipes.

A Figura 30 demonstra a tela inicial do Visual Studio 2010, logo ao ser executado.
FIGURA 30 - Tela inicial Visual Studio 2010

Fonte: Próprio Autor

5.2.2 Eclipse IDE

Segundo CAELUM (2013) o Eclipse é uma IDE (Integrated Development


Environment). Diferente de uma RAD, onde o objetivo é desenvolver o mais rápido possível
através do arrastar-e-soltar do mouse, onde montanhas de código são gerados em
background, uma IDE te auxilia no desenvolvimento, evitando se intrometer e fazer muita
“mágica”.
Conforme PALMEIRA (2013), uma das principais vantagens é o uso do SWT
(alternativa para quem desenvolve em SWING), e a forte orientação ao desenvolvimento
baseado em plug-ins ampliando o suporte do desenvolvedor com centenas deles que
procuram atender as diferentes necessidades.
O Eclipse é a IDE líder de mercado. Formada por um consórcio liderado pela IBM,
possui seu código livre (CAELUM, 2013).
72

5.2.3 SQL Server

Segundo OFICINADANET (2007), o SQL Server é um gerenciador de Banco de


dados relacional feito pela Microsoft. É um Banco de dados robusto e usado por sistemas
corporativos dos mais diversos portes.
O SQL Server fornece uma plataforma de dados confiável, produtiva e inteligente
que permite a execução de aplicações de missão críticas mais exigentes, reduz o tempo e o
custo com o desenvolvimento e o gerenciamento de aplicações e entrega percepção que se
traduz em ações estratégicas (HIRT, 2010).
Um dos pontos fortes a serem destacados, são sua usabilidade e facilidade de uso,
composto de simplicidade e qualidade, conforme ilustrado na Figura 31.
FIGURA 31 - Visualização Object Explorer do SQL Server 2008

Fonte: Próprio Autor

5.3 Arquitetura da Aplicação

Neste tópico serão apresentadas as arquiteturas dos dois módulos do


desenvolvimento deste trabalho de conclusão de curso.

5.3.1 Desenvolvimento - Solução Visual Studio (Arquitetura Portal Web e WebService)

A arquitetura da solução do Portal Web e WebService é dividida em 7 módulos,


que em conjunto, formam uma grande arquitetura e distribuição de informações, conforme
apresentadas na Figura 32, que serão devidamente explicados.
73

FIGURA 32 - Visualização Solução Visual Studio (Arquitetura Portal Web e WebService)

Fonte: Próprio Autor


74

Destes, o primeiro módulo a ser implementado foi o STSystem.SnacksHere.Core,


pois nele ficam as classes de ajuda e a classe de repositório genérica do nHibernate, onde
futuramente serão utilizadas, facilitando em muito a criação dos repositórios.
O próximo módulo a ser implementado foi o STSystem.SnacksHere.Domain, onde
estão as informações da camada de domínio da solução, subdividida em:
 Entidades (objetos que são espelhos das tabelas no banco de dados)
 Mapeamentos (forma e características da tabela do banco de dados, tais
como, nomes de tabela, coluna, chave estrangeira, etc. Referente ao
nHibernate, citado no desenvolvimento deste TCC)
 Repositórios e Serviços (onde ficam as interfaces das suas respectivas
classes de implementação, que serão abordadas mais abaixo.
 Classes para criação das tabelas e contexto do banco de dados.
Após isso, foi criado o STSystem.SnacksHere.Data, onde nele ficam, todos as
implementações dos repositórios, referente as entidades, mapeamentos e interfaces criados
no projeto de domínio.
Para facilitação na validação de regras de negócio foi criado o projeto
STSystem.SnacksHere.Business, onde existe uma classe de implementação para cada
repositório, onde dentro do mesmo realiza as validações e invoca os métodos do repositório.
Para validação do controle de login que posteriormente foi utilizado no Portal
Web, foi criado o projeto STSystem.SnacksHere.WebHandlers, que possui funções de login,
logout e validações gerais sob os usuários.
Com a criação da arquitetura geral, foi criado o projeto
STSystem.SnacksHere.Clients.WA, que é o Portal Web, o mesmo trabalha sob a arquitetura
já descrita, trabalha com o padrão MVC (Model-View-Controller), com a linguagem
ASP.NET MVC3 e C#, onde na pasta Content ficam as imagens do Portal Web, na
Controllers, ficam as regras de negócios e manipulações de dados enviados e retornados da
tela, já na Models, ficam os objetos utilizados no portal Web, chamados de ViewModel
(objetos que refletem as propriedades dos formulários da tela, na pasta Scripts, ficam os
scripts javascript utilizados pelas interfaces e por último, na Views, é onde ficam as
interfaces do sistema, ou seja, o código HTML e apresentação de informações.
Com o pleno funcionamento do Portal Web, foi criado o projeto
STSystem.SnacksHere.WebService, que através da arquitetura apresentada, irá manipular
75

as informações e se comunicar com o aplicativo móvel, através do formato de texto jSON.

5.3.2 Desenvolvimento - Projeto Eclipse (Aplicativo Android)

A arquitetura do projeto eclipse do aplicativo Android, possui apenas 1 mó dulo,


conforme apresentada na Figura 33, que será explicada abaixo.
FIGURA 33 - Visualização Projeto Eclipse (Aplicativo Android)

Fonte: Próprio Autor

Começando pelas pastas Android 2.2 e Android Dependencies, pode se comentar,


que nelas ficam as bibliotecas seja do Android, como também bibliotecas externas, como
por exemplo: Ksoap, Gsom.
Na pasta src, é onde foi inserida as principais codificações do aplicativo Android,
pois, ali é onde ficam as objetos e classes de processamento.
76

Na pasta gen, são arquivos criados automaticamente pelo Java, onde os mesmos
não foram modificados durante o desenvolvimento.
Na pasta bin, os arquivos são gerados automaticamente pelo compilador e contém
todos os arquivos do sistema, inclusive o arquivo .apk da aplicação Android.
Já na pasta lib é onde ficam as bibliotecas a serem utilizadas pela aplicação.
A pasta res foi utilizada basicamente para armazenar as imagens do aplicativo nas
pastas com prefixo drawable, já nas pastas com prefixo layout, são os xmls das telas do
aplicativo, a pasta menu é onde fica o menu de opções do celular, o que é listado para o
usuário e por último a pasta values que são as informações de textos e configurações
utilizados na aplicação.
Nos arquivos restantes, são arquivos criados automaticamente na criação do
projeto e são essenciais para o pleno funcionamento do aplicativo, durante o
desenvolvimento foram alterados apenas alguns parâmetros e informações.

5.4 Implementação do sistema

Nesta seção serão apresentadas apresentados algumas classes e trechos de código,


criados durante o desenvolvimento deste projeto de conclusão de curso, destacando seus
pontos principais, que é onde possuem maior complexidade.
Para desenvolvimento deste projeto é necessário possuir os pacotes de dll do
componente Telerik, AutoMapper, nHibernate e Json .NET, que servem para facilitar e
engrandecer a estrutura, performance e qualidade deste projeto.

5.4.1 Criação de Sessão do nHibernate

A Sessão do nHibernate é quem faz toda a criação do contexto da transação para


acesso ao banco de dados, como por exemplo: criar e/ou abrir uma conexão com o banco de
dados e depois manipular os registros contidos.
Para criação da sessão é necessário passar duas informações: a connectionString
do banco de dados, e qual o assembly da dll dos mapeamentos dos objetos relacionais, que
com isso, o nHibernate, saberá quais as estruturas e ações a serem tomadas.
No Quadro 17 mostra o método para criação da sessão, na qual foi utilizado
77

durante todo o desenvolvimento deste projeto e testes pós-implementação.

QUADRO 17 - Código fonte do método CreateSessionFactory.

O método CreateSessionFactory é um dos métodos mais utilizados neste projeto.


Este tem o objetivo de criar a sessão do nHibernate.
Na linha 1 é passado o parâmetro connectionString, onde este é a string de conexão
do banco de dados a ser efetuada a conexão e manipulação dos dados.
Na linha 3 é criado uma lista de assemblyes que será utilizado depois para captura
das informações de mapeamento das tabelas da base de dados.
Na linha 5 até a linha 13 é invocado o método Configure, informando qual o tipo
de banco de dados e sua connectionString, além de informar os arquivos de mapeamentos a
serem carregados, até que é chamado o método BuildConfiguration, que no qual irá salvar
o resultado na variável com o nome de configuration.
Na linha 15 o mesmo abre a conexão com o banco, retornando o objeto
ISessionFactory para utilização.

5.4.2 Serialização e Deserialização Json

O transporte de dados entre da aplicação mobile é feito através do formato Json,


um formato leve e compacto.
Para serialização e deserialização de objetos Json foi utilizado a dll
Newtonsoft.Json.dll, que já possui métodos prontos para utilização, que foram utilizados no
método que envia informações do usuário ao WebService, pegando o retorno e
deserializando as informações.
78

No Quadro 18 apresenta a forma de utilização desta dll.

QUADRO 18 - Código fonte do método SendCrossTalkToWebService

O método SendCrossTalkToWebService tem como objetivo serializar um objeto,


enviar ao WebService, pegando seu retorno e deserializando.
Na linha 1 é passado o parâmetro addOrUpdateUserEntry, que é o objeto a ser
serializado.
Na linha 3 é chamado o método JsonConvert.SerializeObject, passando o objeto
como parâmetro, pegando o seu resultado e salvando na variável userJsonContent.
Na linha 5 é enviado o resultado serializado para o WebService, salvando o retorno
na variável userResult.
Na linha 7 o resultado do WebService é deserializado utilizando o método
JsonConvert.DeserializeObject, passando o tipo do objeto sendo enviado e o conteúdo do
mesmo parâmetro, salvando na variável crossTalkResult.
Na linha 9 o resultado contido na variável crossTalkResult é retornado.

5.4.3 Enviar E-Mail

O envio de e-mail utilizado neste projeto é realizado através da biblioteca


System.Net.Mail nativa do framework do .NET.
No Quadro 19 é apresentado o método SendEmail, que mostra a utilização desta
biblioteca.
79

QUADRO 19 - Código fonte do método SendEmail.

O método SendEmail tem como objetivo, através de um objeto pré-definido, enviar


um e-mail, para um ou mais destinatários.
Na linha 1 é passado o parâmetro emailDetails, que é o objeto que contém as
informações gerais para o envio do e-mail.
Na linha 3 é instanciado um SmtpClient, que é o objeto que será responsável pelo
envio.
Na linha 4 até a linha 9 é instanciado um objeto do tipo MailMessage e informado
qual o assunto, mensagem a as informações de usuário remetente, como usuário e nome a
ser mostrado como dono do e-mail.
Na linha 11 e 12 é adicionado ao objeto emailDetails, todos os anexos do mesmo,
podendo ser uma lista, contento inúmeros anexos.
Na linha 14 até a linha 16 é adicionado os e-mails de destinatário, podendo ser
uma lista e conter inúmeros.
Na linha 17 e 18 é adicionado os e-mails de cópia carbono, podendo ser uma lista
e conter inúmeros.
Na linha 19 e 20 é adicionado os e-mails de cópia carbono ocultas, podendo ser
uma lista e conter inúmeros.
Na linha 22 é instanciada a propriedade Credentials do objeto smtpClient, e
80

informadas as informações de usuário e senha do remetente.


Na linha 23 é informado o host smtp do servidor de e-mail remetente.
Na linha 24 é informado se o servidor utiliza ssl ou não.
Na linha 25 é informado a porta do servidor de e-mail.
Na linha 26 chamasse o método de envio de e-mail.
Na linha 27 limpa as informações do objeto mailMessage da memória.

5.4.4 Criar classe de Mapeamento

A criação da classe de mapeamento é referente a utilização do nHibernate neste


projeto, sendo referenciada a dll FluentNHibernate.dll.
No Quadro 20 é a apresentada a classe CityMap, que mostra como funciona a
criação de uma classe de mapeamento.

QUADRO 20 - Código fonte da classe CityMap

A classe CityMap tem como objetivo mapear o objeto City, que irá definir como
será a tabela no banco de dados.
Na linha 1 a classe CityMap é herdade de ClassMap que é uma classe pertencente
ao nHibernate, que o mesmo, na criação da sessão, irá ler as classes que herdam da ClassMap
e assim poderá trabalhar.
Na linha 3 é criado o construtor da classe CityMap, que por padrão todas as classes
herdadas da mesma devem ser criados com seus respectivos construtores.
Na linha 5 é informado que o campo Id do objeto City, será um campo identity na
tabela do banco de dados.
Na linha 6 é informado que o campo terá tamanho de 100 caracteres e não poderá
receber nulo nos registros.
Na linha 7 é informado que o campo IdState será uma chave estrangeira de outra
tabela e não poderá receber nulo nos registros.
81

5.4.5 Manipular Dados na Base de Dados

Para manipular dados utilizando o nHibernate é algo bastante simples e eficiente,


sendo referenciada a dll FluentNHibertate.dll.

5.4.5.1 Inserir ou Alterar Dados na Base de Dados

Para inserir ou alterar dados na base de dados via nHibernate é possível com a
chamada de apenas um método, que serve para as duas situações.
No Quadro 21, será apresentado como inserir ou alterar dados na base de dados.

QUADRO 21 - Código fonte do método de Inserção e Alteração de dados na


base de dados.

O método SaveOrUpdate tem como objetivo possibilitar a inserção e alteração dos


dados de uma tabela no banco de dados, do objeto a ser persistido.
Na linha 1 é passado o parâmetro tObject, que é um objeto genérico, que
dependendo do objeto que chegar, ele persistirá na tabela correspondente.
Na linha 3 é aberta uma sessão e salvo na variável session,
Na linha 4 é aberta uma transação para manipulação dos dados.
Na linha 8 é chamado o método SaveOrUpdate que de acordo com o objeto
passado, persisti os dados em sua respectiva tabela.
Na linha 9 é comitado os dados da transação no banco de dados.
82

Na linha 13 caso aconteça algum erro, é executado um rollback nas modificações


que possam ter sido efetuadas.
Na linha 14 sobe o erro para cima, para onde será tratado.
Na linha 18 é fechada a sessão e a conexão com o banco de dados.

5.4.5.2 Remover Dados na Base de Dados

Para remover dados na base de dados via nHibernate é possível apenas enviando
o objeto de forma genérica, que o mesmo, através de reflection, verifica qual é sua respectiva
tabela e executa a remoção.
No Quadro 22, será apresentado como remover dados na base de dados.

QUADRO 22 - Código fonte do método Delete.

O método Delete tem como objetivo possibilitar a remoção de dados de uma


tabela do banco de dados.
Na linha 1 é passado o parâmetro tObject, que é um objeto genérico, que
dependendo do objeto que chegar, ele persistirá na tabela correspondente.
Na linha 3 é aberta uma sessão e salvo na variável session.
Na linha 4 é aberta uma transação para manipulação dos dados.
Na linha 8 é chamado o método Delete que de acordo com o objeto passado,
remove os dados em sua respectiva tabela.
83

Na linha 9 é comitado os dados da transação no banco de dados.


Na linha 13 caso aconteça algum erro, é executado um rollback nas modificações
que possam ter sido efetuadas.
Na linha 14 sobe o erro para cima, para onde será tratado.
Na linha 18 é fechada a sessão e a conexão com o banco de dados.

5.4.5.3 Buscar Dados na Base de Dados

Para buscar dados na base de dados via nHibernate é possível apenas enviando o
objeto de forma genérica, com o campo id preenchido.
No Quadro 23, será apresentado como buscar dados na base de dados.

QUADRO 23 - Código fonte do método GetById

O método GetById tem o objetivo de buscar um objeto na base de dados através


do Id informado.
Na linha 1 é passado o parâmetro id, que é o identificador do objeto na base de
dados.
Na linha 3 é aberta uma sessão e salvo na variável session.
Na linha 6 é chamado o método Get, passando qual o tipo do objeto e passando o
id como parâmetro.
Na linha 10 é fechada a sessão e a conexão com o banco de dados.

5.4.6 Controle de Login – MemberShip

Para a efetuação do login no portal Web, existe uma classe gerenciadora,


específica para esta função, será apresentado como é efetuado o login.
84

No quadro 24, será apresentado o método utilizado para controle de login.

QUADRO 24 - Código fonte do método SignIn

O método SignIn tem como objetivo prover o controle de acesso ao portal web,
utilizados por os funcionários da empresa.
Na linha 1 é passado 3 parâmetros, o usuário e senha do funcionário da empresa,
além, do objeto de instancia da sessão nHibernate.
Na linha 5 é verificado se a instancia do repositório da tabela de usuários está nula.
Na linha 6 é inicializada a instancia do repositório da tabela de usuários, passando
como parâmetro a instancia da sessão, passada por parâmetro do método.
Na linha 8 é de criptografada a senha passada por parâmetro no método e salvo na
variável password.
Na linha 10 é chamado o método GetUserByLoginAndPassword, passando como
parâmetro, o usuário e senha, salvando o resultado na variável user.
Na linha 12 é verificado se a variável user, consequente do passo anterior é nulo.
Na linha 13 é retornado nulo no método.
Na linha 15 é salvo o tipo do usuário na propriedade global da classe.
Na linha 17 é verificado se o id do usuário da variável user, criado na linha 10,
ainda não está no dicionário de usuários logados.
Na linha 18 é adicionado no dicionários de usuários logados o usuário corrente,
85

capturado na variável criada na linha 10.


Na linha 20 é retornada a variável user.
Na linha 24 é retornado nulo caso aconteça alguma exceção durante o processo.

5.4.7 Auto Mapeamento entre Objetos

Para realizar o auto mapeamento entre objetos, foi utilizada a dll AutoMapper.dll,
no qual de uma forma bem simplificada, facilita o trabalho imensamente.
No Quadro 25, será apresentado um método utilizado, que utiliza estes recursos.

QUADRO 25 - Código fonte do método de Auto Mapeamento entre Objetos

O método MapCrossTalkBodyUserToUser tem o objetivo de mapear um objeto


do tipo CrossTalkBodyUser para o objeto User, que no caso, possuem os mesmos nomes
das propriedades, com isso, serão mapeados automaticamente.
Na linha 1 é passado o parâmetro crossTalkBodyUser, que é o objeto a ser auto
mapeado.
Na linha 3 é criado setado o valor do Mapper para o auto mapeamento de dados,
de objetos CrossTalkBodyUser para User.
Na linha 4 é chamado o método Map que executa o mapeamento destes, passando
como parâmetro o objeto crossTalkBodyUser e salvando o resultado na variável
currentUser.
Na linha 6 é retornada a variável currentUser.

5.4.8 Componente Gráfico Telerik Grid

A apresentação e manipulação de registros durante o desenvolvimento deste


projeto foi realizada através de grids, para a implementação destas foi utilizada o
componente gráfico Telerik.
No Quadro 26 é apresentado um trecho de código onde é utilizado estes recursos.
86

QUADRO 26 - Código fonte do trecho de código do componente de Grid do


Telerik.

O trecho de código acima, tem como objetivo através de um conjunto de


informações, prover uma apresentação dos dados, que possibilite uma maior facilidade para
inserir, alterar ou remover os registros.
Na linha 1 é chamado o método Grid passando o tipo a ser definido, o objeto
Ingredient.
Na linha 2 é definido que o nome deste componente no código será
GridIngredients.
Na linha 3 e 4 é definido que a forma de filtro será definida pela propriedade Name
do objeto Ingredient, e que o filtro verificará através do ViewData["filter"], que é populado
no Post da página.
Na linha 5 até a linha 7 é adicionado o botão de insert na toolbar, apresentada
acima da grid, definindo seu estilo e propriedades.
Na linha 8 até a linha 13 são definidos quais os eventos javascripts utilizados pela
grid, informando por parâmetros, o nome da action e controller a serem disparados pós
execução do evento javascript.
Na linha 14 até a linha 24 são definidas as colunas presentes na grid, definindo
87

seus tamanhos, títulos das colunas, e até qual a forma de apresentação das colunas, podendo
ser inclusive um botão.
Na linha 25 até a linha 27 é definido que a grid será paginada e possuirá uma barra
de rolagem, caso possua muitos registros.
Na linha 28 é definido que a grid será ordenada pelo campo Id do objeto Ingredient
de forma descendente.
Na linha 29 é definido que esta grid é possível ser selecionado registros, par a
edição, exclusão de registros já existentes.

5.4.9 Autenticação de Credências de Usuário

A autenticação de credenciais de usuário é realizada através de uma chamada ao


WebService, onde o mesmo através de um objeto contendo as informações de usuário e
senha, retorna se as credenciais são válidas.
No Quadro 27 mostra o método userAuthentication que retorna se as credenciais
(usuário e senha) são válidos.

QUADRO 27 - Código fonte do método userAuthentication que


retorna se as credências (usuário e senha) são
válidos.
88

O trecho de código acima, tem como objetivo através da comunicação com o


WebService, validar se as informações inseridas pôr o usuário na aplicação móvel, são
validas e assim possibilitar a realização de pedidos de lanches.
Na linha 1 é declarado o método userAuthentication, recebendo por parâmetro um
objeto do tipo UserInfo, que contém as informações de usuário e senha, além de iniciar a
tratativa de exceção para caso de erro.
Na linha 2 é criado uma variável do tipo booleana nomeada de result, que será
preenchida conforme o processamento do método.
Na linha 3 é criado um objeto do tipo HttpTransportSE, passando a url do
WebService e o tempo especificado para timeout.
Na linha 4 é criado um objeto do tipo SoapObject, passando o namespace padrão
e o nome do método descrito no WebService, salvo na constante
USER_AUTHENTICATION.
Na linha 6 até a linha 8 é adicionado três propriedades no objeto do tipo
SoapObject, sendo o token para acesso, o usuário e a senha.
Na linha 10 até a linha 12, é criado o envelope de serialização do Soap, passando
o Soap do WebService, da referência do mesmo presente no projeto, atribuindo o tipo dele
para dotNet e passando o conteúdo dele com o valor do objeto do tipo SoapObject,
preenchido anteriormente.
Na linha 14 e 15 é invocado o método do WebService, passando como parâmetro,
o nome do mesmo e o envelope de serialização.
Na linha 17 até a linha 19 é verificado se houve erro de comunicação ou
processamento com o WebService, e captura o erro do que ocasionou e salva no log, para
posterior verificação.
Na linha 20 até a linha 27 é capturado o conteúdo da resposta do WebService no
formato Json, salvo numa variável para após isso, deserializá-la para um objeto do tipo
UserInfo através da biblioteca Gson, salvando-a em seu contexto de informações e caso
tenha sido um resultado válido atribui true ou false para a variável result.
Na linha 29 é retornada a variável result, preenchida durante o processamento.

5.4.10 Validação de Informações do Sistema

A validação de campos e informações é a realizada através da criação de


89

expressões vinculadas juntamente a classe Pattern, nativa do framework do Java.


Para execução da validação, todos os métodos recebem apenas um parâmetro, que
é o texto a ser validado.
No Quadro 28 mostra a classe onde estão presentes os métodos de validação,
juntamente com suas expressões regulares para validação.

QUADRO 28 - Código fonte da classe para validação de


informações do Sistema

A classe ValidateUtils tem como objetivo a validação de informações do sistema,


a mesma foi muito utilizada durante o desenvolvimento e é acionada frequentemente durante
a execução do aplicativo Android.
Na linha 1 é declarada a classe ValidateUtils.
Na linha 3 é criado um construtor de classe privado, pois a classe é estática e seu
construtor obrigatoriamente deve ser privado.
Na linha 5 é declarado o método VerifyValidIp, passando o ip como parâmetro.
Na linha 6 criado uma instancia da classe Pattern, salvando na variável ipValidate,
invocando o método compile e passando como parâmetro a expressão regular para
validação.
Na linha 8 é invocado o método matcher da variável ipValidate, passando como
parâmetro o parâmetro ip que veio como parâmetro do método, retornando true ou false de
acordo com a validação efetuada.
Na linha 11 é declarado o método VerifyValidPassword, passando o password
como parâmetro.
Na linha 12 criado uma instancia da classe Pattern, salvando na variável
ipValidate, invocando o método compile e passando como parâmetro a expressão regular
90

para validação.
Na linha 14 é invocado o método matcher da variável ipValidate, passando como
parâmetro o parâmetro password que veio como parâmetro do método, retornando true ou
false de acordo com a validação efetuada.
Na linha 17 é declarado o método VerifyPinSecure, passando o pinIDSecure como
parâmetro.
Na linha 18 criado uma instancia da classe Pattern, salvando na variável
ipValidate, invocando o método compile e passando como parâmetro a expressão regular
para validação.
Na linha 20 é invocado o método matcher da variável ipValidate, passando como
parâmetro o parâmetro pinIDSecure que veio como parâmetro do método, retornando true
ou false de acordo com a validação efetuada.

5.4.11 Busca de Lanches de Acordo com determinada Empresa

A busca de lanches de determinada empresa é realizada através de uma chamada


ao WebService, onde o mesmo através do Id da empresa, buscas todos os lanches, separa
em grupos e retorna em formato Json.
O Quadro 29 mostra o método GetSnacksByEnterprise que retorna os lanches de
determinada empresa.

QUADRO 29 - Código Fonte do Método GetSnacksByEnterprise


91

O trecho de código acima, tem como objetivo através da comunicação com o


WebService, buscar os lanches disponíveis por determinada empresa, através de seu Id,
retornando um Json com todos os lanches para serem apresentados na interface Android.
Na linha 1 é declarado o método GetSnacksByEnterprise, recebendo por parâmetro
um inteiro sendo o id da empresa, retornando um objeto do tipo SnacksEnterprise, com todos
os lanches de acordo com o id da empresa informado, além de iniciar a tratativa de exceção
para caso de erro.
Na linha 2 é criado uma variável do tipo SnacksEnterprise, nomeada de
snacksEnterprise, para ser utilizada durante o processamento e ser retornada ao fim do
mesmo.
Na linha 3 é criado um objeto do tipo HttpTransportSE, passando a url do
WebService e o tempo especificado para timeout.
Na linha 4 é criado um objeto do tipo SoapObject, passando o namespace padrão
e o nome do método presente no WebService, salvo na constante GET_SNACKS.
Na linha 6 e 7 é adicionado duas propriedades no objeto do tipo SoapObject, sendo
o token para acesso e o id da empresa.
Na linha 9 até a linha 11, é criado o envelope de serialização do Soap, passando o
Soap do WebService, da referência do mesmo presente no projeto, atribuindo o tipo dele
para dotNet e passando o conteúdo dele com o valor do objeto do tipo SoapObject,
preenchido anteriormente.
Na linha 13 e 14 é invocado o método do WebService, passando como parâmetro,
o nome do mesmo e o envelope de serialização.
Na linha 16 até a linha 18 é verificado se houve erro de comunicação ou
processamento com o WebService, e captura o erro do que ocasionou e salva no log, para
posterior verificação.
Na linha 19 até a linha 24 é capturado o conteúdo da resposta do WebService no
formato Json, salvo numa variável para após isso, deserializá-la para um objeto do tipo
SnacksEnterprise através da biblioteca Gson.
Na linha 26 é retornada a variável snacksEnterprise, preenchida durante o
processamento.
92

5.4.12 Validação de Informações do Sistema

A codificação de interfaces e layouts no Android é realizada através de uma


linguagem no formado xml, sendo bastante simples e de fácil aprendizado.
No Quadro 30 mostra o xml do layout da interface inicial do protótipo do
aplicativo Android.

QUADRO 30 - Xml do Layout da interface inicial do protótipo do


aplicativo Android
93

Na linha 1 até a linha 6, seta o background do interface, arrumando a imagem do


cheese, de forma que preencha todo o espaço.
Na linha 7 até a linha 20 é configurado as opções e formatações da interface dos
botões que estarão inseridos dentro do seu contexto.
Na linha 21 até a linha 44 é criado um botão para busca de endereço via GPS e
Cep, configurando-o seus eventos e propriedades, de forma que o tornem mais bonitos e
arrojados.
Na linha 45 são fechadas as tags de RelativeLayout e LinearLayout, que
especificaram as localizações dos botões na tela.
Na linha 46 é encerrado o xml, fechando todo o conteúdo da interface.

5.4.13 Busca de Localização do usuário (cliente) via Cep

A busca da localização do usuário (cliente) via Cep é realizada através de um


sistema especialista na função, onde através do Cep informado, o mesmo retorna um xml
contendo as informações de localizações.
No Quadro 31 mostra o método getAddressByPostalCode, responsável por fazer
toda a tramitação de informações e retornar um objeto do tipo DeliveryAddress com as
informações de localização do usuário (cliente).

QUADRO 31 - Código fonte do método getAddressByPostalCode


94

Este método tem como objetivo, através do código postal (cep), efetuar uma
chamada a um serviço externo, buscar as informações e dar progresso as ações durante o
processamento.
Na linha 1 é declarado o método getAddressByPostalCode que retorna um objeto
do tipo DeliveryAddress, passando o parâmetro postal_code do tipo texto, além de iniciar a
tratativa de exceção para caso de erro de parser durante a execução do método.
Na linha 2 e 3 é criado um objeto do tipo DeliveryAddress com o nome de
deliveryAddress e atribuído o valor do postalCode, com o valor passado por parâmetro no
método.
Na linha 4 e 5 é criado um objeto do tipo StringBuffer e concatenado a ele, o valor
da url do serviço localizador de cep, com o cep e um atributo atribuindo seu tipo de formato
de retorno como xml.
Na linha 6 é passado o valor do objeto StringBuffer, para a variável do tipo texto,
nomeada de url.
Na linha 7 até a linha 18, é criado um objeto do tipo HttpClient, no qual conectará
com a url presente na variável, pegará o retorno e salva-lo na variável nomeada
responseData.
Na linha 19 e 20, é o catch onde são tratadas as exceções geradas durante a
execução do passo anterior.
Na linha 21 até a linha 24, é criado um objeto do tipo KXmlParser, que tem a
função de interpretar xmls, com isso, é passado o conteúdo da resposta da url e verificado
se a tag root do xml é webservicecep.
Na linha 26 até a linha 41, é percorrido linha a linha o conteúdo da resposta da url,
verificando quais as tags correntes e caso sejam as esperadas nas validações, são atribuídas
a variável deliveryAddress, caso não seja, segue para a próxima linha.
Na linha 42 até a linha 44, é verificado se a última tag do xml é webservicecep e
atribuído ao final do documento.
Na linha 45 é retornado a variável deliveryAddress do tipo DeliveryAddress,
preenchida durante o processamento do componente.
95

5.4.14 Busca de Localização do usuário (cliente) via Gps

A busca da localização do usuário (cliente) via Gps é realizada através de um


serviço disponibilizado pelo Google Maps, onde através da latitude e longitude o mesmo
retorna as informações de localização.
No Quadro 32 mostra o método getAddressByGps, responsável por fazer toda a
tramitação de informações e retornar um objeto do tipo DeliveryAddress com as informações
de localização do usuário (cliente).

QUADRO 32 - Código fonte do método getAddressByGps

Este método tem como objetivo, através do código postal (cep), efetuar uma
chamada a um serviço externo, buscar as informações e dar progresso as ações durante o
processamento.
Na linha 1 é declarado o método getAddressByGps que retorna um objeto do tipo
DeliveryAddress, passando dois parâmetros tipo texto, sendo a latitude a longitude do local,
capturadas pelo Gps do aparelho.
Na linha 2 é criado um objeto do tipo DeliveryAddress com o nome de
deliveryAddress, que será preenchido durante o processamento e retornado no fim das
96

atividades.
Na linha 4 e 5 é criado um objeto do tipo StringBuffer e concatenado a ele, o valor
da url do serviço do Google Maps, a latitude, longitude e um atributo informando que o tipo
do mesmo é de dispositivo móvel (&sensor=true).
Na linha 6 é passado o valor do objeto StringBuffer, para a variável do tipo texto,
nomeada de url.
Na linha 7 até a linha 18, é criado um objeto do tipo HttpClient, no qual conectará
com a url presente na variável, pegará o retorno e salva-lo na variável nomeada
responseData.
Na linha 19 até a linha 23, é os catchs onde são tratadas as exceções geradas
durante a execução do passo anterior.
Na linha 25 até a linha 27, é capturado o conteúdo da resposta do Google Maps no
formato Json, salvo numa variável para após isso, deserializá-la para um objeto do tipo
Metadata através da biblioteca Gson.
Na linha 29 até a linha 42, é percorrido linha a linha o conteúdo da resposta do
Google Maps, verificando quais os campos correntes e caso sejam os esperados nas
validações, são atribuídas a variável deliveryAddress, caso não seja, segue para a próxima
linha.
Na linha 44 é retornado a variável deliveryAddress do tipo DeliveryAddress,
preenchida durante o processamento do componente.

5.4.15 Carregamento e Envio de Pedido de Lanche

Para executar o envio do pedido, o sistema realiza uma única chamado ao


WebService, apenas após o cliente confirmar seu pedido, ou seja, o sistema efetua as
requisições de uma vez só, carregando os dados selecionados pelo cliente e enviando -os ao
WebService.
No Quadro 33 mostra o método LoadAndSendRequest, que faz todo o
carregamento e envio do pedido, sem a necessidade de parâmetros, pois as informações estão
dentro do contexto de processamento do mesmo.
97

QUADRO 33 - Código fonte do método LoadAndSendRequest

Este método sem como objetivo finalizar o pedido de lanches, carregando as


informações de usuário e pedidos e enviando-os para o sistema.
Na linha 1 é declarado o método LoadAndSendRequest.
Na linha 2 é atribuído a variável progressDialog, um novo ProgressDialog,
passando o contexto atual como parâmetro, e as mensagens a serem apresentadas na tela.
Na linha 3 é criado uma nova Thread, para futura criação de um método para
execução nela em separado da thread corrente.
Na linha 4 é declaro o método Run, dentro da contexto da nova thread criada.
Na linha 5 é criado a estrutura de try catch.
Na linha 6 é verificado se o usuário corrente já foi carregado, ou seja, se o cliente
já efetuou login no sistema.
Na linha 7 caso o cliente já tenha preenchido o usuário e senha nas telas iniciais, é
chamado o método de autenticação de usuário do WebService.
Na linha 9 é chamado o método startRequest do WebService e salvo o guid do
pedido na variável guid.
Na linha 11 até a linha 19 é feito um loop em todos itens do pedido verificando
qual seu tipo (se é um lanche ou bebida) e chamado seu respectivo método no WebService
(addSnackInRequest para lanches e addDrinkInRequest para bebidas).
Na linha 21 é preenchido o valor do guid do pedido no objeto do endereço de
entrega do cliente, através do guid presente na variável guid.
Na linha 22 é invocado o método de enviar o pedido, passando como parâmetro o
98

endereço de entrega do cliente.


Na linha 23 até a linha 27 é tratada os catchs do try, e estourada a exceção na
aplicação, para verificação do problema (o aplicativo é protótipo e necessita realização de
tratativas de bugs numa versão futura).
Na linha 29 é iniciada a thread que realiza a execução do método Run apresentado
nos passos anteriores.

5.5 Apresentação do sistema

Neste tópico será realizada a apresentação do sistema, que dividida em 2 módulos,


será apresentada as principais telas e funcionalidades do aplicativo mobile e do po rtal Web.

5.5.1 Portal Web para Gestão e Monitoramento

Primeiramente para usuário (funcionário da empresa) possuir acesso ao sistema, o


mesmo necessita informar suas credencias para conseguir acesso ao sistema.
A Figura 34 representa o formulário de login do usuário ao sistema, no qual, com
a inserção das credenciais possibilita o acesso a central administrativa.
FIGURA 34 - Formulário de login do usuário ao sistema – Portal Web

Fonte: Próprio Autor

Após o usuário efetuar o login no sistema, o mesmo estará com acesso total a
99

central administrativa, podendo alterar as informações de sua empresa, tais como


informações cadastrais, descrição, endereço e informações em geral.
A Figura 35 representa a tela de alteração das informações empresariais, onde
separado por abas para as distintas informações relacionadas a mesma.
FIGURA 35 - Tela de alteração de informações Empresariais – Portal Web

Fonte: Próprio Autor

Através do acesso a central administrativa, o usuário pode acessar a central de


pedidos, onde na mesma é possível verificar informações dos pedidos e informações de
entrega do usuário emissor do mesmo.
A Figura 36 representa a tela da central de pedidos em aberto, onde o usuário, em
tempo real, visualiza todos os pedidos que estão em aberto, podendo confirmar ou cancelar
os mesmos.
100

FIGURA 36 - Tela de Central de Pedidos em Aberto – Portal Web

Fonte: Próprio Autor

Após confirmar ou cancelar o pedido, os pedidos ficam registrados e disponíveis


para verificação nas abas com os seguintes nomes: Pedidos Fechados (pedidos que foram
confirmados) e Pedidos Cancelados (pedidos que foram cancelados).
A Figura 37 representa a tela de pedidos fechados, que possui as mesmas
características da tela de pedidos cancelados, servindo apenas para histórico e verificação.
FIGURA 37 - Tela de Central de Pedidos Fechados – Portal Web

Fonte: Próprio Autor


101

O usuário pode manipular as bebidas presentes no cardápio, através de interface


altamente eficiente.
A Figura 38 representa a tela de cadastros de Bebidas, onde o usuário pode realizar
ações de Crud, manipulando seus bebidas.
FIGURA 38 - Tela de Cadastro de Bebidas – Portal Web

Fonte: Próprio Autor

O usuário pode manipular os ingredientes do cardápio, através de uma interface


bem intuitiva e amigável.
A Figura 39 representa a tela de cadastros de Ingredientes, onde o usuário pode
realizar ações de Crud, manipulando seus ingredientes.
102

FIGURA 39 - Tela de Cadastro de Ingredientes – Portal Web

Fonte: Próprio Autor


Após manipular os ingredientes, o usuário pode manipular os lanches e vincular
os ingredientes incluídos nos lanches, para que na realização de um pedido, o cliente possa
escolher quais os ingredientes não são de seu gosto.
A Figura 40 representa a tela de cadastros de Lanches, onde o usuário pode
realizar as ações de Crud, manipulando seus lanches juntamente com seus ingredientes
vinculados.
FIGURA 40 - Tela de Cadastro de Lanches – Portal Web

Fonte: Próprio Autor


Com a realização de pedidos o usuário pode visualizar gráficos de quais seus
lanches e bebidas mais pedidos, através do histórico de pedidos, armazenado na base de
dados do sistema.
103

A Figura 41 representa a tela de gráfico de lanches mais pedidos, possuindo as


mesmas características da tela das bebidas mais pedidos, mudando apenas os dados
apresentados.
FIGURA 41 - Tela de Gráficos de Lanches mais Pedidos – Portal Web

Fonte: Próprio Autor


Caso o usuário possua alguma dúvida, sugestão ou reclamação o mesmo pode
entrar em contato com o administrador do sistema, acessando a tela de contato, onde através
de um simples formulário é enviado um e-mail ao administrador do sistema.
A Figura 42 representa o formulário de solicitação de contato.

FIGURA 42 - Tela de Contato – Portal Web

Fonte: Próprio Autor


104

5.5.2 Protótipo do aplicativo Android para realização dos pedidos

No protótipo do aplicativo Android a tela inicial é bastante simples e intuitiva,


possuindo apenas duas opções visíveis, que possuem o objetivo de buscar a localização do
usuário (cliente) para realização da busca de estabelecimentos para sua respectiva
localização.
A Figura 43 representa a interface inicial onde o usuário pode escolher se quer
informar sua localização via GPS ou via Cep.
FIGURA 43 - Interface Inicial – Protótipo aplicativo Android

Fonte: Próprio Autor


Para o usuário (cliente) conseguir efetuar o pedido de lanche o mesmo deve
informar qual seu usuário e senha no sistema, a partir do menu de configurações.
A Figura 44 demonstra a tela de informação de usuário e senha, onde o cliente
deve preenche-la antes de efetuar o envio do seu pedido.
FIGURA 44 - Tela de informação de usuário e senha – Protótipo aplicativo Android

Fonte: Próprio Autor


105

Após o usuário (cliente) informar o Cep ou buscar sua informação de localização


via GPS, o sistema apresentará a seguinte interface para o usuário.
A Figura 45 representa a tela de preenchimento do número e observações da
localização do usuário (cliente), após a captura de sua localização, apresentando a rua e a
cidade do endereço.

FIGURA 45 - Tela de preenchimento do número e observações de localização – Protótipo aplicativo


Android

Fonte: Próprio Autor

Após a verificação de localização do usuário (cliente), o sistema apresentará uma


lista de estabelecimentos disponíveis para determinada região, apresentando suas avaliações
e informações de tempo aproximado de entrega.
A Figura 46 representa a tela de apresentação de empresas disponíveis de acordo
a localização informada.
106

FIGURA 46 - Tela de apresentação de empresa disponíveis – Protótipo aplicativo Android

Fonte: Próprio Autor

A partir da escolha do estabelecimento a ser efetuado o pedido de lanche, o sistema


listará o cardápio do mesmo, organizando os itens do cardápio por grupos, para maior
facilidade do usuário (cliente) em identificar e escolher quais os produtos desejados, além,
de informar menu superior o valor total do pedido corrente, presente no carrinho de compras.
A Figura 47 representa a tela de cardápio de determinada empresa, sendo um
layout padrão, mudando apenas o nome da empresa e os itens do cardápio de uma para outra.
107

FIGURA 47 - Tela de apresentação de cardápio de determinada empresa – Protótipo aplicativo


Android

Fonte: Próprio Autor

Ao selecionar um lanche no cardápio disponível na empresa, o usuário (cliente)


pode adicionar o mesmo em seu carrinho, porém, se existir alguns dos ingredientes do
lanche, o usuário pode desmarcar quais os ingredientes não desejados, para que na realização
do lanche, não seja incluído no lanche.
A Figura 48 representa a tela de desmarcação de ingredientes, onde o usuário
(cliente) por exemplo, deseja que em seu Chesse Egg não seja incluído presunto.
108

FIGURA 48 - Tela de desmarcação de ingredientes de lanche – Protótipo aplicativo Android

Fonte: Próprio Autor


Ao clicar no ícone com um carrinho de compras vermelho, presente nas outras
telas do sistema (visualização do cardápio e do lanche a ser adicionado no carrinho), o
sistema carrega uma simples página, listando todos os lanches e bebidas presentes no
carrinho, informando seu valor unitário e total do pedido.
A Figura 49 representa a tela de carrinho de compras, onde existe a possibilidade
de visualização dos itens presentes no carrinho, dando a possibilidade de aumentar/diminuir
o número de unidades de cada item e também podendo confirmar o pedido, clicando no
botão de enviar

.
109

FIGURA 49 - Tela de carrinho de compras – Protótipo aplicativo Android

Fonte: Próprio Autor

5.6 Conclusão

Neste capítulo primeiramente foram apresentados e explicadas as principais


tecnologias e frameworks utilizados durante o desenvolvimento deste trabalho de conclusão
de curso, que auxiliaram em muito a realização das atividades e funcionalidades.
Em seguida, foi explanado os principais códigos fontes de métodos e classes
responsáveis pela parte de gestão e monitoramento dos pedidos de lanches, gestão dos
cardápios como um todo, por parte do Portal Web e a escolha de filtros, empresas, itens e
realização dos pedidos de lanches por parte do aplicativo Android.
Após isso, foram apresentadas as principais interfaces do sistema em ambos os
módulos, separadas por tópicos, com suas respectivas descrições e características.
110

6 CONSIDERAÇÕES FINAIS

Este trabalho de conclusão de curso teve como objetivo principal criar um


protótipo de um aplicativo Android para pedidos de lanches e um Portal e Aplicativo para
Gestão e Monitoramento.
No desenvolvimento deste projeto foi necessário realizar o estudo sobre
tecnologias destinadas a desenvolvimento web e móvel, onde foi identificado que as
tecnologias em conjunto com componentes externos e padrões de desenvolvimento estão
aptos a possibilitar e geração, controle e monitoramento de pedidos, através de dois módulos
divididos em: Aplicativo Android e Portal Web
Atualmente é notório o crescimento na utilização da internet no mundo todo, com
isso, gerando milhares de visitas a um Portal Web, sendo de agrado do público em geral,
além, de que por não ter requisitos de sistema operacional para seu pleno funcionamento, as
empresas optam por utilizar os mesmos para facilitação de suas atividades em diversos
ambientes de trabalho.
A utilização dos dispositivos móveis cresce aceleradamente a partir da qualidade
e agilidade, além da grande diversidade de smartphones e tablets para todos os gostos, tudo
isso, porque as pessoas procuram utilizar equipamentos e recursos que lhe tragam agilidade,
conforto transparências na realização de suas atividades.
Como a demanda de pedidos as empresas, torna-se muito difícil as mesmas
gerenciarem seus produtos, clientes, pedidos e estatísticas, além dos clientes possuírem
alguns obstáculos para realização de seus pedidos, como já citados no decorrer deste
trabalho.
O objetivo deste trabalho de vem encontro justamente para que se não acabar com
estes problemas, ou ao menos melhorá-los consideravelmente, por parte das empresas um
portal gerenciador de pedidos, controle de produtos, além da possibilidade de geração de
relatórios e avaliações sobre a mesma e por parte dos clientes um aplicativo Android que
possibilite ao mesmo visualizar os cardápios e realizar seus pedidos, de acordo com a
empresa desejada.
111

Para chegar a este objetivo foi necessário pesquisar sobre tecnologias web e movél,
até o ponto de aprender formas e técnicas para desenvolvimento de um portal web e
aplicação móvel, rápida, com boa usabilidade e principalmente de qualidade. Porém a etapa
de desenvolvimento do portal web foi a mais complicada, devido a grande complexidade de
linguagens para deixar com o portal com mais interatividade e também por não tido
experiência alguma em desenvolvimento web anteriormente ao desenvolvimento deste
projeto.
Durante o desenvolvimento foi necessária a utilização dos componentes gráficos
Telerik e jQuery UI para desenvolvimento do portal web e a plataforma Android SDK para
desenvolvimento do aplicativo móvel, de forma mais simplificada, além de ser, mais
sofisticada e de qualidade.
Em relação aos três objetivos específicos, pode-se afirmar, que os mesmos foram
100% atingidos, o primeiro foi, através do desenvolvimento de um aplicativo móvel para
realização de pedidos, o segundo através do desenvolvimento de um portal Web para gestão
e monitoramento e o terceiro está envolvido na arquitetura do projeto e base de dados onde
as informações estão plenamente organizadas e distribuídas, sendo cadastradas pelo portal
Web e apresentadas no aplicativo móvel.
Dentre as limitações do aplicativo móvel, o que se pode destacar é que o mesmo
depende de um Web Service para seu pleno funcionamento, caso este, encontra-se off-line,
o aplicativo se torna inoperante.
Sugere-se para trabalhos futuros a criação de novas funcionalidades como:
realização de pedidos via um portal web, criação de um aplicativo móvel para outros
sistemas operacionais dos smartphones, tais como: iOS e Windows Phone.
112

REFERENCIAS BIBLIOGRAFICAS

ABRASEL. 74% dos brasileiros preferem fast-food a restaurantes tradicionais.


14/12/2011. Disponível em
<http://www.abrasel.com.br/index.php/atualidade/noticias/946-141211-74-dos-brasileiros-
preferem-fast-food-a-restaurantes-tradicionais.html> Acessado em 02 de Fevereiro de
2013.

ADRENALINE. Comércio eletrônico deve crescer 25% em 2013. 04/03/2013.


Disponível em <http://adrenaline.uol.com.br/internet/noticias/15808/comercio -eletronico-
deve-crescer-25-em-2013.html>. Acessado em 1 de Maio de 2013.

AGÊNCIA DIGITAL. Brasil tem 99 milhões de computadores em uso. 30/08/2012.


Disponível em:http://www.diarioonline.com.br/noticia-197517-brasil-tem-99-milhoes-de-
computadores-em-uso.html. Acessado em 25 de Agosto de 2012.

AGÊNCIA SEBRAE. Setor de alimentos cresce e demanda por mais capacitações.


22/08/2008. Disponível em
<http://www.agenciasebrae.com.br/noticia/7621520/comercio/setor-de-alimentos-cresce-e-
demanda-por-mais-capacitacoes/?indice=590>. Acessado em 3 de Fevereiro de 2013.

ALECRIM, Emerson. Criptografia. Disponível em


<http://www.infowester.com/criptografia.php>. 11/07/2009. Acessado em 1 de Maio de
2013.

ÁLVARES, Débora. 2 franquias são abertas por hora no Brasil. 08/03/2012. Disponível
em <http://exame.abril.com.br/pme/album-de-fotos/6-franquias-sao-abertas-por-hora-no-
brasil-veja-setores-mais-promissores>. Acessado em 21 de Março de 2013.

ALVAREZ, Miguel Angel. O que é .NET. Disponível em


<http://www.criarweb.com/artigos/226.php>. 27/10/04. Acessado em 2 de Maio de 2013.

ANDROID, Developer. Get the Android SDK. Disponível em


<http://developer.android.com/sdk/>. Acessado em 12 de Maio de 2013.

AUGUSTO, Danilo. O que é JSON, como e quando utilizar?. Disponível em


<http://www.tidbits.com.br/o-que-e-json-como-e-quando-utilizar>. Acessado em 17 de
Maio de 2013.

BAPTISTELLA, Adriano José. Abordando a arquitetura MVC, e Design Patterns:


Observer, Composite, Strategy. Disponível em
<http://www.linhadecodigo.com.br/artigo/2367/Abordando-a-arquitetura-MVC-e-Design-
Patterns-Observer-Composite-Strategy.aspx>. Acessado em 14 de Maio de 2013.

BARROS, Thiago. Android domina mercado brasileiro; Windows Phone mais


113

expressivo que iPhone. 10/09/2012. Disponível em


<http://www.techtudo.com.br/noticias/noticia/2012/09/android-domina-mercado-
brasileiro-windows-phone-mais-expressivo-que-iphone.html>. Acessado em 23 de Março
2013.

BASHA, S. Jeelani; CABLE, Scott; GALBRAITH, Ben; HENDRICKS, Mack; IRANI,


Romin; MILBERY, James; MODI, Tarak; TOST, Andre; TOUSSAINT, Alex.
Professional java web services. Birmingham: Wrox Press, 2002.

BERNARDES, L. Como funciona o e-commerce?, As cifras do e-commerce. Revista


InfoExame. Agosto de 2006.

BEZERRA, Eduardo. Princípios de Análise e Projeto de Sistemas com UML. Rio de


Janeiro: Campus, 2006. 250p.(livro)

BOOCH, G., et. al. UML - Guia Do Usuário - 2ª Edição. Rio de Janeiro: Campus, 2006.

BOOTH, D. Web Service Architecture. Disponível em


<http://www.w3.org/TR/2006/REC-xml-20060816/#sec-intro>. 26/09/2006. Acessado em
5 de Maio de 2013.

BUD, Andrew. Comprar pelo celular já é um sucesso no Brasil . 27/08/2012. Disponível


em:http://marcaemarketing.wordpress.com/2011/07/25/comprar-pelo-celular-ja-e-um-
sucesso-no-brasil/. Acessado em 27 de Agosto de 2012.

CAELUM. Eclipse IDE. Disponível em <http://www.caelum.com.br/apostila-java-


orientacao-objetos/eclipse-ide/>. Acessado em 19 de Maio de 2013.

CARNEIRO, Mariana. Alimentação fora de casa cresce 15% em dez anos. 22/09/2012.
Disponível em: <http://www1.folha.uol.com.br/fsp/mercado/67574-alimentacao-fora-de-
casa-cresce-15-em-dez-anos.shtml>. Acessado em 23 de Março de 2013.

CASTRO, Wellington C. E-commerce - Vantagens para consumidores e para as


empresas. Disponível em <http://www.oficinadanet.com.br/artigo/e-commerce/e-
commerce--vantagens-para-consumidores-e-para-as-empresas>. 03/10/2011. Acessado em
29 de Março de 2013.

COCKBURN, A. Writing Effective Use Cases. Disponível em:


<http://www2.dis.ulpgc.es/~jsanchez/MDS/EffectiveUseCases.pdf>. Acessado em 15 de
Maio de 2013.

CONSUMIDOR. Código do Consumidor. LEI Nº 8.078, DE 11 DE SETEMBRO DE


1990. Disponível em http://www.planalto.gov.br/ccivil_03/Leis/L8078.htm. Acessado 27
em Maio de 2013.

DÉCIO, Otávio C. Guia de consulta rápida: XML. São Paulo: Novatec, 2000.

DICIO. Mobilidade. Disponível em <http://www.dicio.com.br/mobilidade/>. Acessado


em 13 de Maio de 2013.

ECOMMERCENEWS. Pesquisa global comprova que o Mobile Commerce já é


114

sucesso no Brasil. Disponível em


<http://www.ecommercenews.com.br/noticias/pesquisas-noticias/pesquisa-global-
comprova-que-o-mobile-commerce-ja-e-sucesso-no-brasil>. Acessado em 18 de Maio de
2013.

EMÍLIO. Criando uma pequena aplicação usando NHibernate Parte 1. Disponível em


<http://emilio2hd.com.br/criando-uma-pequena-aplicacao-usando-nhibernate-parte-1/>.
13/12/2010. Acessado em 13 de Maio de 2013.

FARIA, Alessandro de Oliveira. Instalando o Android SDK na plataforma Linux.


Disponível em <http://www.linhadecodigo.com.br/artigo/2811/instalando-o-android-sdk-
na-plataforma-linux.aspx>. Acessado em 13 de Maio de 2013.

FAST COMPRAS. Vantagens competitivas para o comércio eletrônico. Disponível em


<http://www.fastcompras.com.br/blog/archives/513>. 09/01/2011. Acessado em 28 de
Março de 2013.

FRANCHISE, Rizzo. Balanço dos Setores - Alimentação Fast Food. Disponível em


<http://www.rizzofranchise.com.br/?pag=franchise_news&cat=1&id=335>. Acessado em
20 de Maio de 2013.

FROZZA, Angelo Augusto. PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS.


Instituto Federal de Educação, Ciência e Tecnologia Catarinense, 2012. 21p. (artigo)

G1. Mundo terá mesmo número de celulares quanto de pessoas em 2013. Disponível
em <http://g1.globo.com/tecnologia/noticia/2013/02/mundo-tera-mesmo-numero-de-
celulares-quanto-pessoas-em-2013.html>. Acessado em 13 de Maio de 2013.

G1. Vendas do comércio eletrônico do Brasil devem crescer 24% em 2013 . Disponível
em <http://g1.globo.com/tecnologia/noticia/2013/03/vendas-do-comercio-eletronico-do-
brasil-devem-crescer-24-em-2013.html>. 20/03/2013. Acessado em 30 de Março de 2013.

GAMA, Alexandre. Introdução: JSON. Disponível em


<http://www.devmedia.com.br/introducao-json/23166>. Acessado em 16 de Maio de 2013.

GTA, UFRG. XML - Definição. Disponível em


<http://www.gta.ufrj.br/grad/00_2/xml/definicao.htm>. Acessado em 16 de Maio de 2013.

GUEDES, Gilleanes T.A. UML 2 – Guia de Consulta Rápida – Segunda Edição. São
Paulo: Novatec Editora Ltda, Novembro de 2005.

HIRT, Alan. Pro SQL Server 2008: Failover Clustering. New York, NY: Apress, 2010.

IDGNOW, UOL. Chega a 640 milhões o número de dispositivos iOS e Android em


uso. 29/08/2012. Disponível em <http://idgnow.uol.com.br/mobilidade/2012/08/28/chega-
a-640-milhoes-o-numero-de-dispositivos-ios-e-android-em-uso/> Acessado em 25 de
Março de 2013.

JÚNIOR, Altamiro Silva. Pagamento em dinheiro chega a 91% em compra de menor


valor. Disponível em <http://economia.estadao.com.br/noticias/suas-contas-setor-
financeiro,pagamento-em-dinheiro-chega-a-91-em-compra-de-menor-valor,86249,0.htm>.
115

29/11/2011. Acessado em 01 de Maio de 2013.

KREGER, H. Web Services Conceptual Architecture (WSCA 1.0), IBM Software


Group, 2001.

LECHETA, Ricardo R. Google Android: aprenda a criar aplicações para dispositivos


móveis com o Android SDK. Ed. Novatec. 2ª ed. São Paulo, 2010.

LEE, Valentino; SCHNEIDER, Heather; SCHELL, Robbie. Aplicações móveis:


arquitetura, projeto e desenvolvimento. Tradução Amaury Bentes & Deborah Rüdiger.
São Paulo: Pearson Education do Brasil, 2005.

LOGISTA ONLINE. Comércio Eletrônico. Disponível em


<http://www.lojistaonline.com.br/wtk/pagina/al_faq?id=3>. Acessado em 28 de Maio de
2013.

LOPES, Camilo. Serie 2:Web Service, Aplicação & Benefícios. Disponível em


<http://blog.camilolopes.com.br/serie-2-web-service-aplicacao-beneficios/>. 13/10/2008.
Acessado em 13 de Maio de 2013.

MACORATTI, José Carlos. Padrões de Projeto : O modelo MVC - Model View


Controller. Disponível em <http://www.macoratti.net/vbn_mvc.htm>. Acessado em 14 de
Maio de 2013.

MENDONÇA, Aderval. Mobilidade em análise. Disponível em


<http://www.devmedia.com.br/mobilidade-em-analise/3309>. Acessado em 27 de Março
de 2013.

MENÉNDEZ, Andrés Ignácio Martínez. Uma ferramenta de apoio ao desenvolvimento


de Web Services. Dissertação de Mestrado, Universidade Federal de Campina Grande,
curso de Pós-Graduação em Informática, 2002. 97 p.

MEYER, Reto. Professional Android 2 Application Development. Indianapolis, Wiley


Publishing, 2010.

MICROSOFT. Guia de Introdução ao Visual Studio. Disponível em


<http://msdn.microsoft.com/pt-br/vstudio/ff431702>. Acessado em 18 de Maio de 2013.

MONTEIRO, Antônio. Escolha seu .com. 1. Ed – São Paulo: Brasport, 2005

OFICINADANET. SQL Server. Disponível em:


<http://www.oficinadanet.com.br/artigo/501/sql_server>. Acesso em: 01/05/2011.

OFICINADANET. O que é WebServices. Disponível em


<http://www.oficinadanet.com.br/artigo/447/o_que_e_web_service>. 29 -08-2007.
Acessado em 15 de Maio de 2013.

O'HIGGINS, Niall. Android SDK on Ubuntu. 27/01/2010. Disponível em


<http://niallohiggins.com/2010/01/27/android-sdk-on-ubuntu/>. Acessado em 23 de Maio
de 2013.
116

PALMEIRA, Thiago V. V. Conhecendo o Eclipse - Uma apresentação detalhada da


IDE. Disponível em <http://www.devmedia.com.br/conhecendo-o-eclipse-uma-
apresentacao-detalhada-da-ide/25589>. Acessado em 20 de Maio de 2013.

PEREIRA, Gisele Floriano, Desenvolvimento do Sistema Web do Observatório


Astronômico da UFSC. 2006. 124 f. Graduação (Bacharel) - Curso de Sistemas
deInformação, Universidade Federal De Santa Catarina, Florianópolis, 2006. Cap. 3.
Disponível em:
<http://projetos.inf.ufsc.br/arquivos_projetos/projeto_513/monografia_gfp.pdf>. Acessado
em 11 de Maio de 2013.

PORTAL DO FRANCHASING. O criador do fast-food no Brasil. 04/2012. Disponível


em
<http://www.portaldofranchising.com.br/site/content/revista/interna.asp?Largura Tela=144
0&CodA=158&CodAf=525&CodC=4>. Acessado em 22 de Maio de 2013.

PRADO, Leandro. Começando com FluentNHibernate. Disponível em


<http://www.leandroprado.com.br/2012/01/comecando-com-fluent-nhibernate/>.
04/01/2012. Acessado 15 de Maio de 2013.

PRADO, Sérgio. Introdução ao funcionamento interno do Android. 15/08/2011.


Disponível em <http://www.sergioprado.org/2011/08/15/introducao -aofuncionamento-
interno-do-android/>. Acessado em 29 de Maio de 2013.

KRANIERI, Bárbara. Veja o que é ORM e os frameworks disponíveis para .NET.


Disponível em <http://www.princiweb.com.br/blog/programacao/veja-o-que-e-orm-e-os-
frameworks-disponiveis-para-net/>. 16/04/2013. Acessado em 14 de Maio de 2013.

RECKZIEGEL, Mauricio. Entendendo os WebServices. Disponível em


<http://imasters.com.br/artigo/4245/web-services/entendendo-os-webservices/>.
23/06/2006. Acessado em 12 de Maio de 2013.

ROMAGNOLO, Cesar Augusto. O que é Criptografia. Disponível em


<http://www.oficinadanet.com.br/artigo/443/o_que_e_criptografia>. 02/05/2013.
Acessado em 20 de Março de 2013.

SAMPAIO, Cleuton. Web 2.0 e mashups: Reinventando a Internet. Brasport, 2007.

SARDINHA, Claudia. Como funciona o PayPal?. Disponível em


<http://www.techtudo.com.br/dicas-e-tutoriais/noticia/2012/01/como-funciona-o-
paypal.html>. 23/01/2012. Acessado em 20 de Março de 2013.

SHOPPEREXPERIENCE. Pesquisa inédita da Shopper Experience revela opinião do


brasileiro sobre as redes de fast-food. Disponível em
<http://www.shopperexperience.com.br/DaVinci/arquivos/PressShopper_FastFood_V1.pd
f>. Acessado em 16 de Maio de 2013.

SILVINO, Antonio Rubens Silva. Liquigás marcou presença no Conarec 2012

Liquigás marcou presença no Conarec 2012. 28/08/2012. Disponível


em:http://www.liquigas.com.br/wps/portal/!ut/p/c0/04_SB8K8xLLM9MSSzPy8xBz9CP0
117

os3hvPwMjIw93IwMDFzcjA6OgoADLQA8XQ-
cAE_2CbEdFABkXeDQ!/?PC_7_KN022HG20OVI40270TOD3A1OE7_WCM_CONTE
XT=/wps/wcm/connect/Web%20Content/liquigas/menu/comunicacao/noticias/liquigas+m
arcou+presenca+no+conarec+2012. Acessado em 28 de Agosto de 2012.

STRICKLAND, Jonathan. Como funciona o Android (Google Phone). 16/09/2009.


Disponível em <http://informatica.hsw.uol.com.br/google-phone2.htm>. Acessado em 29
de Maio 2013.

SUN. Java BluePrints: Model-View-Controller. Apresenta uma descrição sobre a


arquitetura MVC. Disponível em: <http://java.sun.com/blueprints/patterns/MVC-
detailed.html>. Acessado em 12 de Maio de 2013.

TEMPLEMAN, J.; VITTER, D. Visual Studio .NET: The .NET Framework Black
Book. Scottsdale, Arizona: Coriolis, 2007.

TISELVAGEM. Desenvolvendo para Android: Arquitetura Android. Disponível em


<http://www.tiselvagem.com.br/geral/desenvolvendo-para-android-arquitetura-android/>.
Acessado em 20 de Maio de 2013.

TURTSCHI, Adrian. C#.NET: guia do desenvolvedor web. 2. Ed. São Paulo: Alta
Books, 2004. 517p.

VISA. Pagamentos eletrônicos estimulam crescimento econômico no Brasil.


Disponível em <http://www.visa.com.br/conteudo.asp?pg=1584>. 13/03/2013. Acessado
em 3 de Maio de 2013.

W3. Extensible Markup Language (XML). Disponível em <http://www.w3.org/XML/>.


Acessado em 15 de Maio de 2013.

WAZLAWICK, Raul Sidnei. Análise e projeto de sistemas de informação orientados a


objetos. 2. Ed. Rio de Janeiro: Elsevier, Editora Campus, 2011.

WIKIPEDIA. Fast-food no Brasil. 29/04/2012. Disponível


em<http://pt.wikipedia.org/wiki/Fast-food_no_Brasil> Acessado em 20 de Maio de 2013.

FARIA, Alessandro de Oliveira. Instalando o Android SDK na plataforma Linux.


Disponível em <http://www.linhadecodigo.com.br/artigo/2811/instalando -o-android-sdk-
na-plataforma-linux.aspx>. Acessado em 13 de Maio de 2013.

TISELVAGEM. Desenvolvendo para Android: Arquitetura Android. Disponível em


<http://www.tiselvagem.com.br/geral/desenvolvendo-para-android-arquitetura-android/>.
Acessado em 20 de Maio de 2013.

LEE, Valentino; SCHNEIDER, Heather; SCHELL, Robbie. Aplicações móveis:


arquitetura, projeto e desenvolvimento. Tradução Amaury Bentes & Deborah Rüdiger.
São Paulo: Pearson Education do Brasil, 2005.
118

APÊNDICES

APÊNDICE A - ARTIGO ............................................................................................... 119


119

APÊNDICE A – ARTIGO

Protótipo de um Aplicativo Android para Pedidos de Lanches e


um Portal Web para Gestão e Monitoramento
Sergio Antonio Fontana Junior, Alexandre Rech

Sistemas de Informação – Universidade do Planalto Catarinense (UNIPLAC)

88500-000 – Lages – SC – Brasil

sergiofontana1903@gmail.com, rech@gmail.com
Abstract. Nowadays people want and choose to make use of services that bring greater ease,
flexibility and quality in their activities in general. When a person wishes to make a request for
food, often by the same meets with difficulties for reasons of traffic congestion, busy telephone
lines and high flow of people competing with the same desires. Therefore, the objective of this
work is the development of the implementation of a prototype mobile application on the Android
platform, to make orders of snacks by the client and a Web portal for the analysis, management
and monitoring and aid in decision making, by employees of the company.
Resumo. Atualmente as pessoas desejam e optam por usufruir de serviços que lhe tragam mais
facilidade, flexibilidade e qualidade em suas atividades em geral. Quando uma pessoa deseja
realizar um pedido alimentício, por muitas vezes a mesma encontra-se com dificuldades por
questões de transito, congestionamento, linhas telefônicas ocupadas e alto fluxo de pessoas
concorrendo com as mesmas vontades. Com isso o objetivo deste trabalho consiste no
desenvolvimento de na implementação de um protótipo de aplicativo móvel na plataforma
Android, para realização de pedidos de lanches por parte do cliente e um portal Web para a
análise, gestão e monitoramento e auxílio na tomada de decisão, por parte dos funcionários
da empresa.

1. Introdução
“Nos últimos anos o crescimento de empreendimentos como restaurantes, bares,
lanchonetes e outros estabelecimentos de produção de alimentos tem sido maior que a capacidade
de atendimento da Agência Nacional de Vigilância Sanitária (Anvisa) e de instituições que
qualificam esse tipo de atividade” (AGÊNCIA SEBRAE, 2008).
Com o aumento do número de estabelecimentos alimentícios, aumenta o número de opções
e possibilidades de escolha do cliente de acordo com sua vontade no momento, mesmo não tendo
muitas formas para realização de seus pedidos (celulares, telefones e computadores), sendo os
celulares, os campeões no quesito crescimento atualmente.
Conforme a reportagem publicada por G1 (2013), de acordo com as estimativas sobre a
penetração do serviço de telefonia móvel no planeta, até o fim de 2013, o mundo terá quase sete
bilhões de linhas ativas. Isso representa praticamente um celular por pessoa, mesmo que a taxa
utilização seja muito maior em determinados locais e menor em outros.
120

“O número de usuários domésticos com computador no Brasil ultrapassa 99 milhões e o


número de usuário com celulares chega a incrível marca de 87% presente dos lares brasileiros,
perdendo apenas para a televisão” (AGÊNCIA BRASIL, 2012).
Segundo SHOPPER EXPERIENCE (2011), foi realizada uma pesquisa sobre a opinião
sobre as empresas de fast-food no Brasil onde foi conduzida com 5.815 pessoas entre 18 e 55 anos
em todo o país – revela os hábitos de consumo e preferências dos clientes de alimentação rápida. O
estudo mostra que a preferência pelo fast-food em detrimento do restaurante tradicional se dá, para
74% dos entrevistados, pela conveniência, rapidez e agilidade na refeição.
Tendo em vista o alto número de tecnologias atualmente disponíveis no mercado, chegou-
se à conclusão que o ramo alimentício é um mercado com grande potencial de crescimento, que por
muitas vezes, carece de formas para realização pedidos, causando dificuldades para o clientes tais
como: tempo de espera, linhas ocupadas, trânsito e incomodo, além também da falta de
conhecimento por parte da empresa sobre os hábitos e preferências dos clientes.
Com base nestas características e evidências, a proposta deste trabalho é o desenvolvimento
de um sistema de gestão de pedidos de lanches, capaz de aproximar o cliente do estabelecimento,
evitando toda a burocracia do negócio, através de um prático e completo software, capaz de oferecer
ofertas aos clientes e diferentes formas de pagamento, além de auxiliar as empresas na gestão dos
pedidos, possibilitando maior controle e auxilio na tomada de decisão.

2. Android e os Pedidos de Lanches no Brasil


Desenvolvida pela Shopper Experience, com a pesquisa “Fast-Food no Brasil”, ao
questionar quais são os três fatores mais importantes para a escolha de um fast-food, a pesquisa
Fast-Food no Brasil aponta que 56% dos consumidores costumam creditar como fator mais
importante para a escolha o sabor da comida; e 27% consideram mais importante a higiene do
local. Na hora de escolher o restaurante fast-food, o fator preço pesa pouco: apenas 3% dos
entrevistados consideraram esse quesito importante. Fila, visual da loja e apresentação dos
funcionários também não pesam muito: apenas 1% dos entrevistados considerou cada um desses
tópicos importante no momento da escolha, segundo a pesquisa (ABRASEL, 2011).
As franquias de redes de Fast-Foods aumentaram sua participação no mercado brasileiro
em 2011 e passaram a representar 8% do Produto Interno Bruto Nacional (PIB) – o faturamento
foi de 286 bilhões de reais, segundo pesquisa realizada consultoria Rizzo Franchise (ÁLVARES,
2012).
Segundo Carneiro (2012), segundo dados da Abia (Associação Brasileira da Indústria de
Alimentos), o setor de serviços de alimentação faturou R$ 235 bilhões em 2011, com crescimento
de 16% em relação a 2010. Na última década, os serviços de alimentação cresceram em média
15% ao ano no Brasil, e o varejo de produtos alimentícios, 12%.
Dentre as formas de pedidos disponíveis no mercado, pode-se citar o pedido indo ao local,
a mais convencional e primitiva, pedidos via telefone que por muitas vezes encontra-se com as
linhas ocupadas e a melhor e atual que é a realização de pedidos via Internet através de apenas um
celular, possuindo acesso total a diversos estabelecimentos juntamente com seus cardápios e
promoções através de um único aplicativo.
A gestão dos pedidos por parte dos estabelecimentos geralmente é realizada com a
comanda de papel, possuindo também, comanda em posse do cliente, do caixa do estabelecimento
e softwares, além de Portal de Gestão e Estatísticas na Web para os administradores das Empresas,
que é a maior inovação tecnológica devido sua agilidade, qualidade e transparência do serviço
sendo disponibilizado, devido a central de pedidos online que possibilita as empresas que possuem
filiais podem acompanhar avaliar e analisar a evolução de suas filiais em tempo real e a geração de
121

relatórios que fazem uma grande diferença para os estabelecimentos, por possuir informações
detalhadas e minuciosas sobre os gostos e preferências dos clientes.
3. Comércio Eletrônico e Ofertas On-Line
Segundo LOGISTA ONLINE (2013), o comércio eletrônico ou e-commerce é a compra e
venda de mercadorias ou serviços por meio da Internet, onde as chamadas Lojas Virtuais oferecem
seus produtos e formas de pagamento online. O comércio eletrônico é um meio facilitador dos
negócios, tornando o processo de venda fácil, seguro, rápido e transparente, reduzindo os custos
das empresas que atuam neste segmento e estimulando a competitividade.
As vendas no comércio eletrônico brasileiro devem atingir R$ 28 bilhões neste ano,
quando o segmento pode superar 50 milhões de consumidores, conforme projeções traçadas pela
empresa especializada em dados do setor, e-bit (G1, 2013).
Em 2012, foi realizado ao longo do ano 66,7 milhões de pedidos, um volume 24,2% maior
do que o registrado no ano anterior. Conforme a e-bit, 42,2 milhões de pessoas já fizeram, ao
menos, uma compra on-line no Brasil. O tíquete médio em 2012 fechou em R$ 342 (G1, 2013).
Sobre os principais benefícios disponibilizados para as empresas, segundo Castro (2011),
são “custos mais baixos para alcançar um público maior, aberto 24 horas por dia, novos métodos
de distribuição, contato direto com o cliente, mais informações sobre os consumidores e marketing
personalizado.
“O e-commerce traz grandes benefícios para os clientes, para os consumidores e também
para os fornecedores. Os grandes ganhos para os consumidores é proporcionar compras mais
eficientes, oferecendo um maior leque de escolhas, preços mais baixos e um alto nível de serviços
personalizados. Também oferece novos tipos de produtos e serviços com novas maneiras de
adquiri-los” (CASTRO, 2011).
Dentre as formas de pagamento utilizadas no comércio eletrônico, podem ser destacadas, o
dinheiro, que no momento da entrega do pedido realizado o pagamento é feito em dinheiro vivo,
boleto bancário, que após ser pago o pedido é entregue, cartão de crédito/débito, um dos mais
utilizados mundialmente, além do Pay-Pal e PagSeguro que são plataformas de pagamento online.
Os cardápios e ofertas no ramo alimentício são divididos em 3 módulos, um cardápio
online personalizado, que as próprias empresas montam seus cardápios de forma totalmente
exclusiva, possuindo um design limpo e personalizável, o segundo é o módulo de agendamento de
pedidos on-line, responsável por aproximar empresa-cliente através de um portal web ou aplicação
móvel para realização de pedidos de forma instantânea, e por último o módulo para ofertas e
promoções atualizadas em tempo real, que através de um aplicativo móvel ou portal web,
apresente quais são as principais promoções e ofertas de diversas empresas ao mesmo tempo.
4. Modelagem do sistema
4.1 Visão Geral
O objetivo do sistema é possibilitar a realização de pedidos de lanches por parte dos clientes
e a gestão dos pedidos por parte das empresas. Dentre estas características foram divididos em 2
módulos, sendo o aplicativo móvel e o portal web.
4.2 Requisitos
Para a construção deste sistema, foram nescessárias as implementações dos seguintes
requisitos funcionais e não funcionais, apresentados abaixo.
RF 001 – Permitir empresas enviar feed-back para o Administrador
RF 002 – Validar usuário e senha
RF 003 – Permitir o filtro de informações
122

RF 004 – Verificar conexão com o WebService


RF 005 – Verificar conexão com a Internet
RF 006 – Validar Cep
RF 007 – Validar token de acesso do usuário
RF 008 – Processar Informações de Localização
RF 009 – Aprovar/Cancelar Pedidos
RF 010 – Enviar Pedido
RF 011– Gerar relatórios de bebidas e lanches mais pedidos

RNF 001 - Trafegar informações com o WebService no formato Json


RNF 002 - Módulos restritos a tipos específicos de usuários
RNF 003 - Funcionar em todas as versões do Android
RNF 004 – Validar Informações Digitadas
4.3 Casos de Uso
Abaixo serão apresentados todos os casos de uso necessários para a criação deste sistema.

4.3 Módulo Aplicativo Android


Este módulo compreende um aplicativo móvel na plataforma Android para utilização do
cliente, para visualizações dos cardápios de todas as empresas cadastradas, realização de pedidos e
possibilidade de avaliações dos serviços prestados por parte da empresa.
Na Figura 1 apresentada a baixo, são mostrados todos os casos de uso do módulo do
aplicativo Android.

Figura 1. Visão Geral – Casos de Uso Módulo Aplicativo Android


123

4.3 Módulo Portal Web


Este módulo compreende em um Portal Web para utilização das empresas, para cadastro de
seus produtos (itens do cardápio), para avaliação dos pedidos, visualização de relatórios e
avaliações realizadas pelos clientes, para que através disso os mesmos possam tomar decisões.
Na Figura 2 apresentada a baixo, são mostrados todos os casos de uso do módulo do Portal
Web.

Figura 2. Visão Geral – Casos de Uso Módulo Portal Web


5. Implementação do Sistema

Para implementação do sistema foram necessárias a utilização de bibliotecas e tecnologias


externas, dentre elas: Telerik, AutoMapper, nHibernate e Json .NET, que serviram para facilitar e
engrandecer a estrutura, performance e qualidade deste projeto.
No Quadro 1 mostra o método para criação da sessão do nHibernate, utilizando a dll
FluentNHibernate.dll, que é quem faz toda a criação do contexto da transação para acesso ao banco
de dados, na qual foi utilizado durante todo o desenvolvimento deste projeto e testes pós-
implementação.
124

Quadro 1. Criação da Sessão nHibernate

Texto
Texto

A apresentação e manipulação de registros durante o desenvolvimento deste


projeto foi realizada através de grids, para a implementação destas foi utilizada o componente
gráfico Telerik. No Quadro 2 é apresentado um trecho de código onde é utilizado estes
recursos.
Quadro 2. Trecho de Código do Componente Telerik

O transporte de dados entre da aplicação mobile é feito através do formato Json, um


formato leve e compacto, foi utilizado a dll Newtonsoft.Json.dll, conforme o Quadro 3, sobre
o método SendCrossTalkToWebService, utilizando-os dos métodos desta dll.
125

Quadro 3. Código fonte do método SendCrossTalkToWebService

Quadro
O Quadro 4. Códigoo método
4 apresenta fonte do
paramétodo GetAddressByGPS
busca de endereço via GPS, que através da api
do google, consegue exatamente qual a localização do cliente.
Quadro 4. Código fonte do método GetAddressByGPS

O Quadro 5 mostra o método GetSnacksByEnterprise que busca de lanches de


determinada empresa através de uma chamada ao WebService, onde o mesmo através do Id
da empresa, buscas todos os lanches, separa em grupos e retorna em formato Json.
126

Quadro 5. Código fonte do método GetSnacksByEnterpri se

6. Apresentação do Sistema
O sistema foi dividido em 2 módulos, onde serão apresentadas as principais telas do
sistema.
6.1 Aplicativo Android
No protótipo do aplicativo Android a tela inicial é bastante simples e intuitiva, possuindo
apenas duas opções visíveis, que possuem o objetivo de buscar a localização do usuário (cliente)
para realização da busca de estabelecimentos para sua respectiva localização.
A Figura 3 representa a interface inicial onde o usuário pode escolher se quer informar sua
localização via GPS ou via Cep.

Figura 3. Interface Inicial Aplicativo Android


127

Após a verificação de localização do usuário (cliente), o sistema apresentará uma lista de


estabelecimentos disponíveis para determinada região, apresentando suas avaliações e
informações de tempo aproximado de entrega.
A Figura 4 representa a tela de apresentação de empresas disponíveis de acordo a
localização informada.

Figura 4. Tela de Apresentação de Empresas Disponíveis

A partir da escolha do estabelecimento a ser efetuado o pedido de lanche, o sistema listará


o cardápio do mesmo, organizando os itens do cardápio por grupos, para maior facilidade do
usuário (cliente) em identificar e escolher quais os produtos desejados, além, de informar menu
superior o valor total do pedido corrente, presente no carrinho de compras.
A Figura 5 representa a tela de cardápio de determinada empresa, sendo um layout padrão,
mudando apenas o nome da empresa e os itens do cardápio de uma para outra.
128

Figura 5. Tela de Cardápio de Determinada Empresa

6.1 Portal Web

Primeiramente para usuário (funcionário da empresa) possuir acesso ao sistema, o mesmo


necessita informar suas credencias para conseguir acesso ao sistema.
A Figura 6 representa o formulário de login do usuário ao sistema, no qual, com a inserção
das credenciais possibilita o acesso a central administrativa.

Figura 6. Tela de Central de Pedidos


129

Através do acesso a central administrativa, o usuário pode acessar a central de pedidos,


onde na mesma é possível verificar informações dos pedidos e informações de entrega do usuário
emissor do mesmo.
A Figura 7 representa a tela da central de pedidos em aberto, onde o usuário, em tempo
real, visualiza todos os pedidos que estão em aberto, podendo confirmar ou cancelar os mesmos.

Figura 7. Tela de Central de Pedidos

O usuário pode manipular os lanches e vincular os ingredientes incluídos nos lanches, para
que na realização de um pedido, o cliente possa escolher quais os ingredientes não são de seu
gosto.
A Figura 8 representa a tela de cadastros de Lanches, onde o usuário pode realizar as ações
de Crud, manipulando seus lanches juntamente com seus ingredientes vinculados.

Figura 8. Tela de Cadastro de Lanches


Com a realização de pedidos o usuário pode visualizar gráficos de quais seus lanches e
bebidas mais pedidos, através do histórico de pedidos, armazenado na base de dados do sistema.
130

A Figura 9 representa a tela de gráfico de lanches mais pedidos, possuindo as mesmas


características da tela das bebidas mais pedidos, mudando apenas os dados apresentados.

Figura 9. Tela de Gráficos de Lanches mais Pedidos

7.0 Conclusão

Este trabalho de conclusão de curso teve como objetivo principal criar um protótipo de um
aplicativo Android para pedidos de lanches e um Portal e Aplicativo para Gestão e
Monitoramento.
Atualmente a utilização da internet, seja para visualização de um portal web ou para a
utilização de um aplicativo móvel, vem crescendo a níveis altíssimos, sendo um mercado com
grande potencial econômico.
Como a demanda de pedidos as empresas, torna-se muito difícil as mesmas gerenciarem
seus produtos, clientes, pedidos e estatísticas, além dos clientes possuírem alguns obstáculos para
realização de seus pedidos, como já citados no decorrer deste trabalho.
O objetivo deste trabalho de vem encontro justamente para que se não acabar com estes
problemas, ou ao menos melhorá-los consideravelmente, por parte das empresas um portal
gerenciador de pedidos, controle de produtos, além da possibilidade de geração de relatórios e
avaliações sobre a mesma e por parte dos clientes um aplicativo Android que possibilite ao mesmo
visualizar os cardápios e realizar seus pedidos, de acordo com a empresa desejada.
Para chegar a este objetivo foi necessário pesquisar sobre tecnologias web e movél, até o
ponto de aprender formas e técnicas para desenvolvimento de um portal web e aplicação móvel,
rápida, com boa usabilidade e principalmente de qualidade. Porém a etapa de desenvolvimento do
portal web foi a mais complicada, devido a grande complexidade de linguagens para deixar com o
portal com mais interatividade e também por não tido experiência alguma em desenvolvimento
web anteriormente ao desenvolvimento deste projeto.
8.0 Referências
ABRASEL. 74% dos brasileiros preferem fast-food a restaurantes tradicionais.
14/12/2011. Disponível em <http://www.abrasel.com.br/index.php/atualidade/noticias/946-
141211-74-dos-brasileiros-preferem- fast- food-a-restaurantes-tradicionais.html> Acessado em 02
de Fevereiro de 2013.
131

AGÊNCIA DIGITAL. Brasil tem 99 milhões de computadores em uso. 30/08/2012.


Disponível em:http://www.diarioonline.com.br/noticia-197517-brasil-tem-99-milhoes-de-
computadores-em-uso.html. Acessado em 25 de Agosto de 2012.

AGÊNCIA SEBRAE. Setor de alimentos cresce e demanda por mais capacitações.


22/08/2008. Disponível em <http://www.agenciasebrae.com.br/noticia/7621520/comercio/setor-
de-alimentos-cresce-e-demanda-por-mais-capacitacoes/?indice=590>. Acessado em 3 de
Fevereiro de 2013.
ÁLVARES, Débora. 2 franquias são abertas por hora no Brasil. 08/03/2012. Disponível
em <http://exame.abril.com.br/pme/album-de-fotos/6-franquias-sao-abertas-por-hora- no-brasil-
veja-setores-mais-promissores>. Acessado em 21 de Março de 2013.
CARNEIRO, Mariana. Alimentação fora de casa cresce 15% em dez anos. 22/09/2012.
Disponível em: <http://www1.folha.uol.com.br/fsp/mercado/67574-alimentacao- fora-de-casa-
cresce-15-em-dez-anos.shtml>. Acessado em 23 de Março de 2013.
CASTRO, Wellington C. E-commerce - Vantagens para consumidores e para as
empresas. Disponível em <http://www.oficinadanet.com.br/artigo/e-commerce/e-commerce--
vantagens-para-consumidores-e-para-as-empresas>. 03/10/2011. Acessado em 29 de Março de
2013.
G1. Mundo terá mesmo número de celulares quanto de pessoas em 2013. Disponível
em <http://g1.globo.com/tecnologia/noticia/2013/02/mundo-tera- mesmo-numero-de-celulares-
quanto-pessoas-em-2013.html>. Acessado em 13 de Maio de 2013.
LOGISTA ONLINE. Comércio Eletrônico. Disponível em
<http://www.lojistaonline.com.br/wtk/pagina/al_faq?id=3>. Acessado em 28 de Maio de 2013.
SHOPPEREXPERIENCE. Pesquisa inédita da Shopper Experience revela opinião do
brasileiro sobre as redes de fast-food. Disponível em
<http://www.shopperexperience.com.br/DaVinci/arquivos/PressShopper_FastFood_V1.pdf>.
Acessado em 16 de Maio de 2013.

Você também pode gostar