Victor Hugo Benevides Sobrinho
-
Upload
joao-paulo-teodoro-pereira -
Category
Documents
-
view
261 -
download
1
Transcript of Victor Hugo Benevides Sobrinho
-
8/19/2019 Victor Hugo Benevides Sobrinho
1/73
PONTIFÍCIA UNIVERSIDADE CATÓLICA DE GOIÁS
CIÊNCIA DA COMPUTAÇÃO
SISTEMA MOBILE MULTIPLATAFORMA: CARDÁPIO E COMANDA PARARESTAURANTES
VICTOR HUGO BENEVIDES SOBRINHO
Goiânia
2014
1
-
8/19/2019 Victor Hugo Benevides Sobrinho
2/73
PONTIFÍCIA UNIVERSIDADE CATÓLICA DE GOIÁS
CIÊNCIA DA COMPUTAÇÃO
SISTEMA MOBILE MULTIPLATAFORMA: CARDÁPIO E COMANDA PARA
RESTAURANTES
VICTOR HUGO BENEVIDES SOBRINHO
Trabalho de conclusão de curso orientado pelo
professor Iamar Zuza Araujo e apresentado à
PONTIFÍCIA UNIVERSIDADE CATÓLICA DE GOIÁS
– PUC GOIÁS, como parte dos requisitos para a
conclusão do curso de Bacharelado em Ciência da
Computação.
Goiânia
2014
2
-
8/19/2019 Victor Hugo Benevides Sobrinho
3/73
SISTEMA MOBILE MULTIPLATAFORMA: CARDÁPIO E COMANDA PARA
RESTAURANTES
VICTOR HUGO BENEVIDES SOBRINHO
Trabalho de conclusão de curso orientado pelo professor Iamar Zuza Araujo e apresentado à
PONTIFÍCIA UNIVERSIDADE CATÓLICA DE GOIÁS – PUC GOIÁS, como parte dos
requisitos para a conclusão do curso de Bacharelado em Ciência da Computação.
3
-
8/19/2019 Victor Hugo Benevides Sobrinho
4/73
Dedicatória
Dedico este trabalho a todos aqueles qυе dе alguma forma estiveram е estão próximos dе mim, fazendo esta vida valer cada vеz mais а pena.
4
-
8/19/2019 Victor Hugo Benevides Sobrinho
5/73
"Um passo à frente e você
não está mais no mesmo lugar"
( Chico Science)
5
-
8/19/2019 Victor Hugo Benevides Sobrinho
6/73
SUMÁRIO
Lista de Tabelas......................................................................................................................11
Lista de abreviaturas.............................................................................................................13
Lista de figuras........................................................................................................................14
Resumo.....................................................................................................................................16
Abstract.....................................................................................................................................17
Introdução................................................................................................................................19
1. Tipos de aplicações moveis............................................................................................20
1.1 Aplicações nativas....................................................................... ...........................20
1.2 Aplicações web.......................................................................................................22
1.3 Aplicações hibridas................................................................................................23
2. Phonegap.............................................................................................................................24
2.1 Descrição................................................................................................................25
6
-
8/19/2019 Victor Hugo Benevides Sobrinho
7/73
3. Linguagens..........................................................................................................................26
3.1 HTML........................................................................................................................26
3.1.1 Descrição.................................................................................................26
3.1.2 Evolução do HTML5................................................................................27
3.2 CSS..........................................................................................................................28
3.2.1 Descrição.................................................................................................28
3.2.2 CSS linguagem de estilos......................................................................29
3.2.3 Bootstrap..................................................................................................30
3.3 JavaScript................................................................................................................30
3.3.1. Descrição...............................................................................................30
3.3.2. JavaScript a linguagem de programação...........................................31
3.3.2.1. Ajax.......................................................................................................32
3.3.2.2. Json.......................................................................................................33
3.3.2.3. Jquery...................................................................................................34
7
-
8/19/2019 Victor Hugo Benevides Sobrinho
8/73
3.4 Java..........................................................................................................................34
3.4.1. Descrição................................................................................................34
3.4.2. Servlet......................................................................................................35
3.5 MySQL.....................................................................................................................36
3.6 Tomcat.....................................................................................................................36
4. Estrutura Geral do Sistema..............................................................................................37
4.1. Exemplo de funcionamento de todo o sistema..................................................37
4.2. Recursos.................................................................................................................38
4.2.1. Cliente e Funcionário.............................................................................38
4.2.2. Servidor...................................................................................................39
5. Sistema Mobile....................................................................................................................39
5.1 Documentação do projeto.....................................................................................39
5.1.1. Documento de especificação de requisitos........................................39
5.1.1.1 Proposito...................................................................................40
5..1.1.2 Escopo.....................................................................................40
8
-
8/19/2019 Victor Hugo Benevides Sobrinho
9/73
5.1.2. Perspectivas do produto....................................................................................40
5.1.2.1. Interface do sistema............................................................................40
5.1.2.1.1. Interface com usuário...........................................................40
5.1.2.1.1.1. Interface do cliente................................................40
5.1.2.1.1.2. Interface do funcionário........................................41
5.1.1.2. Requisitos............................................................................................42
5.1.1.2.1 Requisitos Funcionais..........................................................42
5.1.1.2.2 Requisitos Não Funcionais..................................................45
5.1.1.3. Caso de uso.........................................................................................48
5.1.1.3.1 Diagrama de caso de uso...................................................48
5.1.1.3.1.1 Cliente.....................................................................48
5.1.1.3.1.2 Funcionário.............................................................48
5.1.1.3.2 Descrição de caso de uso...................................................49
5.1.1.3.2.1 Cliente.....................................................................49
9
-
8/19/2019 Victor Hugo Benevides Sobrinho
10/73
5.1.1.3.2.2 Funcionário.............................................................62
5.1.1.4. Modelo De Entidade e Relacionamento..........................................67
Conclusão................................................................................................................................68
Referências Bibliograficas...................................................................................................69
10
-
8/19/2019 Victor Hugo Benevides Sobrinho
11/73
LISTA TABELAS
Tabela 5.1 - RF001-Acesso aos recursos do sistema
Tabela 5.2 - RF002-Divisão de contas.
Tabela 5.3 - RF003-Solicitar participação de Conta Mesa
Tabela 5.4 - RF004-Fazer pedido somente com a conta da mesa aberta
Tabela 5.5 - RF005-Divisão de pedido
Tabela 5.6 - RF006-Finalizar conta
Tabela 5.7 - RF007-Não permitir nome de usuário igual a um existente
Tabela 5.8 - RNF001- Ambiente mobile
Tabela 5.9 - RNF002- Campos numéricos
Tabela 5.10 - RNF003- Quantidade de caracteres no campo
Tabela 5.11 - RNF004- Dividir produtos em categorias e subcategorias
Tabela 5.12 - RNF005-Mascara de Telefone
11
-
8/19/2019 Victor Hugo Benevides Sobrinho
12/73
Tabela 5.13 - RNF006-Mascara de Email
Tabela 5.14 - RNF007-Cadastramento de Senha
Tabela 5.15 - UC-001-Fazer Login
Tabela 5.16 - UC-002-Fazer Cadastrar Usuário
Tabela 5.17 - UC-003-Abrir Conta Mesa
Tabela 5.18- UC-004-Solicitar Dividir Conta Mesa
Tabela 5.19- UC-005-Aceitar/Recusar Usuário na Conta Mesa
Tabela 5.20- UC-006-Fazer Pedidos
Tabela 5.21- UC-007-Dividir Pedidos
Tabela 5.22- UC-001-Manter Pedidos
Tabela 5.23- UC-002-Encerrar Conta Cliente
12
-
8/19/2019 Victor Hugo Benevides Sobrinho
13/73
LISTA ABREVIATURAS
AJAX (Asynchronous JavaScript and XML)
API (Application Programming Interface)
CSS (Cascading Style Sheets)
FTP (File Transfer Protocol)
GPS (Global Positioning System)
HTML (HyperText Markup Language)
HTTP (HiperText Transfer Protocol)
JSON (JavaScript Object Notation)
RF (Requisito Funcional)
RNF (Requisito Não Funcional)
SDK (Software Development Kit)
SGDB (Sistema de Gerenciamento de Banco de Dados)
SQL (Structured Query Language)
UC (Use Case)
UI (User interface)
13
-
8/19/2019 Victor Hugo Benevides Sobrinho
14/73
XAML (eXtensible Application Markup Language)
XML (eXtensible Markup Language)
WEBAPP (Aplicações web)
LISTA FIGURAS
Figura 1.1 - Representação das aplicações nativas, web e hibridas em um aparelho celular.
Figura 2.1 - Tabela que mostra os recursos disponíveis via Phonegap para cada plataforma.
Figura 3.1 - Figura construída através do exemplo de um tutorial no website.
Figura 3.2- Estrutura de uma regra de CSS.
Figura 3.3- Arvore de influência de uma folha de estilo sob documentos HTML.
Figura 3.4- Código HTML com um script de javascript embutido.
Figura 3.5 - Código ajax comunicação simples com um servidor.
Figura 3.6- Arquivo Json.
Figura 3.7- Sintaxe JavaScript e Jquery
Figura 3.8 - sintaxe de um código java.
14
http://www.google.com/url?q=http%3A%2F%2Fwww.developergarden.com%2Fen%2Fblog%2Farticles%2Farticle%2Fnative-vs-web-app-vs-hybrid-what-is-the-optimal-developer-strategy%2F&sa=D&sntz=1&usg=AFQjCNHwvB8fpo3cb-5p6lLm3Y0MEyQFUghttp://www.google.com/url?q=http%3A%2F%2Fwww.developergarden.com%2Fen%2Fblog%2Farticles%2Farticle%2Fnative-vs-web-app-vs-hybrid-what-is-the-optimal-developer-strategy%2F&sa=D&sntz=1&usg=AFQjCNHwvB8fpo3cb-5p6lLm3Y0MEyQFUghttp://www.google.com/url?q=http%3A%2F%2Fwww.developergarden.com%2Fen%2Fblog%2Farticles%2Farticle%2Fnative-vs-web-app-vs-hybrid-what-is-the-optimal-developer-strategy%2F&sa=D&sntz=1&usg=AFQjCNHwvB8fpo3cb-5p6lLm3Y0MEyQFUghttp://www.google.com/url?q=http%3A%2F%2Fwww.developergarden.com%2Fen%2Fblog%2Farticles%2Farticle%2Fnative-vs-web-app-vs-hybrid-what-is-the-optimal-developer-strategy%2F&sa=D&sntz=1&usg=AFQjCNHwvB8fpo3cb-5p6lLm3Y0MEyQFUg
-
8/19/2019 Victor Hugo Benevides Sobrinho
15/73
Figura 3.9 - Servidor em java usando a biblioteca Servlet
Figura 4.1 - ilustra a estrutura geral do projeto.
Figura 5.1 - Diagrama de Caso de Uso do sistema do Cliente.
Figura 5.2 Diagrama de Caso de Uso sistema do Funcionário.
Figura 5.3 Tela de login.
Figura 5.4 Tela de cadastro.
Figura 5.5 Tela de seleção de mesas.
Figura 5.6 Solicitar Dividir Conta Mesa.
Figura 5.7 Tela de informações de usuários.
Figura 5.8 Tela de lista de produtos.
Figura 5.9 Tela de divisão de pedidos.
Figura 5.10 Tela de atualização de status de pedidos.
Figura 5.11 Tela de finalização de conta.
Figura 5.12 Diagrama de Entidade e Relacionamento.
15
-
8/19/2019 Victor Hugo Benevides Sobrinho
16/73
RESUMO
A aplicação proposta por este trabalho visa facilitar o gerenciamento de contas nos bares
automatizando a parte de anotação de pedidos, divisão da conta entre os usuários da mesa e dando a oportunidade dos clientes visualizarem todas as informações de pedidos feitos, lista
de produtos e totalização da conta pelo seu celular particular, a aplicação visa também evitar a
efetuação de pedidos indevidos por parte do garçom, a perda de comandas, cálculo não
precisos e qualquer outra falha humana possível.
O Sistema Mobile Multiplataforma de Cardápio e Comanda para Restaurante utiliza
ferramentas com as devidas caraterísticas de portabilidade de forma que o seu o desenvolvimento possa atender a uma parcela significativa do mercado, já que os usuários de
um restaurante usam uma grande variedade de celulares com sistemas operacionais
diferentes.
Com o grande desenvolvimento tecnológico voltado a aparelhos mobile , abrem-se novas
oportunidades para informatizar atividades que, há pouco tempo, seriam consideradas
inviáveis. Ainda existe muita confusão para se fazer um pedido ao garçom e pagar e dividir
conta nos bares e restaurantes onde turmas de amigos se reúnem. Visando essa carência
percebemos a oportunidade de criar um sistema que automatiza esta atividade.
A variedade de aparelhos com sistemas operacionais diferentes, dificulta o
desenvolvimento de aplicações que atendam todo o mercado, já que na fabricação de um
software nativo é necessário ter conhecimento sobre o sistema operacional e a linguagem de
programação específicos de cada equipamento. O tempo de desenvolvimento é extenso e os
custos são altos para atender todo o mercado, pois é necessário um profissional especializado para desenvolver as aplicações para cada um dos sistemas operacionais.
16
-
8/19/2019 Victor Hugo Benevides Sobrinho
17/73
Então para resolver essas dificuldades, surgiram os webapps , que são aplicativos
desenvolvidos para smartphones , mas que rodam via navegador web. Com esse novo modo
de atender o mercado houve uma grande evolução de tempo e redução de gastos, já que é
nessessário somente um desenvolvedor com conhecimentos web para desenvolver as
aplicações. A princípio o problema de falta de acesso aos recursos nativos do sistema limitava muito o tipo de aplicações, então criaram ferramentas para fazer a junção dos aplicativos
nativos e os web , assim nasceu o aplicativo hibrido.
Palavras chave:
Mobile, Restaurante, Bares, Multiplataforma, Cardápio.
ABSTRACT
The application proposed in this work aims to facilitate the account management on bars automating part of order taking, splitting the bill between the users table and giving the
opportunity for clients to view all information requests, list of products and aggregation of
account for your particular phone, the application also seeks to avoid effecting solicitations by
the waiter, the loss can command, not precise calculations and any other possible human error.
The Mobile Multiplatform System for Restaurant Menu Commands and tools with the
necessary characteristics of portability so that their development can meet a significant portion of the market, since users of a restaurant using a variety of mobile operating systems with
different.
17
-
8/19/2019 Victor Hugo Benevides Sobrinho
18/73
With the great technological development aimed at mobile devices, opening new
opportunities to computerize activities that not long ago would be considered viable. There is still
much confusion to make a request to the waiter and pay and divide bill in bars and restaurants
where groups of friends gather. Aiming at this shortage realize the opportunity to create a
system that automates this activity.
A variety of devices with different operating systems, hampers the development of
applications that address the entire market, as in the manufacture of a native software is
necessary to have knowledge about the operating system and programming language specific
to each device. The development time is long and the costs are high to meet the entire market,
as a professional expert is needed to develop applications for each of the operating systems.
So to solve these difficulties, webapps, which are applications developed for smartphones,
but that run came via web browser. With this new way to meet the market there was a great
evolution of time and cost reduction, since it is only one nessessário with web developer to
develop applications knowledge. At first the problem of lack of access to native system
resources very limited type of applications, then created tools to make the junction of the web
and native applications, thus was born the hybrid application.
Keywords:
Mobile, Restaurant, Bar, Multiplatform, Menu.
18
-
8/19/2019 Victor Hugo Benevides Sobrinho
19/73
INTRODUÇÃO
O Sistema de cardápio e comanda é um aplicativo multiplataforma desenvolvido para
gerenciar os pedidos do cliente em um restaurante através de dispositivos móveis, celulares
smartphones, tablets e similares.
Com o grande desenvolvimento tecnológico voltado a aparelhos mobile , abrem-se novas
oportunidades para informatizar atividades que, há pouco tempo, seriam consideradas
inviáveis. Ainda existe muita confusão para se fazer um pedido ao garçom e pagar e dividir
conta nos bares e restaurantes onde turmas de amigos se reúnem. Visando essa carência
percebemos a oportunidade de criar um sistema que automatiza esta atividade.
O processo atual consiste em ter, em cada mesa do restaurante, uma comanda de papel
onde o cliente faz o pedido diretamente para o garçom, então, ele anota o pedido no papel do
cliente e em uma comanda avulsa para, então, buscar o conteúdo do pedido. Neste momento
iniciam-se os problemas, pois, o garçom pode anotar o pedido errado, esquecer de detalhes,
fazer anotações indevidas, o papel do cliente pode se perder, ficar danificado, e caso tenha
mais de um cliente na mesa, a divisão de contas fica bem mais difícil, pois, todos pedem na
mesma comanda da mesa. Pensando em resolver este problema e considerando a conjuntura
atual dos aparelhos móveis e tecnologias de desenvolvimento disponíveis, optou-se pelo
desenvolvimento de uma aplicação Web Mobile que possibilite o fácil acesso ao cardápio e à
realização de pedidos de forma rápida e descomplicada.
O propósito do sistema é gerenciar a consulta ao cardápio, a realização dos pedidos e
flexibilizar e facilitar o rateio da conta entre os clientes de uma mesa. Além disso, promover
facilidades para o acompanhamento da conta e do andamento dos pedidos feitos pelo cliente,
até a chegada do pedido à mesa e a atualização do status destes pedidos que são feitos por um funcionário do restaurante.
19
-
8/19/2019 Victor Hugo Benevides Sobrinho
20/73
Este trabalho se divide em cinco capítulos. O capitulo um descreve a evolução dos
aplicativos, falando dos seus diferentes tipos, vantagens e desvantagens. O capitulo dois fala
das ferramentas que ajudam a tornar o desenvolvimento das aplicações multiplataforma e
enfatiza o Phonegap . O capitulo três é referente as linguagens utilizadas no desenvolvimento
mobile . O capitulo quatro fala da estrutura geral do sistema desenvolvido. E o capitulo cinco é referente a documentação e construção dos diagramas para especificar o projeto.
1 - Tipos de aplicações moveis.
A cada dia que passa é visível o crescimento de pessoas que usam smartphones , pode-se constatar esse fato observando nas ruas, onde boa parte da população utiliza as
funcionalidades de seus aparelhos à medida em que esperam em uma fila, o ônibus chegar ou
até mesmo enquanto caminham.
Em consequência desse crescimento, as aplicações móveis estão se tornando cada vez
mais relevantes e necessárias no dia-a-dia, pois elas entretêm, ajudam no desenvolvimento de
tarefas, agilizam a comunicação entre pessoas, registram informações, reproduzem vídeos,
músicas, livros, entre outras.
Por trás dessas aplicações amigáveis há estruturas de desenvolvimento que são
seccionadas em:
1.1 Aplicação Nativa
Aplicações nativas são sistemas desenvolvidos em cima de uma linguagem de
programação especifica para uma plataforma, por exemplo para Windows Phone utiliza-se
20
-
8/19/2019 Victor Hugo Benevides Sobrinho
21/73
XAML e o C#, para o IOS o COCOA Touch e o Object-C e para Android o XML e o Java. Ao
desenvolver a aplicação em uma dessas plataformas você o submete em uma das lojas
especificas para cada sistema operacional e o usuário transfere e instala no aparelho
acessando assim a aplicação por um ícone na tela principal. [5]
As vantagens de uma aplicação nativa são:
1. A velocidade, já que eles tem acesso direto ao sistema operacional e são
programados especificamente na linguagem nativa do dispositivo [3].
2. Acesso aos recursos disponíveis para o sistema operacional como câmera, GPS,
acelerômetro, bússola, lista de contatos entre outros. [3]
3. Um SDK que facilita no desenvolvimento e na realização de testes e debug. [3]
4. Ter diagnósticos do dispositivo como nível de bateria e status da internet. [3]
Como desvantagem temos:
1. A incompatibilidade entre plataformas. [3]
2. A tempo, pois terá que desenvolver uma versão para cada sistema operacional. [3]
3. O alto custo do desenvolvimento já que para cada plataforma tem que ter alguém
com o conhecimento especifico dela. [3]
4. A manutenção que quando feita, tem que ser para todas as plataformas desenvolvidas, isso gastaria muito tempo e recursos dos desenvolvedores. [3]
21
-
8/19/2019 Victor Hugo Benevides Sobrinho
22/73
1.2 Aplicação Web
Webapps são websites que possuem aparência e comportamento equivalente aos
aplicativos nativos e são executados por navegadores de internet como o Chrome ou Firefox.
Essas aplicações também podem ser acessadas através de um ícone na tela inicial quando colocados como favoritos nesta mesma tela e funcionam normalmente online. [5]
As vantagens de uma aplicação web são:
1. O desenvolvimento de uma aplicação que funcione em qualquer plataforma que
tenha suporte a algum navegador web. [3]
2. Atualizações rápidas e que não tem a necessidade da interação do usuário para
acontecer, pois a aplicação funcionam em um servidor e não no aparelho. [2]
3. O usuário pode acessar a aplicação de várias maneiras como: tablet,
smarthphone, Desktop entre outros com suporte a web. [2][3]
4. É muito mais barata por não ter que contratar vários desenvolvedores com
conhecimento especifico para cada plataforma. [3]
5. Os erros podem ser corrigidos em tempo real. [3]
Como desvantagem temos:
1. O suporte a aplicações que rodam offline são limitadas em alguns navegadores
web. [5]
2. É mais lenta por rodar por trás de um navegador web. [5]
22
-
8/19/2019 Victor Hugo Benevides Sobrinho
23/73
3. Tem limitações de acesso aos recursos de hardware que o sistema operacional
oferece, pois são limitadas aos recursos que o navegador tem acesso. [5]
Com a evolução do HTML5 algumas dessas desvantagens desapareceram, como as aplicações que precisavam de internet para rodar, podem agora rodar offline e também
apareceram novas APIs que disponibilizam acesso a mais recursos como acelerômetro,
geolocalização, câmera e microfone. O que significa que a evolução das aplicações tendem
para o desenvolvimento web, já que é possível acessar boa parte dos recursos nativos do
sistema por este tipo de aplicação, tem-se então bem mais vantagens se desenvolvermos via
web. [5]
1.3 Aplicações Hibridas
Aplicação hibrida é a junção dos aplicativos nativos com os web, aproveitando todas as
vantagens de uma aplicação web e alguns recursos das aplicações nativas, elas rodam como
um aplicativo nativo e tem seu desenvolvimento em linguagens web preparadas para a
plataforma mobile. Um bom exemplo de ferramenta que faz a conversão de um web app para
uma aplicação hibrida é o phonegap. [5]
A figura 1.1 ilustra as três estruturas de uma aplicação, mostrando que a nativa e a hibrida
conseguem facilmente comunicar com os recursos da aplicação, enquanto a web é carente
desses recursos.
23
-
8/19/2019 Victor Hugo Benevides Sobrinho
24/73
Figura 1.1 - Representação das aplicações nativas, web e hibridas em um aparelho celular. [4]
2 - PhoneGap
Com o intuito de viabilizar o desenvolvimento de aplicações multiplataformas para
atender todo o mercado mobile, algumas empresas criaram frameworks onde o programador
desenvolve uma aplicação e esse frameworks converte a aplicação para funcionar como um
aplicativo nativo em várias plataformas como Windows Phone, Android, IOS, entre outras.
Algumas das ferramentas que estão no mercado são Rhodes, Appcelerator, XUI e
PhoneGap que iremos abordar neste capítulo.
24
-
8/19/2019 Victor Hugo Benevides Sobrinho
25/73
2.1 Descrição
Phonegap é uma ferramenta para o desenvolvimento de aplicações mobile, onde o
programador desenvolve um webapp e ele o transforma em uma aplicação que funciona como
nativa.
A ferramenta foi projetada para tornar o desenvolvimento de aplicações mobile mais
rápido e fácil já que utilizada tecnologias já existentes no mercado a muito tempo como CSS,
HTML5 e o JavaScript, as interfaces são construídas através do HTML, a lógica de
programação e os recursos mobile são tratados com o JavaScript, possibilitando também o
uso de vários scripts como Jquery, JqueryMobile e dentro desta logica do JavaScript que é
feita a comunicação com a API do phonegap. E devido as várias telas dos diferentes aparelhos temos um grande problema de ajuste de resolução que é suprido com o CSS que são
encarregados de ajustar a tela de acordo com o aparelho e outros detalhes de UI.
Além dos recursos básicos que o HTML proporciona, phonegap também tem suporte a alguns
recursos importantes nativos de cada plataforma como acelerometro, câmera, bússola,
contatos, geolocalização, notificações, media e internet. [16]
A figura 2.1 ilustra os recursos disponíveis para acessar pela aplicação com o phonegap
de acordo com cada plataforma.
25
-
8/19/2019 Victor Hugo Benevides Sobrinho
26/73
Figura 2.1 - Tabela que mostra os recursos disponíveis via Phonegap para cada plataforma.
[16]
3 - Linguagens
Para o desenvolvimento de um webapp temos que usar algumas ferramentas que são
essenciais para o bom funcionamento e aparência do sistema, são elas: HTML, CSS e
JavaScript. Onde HTML faz toda a apresentação da informação na tela, o CSS faz todos os
ajustes de cores, tamanhos de telas e outras aparências e o JavaScript fica por conta de toda a logica do sistema, como cálculos, conexões e armazenamento de informações.
3.1 HTML
3.1.1 Descrição
HTML foi criada em 1990 por um cientista com o nome de Tim Berners-Lee e tinha o propósito inicial de tornar possível a troca e acesso de informações entre cientistas de várias
universidades, pois antes dessa invenção a visualização era feita através de textos via email,
26
-
8/19/2019 Victor Hugo Benevides Sobrinho
27/73
FTP entre outros. Tim Berners-Lee projetou a linguagem para rodar em um servidor central e
ser acessada através de navegadores de internet em uma estação de trabalho. [8]
O significado das siglas são “Linguagem de Marcação de HiperTexto”, HTML é uma
linguagem de marcação de texto e através dela, o navegador sabe como exibir as informações, separando o conteúdo entre imagem, vídeos, músicas entre outros. E ela
reconhece essas estruturas sob um conjunto pré definido de informações que são chamadas
de tags. [7]
As tags são definitas pelos símbolos de maior e menor e para a tag de finalização a tag é
prefixada por uma barra.
A figura 3.1 ilustra um código HTML e seu resultado lido por um navegador web, onde
significa colocar o texto em modo itálico, significa colocar o texto em
negrito e
significa um parágrafo.
Figura 3.1 - Figura construída através do exemplo de um tutorial no website [7]
3.1.2 Evolução do HTML5
Com a evolução do HTML4 para o HTML5 novas tags apareceram e houve mudanças de
outras já existentes, pois as versões antigas não tinham um padrão para a criação de seções comuns e distintas como rodapé, cabeçalho, sidebar, menus, entre outras. E assim
conseguimos dividir a área de conteúdo indicado onde exatamente estará o texto.
27
-
8/19/2019 Victor Hugo Benevides Sobrinho
28/73
Essas mudanças tornam o desenvolvimento mais simples e sistemas como os de
buscadores conseguem minerar informações mais facilmente já que as informações estão bem
seccionadas.
Já pode ser perceptível a grande quantidade de sites que utilizam a tecnologia, como exemplo tem o youtube que já deixam que os usuários verem os vídeos via html5. [9] [10]
3.2 CSS
3.2.1 Descrição
Com a evolução do HTML surgiram novos aplicativos, facilidades, softwares entre outros,
as informações em modo texto já não eram o suficiente para a construção de páginas da web
interativas, pois visualmente o html não era nada flexível. Então novas tags foram inventadas
como e e então surgiu um começo da estilização.
O HTML passou a ser algo além de estrutura de conteúdo através de marcação e passou
a fazer também uma estrutura de aparência, porém com duas funções surgiu também o
problema de estrutura de documentação, pois eles passaram a ser extensos, sofisticados e
estavam fugindo do controle de seus criadores.
E então a solução foi dividir a Estrutura de marcação da de estilização, assim nasceu o
CSS.
28
-
8/19/2019 Victor Hugo Benevides Sobrinho
29/73
3.2.2 CSS Linguagem de Estilos
CSS é uma linguagem para definir estilos de layout de documentos HTML, ele controla
fontes, cores, margens, linhas, alturas, larguras, imagens de fundo, posicionamentos entre
outros.
As vantagens do CSS para aplicações web são uma revolução para a área de web
design, pois ele controla o layout de vários documentos em uma simples página de estilos, tem
uma melhor precisão no controle do layout e pode ser aplicado para várias mídias como
impressoras, telas e etc.
A figura 3.2 ilustra umseletor que é o alvo da regra do css, a declaração que determina os parâmetros responsáveis pelo estilo e dentro da da declaração temos a propriedade que
define qual será a característica do seletor a receber o estilo e o valor que quantifica ou
qualifica a propriedade.
Figura 3.2- Estrutura de uma regra de CSS. [12]
A figura 3.3 ilustra como uma folha de estilos css pode influenciar vários documentos
HTML, fazendo assim um reuso e uma facilidade para fazer a manutenção de uma página, já
que só precisa modificar um documento para fazer uma manutenção do visual, diferentemente
do HTML que precisaria editar seletor por seletor.
29
-
8/19/2019 Victor Hugo Benevides Sobrinho
30/73
-
8/19/2019 Victor Hugo Benevides Sobrinho
31/73
uma linguagem que tornasse a aplicação web mais dinâmica. Então foi criado em 1995 o
JavaScript pela netscape com parceria da sun microsystem, javascript é uma linguagem de
script incorporada ao HTML e permite executar comandos via cliente, ou seja via navegador e
não servidor web.
3.3.2 JavaScript a linguagem de programação
JavaScript funciona como pequenos programas embutidos em um documento HTML e é
capaz de gerar números, processar dados, gerenciar formulários, manipular valores no
documento HTML e até criar novos elementos para a exibição. Todos esses processos rodam
no cliente, evitando que o servidor fique sobrecarregado com vários processamentos e trafego
de informações na rede . [13]
A linguagem torna as páginas web mais dinâmica, com recursos interativos como
mudança de cor de botões após algum evento, exibir horário atual, validar formulários,
comunicação com servidores entre outras, javascript tem uma vasta usabilidade e várias
ferramentas projetadas para facilitar o desenvolvimento como Ajax que faz as requisições web
de uma forma simples e Json que estabelece um padrão de comunicação entre por exemplo
um cliente e um servidor. [14]
A figura 3.4 ilustra um código HTML e embutido neste código através das tags
um pequeno javascript onde a variávela recebe o valor 2, a variávelb recebe
o valor 9, c recebe a soma dos valores de a e b e então emite um alerta com o resultado
armazenado em c;
31
-
8/19/2019 Victor Hugo Benevides Sobrinho
32/73
Figura 3.4- Código HTML com um script de javascript embutido. [6]
3.3.2.1 Ajax
Foi criada para agilizar e simplificar as requisições web, sendo totalmente transparente
para o usuário. Ajax faz com que as atualizações de informações sejam somente onde precisa
e não na página inteira, economizando assim banda e processamento do navegador para
recarregar uma página, pois só se atualiza os dados que receber na requisição. [22]
A figura 3.5 ilustra uma função ajax passando uma informação na variável “data” e
mostrando na tela um resultado qualquer retornado do servidor com a função “alert()”.
32
http://www.google.com/url?q=http%3A%2F%2Fwww.developergarden.com%2Fen%2Fblog%2Farticles%2Farticle%2Fnative-vs-web-app-vs-hybrid-what-is-the-optimal-developer-strategy%2F&sa=D&sntz=1&usg=AFQjCNHwvB8fpo3cb-5p6lLm3Y0MEyQFUghttp://www.google.com/url?q=http%3A%2F%2Fwww.developergarden.com%2Fen%2Fblog%2Farticles%2Farticle%2Fnative-vs-web-app-vs-hybrid-what-is-the-optimal-developer-strategy%2F&sa=D&sntz=1&usg=AFQjCNHwvB8fpo3cb-5p6lLm3Y0MEyQFUghttp://www.google.com/url?q=http%3A%2F%2Fwww.developergarden.com%2Fen%2Fblog%2Farticles%2Farticle%2Fnative-vs-web-app-vs-hybrid-what-is-the-optimal-developer-strategy%2F&sa=D&sntz=1&usg=AFQjCNHwvB8fpo3cb-5p6lLm3Y0MEyQFUghttp://www.google.com/url?q=http%3A%2F%2Fwww.developergarden.com%2Fen%2Fblog%2Farticles%2Farticle%2Fnative-vs-web-app-vs-hybrid-what-is-the-optimal-developer-strategy%2F&sa=D&sntz=1&usg=AFQjCNHwvB8fpo3cb-5p6lLm3Y0MEyQFUg
-
8/19/2019 Victor Hugo Benevides Sobrinho
33/73
Figura 3.5 - Código ajax comunicação simples com um servidor.
3.3.2.2 Json
Json é um modelo de armazenamento e transmissão de informações no formato texto, é muito simples de usar e mais rápido do que o XML para ser consumido por uma aplicação, já
que seu formato é bem compacto.
A sintaxe do Json é um subconjunto do javaScript sendo colocada no formato
“Nome:Valor” , onde os dados são separados por virgula ”,” , as chaves “{ }” significam um
objeto e os colchetes “[ ]” matrizes. [15]
A figura 3.6 ilustra um arquivo Json com três objetos dentro de um vetor com informações de id, Name e Email.
Figura 3.6- Arquivo Json [23]
33
http://www.google.com/url?q=http%3A%2F%2Fwww.developergarden.com%2Fen%2Fblog%2Farticles%2Farticle%2Fnative-vs-web-app-vs-hybrid-what-is-the-optimal-developer-strategy%2F&sa=D&sntz=1&usg=AFQjCNHwvB8fpo3cb-5p6lLm3Y0MEyQFUghttp://www.google.com/url?q=http%3A%2F%2Fwww.developergarden.com%2Fen%2Fblog%2Farticles%2Farticle%2Fnative-vs-web-app-vs-hybrid-what-is-the-optimal-developer-strategy%2F&sa=D&sntz=1&usg=AFQjCNHwvB8fpo3cb-5p6lLm3Y0MEyQFUg
-
8/19/2019 Victor Hugo Benevides Sobrinho
34/73
3.3.2.3 Jquery
Após a frustração com JavaScript por ser uma linguagem de difícil desenvolvimento para se
obter os resultados pretendidos John Resig, um desenvolvedor com profundos conhecimentos
em JavaScript, publicou resultados de seus estudos que visava simplificar a linguagem, assim nasceu o Jquery, um framework do JavaScript que reúne métodos, classes e namespaces
prontos e compilados em um arquivo, que visa simplificar a implementação. [18]
A figura 3.7 ilustra uma tabela onde mostra a sintaxe de acesso a elementos utilizada em
JavaScript mais complicada e em Jquery uma forma mais simples. Vale lembrar que mesmo
utilizando este framework a utilização da sintaxe em javascript é disponível, ou seja, jquery não
substitui e sim complementa o desenvolvimento.
Figura 3.7 Sintaxe JavaScript e Jquery. [18]
3.4 Java
3.4.1 Descrição
Java é uma linguagem de alto nível desenvolvida pela Sun Microsystem e que teve
bastante aceitação graças a vantagens como orientação a objeto, ser multiplataforma,
multitarefa, robusta, segura e distribuída. Criada em meados de 1995, supriu a necessidade de
comunicação entre aplicações heterogênias. [20]
A figura 3.8 ilustra um documento com código em Java, onde a função principal “main” da
classe “Exemplo1” chama uma função “Imprime_Msg” que imprime uma mensagem na tela do
usuário.
34
-
8/19/2019 Victor Hugo Benevides Sobrinho
35/73
Figura 3.8 sintaxe de um código java. [20]
3.4.2 Servlet
Servlet é basicamente uma biblioteca da linguagem Java direcionada a pequenos
servidores que tem o objetivo de receber e processar as informações de uma requisição
HTTP. [21]
O funcionamento do servlet é basicamente o seguinte:
1. Cliente envia uma requisição ao servidor. [21]
2. O servidor servlet responsável trata a requisição e responde ao cliente. [21]
3. O cliete recebe a informação processada. [21]
A figura 3.9 ilustra um exemplo de um servidor servlet que retorna uma página HTML com o
texto “Hello World”.
35
-
8/19/2019 Victor Hugo Benevides Sobrinho
36/73
Figura 3.9 Servidor em java usando a biblioteca Servlet. [21]
3.5 MySQL
MySQL é um SGDB ou seja, um sistema gerenciamento de banco de dados que utiliza a
linguagem SQL, Sua utilização é muito simplificada e tem bons recursos de gerencia, além de
ser multiusuário, multitarefa e tem compatibilidade com a maioria dos sistemas operacionais
disponíveis no mercado o que o torna bem utilizado. MySQL é de código aberto, e permite que os usuários enriqueçam ele com novos recursos. [24]
3.6 Tomcat
Tomcat foi desenvolvido pela fundação Apache e é um servidor web ou pode funcionar
integrado a um servidor web dedicado como Apache ou o ISS, responsável pela execução de
aplicações para web, sua principal característica e estar centrada na linguagem de
programação Java, especificamente nas tecnologias de Servlet e Java Server Pages. [25]
36
-
8/19/2019 Victor Hugo Benevides Sobrinho
37/73
Capitulo 4 - Estrutura Geral do Sistema
O sistema é composto por 3 subprojetos, dois que são mobile, sendo um utilizado pelo
cliente do restaurante e o outro pelo funcionário responsável pela elaboração e entrega do
medido a mesa. E por ultimo um web service que é responsável por obter e fornecer os dados do sistema mobile.
4.1 Exemplo de funcionamento de todo o sistema
O cliente tem duas forma de efetuar um pedido, uma é pelo aplicativo mobile
desenvolvido para o cliente e a outra é através da comanda tradicional de papel.
O cliente que usar o aplicativo mobile, deve estar devidamente cadastrado e ter um nome
de usuário e senha. Caso não tenha cadastro o sistema possibilita um cadastramento de
clientes. Após fazer a autenticação, o usuário pode abrir uma mesa disponível ou solicitar um
usuário de uma mesa ocupada para dividir a conta daquela mesa. Com uma conta aberta em
alguma mesa o cliente faz seus pedidos através de um cardápio incluso no sistema que já faz o
registro no sistema informando valor ao cliente, o funcionário analisa o pedido e entrega na
mesa do cliente. Para encerrar a conta do cliente ele se dirige a algum funcionário, informa seu
nome de usuário e mesa, o funcionário informa o valor a pagar, cliente paga a conta de
pedidos que ele fez e o funcionário encerra a conta dele naquela mesa, deixando a conta da
mesa aberta para outros usuários na mesa ainda fazer novos pedidos.
O cliente que usar a comanda tradicional, chama o funcionário para abrir a mesa, o
funcionário preenche o formulário da comanda de papel e cada pedido que o cliente fizer o
funcionário tem que ser solicitado e ele tem que anotar na comanda o pedido feito pelo cliente.
Para finalizar uma conta, o cliente chama o funcionário e deve ser calculado o valor que o cliente consumiu e então ele paga sua parte e fecha a conta parcialmente.
37
-
8/19/2019 Victor Hugo Benevides Sobrinho
38/73
A figura 4.1 ilustra a estrutura geral do projeto.
Figura 4.1 ilustra a estrutura geral do projeto.
4.2 Recursos
4.2.1 Cliente e Funcionário
Para o desenvolvimento das aplicações de cliente e funcionários fo utilizado HTML para a
marcação das informações, CSS com Bootstrap para auxiliar em um melhor visual, Jquery para
o processamento de informações juntamente com json que padroniza o tipo de comunicação
das informações entre o servidor e os clientes e Ajax que faz a comunicação e atualização das
informações como valores da conta, mesas disponíveis no momento, pedidos feitos, lista de
produtos e qualquer outra informação que venha a necessitar de uma atualização em tempo
real.
38
https://www.google.com.br/search?safe=off&es_sm=122&q=necessitar&spell=1&sa=X&ei=1wOaU9HmPOXjsAT7noGoDA&ved=0CBsQvwUoAA
-
8/19/2019 Victor Hugo Benevides Sobrinho
39/73
4.2.2 Servidor
Por parte do servidor foi utilizado a linguagem java juntamente com a biblioteca servlet
que fica responsável por receber as informações dos clientes, processa las e as responder,
para o banco de dados responsável por armazenar as informações dos pedidos, dados pessoais feitos pelo cliente e informações de produtos foi utilizado o SGDB MYSQL e foi
utilizado o TOMCAT que é responsável por manter o servidor ativo para as aplicações cliente o
acessar.
Capitulo 5 - Sistema Mobile
O sistema mobile consiste em duas aplicações uma para o funcionário e outra para o cliente, onde a aplicação do funcionário terá uma lista de pedidos que o cliente já fez com as
informações da mesa e detalhes do pedidos para que ele possa atualizar o status do pedido.
A aplicação do cliente terá uma lista de produtos que ele pode pedir, podendo escolher a
quantidade e outros clientes pareados com a mesa podem também participar da divisão deste
pedido.
5.1. Documentação do projeto
5.1.1. Documento de especificação de requisitos
Este documento expõe os requisitos de engenharia de software no qual foram estudados
e que visam proporcionar uma documentação de qualidade dos requisitos do sistema de
software a ser desenvolvido.
39
-
8/19/2019 Victor Hugo Benevides Sobrinho
40/73
5.1.1.1. Proposito
O proposito do sistema é gerenciar a conta da mesa através de contas mobile, dividindo
pedidos de acordo com cada usuário pareado na mesa. Dando a oportunidade de dividir
também um pedido para várias contas mobile, além do acompanhamento da conta, do andamento dos pedidos feitos pelo cliente até a chegada do pedido a mesa e a atualização do
status destes pedidos que são feitas por um funcionário do restaurante..
5.1.1.2. Escopo
Este documento tem o intuito de demostrar com clareza as especificações dos requisitos
levantados, os elementos e funções do produto de software, facilitando o entendimento dos interessados.
5.1.2. Perspectivas do produto
5.1.2.1. Interface do sistema
A interface do sistema tem um papel importante de simplificar e ter uma forma comum
para que o usuário se interaja bem com o mesmo, possibilitando um uso de forma intuitiva.
5.1.2.1.1. Interface com usuário
A interface do usuário estará presente nas duas aplicações sendo cada uma delas
referente a um operador do sistema.
5.1.2.1.1.1. Interface do cliente
● A 1ª interface contém o login e senha do usuário.
40
-
8/19/2019 Victor Hugo Benevides Sobrinho
41/73
● A 2ª interface contém o formulário de cadastro do usuário, caso ainda não esteja
cadastrado no sistema.
● A 3ª interface contém uma lista de mesas com os botões “Abrir” ou“Solicitar” referentes
a conta da mesa da lista. Contêm também na parte superior os botões “Home”, “Produtos” e
“Pedidos” que é comum para todas as interfaces adiante.● A 4ª interface contém os valores “Total a Pagar”, “Total Celular a Pagar” e “Total pago”
referente a conta da mesa. Contém também uma lista de usuários vinculados a mesa com o
nome e o status dele na mesa.
● A 5ª interface contém a lista de categorias dos produtos.
● A 6ª interface contém uma lista de subcategorias dos produtos da categoria
selecionada na interface anterior.
● A 7ª interface contém uma lista de produtos da subcategorias selecionada na interface anterior, com o nome, descrição, um campo para preencher a quantidade e os botões
“Comprar” e “Comentários”.
● A 8ª interface contém uma lista de pedidos feitos com o status do pedido ou um botão
“Aceitar”.
5.1.2.1.1.2. Interface do funcionário
● A 1ª interface contém uma lista de pedidos com número da mesa, o produto, a
quantidade e uma série de botões com o nome de “Processar”, “Produzir” e “Entregar”.
Contém também na parte superior os botões “Pedidos”, “Contas” e “Outros”.
● A 2ª interface contém uma lista de mesas com status aberto.
● A 3ª interface contém uma lista de Usuários da mesa selecionada na interface anterior.
● A 4ª interface contém as informações de “Total a pagar” e “Total Celular a pagar”,
contém um campo pata preencher com o total que o usuário quer pagar e um botão com o nome “Pagar”.
41
-
8/19/2019 Victor Hugo Benevides Sobrinho
42/73
-
8/19/2019 Victor Hugo Benevides Sobrinho
43/73
Razão Para que cada cliente pague somente o que consumiu na mesa e
facilite no fechamento da conta de forma que o cliente não tenha que
fazer cálculos e se esforce a lembrar do que pediu na conta.
Tabela 5.2 - RF002-Divisão de contas.
ID RF003
Nome Solicitar participação de Conta Mesa
Descrição Em uma mesa com uma conta já aberta, um cliente pode solicitar a
algum usuário a participação da divisão desta conta mesa.
Razão Para não ocorrer pedidos indevidos de pessoas não autorizadas a
mesa, os clientes que abriram a mesa são os que autorizam novos
usuários a acessar a conta mesa e fazer pedidos.
Tabela 5.3 - RF003-Solicitar participação de Conta Mesa
ID RF004
Nome Fazer pedido somente com a conta da mesa aberta
Descrição O cliente só pode efetuar o pedido quando o usuário dele estiver ativo
em alguma conta da mesa que esteja aberta.
Razão Para que o funcionário saiba onde ele tem que entregar o pedido e para
o cálculo do pagamento da conta o cliente deve estar com alguma conta
da mesa aberta.
Tabela 5.4 - RF004-Fazer pedido somente com a conta da mesa aberta
ID RF005
43
-
8/19/2019 Victor Hugo Benevides Sobrinho
44/73
-
8/19/2019 Victor Hugo Benevides Sobrinho
45/73
Tabela 5.7 - RF007-Não permitir nome de usuário igual a um existente
5.1.1.2.2 Requisitos Não Funcionais
ID RNF001
Nome Ambiente mobile
Descrição As aplicações dos clientes vão rodar em smartphones.
Razão Para uma boa mobilidade o sistema irá rodar em smartphones
particulares dos usuários.
Tabela 5.8 - RNF001- Ambiente mobile
ID RNF002
Nome Campos numéricos
Descrição Limitar os campos que devem receber números para receber somente
números.
Razão Para não ocorrer erro de tipo de dados no sistema é importante limitar
os campos para receber somente o esperado.
Tabela 5.9 - RNF002- Campos numéricos
ID RNF003
Nome Quantidade de caracteres no campo
Descrição Limitar a quantidade de caracteres dos campos que recebem valores.
45
-
8/19/2019 Victor Hugo Benevides Sobrinho
46/73
Razão Para não ocorrer erro de tipo de dados no sistema é importante limitar
os campos para receber somente o esperado.
Tabela 5.10 - RNF003- Quantidade de caracteres no campo
ID RNF004
Nome Dividir produtos em categorias e subcategorias
Descrição Na tela de produtos para localizar um produto primeiro se escolhe a
categoria dele e sua respectiva subcategorias, para depois escolher o
produto desejado.
Razão Ao dividir os produtos a localização e organização de produtos do
mesmo grupo facilitam para tornar mais eficiente a busca do cliente
pelo que deseja.
Tabela 5.11- RNF004- Dividir produtos em categorias e subcategorias
ID RNF005
Nome Mascara de Telefone
Descrição Ter uma máscara para validar telefones digitados de forma incorreta.
Razão Para garantir que os usuários não digite telefones errados, validar com
uma máscara os telefones no cadastro.
Tabela 5.12- RNF005-Mascara de Telefone
ID RNF006
Nome Máscara de Email
Descrição Ter uma máscara para validar emails digitados de forma incorreta.
46
-
8/19/2019 Victor Hugo Benevides Sobrinho
47/73
Razão Para garantir que os usuários não digite emails errados, validar com
uma máscara os emails no cadastro.
Tabela 5.13- RNF006-Mascara de Email
ID RNF007
Nome Cadastramento de Senha
Descrição Para cadastramento de senha o tamanho mínimo da senha é de 6
dígitos.
Razão Para não ocorrer problemas com senhas fáceis e para garantir a
segurança e confiabilidade dos pedidos feitos pelo usuário toda senha
deve ter 6 ou mais dígitos.
Tabela 5.14 - RNF007-Cadastramento de Senha
47
-
8/19/2019 Victor Hugo Benevides Sobrinho
48/73
5.1.1.3. Caso de uso
5.1.1.3.1 Diagrama de caso de uso
5.1.1.3.1.1 Cliente
A figura5.1 ilustra o Diagrama de Caso de uso do sistema do cliente.
Figura 5.1 Diagrama de Caso de Uso do sistema do Cliente
5.1.1.3.1.2 Funcionário
A figura5.2 ilustra o Diagrama de Caso de uso do sistema do Funcionário.
Figura 5.2 Diagrama de Caso de Uso sistema do Funcionário
48
-
8/19/2019 Victor Hugo Benevides Sobrinho
49/73
-
8/19/2019 Victor Hugo Benevides Sobrinho
50/73
Tela
Figura 5.3 Tela de login.
Tabela 5.15 - UC-001-Fazer Login
ID UC-002
Nome Cadastrar Usuário
Atores Cliente
Descrição Para que o usuário consiga fazer a autenticação ele precisa ter
um nome de usuário e senha cadastrado no sistema.
Pré-condições Ter o sistema instalado no smartphone
Pós-condições Ter o registro do usuário cadastrado no sistema
50
-
8/19/2019 Victor Hugo Benevides Sobrinho
51/73
Campos ● Nome de usuário
● Senha
● Telefone
● Email
Fluxo Normal 1) Digitar Nome de usuário
2) Digitar Senha
3) Digitar Telefone
4) Digitar Email
5) Clicar no botão “Cadastrar”
Fluxo Exceção 1) E1 Nome de usuário já existente no sistemaa) Informa ao usuário que o nome de usuário não está
disponível.
b) Volta para a ação 1 do fluxo principal
Requisitos
Relacionados
● RF007
● RNF003
● RNF005
● RNF006
● RNF007
51
-
8/19/2019 Victor Hugo Benevides Sobrinho
52/73
Tela
Figura 5.4 Tela de cadastro.
Tabela 5.16- UC-002-Fazer Cadastrar Usuário
ID UC-003
Nome Abrir Conta Mesa
Atores Cliente
Descrição Para fazer pedido o cliente deve estar com uma conta aberta em
alguma mesa
52
-
8/19/2019 Victor Hugo Benevides Sobrinho
53/73
-
8/19/2019 Victor Hugo Benevides Sobrinho
54/73
Tela
Figura 5.5 Tela de seleção de mesas.
Tabela 5.17 - UC-003-Abrir Conta Mesa
ID UC-004
Nome Solicitar Dividir Conta Mesa
Atores Cliente
54
-
8/19/2019 Victor Hugo Benevides Sobrinho
55/73
Descrição Para que mais de um cliente use a conta da mesa para facilitar
na hora da divisão de pedidos, o sistema dá a opção do cliente
solicitar a divisão da conta mesa.
Pré-condições 1. Estar autenticado no sistema2. Ter uma conta aberta por outro usuário
Pós-condições Ter acesso a efetuação de pedidos da conta mesa aberta
Fluxo Normal 4. O sistema mostra uma lista de mesas disponíveis para
solicitar divisão de conta.
5. O usuário escolhe a mesa que quer dividir a conta
6. O usuário clica no botão “Solicitar” para dividir a conta7. Usuário aguarda alguém da conta mesa liberar acesso a
ele
8. Usuário é aceito na conta mesa
Fluxo Exceção 1) E1 Usuário ativo na conta mesa recusa solicitação
a) Informa ao usuário que algum usuário rejeitou o
pedido dele.
b) Volta para a ação 1 do fluxo principal
Requisitos
Relacionados
● RF001
● RF004
55
-
8/19/2019 Victor Hugo Benevides Sobrinho
56/73
Tela
A figura 5.6 Solicitar Dividir Conta Mesa.
Tabela 5.18- UC-004-Solicitar Dividir Conta Mesa
ID UC-005
Nome Aceitar/Recusar Usuário na Conta Mesa
Atores Cliente
Descrição Aceita/recusar o usuário na conta mesa caso algum solicite entrar
56
-
8/19/2019 Victor Hugo Benevides Sobrinho
57/73
-
8/19/2019 Victor Hugo Benevides Sobrinho
58/73
Tela
A figura 5.7 Tela de informações de usuários.
Tabela 5.19- UC-005-Aceitar/Recusar Usuário na Conta Mesa
ID UC-006
Nome Fazer Pedidos
Atores Cliente
Descrição Passos para efetuar um pedido através do sistema
Pré-condições 3. Estar autenticado no sistema
58
-
8/19/2019 Victor Hugo Benevides Sobrinho
59/73
4. Estar em um grupo ativo de uma conta mesa
Pós-condições Ter o pedido cadastrado no sistema
Fluxo Normal
1. O usuário clica no botão “Produtos”
2. O sistema retorna uma lista de categorias de produtos
3. O usuário escolhe uma categoria de produtos
4. O sistema retorna uma lista de sub-categorias
5. O usuário escolhe uma sub-categoria
6. O sistema retorna uma lista de produtos com os campos
de quantidade para digitar
7. O usuário escolhe o produto, digita a quantidade e clica no botão “Comprar”
Requisitos
Relacionados
● RF001
● RF004
● RNF002
● RNF003
● RNF004
Tela
59
-
8/19/2019 Victor Hugo Benevides Sobrinho
60/73
A figura 5.8 Tela de lista de produtos.
Tabela 5.20- UC-006-Fazer Pedidos
ID UC-007
Nome Dividir Pedidos
Atores Cliente
Descrição Passos para efetuar a divisão de um pedido através do sistema
60
-
8/19/2019 Victor Hugo Benevides Sobrinho
61/73
Pré-condições 1. Estar autenticado no sistema
2. Estar em um grupo ativo de uma conta mesa
3. Ter um pedido no qual o cliente não faz parte
Pós-condições Ter o pedido dividido no sistema
Fluxo Normal
1. O usuário clica no botão “Pedidos”
2. O sistema retorna uma lista de pedidos efetuados
3. O usuário escolhe um pedido e clica no botão “Aceitar”
Requisitos
Relacionados
● RF001
● RF004
● RF005
● RNF002
● RNF003
Tela
61
-
8/19/2019 Victor Hugo Benevides Sobrinho
62/73
Figura 5.9 Tela de divisão de pedidos.
Tabela 5.21- UC-007-Dividir Pedidos
5.1.1.3.2.2 Funcionário
ID UC-001
Nome Manter Pedidos
Atores Funcionário, Cliente
62
-
8/19/2019 Victor Hugo Benevides Sobrinho
63/73
Descrição Para o cliente ficar ciente da situação do pedido que ele fez o
sistema do funcionário dá a opção de informar qual o status do
pedido até chegar na mesa.
Fluxo Normal
1. Processar Pedido
a. O sistema retorna uma lista de pedidos a processar
b. O funcionário escolhe o pedido que quer processar e
aperta no botão “Processar”
2. Produzir pedido
a. O sistema retorna uma lista de pedidos a produzirb. O funcionário escolhe o pedido que quer produzir e aperta
no botão “Produzir”
3. Entregar Pedido
a. O sistema retorna uma lista de pedidos a produzir
b. O funcionário escolhe o pedido que quer entregar e aperta
no botão “Entregar”
Tela
63
-
8/19/2019 Victor Hugo Benevides Sobrinho
64/73
Figura 5.10 Tela de atualização de status de pedidos.
Tabela 5.22- UC-001-Manter Pedidos
ID UC-002
Nome Encerrar Conta Cliente
Atores Funcionário, Cliente
Descrição Quando o cliente quer encerrar a conta ele se dirige a um
funcionário e faz o pedido de encerramento de conta.
Pré-condições O usuário tem que estar com a conta aberta no sistema.
64
-
8/19/2019 Victor Hugo Benevides Sobrinho
65/73
Pós-condições Conta do usuário solicitante estar como encerrada no sistema
Fluxo Normal
1. Cliente se dirige ao funcionário com numero da mesa e
nome de usuário.2. Funcionário clica no botão “Contas”
3. O sistema retorna uma lista de mesas “em aberto”.
4. Funcionário escolhe a mesa que foi lhe informado.
5. O sistema retorna uma lista de usuários ativos na mesa.
6. O funcionário escolhe o nome de usuário que foi lhe
informado
7. O sistema retorna os valores “Total a pagar”, “Total celular a pagar” e um campo com opção de colocar o valor que o cliente
deseja pagar.
8. O funcionário abate o valor que o cliente pagou e clica no
botão “Pagar”
RequisitosRelacionados
1. RF0062. RNF002
3. RNF003
Tela
65
-
8/19/2019 Victor Hugo Benevides Sobrinho
66/73
A figura 5.11 Tela de finalização de conta.
Tabela 5.23 - UC-002-Encerrar Conta Cliente
66
-
8/19/2019 Victor Hugo Benevides Sobrinho
67/73
5.1.1.4. Modelo De Entidade e Relacionamento
A figura 5.12 ilustra um ilustra um diagrama de entidade e relacionamento referente a
organização do banco de dados do sistema Mobimenu .
A figura 5.12 Diagrama de Entidade e Relacionamento.
67
-
8/19/2019 Victor Hugo Benevides Sobrinho
68/73
Conclusão
Ao perceber a evolução dos smartphones e quão grande era seu potencial na
automatização de pedidos em um restaurante surgiu o tema deste projeto, pois até então o
sistema de cardápio e comandas eram separados e feitos de papel o que desgasta com o
tempo, se molhar e pode se perder. Com a aplicação desenvolvida o cliente que possuir um
smartphone com os sistemas operacionais mais comuns como Windows phone, Android e ios,
tem a vantagem de poder fazer o pedido através de seus aparelhos, agilizando e deixando ele mais informado sobre a situação do mesmo.
Até então a plataforma testada foi a Android, para desenvolver para as outras plataformas
seria necessário aparelhos e ferramentas especificas, para adicionar a biblioteca do
phonegap e chamar o webapp.
O desenvolvimento desta aplicação proporcionou um aprendizado sobre novas
tecnologias e conhecimentos na área de desenvolvimento web e mobile mostrando que
aplicações web tendem a evoluir e se adaptar cada vez mais a recursos nativos dos variados
smartphones.
No estudo de novas tecnologias foi encontrado um problema quanto ao servidor,
primeiramente foi escolhido o Node.js, uma ferramenta nova e bastante interessante para
criação do servidor feita em javascript, porem não tinha gerência de thread, fazendo com que
as informações chegassem ao servidor de forma não ordenada com a solicitação, deixando os
valores desatualizados e como a aplicação exigia valores atualizados e corretos, houve a necessidade de procurar outra ferramenta.
68
-
8/19/2019 Victor Hugo Benevides Sobrinho
69/73
Também foi notado uma lentidão quanto ao processamento de dados comparada com
uma aplicação nativa, portanto para aplicações pequenas que não utilizam muitos cálculos é
viável o uso da ferramenta.
E mesmo com os problemas constatados o desenvolvimento da aplicação ocorreu muito
bem e todos os requisitos do projeto foram atendidos, nos testes não houve problema de travamento.
Trabalhos futuros
Pretende-se adquirir ferramentas e aparelhos para testar a aplicação em novas
plataformas, e que esteja disponível para download a aplicação do cliente nas lojas especificas
de cada sistema operacional no qual a aplicação foi adaptada.
Também pretende-se desenvolver novas partes da aplicação, como reserva de mesas,
um sistema de comentário de pratos disponíveis, sistema de bate-papo entre o grupo da
mesma mesa e de mesas separadas, um sistema de geração de captcha em tempo real para
que o usuário só possa acessar a mesa do local especifico do restaurante, um histórico de
pedidos anteriores para que o cliente possa consultar e implementar algumas técnicas de
seguranças para evitar ataques ao sistema..
Referências Bibliograficas
[1] Web Apps ou aplicativos nativos? Disponível em: (4 de maio de 2014)
[2] Aplicações mobile: Web ou Nativa?Disponível em: (4 de maio de 2014)
69
http://www.google.com/url?q=http%3A%2F%2Fwww.mobits.com.br%2F2010%2F11%2F26%2Fweb-apps-ou-aplicativos-nativos&sa=D&sntz=1&usg=AFQjCNH2RQKxtDVcgs5CGMe6uExW9DsJ2whttp://www.google.com/url?q=http%3A%2F%2Fwww.mobits.com.br%2F2010%2F11%2F26%2Fweb-apps-ou-aplicativos-nativos&sa=D&sntz=1&usg=AFQjCNH2RQKxtDVcgs5CGMe6uExW9DsJ2w
-
8/19/2019 Victor Hugo Benevides Sobrinho
70/73
[3] Desenvolvimento Mobile: Web App vs Native App.Disponível em: (4 de maio de 2014)
[4] Native vs. web app vs. hybrid – what is the optimal developer strategy?
Disponível em: (4 de maio de 2014)
[5] Diferença entre Aplicativos Nativos, Híbridos e Mobile Web Apps.Disponível em:
(6 de maio de 2014)
[6] Exemplo básico, manipulação de variável - JavaScript.Disponível em: (9 de maio 2014)
[7] Introdução ao HTML.
Disponível em: (9 de maio de 2014)
[8] O que é HTML?Disponível em:
-
8/19/2019 Victor Hugo Benevides Sobrinho
71/73
[13] Javascript - Introdução à linguagem Javascript.Disponível em: (12 de maio de 2014)
[14] Aprendendo JavaScript.Disponível em: (12de maio 2014)
[15] O que é JSON, como e quando utilizar?Disponível em: (13 de maio de 2014)
[16] Setyo Pamungkas, Zainul . PhoneGap Build Starter. leanpub, 2014
[17] About the Project Phonegap.Disponível em: (16 de maio de 2014)
[18] Introdução a Jquery.
Disponivel em: (11 de
junho de 2014)
[19] O que é bootstrap?
Disponivel em:
(11 de junho de 2014)
[20] Introdução à linguagem Java
Disponivel em: (12 de junho de
2014)
[21] Introdução à Servlets em Java
Disponivel em: (12 de
junho de 2014)
71
-
8/19/2019 Victor Hugo Benevides Sobrinho
72/73
[22] O que é o Ajax e como ele pode ajudar nos seus projetos?
Disponivel em:
(12 de junho de 2014)
[23] ASP.NET Web API melhorando o retorno JSON dos seus serviços REST.
Disponivel em:
(12 de junho de 2014)
[24] Introdução ao MySQL.
Disponivel em: (12 de junho de 2014)
[25] Conheça o Apache Tomcat.
Disponivel em:
(12 de junho de 2014)
72
-
8/19/2019 Victor Hugo Benevides Sobrinho
73/73