caio lopes demario erika midori akabane karyn silva de ...akabane/mac0499/monografia.pdf · tão...

58
Universidade de São Paulo Instituto de Matemática e Estatística Bachalerado em Ciência da Computação Caio Lopes Demario Erika Midori Akabane Karyn Silva de Azevedo Desenvolvimento de um aplicativo Android baseado no estudo do comportamento de filas e com aplicação de crowdsourcing São Paulo 2016

Upload: truongmien

Post on 21-Dec-2018

216 views

Category:

Documents


0 download

TRANSCRIPT

Universidade de Satildeo PauloInstituto de Matemaacutetica e Estatiacutestica

Bachalerado em Ciecircncia da Computaccedilatildeo

Caio Lopes DemarioErika Midori Akabane

Karyn Silva de Azevedo

Desenvolvimento de um aplicativo Android

baseado no estudo do comportamento de filas

e com aplicaccedilatildeo de crowdsourcing

Satildeo Paulo2016

Desenvolvimento de um aplicativo Androidbaseado no estudo do comportamento de filas e com

aplicaccedilatildeo de crowdsourcing

Monografia final da disciplinaMAC0499 ndash Trabalho de Formatura Supervisionado

Supervisor Profa Dra Ana Cristina Vieira de Melo

Satildeo Paulo2016

Agradecimentos

Gostariacuteamos de agradecer primeiramente a Deus pela finalizaccedilatildeo de mais uma etapatatildeo almejada de nossas vidas Tambeacutem gostariacuteamos de agradecer a pessoas muito impor-tantes no desenvolvimento deste projeto Kathleen e Shodji pelo aconselhamento no designdo produto Paulo pelas opiniotildees sobre o caacutelculo do tempo de espera e nossos amigos dagraduaccedilatildeo que muito nos apoiaram tanto nas mateacuterias durante o curso como nessa retafinal Natildeo podemos nos esquecer da nossa orientadora Ana Cristina que apoiou e acreditouna nossa ideia de projeto desde nossa primeira conversa E tambeacutem o professor Magalhatildeesque se disponibilizou para sanarmos nossas duacutevidas sobre essa mateacuteria tatildeo complexa cha-mada Estatiacutestica Finalmente obrigado pais e matildees pelo apoio e acolhimento nos momentosde estudo e desenvolvimento Agrave todos nosso muito obrigado nada disso seria possiacutevel semvocecircs

i

Resumo

Este projeto possui como objetivo principal estudar e aplicar o processo de desenvolvi-mento de software de um aplicativo para a plataforma Android que fornece ao usuaacuterio aprevisatildeo de tempo de espera para restaurantes cadastrados no banco de dados

Para auxiliar no desenvolvimento foram tambeacutem estudadas modelagens para previsatildeode filas de restaurantes para que o caacutelculo de previsatildeo da espera fosse feito de forma maisprecisa O caacutelculo se utiliza dos seguintes dados aqueles obtidos atraveacutes de pesquisas nosproacuteprios restaurantes e os extraiacutedos de informaccedilotildees enviadas por usuaacuterios De posse dessesdados o tempo de espera fornecido para aquele instante seraacute cada vez mais preciso agrave medidaque aumentam os feedbacks dos usuaacuterios

Para o desenvolvimento deste aplicativo algumas teacutecnicas de gerenciamento de projetoforam usadas com o intuito de fornecer um produto final satisfatoacuterio para o usuaacuterio

Palavras-chave filas restaurantes desenvolvimento Android previsatildeo de espera

iii

Abstract

Our goal with this project is to study and apply the process of software development of anAndroid application that provides the user with the waiting time prediction for restaurantsregistered in our database

To assist the development some modeling methods to estimate restaurant queues werestudied as well so that the calculation were accomplished with more precision

The waiting time prediction calculation is done using the following data data obtainedthrough research on the restaurants and data extracted from information sent by usersThus the waiting time provided for that moment will be increasingly more accurate as thefeedback from the users gets more frequent

In order to develop this application some project management techniques were used withthe interest of providing a satisfactory final product for the user

Keywords queues restaurants Android development waiting time estimation

v

Sumaacuterio

1 Introduccedilatildeo 111 Motivaccedilatildeo 112 Trabalho Proposto 113 Estrutura da monografia 2

2 Estudos Preliminares 321 Desenvolvimento de Startups 3

211 Desenvolvimento de Questionaacuterios 422 Metodologia Aacutegil 523 Jobs to be done 624 Caacutelculo da previsatildeo do tempo de espera na fila 8

241 Descriccedilatildeo do problema 8242 Meacutetodos de caacutelculo da espera 9

3 Tecnologias utilizadas 1531 O sistema Android 15

311 Organizaccedilatildeo de uma aplicaccedilatildeo Android 1632 JSON 1733 Google APIs 1734 Localizaccedilatildeo do Usuaacuterio 1835 Controle de Versatildeo 1936 Banco de dados 19

361 Firebase 2037 Crowdsourcing 21

4 Desenvolvimento do Projeto 2341 Pesquisa de Mercado 23

411 Pesquisa com o usuaacuterio 2342 Projeto do Aplicativo 3243 Aplicaccedilatildeo dos meacutetodos de caacutelculo de espera 32

431 Aplicando a meacutedia por periacuteodo 32432 Aplicando teoria das filas 34

vii

viii SUMAacuteRIO

433 Aplicando redes neurais 34434 Conclusatildeo sobre os meacutetodos estudados 35

44 Definiccedilatildeo da Interface do aplicativo 3545 Explicaccedilatildeo das funcionalidades 4146 Implementaccedilatildeo do banco de dados 41

5 Conclusatildeo 43

A Dados coletados 45

Referecircncias Bibliograacuteficas 47

Capiacutetulo 1

Introduccedilatildeo

Este capiacutetulo introduz o problema abordado a soluccedilatildeo proposta os objetivos do projetoe apresenta a estrutura da monografia

11 MotivaccedilatildeoEnfrentamos filas para realizar diversas atividades ao longo do dia Nosso tempo eacute gasto

esperando desde alguns minutos para pedir o almoccedilo ateacute horas para assistir um determinadoshow Ao todo muitas horas de nossas vidas satildeo desperdiccediladas nessas esperas

Muitas vezes somos surpreendidos por filas interminaacuteveis ou entatildeo pela ausecircncia delascriando a impressatildeo de que estas satildeo totalmente imprevisiacuteveis Isso acaba gerando a difi-culdade de programar com precisatildeo outras atividades pois natildeo sabemos ao certo quantotempo iremos gastar em esperas ao longo do dia Deixamos muitos deveres ou ateacute mesmomomentos de lazer de lado por causa disso e se tiveacutessemos como prever esse tempo gastopoderiacuteamos otimizar nosso dia

Esse e outros problemas podem ser minimizados agrave medida que o acesso agrave informaccedilatildeoseja histoacuterica ou em tempo real eacute facilitado Uma forma de fornecer essa informaccedilatildeo aousuaacuterio eacute atraveacutes da tecnologia Um exemplo disso eacute o aplicativo de navegaccedilatildeo Waze [24]que disponibiliza dados do tracircnsito em tempo real ajudando na locomoccedilatildeo diaacuteria Isso eacutepossiacutevel graccedilas aos avanccedilos tecnoloacutegicos e a maior acessibilidade aos dispositivos moacuteveisconectados agrave internet por exemplo

12 Trabalho PropostoAo vislumbrarmos esse problema tanto na vida dos outros como nas nossas e motivados

a utilizar nossos conhecimentos adquiridos ao longo do curso de Ciecircncia da Computaccedilatildeodecidimos desenvolver um aplicativo para diminuir esse desconforto causado pelas filas Essasoluccedilatildeo eacute um sistema

∙ desenvolvido na plataforma Android

∙ baseado em uma modelagem de sistema de filas

que tem como objetivo prever o tempo de espera dos usuaacuterios em filas e assim auxiliaacute-losnas suas decisotildees

1

2 INTRODUCcedilAtildeO 13

Para desenvolver uma soluccedilatildeo para o problema e dada a limitaccedilatildeo de tempo para o de-senvolvimento decidimos implementar a soluccedilatildeo apenas para as filas de restaurantes Estaescolha foi feita por serem locais muito frequentados e assim gerarem mais dados em menostempo e pela diversidade de tamanho das esperas gerando o interesse no estudo de suamodelagem

Implementou-se um aplicativo no qual o usuaacuterio pode fazer uma consulta sobre os res-taurantes cadastrados no banco de dados e ter acesso ao tempo de deslocamento somado aotempo de espera ateacute seu atendimento no estabelecimento Aleacutem disso ele tem a possibilidadede traccedilar uma rota ateacute o local e enviar um feedback sobre quanto tempo foi gasto na filapara aprimorar o calculo do tempo de espera

13 Estrutura da monografiaPara que fosse possiacutevel o desenvolvimento de um aplicativo para previsatildeo de tempo de es-

pera foi necessaacuterio estudar o processo de criaccedilatildeo de startups um processo de desenvolvimentode software tecnologias para programaccedilatildeo em Android bem como algumas modelagens es-tatiacutesticas de previsatildeo de tempo de espera A monografia foi estruturada de acordo comessas informaccedilotildees de modo que o leitor possa ter uma leitura progressiva dividida em trecircsprincipais partes

∙ Estudos preliminares Essa seccedilatildeo apresenta estudos sobre o que eacute necessaacuterio para odesenvolvimento de Startups a definiccedilatildeo da metodologia de desenvolvimento utilizadapelo grupo e o estudo da aplicaccedilatildeo de trecircs diferentes modelagens estatiacutesticas feitaspara analisar os dados iniciais fornecendo um modo de calcular o tempo de espera emum restaurante em um dado instante

∙ Tecnologias utilizadas Onde satildeo apresentadas as tecnologias e ferramentas utiliza-das para auxiliar no desenvolvimento do aplicativo

∙ Desenvolvimento do projeto Essa parte apresenta a aplicaccedilatildeo dos meacutetodos decaacutelculo de espera vistos na seccedilatildeo anterior e o processo de desenvolvimento do aplicativoem si

Capiacutetulo 2

Estudos Preliminares

21 Desenvolvimento de StartupsO desenvolvimento do projeto foi baseado nos meacutetodos utilizados em Startups O grupo

seguiu os princiacutepios da Startup Enxuta [31] no qual um produto miacutenimo deve ser criado eentatildeo incrementado atraveacutes do estudo das necessidades do usuaacuterio A partir de uma pesquisacom o puacuteblico alvo a ideia inicial eacute lapidada e um produto com o miacutenimo de funcionalidadespossiacutevel eacute desenvolvido para entatildeo retornar aos usuaacuterios que iratildeo validaacute-lo Este processo eacuterepetido ateacute que um produto final seja completamente desenvolvido independente da ideiaque se tinha no iniacutecio O processo tem como foco economizar recursos e suprir a necessidadedo usuaacuterio de forma raacutepida e eficiente

De acordo com o livro A Startup Enxuta[31] esta metodologia prioriza o desenvolvi-mento iterativo com a participaccedilatildeo do cliente a cada etapa ao inveacutes de procuraacute-lo somentena entrega do produto final Nessa metodologia temos alguns princiacutepios que guiam o desen-volvimento de projetos

1 Mapeamento do negoacutecio atraveacutes do diagrama conhecido como ldquocanvas do modelo denegoacuteciosrdquo que nos mostra resumidamente uma visatildeo geral do projeto

2 Pesquisas feitas com os usuaacuterios no mercado para saber suas opiniotildees sobre o negoacutecioe posteriores mudanccedilas ou ajustes no projeto com base nos resultados

3 Desenvolvimento do produto utilizando algum meacutetodo aacutegil

Inicialmente deve-se traccedilar os primeiros objetivos do projeto utilizando o diagrama Can-vas [10] (figura 21) Esse diagrama eacute utilizado para auxiliar empresas a ter uma visatildeo macrodo projeto fornecendo uma forma de visualizar suas dependecircncias e permitindo planejartraccedilar e gerenciar um plano de desenvolvimento Ele possui perguntas que devem ser res-pondidas em seus quadros e no decorrer desse processo o projeto vai sendo adaptado deacordo com as limitaccedilotildees impedimentos e novas ideias que vatildeo surgindo

3

4 ESTUDOS PRELIMINARES 21

Figura 21 Modelo do Diagrama Canvas

Com o modelo de negoacutecios definido o proacuteximo passo eacute a realizaccedilatildeo de uma pesquisa como puacuteblico para validaacute-lo Essa fase do desenvolvimento pode ser refeita quantas vezes foremnecessaacuterias reescrevendo o Canvas conforme a interpretaccedilatildeo da necessidade do usuaacuterio

211 Desenvolvimento de Questionaacuterios

De acordo com o manual Designing a Survey [4] um questionaacuterio eacute criado para obterinformaccedilotildees para conduzir o desenvolvimento de um projeto de acordo com as preferecircnciasdo puacuteblico alvo Ele deve ser curto e conciso e deve capturar somente informaccedilotildees que sejamrelevantes para a pesquisa

Os passos para o desenvolvimento de um bom questionaacuterio satildeo

∙ Definir os dados necessaacuterios

∙ Desenvolver as questotildees

∙ Remover qualquer questatildeo que natildeo captura os dados definidos previamente

As questotildees podem ser moldadas de trecircs maneiras

∙ Estruturadas Questotildees que possuem resposta fixa Exemplo

Vocecirc usa transporte puacuteblico

( )Sim

( )Natildeo

22 METODOLOGIA AacuteGIL 5

∙ Natildeo Estruturadas Questotildees de resposta aberta Exemplo

O que vocecirc costuma fazer para evitar filas

∙ Parcialmente Estruturadas Questotildees mistas Exemplo

Qual meio de transporte vocecirc usa

( )Carro

( )Moto

( )Outros______

22 Metodologia AacutegilA metodologia aacutegil tem sido adotada pelas empresas hoje em dia por conta dos melhores

resultados obtidos em relaccedilatildeo agraves metodologias tradicionais[23] Essa eacute caracterizada pelavalorizaccedilatildeo de

∙ ldquoIndiviacuteduos e interaccedilotildees mais que processos e ferramentasrdquo

∙ ldquoSoftware em funcionamento mais que documentaccedilatildeo abrangenterdquo

∙ ldquoColaboraccedilatildeo com o cliente mais que negociaccedilatildeo de contratosrdquo

∙ ldquoResponder a mudanccedilas mais que seguir um planordquo [12]

Eacute uma metodologia que envolve trabalho em equipe encontros regulares com o clientedesenvolvimento iterativo e com menos foco em planejamento estrito e ideias definitivasdiferente de metodologias mais tradicionais que satildeo mais focadas em projetos bem docu-mentados com pouca possibilidade de mudanccedila ao final do processo Decidiu-se por utilizara metodologia aacutegil neste projeto pois natildeo haviam ideias completamente definidas inicial-mente e para o grupo a opiniatildeo do puacuteblico alvo sobre o produto era fundamental em cadaiteraccedilatildeo do processo podendo haver mudanccedilas inesperadas dependendo do feedback recebido

Dentre as opccedilotildees de metodologias aacutegeis O meacutetodo Scrum[16] eacute um que eacute definido comoum gerenciador e um processo de controle que foca em construir um software que conheceas necessidades do negoacutecio devolvendo incrementalmente um software

Com o Scrum o software eacute desenvolvido em iteraccedilotildees de tamanho fixo chamadas deSprints que tem duraccedilatildeo de tipicamente duas a quatro semanas Em cada Sprint um nuacutemerofixo de histoacuterias (que se traduzem em tarefas) satildeo selecionadas pelo grupo para seremutilizadas na sprint(figura 22) Haacute tambeacutem um sistema de motivaccedilatildeo para o time como osMilestones que satildeo objetivos menores distribuiacutedos por toda a sprint ajudando na mediccedilatildeode desemprenho da equipe e graacuteficos Burndown que mostram o progresso de cada iteraccedilatildeopara que o time sinta o progresso no desenvolvimento

6 ESTUDOS PRELIMINARES 23

Figura 22 Dinacircmica do Scrum

Para controle das iteraccedilotildees foi utilizado o software Trello [21] que eacute um gerenciador detarefas de projeto (figura 23)

Figura 23 Interface do Trello - durante o processo de desenvolvimento

23 Jobs to be donePara implementar o aplicativo buscou-se uma metodologia para guiar esse processo desde

sua criaccedilatildeo ateacute sua validaccedilatildeo Duas metodologias conhecidas pelo grupo foram analisadas eestudadas Jobs To Be Done e Personas and Use Cases

Segundo Alan Klement[29] Personas satildeo clientes imaginaacuterios descritos pela idade sexoraccedila e haacutebitos semanais O uso delas natildeo eacute adequado para responder perguntas como ldquoPorqueo cliente quer saber o tamanho da filardquo pois quando a resposta eacute ldquoEle estaacute com pressa paracomerrdquo natildeo fica claro quais satildeo as reais necessidades do usuaacuterio Essa descriccedilatildeo tambeacutem natildeoeacute uacutetil no desenvolvimento de uma boa interface pois natildeo ajuda na hora de responder se umcerto botatildeo realmente deixa claro sua funcionalidade

23 JOBS TO BE DONE 7

Tambeacutem segundo Alan Klement Use Cases possuem 3 grandes problemas usam perso-nas casam implementaccedilotildees motivaccedilotildees e resultado e ignoram contexto situaccedilotildees e ansie-dades

Se uma funcionalidade definida por uma Use Case falhar seraacute difiacutecil identificar o pro-blema pois por casar informaccedilotildees diferentes surgiraacute a dificuldade de saber o que estaacute erradoa implementaccedilatildeo as suposiccedilotildees sobre as motivaccedilotildees ou os resultados

Observando-se esses fatos optou-se pelo uso da metodologia Jobs to Be Done pois haacuteuma mudanccedila na forma de fazer histoacuterias a fim de evitar os problemas observados em Per-sonas e Use Cases(Figura 24) Nesse modelo as Personas satildeo pessoas reais e as histoacuterias satildeoescritas com a seguinte divisatildeo situaccedilatildeo motivaccedilatildeo e resultados esperados

Nessa metodologia criamos histoacuterias descrevendo tarefas para que os usuaacuterios se colo-quem na situaccedilatildeo descrita Observando-os eacute possiacutevel saber se a tarefa foi realizada de formabem sucedida e caso contraacuterio identificar onde e o que estaacute causando a falha no instanteda realizaccedilatildeo dela

Figura 24 Diferenccedila entre estruturas de histoacuterias

8 ESTUDOS PRELIMINARES 24

Algumas das histoacuterias criadas para os testes de interface do grupo foram

∙ Quando eu estiver na tela de lista de restaurantes eu quero acessar a tela de detalhesdo restaurante que eu desejo saber o tempo de espera entatildeo eu posso ver com clarezaas informaccedilotildees e posso traccedilar uma rota para o estabelecimento

∙ Quando eu estiver na tela principal eu quero enviar meu feedback sobre o tempo deespera no estabelecimento que estou entatildeo eu posso ajudar outros usuaacuterios por meiodo aplicativo

24 Caacutelculo da previsatildeo do tempo de espera na filaAtraveacutes de pesquisas em busca de meacutetodos estatiacutesticos para se estudar o comportamento

das filas foram encontradas as trecircs metodologias descritas nesta seccedilatildeo Este capiacutetulo conteacutema explicitaccedilatildeo do problema estudado e suas possiacuteveis soluccedilotildees

241 Descriccedilatildeo do problema

Para que se chegasse a uma soluccedilatildeo apropriada o problema de espera em fila precisouser estudado Esse problema pode ser descrito da seguinte forma dado um restaurante aentrada nesse eacute atraveacutes de uma fila Essa fila tem seu tamanho redefinido agrave medida quenovos clientes chegam e saem dela A saiacuteda dos clientes pode ser devido a desistecircncia ou aacomodaccedilatildeo deles nas mesas A entrada eacute definida pela disponibilizaccedilatildeo de lugares livres agravemedida em que os grupos que estavam alocados terminam seu atendimento

Figura 25 Esquema simplificado do funcionamento do processo em um restaurante

A fila de espera eacute influenciada por dois fatores a taxa de chegada do cliente e a taxa deatendimento nas mesas

∙ chegada em restaurantes a chegada de clientes eacute definida por uma taxa O clienteneste caso representa um grupo com tamanho variaacutevel A distribuiccedilatildeo do tamanho dogrupo nas chegadas eacute variaacutevel

∙ O atendimento a alocaccedilatildeo do grupo eacute organizada pela recepccedilatildeo O meacutetodo utilizadopor eles natildeo eacute padronizado e muitas vezes eacute completamente subjetivo Por exemplose acontecer de um grupo grande e vaacuterios casais chegarem ao mesmo tempo e nesse

24 CAacuteLCULO DA PREVISAtildeO DO TEMPO DE ESPERA NA FILA 9

momento existir um espaccedilo no salatildeo que acomode o grupo (juntando as mesas) outodos os casais (com as mesas separadas) dependendo de quem estaacute responsaacutevel poralocaacute-los cada um receberaacute uma prioridade diferente e essa decisatildeo natildeo eacute padronizada

∙ A disposiccedilatildeo das mesas a disposiccedilatildeo e quantidade de mesas natildeo satildeo padronizadasentre restaurantes de uma mesma rede muito menos entre restaurantes diferentesAleacutem disso a formataccedilatildeo do salatildeo pode ser remodelada de acordo com a necessidadede alocaccedilatildeo dos clientes haacute gerentes que evitam essa movimentaccedilatildeo ou ateacute mesmorestaurantes que natildeo tecircm essa possibilidade

242 Meacutetodos de caacutelculo da espera

Com o problema desenhado desta maneira esboccedilou-se trecircs possiacuteveis meacutetodos de resoluccedilatildeoe um desses foi aplicado na soluccedilatildeo final Os meacutetodos desenvolvidos satildeo meacutedia por periacuteodoaplicaccedilatildeo da teoria das filas e utilizaccedilatildeo de redes neurais Essas teacutecnicas precisam de dadospara serem desenvolvidas e aplicadas Por conta disso buscou-se fontes que suprissem essanecessidade

Captaccedilatildeo dos dados para a anaacutelise

Para que seja possiacutevel aplicar os meacutetodos estudados eacute necessaacuterio obter dados para aplicarna anaacutelise Estes foram obtidos de duas formas a partir de uma parceria com a empresa GetIn [7] desenvolvedora de um aplicativo de gerenciamento de filas de restaurantes e atraveacutesde pesquisas presenciais em restaurantes da rede Outback Steakhouse[14] selecionados para oestudo(Apecircndice A) O aplicativo da Get In possui uma funcionalidade principal realizaccedilatildeode uma reserva em um determinado restaurante O banco de dados manteacutem o registro detodos os usuaacuterios que entram na fila e esses dados satildeo organizados em uma tabela com osseguintes campos

∙ Origem Se a reserva foi realizada de forma remota ou presencial Assim

1 Reserva presencial (na entrada do restaurante incluiacuteda pela recepcionista)

2 Reserva remota (realizada atraveacutes do aplicativo)

∙ Entrada este consiste na data e hora que o usuaacuterio entrou na fila

∙ Qtd Pessoas tamanho do grupo para o qual a reserva foi feita

∙ Prioritaacuterio se este grupo requer atendimento prioritaacuterio

0 Natildeo

1 Sim

∙ Notificado A data e horaacuterio em que o grupo foi notificado que sua mesa estava pronta

ndash Quando NULL a recepcionista natildeo notificou essa pessoa (possivelmente chamoudiretamente pelo nome)

∙ Tempo na Espera Tempo que o grupo ficou ativo na fila de espera (em segundos)

∙ Status Qual a situaccedilatildeo da reserva do grupo Podendo assumir tais valores

0 Cancelado pela recepcionista

10 ESTUDOS PRELIMINARES 24

2 Sentado

3 Cancelado pelo proacuteprio Usuaacuterio

Para melhor entender estes paracircmetros o funcionamento do aplicativo deve ser expli-cado com maior detalhamento O processo de reserva funciona da seguinte forma o usuaacuterioreserva seu lugar atraveacutes do aplicativo ou vai ao restaurante e a recepcionista o adiciona agraveespera No primeiro caso o usuaacuterio tem um tempo de toleracircncia para chegar ao estabeleci-mento apoacutes receber a notificaccedilatildeo caso natildeo consiga chegar a tempo a reserva eacute cancelada Nosegundo caso quando o grupo a ser chamado estaacute proacuteximo da recepccedilatildeo a funcionalidade denotificaccedilatildeo natildeo precisa ser usada o responsaacutevel pode se direcionar diretamente aos clientes echamaacute-los pelo nome Mesmo nesse segundo caso o tempo de espera na fila ainda eacute guardadopois a recepccedilatildeo precisa ldquofecharrdquo a espera do grupo para chamar o proacuteximo

Poreacutem a utilizaccedilatildeo desses dados natildeo foi liberada pela empresa Get In para serem usadoscomo banco de dados do aplicativo somente foram fornecidos dados do mecircs de agosto esetembro de 2016 para que fossem utilizados nas anaacutelises feitas com os modelos estatiacutesticosPara obter dados que poderiam ser utilizados no banco de dados do aplicativo foi neces-saacuterio uma pesquisa presencial onde o grupo visitou alguns restaurantes da rede OutbackSteakhouse para obter informaccedilotildees sobre o tempo de espera nestes estabelecimentos

Foram visitados 5 restaurantes Outback Steakhouse Shopping Eldorado Outback Ste-akhouse Shopping Villa Lobos Outback Steakhouse Shopping Granja Vianna Outback Ste-akhouse Shopping Uniatildeo de Osasco e Outback Steakhouse Shopping Market Place ondequestionamos sobre o tempo de espera por tamanho de grupos (em nuacutemero de pessoas) epor horaacuterio e dia da semana

Ao analisar os dados coletados pela pesquisa presencial notamos que estes estavam sus-cetiacuteveis a erros por terem sido obtidos por meio de diferentes observaccedilotildees humanas Ummeacutetodo para obter dados mais precisos consistiria na realizaccedilatildeo de novas pesquisas no for-mato mediccedilatildeo onde cada integrante do grupo deveria coletar o tempo de espera de cadacliente atraveacutes de um cronocircmetro e calcular o tempo de espera meacutedio nesse horaacuterio Comoo grupo natildeo conseguiria aplicar este meacutetodo optou-se por melhorar a precisatildeo dos dadoscoletados usando como base o graacutefico de horaacuterios de pico disponibilizado pela Google paracada restaurante Essa melhora foi feita utilizando-se caacutelculos de proporccedilatildeo de valores

24 CAacuteLCULO DA PREVISAtildeO DO TEMPO DE ESPERA NA FILA 11

Primeiro meacutetodo Meacutedia por periacuteodo

Figura 26 Esquema do meacutetodo meacutedia por periacuteodo

Para que uma previsatildeo de espera possa ser fornecida ao usuaacuterio essa deve basear-seobrigatoriamente em alguma informaccedilatildeo preacutevia Contudo encontrar uma fonte para taisdados se mostrou uma tarefa muito complicada Para conseguir ainda assim apresentar umtempo de espera em fila meacutetodos de anaacutelise foram definidos de acordo com a quantidade dedados disponiacutevel para cada estabelecimento

De um modo geral neste modelo o caacutelculo do tempo de espera funcionaraacute da seguinteforma calcular-se-aacute a meacutedia de espera para o dia da semana e horaacuterio requeridos pelousuaacuterio sem diferenciar feriados de dias normais Dependendo de quatildeo longo eacute o histoacutericoniacuteveis de especificidade podem ser adicionados ou seja numa busca tempo de espera em 9de Dezembro (segunda-feira) agraves 19h no restaurante X a query selecionaraacute todos os registrosfeitos no dia 9 de dezembro entre as 19h e agraves 20h dos uacuteltimos anos no restaurante X e realizaraacuteessa meacutedia ou pode selecionar apenas linhas de todas as segundas-feiras do mecircs de Dezembrodeste mesmo periacuteodo

∙ Muitos dados neste caso um maior niacutevel de especificidade pode ser aplicado sem autilizaccedilatildeo de outras fontes para complementar o banco de dados

∙ Alguns dados o niacutevel de especificidade eacute bem menor apenas filtrando por dia dasemana e intervalo de hora sem mecircs ou dia especiacutefico no ano Em alguns casos aquantidade de dados eacute tatildeo pequena que deve-se recorrer a outras fontes A Googletem disponibilizado graacuteficos com a distribuiccedilatildeo dos clientes nos horaacuterios de funciona-mento de estabelecimentos Esses dados natildeo estatildeo disponiacuteveis em sua API ou seja natildeo

12 ESTUDOS PRELIMINARES 24

haacute uma forma automaacutetica para que o aproveitamento desses possa ser feito Poreacutemmesmo omitindo-se os valores do graacutefico o perfil da distribuiccedilatildeo e o horaacuterio de picosatildeo aproveitados manualmente para nosso sistema

∙ Poucos dados para este caso fizemos o balanceamento dos dados da Google comas informaccedilotildees retiradas das entrevistas Aleacutem do aproveitamento das informaccedilotildees daGoogle foram realizadas pesquisas com funcionaacuterios dos restaurantes

Segundo meacutetodo Teoria das filas

Filas podem ser vistas como um sistema dinacircmico no qual existe um conjunto de usuaacuteriosque satildeo atendidos por um conjunto de atendentes de acordo com a ordem de chegada dosusuaacuterios A teoria de filas busca utilizando anaacutelises matemaacuteticas estudar o comportamentodestas filas para estimar o tempo de espera com base em um conjunto inicial de dadospreviamente fornecido[30]

Um sistema de filas possui como caracteriacutesticas

∙ Modelo de chegada dos usuaacuterios Utiliza como base o tempo entre as chegadasdos usuaacuterios

∙ Modelo de serviccedilo (atendimento aos usuaacuterios) Utiliza como base o tempo gastono atendimento ao usuaacuterio No caso dos restaurantes equivale ao tempo que um grupopassa na mesa ateacute a sua saiacuteda

∙ Nuacutemero de servidores Eacute o nuacutemero de atendentes disponiacuteveis no sistema Para omodelo do restaurante este equivale agraves mesas disponiacuteveis no salatildeo

∙ Capacidade do sistema Eacute o nuacutemero de usuaacuterios que o sistema eacute capaz de atenderInclui o nuacutemero de usuaacuterios que estatildeo sendo atendidos somado com os que esperamna fila Se este paracircmetro natildeo for informado o sistema eacute considerado com capacidadeilimitada

∙ Tamanho da populaccedilatildeo nuacutemero potencial de clientes que podem chegar a umsistema Pode ser finito ou infinito

∙ Disciplina da fila A disciplina da fila pode ser FIFO (first in first out) - o primeiroa chegar eacute o primeiro a ser atendido LIFO (last in first out) - o uacuteltimo a chegar eacuteo primeiro a ser atendido ALEATOacuteRIO - os atendimentos satildeo feitos sem qualquerpreocupaccedilatildeo com a ordem de chegada COM PRIORIDADE - os atendimentos satildeofeitos de acordo com prioridades estabelecidas No caso dos restaurantes a disciplinaadotada eacute a FIFO poreacutem esta pode mudar de acordo com o atendente responsaacutevel

Os tempos mencionados nos modelos de chegada e de serviccedilo podem ser constantesquando os intervalos entre as chegadas dos usuaacuterios satildeo iguais ou variaacuteveis quando os valo-res desses intervalos variam Nesse uacuteltimo caso o intervalo de tempo segue uma distribuiccedilatildeode probabilidades Nesse modelo tambeacutem existe a taxa meacutedia de chegada dos usuaacuterios porunidade de tempo ou seja quantos usuaacuterios chegam em uma hora

As filas podem ser moldadas em trecircs situaccedilotildees baacutesicas como descrito por Azmat Nafees[30]

∙ Modelo de fila de canal uacutenico com fila uacutenica e atendimento uacutenico (Figura 27)

24 CAacuteLCULO DA PREVISAtildeO DO TEMPO DE ESPERA NA FILA 13

∙ Modelo de fila de canal uacutenico com fila uacutenica e muacuteltiplos atendimentos paralelos (Fi-gura 28)

∙ Modelo de fila de canal uacutenico com muacuteltiplas filas e muacuteltiplos atendimentos paralelos(Figura 29)

Figura 27 Modelo de fila de canal uacutenico com fila uacutenica e atendimento uacutenico

Figura 28 Modelo de fila de canal uacutenico com fila uacutenica e muacuteltiplos atendimentos paralelos

Figura 29 Modelo de fila de canal uacutenico com muacuteltiplas filas e muacuteltiplos atendimentos paralelos

Tambeacutem por Azmat Nafees nesses modelos trecircs subprocessos podem ser vistos

∙ Processo de chegada Eacute um processo contiacutenuo do evento ldquochegada de clientesrdquo ouseja quando o evento ocorre o processo aguarda a ocorrecircncia do proacuteximo evento Esseevento coloca um cliente na fila quando ele chega

14 ESTUDOS PRELIMINARES 24

∙ Processo de espera Eacute um processo que inclui o evento ldquocomece a servir o proacuteximocliente da filardquo que retira um cliente da fila o coloca no processo de atendimento eespera a conclusatildeo do evento ldquocliente servidordquo para recomeccedilar Nele se trabalha comtamanho e disciplina da fila

∙ Processo de atendimento Eacute um processo que inclui o evento ldquocliente servidordquo eespera a conclusatildeo do evento ldquocomece a servir o proacuteximo cliente da filardquo para recomeccedilarNele se trabalha com tipo taxa e tempo de atendimento

Dentre esses 3 modelos o que mais se encaixa na situaccedilatildeo de um restaurante eacute o segundomodelo canal uacutenico com fila uacutenica e muacuteltiplos atendimentos paralelos O processo de chegadade novos clientes na fila eacute tido como aleatoacuterio

Terceiro meacutetodo Rede Neural

Rede Neural eacute uma teacutecnica computacional inspirada no sistema nervoso que com o auxiacute-lio de um modelo matemaacutetico apresenta respostas para problemas de decisatildeo Esses modelosfuncionam da seguinte forma primeiro um conjunto de dados (conjunto de treinamento) eacuteapresentado ao sistema e este aprende com ele atraveacutes de reconhecimento de padratildeo entatildeocoloca-se o sistema para analisar os dados (conjunto de teste) para os quais deseja-se obteralgum resultado Este processo eacute chamado de aprendizagem de maacutequina Quanto melhor forseu treinamento mais precisas seratildeo as respostas para o segundo conjunto

Uma rede neural eacute formada por subestruturas chamadas neurocircnios Um neurocircnio tem oseguinte funcionamento ele recebe como entrada sinais cada sinal recebe um peso de acordocom a influecircncia dele na saiacuteda e uma soma eacute feita para produzir o niacutevel de atividade entatildeodependendo se o niacutevel de atividade exceder o limite dado pela funccedilatildeo de transferecircncia aresposta eacute produzida[27]

Software Multiple Back-Propagation

Para implementar a soluccedilatildeo baseada em redes neurais foi usado o Software MultipleBack-Propagation [1] Este eacute um software de faacutecil utilizaccedilatildeo que fornece uma rede a qualaprende atraveacutes do processo de propagaccedilatildeo inversa Esse meacutetodo baseia-se na comparaccedilatildeodos dados esperados (conjunto de teste) com os dados obtidos a partir do treinamento senecessaacuterio adaptaccedilotildees satildeo feitas a estrutura da rede para melhor aproximar aos dados doconjunto teste e isso eacute chamado de propagaccedilatildeo inversa

Por se tratar de um meacutetodo de aprendizagem de maacutequinas para se obter um resultadodeve-se treinar o algoritmo Primeiramente submete-se o conjunto de treinamento ao soft-ware para isso foi escolhido o mecircs de Agosto O criteacuterio de parada para o treino eacute o erroquadraacutetico meacutedio o qual teve seu valor atribuiacutedo para 001

Capiacutetulo 3

Tecnologias utilizadas

31 O sistema AndroidAndroid eacute um Sistema operacional open source (software de coacutedigo aberto o qual as

pessoas podem acessar e modificar para contribuir com o projeto [25]) e para dispositivosmoacuteveis desenvolvido pela Google baseado no Kernel do Linux e utilizado principalmente emdispositivos touchscreen Atualmente o Android eacute o sistema operacional que deteacutem a maiorparcela do mercado[17] com 836 dos dispositivos contra 134 do iOS da Apple

A Google tambeacutem oferece um ambiente de desenvolvimento para a plataforma Androidchamado Android Studio no qual os aplicativos satildeo criados e exportados para os dispositi-vos moacuteveis Aplicativos Android satildeo programados na linguagem Java com vaacuterias bibliotecasdisponibilizadas pela Google para suporte ao sistema operacional

A escolha da plataforma foi feita principalmente por conta de o sistema possuir a maiorparte dos usuaacuterios de Smartphones e tambeacutem pela ampla comunidade ativa de desenvolve-dores agrave qual se pode recorrer em casos de duacutevidas e problemas tornando suas resoluccedilotildeesmais raacutepidas e com muacuteltiplas alternativas Outros motivos que contribuiacuteram para a escolhado Android foram

∙ A disponibilidade do ambiente de desenvolvimento Android Studio que possui todosos recursos necessaacuterios para desenvolver um aplicativo funcional logo apoacutes a instalaccedilatildeosem a necessidade de utilizar outras dependecircncias as quais satildeo gerenciadas automati-camente pelo proacuteprio software

∙ O fato de no mercado brasileiro o sistema Android se encontrar em 918 dos dispo-sitivos segundo pesquisa da Kantar[18] e dado a pesquisa realizada para definiccedilatildeo depuacuteblico alvo onde foi possiacutevel perceber que 639 dos entrevistados utilizam smartpho-nes com sistema Android

∙ A utilizaccedilatildeo da linguagem de programaccedilatildeo Java para desenvolvimento que jaacute eraconhecida e fora utilizada anteriormente ao contraacuterio das linguagens Objective C eSwift linguagens utilizadas para desenvolver aplicativos para o sistema iOS Assimcomo a disponibilidade de dispositivos por parte do grupo que em sua maioria era decelulares com o sistema Android

15

16 TECNOLOGIAS UTILIZADAS 31

Figura 31 Parcela de mercado dos dispositivos no Brasil

311 Organizaccedilatildeo de uma aplicaccedilatildeo Android

Aplicativos Android satildeo divididos em componentes Haacute quatro tipos de componentespresentes Activities (ou atividades) Services (ou serviccedilos) Content providers (ou provedoresde conteuacutedo) Broadcast receivers (ou receptores de transmissatildeo)

∙ Activities Satildeo as telas e interfaces do usuaacuterio Cada tela de uma aplicaccedilatildeo eacute repre-sentada por uma activity e cada activity eacute independente de outras apesar de seremcomponentes de uma mesma aplicaccedilatildeo Isso se daacute pelo fato de haver a possibilidade deutilizar activities de aplicativos durante a execuccedilatildeo de outros Atividades satildeo iniciadase se comunicam entre si atraveacutes de objetos chamados Intent que transferem um pacotede dados que pode ser carregado no iniacutecio da nova atividade

∙ Services Sempre satildeo executados em segundo plano sem interferir na experiecircncia dousuaacuterio geralmente para realizar operaccedilotildees longas ou realizar operaccedilotildees de troca dedados enquanto o usuaacuterio estaacute utilizando outra aplicaccedilatildeo em primeiro plano

∙ Content Providers Satildeo gerenciadores de dados de aplicaccedilotildees Android utilizadospara ler e salvar dados compartilhados ou secretos dos aplicativos e do sistema

∙ Broadcast Receivers Satildeo componentes responsaacuteveis por obter eventos que aconte-ceram em outras aplicaccedilotildees ou no sistema e direcionar dados sobre esses eventos paraeventuais aplicaccedilotildees que necessitem destes dados alguns exemplos de eventos obtidospelos receptores de transmissatildeo satildeo tela desligada e bateria fraca

Aleacutem dos componentes uma parte importante de uma aplicaccedilatildeo Android eacute o ArquivoManifest que eacute uma declaraccedilatildeo de permissotildees serviccedilos e exigecircncias de hardware necessaacuterios

33 JSON 17

para o funcionamento do aplicativo Outra funccedilatildeo eacute possuir declaraccedilotildees de todos os compo-nentes utilizados no projeto nomes iacutecones entre outros

As interfaces de usuaacuterio do Android satildeo definidas em arquivos XML (eXtensible MarkupLanguage)[26] nos quais estatildeo declarados todos os layouts e configuraccedilotildees das telas Essesarquivos de layout satildeo depois inflados e satildeo gerados os componentes visuais da aplicaccedilatildeoEssa estrutura tem como objetivo facilitar o design da interface do usuaacuterio jaacute que arquivosxml satildeo de faacutecil compreensatildeo do desenvolvedor

32 JSONJSON ou Javascript Object Notation eacute um formato de dados amplamente utilizado para

troca de informaccedilotildees entre programas Possui uma notaccedilatildeo simples para grande parte dosprogramadores pois se assemelha a convenccedilotildees utilizadas em linguagens de programaccedilatildeomuito conhecidas como C C++ Python e Java O objetivo eacute que ele seja de faacutecil entendi-mento tanto para pessoas como para maacutequinas[11]

Um arquivo JSON eacute organizado como um objeto contendo pares nomevalorseparadospor viacutergulas e dentro de chaves(lsquolsquo rsquorsquo) ou como um array que eacute uma lista de valores separa-dos por viacutergulas e entre colchetes(lsquo[lsquo rsquo]rsquo) Um valor por sua vez pode ser um objeto ou umarray mas tambeacutem um nuacutemero inteiro ou uma String entre outros

Um exemplo de arquivo JSON eacute

1 2 Carros [3 4 Nome Scen ic 5 Marca Renault 6 Ano 20127 8 9 Nome Sentra

10 Marca Nissan 11 Ano 200912 13 ]14

33 Google APIsAPIs (Application Program Interfaces) satildeo interfaces para facilitar a troca de informa-

ccedilotildees entre aplicaccedilotildees utilizando comandos especiacuteficos[15]

Ao longo do desenvolvimento algumas APIs fornecidas pela Google foram utilizadascomo fonte de informaccedilotildees adicionais para o aplicativo

∙ Google Maps Distance Matrix API Esta API eacute utilizada para obter o tempo emsegundos de trajeto entre dois pontos (latlong) no mapa podem ser consultados ostempos de trajeto de carro bicicleta a peacute e utilizando transporte puacuteblico[28] Esta eacute

18 TECNOLOGIAS UTILIZADAS 35

uma API web logo utiliza-se um request http para realizar uma consulta

Por exemplo o request

httpsmapsgoogleapiscommapsapidistancematrixjsonorigins=Seattleampdestinations=Victoria+BCampkey=[user_key]

retorna o JSON

1 2 des t ina t i on_addre s s e s [ Vic tor ia BC Canada ] 3 o r i g in_addre s s e s [ Sea t t l e WA EUA ] 4 rows [5 6 e lements [7 8 d i s t anc e 9 text 172 km

10 value 17166811 12 durat ion 13 text 4 horas 40 minutos 14 value 1680915 16 s t a tu s OK17 18 ]19 20 ] 21 s t a tu s OK22

no qual eacute possiacutevel obter o tempo de trajeto em segundos

∙ Google Maps Android API Esta API eacute utilizada para habilitar o uso de mapasda Google integrados agrave aplicaccedilatildeo jaacute disponiacutevel com todas as funcionalidades de zoome arrastar presentes no aplicativo nativo permitindo tambeacutem a personalizaccedilatildeo comoa adiccedilatildeo de pontos definidos pelo usuaacuterio ao mapa

34 Localizaccedilatildeo do UsuaacuterioOutro serviccedilo que foi utilizado com o intuito de obter o tempo de trajeto e a lista ordenada

de forma personalizada de restaurantes foi a localizaccedilatildeo do usuaacuterio que eacute obtida atraveacutes doGPS presente nos smartphones Um objeto de localizaccedilatildeo eacute criado e realiza a comunicaccedilatildeocom o serviccedilo de localizaccedilatildeo do aparelho Ao obter a localizaccedilatildeo ele lanccedila um evento quepode ser acessado por outras partes da aplicaccedilatildeo obtendo a localizaccedilatildeo mais atualizada dodispositivo

36 CONTROLE DE VERSAtildeO 19

35 Controle de VersatildeoControle de versatildeo eacute uma praacutetica usada para manter a organizaccedilatildeo do coacutedigo e do seu de-

senvolvimento quando muitos desenvolvedores colaboram conjuntamente Existem softwaresque auxiliam essa organizaccedilatildeo registrando todas as mudanccedilas feitas ao longo do processo eque possui recursos que permitem que vaacuterios usuaacuterios trabalhem nos mesmos arquivos semperda de informaccedilotildees

No caso do Git [8] o projeto fica organizado em uma estrutura de aacutervore onde cadacommit (checkpoints criados pelos membros do grupo durante o processo) eacute marcado porum noacute para onde se pode retornar quando necessaacuterio Existem tambeacutem estruturas chama-das branches que satildeo bifurcaccedilotildees na estrutura para que partes do projeto sejam criadasseparadamente sem interferir com a linha principal As branches depois satildeo unidas agrave linhaprincipal atraveacutes do comando merge

Neste projeto o serviccedilo de controle de versatildeo utilizado foi o Bitbucket [2] (que eacute um ser-viccedilo web-based de controle de versatildeo que utiliza Git) com auxiacutelio do software SourceTree[19]que eacute uma interface graacutefica para os serviccedilos do Bitbucket onde eacute possiacutevel visualizar com maisfacilidade as fases do desenvolvimento do projeto e realizar os comandos mais intuitivamente

Figura 32 Interface do SourceTree que mostra o controle de versionamento do projeto

36 Banco de dadosCom o intuito de deixar o aplicativo mais completo guardando informaccedilotildees dos usuaacuterios

e dos estabelecimentos optou-se por utilizar-se um banco de dados Alguns exemplos de

20 TECNOLOGIAS UTILIZADAS 36

banco de dados aprendidos no curso Laboratoacuterio de Banco de Dados foram

∙ SQL (Structured Query Language - Linguagem de Consulta Estruturada)[20] umalinguagem para atualizar deletar e requisitar informaccedilotildees atraveacutes de consultas emtabelas que possuem relaccedilatildeo entre si

∙ noSQL[13] um banco de dados que armazena e recupera informaccedilotildees modeladas deuma forma onde natildeo satildeo usadas tabelas relacionais

Como este uacuteltimo natildeo foi o foco da disciplina por falta de tempo decidiu-se por utilizaacute-lopara que o grupo pudesse aprender melhor esse modelo

Outra decisatildeo tomada foi a hospedagem dos dados na nuvem ou seja colocaacute-los em umservidor que natildeo seja local e conseguir acessaacute-los atraveacutes de uma conexatildeo via internet Dessemodo os dados sempre estaratildeo disponiacuteveis para serem consultados

361 Firebase

Buscando-se atender as decisotildees tomadas sobre o banco de dados procuramos um serviccedilode banco de dados da Google por conter ampla integraccedilatildeo com a plataforma de desenvolvi-mento Android por ser conhecido bastante utilizado e por possuir uma ampla comunidadede desenvolvedores dispostos a oferecer auxiacutelio em foacuteruns de discussatildeo de coacutedigos

Para atender esses requisitos escolheu-se o Firebase Realtime Database[6] desenvolvido edisponibilizado pela Google que consiste em um banco de dados noSQL com armazenamentona nuvem Esse serviccedilo armazena os dados do usuaacuterio no servidor da Google em formatoJSON e a cada alteraccedilatildeo sincroniza em tempo real com todos os clientes conectados

O grupo pode observar as seguintes vantagens de se trabalhar com a ferramenta existea sincronizaccedilatildeo em tempo real dos dados de todos os clientes e sua disponibilidade mesmocom o aplicativo offline ou seja quando o aplicativo natildeo estiver conectado a internet osdados do dispositivo moacutevel seratildeo armazenados e sincronizados com o banco de dados assimque a conexatildeo estiver disponiacutevel novamente Aleacutem disso os desenvolvedores possuem acessoa um console online (figura 33) onde o JSON eacute mostrado numa interface interativa de umaforma mais amigaacutevel e no qual eacute permitido editaacute-lo facilmente

37 CROWDSOURCING 21

Figura 33 Console online do Firebase onde os dados satildeo mostrados de forma mais amigaacutevel eintuitiva

Outra observaccedilatildeo feita foi que o Firebase Realtime Database funciona como o esperadose ele guardar uma coacutepia local dos dados em um arquivo JSON no celular Poreacutem isso natildeofoi visto como um problema pois como essa coacutepia pode ser salva em um arquivo texto oespaccedilo utilizado diminui consideravelmente

Na primeira vez que os dados satildeo criados e todas as vezes em que os dados forem atua-lizados por algum dispositivo moacutevel eacute enviada uma atualizaccedilatildeo que seraacute recebida atraveacutes delisteners por todos os aparelhos que utilizam o aplicativo para que eles atualizem seus res-pectivos JSONs Listeners satildeo interfaces de comunicaccedilatildeo que executam uma seacuterie de accedilotildeesassim que um outro evento esperado acontece

37 CrowdsourcingO termo Crowdsourcing tem origem nas palavras da liacutengua inglesa Crowd (multidatildeo) e

Outsourcing (terceirizaccedilatildeo) e eacute definido pelo dicionaacuterio Merriam Webster como A praacuteticade obtenccedilatildeo de serviccedilos ideias ou conteuacutedo solicitando contribuiccedilotildees de grandes grupos depessoas e especialmente da comunidade online [3] Esta praacutetica eacute utilizada para que sejapossiacutevel agrave comunidade contribuir com dados para algum programa ou serviccedilo como no apli-cativo Waze do qual a principal fonte de dados de tracircnsito acidentes e radares eacute obtida pormeio dos proacuteprios usuaacuterios

Capiacutetulo 4

Desenvolvimento do Projeto

Este capiacutetulo aborda o processo de desenvolvimento do projeto iniciado com o preen-chimento do diagrama Canvas e uma pesquisa de mercado direcionada ao usuaacuterio A partirdas informaccedilotildees coletadas foi possiacutevel projetar um aplicativo que atendesse as necessidadesexpostas pela pesquisa e selecionar as tecnologias necessaacuterias Tambeacutem eacute abordada a aplica-ccedilatildeo dos diferentes meacutetodos de caacutelculo da previsatildeo de tempo de espera que foram estudadose explicados no Capiacutetulo 2 Por fim satildeo expostas as diferentes versotildees do aplicativo duranteo processo e seus detalhes

41 Pesquisa de MercadoAntes de iniciar-se o desenvolvimento praacutetico algumas questotildees foram levantadas se

um aplicativo com as funcionalidades escolhidas seria de alguma forma uacutetil para o usuaacuterioe se sim qual metodologia deveria ser usada para que este produto fosse entregue o maiscompleto possiacutevel ateacute o final do ano Para responder a primeira pergunta desenvolveu-seum questionaacuterio

411 Pesquisa com o usuaacuterio

O questionaacuterio foi desenvolvido para avaliar a viabilidade do aplicativo e suas funciona-lidades e foi criado utilizando-se o Google Forms [9] Essa eacute uma ferramenta desenvolvidapelo Google que possibilita a criaccedilatildeo de formulaacuterios contendo diversos formatos de pergun-tas tanto dissertativas quanto de muacuteltipla escolha

Seguindo os princiacutepios de desenvolvimento de questionaacuterios [4] o conjunto de perguntasfoi mantido curto simples e de faacutecil entendimento Tambeacutem variou-se o tipo de questotildeesentre estruturadas (questotildees com respostas em forma de alternativas) e desestruturadas(questotildees com respostas em formato texto) seguindo esses mesmos princiacutepios para captarmelhor as informaccedilotildees dos entrevistados e evitar erros de entendimento

Com as respostas do questionaacuterio tinha-se o intuito de traccedilar um possiacutevel puacuteblico alvoconhecer seu modo de uso de dispositivos moacuteveis e validar a aplicabilidade de diferentesfuncionalidades pretendidas inicialmente sendo essas engajamento do usuaacuterio atraveacutes denotificaccedilotildees do sistema aceitaccedilatildeo de sugestotildees de locais alternativos avaliaccedilatildeo da existecircnciado problema que queremos resolver (se este aplicativo supre uma necessidade real do usuaacute-rio) e aceitaccedilatildeo do aplicativo

23

24 DESENVOLVIMENTO DO PROJETO 41

Para a divulgaccedilatildeo redes sociais como Facebook [5] e sistemas de mensagem instantacircneascomo WhatsApp foram usados e o envio de respostas foi restrito ateacute trecircs semanas apoacutes suaprimeira postagem Neste periacuteodo foram obtidas 210 respostas as quais ajudaram a definiros aspectos do sistema a ser desenvolvido

O questionaacuterio foi dividido em duas subseccedilotildees perfil do usuaacuterio e funcionalidade Comelas obteve-se os seguintes resultados

41 PESQUISA DE MERCADO 25

Questatildeo 1

Figura 41 Graacutefico pizza da distribuiccedilatildeo das respostas em relaccedilatildeo a idade dos pesquisados

As faixas de idade apresentadas estatildeo desbalanceadas por natildeo terem a mesma quantidadede anos em cada uma poreacutem essa divisatildeo foi pensada levando-se em conta a fluecircncia comtecnologia que cada idade possui Com o resultado verificou-se que do puacuteblico alcanccediladocom a pesquisa a maioria estaacute na faixa de 18 a 25 anos de idade assumida como parcelacom maior conhecimento tecnoloacutegico

Questatildeo 2

Figura 42 Graacutefico pizza da distribuiccedilatildeo das respostas em relaccedilatildeo ao sistema operacional

Esta questatildeo foi pensada para medir a porcentagem de cada sistema operacional pre-sente nos celulares do puacuteblico Com ela descobriu-se que 639 das pessoas dentro desse

26 DESENVOLVIMENTO DO PROJETO 41

grupo possuem o sistema Android enquanto 234 possuem iOS e 38 Windows phoneEssa pergunta foi incluiacuteda para um melhor direcionamento do desenvolvimento do aplicativo

Uma questatildeo levantada ao aplicar esse questionaacuterio foi a dificuldade que algumas pessoasencontraram para identificar a versatildeo do proacuteprio aparelho Poreacutem para manter a consistecircnciadas respostas decidiu-se natildeo mudar nada nesta questatildeo para remediar isso

Questatildeo 3

Figura 43 Graacutefico em barras da distribuiccedilatildeo de frequecircncias mensais de cada local analisado

41 PESQUISA DE MERCADO 27

Questatildeo 4

Figura 44 Graacutefico em pizza da distribuiccedilatildeo de interesse do usuaacuterio no tempo de espera de cadalocal

A princiacutepio viu-se muitas possiacuteveis aplicaccedilotildees para a previsatildeo de tempo de espera Paraentender qual seria a prioridade do puacuteblico as questotildees acima foram incluiacutedas A primeiraverificou a frequecircncia de visitas em alguns locais e a segunda serviu para analisar qualestabelecimento despertava mais interesse nos entrevistados quanto ao quesito fila Nos doiscasos restaurantes se destacaram com o maior interesse

Questatildeo 5

Figura 45 Graacutefico em barras da distribuiccedilatildeo de interesse do usuaacuterio por cada item avaliado

Para acompanhar o dado de espera e fornecer mais informaccedilotildees relevantes ao usuaacuteriosem potencial perguntou-se quais outras informaccedilotildees eles acham interessante saber sobre umdeterminado estabelecimento Com isso descobriu-se que a faixa de preccedilo o trajeto ateacute olocal e o cardaacutepio seriam dados importantes de se obter juntamente com o tempo de espera

28 DESENVOLVIMENTO DO PROJETO 41

Questatildeo 6O que vocecirc costuma fazer para evitar filasNeste ponto testou-se se a soluccedilatildeo proposta atraveacutes do aplicativo resolveria o problema dousuaacuterio de uma forma melhor do que a soluccedilatildeo atualmente utilizada Para isso foi perguntadoo que as pessoas fazem para evitar filas e as principais respostas foram

∙ Evitar horaacuterios de pico

∙ Chegar cedo

∙ Ir em outro lugar caso uma fila seja encontrada

∙ Tentar realizar reservas antecipadamente

∙ Se distrair com livroscelular

Notou-se que as soluccedilotildees utilizadas atualmente natildeo suprem as necessidades dos entre-vistados pois mesmo em horaacuterios natildeo convencionais pode-se encontrar filas ou quandodecide-se esperar na fila muito tempo eacute perdido Concluiu-se que a soluccedilatildeo proposta a par-tir do aplicativo resolve de forma mais abrangente o problema pois ajuda o usuaacuterio a evitarhoraacuterios de pico inesperados

Questatildeo 7

Figura 46 Graacutefico em pizza da distribuiccedilatildeo do meio de transporte utilizado pelos usuaacuterios

Essa questatildeo foi formulada com o objetivo de verificar quais meios de transporte seriamincluiacutedos com previsatildeo de tempo de trajeto no aplicativo Foi verificado que a maioria dosentrevistados utilizam transporte puacuteblico seguido por carro

41 PESQUISA DE MERCADO 29

Questatildeo 8

Figura 47 Graacutefico em pizza da distribuiccedilatildeo do interesse do usuaacuterio pela informaccedilatildeo fornecida

Questatildeo 9

Figura 48 Graacutefico em pizza da distribuiccedilatildeo de quantidade de quilocircmetros que o usuaacuterio sedeslocaria para ir a um local com menos fila

Com essas questotildees foi verificado que algo importante para o usuaacuterio eacute saber de outrosestabelecimentos que possam oferecer tempos de espera menores nas redondezas de onde ousuaacuterio se encontra que eacute uma das funcionalidades que desejaacutevamos utilizar no sistema

30 DESENVOLVIMENTO DO PROJETO 41

Questatildeo 10

Figura 49 Graacutefico em barras da distribuiccedilatildeo de sentimento do usuaacuterio em relaccedilatildeo a notificaccedilatildeode aplicativos

Questatildeo 11

Figura 410 Graacutefico em pizza da distribuiccedilatildeo de opiniatildeo do usuaacuterio sobre desabilitar notificaccedilotildeesem celular

42 PESQUISA DE MERCADO 31

Questatildeo 12

Figura 411 Graacutefico em pizza da distribuiccedilatildeo de opiniatildeo do usuaacuterio sobre habilitar GPS emcelular

A ideia inicial era poder usar o GPS para verificar a localizaccedilatildeo do usuaacuterio e enviarnotificaccedilotildees quando este estivesse parado nas proximidades de algum dos estabelecimentoscadastrados Para que essa funcionalidade possa existir eacute necessaacuterio que o aplicativo tenhaacesso agrave localizaccedilatildeo precisa da pessoa atraveacutes do GPS ou internet ateacute mesmo quando natildeoestiver aberto Aleacutem disso tambeacutem eacute necessaacuterio que as notificaccedilotildees estejam habilitadas parafinalizar esta interaccedilatildeo Entatildeo as perguntas 10 11 e 12 foram incluiacutedas no questionaacuterio Ob-servando as respostas foi possiacutevel verificar que 295 das pessoas que responderam deixamambas as funcionalidades habilitadas (GPS e notificaccedilotildees) Com isso pudemos prosseguircom essa ideia e tambeacutem pensar em possiacuteveis alternativas de interaccedilatildeo e engajamento como usuaacuterio

Por conta dessa pesquisa ter sido compartilhada atraveacutes das contas das redes sociais ecomunicadores dos componentes deste grupo sabe-se que este pode apresentar um resultadoviesado mas que mesmo assim natildeo deve ser desconsiderado e que muito ajudou a sanar asduacutevidas iniciaisComo resultado traccedilamos o perfil do entrevistado

∙ Faixa etaacuteria predominante entre 18 e 30 anos

∙ Possui sistema operacional Android (versotildees 4 5 e 6)

∙ Vai a restaurantes com certa frequecircncia mensal resultando em interesses sobre infor-maccedilotildees relacionadas a esse estabelecimento

∙ Costuma chegar cedo ou evitar os horaacuterios de pico para evitar filas nos locais

∙ Carro e transporte coletivo satildeo os principais meios de transporte

∙ Se deslocaria para um estabelecimento semelhante que possui menos fila contanto queeste fique num raio de 2km de distacircncia

32 DESENVOLVIMENTO DO PROJETO 43

42 Projeto do AplicativoO grupo comeccedilou o projeto com o preenchimento do diagrama Canvas(figura 412) apre-

sentado na Seccedilatildeo 21 Desse modo foi adquirida uma ideia mais consistente e uma base paracomeccedilar a implementaccedilatildeo

Figura 412 Diagrama Canvas preenchido pelo grupo

Com o modelo de negoacutecios definido e com base no resultado da pesquisa com o usuaacuterioapresentada na seccedilatildeo seguinte foram aplicadas pequenas mudanccedilas no projeto para melhoradequar-se agraves necessidades e ao perfil do puacuteblico alvo

Para o desenvolvimento foi utilizado um meacutetodo aacutegil baseado no scrum com sprints de3 a 4 semanas devido agrave disponibilidade dos membros do grupo Os encontros natildeo eram diaacute-rios como recomendado para o meacutetodo scrum tambeacutem em razatildeo da disponibilidade Haviamstand ups (discussotildees raacutepidas no comeccedilo de cada encontro) e retrospectivas ao final de cadasprint A cada sprint eram selecionadas histoacuterias e tarefas para serem executadas e caso natildeofossem concluiacutedas ao final da iteraccedilatildeo eram inseridas ao backlog e feitas no sprint seguinte

43 Aplicaccedilatildeo dos meacutetodos de caacutelculo de espera

431 Aplicando a meacutedia por periacuteodo

Aplicando-se no trecho abaixo a teacutecnica desenvolvida na Seccedilatildeo 242 para uma queryrealizada no dia 19082016 no intervalo de 2040 - 2055 analisa-se a semana anterior quepossua tais intervalos Assim o saacutebado dia 06082016 seraacute selecionado

43 APLICACcedilAtildeO DOS MEacuteTODOS DE CAacuteLCULO DE ESPERA 33

Entrada Qtd Pessoas Notificado Espera

6816 2043 2 862016 2053 1606

6816 2044 2 862016 2055 674

6816 2048 2 862016 2056 528

6816 2048 2 862016 2057 520

6816 2051 2 862016 2107 1118

6816 2051 3 862016 2110 1305

6816 2052 2 862016 2110 1273

6816 2052 2 862016 2111 1179

6816 2053 2 862016 2112 1217

6816 2053 2 NULL 59

6816 2054 3 862016 2119 1541

6816 2055 2 862016 2117 1444

6816 2055 2 862016 2120 1570

6816 2055 2 862016 2122 1613

Tabela 41 Trecho do dia 06082016 entre os horaacuterios das 2043 agraves 2055 um intervalo de 12minutos retirado dos dados da empresa Get In

Com esses dados obteve-se a meacutedia de espera de 1080 segundos (18 minutos) a qualseria sugerida para o usuaacuterio com a busca e desvio padratildeo de 465144719 segundos (775 mi-nutos) Dentro desse intervalo tem-se como maacuteximo tempo de espera 1613 segundos (2688minutos) e como miacutenimo 59 segundos (1 minuto) Analisando-se os dados do dia 19082016no mesmo periacuteodo temos

34 DESENVOLVIMENTO DO PROJETO 43

Entrada Pessoas Notificado Espera Erro previsatildeo Erro p 2 pessoas

19816 2043 2 8192016 2051 544 -563 522

19816 2043 2 8192016 2052 605 -502 461

19816 2044 2 8192016 2056 723 -384 343

19816 2046 4 8192016 2119 1988 881 X

19816 2048 2 8192016 2102 919 188 147

19816 2051 2 8192016 2103 821 286 245

19816 2051 3 8192016 2108 1773 666 X

19816 2053 2 8192016 2110 1083 24 -17

19816 2053 2 8192016 2111 1105 2 -39

19816 2053 2 8192016 2112 1169 62 -103

19816 2055 2 8192016 2114 1447 340 -381

Tabela 42 Trecho do dia 19082016 entre os horaacuterios das 2043 agraves 2055um intervalo de 12minutos retirado dos dados da empresa Get In

Ou seja se um grupo chegasse dentro desse periacuteodo e a previsatildeo dada fosse a meacutediaobtida anteriormente o erro calculado pela diferenccedila entre o tempo sugerido e o real tempode espera estaria no intervalo de 15 minutos para menos ou 8 minutos para mais Sendoesse um valor aceitaacutevel

Um proacuteximo passo eacute a restriccedilatildeo dos registros a grupos com 2 integrantes Com tal restri-ccedilatildeo a previsatildeo de espera eacute de 1066 segundos (1776 minutos) Aplicando essa nova meacutedia aosregistros com 2 integrantes do dia 19082016 obteacutem-se um erro (Coluna 6 - erro previsatildeopara 2 pessoas) menor do que o anterior O intervalo do erro calculado neste caso seria de 522segundos (87 minutos) para mais e 381 segundos (635 minutos) para menos Este resultadoeacute ainda mais favoraacutevel mostrando que a inclusatildeo de mais filtros para o caacutelculo da previsatildeomelhorou o tempo previsto

432 Aplicando teoria das filas

A teoria das filas (Seccedilatildeo 242) eacute uma ferramenta muito completa que calcula muitos dadosuacuteteis para a previsatildeo de espera Contudo por conta da necessidade de informaccedilotildees sobreo tempo de atendimento a qual natildeo estaacute contida no banco utilizado esta teoria natildeo podeser aplicada neste caso Poreacutem esse dado pode ter um valor assumido para que a utilizaccedilatildeodessa teoria fosse possiacutevel entretanto a sua precisatildeo ficaria comprometida e imprevisiacutevel

433 Aplicando redes neurais

Para aplicar o que foi estudado na Seccedilatildeo 242 foi executado o software com o mecircs deAgosto como teste o mecircs de Setembro como treino e o limite do erro quadraacutetico como 001 eobteve-se a tabela presente no apecircndice B Na tabela podemos ver o tempo de fila esperadoou seja o tempo contido na tabela do mecircs de Setembro o tempo que o algoritmo deu comoresposta baseado no mecircs de Agosto e o erro entre eles respectivamente

44 DEFINICcedilAtildeO DA INTERFACE DO APLICATIVO 35

Figura 413 Software Multiple Back-Propagation com a configuraccedilatildeo escolhida para os dadosdisponiacuteveis

Mesmo o erro se mantendo em 0018 os dados obtidos possuem um erro padratildeo de 15minutos Se mais dados forem adicionados o criteacuterio de parada pode ser atingido e assimuma previsatildeo melhor pode ser alcanccedilada

434 Conclusatildeo sobre os meacutetodos estudados

Dentre todas as possibilidades estudadas visualizamos na meacutedia por periacuteodo a melhoropccedilatildeo assumindo os dados disponiacuteveis para teste Se mais paracircmetros fossem fornecidoscomo o tempo de atendimento a teoria das filas seria uma boa opccedilatildeo para fornecer a pre-visatildeo de espera E se mais dados estivessem disponiacuteveis as redes neurais conseguiriam umaaproximaccedilatildeo melhor e assim seria uma boa opccedilatildeo tambeacutem

44 Definiccedilatildeo da Interface do aplicativoComo um primeiro protoacutetipo foi desenvolvida uma interface simples que tinha como tela

de iniacutecio um mapa com um campo para buscas na parte superior

36 DESENVOLVIMENTO DO PROJETO 44

Figura 414 Fluxo de telas do primeiro protoacutetipo

Ao efetuar uma busca por algum estabelecimento uma tela mostrando o tempo de esperaaproximado da fila no local era exibida junto com bototildees que permitiam selecionar o meiode transporte visualizar outras opccedilotildees ou dar iniacutecio a rota ateacute o local desejado Tambeacutemhavia uma notificaccedilatildeo para quando a pessoa estivesse parada proacutexima a um restaurantecadastrado que direcionaria o usuaacuterio a uma tela com um cronocircmetro do tempo de esperana fila

Para testar essa visualizaccedilatildeo escolhemos algumas pessoas e realizamos um teste deusabilidade[22] este teste eacute feito da seguinte forma

44 DEFINICcedilAtildeO DA INTERFACE DO APLICATIVO 37

Uma contextualizaccedilatildeo eacute feita para o voluntaacuterio e entatildeo uma tarefa eacute passada para sercompletada Os integrantes do grupo observam dificuldades enfrentadas pelo entrevistado etomam notas Esse teste eacute repetido algumas vezes e seu resultado eacute coletado para avaliaccedilatildeoe modificaccedilatildeo das funcionalidades

Figura 415 Tela de detalhes de um restaurante(segunda versatildeo)

Notou-se que algumas funcionalidadespareceram confusas e natildeo intuitivas porexemplo natildeo ficou claro se o tempo mos-trado era de trajeto ou de espera na filanem qual era o meio de transporte utili-zado

Logo esse protoacutetipo foi reformuladocom o intuito de melhorar a experi-ecircncia do usuaacuterio com o nosso aplica-tivo

Foram colocados aleacutem do tempo deespera da fila o tempo que o usuaacuteriolevaria para chegar ateacute o local selecio-nado (conforme o tipo de transporte es-colhido) e a quantidade estimada de pes-soas na fila O tempo total (espera so-mado ao tempo de deslocamento) ga-nhou destaque entre as informaccedilotildees doestabelecimento e o botatildeo que direcionao usuaacuterio ao trajeto ficou mais especiacute-fico

Tambeacutem cogitou-se a possibilidade deadicionar login e um perfil de usuaacuteriojunto com uma lista de restaurantes favo-ritos

O fluxo das telas deste novo protoacutetipo ficou como mostra o esquema a seguir

38 DESENVOLVIMENTO DO PROJETO 44

Figura 416 Fluxo de telas do segundo protoacutetipo

44 DEFINICcedilAtildeO DA INTERFACE DO APLICATIVO 39

Figura 417 Tela de detalhes de um restaurante(terceira versatildeo)

Apoacutes outras avaliaccedilotildees mais algumaspequenas alteraccedilotildees foram realizadas nainterface Foi decidido que seria inviaacute-vel estimar o nuacutemero de pessoas nafila entatildeo essa funcionalidade foi remo-vida

Notificaccedilotildees foram adicionadas paraquando o usuaacuterio estiver parado na aacutereado restaurante para que ele possa con-tribuir com informaccedilotildees sobre a fila quepegou aleacutem de um botatildeo de contri-buiccedilatildeo ter sido inserido na tela ini-cial

40 DESENVOLVIMENTO DO PROJETO 45

O fluxo de telas do aplicativo atual ficou da seguinte forma

Figura 418 Fluxo de telas do terceiro protoacutetipo

46 EXPLICACcedilAtildeO DAS FUNCIONALIDADES 41

45 Explicaccedilatildeo das funcionalidadesEsta seccedilatildeo explica as funcionalidades do produto utilizando a figura 418

A tela inicial (3) exibe uma lista de restaurantes incluindo seus respectivos tempos detrajeto e tempo de espera na fila Ao clicar no botatildeo ldquo+rdquo uma caixa de diaacutelogo eacute aberta(4) onde eacute possiacutevel adicionar o tempo que o usuaacuterio esperou na fila Primeiro eacute escolhido orestaurante depois a data e hora que a pessoa chegou na fila e por fim o tempo de esperaem minutos Ao tocar em ldquoEnviar Feedback rdquo os dados satildeo incluiacutedos no banco de dados eatualizados para os outros usuaacuterios Assim eacute apicado o conceito de Crowdsourcing no apli-cativo

Ao tocar em um item da lista de restaurantes seraacute aberta a tela de detalhes de um res-taurante (5) na qual eacute possiacutevel ver com mais clareza os tempos de trajeto e espera o tempototal o endereccedilo do estabelecimento e um pequeno mapa centrado no local Pressionandoo botatildeo ldquoDireccedilotildeesrdquo o usuaacuterio seraacute redirecionado ao aplicativo de mapas de sua preferecircnciano caso do exemplo (8) o Google Maps jaacute traccedilando a rota da localizaccedilatildeo do usuaacuterio para oestabelecimento em questatildeo

Novamente na tela inicial tocando no iacutecone de lupa eacute possiacutevel realizar uma busca digi-tando o nome do estabelecimento na caixa de texto a qual exibe sugestotildees dependendo doque foi digitado Ao clicar em um dos resultados da busca o usuaacuterio eacute novamente direcionadopara a tela de detalhes do restaurante (5)

Tambeacutem eacute possiacutevel tocar no iacutecone de mapa na tela inicial onde seraacute mostrado um mapacentrado na localizaccedilatildeo do usuaacuterio

Ao ficar parado por um tempo em um mesmo local proacuteximo a um estabelecimentocadastrado o usuaacuterio eacute perguntado em uma notificaccedilatildeo quanto tempo ele permaneceu nafila Ao tocar na notificaccedilatildeo a caixa de diaacutelogo para feedback do usuaacuterio seraacute aberta (4) jaacutecom o restaurante preenchido e apoacutes o feedback a janela seraacute fechada e os dados enviadosao banco de dados

46 Implementaccedilatildeo do banco de dadosO banco de dados do aplicativo foi modelado e populado em forma de aacutervore (Fi-

gura 419) de forma a facilitar o acesso aos dados necessaacuterios ao aplicativo No primeironiacutevel estatildeo os ids dos restaurantes Cada id de restaurante guarda a localizaccedilatildeo (latitudelongitude) do restaurante o nome o endereccedilo e um objeto fila O objeto fila guarda todos osdias da semana (domingo a saacutebado) e cada dia da semana possui 24 campos um para cadahora do dia Cada hora possui o tempo meacutedio de espera da fila naquela hora e um peso paraesse tempo O peso eacute um valor que aumenta de acordo com o nuacutemero de feedbacks dadospara que o novo valor do tempo meacutedio seja calculado de forma consistente

Modelamos o banco de dados de uma forma que respeitasse uma hierarquia de dados

42 DESENVOLVIMENTO DO PROJETO 46

Figura 419 Aacutervore que ilustra a organizaccedilatildeo de um restaurante no banco de dados

Com o banco de dados jaacute populado o aplicativo faz consultas e atualizaccedilotildees de dadosConsultas satildeo feitas ao criar a tela de listagem de restaurantes e de detalhes de um restau-rante consultado As atualizaccedilotildees satildeo feitas quando o usuaacuterio manda o feedback de tempo deespera em um estabelecimento em determinado horaacuterio o aplicativo calcula a nova meacutedia eatualiza o campo do respectivo horaacuterio

Capiacutetulo 5

Conclusatildeo

Ao longo dos capiacutetulos deste trabalho pocircde-se acompanhar todo o processo de criaccedilatildeo edesenvolvimento do aplicativo que apoacutes finalizado foi batizado com o nome Queue

Comeccedilando com um problema para o qual o grupo almejava oferecer uma soluccedilatildeoacabou-se por adentrar-se um pouco no campo da Estatiacutestica e estudar diversas metodo-logias que poderiam ser uacuteteis para fornecer um caacutelculo de previsatildeo de espera meacutedia porperiacuteodo aplicaccedilatildeo da teoria das filas e utilizaccedilatildeo de redes neurais

Atraveacutes de uma parceria com a empresa GetIn obteve-se acesso a uma grande quantidadede dados e foi possiacutevel utilizaacute-los em anaacutelises feitas nas metodologias escolhidas conseguindoassim resultados relevantes Por meio destes foi feita a escolha de um dos meacutetodos para ocaacutelculo da previsatildeo de filas a meacutedia por periacuteodo

Aleacutem desses estudos ao longo do ano o grupo aprendeu a desenvolver para a plata-forma Android sobre a qual nenhum dos integrantes tinha conhecimento preacutevio Tambeacutemfoi possiacutevel aprender e utilizar a metodologia aacutegil com Scrum para guiar o processo de de-senvolvimento

Ao fim do ciclo de desenvolvimento conseguiu-se entregar um aplicativo em funciona-mento que fornece a previsatildeo de espera no instante da consulta de estabelecimentos cadas-trados no banco de dados armazenado na nuvem

Na versatildeo atual do aplicativo natildeo foi implementado um sistema para o cadastro de novosestabelecimentos Isso soacute eacute possiacutevel atraveacutes da inserccedilatildeo direta no banco de dados atraveacutes dainterface fornecida pelo console do Firebase Atualmente estatildeo cadastrados 5 restaurantesos quais foram visitados durante o desenvolvimento do projeto Para que o cadastro deestabelecimentos escale seria necessaacuterio a implementaccedilatildeo de uma funcionalidade que permitaao usuaacuterio adicionar novos estabelecimentos a partir de locais disponiacuteveis na API de locaisda Google

43

45

46 APEcircNDICE A

Apecircndice A

Dados coletados

Figura A1 Dados de tempo de espera para grupos de tamanhos variados para cada horaacuterio e emcada dia da semana obtidos em entrevista em restaurantes Outback Steakhouse Shopping Uniatildeo nomecircs de outubro

Referecircncias Bibliograacuteficas

[1] Backpropagation httpmbpsourceforgenet Accesso em Janeiro 2017 14

[2] Bitbucket httpsbitbucketorgproduct Accesso em Dezembro 2016 19

[3] Crowdsourcing httpswwwmerriam-webstercomdictionarycrowdsourcing Ac-cesso em Novembro 2016 21

[4] Designing a survey httpwwwsciencebuddiesorgscience-fair-projectsproject_ideasSoc_surveyshtml Accesso em Outubro 2016 4 23

[5] Facebook httpswwwfacebookcom Accesso em Novembro 2016 24

[6] Firebase httpsfirebasegooglecom Accesso em Agosto 2016 20

[7] Getin app httpswwwgetinappcombrhomesao-paulo Accesso em Novembro2016 9

[8] Git 11 primeiros passos - sobre controle de versatildeo httpsgit-scmcombookpt-brv1Primeiros-passos-Sobre-Controle-de-Vers Accesso em Novembro 2016 19

[9] Google forms httpsdocsgooglecomforms Accesso em Novembro 2016 23

[10] Guia definitivo do project model canvas Project Builder 3

[11] Jsonorg introducing json httpwwwjsonorg Accesso em Novembro 2016 17

[12] Manifesto para desenvolvimento Aacutegil de software httpagilemanifestoorgisoptbrmanifestohtml Accesso em Novembro 2016 5

[13] Nosql httpsenwikipediaorgwikiNoSQL Accesso em Novembro 2016 20

[14] Outback steakhouse httpswwwoutbackcombrhome Accesso em Novembro 20169

[15] Restful api development with lumen microframework httpsbelitsoftcomlaravel-development-servicesapi-development Accesso em Novembro 2016 17

[16] Scrum httpswwwatlassiancomagilescrum Accesso em Novembro 2016 5

[17] Smartphone os market share 2016 q2 httpwwwidccomprodservsmartphone-os-market-sharejsp Accesso em Novembro 2016 15

[18] Smartphone os sales market share kantar worldpanel comtech httpwwwkantarworldpanelcomsmartphone-os-market-share Accesso em Novembro 2016 15

[19] Sourcetree httpswwwsourcetreeappcom Accesso em Dezembro 2016 19

47

48 REFEREcircNCIAS BIBLIOGRAacuteFICAS

[20] Sql httpsptkhanacademyorgcomputingcomputer-programmingsql Accesso emDezembro 2016 20

[21] Trello httpstrellocom Accesso em Novembro 2016 6

[22] Usability test httpsenwikipediaorgwikiUsability_testing Accesso em Novembro2016 36

[23] Versionone 2012 agile dev survey httpswwwversiononecompdf7th-Annual-State-of-Agile-Development-Surveypdf Accesso em Novembro 2016 5

[24] Waze httpswwwwazecom Accesso em Novembro 2016 1

[25] What is an open source httpsopensourcecomresourceswhat-open-source Accessoem Novembro 2016 15

[26] Xml tutorial httpwwww3schoolscomxml Accesso em Novembro 2016 17

[27] Paulo F Cabral dos Anjos Jr Aron Ifanger Maciel Christopher Silva de Paacutedua Com-posiccedilatildeo de carteiras de accedilotildees utilizando modelo de redes neurais artificiais e modelo derisco e retorno de Markowitz 2012 14

[28] Google Distance matrix api documentation httpsdevelopersgooglecommapsdocumentationdistance-matrix Accesso em Novembro 2016 17

[29] Alan Klement Designing features using job stories httpsblogintercomcomusing-job-stories-design-features-ui-ux Accesso em Novembro 2016 6

[30] Azmat Nafees Queuing theory and its application analysis of the sales checkout opera-tion in ica supermarket httpwwwstatisticsduseessaysD07ENafeespdf Accessoem Novembro 2016 12

[31] Eric Ries A Startup Enxuta Lua de papel primeira ediccedilatildeo edition 2012 3

  • Introduccedilatildeo
    • Motivaccedilatildeo
    • Trabalho Proposto
    • Estrutura da monografia
      • Estudos Preliminares
        • Desenvolvimento de Startups
          • Desenvolvimento de Questionaacuterios
            • Metodologia Aacutegil
            • Jobs to be done
            • Caacutelculo da previsatildeo do tempo de espera na fila
              • Descriccedilatildeo do problema
              • Meacutetodos de caacutelculo da espera
                  • Tecnologias utilizadas
                    • O sistema Android
                      • Organizaccedilatildeo de uma aplicaccedilatildeo Android
                        • JSON
                        • Google APIs
                        • Localizaccedilatildeo do Usuaacuterio
                        • Controle de Versatildeo
                        • Banco de dados
                          • Firebase
                            • Crowdsourcing
                              • Desenvolvimento do Projeto
                                • Pesquisa de Mercado
                                  • Pesquisa com o usuaacuterio
                                    • Projeto do Aplicativo
                                    • Aplicaccedilatildeo dos meacutetodos de caacutelculo de espera
                                      • Aplicando a meacutedia por periacuteodo
                                      • Aplicando teoria das filas
                                      • Aplicando redes neurais
                                      • Conclusatildeo sobre os meacutetodos estudados
                                        • Definiccedilatildeo da Interface do aplicativo
                                        • Explicaccedilatildeo das funcionalidades
                                        • Implementaccedilatildeo do banco de dados
                                          • Conclusatildeo
                                          • Dados coletados
                                          • Referecircncias Bibliograacuteficas

Desenvolvimento de um aplicativo Androidbaseado no estudo do comportamento de filas e com

aplicaccedilatildeo de crowdsourcing

Monografia final da disciplinaMAC0499 ndash Trabalho de Formatura Supervisionado

Supervisor Profa Dra Ana Cristina Vieira de Melo

Satildeo Paulo2016

Agradecimentos

Gostariacuteamos de agradecer primeiramente a Deus pela finalizaccedilatildeo de mais uma etapatatildeo almejada de nossas vidas Tambeacutem gostariacuteamos de agradecer a pessoas muito impor-tantes no desenvolvimento deste projeto Kathleen e Shodji pelo aconselhamento no designdo produto Paulo pelas opiniotildees sobre o caacutelculo do tempo de espera e nossos amigos dagraduaccedilatildeo que muito nos apoiaram tanto nas mateacuterias durante o curso como nessa retafinal Natildeo podemos nos esquecer da nossa orientadora Ana Cristina que apoiou e acreditouna nossa ideia de projeto desde nossa primeira conversa E tambeacutem o professor Magalhatildeesque se disponibilizou para sanarmos nossas duacutevidas sobre essa mateacuteria tatildeo complexa cha-mada Estatiacutestica Finalmente obrigado pais e matildees pelo apoio e acolhimento nos momentosde estudo e desenvolvimento Agrave todos nosso muito obrigado nada disso seria possiacutevel semvocecircs

i

Resumo

Este projeto possui como objetivo principal estudar e aplicar o processo de desenvolvi-mento de software de um aplicativo para a plataforma Android que fornece ao usuaacuterio aprevisatildeo de tempo de espera para restaurantes cadastrados no banco de dados

Para auxiliar no desenvolvimento foram tambeacutem estudadas modelagens para previsatildeode filas de restaurantes para que o caacutelculo de previsatildeo da espera fosse feito de forma maisprecisa O caacutelculo se utiliza dos seguintes dados aqueles obtidos atraveacutes de pesquisas nosproacuteprios restaurantes e os extraiacutedos de informaccedilotildees enviadas por usuaacuterios De posse dessesdados o tempo de espera fornecido para aquele instante seraacute cada vez mais preciso agrave medidaque aumentam os feedbacks dos usuaacuterios

Para o desenvolvimento deste aplicativo algumas teacutecnicas de gerenciamento de projetoforam usadas com o intuito de fornecer um produto final satisfatoacuterio para o usuaacuterio

Palavras-chave filas restaurantes desenvolvimento Android previsatildeo de espera

iii

Abstract

Our goal with this project is to study and apply the process of software development of anAndroid application that provides the user with the waiting time prediction for restaurantsregistered in our database

To assist the development some modeling methods to estimate restaurant queues werestudied as well so that the calculation were accomplished with more precision

The waiting time prediction calculation is done using the following data data obtainedthrough research on the restaurants and data extracted from information sent by usersThus the waiting time provided for that moment will be increasingly more accurate as thefeedback from the users gets more frequent

In order to develop this application some project management techniques were used withthe interest of providing a satisfactory final product for the user

Keywords queues restaurants Android development waiting time estimation

v

Sumaacuterio

1 Introduccedilatildeo 111 Motivaccedilatildeo 112 Trabalho Proposto 113 Estrutura da monografia 2

2 Estudos Preliminares 321 Desenvolvimento de Startups 3

211 Desenvolvimento de Questionaacuterios 422 Metodologia Aacutegil 523 Jobs to be done 624 Caacutelculo da previsatildeo do tempo de espera na fila 8

241 Descriccedilatildeo do problema 8242 Meacutetodos de caacutelculo da espera 9

3 Tecnologias utilizadas 1531 O sistema Android 15

311 Organizaccedilatildeo de uma aplicaccedilatildeo Android 1632 JSON 1733 Google APIs 1734 Localizaccedilatildeo do Usuaacuterio 1835 Controle de Versatildeo 1936 Banco de dados 19

361 Firebase 2037 Crowdsourcing 21

4 Desenvolvimento do Projeto 2341 Pesquisa de Mercado 23

411 Pesquisa com o usuaacuterio 2342 Projeto do Aplicativo 3243 Aplicaccedilatildeo dos meacutetodos de caacutelculo de espera 32

431 Aplicando a meacutedia por periacuteodo 32432 Aplicando teoria das filas 34

vii

viii SUMAacuteRIO

433 Aplicando redes neurais 34434 Conclusatildeo sobre os meacutetodos estudados 35

44 Definiccedilatildeo da Interface do aplicativo 3545 Explicaccedilatildeo das funcionalidades 4146 Implementaccedilatildeo do banco de dados 41

5 Conclusatildeo 43

A Dados coletados 45

Referecircncias Bibliograacuteficas 47

Capiacutetulo 1

Introduccedilatildeo

Este capiacutetulo introduz o problema abordado a soluccedilatildeo proposta os objetivos do projetoe apresenta a estrutura da monografia

11 MotivaccedilatildeoEnfrentamos filas para realizar diversas atividades ao longo do dia Nosso tempo eacute gasto

esperando desde alguns minutos para pedir o almoccedilo ateacute horas para assistir um determinadoshow Ao todo muitas horas de nossas vidas satildeo desperdiccediladas nessas esperas

Muitas vezes somos surpreendidos por filas interminaacuteveis ou entatildeo pela ausecircncia delascriando a impressatildeo de que estas satildeo totalmente imprevisiacuteveis Isso acaba gerando a difi-culdade de programar com precisatildeo outras atividades pois natildeo sabemos ao certo quantotempo iremos gastar em esperas ao longo do dia Deixamos muitos deveres ou ateacute mesmomomentos de lazer de lado por causa disso e se tiveacutessemos como prever esse tempo gastopoderiacuteamos otimizar nosso dia

Esse e outros problemas podem ser minimizados agrave medida que o acesso agrave informaccedilatildeoseja histoacuterica ou em tempo real eacute facilitado Uma forma de fornecer essa informaccedilatildeo aousuaacuterio eacute atraveacutes da tecnologia Um exemplo disso eacute o aplicativo de navegaccedilatildeo Waze [24]que disponibiliza dados do tracircnsito em tempo real ajudando na locomoccedilatildeo diaacuteria Isso eacutepossiacutevel graccedilas aos avanccedilos tecnoloacutegicos e a maior acessibilidade aos dispositivos moacuteveisconectados agrave internet por exemplo

12 Trabalho PropostoAo vislumbrarmos esse problema tanto na vida dos outros como nas nossas e motivados

a utilizar nossos conhecimentos adquiridos ao longo do curso de Ciecircncia da Computaccedilatildeodecidimos desenvolver um aplicativo para diminuir esse desconforto causado pelas filas Essasoluccedilatildeo eacute um sistema

∙ desenvolvido na plataforma Android

∙ baseado em uma modelagem de sistema de filas

que tem como objetivo prever o tempo de espera dos usuaacuterios em filas e assim auxiliaacute-losnas suas decisotildees

1

2 INTRODUCcedilAtildeO 13

Para desenvolver uma soluccedilatildeo para o problema e dada a limitaccedilatildeo de tempo para o de-senvolvimento decidimos implementar a soluccedilatildeo apenas para as filas de restaurantes Estaescolha foi feita por serem locais muito frequentados e assim gerarem mais dados em menostempo e pela diversidade de tamanho das esperas gerando o interesse no estudo de suamodelagem

Implementou-se um aplicativo no qual o usuaacuterio pode fazer uma consulta sobre os res-taurantes cadastrados no banco de dados e ter acesso ao tempo de deslocamento somado aotempo de espera ateacute seu atendimento no estabelecimento Aleacutem disso ele tem a possibilidadede traccedilar uma rota ateacute o local e enviar um feedback sobre quanto tempo foi gasto na filapara aprimorar o calculo do tempo de espera

13 Estrutura da monografiaPara que fosse possiacutevel o desenvolvimento de um aplicativo para previsatildeo de tempo de es-

pera foi necessaacuterio estudar o processo de criaccedilatildeo de startups um processo de desenvolvimentode software tecnologias para programaccedilatildeo em Android bem como algumas modelagens es-tatiacutesticas de previsatildeo de tempo de espera A monografia foi estruturada de acordo comessas informaccedilotildees de modo que o leitor possa ter uma leitura progressiva dividida em trecircsprincipais partes

∙ Estudos preliminares Essa seccedilatildeo apresenta estudos sobre o que eacute necessaacuterio para odesenvolvimento de Startups a definiccedilatildeo da metodologia de desenvolvimento utilizadapelo grupo e o estudo da aplicaccedilatildeo de trecircs diferentes modelagens estatiacutesticas feitaspara analisar os dados iniciais fornecendo um modo de calcular o tempo de espera emum restaurante em um dado instante

∙ Tecnologias utilizadas Onde satildeo apresentadas as tecnologias e ferramentas utiliza-das para auxiliar no desenvolvimento do aplicativo

∙ Desenvolvimento do projeto Essa parte apresenta a aplicaccedilatildeo dos meacutetodos decaacutelculo de espera vistos na seccedilatildeo anterior e o processo de desenvolvimento do aplicativoem si

Capiacutetulo 2

Estudos Preliminares

21 Desenvolvimento de StartupsO desenvolvimento do projeto foi baseado nos meacutetodos utilizados em Startups O grupo

seguiu os princiacutepios da Startup Enxuta [31] no qual um produto miacutenimo deve ser criado eentatildeo incrementado atraveacutes do estudo das necessidades do usuaacuterio A partir de uma pesquisacom o puacuteblico alvo a ideia inicial eacute lapidada e um produto com o miacutenimo de funcionalidadespossiacutevel eacute desenvolvido para entatildeo retornar aos usuaacuterios que iratildeo validaacute-lo Este processo eacuterepetido ateacute que um produto final seja completamente desenvolvido independente da ideiaque se tinha no iniacutecio O processo tem como foco economizar recursos e suprir a necessidadedo usuaacuterio de forma raacutepida e eficiente

De acordo com o livro A Startup Enxuta[31] esta metodologia prioriza o desenvolvi-mento iterativo com a participaccedilatildeo do cliente a cada etapa ao inveacutes de procuraacute-lo somentena entrega do produto final Nessa metodologia temos alguns princiacutepios que guiam o desen-volvimento de projetos

1 Mapeamento do negoacutecio atraveacutes do diagrama conhecido como ldquocanvas do modelo denegoacuteciosrdquo que nos mostra resumidamente uma visatildeo geral do projeto

2 Pesquisas feitas com os usuaacuterios no mercado para saber suas opiniotildees sobre o negoacutecioe posteriores mudanccedilas ou ajustes no projeto com base nos resultados

3 Desenvolvimento do produto utilizando algum meacutetodo aacutegil

Inicialmente deve-se traccedilar os primeiros objetivos do projeto utilizando o diagrama Can-vas [10] (figura 21) Esse diagrama eacute utilizado para auxiliar empresas a ter uma visatildeo macrodo projeto fornecendo uma forma de visualizar suas dependecircncias e permitindo planejartraccedilar e gerenciar um plano de desenvolvimento Ele possui perguntas que devem ser res-pondidas em seus quadros e no decorrer desse processo o projeto vai sendo adaptado deacordo com as limitaccedilotildees impedimentos e novas ideias que vatildeo surgindo

3

4 ESTUDOS PRELIMINARES 21

Figura 21 Modelo do Diagrama Canvas

Com o modelo de negoacutecios definido o proacuteximo passo eacute a realizaccedilatildeo de uma pesquisa como puacuteblico para validaacute-lo Essa fase do desenvolvimento pode ser refeita quantas vezes foremnecessaacuterias reescrevendo o Canvas conforme a interpretaccedilatildeo da necessidade do usuaacuterio

211 Desenvolvimento de Questionaacuterios

De acordo com o manual Designing a Survey [4] um questionaacuterio eacute criado para obterinformaccedilotildees para conduzir o desenvolvimento de um projeto de acordo com as preferecircnciasdo puacuteblico alvo Ele deve ser curto e conciso e deve capturar somente informaccedilotildees que sejamrelevantes para a pesquisa

Os passos para o desenvolvimento de um bom questionaacuterio satildeo

∙ Definir os dados necessaacuterios

∙ Desenvolver as questotildees

∙ Remover qualquer questatildeo que natildeo captura os dados definidos previamente

As questotildees podem ser moldadas de trecircs maneiras

∙ Estruturadas Questotildees que possuem resposta fixa Exemplo

Vocecirc usa transporte puacuteblico

( )Sim

( )Natildeo

22 METODOLOGIA AacuteGIL 5

∙ Natildeo Estruturadas Questotildees de resposta aberta Exemplo

O que vocecirc costuma fazer para evitar filas

∙ Parcialmente Estruturadas Questotildees mistas Exemplo

Qual meio de transporte vocecirc usa

( )Carro

( )Moto

( )Outros______

22 Metodologia AacutegilA metodologia aacutegil tem sido adotada pelas empresas hoje em dia por conta dos melhores

resultados obtidos em relaccedilatildeo agraves metodologias tradicionais[23] Essa eacute caracterizada pelavalorizaccedilatildeo de

∙ ldquoIndiviacuteduos e interaccedilotildees mais que processos e ferramentasrdquo

∙ ldquoSoftware em funcionamento mais que documentaccedilatildeo abrangenterdquo

∙ ldquoColaboraccedilatildeo com o cliente mais que negociaccedilatildeo de contratosrdquo

∙ ldquoResponder a mudanccedilas mais que seguir um planordquo [12]

Eacute uma metodologia que envolve trabalho em equipe encontros regulares com o clientedesenvolvimento iterativo e com menos foco em planejamento estrito e ideias definitivasdiferente de metodologias mais tradicionais que satildeo mais focadas em projetos bem docu-mentados com pouca possibilidade de mudanccedila ao final do processo Decidiu-se por utilizara metodologia aacutegil neste projeto pois natildeo haviam ideias completamente definidas inicial-mente e para o grupo a opiniatildeo do puacuteblico alvo sobre o produto era fundamental em cadaiteraccedilatildeo do processo podendo haver mudanccedilas inesperadas dependendo do feedback recebido

Dentre as opccedilotildees de metodologias aacutegeis O meacutetodo Scrum[16] eacute um que eacute definido comoum gerenciador e um processo de controle que foca em construir um software que conheceas necessidades do negoacutecio devolvendo incrementalmente um software

Com o Scrum o software eacute desenvolvido em iteraccedilotildees de tamanho fixo chamadas deSprints que tem duraccedilatildeo de tipicamente duas a quatro semanas Em cada Sprint um nuacutemerofixo de histoacuterias (que se traduzem em tarefas) satildeo selecionadas pelo grupo para seremutilizadas na sprint(figura 22) Haacute tambeacutem um sistema de motivaccedilatildeo para o time como osMilestones que satildeo objetivos menores distribuiacutedos por toda a sprint ajudando na mediccedilatildeode desemprenho da equipe e graacuteficos Burndown que mostram o progresso de cada iteraccedilatildeopara que o time sinta o progresso no desenvolvimento

6 ESTUDOS PRELIMINARES 23

Figura 22 Dinacircmica do Scrum

Para controle das iteraccedilotildees foi utilizado o software Trello [21] que eacute um gerenciador detarefas de projeto (figura 23)

Figura 23 Interface do Trello - durante o processo de desenvolvimento

23 Jobs to be donePara implementar o aplicativo buscou-se uma metodologia para guiar esse processo desde

sua criaccedilatildeo ateacute sua validaccedilatildeo Duas metodologias conhecidas pelo grupo foram analisadas eestudadas Jobs To Be Done e Personas and Use Cases

Segundo Alan Klement[29] Personas satildeo clientes imaginaacuterios descritos pela idade sexoraccedila e haacutebitos semanais O uso delas natildeo eacute adequado para responder perguntas como ldquoPorqueo cliente quer saber o tamanho da filardquo pois quando a resposta eacute ldquoEle estaacute com pressa paracomerrdquo natildeo fica claro quais satildeo as reais necessidades do usuaacuterio Essa descriccedilatildeo tambeacutem natildeoeacute uacutetil no desenvolvimento de uma boa interface pois natildeo ajuda na hora de responder se umcerto botatildeo realmente deixa claro sua funcionalidade

23 JOBS TO BE DONE 7

Tambeacutem segundo Alan Klement Use Cases possuem 3 grandes problemas usam perso-nas casam implementaccedilotildees motivaccedilotildees e resultado e ignoram contexto situaccedilotildees e ansie-dades

Se uma funcionalidade definida por uma Use Case falhar seraacute difiacutecil identificar o pro-blema pois por casar informaccedilotildees diferentes surgiraacute a dificuldade de saber o que estaacute erradoa implementaccedilatildeo as suposiccedilotildees sobre as motivaccedilotildees ou os resultados

Observando-se esses fatos optou-se pelo uso da metodologia Jobs to Be Done pois haacuteuma mudanccedila na forma de fazer histoacuterias a fim de evitar os problemas observados em Per-sonas e Use Cases(Figura 24) Nesse modelo as Personas satildeo pessoas reais e as histoacuterias satildeoescritas com a seguinte divisatildeo situaccedilatildeo motivaccedilatildeo e resultados esperados

Nessa metodologia criamos histoacuterias descrevendo tarefas para que os usuaacuterios se colo-quem na situaccedilatildeo descrita Observando-os eacute possiacutevel saber se a tarefa foi realizada de formabem sucedida e caso contraacuterio identificar onde e o que estaacute causando a falha no instanteda realizaccedilatildeo dela

Figura 24 Diferenccedila entre estruturas de histoacuterias

8 ESTUDOS PRELIMINARES 24

Algumas das histoacuterias criadas para os testes de interface do grupo foram

∙ Quando eu estiver na tela de lista de restaurantes eu quero acessar a tela de detalhesdo restaurante que eu desejo saber o tempo de espera entatildeo eu posso ver com clarezaas informaccedilotildees e posso traccedilar uma rota para o estabelecimento

∙ Quando eu estiver na tela principal eu quero enviar meu feedback sobre o tempo deespera no estabelecimento que estou entatildeo eu posso ajudar outros usuaacuterios por meiodo aplicativo

24 Caacutelculo da previsatildeo do tempo de espera na filaAtraveacutes de pesquisas em busca de meacutetodos estatiacutesticos para se estudar o comportamento

das filas foram encontradas as trecircs metodologias descritas nesta seccedilatildeo Este capiacutetulo conteacutema explicitaccedilatildeo do problema estudado e suas possiacuteveis soluccedilotildees

241 Descriccedilatildeo do problema

Para que se chegasse a uma soluccedilatildeo apropriada o problema de espera em fila precisouser estudado Esse problema pode ser descrito da seguinte forma dado um restaurante aentrada nesse eacute atraveacutes de uma fila Essa fila tem seu tamanho redefinido agrave medida quenovos clientes chegam e saem dela A saiacuteda dos clientes pode ser devido a desistecircncia ou aacomodaccedilatildeo deles nas mesas A entrada eacute definida pela disponibilizaccedilatildeo de lugares livres agravemedida em que os grupos que estavam alocados terminam seu atendimento

Figura 25 Esquema simplificado do funcionamento do processo em um restaurante

A fila de espera eacute influenciada por dois fatores a taxa de chegada do cliente e a taxa deatendimento nas mesas

∙ chegada em restaurantes a chegada de clientes eacute definida por uma taxa O clienteneste caso representa um grupo com tamanho variaacutevel A distribuiccedilatildeo do tamanho dogrupo nas chegadas eacute variaacutevel

∙ O atendimento a alocaccedilatildeo do grupo eacute organizada pela recepccedilatildeo O meacutetodo utilizadopor eles natildeo eacute padronizado e muitas vezes eacute completamente subjetivo Por exemplose acontecer de um grupo grande e vaacuterios casais chegarem ao mesmo tempo e nesse

24 CAacuteLCULO DA PREVISAtildeO DO TEMPO DE ESPERA NA FILA 9

momento existir um espaccedilo no salatildeo que acomode o grupo (juntando as mesas) outodos os casais (com as mesas separadas) dependendo de quem estaacute responsaacutevel poralocaacute-los cada um receberaacute uma prioridade diferente e essa decisatildeo natildeo eacute padronizada

∙ A disposiccedilatildeo das mesas a disposiccedilatildeo e quantidade de mesas natildeo satildeo padronizadasentre restaurantes de uma mesma rede muito menos entre restaurantes diferentesAleacutem disso a formataccedilatildeo do salatildeo pode ser remodelada de acordo com a necessidadede alocaccedilatildeo dos clientes haacute gerentes que evitam essa movimentaccedilatildeo ou ateacute mesmorestaurantes que natildeo tecircm essa possibilidade

242 Meacutetodos de caacutelculo da espera

Com o problema desenhado desta maneira esboccedilou-se trecircs possiacuteveis meacutetodos de resoluccedilatildeoe um desses foi aplicado na soluccedilatildeo final Os meacutetodos desenvolvidos satildeo meacutedia por periacuteodoaplicaccedilatildeo da teoria das filas e utilizaccedilatildeo de redes neurais Essas teacutecnicas precisam de dadospara serem desenvolvidas e aplicadas Por conta disso buscou-se fontes que suprissem essanecessidade

Captaccedilatildeo dos dados para a anaacutelise

Para que seja possiacutevel aplicar os meacutetodos estudados eacute necessaacuterio obter dados para aplicarna anaacutelise Estes foram obtidos de duas formas a partir de uma parceria com a empresa GetIn [7] desenvolvedora de um aplicativo de gerenciamento de filas de restaurantes e atraveacutesde pesquisas presenciais em restaurantes da rede Outback Steakhouse[14] selecionados para oestudo(Apecircndice A) O aplicativo da Get In possui uma funcionalidade principal realizaccedilatildeode uma reserva em um determinado restaurante O banco de dados manteacutem o registro detodos os usuaacuterios que entram na fila e esses dados satildeo organizados em uma tabela com osseguintes campos

∙ Origem Se a reserva foi realizada de forma remota ou presencial Assim

1 Reserva presencial (na entrada do restaurante incluiacuteda pela recepcionista)

2 Reserva remota (realizada atraveacutes do aplicativo)

∙ Entrada este consiste na data e hora que o usuaacuterio entrou na fila

∙ Qtd Pessoas tamanho do grupo para o qual a reserva foi feita

∙ Prioritaacuterio se este grupo requer atendimento prioritaacuterio

0 Natildeo

1 Sim

∙ Notificado A data e horaacuterio em que o grupo foi notificado que sua mesa estava pronta

ndash Quando NULL a recepcionista natildeo notificou essa pessoa (possivelmente chamoudiretamente pelo nome)

∙ Tempo na Espera Tempo que o grupo ficou ativo na fila de espera (em segundos)

∙ Status Qual a situaccedilatildeo da reserva do grupo Podendo assumir tais valores

0 Cancelado pela recepcionista

10 ESTUDOS PRELIMINARES 24

2 Sentado

3 Cancelado pelo proacuteprio Usuaacuterio

Para melhor entender estes paracircmetros o funcionamento do aplicativo deve ser expli-cado com maior detalhamento O processo de reserva funciona da seguinte forma o usuaacuterioreserva seu lugar atraveacutes do aplicativo ou vai ao restaurante e a recepcionista o adiciona agraveespera No primeiro caso o usuaacuterio tem um tempo de toleracircncia para chegar ao estabeleci-mento apoacutes receber a notificaccedilatildeo caso natildeo consiga chegar a tempo a reserva eacute cancelada Nosegundo caso quando o grupo a ser chamado estaacute proacuteximo da recepccedilatildeo a funcionalidade denotificaccedilatildeo natildeo precisa ser usada o responsaacutevel pode se direcionar diretamente aos clientes echamaacute-los pelo nome Mesmo nesse segundo caso o tempo de espera na fila ainda eacute guardadopois a recepccedilatildeo precisa ldquofecharrdquo a espera do grupo para chamar o proacuteximo

Poreacutem a utilizaccedilatildeo desses dados natildeo foi liberada pela empresa Get In para serem usadoscomo banco de dados do aplicativo somente foram fornecidos dados do mecircs de agosto esetembro de 2016 para que fossem utilizados nas anaacutelises feitas com os modelos estatiacutesticosPara obter dados que poderiam ser utilizados no banco de dados do aplicativo foi neces-saacuterio uma pesquisa presencial onde o grupo visitou alguns restaurantes da rede OutbackSteakhouse para obter informaccedilotildees sobre o tempo de espera nestes estabelecimentos

Foram visitados 5 restaurantes Outback Steakhouse Shopping Eldorado Outback Ste-akhouse Shopping Villa Lobos Outback Steakhouse Shopping Granja Vianna Outback Ste-akhouse Shopping Uniatildeo de Osasco e Outback Steakhouse Shopping Market Place ondequestionamos sobre o tempo de espera por tamanho de grupos (em nuacutemero de pessoas) epor horaacuterio e dia da semana

Ao analisar os dados coletados pela pesquisa presencial notamos que estes estavam sus-cetiacuteveis a erros por terem sido obtidos por meio de diferentes observaccedilotildees humanas Ummeacutetodo para obter dados mais precisos consistiria na realizaccedilatildeo de novas pesquisas no for-mato mediccedilatildeo onde cada integrante do grupo deveria coletar o tempo de espera de cadacliente atraveacutes de um cronocircmetro e calcular o tempo de espera meacutedio nesse horaacuterio Comoo grupo natildeo conseguiria aplicar este meacutetodo optou-se por melhorar a precisatildeo dos dadoscoletados usando como base o graacutefico de horaacuterios de pico disponibilizado pela Google paracada restaurante Essa melhora foi feita utilizando-se caacutelculos de proporccedilatildeo de valores

24 CAacuteLCULO DA PREVISAtildeO DO TEMPO DE ESPERA NA FILA 11

Primeiro meacutetodo Meacutedia por periacuteodo

Figura 26 Esquema do meacutetodo meacutedia por periacuteodo

Para que uma previsatildeo de espera possa ser fornecida ao usuaacuterio essa deve basear-seobrigatoriamente em alguma informaccedilatildeo preacutevia Contudo encontrar uma fonte para taisdados se mostrou uma tarefa muito complicada Para conseguir ainda assim apresentar umtempo de espera em fila meacutetodos de anaacutelise foram definidos de acordo com a quantidade dedados disponiacutevel para cada estabelecimento

De um modo geral neste modelo o caacutelculo do tempo de espera funcionaraacute da seguinteforma calcular-se-aacute a meacutedia de espera para o dia da semana e horaacuterio requeridos pelousuaacuterio sem diferenciar feriados de dias normais Dependendo de quatildeo longo eacute o histoacutericoniacuteveis de especificidade podem ser adicionados ou seja numa busca tempo de espera em 9de Dezembro (segunda-feira) agraves 19h no restaurante X a query selecionaraacute todos os registrosfeitos no dia 9 de dezembro entre as 19h e agraves 20h dos uacuteltimos anos no restaurante X e realizaraacuteessa meacutedia ou pode selecionar apenas linhas de todas as segundas-feiras do mecircs de Dezembrodeste mesmo periacuteodo

∙ Muitos dados neste caso um maior niacutevel de especificidade pode ser aplicado sem autilizaccedilatildeo de outras fontes para complementar o banco de dados

∙ Alguns dados o niacutevel de especificidade eacute bem menor apenas filtrando por dia dasemana e intervalo de hora sem mecircs ou dia especiacutefico no ano Em alguns casos aquantidade de dados eacute tatildeo pequena que deve-se recorrer a outras fontes A Googletem disponibilizado graacuteficos com a distribuiccedilatildeo dos clientes nos horaacuterios de funciona-mento de estabelecimentos Esses dados natildeo estatildeo disponiacuteveis em sua API ou seja natildeo

12 ESTUDOS PRELIMINARES 24

haacute uma forma automaacutetica para que o aproveitamento desses possa ser feito Poreacutemmesmo omitindo-se os valores do graacutefico o perfil da distribuiccedilatildeo e o horaacuterio de picosatildeo aproveitados manualmente para nosso sistema

∙ Poucos dados para este caso fizemos o balanceamento dos dados da Google comas informaccedilotildees retiradas das entrevistas Aleacutem do aproveitamento das informaccedilotildees daGoogle foram realizadas pesquisas com funcionaacuterios dos restaurantes

Segundo meacutetodo Teoria das filas

Filas podem ser vistas como um sistema dinacircmico no qual existe um conjunto de usuaacuteriosque satildeo atendidos por um conjunto de atendentes de acordo com a ordem de chegada dosusuaacuterios A teoria de filas busca utilizando anaacutelises matemaacuteticas estudar o comportamentodestas filas para estimar o tempo de espera com base em um conjunto inicial de dadospreviamente fornecido[30]

Um sistema de filas possui como caracteriacutesticas

∙ Modelo de chegada dos usuaacuterios Utiliza como base o tempo entre as chegadasdos usuaacuterios

∙ Modelo de serviccedilo (atendimento aos usuaacuterios) Utiliza como base o tempo gastono atendimento ao usuaacuterio No caso dos restaurantes equivale ao tempo que um grupopassa na mesa ateacute a sua saiacuteda

∙ Nuacutemero de servidores Eacute o nuacutemero de atendentes disponiacuteveis no sistema Para omodelo do restaurante este equivale agraves mesas disponiacuteveis no salatildeo

∙ Capacidade do sistema Eacute o nuacutemero de usuaacuterios que o sistema eacute capaz de atenderInclui o nuacutemero de usuaacuterios que estatildeo sendo atendidos somado com os que esperamna fila Se este paracircmetro natildeo for informado o sistema eacute considerado com capacidadeilimitada

∙ Tamanho da populaccedilatildeo nuacutemero potencial de clientes que podem chegar a umsistema Pode ser finito ou infinito

∙ Disciplina da fila A disciplina da fila pode ser FIFO (first in first out) - o primeiroa chegar eacute o primeiro a ser atendido LIFO (last in first out) - o uacuteltimo a chegar eacuteo primeiro a ser atendido ALEATOacuteRIO - os atendimentos satildeo feitos sem qualquerpreocupaccedilatildeo com a ordem de chegada COM PRIORIDADE - os atendimentos satildeofeitos de acordo com prioridades estabelecidas No caso dos restaurantes a disciplinaadotada eacute a FIFO poreacutem esta pode mudar de acordo com o atendente responsaacutevel

Os tempos mencionados nos modelos de chegada e de serviccedilo podem ser constantesquando os intervalos entre as chegadas dos usuaacuterios satildeo iguais ou variaacuteveis quando os valo-res desses intervalos variam Nesse uacuteltimo caso o intervalo de tempo segue uma distribuiccedilatildeode probabilidades Nesse modelo tambeacutem existe a taxa meacutedia de chegada dos usuaacuterios porunidade de tempo ou seja quantos usuaacuterios chegam em uma hora

As filas podem ser moldadas em trecircs situaccedilotildees baacutesicas como descrito por Azmat Nafees[30]

∙ Modelo de fila de canal uacutenico com fila uacutenica e atendimento uacutenico (Figura 27)

24 CAacuteLCULO DA PREVISAtildeO DO TEMPO DE ESPERA NA FILA 13

∙ Modelo de fila de canal uacutenico com fila uacutenica e muacuteltiplos atendimentos paralelos (Fi-gura 28)

∙ Modelo de fila de canal uacutenico com muacuteltiplas filas e muacuteltiplos atendimentos paralelos(Figura 29)

Figura 27 Modelo de fila de canal uacutenico com fila uacutenica e atendimento uacutenico

Figura 28 Modelo de fila de canal uacutenico com fila uacutenica e muacuteltiplos atendimentos paralelos

Figura 29 Modelo de fila de canal uacutenico com muacuteltiplas filas e muacuteltiplos atendimentos paralelos

Tambeacutem por Azmat Nafees nesses modelos trecircs subprocessos podem ser vistos

∙ Processo de chegada Eacute um processo contiacutenuo do evento ldquochegada de clientesrdquo ouseja quando o evento ocorre o processo aguarda a ocorrecircncia do proacuteximo evento Esseevento coloca um cliente na fila quando ele chega

14 ESTUDOS PRELIMINARES 24

∙ Processo de espera Eacute um processo que inclui o evento ldquocomece a servir o proacuteximocliente da filardquo que retira um cliente da fila o coloca no processo de atendimento eespera a conclusatildeo do evento ldquocliente servidordquo para recomeccedilar Nele se trabalha comtamanho e disciplina da fila

∙ Processo de atendimento Eacute um processo que inclui o evento ldquocliente servidordquo eespera a conclusatildeo do evento ldquocomece a servir o proacuteximo cliente da filardquo para recomeccedilarNele se trabalha com tipo taxa e tempo de atendimento

Dentre esses 3 modelos o que mais se encaixa na situaccedilatildeo de um restaurante eacute o segundomodelo canal uacutenico com fila uacutenica e muacuteltiplos atendimentos paralelos O processo de chegadade novos clientes na fila eacute tido como aleatoacuterio

Terceiro meacutetodo Rede Neural

Rede Neural eacute uma teacutecnica computacional inspirada no sistema nervoso que com o auxiacute-lio de um modelo matemaacutetico apresenta respostas para problemas de decisatildeo Esses modelosfuncionam da seguinte forma primeiro um conjunto de dados (conjunto de treinamento) eacuteapresentado ao sistema e este aprende com ele atraveacutes de reconhecimento de padratildeo entatildeocoloca-se o sistema para analisar os dados (conjunto de teste) para os quais deseja-se obteralgum resultado Este processo eacute chamado de aprendizagem de maacutequina Quanto melhor forseu treinamento mais precisas seratildeo as respostas para o segundo conjunto

Uma rede neural eacute formada por subestruturas chamadas neurocircnios Um neurocircnio tem oseguinte funcionamento ele recebe como entrada sinais cada sinal recebe um peso de acordocom a influecircncia dele na saiacuteda e uma soma eacute feita para produzir o niacutevel de atividade entatildeodependendo se o niacutevel de atividade exceder o limite dado pela funccedilatildeo de transferecircncia aresposta eacute produzida[27]

Software Multiple Back-Propagation

Para implementar a soluccedilatildeo baseada em redes neurais foi usado o Software MultipleBack-Propagation [1] Este eacute um software de faacutecil utilizaccedilatildeo que fornece uma rede a qualaprende atraveacutes do processo de propagaccedilatildeo inversa Esse meacutetodo baseia-se na comparaccedilatildeodos dados esperados (conjunto de teste) com os dados obtidos a partir do treinamento senecessaacuterio adaptaccedilotildees satildeo feitas a estrutura da rede para melhor aproximar aos dados doconjunto teste e isso eacute chamado de propagaccedilatildeo inversa

Por se tratar de um meacutetodo de aprendizagem de maacutequinas para se obter um resultadodeve-se treinar o algoritmo Primeiramente submete-se o conjunto de treinamento ao soft-ware para isso foi escolhido o mecircs de Agosto O criteacuterio de parada para o treino eacute o erroquadraacutetico meacutedio o qual teve seu valor atribuiacutedo para 001

Capiacutetulo 3

Tecnologias utilizadas

31 O sistema AndroidAndroid eacute um Sistema operacional open source (software de coacutedigo aberto o qual as

pessoas podem acessar e modificar para contribuir com o projeto [25]) e para dispositivosmoacuteveis desenvolvido pela Google baseado no Kernel do Linux e utilizado principalmente emdispositivos touchscreen Atualmente o Android eacute o sistema operacional que deteacutem a maiorparcela do mercado[17] com 836 dos dispositivos contra 134 do iOS da Apple

A Google tambeacutem oferece um ambiente de desenvolvimento para a plataforma Androidchamado Android Studio no qual os aplicativos satildeo criados e exportados para os dispositi-vos moacuteveis Aplicativos Android satildeo programados na linguagem Java com vaacuterias bibliotecasdisponibilizadas pela Google para suporte ao sistema operacional

A escolha da plataforma foi feita principalmente por conta de o sistema possuir a maiorparte dos usuaacuterios de Smartphones e tambeacutem pela ampla comunidade ativa de desenvolve-dores agrave qual se pode recorrer em casos de duacutevidas e problemas tornando suas resoluccedilotildeesmais raacutepidas e com muacuteltiplas alternativas Outros motivos que contribuiacuteram para a escolhado Android foram

∙ A disponibilidade do ambiente de desenvolvimento Android Studio que possui todosos recursos necessaacuterios para desenvolver um aplicativo funcional logo apoacutes a instalaccedilatildeosem a necessidade de utilizar outras dependecircncias as quais satildeo gerenciadas automati-camente pelo proacuteprio software

∙ O fato de no mercado brasileiro o sistema Android se encontrar em 918 dos dispo-sitivos segundo pesquisa da Kantar[18] e dado a pesquisa realizada para definiccedilatildeo depuacuteblico alvo onde foi possiacutevel perceber que 639 dos entrevistados utilizam smartpho-nes com sistema Android

∙ A utilizaccedilatildeo da linguagem de programaccedilatildeo Java para desenvolvimento que jaacute eraconhecida e fora utilizada anteriormente ao contraacuterio das linguagens Objective C eSwift linguagens utilizadas para desenvolver aplicativos para o sistema iOS Assimcomo a disponibilidade de dispositivos por parte do grupo que em sua maioria era decelulares com o sistema Android

15

16 TECNOLOGIAS UTILIZADAS 31

Figura 31 Parcela de mercado dos dispositivos no Brasil

311 Organizaccedilatildeo de uma aplicaccedilatildeo Android

Aplicativos Android satildeo divididos em componentes Haacute quatro tipos de componentespresentes Activities (ou atividades) Services (ou serviccedilos) Content providers (ou provedoresde conteuacutedo) Broadcast receivers (ou receptores de transmissatildeo)

∙ Activities Satildeo as telas e interfaces do usuaacuterio Cada tela de uma aplicaccedilatildeo eacute repre-sentada por uma activity e cada activity eacute independente de outras apesar de seremcomponentes de uma mesma aplicaccedilatildeo Isso se daacute pelo fato de haver a possibilidade deutilizar activities de aplicativos durante a execuccedilatildeo de outros Atividades satildeo iniciadase se comunicam entre si atraveacutes de objetos chamados Intent que transferem um pacotede dados que pode ser carregado no iniacutecio da nova atividade

∙ Services Sempre satildeo executados em segundo plano sem interferir na experiecircncia dousuaacuterio geralmente para realizar operaccedilotildees longas ou realizar operaccedilotildees de troca dedados enquanto o usuaacuterio estaacute utilizando outra aplicaccedilatildeo em primeiro plano

∙ Content Providers Satildeo gerenciadores de dados de aplicaccedilotildees Android utilizadospara ler e salvar dados compartilhados ou secretos dos aplicativos e do sistema

∙ Broadcast Receivers Satildeo componentes responsaacuteveis por obter eventos que aconte-ceram em outras aplicaccedilotildees ou no sistema e direcionar dados sobre esses eventos paraeventuais aplicaccedilotildees que necessitem destes dados alguns exemplos de eventos obtidospelos receptores de transmissatildeo satildeo tela desligada e bateria fraca

Aleacutem dos componentes uma parte importante de uma aplicaccedilatildeo Android eacute o ArquivoManifest que eacute uma declaraccedilatildeo de permissotildees serviccedilos e exigecircncias de hardware necessaacuterios

33 JSON 17

para o funcionamento do aplicativo Outra funccedilatildeo eacute possuir declaraccedilotildees de todos os compo-nentes utilizados no projeto nomes iacutecones entre outros

As interfaces de usuaacuterio do Android satildeo definidas em arquivos XML (eXtensible MarkupLanguage)[26] nos quais estatildeo declarados todos os layouts e configuraccedilotildees das telas Essesarquivos de layout satildeo depois inflados e satildeo gerados os componentes visuais da aplicaccedilatildeoEssa estrutura tem como objetivo facilitar o design da interface do usuaacuterio jaacute que arquivosxml satildeo de faacutecil compreensatildeo do desenvolvedor

32 JSONJSON ou Javascript Object Notation eacute um formato de dados amplamente utilizado para

troca de informaccedilotildees entre programas Possui uma notaccedilatildeo simples para grande parte dosprogramadores pois se assemelha a convenccedilotildees utilizadas em linguagens de programaccedilatildeomuito conhecidas como C C++ Python e Java O objetivo eacute que ele seja de faacutecil entendi-mento tanto para pessoas como para maacutequinas[11]

Um arquivo JSON eacute organizado como um objeto contendo pares nomevalorseparadospor viacutergulas e dentro de chaves(lsquolsquo rsquorsquo) ou como um array que eacute uma lista de valores separa-dos por viacutergulas e entre colchetes(lsquo[lsquo rsquo]rsquo) Um valor por sua vez pode ser um objeto ou umarray mas tambeacutem um nuacutemero inteiro ou uma String entre outros

Um exemplo de arquivo JSON eacute

1 2 Carros [3 4 Nome Scen ic 5 Marca Renault 6 Ano 20127 8 9 Nome Sentra

10 Marca Nissan 11 Ano 200912 13 ]14

33 Google APIsAPIs (Application Program Interfaces) satildeo interfaces para facilitar a troca de informa-

ccedilotildees entre aplicaccedilotildees utilizando comandos especiacuteficos[15]

Ao longo do desenvolvimento algumas APIs fornecidas pela Google foram utilizadascomo fonte de informaccedilotildees adicionais para o aplicativo

∙ Google Maps Distance Matrix API Esta API eacute utilizada para obter o tempo emsegundos de trajeto entre dois pontos (latlong) no mapa podem ser consultados ostempos de trajeto de carro bicicleta a peacute e utilizando transporte puacuteblico[28] Esta eacute

18 TECNOLOGIAS UTILIZADAS 35

uma API web logo utiliza-se um request http para realizar uma consulta

Por exemplo o request

httpsmapsgoogleapiscommapsapidistancematrixjsonorigins=Seattleampdestinations=Victoria+BCampkey=[user_key]

retorna o JSON

1 2 des t ina t i on_addre s s e s [ Vic tor ia BC Canada ] 3 o r i g in_addre s s e s [ Sea t t l e WA EUA ] 4 rows [5 6 e lements [7 8 d i s t anc e 9 text 172 km

10 value 17166811 12 durat ion 13 text 4 horas 40 minutos 14 value 1680915 16 s t a tu s OK17 18 ]19 20 ] 21 s t a tu s OK22

no qual eacute possiacutevel obter o tempo de trajeto em segundos

∙ Google Maps Android API Esta API eacute utilizada para habilitar o uso de mapasda Google integrados agrave aplicaccedilatildeo jaacute disponiacutevel com todas as funcionalidades de zoome arrastar presentes no aplicativo nativo permitindo tambeacutem a personalizaccedilatildeo comoa adiccedilatildeo de pontos definidos pelo usuaacuterio ao mapa

34 Localizaccedilatildeo do UsuaacuterioOutro serviccedilo que foi utilizado com o intuito de obter o tempo de trajeto e a lista ordenada

de forma personalizada de restaurantes foi a localizaccedilatildeo do usuaacuterio que eacute obtida atraveacutes doGPS presente nos smartphones Um objeto de localizaccedilatildeo eacute criado e realiza a comunicaccedilatildeocom o serviccedilo de localizaccedilatildeo do aparelho Ao obter a localizaccedilatildeo ele lanccedila um evento quepode ser acessado por outras partes da aplicaccedilatildeo obtendo a localizaccedilatildeo mais atualizada dodispositivo

36 CONTROLE DE VERSAtildeO 19

35 Controle de VersatildeoControle de versatildeo eacute uma praacutetica usada para manter a organizaccedilatildeo do coacutedigo e do seu de-

senvolvimento quando muitos desenvolvedores colaboram conjuntamente Existem softwaresque auxiliam essa organizaccedilatildeo registrando todas as mudanccedilas feitas ao longo do processo eque possui recursos que permitem que vaacuterios usuaacuterios trabalhem nos mesmos arquivos semperda de informaccedilotildees

No caso do Git [8] o projeto fica organizado em uma estrutura de aacutervore onde cadacommit (checkpoints criados pelos membros do grupo durante o processo) eacute marcado porum noacute para onde se pode retornar quando necessaacuterio Existem tambeacutem estruturas chama-das branches que satildeo bifurcaccedilotildees na estrutura para que partes do projeto sejam criadasseparadamente sem interferir com a linha principal As branches depois satildeo unidas agrave linhaprincipal atraveacutes do comando merge

Neste projeto o serviccedilo de controle de versatildeo utilizado foi o Bitbucket [2] (que eacute um ser-viccedilo web-based de controle de versatildeo que utiliza Git) com auxiacutelio do software SourceTree[19]que eacute uma interface graacutefica para os serviccedilos do Bitbucket onde eacute possiacutevel visualizar com maisfacilidade as fases do desenvolvimento do projeto e realizar os comandos mais intuitivamente

Figura 32 Interface do SourceTree que mostra o controle de versionamento do projeto

36 Banco de dadosCom o intuito de deixar o aplicativo mais completo guardando informaccedilotildees dos usuaacuterios

e dos estabelecimentos optou-se por utilizar-se um banco de dados Alguns exemplos de

20 TECNOLOGIAS UTILIZADAS 36

banco de dados aprendidos no curso Laboratoacuterio de Banco de Dados foram

∙ SQL (Structured Query Language - Linguagem de Consulta Estruturada)[20] umalinguagem para atualizar deletar e requisitar informaccedilotildees atraveacutes de consultas emtabelas que possuem relaccedilatildeo entre si

∙ noSQL[13] um banco de dados que armazena e recupera informaccedilotildees modeladas deuma forma onde natildeo satildeo usadas tabelas relacionais

Como este uacuteltimo natildeo foi o foco da disciplina por falta de tempo decidiu-se por utilizaacute-lopara que o grupo pudesse aprender melhor esse modelo

Outra decisatildeo tomada foi a hospedagem dos dados na nuvem ou seja colocaacute-los em umservidor que natildeo seja local e conseguir acessaacute-los atraveacutes de uma conexatildeo via internet Dessemodo os dados sempre estaratildeo disponiacuteveis para serem consultados

361 Firebase

Buscando-se atender as decisotildees tomadas sobre o banco de dados procuramos um serviccedilode banco de dados da Google por conter ampla integraccedilatildeo com a plataforma de desenvolvi-mento Android por ser conhecido bastante utilizado e por possuir uma ampla comunidadede desenvolvedores dispostos a oferecer auxiacutelio em foacuteruns de discussatildeo de coacutedigos

Para atender esses requisitos escolheu-se o Firebase Realtime Database[6] desenvolvido edisponibilizado pela Google que consiste em um banco de dados noSQL com armazenamentona nuvem Esse serviccedilo armazena os dados do usuaacuterio no servidor da Google em formatoJSON e a cada alteraccedilatildeo sincroniza em tempo real com todos os clientes conectados

O grupo pode observar as seguintes vantagens de se trabalhar com a ferramenta existea sincronizaccedilatildeo em tempo real dos dados de todos os clientes e sua disponibilidade mesmocom o aplicativo offline ou seja quando o aplicativo natildeo estiver conectado a internet osdados do dispositivo moacutevel seratildeo armazenados e sincronizados com o banco de dados assimque a conexatildeo estiver disponiacutevel novamente Aleacutem disso os desenvolvedores possuem acessoa um console online (figura 33) onde o JSON eacute mostrado numa interface interativa de umaforma mais amigaacutevel e no qual eacute permitido editaacute-lo facilmente

37 CROWDSOURCING 21

Figura 33 Console online do Firebase onde os dados satildeo mostrados de forma mais amigaacutevel eintuitiva

Outra observaccedilatildeo feita foi que o Firebase Realtime Database funciona como o esperadose ele guardar uma coacutepia local dos dados em um arquivo JSON no celular Poreacutem isso natildeofoi visto como um problema pois como essa coacutepia pode ser salva em um arquivo texto oespaccedilo utilizado diminui consideravelmente

Na primeira vez que os dados satildeo criados e todas as vezes em que os dados forem atua-lizados por algum dispositivo moacutevel eacute enviada uma atualizaccedilatildeo que seraacute recebida atraveacutes delisteners por todos os aparelhos que utilizam o aplicativo para que eles atualizem seus res-pectivos JSONs Listeners satildeo interfaces de comunicaccedilatildeo que executam uma seacuterie de accedilotildeesassim que um outro evento esperado acontece

37 CrowdsourcingO termo Crowdsourcing tem origem nas palavras da liacutengua inglesa Crowd (multidatildeo) e

Outsourcing (terceirizaccedilatildeo) e eacute definido pelo dicionaacuterio Merriam Webster como A praacuteticade obtenccedilatildeo de serviccedilos ideias ou conteuacutedo solicitando contribuiccedilotildees de grandes grupos depessoas e especialmente da comunidade online [3] Esta praacutetica eacute utilizada para que sejapossiacutevel agrave comunidade contribuir com dados para algum programa ou serviccedilo como no apli-cativo Waze do qual a principal fonte de dados de tracircnsito acidentes e radares eacute obtida pormeio dos proacuteprios usuaacuterios

Capiacutetulo 4

Desenvolvimento do Projeto

Este capiacutetulo aborda o processo de desenvolvimento do projeto iniciado com o preen-chimento do diagrama Canvas e uma pesquisa de mercado direcionada ao usuaacuterio A partirdas informaccedilotildees coletadas foi possiacutevel projetar um aplicativo que atendesse as necessidadesexpostas pela pesquisa e selecionar as tecnologias necessaacuterias Tambeacutem eacute abordada a aplica-ccedilatildeo dos diferentes meacutetodos de caacutelculo da previsatildeo de tempo de espera que foram estudadose explicados no Capiacutetulo 2 Por fim satildeo expostas as diferentes versotildees do aplicativo duranteo processo e seus detalhes

41 Pesquisa de MercadoAntes de iniciar-se o desenvolvimento praacutetico algumas questotildees foram levantadas se

um aplicativo com as funcionalidades escolhidas seria de alguma forma uacutetil para o usuaacuterioe se sim qual metodologia deveria ser usada para que este produto fosse entregue o maiscompleto possiacutevel ateacute o final do ano Para responder a primeira pergunta desenvolveu-seum questionaacuterio

411 Pesquisa com o usuaacuterio

O questionaacuterio foi desenvolvido para avaliar a viabilidade do aplicativo e suas funciona-lidades e foi criado utilizando-se o Google Forms [9] Essa eacute uma ferramenta desenvolvidapelo Google que possibilita a criaccedilatildeo de formulaacuterios contendo diversos formatos de pergun-tas tanto dissertativas quanto de muacuteltipla escolha

Seguindo os princiacutepios de desenvolvimento de questionaacuterios [4] o conjunto de perguntasfoi mantido curto simples e de faacutecil entendimento Tambeacutem variou-se o tipo de questotildeesentre estruturadas (questotildees com respostas em forma de alternativas) e desestruturadas(questotildees com respostas em formato texto) seguindo esses mesmos princiacutepios para captarmelhor as informaccedilotildees dos entrevistados e evitar erros de entendimento

Com as respostas do questionaacuterio tinha-se o intuito de traccedilar um possiacutevel puacuteblico alvoconhecer seu modo de uso de dispositivos moacuteveis e validar a aplicabilidade de diferentesfuncionalidades pretendidas inicialmente sendo essas engajamento do usuaacuterio atraveacutes denotificaccedilotildees do sistema aceitaccedilatildeo de sugestotildees de locais alternativos avaliaccedilatildeo da existecircnciado problema que queremos resolver (se este aplicativo supre uma necessidade real do usuaacute-rio) e aceitaccedilatildeo do aplicativo

23

24 DESENVOLVIMENTO DO PROJETO 41

Para a divulgaccedilatildeo redes sociais como Facebook [5] e sistemas de mensagem instantacircneascomo WhatsApp foram usados e o envio de respostas foi restrito ateacute trecircs semanas apoacutes suaprimeira postagem Neste periacuteodo foram obtidas 210 respostas as quais ajudaram a definiros aspectos do sistema a ser desenvolvido

O questionaacuterio foi dividido em duas subseccedilotildees perfil do usuaacuterio e funcionalidade Comelas obteve-se os seguintes resultados

41 PESQUISA DE MERCADO 25

Questatildeo 1

Figura 41 Graacutefico pizza da distribuiccedilatildeo das respostas em relaccedilatildeo a idade dos pesquisados

As faixas de idade apresentadas estatildeo desbalanceadas por natildeo terem a mesma quantidadede anos em cada uma poreacutem essa divisatildeo foi pensada levando-se em conta a fluecircncia comtecnologia que cada idade possui Com o resultado verificou-se que do puacuteblico alcanccediladocom a pesquisa a maioria estaacute na faixa de 18 a 25 anos de idade assumida como parcelacom maior conhecimento tecnoloacutegico

Questatildeo 2

Figura 42 Graacutefico pizza da distribuiccedilatildeo das respostas em relaccedilatildeo ao sistema operacional

Esta questatildeo foi pensada para medir a porcentagem de cada sistema operacional pre-sente nos celulares do puacuteblico Com ela descobriu-se que 639 das pessoas dentro desse

26 DESENVOLVIMENTO DO PROJETO 41

grupo possuem o sistema Android enquanto 234 possuem iOS e 38 Windows phoneEssa pergunta foi incluiacuteda para um melhor direcionamento do desenvolvimento do aplicativo

Uma questatildeo levantada ao aplicar esse questionaacuterio foi a dificuldade que algumas pessoasencontraram para identificar a versatildeo do proacuteprio aparelho Poreacutem para manter a consistecircnciadas respostas decidiu-se natildeo mudar nada nesta questatildeo para remediar isso

Questatildeo 3

Figura 43 Graacutefico em barras da distribuiccedilatildeo de frequecircncias mensais de cada local analisado

41 PESQUISA DE MERCADO 27

Questatildeo 4

Figura 44 Graacutefico em pizza da distribuiccedilatildeo de interesse do usuaacuterio no tempo de espera de cadalocal

A princiacutepio viu-se muitas possiacuteveis aplicaccedilotildees para a previsatildeo de tempo de espera Paraentender qual seria a prioridade do puacuteblico as questotildees acima foram incluiacutedas A primeiraverificou a frequecircncia de visitas em alguns locais e a segunda serviu para analisar qualestabelecimento despertava mais interesse nos entrevistados quanto ao quesito fila Nos doiscasos restaurantes se destacaram com o maior interesse

Questatildeo 5

Figura 45 Graacutefico em barras da distribuiccedilatildeo de interesse do usuaacuterio por cada item avaliado

Para acompanhar o dado de espera e fornecer mais informaccedilotildees relevantes ao usuaacuteriosem potencial perguntou-se quais outras informaccedilotildees eles acham interessante saber sobre umdeterminado estabelecimento Com isso descobriu-se que a faixa de preccedilo o trajeto ateacute olocal e o cardaacutepio seriam dados importantes de se obter juntamente com o tempo de espera

28 DESENVOLVIMENTO DO PROJETO 41

Questatildeo 6O que vocecirc costuma fazer para evitar filasNeste ponto testou-se se a soluccedilatildeo proposta atraveacutes do aplicativo resolveria o problema dousuaacuterio de uma forma melhor do que a soluccedilatildeo atualmente utilizada Para isso foi perguntadoo que as pessoas fazem para evitar filas e as principais respostas foram

∙ Evitar horaacuterios de pico

∙ Chegar cedo

∙ Ir em outro lugar caso uma fila seja encontrada

∙ Tentar realizar reservas antecipadamente

∙ Se distrair com livroscelular

Notou-se que as soluccedilotildees utilizadas atualmente natildeo suprem as necessidades dos entre-vistados pois mesmo em horaacuterios natildeo convencionais pode-se encontrar filas ou quandodecide-se esperar na fila muito tempo eacute perdido Concluiu-se que a soluccedilatildeo proposta a par-tir do aplicativo resolve de forma mais abrangente o problema pois ajuda o usuaacuterio a evitarhoraacuterios de pico inesperados

Questatildeo 7

Figura 46 Graacutefico em pizza da distribuiccedilatildeo do meio de transporte utilizado pelos usuaacuterios

Essa questatildeo foi formulada com o objetivo de verificar quais meios de transporte seriamincluiacutedos com previsatildeo de tempo de trajeto no aplicativo Foi verificado que a maioria dosentrevistados utilizam transporte puacuteblico seguido por carro

41 PESQUISA DE MERCADO 29

Questatildeo 8

Figura 47 Graacutefico em pizza da distribuiccedilatildeo do interesse do usuaacuterio pela informaccedilatildeo fornecida

Questatildeo 9

Figura 48 Graacutefico em pizza da distribuiccedilatildeo de quantidade de quilocircmetros que o usuaacuterio sedeslocaria para ir a um local com menos fila

Com essas questotildees foi verificado que algo importante para o usuaacuterio eacute saber de outrosestabelecimentos que possam oferecer tempos de espera menores nas redondezas de onde ousuaacuterio se encontra que eacute uma das funcionalidades que desejaacutevamos utilizar no sistema

30 DESENVOLVIMENTO DO PROJETO 41

Questatildeo 10

Figura 49 Graacutefico em barras da distribuiccedilatildeo de sentimento do usuaacuterio em relaccedilatildeo a notificaccedilatildeode aplicativos

Questatildeo 11

Figura 410 Graacutefico em pizza da distribuiccedilatildeo de opiniatildeo do usuaacuterio sobre desabilitar notificaccedilotildeesem celular

42 PESQUISA DE MERCADO 31

Questatildeo 12

Figura 411 Graacutefico em pizza da distribuiccedilatildeo de opiniatildeo do usuaacuterio sobre habilitar GPS emcelular

A ideia inicial era poder usar o GPS para verificar a localizaccedilatildeo do usuaacuterio e enviarnotificaccedilotildees quando este estivesse parado nas proximidades de algum dos estabelecimentoscadastrados Para que essa funcionalidade possa existir eacute necessaacuterio que o aplicativo tenhaacesso agrave localizaccedilatildeo precisa da pessoa atraveacutes do GPS ou internet ateacute mesmo quando natildeoestiver aberto Aleacutem disso tambeacutem eacute necessaacuterio que as notificaccedilotildees estejam habilitadas parafinalizar esta interaccedilatildeo Entatildeo as perguntas 10 11 e 12 foram incluiacutedas no questionaacuterio Ob-servando as respostas foi possiacutevel verificar que 295 das pessoas que responderam deixamambas as funcionalidades habilitadas (GPS e notificaccedilotildees) Com isso pudemos prosseguircom essa ideia e tambeacutem pensar em possiacuteveis alternativas de interaccedilatildeo e engajamento como usuaacuterio

Por conta dessa pesquisa ter sido compartilhada atraveacutes das contas das redes sociais ecomunicadores dos componentes deste grupo sabe-se que este pode apresentar um resultadoviesado mas que mesmo assim natildeo deve ser desconsiderado e que muito ajudou a sanar asduacutevidas iniciaisComo resultado traccedilamos o perfil do entrevistado

∙ Faixa etaacuteria predominante entre 18 e 30 anos

∙ Possui sistema operacional Android (versotildees 4 5 e 6)

∙ Vai a restaurantes com certa frequecircncia mensal resultando em interesses sobre infor-maccedilotildees relacionadas a esse estabelecimento

∙ Costuma chegar cedo ou evitar os horaacuterios de pico para evitar filas nos locais

∙ Carro e transporte coletivo satildeo os principais meios de transporte

∙ Se deslocaria para um estabelecimento semelhante que possui menos fila contanto queeste fique num raio de 2km de distacircncia

32 DESENVOLVIMENTO DO PROJETO 43

42 Projeto do AplicativoO grupo comeccedilou o projeto com o preenchimento do diagrama Canvas(figura 412) apre-

sentado na Seccedilatildeo 21 Desse modo foi adquirida uma ideia mais consistente e uma base paracomeccedilar a implementaccedilatildeo

Figura 412 Diagrama Canvas preenchido pelo grupo

Com o modelo de negoacutecios definido e com base no resultado da pesquisa com o usuaacuterioapresentada na seccedilatildeo seguinte foram aplicadas pequenas mudanccedilas no projeto para melhoradequar-se agraves necessidades e ao perfil do puacuteblico alvo

Para o desenvolvimento foi utilizado um meacutetodo aacutegil baseado no scrum com sprints de3 a 4 semanas devido agrave disponibilidade dos membros do grupo Os encontros natildeo eram diaacute-rios como recomendado para o meacutetodo scrum tambeacutem em razatildeo da disponibilidade Haviamstand ups (discussotildees raacutepidas no comeccedilo de cada encontro) e retrospectivas ao final de cadasprint A cada sprint eram selecionadas histoacuterias e tarefas para serem executadas e caso natildeofossem concluiacutedas ao final da iteraccedilatildeo eram inseridas ao backlog e feitas no sprint seguinte

43 Aplicaccedilatildeo dos meacutetodos de caacutelculo de espera

431 Aplicando a meacutedia por periacuteodo

Aplicando-se no trecho abaixo a teacutecnica desenvolvida na Seccedilatildeo 242 para uma queryrealizada no dia 19082016 no intervalo de 2040 - 2055 analisa-se a semana anterior quepossua tais intervalos Assim o saacutebado dia 06082016 seraacute selecionado

43 APLICACcedilAtildeO DOS MEacuteTODOS DE CAacuteLCULO DE ESPERA 33

Entrada Qtd Pessoas Notificado Espera

6816 2043 2 862016 2053 1606

6816 2044 2 862016 2055 674

6816 2048 2 862016 2056 528

6816 2048 2 862016 2057 520

6816 2051 2 862016 2107 1118

6816 2051 3 862016 2110 1305

6816 2052 2 862016 2110 1273

6816 2052 2 862016 2111 1179

6816 2053 2 862016 2112 1217

6816 2053 2 NULL 59

6816 2054 3 862016 2119 1541

6816 2055 2 862016 2117 1444

6816 2055 2 862016 2120 1570

6816 2055 2 862016 2122 1613

Tabela 41 Trecho do dia 06082016 entre os horaacuterios das 2043 agraves 2055 um intervalo de 12minutos retirado dos dados da empresa Get In

Com esses dados obteve-se a meacutedia de espera de 1080 segundos (18 minutos) a qualseria sugerida para o usuaacuterio com a busca e desvio padratildeo de 465144719 segundos (775 mi-nutos) Dentro desse intervalo tem-se como maacuteximo tempo de espera 1613 segundos (2688minutos) e como miacutenimo 59 segundos (1 minuto) Analisando-se os dados do dia 19082016no mesmo periacuteodo temos

34 DESENVOLVIMENTO DO PROJETO 43

Entrada Pessoas Notificado Espera Erro previsatildeo Erro p 2 pessoas

19816 2043 2 8192016 2051 544 -563 522

19816 2043 2 8192016 2052 605 -502 461

19816 2044 2 8192016 2056 723 -384 343

19816 2046 4 8192016 2119 1988 881 X

19816 2048 2 8192016 2102 919 188 147

19816 2051 2 8192016 2103 821 286 245

19816 2051 3 8192016 2108 1773 666 X

19816 2053 2 8192016 2110 1083 24 -17

19816 2053 2 8192016 2111 1105 2 -39

19816 2053 2 8192016 2112 1169 62 -103

19816 2055 2 8192016 2114 1447 340 -381

Tabela 42 Trecho do dia 19082016 entre os horaacuterios das 2043 agraves 2055um intervalo de 12minutos retirado dos dados da empresa Get In

Ou seja se um grupo chegasse dentro desse periacuteodo e a previsatildeo dada fosse a meacutediaobtida anteriormente o erro calculado pela diferenccedila entre o tempo sugerido e o real tempode espera estaria no intervalo de 15 minutos para menos ou 8 minutos para mais Sendoesse um valor aceitaacutevel

Um proacuteximo passo eacute a restriccedilatildeo dos registros a grupos com 2 integrantes Com tal restri-ccedilatildeo a previsatildeo de espera eacute de 1066 segundos (1776 minutos) Aplicando essa nova meacutedia aosregistros com 2 integrantes do dia 19082016 obteacutem-se um erro (Coluna 6 - erro previsatildeopara 2 pessoas) menor do que o anterior O intervalo do erro calculado neste caso seria de 522segundos (87 minutos) para mais e 381 segundos (635 minutos) para menos Este resultadoeacute ainda mais favoraacutevel mostrando que a inclusatildeo de mais filtros para o caacutelculo da previsatildeomelhorou o tempo previsto

432 Aplicando teoria das filas

A teoria das filas (Seccedilatildeo 242) eacute uma ferramenta muito completa que calcula muitos dadosuacuteteis para a previsatildeo de espera Contudo por conta da necessidade de informaccedilotildees sobreo tempo de atendimento a qual natildeo estaacute contida no banco utilizado esta teoria natildeo podeser aplicada neste caso Poreacutem esse dado pode ter um valor assumido para que a utilizaccedilatildeodessa teoria fosse possiacutevel entretanto a sua precisatildeo ficaria comprometida e imprevisiacutevel

433 Aplicando redes neurais

Para aplicar o que foi estudado na Seccedilatildeo 242 foi executado o software com o mecircs deAgosto como teste o mecircs de Setembro como treino e o limite do erro quadraacutetico como 001 eobteve-se a tabela presente no apecircndice B Na tabela podemos ver o tempo de fila esperadoou seja o tempo contido na tabela do mecircs de Setembro o tempo que o algoritmo deu comoresposta baseado no mecircs de Agosto e o erro entre eles respectivamente

44 DEFINICcedilAtildeO DA INTERFACE DO APLICATIVO 35

Figura 413 Software Multiple Back-Propagation com a configuraccedilatildeo escolhida para os dadosdisponiacuteveis

Mesmo o erro se mantendo em 0018 os dados obtidos possuem um erro padratildeo de 15minutos Se mais dados forem adicionados o criteacuterio de parada pode ser atingido e assimuma previsatildeo melhor pode ser alcanccedilada

434 Conclusatildeo sobre os meacutetodos estudados

Dentre todas as possibilidades estudadas visualizamos na meacutedia por periacuteodo a melhoropccedilatildeo assumindo os dados disponiacuteveis para teste Se mais paracircmetros fossem fornecidoscomo o tempo de atendimento a teoria das filas seria uma boa opccedilatildeo para fornecer a pre-visatildeo de espera E se mais dados estivessem disponiacuteveis as redes neurais conseguiriam umaaproximaccedilatildeo melhor e assim seria uma boa opccedilatildeo tambeacutem

44 Definiccedilatildeo da Interface do aplicativoComo um primeiro protoacutetipo foi desenvolvida uma interface simples que tinha como tela

de iniacutecio um mapa com um campo para buscas na parte superior

36 DESENVOLVIMENTO DO PROJETO 44

Figura 414 Fluxo de telas do primeiro protoacutetipo

Ao efetuar uma busca por algum estabelecimento uma tela mostrando o tempo de esperaaproximado da fila no local era exibida junto com bototildees que permitiam selecionar o meiode transporte visualizar outras opccedilotildees ou dar iniacutecio a rota ateacute o local desejado Tambeacutemhavia uma notificaccedilatildeo para quando a pessoa estivesse parada proacutexima a um restaurantecadastrado que direcionaria o usuaacuterio a uma tela com um cronocircmetro do tempo de esperana fila

Para testar essa visualizaccedilatildeo escolhemos algumas pessoas e realizamos um teste deusabilidade[22] este teste eacute feito da seguinte forma

44 DEFINICcedilAtildeO DA INTERFACE DO APLICATIVO 37

Uma contextualizaccedilatildeo eacute feita para o voluntaacuterio e entatildeo uma tarefa eacute passada para sercompletada Os integrantes do grupo observam dificuldades enfrentadas pelo entrevistado etomam notas Esse teste eacute repetido algumas vezes e seu resultado eacute coletado para avaliaccedilatildeoe modificaccedilatildeo das funcionalidades

Figura 415 Tela de detalhes de um restaurante(segunda versatildeo)

Notou-se que algumas funcionalidadespareceram confusas e natildeo intuitivas porexemplo natildeo ficou claro se o tempo mos-trado era de trajeto ou de espera na filanem qual era o meio de transporte utili-zado

Logo esse protoacutetipo foi reformuladocom o intuito de melhorar a experi-ecircncia do usuaacuterio com o nosso aplica-tivo

Foram colocados aleacutem do tempo deespera da fila o tempo que o usuaacuteriolevaria para chegar ateacute o local selecio-nado (conforme o tipo de transporte es-colhido) e a quantidade estimada de pes-soas na fila O tempo total (espera so-mado ao tempo de deslocamento) ga-nhou destaque entre as informaccedilotildees doestabelecimento e o botatildeo que direcionao usuaacuterio ao trajeto ficou mais especiacute-fico

Tambeacutem cogitou-se a possibilidade deadicionar login e um perfil de usuaacuteriojunto com uma lista de restaurantes favo-ritos

O fluxo das telas deste novo protoacutetipo ficou como mostra o esquema a seguir

38 DESENVOLVIMENTO DO PROJETO 44

Figura 416 Fluxo de telas do segundo protoacutetipo

44 DEFINICcedilAtildeO DA INTERFACE DO APLICATIVO 39

Figura 417 Tela de detalhes de um restaurante(terceira versatildeo)

Apoacutes outras avaliaccedilotildees mais algumaspequenas alteraccedilotildees foram realizadas nainterface Foi decidido que seria inviaacute-vel estimar o nuacutemero de pessoas nafila entatildeo essa funcionalidade foi remo-vida

Notificaccedilotildees foram adicionadas paraquando o usuaacuterio estiver parado na aacutereado restaurante para que ele possa con-tribuir com informaccedilotildees sobre a fila quepegou aleacutem de um botatildeo de contri-buiccedilatildeo ter sido inserido na tela ini-cial

40 DESENVOLVIMENTO DO PROJETO 45

O fluxo de telas do aplicativo atual ficou da seguinte forma

Figura 418 Fluxo de telas do terceiro protoacutetipo

46 EXPLICACcedilAtildeO DAS FUNCIONALIDADES 41

45 Explicaccedilatildeo das funcionalidadesEsta seccedilatildeo explica as funcionalidades do produto utilizando a figura 418

A tela inicial (3) exibe uma lista de restaurantes incluindo seus respectivos tempos detrajeto e tempo de espera na fila Ao clicar no botatildeo ldquo+rdquo uma caixa de diaacutelogo eacute aberta(4) onde eacute possiacutevel adicionar o tempo que o usuaacuterio esperou na fila Primeiro eacute escolhido orestaurante depois a data e hora que a pessoa chegou na fila e por fim o tempo de esperaem minutos Ao tocar em ldquoEnviar Feedback rdquo os dados satildeo incluiacutedos no banco de dados eatualizados para os outros usuaacuterios Assim eacute apicado o conceito de Crowdsourcing no apli-cativo

Ao tocar em um item da lista de restaurantes seraacute aberta a tela de detalhes de um res-taurante (5) na qual eacute possiacutevel ver com mais clareza os tempos de trajeto e espera o tempototal o endereccedilo do estabelecimento e um pequeno mapa centrado no local Pressionandoo botatildeo ldquoDireccedilotildeesrdquo o usuaacuterio seraacute redirecionado ao aplicativo de mapas de sua preferecircnciano caso do exemplo (8) o Google Maps jaacute traccedilando a rota da localizaccedilatildeo do usuaacuterio para oestabelecimento em questatildeo

Novamente na tela inicial tocando no iacutecone de lupa eacute possiacutevel realizar uma busca digi-tando o nome do estabelecimento na caixa de texto a qual exibe sugestotildees dependendo doque foi digitado Ao clicar em um dos resultados da busca o usuaacuterio eacute novamente direcionadopara a tela de detalhes do restaurante (5)

Tambeacutem eacute possiacutevel tocar no iacutecone de mapa na tela inicial onde seraacute mostrado um mapacentrado na localizaccedilatildeo do usuaacuterio

Ao ficar parado por um tempo em um mesmo local proacuteximo a um estabelecimentocadastrado o usuaacuterio eacute perguntado em uma notificaccedilatildeo quanto tempo ele permaneceu nafila Ao tocar na notificaccedilatildeo a caixa de diaacutelogo para feedback do usuaacuterio seraacute aberta (4) jaacutecom o restaurante preenchido e apoacutes o feedback a janela seraacute fechada e os dados enviadosao banco de dados

46 Implementaccedilatildeo do banco de dadosO banco de dados do aplicativo foi modelado e populado em forma de aacutervore (Fi-

gura 419) de forma a facilitar o acesso aos dados necessaacuterios ao aplicativo No primeironiacutevel estatildeo os ids dos restaurantes Cada id de restaurante guarda a localizaccedilatildeo (latitudelongitude) do restaurante o nome o endereccedilo e um objeto fila O objeto fila guarda todos osdias da semana (domingo a saacutebado) e cada dia da semana possui 24 campos um para cadahora do dia Cada hora possui o tempo meacutedio de espera da fila naquela hora e um peso paraesse tempo O peso eacute um valor que aumenta de acordo com o nuacutemero de feedbacks dadospara que o novo valor do tempo meacutedio seja calculado de forma consistente

Modelamos o banco de dados de uma forma que respeitasse uma hierarquia de dados

42 DESENVOLVIMENTO DO PROJETO 46

Figura 419 Aacutervore que ilustra a organizaccedilatildeo de um restaurante no banco de dados

Com o banco de dados jaacute populado o aplicativo faz consultas e atualizaccedilotildees de dadosConsultas satildeo feitas ao criar a tela de listagem de restaurantes e de detalhes de um restau-rante consultado As atualizaccedilotildees satildeo feitas quando o usuaacuterio manda o feedback de tempo deespera em um estabelecimento em determinado horaacuterio o aplicativo calcula a nova meacutedia eatualiza o campo do respectivo horaacuterio

Capiacutetulo 5

Conclusatildeo

Ao longo dos capiacutetulos deste trabalho pocircde-se acompanhar todo o processo de criaccedilatildeo edesenvolvimento do aplicativo que apoacutes finalizado foi batizado com o nome Queue

Comeccedilando com um problema para o qual o grupo almejava oferecer uma soluccedilatildeoacabou-se por adentrar-se um pouco no campo da Estatiacutestica e estudar diversas metodo-logias que poderiam ser uacuteteis para fornecer um caacutelculo de previsatildeo de espera meacutedia porperiacuteodo aplicaccedilatildeo da teoria das filas e utilizaccedilatildeo de redes neurais

Atraveacutes de uma parceria com a empresa GetIn obteve-se acesso a uma grande quantidadede dados e foi possiacutevel utilizaacute-los em anaacutelises feitas nas metodologias escolhidas conseguindoassim resultados relevantes Por meio destes foi feita a escolha de um dos meacutetodos para ocaacutelculo da previsatildeo de filas a meacutedia por periacuteodo

Aleacutem desses estudos ao longo do ano o grupo aprendeu a desenvolver para a plata-forma Android sobre a qual nenhum dos integrantes tinha conhecimento preacutevio Tambeacutemfoi possiacutevel aprender e utilizar a metodologia aacutegil com Scrum para guiar o processo de de-senvolvimento

Ao fim do ciclo de desenvolvimento conseguiu-se entregar um aplicativo em funciona-mento que fornece a previsatildeo de espera no instante da consulta de estabelecimentos cadas-trados no banco de dados armazenado na nuvem

Na versatildeo atual do aplicativo natildeo foi implementado um sistema para o cadastro de novosestabelecimentos Isso soacute eacute possiacutevel atraveacutes da inserccedilatildeo direta no banco de dados atraveacutes dainterface fornecida pelo console do Firebase Atualmente estatildeo cadastrados 5 restaurantesos quais foram visitados durante o desenvolvimento do projeto Para que o cadastro deestabelecimentos escale seria necessaacuterio a implementaccedilatildeo de uma funcionalidade que permitaao usuaacuterio adicionar novos estabelecimentos a partir de locais disponiacuteveis na API de locaisda Google

43

45

46 APEcircNDICE A

Apecircndice A

Dados coletados

Figura A1 Dados de tempo de espera para grupos de tamanhos variados para cada horaacuterio e emcada dia da semana obtidos em entrevista em restaurantes Outback Steakhouse Shopping Uniatildeo nomecircs de outubro

Referecircncias Bibliograacuteficas

[1] Backpropagation httpmbpsourceforgenet Accesso em Janeiro 2017 14

[2] Bitbucket httpsbitbucketorgproduct Accesso em Dezembro 2016 19

[3] Crowdsourcing httpswwwmerriam-webstercomdictionarycrowdsourcing Ac-cesso em Novembro 2016 21

[4] Designing a survey httpwwwsciencebuddiesorgscience-fair-projectsproject_ideasSoc_surveyshtml Accesso em Outubro 2016 4 23

[5] Facebook httpswwwfacebookcom Accesso em Novembro 2016 24

[6] Firebase httpsfirebasegooglecom Accesso em Agosto 2016 20

[7] Getin app httpswwwgetinappcombrhomesao-paulo Accesso em Novembro2016 9

[8] Git 11 primeiros passos - sobre controle de versatildeo httpsgit-scmcombookpt-brv1Primeiros-passos-Sobre-Controle-de-Vers Accesso em Novembro 2016 19

[9] Google forms httpsdocsgooglecomforms Accesso em Novembro 2016 23

[10] Guia definitivo do project model canvas Project Builder 3

[11] Jsonorg introducing json httpwwwjsonorg Accesso em Novembro 2016 17

[12] Manifesto para desenvolvimento Aacutegil de software httpagilemanifestoorgisoptbrmanifestohtml Accesso em Novembro 2016 5

[13] Nosql httpsenwikipediaorgwikiNoSQL Accesso em Novembro 2016 20

[14] Outback steakhouse httpswwwoutbackcombrhome Accesso em Novembro 20169

[15] Restful api development with lumen microframework httpsbelitsoftcomlaravel-development-servicesapi-development Accesso em Novembro 2016 17

[16] Scrum httpswwwatlassiancomagilescrum Accesso em Novembro 2016 5

[17] Smartphone os market share 2016 q2 httpwwwidccomprodservsmartphone-os-market-sharejsp Accesso em Novembro 2016 15

[18] Smartphone os sales market share kantar worldpanel comtech httpwwwkantarworldpanelcomsmartphone-os-market-share Accesso em Novembro 2016 15

[19] Sourcetree httpswwwsourcetreeappcom Accesso em Dezembro 2016 19

47

48 REFEREcircNCIAS BIBLIOGRAacuteFICAS

[20] Sql httpsptkhanacademyorgcomputingcomputer-programmingsql Accesso emDezembro 2016 20

[21] Trello httpstrellocom Accesso em Novembro 2016 6

[22] Usability test httpsenwikipediaorgwikiUsability_testing Accesso em Novembro2016 36

[23] Versionone 2012 agile dev survey httpswwwversiononecompdf7th-Annual-State-of-Agile-Development-Surveypdf Accesso em Novembro 2016 5

[24] Waze httpswwwwazecom Accesso em Novembro 2016 1

[25] What is an open source httpsopensourcecomresourceswhat-open-source Accessoem Novembro 2016 15

[26] Xml tutorial httpwwww3schoolscomxml Accesso em Novembro 2016 17

[27] Paulo F Cabral dos Anjos Jr Aron Ifanger Maciel Christopher Silva de Paacutedua Com-posiccedilatildeo de carteiras de accedilotildees utilizando modelo de redes neurais artificiais e modelo derisco e retorno de Markowitz 2012 14

[28] Google Distance matrix api documentation httpsdevelopersgooglecommapsdocumentationdistance-matrix Accesso em Novembro 2016 17

[29] Alan Klement Designing features using job stories httpsblogintercomcomusing-job-stories-design-features-ui-ux Accesso em Novembro 2016 6

[30] Azmat Nafees Queuing theory and its application analysis of the sales checkout opera-tion in ica supermarket httpwwwstatisticsduseessaysD07ENafeespdf Accessoem Novembro 2016 12

[31] Eric Ries A Startup Enxuta Lua de papel primeira ediccedilatildeo edition 2012 3

  • Introduccedilatildeo
    • Motivaccedilatildeo
    • Trabalho Proposto
    • Estrutura da monografia
      • Estudos Preliminares
        • Desenvolvimento de Startups
          • Desenvolvimento de Questionaacuterios
            • Metodologia Aacutegil
            • Jobs to be done
            • Caacutelculo da previsatildeo do tempo de espera na fila
              • Descriccedilatildeo do problema
              • Meacutetodos de caacutelculo da espera
                  • Tecnologias utilizadas
                    • O sistema Android
                      • Organizaccedilatildeo de uma aplicaccedilatildeo Android
                        • JSON
                        • Google APIs
                        • Localizaccedilatildeo do Usuaacuterio
                        • Controle de Versatildeo
                        • Banco de dados
                          • Firebase
                            • Crowdsourcing
                              • Desenvolvimento do Projeto
                                • Pesquisa de Mercado
                                  • Pesquisa com o usuaacuterio
                                    • Projeto do Aplicativo
                                    • Aplicaccedilatildeo dos meacutetodos de caacutelculo de espera
                                      • Aplicando a meacutedia por periacuteodo
                                      • Aplicando teoria das filas
                                      • Aplicando redes neurais
                                      • Conclusatildeo sobre os meacutetodos estudados
                                        • Definiccedilatildeo da Interface do aplicativo
                                        • Explicaccedilatildeo das funcionalidades
                                        • Implementaccedilatildeo do banco de dados
                                          • Conclusatildeo
                                          • Dados coletados
                                          • Referecircncias Bibliograacuteficas

Agradecimentos

Gostariacuteamos de agradecer primeiramente a Deus pela finalizaccedilatildeo de mais uma etapatatildeo almejada de nossas vidas Tambeacutem gostariacuteamos de agradecer a pessoas muito impor-tantes no desenvolvimento deste projeto Kathleen e Shodji pelo aconselhamento no designdo produto Paulo pelas opiniotildees sobre o caacutelculo do tempo de espera e nossos amigos dagraduaccedilatildeo que muito nos apoiaram tanto nas mateacuterias durante o curso como nessa retafinal Natildeo podemos nos esquecer da nossa orientadora Ana Cristina que apoiou e acreditouna nossa ideia de projeto desde nossa primeira conversa E tambeacutem o professor Magalhatildeesque se disponibilizou para sanarmos nossas duacutevidas sobre essa mateacuteria tatildeo complexa cha-mada Estatiacutestica Finalmente obrigado pais e matildees pelo apoio e acolhimento nos momentosde estudo e desenvolvimento Agrave todos nosso muito obrigado nada disso seria possiacutevel semvocecircs

i

Resumo

Este projeto possui como objetivo principal estudar e aplicar o processo de desenvolvi-mento de software de um aplicativo para a plataforma Android que fornece ao usuaacuterio aprevisatildeo de tempo de espera para restaurantes cadastrados no banco de dados

Para auxiliar no desenvolvimento foram tambeacutem estudadas modelagens para previsatildeode filas de restaurantes para que o caacutelculo de previsatildeo da espera fosse feito de forma maisprecisa O caacutelculo se utiliza dos seguintes dados aqueles obtidos atraveacutes de pesquisas nosproacuteprios restaurantes e os extraiacutedos de informaccedilotildees enviadas por usuaacuterios De posse dessesdados o tempo de espera fornecido para aquele instante seraacute cada vez mais preciso agrave medidaque aumentam os feedbacks dos usuaacuterios

Para o desenvolvimento deste aplicativo algumas teacutecnicas de gerenciamento de projetoforam usadas com o intuito de fornecer um produto final satisfatoacuterio para o usuaacuterio

Palavras-chave filas restaurantes desenvolvimento Android previsatildeo de espera

iii

Abstract

Our goal with this project is to study and apply the process of software development of anAndroid application that provides the user with the waiting time prediction for restaurantsregistered in our database

To assist the development some modeling methods to estimate restaurant queues werestudied as well so that the calculation were accomplished with more precision

The waiting time prediction calculation is done using the following data data obtainedthrough research on the restaurants and data extracted from information sent by usersThus the waiting time provided for that moment will be increasingly more accurate as thefeedback from the users gets more frequent

In order to develop this application some project management techniques were used withthe interest of providing a satisfactory final product for the user

Keywords queues restaurants Android development waiting time estimation

v

Sumaacuterio

1 Introduccedilatildeo 111 Motivaccedilatildeo 112 Trabalho Proposto 113 Estrutura da monografia 2

2 Estudos Preliminares 321 Desenvolvimento de Startups 3

211 Desenvolvimento de Questionaacuterios 422 Metodologia Aacutegil 523 Jobs to be done 624 Caacutelculo da previsatildeo do tempo de espera na fila 8

241 Descriccedilatildeo do problema 8242 Meacutetodos de caacutelculo da espera 9

3 Tecnologias utilizadas 1531 O sistema Android 15

311 Organizaccedilatildeo de uma aplicaccedilatildeo Android 1632 JSON 1733 Google APIs 1734 Localizaccedilatildeo do Usuaacuterio 1835 Controle de Versatildeo 1936 Banco de dados 19

361 Firebase 2037 Crowdsourcing 21

4 Desenvolvimento do Projeto 2341 Pesquisa de Mercado 23

411 Pesquisa com o usuaacuterio 2342 Projeto do Aplicativo 3243 Aplicaccedilatildeo dos meacutetodos de caacutelculo de espera 32

431 Aplicando a meacutedia por periacuteodo 32432 Aplicando teoria das filas 34

vii

viii SUMAacuteRIO

433 Aplicando redes neurais 34434 Conclusatildeo sobre os meacutetodos estudados 35

44 Definiccedilatildeo da Interface do aplicativo 3545 Explicaccedilatildeo das funcionalidades 4146 Implementaccedilatildeo do banco de dados 41

5 Conclusatildeo 43

A Dados coletados 45

Referecircncias Bibliograacuteficas 47

Capiacutetulo 1

Introduccedilatildeo

Este capiacutetulo introduz o problema abordado a soluccedilatildeo proposta os objetivos do projetoe apresenta a estrutura da monografia

11 MotivaccedilatildeoEnfrentamos filas para realizar diversas atividades ao longo do dia Nosso tempo eacute gasto

esperando desde alguns minutos para pedir o almoccedilo ateacute horas para assistir um determinadoshow Ao todo muitas horas de nossas vidas satildeo desperdiccediladas nessas esperas

Muitas vezes somos surpreendidos por filas interminaacuteveis ou entatildeo pela ausecircncia delascriando a impressatildeo de que estas satildeo totalmente imprevisiacuteveis Isso acaba gerando a difi-culdade de programar com precisatildeo outras atividades pois natildeo sabemos ao certo quantotempo iremos gastar em esperas ao longo do dia Deixamos muitos deveres ou ateacute mesmomomentos de lazer de lado por causa disso e se tiveacutessemos como prever esse tempo gastopoderiacuteamos otimizar nosso dia

Esse e outros problemas podem ser minimizados agrave medida que o acesso agrave informaccedilatildeoseja histoacuterica ou em tempo real eacute facilitado Uma forma de fornecer essa informaccedilatildeo aousuaacuterio eacute atraveacutes da tecnologia Um exemplo disso eacute o aplicativo de navegaccedilatildeo Waze [24]que disponibiliza dados do tracircnsito em tempo real ajudando na locomoccedilatildeo diaacuteria Isso eacutepossiacutevel graccedilas aos avanccedilos tecnoloacutegicos e a maior acessibilidade aos dispositivos moacuteveisconectados agrave internet por exemplo

12 Trabalho PropostoAo vislumbrarmos esse problema tanto na vida dos outros como nas nossas e motivados

a utilizar nossos conhecimentos adquiridos ao longo do curso de Ciecircncia da Computaccedilatildeodecidimos desenvolver um aplicativo para diminuir esse desconforto causado pelas filas Essasoluccedilatildeo eacute um sistema

∙ desenvolvido na plataforma Android

∙ baseado em uma modelagem de sistema de filas

que tem como objetivo prever o tempo de espera dos usuaacuterios em filas e assim auxiliaacute-losnas suas decisotildees

1

2 INTRODUCcedilAtildeO 13

Para desenvolver uma soluccedilatildeo para o problema e dada a limitaccedilatildeo de tempo para o de-senvolvimento decidimos implementar a soluccedilatildeo apenas para as filas de restaurantes Estaescolha foi feita por serem locais muito frequentados e assim gerarem mais dados em menostempo e pela diversidade de tamanho das esperas gerando o interesse no estudo de suamodelagem

Implementou-se um aplicativo no qual o usuaacuterio pode fazer uma consulta sobre os res-taurantes cadastrados no banco de dados e ter acesso ao tempo de deslocamento somado aotempo de espera ateacute seu atendimento no estabelecimento Aleacutem disso ele tem a possibilidadede traccedilar uma rota ateacute o local e enviar um feedback sobre quanto tempo foi gasto na filapara aprimorar o calculo do tempo de espera

13 Estrutura da monografiaPara que fosse possiacutevel o desenvolvimento de um aplicativo para previsatildeo de tempo de es-

pera foi necessaacuterio estudar o processo de criaccedilatildeo de startups um processo de desenvolvimentode software tecnologias para programaccedilatildeo em Android bem como algumas modelagens es-tatiacutesticas de previsatildeo de tempo de espera A monografia foi estruturada de acordo comessas informaccedilotildees de modo que o leitor possa ter uma leitura progressiva dividida em trecircsprincipais partes

∙ Estudos preliminares Essa seccedilatildeo apresenta estudos sobre o que eacute necessaacuterio para odesenvolvimento de Startups a definiccedilatildeo da metodologia de desenvolvimento utilizadapelo grupo e o estudo da aplicaccedilatildeo de trecircs diferentes modelagens estatiacutesticas feitaspara analisar os dados iniciais fornecendo um modo de calcular o tempo de espera emum restaurante em um dado instante

∙ Tecnologias utilizadas Onde satildeo apresentadas as tecnologias e ferramentas utiliza-das para auxiliar no desenvolvimento do aplicativo

∙ Desenvolvimento do projeto Essa parte apresenta a aplicaccedilatildeo dos meacutetodos decaacutelculo de espera vistos na seccedilatildeo anterior e o processo de desenvolvimento do aplicativoem si

Capiacutetulo 2

Estudos Preliminares

21 Desenvolvimento de StartupsO desenvolvimento do projeto foi baseado nos meacutetodos utilizados em Startups O grupo

seguiu os princiacutepios da Startup Enxuta [31] no qual um produto miacutenimo deve ser criado eentatildeo incrementado atraveacutes do estudo das necessidades do usuaacuterio A partir de uma pesquisacom o puacuteblico alvo a ideia inicial eacute lapidada e um produto com o miacutenimo de funcionalidadespossiacutevel eacute desenvolvido para entatildeo retornar aos usuaacuterios que iratildeo validaacute-lo Este processo eacuterepetido ateacute que um produto final seja completamente desenvolvido independente da ideiaque se tinha no iniacutecio O processo tem como foco economizar recursos e suprir a necessidadedo usuaacuterio de forma raacutepida e eficiente

De acordo com o livro A Startup Enxuta[31] esta metodologia prioriza o desenvolvi-mento iterativo com a participaccedilatildeo do cliente a cada etapa ao inveacutes de procuraacute-lo somentena entrega do produto final Nessa metodologia temos alguns princiacutepios que guiam o desen-volvimento de projetos

1 Mapeamento do negoacutecio atraveacutes do diagrama conhecido como ldquocanvas do modelo denegoacuteciosrdquo que nos mostra resumidamente uma visatildeo geral do projeto

2 Pesquisas feitas com os usuaacuterios no mercado para saber suas opiniotildees sobre o negoacutecioe posteriores mudanccedilas ou ajustes no projeto com base nos resultados

3 Desenvolvimento do produto utilizando algum meacutetodo aacutegil

Inicialmente deve-se traccedilar os primeiros objetivos do projeto utilizando o diagrama Can-vas [10] (figura 21) Esse diagrama eacute utilizado para auxiliar empresas a ter uma visatildeo macrodo projeto fornecendo uma forma de visualizar suas dependecircncias e permitindo planejartraccedilar e gerenciar um plano de desenvolvimento Ele possui perguntas que devem ser res-pondidas em seus quadros e no decorrer desse processo o projeto vai sendo adaptado deacordo com as limitaccedilotildees impedimentos e novas ideias que vatildeo surgindo

3

4 ESTUDOS PRELIMINARES 21

Figura 21 Modelo do Diagrama Canvas

Com o modelo de negoacutecios definido o proacuteximo passo eacute a realizaccedilatildeo de uma pesquisa como puacuteblico para validaacute-lo Essa fase do desenvolvimento pode ser refeita quantas vezes foremnecessaacuterias reescrevendo o Canvas conforme a interpretaccedilatildeo da necessidade do usuaacuterio

211 Desenvolvimento de Questionaacuterios

De acordo com o manual Designing a Survey [4] um questionaacuterio eacute criado para obterinformaccedilotildees para conduzir o desenvolvimento de um projeto de acordo com as preferecircnciasdo puacuteblico alvo Ele deve ser curto e conciso e deve capturar somente informaccedilotildees que sejamrelevantes para a pesquisa

Os passos para o desenvolvimento de um bom questionaacuterio satildeo

∙ Definir os dados necessaacuterios

∙ Desenvolver as questotildees

∙ Remover qualquer questatildeo que natildeo captura os dados definidos previamente

As questotildees podem ser moldadas de trecircs maneiras

∙ Estruturadas Questotildees que possuem resposta fixa Exemplo

Vocecirc usa transporte puacuteblico

( )Sim

( )Natildeo

22 METODOLOGIA AacuteGIL 5

∙ Natildeo Estruturadas Questotildees de resposta aberta Exemplo

O que vocecirc costuma fazer para evitar filas

∙ Parcialmente Estruturadas Questotildees mistas Exemplo

Qual meio de transporte vocecirc usa

( )Carro

( )Moto

( )Outros______

22 Metodologia AacutegilA metodologia aacutegil tem sido adotada pelas empresas hoje em dia por conta dos melhores

resultados obtidos em relaccedilatildeo agraves metodologias tradicionais[23] Essa eacute caracterizada pelavalorizaccedilatildeo de

∙ ldquoIndiviacuteduos e interaccedilotildees mais que processos e ferramentasrdquo

∙ ldquoSoftware em funcionamento mais que documentaccedilatildeo abrangenterdquo

∙ ldquoColaboraccedilatildeo com o cliente mais que negociaccedilatildeo de contratosrdquo

∙ ldquoResponder a mudanccedilas mais que seguir um planordquo [12]

Eacute uma metodologia que envolve trabalho em equipe encontros regulares com o clientedesenvolvimento iterativo e com menos foco em planejamento estrito e ideias definitivasdiferente de metodologias mais tradicionais que satildeo mais focadas em projetos bem docu-mentados com pouca possibilidade de mudanccedila ao final do processo Decidiu-se por utilizara metodologia aacutegil neste projeto pois natildeo haviam ideias completamente definidas inicial-mente e para o grupo a opiniatildeo do puacuteblico alvo sobre o produto era fundamental em cadaiteraccedilatildeo do processo podendo haver mudanccedilas inesperadas dependendo do feedback recebido

Dentre as opccedilotildees de metodologias aacutegeis O meacutetodo Scrum[16] eacute um que eacute definido comoum gerenciador e um processo de controle que foca em construir um software que conheceas necessidades do negoacutecio devolvendo incrementalmente um software

Com o Scrum o software eacute desenvolvido em iteraccedilotildees de tamanho fixo chamadas deSprints que tem duraccedilatildeo de tipicamente duas a quatro semanas Em cada Sprint um nuacutemerofixo de histoacuterias (que se traduzem em tarefas) satildeo selecionadas pelo grupo para seremutilizadas na sprint(figura 22) Haacute tambeacutem um sistema de motivaccedilatildeo para o time como osMilestones que satildeo objetivos menores distribuiacutedos por toda a sprint ajudando na mediccedilatildeode desemprenho da equipe e graacuteficos Burndown que mostram o progresso de cada iteraccedilatildeopara que o time sinta o progresso no desenvolvimento

6 ESTUDOS PRELIMINARES 23

Figura 22 Dinacircmica do Scrum

Para controle das iteraccedilotildees foi utilizado o software Trello [21] que eacute um gerenciador detarefas de projeto (figura 23)

Figura 23 Interface do Trello - durante o processo de desenvolvimento

23 Jobs to be donePara implementar o aplicativo buscou-se uma metodologia para guiar esse processo desde

sua criaccedilatildeo ateacute sua validaccedilatildeo Duas metodologias conhecidas pelo grupo foram analisadas eestudadas Jobs To Be Done e Personas and Use Cases

Segundo Alan Klement[29] Personas satildeo clientes imaginaacuterios descritos pela idade sexoraccedila e haacutebitos semanais O uso delas natildeo eacute adequado para responder perguntas como ldquoPorqueo cliente quer saber o tamanho da filardquo pois quando a resposta eacute ldquoEle estaacute com pressa paracomerrdquo natildeo fica claro quais satildeo as reais necessidades do usuaacuterio Essa descriccedilatildeo tambeacutem natildeoeacute uacutetil no desenvolvimento de uma boa interface pois natildeo ajuda na hora de responder se umcerto botatildeo realmente deixa claro sua funcionalidade

23 JOBS TO BE DONE 7

Tambeacutem segundo Alan Klement Use Cases possuem 3 grandes problemas usam perso-nas casam implementaccedilotildees motivaccedilotildees e resultado e ignoram contexto situaccedilotildees e ansie-dades

Se uma funcionalidade definida por uma Use Case falhar seraacute difiacutecil identificar o pro-blema pois por casar informaccedilotildees diferentes surgiraacute a dificuldade de saber o que estaacute erradoa implementaccedilatildeo as suposiccedilotildees sobre as motivaccedilotildees ou os resultados

Observando-se esses fatos optou-se pelo uso da metodologia Jobs to Be Done pois haacuteuma mudanccedila na forma de fazer histoacuterias a fim de evitar os problemas observados em Per-sonas e Use Cases(Figura 24) Nesse modelo as Personas satildeo pessoas reais e as histoacuterias satildeoescritas com a seguinte divisatildeo situaccedilatildeo motivaccedilatildeo e resultados esperados

Nessa metodologia criamos histoacuterias descrevendo tarefas para que os usuaacuterios se colo-quem na situaccedilatildeo descrita Observando-os eacute possiacutevel saber se a tarefa foi realizada de formabem sucedida e caso contraacuterio identificar onde e o que estaacute causando a falha no instanteda realizaccedilatildeo dela

Figura 24 Diferenccedila entre estruturas de histoacuterias

8 ESTUDOS PRELIMINARES 24

Algumas das histoacuterias criadas para os testes de interface do grupo foram

∙ Quando eu estiver na tela de lista de restaurantes eu quero acessar a tela de detalhesdo restaurante que eu desejo saber o tempo de espera entatildeo eu posso ver com clarezaas informaccedilotildees e posso traccedilar uma rota para o estabelecimento

∙ Quando eu estiver na tela principal eu quero enviar meu feedback sobre o tempo deespera no estabelecimento que estou entatildeo eu posso ajudar outros usuaacuterios por meiodo aplicativo

24 Caacutelculo da previsatildeo do tempo de espera na filaAtraveacutes de pesquisas em busca de meacutetodos estatiacutesticos para se estudar o comportamento

das filas foram encontradas as trecircs metodologias descritas nesta seccedilatildeo Este capiacutetulo conteacutema explicitaccedilatildeo do problema estudado e suas possiacuteveis soluccedilotildees

241 Descriccedilatildeo do problema

Para que se chegasse a uma soluccedilatildeo apropriada o problema de espera em fila precisouser estudado Esse problema pode ser descrito da seguinte forma dado um restaurante aentrada nesse eacute atraveacutes de uma fila Essa fila tem seu tamanho redefinido agrave medida quenovos clientes chegam e saem dela A saiacuteda dos clientes pode ser devido a desistecircncia ou aacomodaccedilatildeo deles nas mesas A entrada eacute definida pela disponibilizaccedilatildeo de lugares livres agravemedida em que os grupos que estavam alocados terminam seu atendimento

Figura 25 Esquema simplificado do funcionamento do processo em um restaurante

A fila de espera eacute influenciada por dois fatores a taxa de chegada do cliente e a taxa deatendimento nas mesas

∙ chegada em restaurantes a chegada de clientes eacute definida por uma taxa O clienteneste caso representa um grupo com tamanho variaacutevel A distribuiccedilatildeo do tamanho dogrupo nas chegadas eacute variaacutevel

∙ O atendimento a alocaccedilatildeo do grupo eacute organizada pela recepccedilatildeo O meacutetodo utilizadopor eles natildeo eacute padronizado e muitas vezes eacute completamente subjetivo Por exemplose acontecer de um grupo grande e vaacuterios casais chegarem ao mesmo tempo e nesse

24 CAacuteLCULO DA PREVISAtildeO DO TEMPO DE ESPERA NA FILA 9

momento existir um espaccedilo no salatildeo que acomode o grupo (juntando as mesas) outodos os casais (com as mesas separadas) dependendo de quem estaacute responsaacutevel poralocaacute-los cada um receberaacute uma prioridade diferente e essa decisatildeo natildeo eacute padronizada

∙ A disposiccedilatildeo das mesas a disposiccedilatildeo e quantidade de mesas natildeo satildeo padronizadasentre restaurantes de uma mesma rede muito menos entre restaurantes diferentesAleacutem disso a formataccedilatildeo do salatildeo pode ser remodelada de acordo com a necessidadede alocaccedilatildeo dos clientes haacute gerentes que evitam essa movimentaccedilatildeo ou ateacute mesmorestaurantes que natildeo tecircm essa possibilidade

242 Meacutetodos de caacutelculo da espera

Com o problema desenhado desta maneira esboccedilou-se trecircs possiacuteveis meacutetodos de resoluccedilatildeoe um desses foi aplicado na soluccedilatildeo final Os meacutetodos desenvolvidos satildeo meacutedia por periacuteodoaplicaccedilatildeo da teoria das filas e utilizaccedilatildeo de redes neurais Essas teacutecnicas precisam de dadospara serem desenvolvidas e aplicadas Por conta disso buscou-se fontes que suprissem essanecessidade

Captaccedilatildeo dos dados para a anaacutelise

Para que seja possiacutevel aplicar os meacutetodos estudados eacute necessaacuterio obter dados para aplicarna anaacutelise Estes foram obtidos de duas formas a partir de uma parceria com a empresa GetIn [7] desenvolvedora de um aplicativo de gerenciamento de filas de restaurantes e atraveacutesde pesquisas presenciais em restaurantes da rede Outback Steakhouse[14] selecionados para oestudo(Apecircndice A) O aplicativo da Get In possui uma funcionalidade principal realizaccedilatildeode uma reserva em um determinado restaurante O banco de dados manteacutem o registro detodos os usuaacuterios que entram na fila e esses dados satildeo organizados em uma tabela com osseguintes campos

∙ Origem Se a reserva foi realizada de forma remota ou presencial Assim

1 Reserva presencial (na entrada do restaurante incluiacuteda pela recepcionista)

2 Reserva remota (realizada atraveacutes do aplicativo)

∙ Entrada este consiste na data e hora que o usuaacuterio entrou na fila

∙ Qtd Pessoas tamanho do grupo para o qual a reserva foi feita

∙ Prioritaacuterio se este grupo requer atendimento prioritaacuterio

0 Natildeo

1 Sim

∙ Notificado A data e horaacuterio em que o grupo foi notificado que sua mesa estava pronta

ndash Quando NULL a recepcionista natildeo notificou essa pessoa (possivelmente chamoudiretamente pelo nome)

∙ Tempo na Espera Tempo que o grupo ficou ativo na fila de espera (em segundos)

∙ Status Qual a situaccedilatildeo da reserva do grupo Podendo assumir tais valores

0 Cancelado pela recepcionista

10 ESTUDOS PRELIMINARES 24

2 Sentado

3 Cancelado pelo proacuteprio Usuaacuterio

Para melhor entender estes paracircmetros o funcionamento do aplicativo deve ser expli-cado com maior detalhamento O processo de reserva funciona da seguinte forma o usuaacuterioreserva seu lugar atraveacutes do aplicativo ou vai ao restaurante e a recepcionista o adiciona agraveespera No primeiro caso o usuaacuterio tem um tempo de toleracircncia para chegar ao estabeleci-mento apoacutes receber a notificaccedilatildeo caso natildeo consiga chegar a tempo a reserva eacute cancelada Nosegundo caso quando o grupo a ser chamado estaacute proacuteximo da recepccedilatildeo a funcionalidade denotificaccedilatildeo natildeo precisa ser usada o responsaacutevel pode se direcionar diretamente aos clientes echamaacute-los pelo nome Mesmo nesse segundo caso o tempo de espera na fila ainda eacute guardadopois a recepccedilatildeo precisa ldquofecharrdquo a espera do grupo para chamar o proacuteximo

Poreacutem a utilizaccedilatildeo desses dados natildeo foi liberada pela empresa Get In para serem usadoscomo banco de dados do aplicativo somente foram fornecidos dados do mecircs de agosto esetembro de 2016 para que fossem utilizados nas anaacutelises feitas com os modelos estatiacutesticosPara obter dados que poderiam ser utilizados no banco de dados do aplicativo foi neces-saacuterio uma pesquisa presencial onde o grupo visitou alguns restaurantes da rede OutbackSteakhouse para obter informaccedilotildees sobre o tempo de espera nestes estabelecimentos

Foram visitados 5 restaurantes Outback Steakhouse Shopping Eldorado Outback Ste-akhouse Shopping Villa Lobos Outback Steakhouse Shopping Granja Vianna Outback Ste-akhouse Shopping Uniatildeo de Osasco e Outback Steakhouse Shopping Market Place ondequestionamos sobre o tempo de espera por tamanho de grupos (em nuacutemero de pessoas) epor horaacuterio e dia da semana

Ao analisar os dados coletados pela pesquisa presencial notamos que estes estavam sus-cetiacuteveis a erros por terem sido obtidos por meio de diferentes observaccedilotildees humanas Ummeacutetodo para obter dados mais precisos consistiria na realizaccedilatildeo de novas pesquisas no for-mato mediccedilatildeo onde cada integrante do grupo deveria coletar o tempo de espera de cadacliente atraveacutes de um cronocircmetro e calcular o tempo de espera meacutedio nesse horaacuterio Comoo grupo natildeo conseguiria aplicar este meacutetodo optou-se por melhorar a precisatildeo dos dadoscoletados usando como base o graacutefico de horaacuterios de pico disponibilizado pela Google paracada restaurante Essa melhora foi feita utilizando-se caacutelculos de proporccedilatildeo de valores

24 CAacuteLCULO DA PREVISAtildeO DO TEMPO DE ESPERA NA FILA 11

Primeiro meacutetodo Meacutedia por periacuteodo

Figura 26 Esquema do meacutetodo meacutedia por periacuteodo

Para que uma previsatildeo de espera possa ser fornecida ao usuaacuterio essa deve basear-seobrigatoriamente em alguma informaccedilatildeo preacutevia Contudo encontrar uma fonte para taisdados se mostrou uma tarefa muito complicada Para conseguir ainda assim apresentar umtempo de espera em fila meacutetodos de anaacutelise foram definidos de acordo com a quantidade dedados disponiacutevel para cada estabelecimento

De um modo geral neste modelo o caacutelculo do tempo de espera funcionaraacute da seguinteforma calcular-se-aacute a meacutedia de espera para o dia da semana e horaacuterio requeridos pelousuaacuterio sem diferenciar feriados de dias normais Dependendo de quatildeo longo eacute o histoacutericoniacuteveis de especificidade podem ser adicionados ou seja numa busca tempo de espera em 9de Dezembro (segunda-feira) agraves 19h no restaurante X a query selecionaraacute todos os registrosfeitos no dia 9 de dezembro entre as 19h e agraves 20h dos uacuteltimos anos no restaurante X e realizaraacuteessa meacutedia ou pode selecionar apenas linhas de todas as segundas-feiras do mecircs de Dezembrodeste mesmo periacuteodo

∙ Muitos dados neste caso um maior niacutevel de especificidade pode ser aplicado sem autilizaccedilatildeo de outras fontes para complementar o banco de dados

∙ Alguns dados o niacutevel de especificidade eacute bem menor apenas filtrando por dia dasemana e intervalo de hora sem mecircs ou dia especiacutefico no ano Em alguns casos aquantidade de dados eacute tatildeo pequena que deve-se recorrer a outras fontes A Googletem disponibilizado graacuteficos com a distribuiccedilatildeo dos clientes nos horaacuterios de funciona-mento de estabelecimentos Esses dados natildeo estatildeo disponiacuteveis em sua API ou seja natildeo

12 ESTUDOS PRELIMINARES 24

haacute uma forma automaacutetica para que o aproveitamento desses possa ser feito Poreacutemmesmo omitindo-se os valores do graacutefico o perfil da distribuiccedilatildeo e o horaacuterio de picosatildeo aproveitados manualmente para nosso sistema

∙ Poucos dados para este caso fizemos o balanceamento dos dados da Google comas informaccedilotildees retiradas das entrevistas Aleacutem do aproveitamento das informaccedilotildees daGoogle foram realizadas pesquisas com funcionaacuterios dos restaurantes

Segundo meacutetodo Teoria das filas

Filas podem ser vistas como um sistema dinacircmico no qual existe um conjunto de usuaacuteriosque satildeo atendidos por um conjunto de atendentes de acordo com a ordem de chegada dosusuaacuterios A teoria de filas busca utilizando anaacutelises matemaacuteticas estudar o comportamentodestas filas para estimar o tempo de espera com base em um conjunto inicial de dadospreviamente fornecido[30]

Um sistema de filas possui como caracteriacutesticas

∙ Modelo de chegada dos usuaacuterios Utiliza como base o tempo entre as chegadasdos usuaacuterios

∙ Modelo de serviccedilo (atendimento aos usuaacuterios) Utiliza como base o tempo gastono atendimento ao usuaacuterio No caso dos restaurantes equivale ao tempo que um grupopassa na mesa ateacute a sua saiacuteda

∙ Nuacutemero de servidores Eacute o nuacutemero de atendentes disponiacuteveis no sistema Para omodelo do restaurante este equivale agraves mesas disponiacuteveis no salatildeo

∙ Capacidade do sistema Eacute o nuacutemero de usuaacuterios que o sistema eacute capaz de atenderInclui o nuacutemero de usuaacuterios que estatildeo sendo atendidos somado com os que esperamna fila Se este paracircmetro natildeo for informado o sistema eacute considerado com capacidadeilimitada

∙ Tamanho da populaccedilatildeo nuacutemero potencial de clientes que podem chegar a umsistema Pode ser finito ou infinito

∙ Disciplina da fila A disciplina da fila pode ser FIFO (first in first out) - o primeiroa chegar eacute o primeiro a ser atendido LIFO (last in first out) - o uacuteltimo a chegar eacuteo primeiro a ser atendido ALEATOacuteRIO - os atendimentos satildeo feitos sem qualquerpreocupaccedilatildeo com a ordem de chegada COM PRIORIDADE - os atendimentos satildeofeitos de acordo com prioridades estabelecidas No caso dos restaurantes a disciplinaadotada eacute a FIFO poreacutem esta pode mudar de acordo com o atendente responsaacutevel

Os tempos mencionados nos modelos de chegada e de serviccedilo podem ser constantesquando os intervalos entre as chegadas dos usuaacuterios satildeo iguais ou variaacuteveis quando os valo-res desses intervalos variam Nesse uacuteltimo caso o intervalo de tempo segue uma distribuiccedilatildeode probabilidades Nesse modelo tambeacutem existe a taxa meacutedia de chegada dos usuaacuterios porunidade de tempo ou seja quantos usuaacuterios chegam em uma hora

As filas podem ser moldadas em trecircs situaccedilotildees baacutesicas como descrito por Azmat Nafees[30]

∙ Modelo de fila de canal uacutenico com fila uacutenica e atendimento uacutenico (Figura 27)

24 CAacuteLCULO DA PREVISAtildeO DO TEMPO DE ESPERA NA FILA 13

∙ Modelo de fila de canal uacutenico com fila uacutenica e muacuteltiplos atendimentos paralelos (Fi-gura 28)

∙ Modelo de fila de canal uacutenico com muacuteltiplas filas e muacuteltiplos atendimentos paralelos(Figura 29)

Figura 27 Modelo de fila de canal uacutenico com fila uacutenica e atendimento uacutenico

Figura 28 Modelo de fila de canal uacutenico com fila uacutenica e muacuteltiplos atendimentos paralelos

Figura 29 Modelo de fila de canal uacutenico com muacuteltiplas filas e muacuteltiplos atendimentos paralelos

Tambeacutem por Azmat Nafees nesses modelos trecircs subprocessos podem ser vistos

∙ Processo de chegada Eacute um processo contiacutenuo do evento ldquochegada de clientesrdquo ouseja quando o evento ocorre o processo aguarda a ocorrecircncia do proacuteximo evento Esseevento coloca um cliente na fila quando ele chega

14 ESTUDOS PRELIMINARES 24

∙ Processo de espera Eacute um processo que inclui o evento ldquocomece a servir o proacuteximocliente da filardquo que retira um cliente da fila o coloca no processo de atendimento eespera a conclusatildeo do evento ldquocliente servidordquo para recomeccedilar Nele se trabalha comtamanho e disciplina da fila

∙ Processo de atendimento Eacute um processo que inclui o evento ldquocliente servidordquo eespera a conclusatildeo do evento ldquocomece a servir o proacuteximo cliente da filardquo para recomeccedilarNele se trabalha com tipo taxa e tempo de atendimento

Dentre esses 3 modelos o que mais se encaixa na situaccedilatildeo de um restaurante eacute o segundomodelo canal uacutenico com fila uacutenica e muacuteltiplos atendimentos paralelos O processo de chegadade novos clientes na fila eacute tido como aleatoacuterio

Terceiro meacutetodo Rede Neural

Rede Neural eacute uma teacutecnica computacional inspirada no sistema nervoso que com o auxiacute-lio de um modelo matemaacutetico apresenta respostas para problemas de decisatildeo Esses modelosfuncionam da seguinte forma primeiro um conjunto de dados (conjunto de treinamento) eacuteapresentado ao sistema e este aprende com ele atraveacutes de reconhecimento de padratildeo entatildeocoloca-se o sistema para analisar os dados (conjunto de teste) para os quais deseja-se obteralgum resultado Este processo eacute chamado de aprendizagem de maacutequina Quanto melhor forseu treinamento mais precisas seratildeo as respostas para o segundo conjunto

Uma rede neural eacute formada por subestruturas chamadas neurocircnios Um neurocircnio tem oseguinte funcionamento ele recebe como entrada sinais cada sinal recebe um peso de acordocom a influecircncia dele na saiacuteda e uma soma eacute feita para produzir o niacutevel de atividade entatildeodependendo se o niacutevel de atividade exceder o limite dado pela funccedilatildeo de transferecircncia aresposta eacute produzida[27]

Software Multiple Back-Propagation

Para implementar a soluccedilatildeo baseada em redes neurais foi usado o Software MultipleBack-Propagation [1] Este eacute um software de faacutecil utilizaccedilatildeo que fornece uma rede a qualaprende atraveacutes do processo de propagaccedilatildeo inversa Esse meacutetodo baseia-se na comparaccedilatildeodos dados esperados (conjunto de teste) com os dados obtidos a partir do treinamento senecessaacuterio adaptaccedilotildees satildeo feitas a estrutura da rede para melhor aproximar aos dados doconjunto teste e isso eacute chamado de propagaccedilatildeo inversa

Por se tratar de um meacutetodo de aprendizagem de maacutequinas para se obter um resultadodeve-se treinar o algoritmo Primeiramente submete-se o conjunto de treinamento ao soft-ware para isso foi escolhido o mecircs de Agosto O criteacuterio de parada para o treino eacute o erroquadraacutetico meacutedio o qual teve seu valor atribuiacutedo para 001

Capiacutetulo 3

Tecnologias utilizadas

31 O sistema AndroidAndroid eacute um Sistema operacional open source (software de coacutedigo aberto o qual as

pessoas podem acessar e modificar para contribuir com o projeto [25]) e para dispositivosmoacuteveis desenvolvido pela Google baseado no Kernel do Linux e utilizado principalmente emdispositivos touchscreen Atualmente o Android eacute o sistema operacional que deteacutem a maiorparcela do mercado[17] com 836 dos dispositivos contra 134 do iOS da Apple

A Google tambeacutem oferece um ambiente de desenvolvimento para a plataforma Androidchamado Android Studio no qual os aplicativos satildeo criados e exportados para os dispositi-vos moacuteveis Aplicativos Android satildeo programados na linguagem Java com vaacuterias bibliotecasdisponibilizadas pela Google para suporte ao sistema operacional

A escolha da plataforma foi feita principalmente por conta de o sistema possuir a maiorparte dos usuaacuterios de Smartphones e tambeacutem pela ampla comunidade ativa de desenvolve-dores agrave qual se pode recorrer em casos de duacutevidas e problemas tornando suas resoluccedilotildeesmais raacutepidas e com muacuteltiplas alternativas Outros motivos que contribuiacuteram para a escolhado Android foram

∙ A disponibilidade do ambiente de desenvolvimento Android Studio que possui todosos recursos necessaacuterios para desenvolver um aplicativo funcional logo apoacutes a instalaccedilatildeosem a necessidade de utilizar outras dependecircncias as quais satildeo gerenciadas automati-camente pelo proacuteprio software

∙ O fato de no mercado brasileiro o sistema Android se encontrar em 918 dos dispo-sitivos segundo pesquisa da Kantar[18] e dado a pesquisa realizada para definiccedilatildeo depuacuteblico alvo onde foi possiacutevel perceber que 639 dos entrevistados utilizam smartpho-nes com sistema Android

∙ A utilizaccedilatildeo da linguagem de programaccedilatildeo Java para desenvolvimento que jaacute eraconhecida e fora utilizada anteriormente ao contraacuterio das linguagens Objective C eSwift linguagens utilizadas para desenvolver aplicativos para o sistema iOS Assimcomo a disponibilidade de dispositivos por parte do grupo que em sua maioria era decelulares com o sistema Android

15

16 TECNOLOGIAS UTILIZADAS 31

Figura 31 Parcela de mercado dos dispositivos no Brasil

311 Organizaccedilatildeo de uma aplicaccedilatildeo Android

Aplicativos Android satildeo divididos em componentes Haacute quatro tipos de componentespresentes Activities (ou atividades) Services (ou serviccedilos) Content providers (ou provedoresde conteuacutedo) Broadcast receivers (ou receptores de transmissatildeo)

∙ Activities Satildeo as telas e interfaces do usuaacuterio Cada tela de uma aplicaccedilatildeo eacute repre-sentada por uma activity e cada activity eacute independente de outras apesar de seremcomponentes de uma mesma aplicaccedilatildeo Isso se daacute pelo fato de haver a possibilidade deutilizar activities de aplicativos durante a execuccedilatildeo de outros Atividades satildeo iniciadase se comunicam entre si atraveacutes de objetos chamados Intent que transferem um pacotede dados que pode ser carregado no iniacutecio da nova atividade

∙ Services Sempre satildeo executados em segundo plano sem interferir na experiecircncia dousuaacuterio geralmente para realizar operaccedilotildees longas ou realizar operaccedilotildees de troca dedados enquanto o usuaacuterio estaacute utilizando outra aplicaccedilatildeo em primeiro plano

∙ Content Providers Satildeo gerenciadores de dados de aplicaccedilotildees Android utilizadospara ler e salvar dados compartilhados ou secretos dos aplicativos e do sistema

∙ Broadcast Receivers Satildeo componentes responsaacuteveis por obter eventos que aconte-ceram em outras aplicaccedilotildees ou no sistema e direcionar dados sobre esses eventos paraeventuais aplicaccedilotildees que necessitem destes dados alguns exemplos de eventos obtidospelos receptores de transmissatildeo satildeo tela desligada e bateria fraca

Aleacutem dos componentes uma parte importante de uma aplicaccedilatildeo Android eacute o ArquivoManifest que eacute uma declaraccedilatildeo de permissotildees serviccedilos e exigecircncias de hardware necessaacuterios

33 JSON 17

para o funcionamento do aplicativo Outra funccedilatildeo eacute possuir declaraccedilotildees de todos os compo-nentes utilizados no projeto nomes iacutecones entre outros

As interfaces de usuaacuterio do Android satildeo definidas em arquivos XML (eXtensible MarkupLanguage)[26] nos quais estatildeo declarados todos os layouts e configuraccedilotildees das telas Essesarquivos de layout satildeo depois inflados e satildeo gerados os componentes visuais da aplicaccedilatildeoEssa estrutura tem como objetivo facilitar o design da interface do usuaacuterio jaacute que arquivosxml satildeo de faacutecil compreensatildeo do desenvolvedor

32 JSONJSON ou Javascript Object Notation eacute um formato de dados amplamente utilizado para

troca de informaccedilotildees entre programas Possui uma notaccedilatildeo simples para grande parte dosprogramadores pois se assemelha a convenccedilotildees utilizadas em linguagens de programaccedilatildeomuito conhecidas como C C++ Python e Java O objetivo eacute que ele seja de faacutecil entendi-mento tanto para pessoas como para maacutequinas[11]

Um arquivo JSON eacute organizado como um objeto contendo pares nomevalorseparadospor viacutergulas e dentro de chaves(lsquolsquo rsquorsquo) ou como um array que eacute uma lista de valores separa-dos por viacutergulas e entre colchetes(lsquo[lsquo rsquo]rsquo) Um valor por sua vez pode ser um objeto ou umarray mas tambeacutem um nuacutemero inteiro ou uma String entre outros

Um exemplo de arquivo JSON eacute

1 2 Carros [3 4 Nome Scen ic 5 Marca Renault 6 Ano 20127 8 9 Nome Sentra

10 Marca Nissan 11 Ano 200912 13 ]14

33 Google APIsAPIs (Application Program Interfaces) satildeo interfaces para facilitar a troca de informa-

ccedilotildees entre aplicaccedilotildees utilizando comandos especiacuteficos[15]

Ao longo do desenvolvimento algumas APIs fornecidas pela Google foram utilizadascomo fonte de informaccedilotildees adicionais para o aplicativo

∙ Google Maps Distance Matrix API Esta API eacute utilizada para obter o tempo emsegundos de trajeto entre dois pontos (latlong) no mapa podem ser consultados ostempos de trajeto de carro bicicleta a peacute e utilizando transporte puacuteblico[28] Esta eacute

18 TECNOLOGIAS UTILIZADAS 35

uma API web logo utiliza-se um request http para realizar uma consulta

Por exemplo o request

httpsmapsgoogleapiscommapsapidistancematrixjsonorigins=Seattleampdestinations=Victoria+BCampkey=[user_key]

retorna o JSON

1 2 des t ina t i on_addre s s e s [ Vic tor ia BC Canada ] 3 o r i g in_addre s s e s [ Sea t t l e WA EUA ] 4 rows [5 6 e lements [7 8 d i s t anc e 9 text 172 km

10 value 17166811 12 durat ion 13 text 4 horas 40 minutos 14 value 1680915 16 s t a tu s OK17 18 ]19 20 ] 21 s t a tu s OK22

no qual eacute possiacutevel obter o tempo de trajeto em segundos

∙ Google Maps Android API Esta API eacute utilizada para habilitar o uso de mapasda Google integrados agrave aplicaccedilatildeo jaacute disponiacutevel com todas as funcionalidades de zoome arrastar presentes no aplicativo nativo permitindo tambeacutem a personalizaccedilatildeo comoa adiccedilatildeo de pontos definidos pelo usuaacuterio ao mapa

34 Localizaccedilatildeo do UsuaacuterioOutro serviccedilo que foi utilizado com o intuito de obter o tempo de trajeto e a lista ordenada

de forma personalizada de restaurantes foi a localizaccedilatildeo do usuaacuterio que eacute obtida atraveacutes doGPS presente nos smartphones Um objeto de localizaccedilatildeo eacute criado e realiza a comunicaccedilatildeocom o serviccedilo de localizaccedilatildeo do aparelho Ao obter a localizaccedilatildeo ele lanccedila um evento quepode ser acessado por outras partes da aplicaccedilatildeo obtendo a localizaccedilatildeo mais atualizada dodispositivo

36 CONTROLE DE VERSAtildeO 19

35 Controle de VersatildeoControle de versatildeo eacute uma praacutetica usada para manter a organizaccedilatildeo do coacutedigo e do seu de-

senvolvimento quando muitos desenvolvedores colaboram conjuntamente Existem softwaresque auxiliam essa organizaccedilatildeo registrando todas as mudanccedilas feitas ao longo do processo eque possui recursos que permitem que vaacuterios usuaacuterios trabalhem nos mesmos arquivos semperda de informaccedilotildees

No caso do Git [8] o projeto fica organizado em uma estrutura de aacutervore onde cadacommit (checkpoints criados pelos membros do grupo durante o processo) eacute marcado porum noacute para onde se pode retornar quando necessaacuterio Existem tambeacutem estruturas chama-das branches que satildeo bifurcaccedilotildees na estrutura para que partes do projeto sejam criadasseparadamente sem interferir com a linha principal As branches depois satildeo unidas agrave linhaprincipal atraveacutes do comando merge

Neste projeto o serviccedilo de controle de versatildeo utilizado foi o Bitbucket [2] (que eacute um ser-viccedilo web-based de controle de versatildeo que utiliza Git) com auxiacutelio do software SourceTree[19]que eacute uma interface graacutefica para os serviccedilos do Bitbucket onde eacute possiacutevel visualizar com maisfacilidade as fases do desenvolvimento do projeto e realizar os comandos mais intuitivamente

Figura 32 Interface do SourceTree que mostra o controle de versionamento do projeto

36 Banco de dadosCom o intuito de deixar o aplicativo mais completo guardando informaccedilotildees dos usuaacuterios

e dos estabelecimentos optou-se por utilizar-se um banco de dados Alguns exemplos de

20 TECNOLOGIAS UTILIZADAS 36

banco de dados aprendidos no curso Laboratoacuterio de Banco de Dados foram

∙ SQL (Structured Query Language - Linguagem de Consulta Estruturada)[20] umalinguagem para atualizar deletar e requisitar informaccedilotildees atraveacutes de consultas emtabelas que possuem relaccedilatildeo entre si

∙ noSQL[13] um banco de dados que armazena e recupera informaccedilotildees modeladas deuma forma onde natildeo satildeo usadas tabelas relacionais

Como este uacuteltimo natildeo foi o foco da disciplina por falta de tempo decidiu-se por utilizaacute-lopara que o grupo pudesse aprender melhor esse modelo

Outra decisatildeo tomada foi a hospedagem dos dados na nuvem ou seja colocaacute-los em umservidor que natildeo seja local e conseguir acessaacute-los atraveacutes de uma conexatildeo via internet Dessemodo os dados sempre estaratildeo disponiacuteveis para serem consultados

361 Firebase

Buscando-se atender as decisotildees tomadas sobre o banco de dados procuramos um serviccedilode banco de dados da Google por conter ampla integraccedilatildeo com a plataforma de desenvolvi-mento Android por ser conhecido bastante utilizado e por possuir uma ampla comunidadede desenvolvedores dispostos a oferecer auxiacutelio em foacuteruns de discussatildeo de coacutedigos

Para atender esses requisitos escolheu-se o Firebase Realtime Database[6] desenvolvido edisponibilizado pela Google que consiste em um banco de dados noSQL com armazenamentona nuvem Esse serviccedilo armazena os dados do usuaacuterio no servidor da Google em formatoJSON e a cada alteraccedilatildeo sincroniza em tempo real com todos os clientes conectados

O grupo pode observar as seguintes vantagens de se trabalhar com a ferramenta existea sincronizaccedilatildeo em tempo real dos dados de todos os clientes e sua disponibilidade mesmocom o aplicativo offline ou seja quando o aplicativo natildeo estiver conectado a internet osdados do dispositivo moacutevel seratildeo armazenados e sincronizados com o banco de dados assimque a conexatildeo estiver disponiacutevel novamente Aleacutem disso os desenvolvedores possuem acessoa um console online (figura 33) onde o JSON eacute mostrado numa interface interativa de umaforma mais amigaacutevel e no qual eacute permitido editaacute-lo facilmente

37 CROWDSOURCING 21

Figura 33 Console online do Firebase onde os dados satildeo mostrados de forma mais amigaacutevel eintuitiva

Outra observaccedilatildeo feita foi que o Firebase Realtime Database funciona como o esperadose ele guardar uma coacutepia local dos dados em um arquivo JSON no celular Poreacutem isso natildeofoi visto como um problema pois como essa coacutepia pode ser salva em um arquivo texto oespaccedilo utilizado diminui consideravelmente

Na primeira vez que os dados satildeo criados e todas as vezes em que os dados forem atua-lizados por algum dispositivo moacutevel eacute enviada uma atualizaccedilatildeo que seraacute recebida atraveacutes delisteners por todos os aparelhos que utilizam o aplicativo para que eles atualizem seus res-pectivos JSONs Listeners satildeo interfaces de comunicaccedilatildeo que executam uma seacuterie de accedilotildeesassim que um outro evento esperado acontece

37 CrowdsourcingO termo Crowdsourcing tem origem nas palavras da liacutengua inglesa Crowd (multidatildeo) e

Outsourcing (terceirizaccedilatildeo) e eacute definido pelo dicionaacuterio Merriam Webster como A praacuteticade obtenccedilatildeo de serviccedilos ideias ou conteuacutedo solicitando contribuiccedilotildees de grandes grupos depessoas e especialmente da comunidade online [3] Esta praacutetica eacute utilizada para que sejapossiacutevel agrave comunidade contribuir com dados para algum programa ou serviccedilo como no apli-cativo Waze do qual a principal fonte de dados de tracircnsito acidentes e radares eacute obtida pormeio dos proacuteprios usuaacuterios

Capiacutetulo 4

Desenvolvimento do Projeto

Este capiacutetulo aborda o processo de desenvolvimento do projeto iniciado com o preen-chimento do diagrama Canvas e uma pesquisa de mercado direcionada ao usuaacuterio A partirdas informaccedilotildees coletadas foi possiacutevel projetar um aplicativo que atendesse as necessidadesexpostas pela pesquisa e selecionar as tecnologias necessaacuterias Tambeacutem eacute abordada a aplica-ccedilatildeo dos diferentes meacutetodos de caacutelculo da previsatildeo de tempo de espera que foram estudadose explicados no Capiacutetulo 2 Por fim satildeo expostas as diferentes versotildees do aplicativo duranteo processo e seus detalhes

41 Pesquisa de MercadoAntes de iniciar-se o desenvolvimento praacutetico algumas questotildees foram levantadas se

um aplicativo com as funcionalidades escolhidas seria de alguma forma uacutetil para o usuaacuterioe se sim qual metodologia deveria ser usada para que este produto fosse entregue o maiscompleto possiacutevel ateacute o final do ano Para responder a primeira pergunta desenvolveu-seum questionaacuterio

411 Pesquisa com o usuaacuterio

O questionaacuterio foi desenvolvido para avaliar a viabilidade do aplicativo e suas funciona-lidades e foi criado utilizando-se o Google Forms [9] Essa eacute uma ferramenta desenvolvidapelo Google que possibilita a criaccedilatildeo de formulaacuterios contendo diversos formatos de pergun-tas tanto dissertativas quanto de muacuteltipla escolha

Seguindo os princiacutepios de desenvolvimento de questionaacuterios [4] o conjunto de perguntasfoi mantido curto simples e de faacutecil entendimento Tambeacutem variou-se o tipo de questotildeesentre estruturadas (questotildees com respostas em forma de alternativas) e desestruturadas(questotildees com respostas em formato texto) seguindo esses mesmos princiacutepios para captarmelhor as informaccedilotildees dos entrevistados e evitar erros de entendimento

Com as respostas do questionaacuterio tinha-se o intuito de traccedilar um possiacutevel puacuteblico alvoconhecer seu modo de uso de dispositivos moacuteveis e validar a aplicabilidade de diferentesfuncionalidades pretendidas inicialmente sendo essas engajamento do usuaacuterio atraveacutes denotificaccedilotildees do sistema aceitaccedilatildeo de sugestotildees de locais alternativos avaliaccedilatildeo da existecircnciado problema que queremos resolver (se este aplicativo supre uma necessidade real do usuaacute-rio) e aceitaccedilatildeo do aplicativo

23

24 DESENVOLVIMENTO DO PROJETO 41

Para a divulgaccedilatildeo redes sociais como Facebook [5] e sistemas de mensagem instantacircneascomo WhatsApp foram usados e o envio de respostas foi restrito ateacute trecircs semanas apoacutes suaprimeira postagem Neste periacuteodo foram obtidas 210 respostas as quais ajudaram a definiros aspectos do sistema a ser desenvolvido

O questionaacuterio foi dividido em duas subseccedilotildees perfil do usuaacuterio e funcionalidade Comelas obteve-se os seguintes resultados

41 PESQUISA DE MERCADO 25

Questatildeo 1

Figura 41 Graacutefico pizza da distribuiccedilatildeo das respostas em relaccedilatildeo a idade dos pesquisados

As faixas de idade apresentadas estatildeo desbalanceadas por natildeo terem a mesma quantidadede anos em cada uma poreacutem essa divisatildeo foi pensada levando-se em conta a fluecircncia comtecnologia que cada idade possui Com o resultado verificou-se que do puacuteblico alcanccediladocom a pesquisa a maioria estaacute na faixa de 18 a 25 anos de idade assumida como parcelacom maior conhecimento tecnoloacutegico

Questatildeo 2

Figura 42 Graacutefico pizza da distribuiccedilatildeo das respostas em relaccedilatildeo ao sistema operacional

Esta questatildeo foi pensada para medir a porcentagem de cada sistema operacional pre-sente nos celulares do puacuteblico Com ela descobriu-se que 639 das pessoas dentro desse

26 DESENVOLVIMENTO DO PROJETO 41

grupo possuem o sistema Android enquanto 234 possuem iOS e 38 Windows phoneEssa pergunta foi incluiacuteda para um melhor direcionamento do desenvolvimento do aplicativo

Uma questatildeo levantada ao aplicar esse questionaacuterio foi a dificuldade que algumas pessoasencontraram para identificar a versatildeo do proacuteprio aparelho Poreacutem para manter a consistecircnciadas respostas decidiu-se natildeo mudar nada nesta questatildeo para remediar isso

Questatildeo 3

Figura 43 Graacutefico em barras da distribuiccedilatildeo de frequecircncias mensais de cada local analisado

41 PESQUISA DE MERCADO 27

Questatildeo 4

Figura 44 Graacutefico em pizza da distribuiccedilatildeo de interesse do usuaacuterio no tempo de espera de cadalocal

A princiacutepio viu-se muitas possiacuteveis aplicaccedilotildees para a previsatildeo de tempo de espera Paraentender qual seria a prioridade do puacuteblico as questotildees acima foram incluiacutedas A primeiraverificou a frequecircncia de visitas em alguns locais e a segunda serviu para analisar qualestabelecimento despertava mais interesse nos entrevistados quanto ao quesito fila Nos doiscasos restaurantes se destacaram com o maior interesse

Questatildeo 5

Figura 45 Graacutefico em barras da distribuiccedilatildeo de interesse do usuaacuterio por cada item avaliado

Para acompanhar o dado de espera e fornecer mais informaccedilotildees relevantes ao usuaacuteriosem potencial perguntou-se quais outras informaccedilotildees eles acham interessante saber sobre umdeterminado estabelecimento Com isso descobriu-se que a faixa de preccedilo o trajeto ateacute olocal e o cardaacutepio seriam dados importantes de se obter juntamente com o tempo de espera

28 DESENVOLVIMENTO DO PROJETO 41

Questatildeo 6O que vocecirc costuma fazer para evitar filasNeste ponto testou-se se a soluccedilatildeo proposta atraveacutes do aplicativo resolveria o problema dousuaacuterio de uma forma melhor do que a soluccedilatildeo atualmente utilizada Para isso foi perguntadoo que as pessoas fazem para evitar filas e as principais respostas foram

∙ Evitar horaacuterios de pico

∙ Chegar cedo

∙ Ir em outro lugar caso uma fila seja encontrada

∙ Tentar realizar reservas antecipadamente

∙ Se distrair com livroscelular

Notou-se que as soluccedilotildees utilizadas atualmente natildeo suprem as necessidades dos entre-vistados pois mesmo em horaacuterios natildeo convencionais pode-se encontrar filas ou quandodecide-se esperar na fila muito tempo eacute perdido Concluiu-se que a soluccedilatildeo proposta a par-tir do aplicativo resolve de forma mais abrangente o problema pois ajuda o usuaacuterio a evitarhoraacuterios de pico inesperados

Questatildeo 7

Figura 46 Graacutefico em pizza da distribuiccedilatildeo do meio de transporte utilizado pelos usuaacuterios

Essa questatildeo foi formulada com o objetivo de verificar quais meios de transporte seriamincluiacutedos com previsatildeo de tempo de trajeto no aplicativo Foi verificado que a maioria dosentrevistados utilizam transporte puacuteblico seguido por carro

41 PESQUISA DE MERCADO 29

Questatildeo 8

Figura 47 Graacutefico em pizza da distribuiccedilatildeo do interesse do usuaacuterio pela informaccedilatildeo fornecida

Questatildeo 9

Figura 48 Graacutefico em pizza da distribuiccedilatildeo de quantidade de quilocircmetros que o usuaacuterio sedeslocaria para ir a um local com menos fila

Com essas questotildees foi verificado que algo importante para o usuaacuterio eacute saber de outrosestabelecimentos que possam oferecer tempos de espera menores nas redondezas de onde ousuaacuterio se encontra que eacute uma das funcionalidades que desejaacutevamos utilizar no sistema

30 DESENVOLVIMENTO DO PROJETO 41

Questatildeo 10

Figura 49 Graacutefico em barras da distribuiccedilatildeo de sentimento do usuaacuterio em relaccedilatildeo a notificaccedilatildeode aplicativos

Questatildeo 11

Figura 410 Graacutefico em pizza da distribuiccedilatildeo de opiniatildeo do usuaacuterio sobre desabilitar notificaccedilotildeesem celular

42 PESQUISA DE MERCADO 31

Questatildeo 12

Figura 411 Graacutefico em pizza da distribuiccedilatildeo de opiniatildeo do usuaacuterio sobre habilitar GPS emcelular

A ideia inicial era poder usar o GPS para verificar a localizaccedilatildeo do usuaacuterio e enviarnotificaccedilotildees quando este estivesse parado nas proximidades de algum dos estabelecimentoscadastrados Para que essa funcionalidade possa existir eacute necessaacuterio que o aplicativo tenhaacesso agrave localizaccedilatildeo precisa da pessoa atraveacutes do GPS ou internet ateacute mesmo quando natildeoestiver aberto Aleacutem disso tambeacutem eacute necessaacuterio que as notificaccedilotildees estejam habilitadas parafinalizar esta interaccedilatildeo Entatildeo as perguntas 10 11 e 12 foram incluiacutedas no questionaacuterio Ob-servando as respostas foi possiacutevel verificar que 295 das pessoas que responderam deixamambas as funcionalidades habilitadas (GPS e notificaccedilotildees) Com isso pudemos prosseguircom essa ideia e tambeacutem pensar em possiacuteveis alternativas de interaccedilatildeo e engajamento como usuaacuterio

Por conta dessa pesquisa ter sido compartilhada atraveacutes das contas das redes sociais ecomunicadores dos componentes deste grupo sabe-se que este pode apresentar um resultadoviesado mas que mesmo assim natildeo deve ser desconsiderado e que muito ajudou a sanar asduacutevidas iniciaisComo resultado traccedilamos o perfil do entrevistado

∙ Faixa etaacuteria predominante entre 18 e 30 anos

∙ Possui sistema operacional Android (versotildees 4 5 e 6)

∙ Vai a restaurantes com certa frequecircncia mensal resultando em interesses sobre infor-maccedilotildees relacionadas a esse estabelecimento

∙ Costuma chegar cedo ou evitar os horaacuterios de pico para evitar filas nos locais

∙ Carro e transporte coletivo satildeo os principais meios de transporte

∙ Se deslocaria para um estabelecimento semelhante que possui menos fila contanto queeste fique num raio de 2km de distacircncia

32 DESENVOLVIMENTO DO PROJETO 43

42 Projeto do AplicativoO grupo comeccedilou o projeto com o preenchimento do diagrama Canvas(figura 412) apre-

sentado na Seccedilatildeo 21 Desse modo foi adquirida uma ideia mais consistente e uma base paracomeccedilar a implementaccedilatildeo

Figura 412 Diagrama Canvas preenchido pelo grupo

Com o modelo de negoacutecios definido e com base no resultado da pesquisa com o usuaacuterioapresentada na seccedilatildeo seguinte foram aplicadas pequenas mudanccedilas no projeto para melhoradequar-se agraves necessidades e ao perfil do puacuteblico alvo

Para o desenvolvimento foi utilizado um meacutetodo aacutegil baseado no scrum com sprints de3 a 4 semanas devido agrave disponibilidade dos membros do grupo Os encontros natildeo eram diaacute-rios como recomendado para o meacutetodo scrum tambeacutem em razatildeo da disponibilidade Haviamstand ups (discussotildees raacutepidas no comeccedilo de cada encontro) e retrospectivas ao final de cadasprint A cada sprint eram selecionadas histoacuterias e tarefas para serem executadas e caso natildeofossem concluiacutedas ao final da iteraccedilatildeo eram inseridas ao backlog e feitas no sprint seguinte

43 Aplicaccedilatildeo dos meacutetodos de caacutelculo de espera

431 Aplicando a meacutedia por periacuteodo

Aplicando-se no trecho abaixo a teacutecnica desenvolvida na Seccedilatildeo 242 para uma queryrealizada no dia 19082016 no intervalo de 2040 - 2055 analisa-se a semana anterior quepossua tais intervalos Assim o saacutebado dia 06082016 seraacute selecionado

43 APLICACcedilAtildeO DOS MEacuteTODOS DE CAacuteLCULO DE ESPERA 33

Entrada Qtd Pessoas Notificado Espera

6816 2043 2 862016 2053 1606

6816 2044 2 862016 2055 674

6816 2048 2 862016 2056 528

6816 2048 2 862016 2057 520

6816 2051 2 862016 2107 1118

6816 2051 3 862016 2110 1305

6816 2052 2 862016 2110 1273

6816 2052 2 862016 2111 1179

6816 2053 2 862016 2112 1217

6816 2053 2 NULL 59

6816 2054 3 862016 2119 1541

6816 2055 2 862016 2117 1444

6816 2055 2 862016 2120 1570

6816 2055 2 862016 2122 1613

Tabela 41 Trecho do dia 06082016 entre os horaacuterios das 2043 agraves 2055 um intervalo de 12minutos retirado dos dados da empresa Get In

Com esses dados obteve-se a meacutedia de espera de 1080 segundos (18 minutos) a qualseria sugerida para o usuaacuterio com a busca e desvio padratildeo de 465144719 segundos (775 mi-nutos) Dentro desse intervalo tem-se como maacuteximo tempo de espera 1613 segundos (2688minutos) e como miacutenimo 59 segundos (1 minuto) Analisando-se os dados do dia 19082016no mesmo periacuteodo temos

34 DESENVOLVIMENTO DO PROJETO 43

Entrada Pessoas Notificado Espera Erro previsatildeo Erro p 2 pessoas

19816 2043 2 8192016 2051 544 -563 522

19816 2043 2 8192016 2052 605 -502 461

19816 2044 2 8192016 2056 723 -384 343

19816 2046 4 8192016 2119 1988 881 X

19816 2048 2 8192016 2102 919 188 147

19816 2051 2 8192016 2103 821 286 245

19816 2051 3 8192016 2108 1773 666 X

19816 2053 2 8192016 2110 1083 24 -17

19816 2053 2 8192016 2111 1105 2 -39

19816 2053 2 8192016 2112 1169 62 -103

19816 2055 2 8192016 2114 1447 340 -381

Tabela 42 Trecho do dia 19082016 entre os horaacuterios das 2043 agraves 2055um intervalo de 12minutos retirado dos dados da empresa Get In

Ou seja se um grupo chegasse dentro desse periacuteodo e a previsatildeo dada fosse a meacutediaobtida anteriormente o erro calculado pela diferenccedila entre o tempo sugerido e o real tempode espera estaria no intervalo de 15 minutos para menos ou 8 minutos para mais Sendoesse um valor aceitaacutevel

Um proacuteximo passo eacute a restriccedilatildeo dos registros a grupos com 2 integrantes Com tal restri-ccedilatildeo a previsatildeo de espera eacute de 1066 segundos (1776 minutos) Aplicando essa nova meacutedia aosregistros com 2 integrantes do dia 19082016 obteacutem-se um erro (Coluna 6 - erro previsatildeopara 2 pessoas) menor do que o anterior O intervalo do erro calculado neste caso seria de 522segundos (87 minutos) para mais e 381 segundos (635 minutos) para menos Este resultadoeacute ainda mais favoraacutevel mostrando que a inclusatildeo de mais filtros para o caacutelculo da previsatildeomelhorou o tempo previsto

432 Aplicando teoria das filas

A teoria das filas (Seccedilatildeo 242) eacute uma ferramenta muito completa que calcula muitos dadosuacuteteis para a previsatildeo de espera Contudo por conta da necessidade de informaccedilotildees sobreo tempo de atendimento a qual natildeo estaacute contida no banco utilizado esta teoria natildeo podeser aplicada neste caso Poreacutem esse dado pode ter um valor assumido para que a utilizaccedilatildeodessa teoria fosse possiacutevel entretanto a sua precisatildeo ficaria comprometida e imprevisiacutevel

433 Aplicando redes neurais

Para aplicar o que foi estudado na Seccedilatildeo 242 foi executado o software com o mecircs deAgosto como teste o mecircs de Setembro como treino e o limite do erro quadraacutetico como 001 eobteve-se a tabela presente no apecircndice B Na tabela podemos ver o tempo de fila esperadoou seja o tempo contido na tabela do mecircs de Setembro o tempo que o algoritmo deu comoresposta baseado no mecircs de Agosto e o erro entre eles respectivamente

44 DEFINICcedilAtildeO DA INTERFACE DO APLICATIVO 35

Figura 413 Software Multiple Back-Propagation com a configuraccedilatildeo escolhida para os dadosdisponiacuteveis

Mesmo o erro se mantendo em 0018 os dados obtidos possuem um erro padratildeo de 15minutos Se mais dados forem adicionados o criteacuterio de parada pode ser atingido e assimuma previsatildeo melhor pode ser alcanccedilada

434 Conclusatildeo sobre os meacutetodos estudados

Dentre todas as possibilidades estudadas visualizamos na meacutedia por periacuteodo a melhoropccedilatildeo assumindo os dados disponiacuteveis para teste Se mais paracircmetros fossem fornecidoscomo o tempo de atendimento a teoria das filas seria uma boa opccedilatildeo para fornecer a pre-visatildeo de espera E se mais dados estivessem disponiacuteveis as redes neurais conseguiriam umaaproximaccedilatildeo melhor e assim seria uma boa opccedilatildeo tambeacutem

44 Definiccedilatildeo da Interface do aplicativoComo um primeiro protoacutetipo foi desenvolvida uma interface simples que tinha como tela

de iniacutecio um mapa com um campo para buscas na parte superior

36 DESENVOLVIMENTO DO PROJETO 44

Figura 414 Fluxo de telas do primeiro protoacutetipo

Ao efetuar uma busca por algum estabelecimento uma tela mostrando o tempo de esperaaproximado da fila no local era exibida junto com bototildees que permitiam selecionar o meiode transporte visualizar outras opccedilotildees ou dar iniacutecio a rota ateacute o local desejado Tambeacutemhavia uma notificaccedilatildeo para quando a pessoa estivesse parada proacutexima a um restaurantecadastrado que direcionaria o usuaacuterio a uma tela com um cronocircmetro do tempo de esperana fila

Para testar essa visualizaccedilatildeo escolhemos algumas pessoas e realizamos um teste deusabilidade[22] este teste eacute feito da seguinte forma

44 DEFINICcedilAtildeO DA INTERFACE DO APLICATIVO 37

Uma contextualizaccedilatildeo eacute feita para o voluntaacuterio e entatildeo uma tarefa eacute passada para sercompletada Os integrantes do grupo observam dificuldades enfrentadas pelo entrevistado etomam notas Esse teste eacute repetido algumas vezes e seu resultado eacute coletado para avaliaccedilatildeoe modificaccedilatildeo das funcionalidades

Figura 415 Tela de detalhes de um restaurante(segunda versatildeo)

Notou-se que algumas funcionalidadespareceram confusas e natildeo intuitivas porexemplo natildeo ficou claro se o tempo mos-trado era de trajeto ou de espera na filanem qual era o meio de transporte utili-zado

Logo esse protoacutetipo foi reformuladocom o intuito de melhorar a experi-ecircncia do usuaacuterio com o nosso aplica-tivo

Foram colocados aleacutem do tempo deespera da fila o tempo que o usuaacuteriolevaria para chegar ateacute o local selecio-nado (conforme o tipo de transporte es-colhido) e a quantidade estimada de pes-soas na fila O tempo total (espera so-mado ao tempo de deslocamento) ga-nhou destaque entre as informaccedilotildees doestabelecimento e o botatildeo que direcionao usuaacuterio ao trajeto ficou mais especiacute-fico

Tambeacutem cogitou-se a possibilidade deadicionar login e um perfil de usuaacuteriojunto com uma lista de restaurantes favo-ritos

O fluxo das telas deste novo protoacutetipo ficou como mostra o esquema a seguir

38 DESENVOLVIMENTO DO PROJETO 44

Figura 416 Fluxo de telas do segundo protoacutetipo

44 DEFINICcedilAtildeO DA INTERFACE DO APLICATIVO 39

Figura 417 Tela de detalhes de um restaurante(terceira versatildeo)

Apoacutes outras avaliaccedilotildees mais algumaspequenas alteraccedilotildees foram realizadas nainterface Foi decidido que seria inviaacute-vel estimar o nuacutemero de pessoas nafila entatildeo essa funcionalidade foi remo-vida

Notificaccedilotildees foram adicionadas paraquando o usuaacuterio estiver parado na aacutereado restaurante para que ele possa con-tribuir com informaccedilotildees sobre a fila quepegou aleacutem de um botatildeo de contri-buiccedilatildeo ter sido inserido na tela ini-cial

40 DESENVOLVIMENTO DO PROJETO 45

O fluxo de telas do aplicativo atual ficou da seguinte forma

Figura 418 Fluxo de telas do terceiro protoacutetipo

46 EXPLICACcedilAtildeO DAS FUNCIONALIDADES 41

45 Explicaccedilatildeo das funcionalidadesEsta seccedilatildeo explica as funcionalidades do produto utilizando a figura 418

A tela inicial (3) exibe uma lista de restaurantes incluindo seus respectivos tempos detrajeto e tempo de espera na fila Ao clicar no botatildeo ldquo+rdquo uma caixa de diaacutelogo eacute aberta(4) onde eacute possiacutevel adicionar o tempo que o usuaacuterio esperou na fila Primeiro eacute escolhido orestaurante depois a data e hora que a pessoa chegou na fila e por fim o tempo de esperaem minutos Ao tocar em ldquoEnviar Feedback rdquo os dados satildeo incluiacutedos no banco de dados eatualizados para os outros usuaacuterios Assim eacute apicado o conceito de Crowdsourcing no apli-cativo

Ao tocar em um item da lista de restaurantes seraacute aberta a tela de detalhes de um res-taurante (5) na qual eacute possiacutevel ver com mais clareza os tempos de trajeto e espera o tempototal o endereccedilo do estabelecimento e um pequeno mapa centrado no local Pressionandoo botatildeo ldquoDireccedilotildeesrdquo o usuaacuterio seraacute redirecionado ao aplicativo de mapas de sua preferecircnciano caso do exemplo (8) o Google Maps jaacute traccedilando a rota da localizaccedilatildeo do usuaacuterio para oestabelecimento em questatildeo

Novamente na tela inicial tocando no iacutecone de lupa eacute possiacutevel realizar uma busca digi-tando o nome do estabelecimento na caixa de texto a qual exibe sugestotildees dependendo doque foi digitado Ao clicar em um dos resultados da busca o usuaacuterio eacute novamente direcionadopara a tela de detalhes do restaurante (5)

Tambeacutem eacute possiacutevel tocar no iacutecone de mapa na tela inicial onde seraacute mostrado um mapacentrado na localizaccedilatildeo do usuaacuterio

Ao ficar parado por um tempo em um mesmo local proacuteximo a um estabelecimentocadastrado o usuaacuterio eacute perguntado em uma notificaccedilatildeo quanto tempo ele permaneceu nafila Ao tocar na notificaccedilatildeo a caixa de diaacutelogo para feedback do usuaacuterio seraacute aberta (4) jaacutecom o restaurante preenchido e apoacutes o feedback a janela seraacute fechada e os dados enviadosao banco de dados

46 Implementaccedilatildeo do banco de dadosO banco de dados do aplicativo foi modelado e populado em forma de aacutervore (Fi-

gura 419) de forma a facilitar o acesso aos dados necessaacuterios ao aplicativo No primeironiacutevel estatildeo os ids dos restaurantes Cada id de restaurante guarda a localizaccedilatildeo (latitudelongitude) do restaurante o nome o endereccedilo e um objeto fila O objeto fila guarda todos osdias da semana (domingo a saacutebado) e cada dia da semana possui 24 campos um para cadahora do dia Cada hora possui o tempo meacutedio de espera da fila naquela hora e um peso paraesse tempo O peso eacute um valor que aumenta de acordo com o nuacutemero de feedbacks dadospara que o novo valor do tempo meacutedio seja calculado de forma consistente

Modelamos o banco de dados de uma forma que respeitasse uma hierarquia de dados

42 DESENVOLVIMENTO DO PROJETO 46

Figura 419 Aacutervore que ilustra a organizaccedilatildeo de um restaurante no banco de dados

Com o banco de dados jaacute populado o aplicativo faz consultas e atualizaccedilotildees de dadosConsultas satildeo feitas ao criar a tela de listagem de restaurantes e de detalhes de um restau-rante consultado As atualizaccedilotildees satildeo feitas quando o usuaacuterio manda o feedback de tempo deespera em um estabelecimento em determinado horaacuterio o aplicativo calcula a nova meacutedia eatualiza o campo do respectivo horaacuterio

Capiacutetulo 5

Conclusatildeo

Ao longo dos capiacutetulos deste trabalho pocircde-se acompanhar todo o processo de criaccedilatildeo edesenvolvimento do aplicativo que apoacutes finalizado foi batizado com o nome Queue

Comeccedilando com um problema para o qual o grupo almejava oferecer uma soluccedilatildeoacabou-se por adentrar-se um pouco no campo da Estatiacutestica e estudar diversas metodo-logias que poderiam ser uacuteteis para fornecer um caacutelculo de previsatildeo de espera meacutedia porperiacuteodo aplicaccedilatildeo da teoria das filas e utilizaccedilatildeo de redes neurais

Atraveacutes de uma parceria com a empresa GetIn obteve-se acesso a uma grande quantidadede dados e foi possiacutevel utilizaacute-los em anaacutelises feitas nas metodologias escolhidas conseguindoassim resultados relevantes Por meio destes foi feita a escolha de um dos meacutetodos para ocaacutelculo da previsatildeo de filas a meacutedia por periacuteodo

Aleacutem desses estudos ao longo do ano o grupo aprendeu a desenvolver para a plata-forma Android sobre a qual nenhum dos integrantes tinha conhecimento preacutevio Tambeacutemfoi possiacutevel aprender e utilizar a metodologia aacutegil com Scrum para guiar o processo de de-senvolvimento

Ao fim do ciclo de desenvolvimento conseguiu-se entregar um aplicativo em funciona-mento que fornece a previsatildeo de espera no instante da consulta de estabelecimentos cadas-trados no banco de dados armazenado na nuvem

Na versatildeo atual do aplicativo natildeo foi implementado um sistema para o cadastro de novosestabelecimentos Isso soacute eacute possiacutevel atraveacutes da inserccedilatildeo direta no banco de dados atraveacutes dainterface fornecida pelo console do Firebase Atualmente estatildeo cadastrados 5 restaurantesos quais foram visitados durante o desenvolvimento do projeto Para que o cadastro deestabelecimentos escale seria necessaacuterio a implementaccedilatildeo de uma funcionalidade que permitaao usuaacuterio adicionar novos estabelecimentos a partir de locais disponiacuteveis na API de locaisda Google

43

45

46 APEcircNDICE A

Apecircndice A

Dados coletados

Figura A1 Dados de tempo de espera para grupos de tamanhos variados para cada horaacuterio e emcada dia da semana obtidos em entrevista em restaurantes Outback Steakhouse Shopping Uniatildeo nomecircs de outubro

Referecircncias Bibliograacuteficas

[1] Backpropagation httpmbpsourceforgenet Accesso em Janeiro 2017 14

[2] Bitbucket httpsbitbucketorgproduct Accesso em Dezembro 2016 19

[3] Crowdsourcing httpswwwmerriam-webstercomdictionarycrowdsourcing Ac-cesso em Novembro 2016 21

[4] Designing a survey httpwwwsciencebuddiesorgscience-fair-projectsproject_ideasSoc_surveyshtml Accesso em Outubro 2016 4 23

[5] Facebook httpswwwfacebookcom Accesso em Novembro 2016 24

[6] Firebase httpsfirebasegooglecom Accesso em Agosto 2016 20

[7] Getin app httpswwwgetinappcombrhomesao-paulo Accesso em Novembro2016 9

[8] Git 11 primeiros passos - sobre controle de versatildeo httpsgit-scmcombookpt-brv1Primeiros-passos-Sobre-Controle-de-Vers Accesso em Novembro 2016 19

[9] Google forms httpsdocsgooglecomforms Accesso em Novembro 2016 23

[10] Guia definitivo do project model canvas Project Builder 3

[11] Jsonorg introducing json httpwwwjsonorg Accesso em Novembro 2016 17

[12] Manifesto para desenvolvimento Aacutegil de software httpagilemanifestoorgisoptbrmanifestohtml Accesso em Novembro 2016 5

[13] Nosql httpsenwikipediaorgwikiNoSQL Accesso em Novembro 2016 20

[14] Outback steakhouse httpswwwoutbackcombrhome Accesso em Novembro 20169

[15] Restful api development with lumen microframework httpsbelitsoftcomlaravel-development-servicesapi-development Accesso em Novembro 2016 17

[16] Scrum httpswwwatlassiancomagilescrum Accesso em Novembro 2016 5

[17] Smartphone os market share 2016 q2 httpwwwidccomprodservsmartphone-os-market-sharejsp Accesso em Novembro 2016 15

[18] Smartphone os sales market share kantar worldpanel comtech httpwwwkantarworldpanelcomsmartphone-os-market-share Accesso em Novembro 2016 15

[19] Sourcetree httpswwwsourcetreeappcom Accesso em Dezembro 2016 19

47

48 REFEREcircNCIAS BIBLIOGRAacuteFICAS

[20] Sql httpsptkhanacademyorgcomputingcomputer-programmingsql Accesso emDezembro 2016 20

[21] Trello httpstrellocom Accesso em Novembro 2016 6

[22] Usability test httpsenwikipediaorgwikiUsability_testing Accesso em Novembro2016 36

[23] Versionone 2012 agile dev survey httpswwwversiononecompdf7th-Annual-State-of-Agile-Development-Surveypdf Accesso em Novembro 2016 5

[24] Waze httpswwwwazecom Accesso em Novembro 2016 1

[25] What is an open source httpsopensourcecomresourceswhat-open-source Accessoem Novembro 2016 15

[26] Xml tutorial httpwwww3schoolscomxml Accesso em Novembro 2016 17

[27] Paulo F Cabral dos Anjos Jr Aron Ifanger Maciel Christopher Silva de Paacutedua Com-posiccedilatildeo de carteiras de accedilotildees utilizando modelo de redes neurais artificiais e modelo derisco e retorno de Markowitz 2012 14

[28] Google Distance matrix api documentation httpsdevelopersgooglecommapsdocumentationdistance-matrix Accesso em Novembro 2016 17

[29] Alan Klement Designing features using job stories httpsblogintercomcomusing-job-stories-design-features-ui-ux Accesso em Novembro 2016 6

[30] Azmat Nafees Queuing theory and its application analysis of the sales checkout opera-tion in ica supermarket httpwwwstatisticsduseessaysD07ENafeespdf Accessoem Novembro 2016 12

[31] Eric Ries A Startup Enxuta Lua de papel primeira ediccedilatildeo edition 2012 3

  • Introduccedilatildeo
    • Motivaccedilatildeo
    • Trabalho Proposto
    • Estrutura da monografia
      • Estudos Preliminares
        • Desenvolvimento de Startups
          • Desenvolvimento de Questionaacuterios
            • Metodologia Aacutegil
            • Jobs to be done
            • Caacutelculo da previsatildeo do tempo de espera na fila
              • Descriccedilatildeo do problema
              • Meacutetodos de caacutelculo da espera
                  • Tecnologias utilizadas
                    • O sistema Android
                      • Organizaccedilatildeo de uma aplicaccedilatildeo Android
                        • JSON
                        • Google APIs
                        • Localizaccedilatildeo do Usuaacuterio
                        • Controle de Versatildeo
                        • Banco de dados
                          • Firebase
                            • Crowdsourcing
                              • Desenvolvimento do Projeto
                                • Pesquisa de Mercado
                                  • Pesquisa com o usuaacuterio
                                    • Projeto do Aplicativo
                                    • Aplicaccedilatildeo dos meacutetodos de caacutelculo de espera
                                      • Aplicando a meacutedia por periacuteodo
                                      • Aplicando teoria das filas
                                      • Aplicando redes neurais
                                      • Conclusatildeo sobre os meacutetodos estudados
                                        • Definiccedilatildeo da Interface do aplicativo
                                        • Explicaccedilatildeo das funcionalidades
                                        • Implementaccedilatildeo do banco de dados
                                          • Conclusatildeo
                                          • Dados coletados
                                          • Referecircncias Bibliograacuteficas

Resumo

Este projeto possui como objetivo principal estudar e aplicar o processo de desenvolvi-mento de software de um aplicativo para a plataforma Android que fornece ao usuaacuterio aprevisatildeo de tempo de espera para restaurantes cadastrados no banco de dados

Para auxiliar no desenvolvimento foram tambeacutem estudadas modelagens para previsatildeode filas de restaurantes para que o caacutelculo de previsatildeo da espera fosse feito de forma maisprecisa O caacutelculo se utiliza dos seguintes dados aqueles obtidos atraveacutes de pesquisas nosproacuteprios restaurantes e os extraiacutedos de informaccedilotildees enviadas por usuaacuterios De posse dessesdados o tempo de espera fornecido para aquele instante seraacute cada vez mais preciso agrave medidaque aumentam os feedbacks dos usuaacuterios

Para o desenvolvimento deste aplicativo algumas teacutecnicas de gerenciamento de projetoforam usadas com o intuito de fornecer um produto final satisfatoacuterio para o usuaacuterio

Palavras-chave filas restaurantes desenvolvimento Android previsatildeo de espera

iii

Abstract

Our goal with this project is to study and apply the process of software development of anAndroid application that provides the user with the waiting time prediction for restaurantsregistered in our database

To assist the development some modeling methods to estimate restaurant queues werestudied as well so that the calculation were accomplished with more precision

The waiting time prediction calculation is done using the following data data obtainedthrough research on the restaurants and data extracted from information sent by usersThus the waiting time provided for that moment will be increasingly more accurate as thefeedback from the users gets more frequent

In order to develop this application some project management techniques were used withthe interest of providing a satisfactory final product for the user

Keywords queues restaurants Android development waiting time estimation

v

Sumaacuterio

1 Introduccedilatildeo 111 Motivaccedilatildeo 112 Trabalho Proposto 113 Estrutura da monografia 2

2 Estudos Preliminares 321 Desenvolvimento de Startups 3

211 Desenvolvimento de Questionaacuterios 422 Metodologia Aacutegil 523 Jobs to be done 624 Caacutelculo da previsatildeo do tempo de espera na fila 8

241 Descriccedilatildeo do problema 8242 Meacutetodos de caacutelculo da espera 9

3 Tecnologias utilizadas 1531 O sistema Android 15

311 Organizaccedilatildeo de uma aplicaccedilatildeo Android 1632 JSON 1733 Google APIs 1734 Localizaccedilatildeo do Usuaacuterio 1835 Controle de Versatildeo 1936 Banco de dados 19

361 Firebase 2037 Crowdsourcing 21

4 Desenvolvimento do Projeto 2341 Pesquisa de Mercado 23

411 Pesquisa com o usuaacuterio 2342 Projeto do Aplicativo 3243 Aplicaccedilatildeo dos meacutetodos de caacutelculo de espera 32

431 Aplicando a meacutedia por periacuteodo 32432 Aplicando teoria das filas 34

vii

viii SUMAacuteRIO

433 Aplicando redes neurais 34434 Conclusatildeo sobre os meacutetodos estudados 35

44 Definiccedilatildeo da Interface do aplicativo 3545 Explicaccedilatildeo das funcionalidades 4146 Implementaccedilatildeo do banco de dados 41

5 Conclusatildeo 43

A Dados coletados 45

Referecircncias Bibliograacuteficas 47

Capiacutetulo 1

Introduccedilatildeo

Este capiacutetulo introduz o problema abordado a soluccedilatildeo proposta os objetivos do projetoe apresenta a estrutura da monografia

11 MotivaccedilatildeoEnfrentamos filas para realizar diversas atividades ao longo do dia Nosso tempo eacute gasto

esperando desde alguns minutos para pedir o almoccedilo ateacute horas para assistir um determinadoshow Ao todo muitas horas de nossas vidas satildeo desperdiccediladas nessas esperas

Muitas vezes somos surpreendidos por filas interminaacuteveis ou entatildeo pela ausecircncia delascriando a impressatildeo de que estas satildeo totalmente imprevisiacuteveis Isso acaba gerando a difi-culdade de programar com precisatildeo outras atividades pois natildeo sabemos ao certo quantotempo iremos gastar em esperas ao longo do dia Deixamos muitos deveres ou ateacute mesmomomentos de lazer de lado por causa disso e se tiveacutessemos como prever esse tempo gastopoderiacuteamos otimizar nosso dia

Esse e outros problemas podem ser minimizados agrave medida que o acesso agrave informaccedilatildeoseja histoacuterica ou em tempo real eacute facilitado Uma forma de fornecer essa informaccedilatildeo aousuaacuterio eacute atraveacutes da tecnologia Um exemplo disso eacute o aplicativo de navegaccedilatildeo Waze [24]que disponibiliza dados do tracircnsito em tempo real ajudando na locomoccedilatildeo diaacuteria Isso eacutepossiacutevel graccedilas aos avanccedilos tecnoloacutegicos e a maior acessibilidade aos dispositivos moacuteveisconectados agrave internet por exemplo

12 Trabalho PropostoAo vislumbrarmos esse problema tanto na vida dos outros como nas nossas e motivados

a utilizar nossos conhecimentos adquiridos ao longo do curso de Ciecircncia da Computaccedilatildeodecidimos desenvolver um aplicativo para diminuir esse desconforto causado pelas filas Essasoluccedilatildeo eacute um sistema

∙ desenvolvido na plataforma Android

∙ baseado em uma modelagem de sistema de filas

que tem como objetivo prever o tempo de espera dos usuaacuterios em filas e assim auxiliaacute-losnas suas decisotildees

1

2 INTRODUCcedilAtildeO 13

Para desenvolver uma soluccedilatildeo para o problema e dada a limitaccedilatildeo de tempo para o de-senvolvimento decidimos implementar a soluccedilatildeo apenas para as filas de restaurantes Estaescolha foi feita por serem locais muito frequentados e assim gerarem mais dados em menostempo e pela diversidade de tamanho das esperas gerando o interesse no estudo de suamodelagem

Implementou-se um aplicativo no qual o usuaacuterio pode fazer uma consulta sobre os res-taurantes cadastrados no banco de dados e ter acesso ao tempo de deslocamento somado aotempo de espera ateacute seu atendimento no estabelecimento Aleacutem disso ele tem a possibilidadede traccedilar uma rota ateacute o local e enviar um feedback sobre quanto tempo foi gasto na filapara aprimorar o calculo do tempo de espera

13 Estrutura da monografiaPara que fosse possiacutevel o desenvolvimento de um aplicativo para previsatildeo de tempo de es-

pera foi necessaacuterio estudar o processo de criaccedilatildeo de startups um processo de desenvolvimentode software tecnologias para programaccedilatildeo em Android bem como algumas modelagens es-tatiacutesticas de previsatildeo de tempo de espera A monografia foi estruturada de acordo comessas informaccedilotildees de modo que o leitor possa ter uma leitura progressiva dividida em trecircsprincipais partes

∙ Estudos preliminares Essa seccedilatildeo apresenta estudos sobre o que eacute necessaacuterio para odesenvolvimento de Startups a definiccedilatildeo da metodologia de desenvolvimento utilizadapelo grupo e o estudo da aplicaccedilatildeo de trecircs diferentes modelagens estatiacutesticas feitaspara analisar os dados iniciais fornecendo um modo de calcular o tempo de espera emum restaurante em um dado instante

∙ Tecnologias utilizadas Onde satildeo apresentadas as tecnologias e ferramentas utiliza-das para auxiliar no desenvolvimento do aplicativo

∙ Desenvolvimento do projeto Essa parte apresenta a aplicaccedilatildeo dos meacutetodos decaacutelculo de espera vistos na seccedilatildeo anterior e o processo de desenvolvimento do aplicativoem si

Capiacutetulo 2

Estudos Preliminares

21 Desenvolvimento de StartupsO desenvolvimento do projeto foi baseado nos meacutetodos utilizados em Startups O grupo

seguiu os princiacutepios da Startup Enxuta [31] no qual um produto miacutenimo deve ser criado eentatildeo incrementado atraveacutes do estudo das necessidades do usuaacuterio A partir de uma pesquisacom o puacuteblico alvo a ideia inicial eacute lapidada e um produto com o miacutenimo de funcionalidadespossiacutevel eacute desenvolvido para entatildeo retornar aos usuaacuterios que iratildeo validaacute-lo Este processo eacuterepetido ateacute que um produto final seja completamente desenvolvido independente da ideiaque se tinha no iniacutecio O processo tem como foco economizar recursos e suprir a necessidadedo usuaacuterio de forma raacutepida e eficiente

De acordo com o livro A Startup Enxuta[31] esta metodologia prioriza o desenvolvi-mento iterativo com a participaccedilatildeo do cliente a cada etapa ao inveacutes de procuraacute-lo somentena entrega do produto final Nessa metodologia temos alguns princiacutepios que guiam o desen-volvimento de projetos

1 Mapeamento do negoacutecio atraveacutes do diagrama conhecido como ldquocanvas do modelo denegoacuteciosrdquo que nos mostra resumidamente uma visatildeo geral do projeto

2 Pesquisas feitas com os usuaacuterios no mercado para saber suas opiniotildees sobre o negoacutecioe posteriores mudanccedilas ou ajustes no projeto com base nos resultados

3 Desenvolvimento do produto utilizando algum meacutetodo aacutegil

Inicialmente deve-se traccedilar os primeiros objetivos do projeto utilizando o diagrama Can-vas [10] (figura 21) Esse diagrama eacute utilizado para auxiliar empresas a ter uma visatildeo macrodo projeto fornecendo uma forma de visualizar suas dependecircncias e permitindo planejartraccedilar e gerenciar um plano de desenvolvimento Ele possui perguntas que devem ser res-pondidas em seus quadros e no decorrer desse processo o projeto vai sendo adaptado deacordo com as limitaccedilotildees impedimentos e novas ideias que vatildeo surgindo

3

4 ESTUDOS PRELIMINARES 21

Figura 21 Modelo do Diagrama Canvas

Com o modelo de negoacutecios definido o proacuteximo passo eacute a realizaccedilatildeo de uma pesquisa como puacuteblico para validaacute-lo Essa fase do desenvolvimento pode ser refeita quantas vezes foremnecessaacuterias reescrevendo o Canvas conforme a interpretaccedilatildeo da necessidade do usuaacuterio

211 Desenvolvimento de Questionaacuterios

De acordo com o manual Designing a Survey [4] um questionaacuterio eacute criado para obterinformaccedilotildees para conduzir o desenvolvimento de um projeto de acordo com as preferecircnciasdo puacuteblico alvo Ele deve ser curto e conciso e deve capturar somente informaccedilotildees que sejamrelevantes para a pesquisa

Os passos para o desenvolvimento de um bom questionaacuterio satildeo

∙ Definir os dados necessaacuterios

∙ Desenvolver as questotildees

∙ Remover qualquer questatildeo que natildeo captura os dados definidos previamente

As questotildees podem ser moldadas de trecircs maneiras

∙ Estruturadas Questotildees que possuem resposta fixa Exemplo

Vocecirc usa transporte puacuteblico

( )Sim

( )Natildeo

22 METODOLOGIA AacuteGIL 5

∙ Natildeo Estruturadas Questotildees de resposta aberta Exemplo

O que vocecirc costuma fazer para evitar filas

∙ Parcialmente Estruturadas Questotildees mistas Exemplo

Qual meio de transporte vocecirc usa

( )Carro

( )Moto

( )Outros______

22 Metodologia AacutegilA metodologia aacutegil tem sido adotada pelas empresas hoje em dia por conta dos melhores

resultados obtidos em relaccedilatildeo agraves metodologias tradicionais[23] Essa eacute caracterizada pelavalorizaccedilatildeo de

∙ ldquoIndiviacuteduos e interaccedilotildees mais que processos e ferramentasrdquo

∙ ldquoSoftware em funcionamento mais que documentaccedilatildeo abrangenterdquo

∙ ldquoColaboraccedilatildeo com o cliente mais que negociaccedilatildeo de contratosrdquo

∙ ldquoResponder a mudanccedilas mais que seguir um planordquo [12]

Eacute uma metodologia que envolve trabalho em equipe encontros regulares com o clientedesenvolvimento iterativo e com menos foco em planejamento estrito e ideias definitivasdiferente de metodologias mais tradicionais que satildeo mais focadas em projetos bem docu-mentados com pouca possibilidade de mudanccedila ao final do processo Decidiu-se por utilizara metodologia aacutegil neste projeto pois natildeo haviam ideias completamente definidas inicial-mente e para o grupo a opiniatildeo do puacuteblico alvo sobre o produto era fundamental em cadaiteraccedilatildeo do processo podendo haver mudanccedilas inesperadas dependendo do feedback recebido

Dentre as opccedilotildees de metodologias aacutegeis O meacutetodo Scrum[16] eacute um que eacute definido comoum gerenciador e um processo de controle que foca em construir um software que conheceas necessidades do negoacutecio devolvendo incrementalmente um software

Com o Scrum o software eacute desenvolvido em iteraccedilotildees de tamanho fixo chamadas deSprints que tem duraccedilatildeo de tipicamente duas a quatro semanas Em cada Sprint um nuacutemerofixo de histoacuterias (que se traduzem em tarefas) satildeo selecionadas pelo grupo para seremutilizadas na sprint(figura 22) Haacute tambeacutem um sistema de motivaccedilatildeo para o time como osMilestones que satildeo objetivos menores distribuiacutedos por toda a sprint ajudando na mediccedilatildeode desemprenho da equipe e graacuteficos Burndown que mostram o progresso de cada iteraccedilatildeopara que o time sinta o progresso no desenvolvimento

6 ESTUDOS PRELIMINARES 23

Figura 22 Dinacircmica do Scrum

Para controle das iteraccedilotildees foi utilizado o software Trello [21] que eacute um gerenciador detarefas de projeto (figura 23)

Figura 23 Interface do Trello - durante o processo de desenvolvimento

23 Jobs to be donePara implementar o aplicativo buscou-se uma metodologia para guiar esse processo desde

sua criaccedilatildeo ateacute sua validaccedilatildeo Duas metodologias conhecidas pelo grupo foram analisadas eestudadas Jobs To Be Done e Personas and Use Cases

Segundo Alan Klement[29] Personas satildeo clientes imaginaacuterios descritos pela idade sexoraccedila e haacutebitos semanais O uso delas natildeo eacute adequado para responder perguntas como ldquoPorqueo cliente quer saber o tamanho da filardquo pois quando a resposta eacute ldquoEle estaacute com pressa paracomerrdquo natildeo fica claro quais satildeo as reais necessidades do usuaacuterio Essa descriccedilatildeo tambeacutem natildeoeacute uacutetil no desenvolvimento de uma boa interface pois natildeo ajuda na hora de responder se umcerto botatildeo realmente deixa claro sua funcionalidade

23 JOBS TO BE DONE 7

Tambeacutem segundo Alan Klement Use Cases possuem 3 grandes problemas usam perso-nas casam implementaccedilotildees motivaccedilotildees e resultado e ignoram contexto situaccedilotildees e ansie-dades

Se uma funcionalidade definida por uma Use Case falhar seraacute difiacutecil identificar o pro-blema pois por casar informaccedilotildees diferentes surgiraacute a dificuldade de saber o que estaacute erradoa implementaccedilatildeo as suposiccedilotildees sobre as motivaccedilotildees ou os resultados

Observando-se esses fatos optou-se pelo uso da metodologia Jobs to Be Done pois haacuteuma mudanccedila na forma de fazer histoacuterias a fim de evitar os problemas observados em Per-sonas e Use Cases(Figura 24) Nesse modelo as Personas satildeo pessoas reais e as histoacuterias satildeoescritas com a seguinte divisatildeo situaccedilatildeo motivaccedilatildeo e resultados esperados

Nessa metodologia criamos histoacuterias descrevendo tarefas para que os usuaacuterios se colo-quem na situaccedilatildeo descrita Observando-os eacute possiacutevel saber se a tarefa foi realizada de formabem sucedida e caso contraacuterio identificar onde e o que estaacute causando a falha no instanteda realizaccedilatildeo dela

Figura 24 Diferenccedila entre estruturas de histoacuterias

8 ESTUDOS PRELIMINARES 24

Algumas das histoacuterias criadas para os testes de interface do grupo foram

∙ Quando eu estiver na tela de lista de restaurantes eu quero acessar a tela de detalhesdo restaurante que eu desejo saber o tempo de espera entatildeo eu posso ver com clarezaas informaccedilotildees e posso traccedilar uma rota para o estabelecimento

∙ Quando eu estiver na tela principal eu quero enviar meu feedback sobre o tempo deespera no estabelecimento que estou entatildeo eu posso ajudar outros usuaacuterios por meiodo aplicativo

24 Caacutelculo da previsatildeo do tempo de espera na filaAtraveacutes de pesquisas em busca de meacutetodos estatiacutesticos para se estudar o comportamento

das filas foram encontradas as trecircs metodologias descritas nesta seccedilatildeo Este capiacutetulo conteacutema explicitaccedilatildeo do problema estudado e suas possiacuteveis soluccedilotildees

241 Descriccedilatildeo do problema

Para que se chegasse a uma soluccedilatildeo apropriada o problema de espera em fila precisouser estudado Esse problema pode ser descrito da seguinte forma dado um restaurante aentrada nesse eacute atraveacutes de uma fila Essa fila tem seu tamanho redefinido agrave medida quenovos clientes chegam e saem dela A saiacuteda dos clientes pode ser devido a desistecircncia ou aacomodaccedilatildeo deles nas mesas A entrada eacute definida pela disponibilizaccedilatildeo de lugares livres agravemedida em que os grupos que estavam alocados terminam seu atendimento

Figura 25 Esquema simplificado do funcionamento do processo em um restaurante

A fila de espera eacute influenciada por dois fatores a taxa de chegada do cliente e a taxa deatendimento nas mesas

∙ chegada em restaurantes a chegada de clientes eacute definida por uma taxa O clienteneste caso representa um grupo com tamanho variaacutevel A distribuiccedilatildeo do tamanho dogrupo nas chegadas eacute variaacutevel

∙ O atendimento a alocaccedilatildeo do grupo eacute organizada pela recepccedilatildeo O meacutetodo utilizadopor eles natildeo eacute padronizado e muitas vezes eacute completamente subjetivo Por exemplose acontecer de um grupo grande e vaacuterios casais chegarem ao mesmo tempo e nesse

24 CAacuteLCULO DA PREVISAtildeO DO TEMPO DE ESPERA NA FILA 9

momento existir um espaccedilo no salatildeo que acomode o grupo (juntando as mesas) outodos os casais (com as mesas separadas) dependendo de quem estaacute responsaacutevel poralocaacute-los cada um receberaacute uma prioridade diferente e essa decisatildeo natildeo eacute padronizada

∙ A disposiccedilatildeo das mesas a disposiccedilatildeo e quantidade de mesas natildeo satildeo padronizadasentre restaurantes de uma mesma rede muito menos entre restaurantes diferentesAleacutem disso a formataccedilatildeo do salatildeo pode ser remodelada de acordo com a necessidadede alocaccedilatildeo dos clientes haacute gerentes que evitam essa movimentaccedilatildeo ou ateacute mesmorestaurantes que natildeo tecircm essa possibilidade

242 Meacutetodos de caacutelculo da espera

Com o problema desenhado desta maneira esboccedilou-se trecircs possiacuteveis meacutetodos de resoluccedilatildeoe um desses foi aplicado na soluccedilatildeo final Os meacutetodos desenvolvidos satildeo meacutedia por periacuteodoaplicaccedilatildeo da teoria das filas e utilizaccedilatildeo de redes neurais Essas teacutecnicas precisam de dadospara serem desenvolvidas e aplicadas Por conta disso buscou-se fontes que suprissem essanecessidade

Captaccedilatildeo dos dados para a anaacutelise

Para que seja possiacutevel aplicar os meacutetodos estudados eacute necessaacuterio obter dados para aplicarna anaacutelise Estes foram obtidos de duas formas a partir de uma parceria com a empresa GetIn [7] desenvolvedora de um aplicativo de gerenciamento de filas de restaurantes e atraveacutesde pesquisas presenciais em restaurantes da rede Outback Steakhouse[14] selecionados para oestudo(Apecircndice A) O aplicativo da Get In possui uma funcionalidade principal realizaccedilatildeode uma reserva em um determinado restaurante O banco de dados manteacutem o registro detodos os usuaacuterios que entram na fila e esses dados satildeo organizados em uma tabela com osseguintes campos

∙ Origem Se a reserva foi realizada de forma remota ou presencial Assim

1 Reserva presencial (na entrada do restaurante incluiacuteda pela recepcionista)

2 Reserva remota (realizada atraveacutes do aplicativo)

∙ Entrada este consiste na data e hora que o usuaacuterio entrou na fila

∙ Qtd Pessoas tamanho do grupo para o qual a reserva foi feita

∙ Prioritaacuterio se este grupo requer atendimento prioritaacuterio

0 Natildeo

1 Sim

∙ Notificado A data e horaacuterio em que o grupo foi notificado que sua mesa estava pronta

ndash Quando NULL a recepcionista natildeo notificou essa pessoa (possivelmente chamoudiretamente pelo nome)

∙ Tempo na Espera Tempo que o grupo ficou ativo na fila de espera (em segundos)

∙ Status Qual a situaccedilatildeo da reserva do grupo Podendo assumir tais valores

0 Cancelado pela recepcionista

10 ESTUDOS PRELIMINARES 24

2 Sentado

3 Cancelado pelo proacuteprio Usuaacuterio

Para melhor entender estes paracircmetros o funcionamento do aplicativo deve ser expli-cado com maior detalhamento O processo de reserva funciona da seguinte forma o usuaacuterioreserva seu lugar atraveacutes do aplicativo ou vai ao restaurante e a recepcionista o adiciona agraveespera No primeiro caso o usuaacuterio tem um tempo de toleracircncia para chegar ao estabeleci-mento apoacutes receber a notificaccedilatildeo caso natildeo consiga chegar a tempo a reserva eacute cancelada Nosegundo caso quando o grupo a ser chamado estaacute proacuteximo da recepccedilatildeo a funcionalidade denotificaccedilatildeo natildeo precisa ser usada o responsaacutevel pode se direcionar diretamente aos clientes echamaacute-los pelo nome Mesmo nesse segundo caso o tempo de espera na fila ainda eacute guardadopois a recepccedilatildeo precisa ldquofecharrdquo a espera do grupo para chamar o proacuteximo

Poreacutem a utilizaccedilatildeo desses dados natildeo foi liberada pela empresa Get In para serem usadoscomo banco de dados do aplicativo somente foram fornecidos dados do mecircs de agosto esetembro de 2016 para que fossem utilizados nas anaacutelises feitas com os modelos estatiacutesticosPara obter dados que poderiam ser utilizados no banco de dados do aplicativo foi neces-saacuterio uma pesquisa presencial onde o grupo visitou alguns restaurantes da rede OutbackSteakhouse para obter informaccedilotildees sobre o tempo de espera nestes estabelecimentos

Foram visitados 5 restaurantes Outback Steakhouse Shopping Eldorado Outback Ste-akhouse Shopping Villa Lobos Outback Steakhouse Shopping Granja Vianna Outback Ste-akhouse Shopping Uniatildeo de Osasco e Outback Steakhouse Shopping Market Place ondequestionamos sobre o tempo de espera por tamanho de grupos (em nuacutemero de pessoas) epor horaacuterio e dia da semana

Ao analisar os dados coletados pela pesquisa presencial notamos que estes estavam sus-cetiacuteveis a erros por terem sido obtidos por meio de diferentes observaccedilotildees humanas Ummeacutetodo para obter dados mais precisos consistiria na realizaccedilatildeo de novas pesquisas no for-mato mediccedilatildeo onde cada integrante do grupo deveria coletar o tempo de espera de cadacliente atraveacutes de um cronocircmetro e calcular o tempo de espera meacutedio nesse horaacuterio Comoo grupo natildeo conseguiria aplicar este meacutetodo optou-se por melhorar a precisatildeo dos dadoscoletados usando como base o graacutefico de horaacuterios de pico disponibilizado pela Google paracada restaurante Essa melhora foi feita utilizando-se caacutelculos de proporccedilatildeo de valores

24 CAacuteLCULO DA PREVISAtildeO DO TEMPO DE ESPERA NA FILA 11

Primeiro meacutetodo Meacutedia por periacuteodo

Figura 26 Esquema do meacutetodo meacutedia por periacuteodo

Para que uma previsatildeo de espera possa ser fornecida ao usuaacuterio essa deve basear-seobrigatoriamente em alguma informaccedilatildeo preacutevia Contudo encontrar uma fonte para taisdados se mostrou uma tarefa muito complicada Para conseguir ainda assim apresentar umtempo de espera em fila meacutetodos de anaacutelise foram definidos de acordo com a quantidade dedados disponiacutevel para cada estabelecimento

De um modo geral neste modelo o caacutelculo do tempo de espera funcionaraacute da seguinteforma calcular-se-aacute a meacutedia de espera para o dia da semana e horaacuterio requeridos pelousuaacuterio sem diferenciar feriados de dias normais Dependendo de quatildeo longo eacute o histoacutericoniacuteveis de especificidade podem ser adicionados ou seja numa busca tempo de espera em 9de Dezembro (segunda-feira) agraves 19h no restaurante X a query selecionaraacute todos os registrosfeitos no dia 9 de dezembro entre as 19h e agraves 20h dos uacuteltimos anos no restaurante X e realizaraacuteessa meacutedia ou pode selecionar apenas linhas de todas as segundas-feiras do mecircs de Dezembrodeste mesmo periacuteodo

∙ Muitos dados neste caso um maior niacutevel de especificidade pode ser aplicado sem autilizaccedilatildeo de outras fontes para complementar o banco de dados

∙ Alguns dados o niacutevel de especificidade eacute bem menor apenas filtrando por dia dasemana e intervalo de hora sem mecircs ou dia especiacutefico no ano Em alguns casos aquantidade de dados eacute tatildeo pequena que deve-se recorrer a outras fontes A Googletem disponibilizado graacuteficos com a distribuiccedilatildeo dos clientes nos horaacuterios de funciona-mento de estabelecimentos Esses dados natildeo estatildeo disponiacuteveis em sua API ou seja natildeo

12 ESTUDOS PRELIMINARES 24

haacute uma forma automaacutetica para que o aproveitamento desses possa ser feito Poreacutemmesmo omitindo-se os valores do graacutefico o perfil da distribuiccedilatildeo e o horaacuterio de picosatildeo aproveitados manualmente para nosso sistema

∙ Poucos dados para este caso fizemos o balanceamento dos dados da Google comas informaccedilotildees retiradas das entrevistas Aleacutem do aproveitamento das informaccedilotildees daGoogle foram realizadas pesquisas com funcionaacuterios dos restaurantes

Segundo meacutetodo Teoria das filas

Filas podem ser vistas como um sistema dinacircmico no qual existe um conjunto de usuaacuteriosque satildeo atendidos por um conjunto de atendentes de acordo com a ordem de chegada dosusuaacuterios A teoria de filas busca utilizando anaacutelises matemaacuteticas estudar o comportamentodestas filas para estimar o tempo de espera com base em um conjunto inicial de dadospreviamente fornecido[30]

Um sistema de filas possui como caracteriacutesticas

∙ Modelo de chegada dos usuaacuterios Utiliza como base o tempo entre as chegadasdos usuaacuterios

∙ Modelo de serviccedilo (atendimento aos usuaacuterios) Utiliza como base o tempo gastono atendimento ao usuaacuterio No caso dos restaurantes equivale ao tempo que um grupopassa na mesa ateacute a sua saiacuteda

∙ Nuacutemero de servidores Eacute o nuacutemero de atendentes disponiacuteveis no sistema Para omodelo do restaurante este equivale agraves mesas disponiacuteveis no salatildeo

∙ Capacidade do sistema Eacute o nuacutemero de usuaacuterios que o sistema eacute capaz de atenderInclui o nuacutemero de usuaacuterios que estatildeo sendo atendidos somado com os que esperamna fila Se este paracircmetro natildeo for informado o sistema eacute considerado com capacidadeilimitada

∙ Tamanho da populaccedilatildeo nuacutemero potencial de clientes que podem chegar a umsistema Pode ser finito ou infinito

∙ Disciplina da fila A disciplina da fila pode ser FIFO (first in first out) - o primeiroa chegar eacute o primeiro a ser atendido LIFO (last in first out) - o uacuteltimo a chegar eacuteo primeiro a ser atendido ALEATOacuteRIO - os atendimentos satildeo feitos sem qualquerpreocupaccedilatildeo com a ordem de chegada COM PRIORIDADE - os atendimentos satildeofeitos de acordo com prioridades estabelecidas No caso dos restaurantes a disciplinaadotada eacute a FIFO poreacutem esta pode mudar de acordo com o atendente responsaacutevel

Os tempos mencionados nos modelos de chegada e de serviccedilo podem ser constantesquando os intervalos entre as chegadas dos usuaacuterios satildeo iguais ou variaacuteveis quando os valo-res desses intervalos variam Nesse uacuteltimo caso o intervalo de tempo segue uma distribuiccedilatildeode probabilidades Nesse modelo tambeacutem existe a taxa meacutedia de chegada dos usuaacuterios porunidade de tempo ou seja quantos usuaacuterios chegam em uma hora

As filas podem ser moldadas em trecircs situaccedilotildees baacutesicas como descrito por Azmat Nafees[30]

∙ Modelo de fila de canal uacutenico com fila uacutenica e atendimento uacutenico (Figura 27)

24 CAacuteLCULO DA PREVISAtildeO DO TEMPO DE ESPERA NA FILA 13

∙ Modelo de fila de canal uacutenico com fila uacutenica e muacuteltiplos atendimentos paralelos (Fi-gura 28)

∙ Modelo de fila de canal uacutenico com muacuteltiplas filas e muacuteltiplos atendimentos paralelos(Figura 29)

Figura 27 Modelo de fila de canal uacutenico com fila uacutenica e atendimento uacutenico

Figura 28 Modelo de fila de canal uacutenico com fila uacutenica e muacuteltiplos atendimentos paralelos

Figura 29 Modelo de fila de canal uacutenico com muacuteltiplas filas e muacuteltiplos atendimentos paralelos

Tambeacutem por Azmat Nafees nesses modelos trecircs subprocessos podem ser vistos

∙ Processo de chegada Eacute um processo contiacutenuo do evento ldquochegada de clientesrdquo ouseja quando o evento ocorre o processo aguarda a ocorrecircncia do proacuteximo evento Esseevento coloca um cliente na fila quando ele chega

14 ESTUDOS PRELIMINARES 24

∙ Processo de espera Eacute um processo que inclui o evento ldquocomece a servir o proacuteximocliente da filardquo que retira um cliente da fila o coloca no processo de atendimento eespera a conclusatildeo do evento ldquocliente servidordquo para recomeccedilar Nele se trabalha comtamanho e disciplina da fila

∙ Processo de atendimento Eacute um processo que inclui o evento ldquocliente servidordquo eespera a conclusatildeo do evento ldquocomece a servir o proacuteximo cliente da filardquo para recomeccedilarNele se trabalha com tipo taxa e tempo de atendimento

Dentre esses 3 modelos o que mais se encaixa na situaccedilatildeo de um restaurante eacute o segundomodelo canal uacutenico com fila uacutenica e muacuteltiplos atendimentos paralelos O processo de chegadade novos clientes na fila eacute tido como aleatoacuterio

Terceiro meacutetodo Rede Neural

Rede Neural eacute uma teacutecnica computacional inspirada no sistema nervoso que com o auxiacute-lio de um modelo matemaacutetico apresenta respostas para problemas de decisatildeo Esses modelosfuncionam da seguinte forma primeiro um conjunto de dados (conjunto de treinamento) eacuteapresentado ao sistema e este aprende com ele atraveacutes de reconhecimento de padratildeo entatildeocoloca-se o sistema para analisar os dados (conjunto de teste) para os quais deseja-se obteralgum resultado Este processo eacute chamado de aprendizagem de maacutequina Quanto melhor forseu treinamento mais precisas seratildeo as respostas para o segundo conjunto

Uma rede neural eacute formada por subestruturas chamadas neurocircnios Um neurocircnio tem oseguinte funcionamento ele recebe como entrada sinais cada sinal recebe um peso de acordocom a influecircncia dele na saiacuteda e uma soma eacute feita para produzir o niacutevel de atividade entatildeodependendo se o niacutevel de atividade exceder o limite dado pela funccedilatildeo de transferecircncia aresposta eacute produzida[27]

Software Multiple Back-Propagation

Para implementar a soluccedilatildeo baseada em redes neurais foi usado o Software MultipleBack-Propagation [1] Este eacute um software de faacutecil utilizaccedilatildeo que fornece uma rede a qualaprende atraveacutes do processo de propagaccedilatildeo inversa Esse meacutetodo baseia-se na comparaccedilatildeodos dados esperados (conjunto de teste) com os dados obtidos a partir do treinamento senecessaacuterio adaptaccedilotildees satildeo feitas a estrutura da rede para melhor aproximar aos dados doconjunto teste e isso eacute chamado de propagaccedilatildeo inversa

Por se tratar de um meacutetodo de aprendizagem de maacutequinas para se obter um resultadodeve-se treinar o algoritmo Primeiramente submete-se o conjunto de treinamento ao soft-ware para isso foi escolhido o mecircs de Agosto O criteacuterio de parada para o treino eacute o erroquadraacutetico meacutedio o qual teve seu valor atribuiacutedo para 001

Capiacutetulo 3

Tecnologias utilizadas

31 O sistema AndroidAndroid eacute um Sistema operacional open source (software de coacutedigo aberto o qual as

pessoas podem acessar e modificar para contribuir com o projeto [25]) e para dispositivosmoacuteveis desenvolvido pela Google baseado no Kernel do Linux e utilizado principalmente emdispositivos touchscreen Atualmente o Android eacute o sistema operacional que deteacutem a maiorparcela do mercado[17] com 836 dos dispositivos contra 134 do iOS da Apple

A Google tambeacutem oferece um ambiente de desenvolvimento para a plataforma Androidchamado Android Studio no qual os aplicativos satildeo criados e exportados para os dispositi-vos moacuteveis Aplicativos Android satildeo programados na linguagem Java com vaacuterias bibliotecasdisponibilizadas pela Google para suporte ao sistema operacional

A escolha da plataforma foi feita principalmente por conta de o sistema possuir a maiorparte dos usuaacuterios de Smartphones e tambeacutem pela ampla comunidade ativa de desenvolve-dores agrave qual se pode recorrer em casos de duacutevidas e problemas tornando suas resoluccedilotildeesmais raacutepidas e com muacuteltiplas alternativas Outros motivos que contribuiacuteram para a escolhado Android foram

∙ A disponibilidade do ambiente de desenvolvimento Android Studio que possui todosos recursos necessaacuterios para desenvolver um aplicativo funcional logo apoacutes a instalaccedilatildeosem a necessidade de utilizar outras dependecircncias as quais satildeo gerenciadas automati-camente pelo proacuteprio software

∙ O fato de no mercado brasileiro o sistema Android se encontrar em 918 dos dispo-sitivos segundo pesquisa da Kantar[18] e dado a pesquisa realizada para definiccedilatildeo depuacuteblico alvo onde foi possiacutevel perceber que 639 dos entrevistados utilizam smartpho-nes com sistema Android

∙ A utilizaccedilatildeo da linguagem de programaccedilatildeo Java para desenvolvimento que jaacute eraconhecida e fora utilizada anteriormente ao contraacuterio das linguagens Objective C eSwift linguagens utilizadas para desenvolver aplicativos para o sistema iOS Assimcomo a disponibilidade de dispositivos por parte do grupo que em sua maioria era decelulares com o sistema Android

15

16 TECNOLOGIAS UTILIZADAS 31

Figura 31 Parcela de mercado dos dispositivos no Brasil

311 Organizaccedilatildeo de uma aplicaccedilatildeo Android

Aplicativos Android satildeo divididos em componentes Haacute quatro tipos de componentespresentes Activities (ou atividades) Services (ou serviccedilos) Content providers (ou provedoresde conteuacutedo) Broadcast receivers (ou receptores de transmissatildeo)

∙ Activities Satildeo as telas e interfaces do usuaacuterio Cada tela de uma aplicaccedilatildeo eacute repre-sentada por uma activity e cada activity eacute independente de outras apesar de seremcomponentes de uma mesma aplicaccedilatildeo Isso se daacute pelo fato de haver a possibilidade deutilizar activities de aplicativos durante a execuccedilatildeo de outros Atividades satildeo iniciadase se comunicam entre si atraveacutes de objetos chamados Intent que transferem um pacotede dados que pode ser carregado no iniacutecio da nova atividade

∙ Services Sempre satildeo executados em segundo plano sem interferir na experiecircncia dousuaacuterio geralmente para realizar operaccedilotildees longas ou realizar operaccedilotildees de troca dedados enquanto o usuaacuterio estaacute utilizando outra aplicaccedilatildeo em primeiro plano

∙ Content Providers Satildeo gerenciadores de dados de aplicaccedilotildees Android utilizadospara ler e salvar dados compartilhados ou secretos dos aplicativos e do sistema

∙ Broadcast Receivers Satildeo componentes responsaacuteveis por obter eventos que aconte-ceram em outras aplicaccedilotildees ou no sistema e direcionar dados sobre esses eventos paraeventuais aplicaccedilotildees que necessitem destes dados alguns exemplos de eventos obtidospelos receptores de transmissatildeo satildeo tela desligada e bateria fraca

Aleacutem dos componentes uma parte importante de uma aplicaccedilatildeo Android eacute o ArquivoManifest que eacute uma declaraccedilatildeo de permissotildees serviccedilos e exigecircncias de hardware necessaacuterios

33 JSON 17

para o funcionamento do aplicativo Outra funccedilatildeo eacute possuir declaraccedilotildees de todos os compo-nentes utilizados no projeto nomes iacutecones entre outros

As interfaces de usuaacuterio do Android satildeo definidas em arquivos XML (eXtensible MarkupLanguage)[26] nos quais estatildeo declarados todos os layouts e configuraccedilotildees das telas Essesarquivos de layout satildeo depois inflados e satildeo gerados os componentes visuais da aplicaccedilatildeoEssa estrutura tem como objetivo facilitar o design da interface do usuaacuterio jaacute que arquivosxml satildeo de faacutecil compreensatildeo do desenvolvedor

32 JSONJSON ou Javascript Object Notation eacute um formato de dados amplamente utilizado para

troca de informaccedilotildees entre programas Possui uma notaccedilatildeo simples para grande parte dosprogramadores pois se assemelha a convenccedilotildees utilizadas em linguagens de programaccedilatildeomuito conhecidas como C C++ Python e Java O objetivo eacute que ele seja de faacutecil entendi-mento tanto para pessoas como para maacutequinas[11]

Um arquivo JSON eacute organizado como um objeto contendo pares nomevalorseparadospor viacutergulas e dentro de chaves(lsquolsquo rsquorsquo) ou como um array que eacute uma lista de valores separa-dos por viacutergulas e entre colchetes(lsquo[lsquo rsquo]rsquo) Um valor por sua vez pode ser um objeto ou umarray mas tambeacutem um nuacutemero inteiro ou uma String entre outros

Um exemplo de arquivo JSON eacute

1 2 Carros [3 4 Nome Scen ic 5 Marca Renault 6 Ano 20127 8 9 Nome Sentra

10 Marca Nissan 11 Ano 200912 13 ]14

33 Google APIsAPIs (Application Program Interfaces) satildeo interfaces para facilitar a troca de informa-

ccedilotildees entre aplicaccedilotildees utilizando comandos especiacuteficos[15]

Ao longo do desenvolvimento algumas APIs fornecidas pela Google foram utilizadascomo fonte de informaccedilotildees adicionais para o aplicativo

∙ Google Maps Distance Matrix API Esta API eacute utilizada para obter o tempo emsegundos de trajeto entre dois pontos (latlong) no mapa podem ser consultados ostempos de trajeto de carro bicicleta a peacute e utilizando transporte puacuteblico[28] Esta eacute

18 TECNOLOGIAS UTILIZADAS 35

uma API web logo utiliza-se um request http para realizar uma consulta

Por exemplo o request

httpsmapsgoogleapiscommapsapidistancematrixjsonorigins=Seattleampdestinations=Victoria+BCampkey=[user_key]

retorna o JSON

1 2 des t ina t i on_addre s s e s [ Vic tor ia BC Canada ] 3 o r i g in_addre s s e s [ Sea t t l e WA EUA ] 4 rows [5 6 e lements [7 8 d i s t anc e 9 text 172 km

10 value 17166811 12 durat ion 13 text 4 horas 40 minutos 14 value 1680915 16 s t a tu s OK17 18 ]19 20 ] 21 s t a tu s OK22

no qual eacute possiacutevel obter o tempo de trajeto em segundos

∙ Google Maps Android API Esta API eacute utilizada para habilitar o uso de mapasda Google integrados agrave aplicaccedilatildeo jaacute disponiacutevel com todas as funcionalidades de zoome arrastar presentes no aplicativo nativo permitindo tambeacutem a personalizaccedilatildeo comoa adiccedilatildeo de pontos definidos pelo usuaacuterio ao mapa

34 Localizaccedilatildeo do UsuaacuterioOutro serviccedilo que foi utilizado com o intuito de obter o tempo de trajeto e a lista ordenada

de forma personalizada de restaurantes foi a localizaccedilatildeo do usuaacuterio que eacute obtida atraveacutes doGPS presente nos smartphones Um objeto de localizaccedilatildeo eacute criado e realiza a comunicaccedilatildeocom o serviccedilo de localizaccedilatildeo do aparelho Ao obter a localizaccedilatildeo ele lanccedila um evento quepode ser acessado por outras partes da aplicaccedilatildeo obtendo a localizaccedilatildeo mais atualizada dodispositivo

36 CONTROLE DE VERSAtildeO 19

35 Controle de VersatildeoControle de versatildeo eacute uma praacutetica usada para manter a organizaccedilatildeo do coacutedigo e do seu de-

senvolvimento quando muitos desenvolvedores colaboram conjuntamente Existem softwaresque auxiliam essa organizaccedilatildeo registrando todas as mudanccedilas feitas ao longo do processo eque possui recursos que permitem que vaacuterios usuaacuterios trabalhem nos mesmos arquivos semperda de informaccedilotildees

No caso do Git [8] o projeto fica organizado em uma estrutura de aacutervore onde cadacommit (checkpoints criados pelos membros do grupo durante o processo) eacute marcado porum noacute para onde se pode retornar quando necessaacuterio Existem tambeacutem estruturas chama-das branches que satildeo bifurcaccedilotildees na estrutura para que partes do projeto sejam criadasseparadamente sem interferir com a linha principal As branches depois satildeo unidas agrave linhaprincipal atraveacutes do comando merge

Neste projeto o serviccedilo de controle de versatildeo utilizado foi o Bitbucket [2] (que eacute um ser-viccedilo web-based de controle de versatildeo que utiliza Git) com auxiacutelio do software SourceTree[19]que eacute uma interface graacutefica para os serviccedilos do Bitbucket onde eacute possiacutevel visualizar com maisfacilidade as fases do desenvolvimento do projeto e realizar os comandos mais intuitivamente

Figura 32 Interface do SourceTree que mostra o controle de versionamento do projeto

36 Banco de dadosCom o intuito de deixar o aplicativo mais completo guardando informaccedilotildees dos usuaacuterios

e dos estabelecimentos optou-se por utilizar-se um banco de dados Alguns exemplos de

20 TECNOLOGIAS UTILIZADAS 36

banco de dados aprendidos no curso Laboratoacuterio de Banco de Dados foram

∙ SQL (Structured Query Language - Linguagem de Consulta Estruturada)[20] umalinguagem para atualizar deletar e requisitar informaccedilotildees atraveacutes de consultas emtabelas que possuem relaccedilatildeo entre si

∙ noSQL[13] um banco de dados que armazena e recupera informaccedilotildees modeladas deuma forma onde natildeo satildeo usadas tabelas relacionais

Como este uacuteltimo natildeo foi o foco da disciplina por falta de tempo decidiu-se por utilizaacute-lopara que o grupo pudesse aprender melhor esse modelo

Outra decisatildeo tomada foi a hospedagem dos dados na nuvem ou seja colocaacute-los em umservidor que natildeo seja local e conseguir acessaacute-los atraveacutes de uma conexatildeo via internet Dessemodo os dados sempre estaratildeo disponiacuteveis para serem consultados

361 Firebase

Buscando-se atender as decisotildees tomadas sobre o banco de dados procuramos um serviccedilode banco de dados da Google por conter ampla integraccedilatildeo com a plataforma de desenvolvi-mento Android por ser conhecido bastante utilizado e por possuir uma ampla comunidadede desenvolvedores dispostos a oferecer auxiacutelio em foacuteruns de discussatildeo de coacutedigos

Para atender esses requisitos escolheu-se o Firebase Realtime Database[6] desenvolvido edisponibilizado pela Google que consiste em um banco de dados noSQL com armazenamentona nuvem Esse serviccedilo armazena os dados do usuaacuterio no servidor da Google em formatoJSON e a cada alteraccedilatildeo sincroniza em tempo real com todos os clientes conectados

O grupo pode observar as seguintes vantagens de se trabalhar com a ferramenta existea sincronizaccedilatildeo em tempo real dos dados de todos os clientes e sua disponibilidade mesmocom o aplicativo offline ou seja quando o aplicativo natildeo estiver conectado a internet osdados do dispositivo moacutevel seratildeo armazenados e sincronizados com o banco de dados assimque a conexatildeo estiver disponiacutevel novamente Aleacutem disso os desenvolvedores possuem acessoa um console online (figura 33) onde o JSON eacute mostrado numa interface interativa de umaforma mais amigaacutevel e no qual eacute permitido editaacute-lo facilmente

37 CROWDSOURCING 21

Figura 33 Console online do Firebase onde os dados satildeo mostrados de forma mais amigaacutevel eintuitiva

Outra observaccedilatildeo feita foi que o Firebase Realtime Database funciona como o esperadose ele guardar uma coacutepia local dos dados em um arquivo JSON no celular Poreacutem isso natildeofoi visto como um problema pois como essa coacutepia pode ser salva em um arquivo texto oespaccedilo utilizado diminui consideravelmente

Na primeira vez que os dados satildeo criados e todas as vezes em que os dados forem atua-lizados por algum dispositivo moacutevel eacute enviada uma atualizaccedilatildeo que seraacute recebida atraveacutes delisteners por todos os aparelhos que utilizam o aplicativo para que eles atualizem seus res-pectivos JSONs Listeners satildeo interfaces de comunicaccedilatildeo que executam uma seacuterie de accedilotildeesassim que um outro evento esperado acontece

37 CrowdsourcingO termo Crowdsourcing tem origem nas palavras da liacutengua inglesa Crowd (multidatildeo) e

Outsourcing (terceirizaccedilatildeo) e eacute definido pelo dicionaacuterio Merriam Webster como A praacuteticade obtenccedilatildeo de serviccedilos ideias ou conteuacutedo solicitando contribuiccedilotildees de grandes grupos depessoas e especialmente da comunidade online [3] Esta praacutetica eacute utilizada para que sejapossiacutevel agrave comunidade contribuir com dados para algum programa ou serviccedilo como no apli-cativo Waze do qual a principal fonte de dados de tracircnsito acidentes e radares eacute obtida pormeio dos proacuteprios usuaacuterios

Capiacutetulo 4

Desenvolvimento do Projeto

Este capiacutetulo aborda o processo de desenvolvimento do projeto iniciado com o preen-chimento do diagrama Canvas e uma pesquisa de mercado direcionada ao usuaacuterio A partirdas informaccedilotildees coletadas foi possiacutevel projetar um aplicativo que atendesse as necessidadesexpostas pela pesquisa e selecionar as tecnologias necessaacuterias Tambeacutem eacute abordada a aplica-ccedilatildeo dos diferentes meacutetodos de caacutelculo da previsatildeo de tempo de espera que foram estudadose explicados no Capiacutetulo 2 Por fim satildeo expostas as diferentes versotildees do aplicativo duranteo processo e seus detalhes

41 Pesquisa de MercadoAntes de iniciar-se o desenvolvimento praacutetico algumas questotildees foram levantadas se

um aplicativo com as funcionalidades escolhidas seria de alguma forma uacutetil para o usuaacuterioe se sim qual metodologia deveria ser usada para que este produto fosse entregue o maiscompleto possiacutevel ateacute o final do ano Para responder a primeira pergunta desenvolveu-seum questionaacuterio

411 Pesquisa com o usuaacuterio

O questionaacuterio foi desenvolvido para avaliar a viabilidade do aplicativo e suas funciona-lidades e foi criado utilizando-se o Google Forms [9] Essa eacute uma ferramenta desenvolvidapelo Google que possibilita a criaccedilatildeo de formulaacuterios contendo diversos formatos de pergun-tas tanto dissertativas quanto de muacuteltipla escolha

Seguindo os princiacutepios de desenvolvimento de questionaacuterios [4] o conjunto de perguntasfoi mantido curto simples e de faacutecil entendimento Tambeacutem variou-se o tipo de questotildeesentre estruturadas (questotildees com respostas em forma de alternativas) e desestruturadas(questotildees com respostas em formato texto) seguindo esses mesmos princiacutepios para captarmelhor as informaccedilotildees dos entrevistados e evitar erros de entendimento

Com as respostas do questionaacuterio tinha-se o intuito de traccedilar um possiacutevel puacuteblico alvoconhecer seu modo de uso de dispositivos moacuteveis e validar a aplicabilidade de diferentesfuncionalidades pretendidas inicialmente sendo essas engajamento do usuaacuterio atraveacutes denotificaccedilotildees do sistema aceitaccedilatildeo de sugestotildees de locais alternativos avaliaccedilatildeo da existecircnciado problema que queremos resolver (se este aplicativo supre uma necessidade real do usuaacute-rio) e aceitaccedilatildeo do aplicativo

23

24 DESENVOLVIMENTO DO PROJETO 41

Para a divulgaccedilatildeo redes sociais como Facebook [5] e sistemas de mensagem instantacircneascomo WhatsApp foram usados e o envio de respostas foi restrito ateacute trecircs semanas apoacutes suaprimeira postagem Neste periacuteodo foram obtidas 210 respostas as quais ajudaram a definiros aspectos do sistema a ser desenvolvido

O questionaacuterio foi dividido em duas subseccedilotildees perfil do usuaacuterio e funcionalidade Comelas obteve-se os seguintes resultados

41 PESQUISA DE MERCADO 25

Questatildeo 1

Figura 41 Graacutefico pizza da distribuiccedilatildeo das respostas em relaccedilatildeo a idade dos pesquisados

As faixas de idade apresentadas estatildeo desbalanceadas por natildeo terem a mesma quantidadede anos em cada uma poreacutem essa divisatildeo foi pensada levando-se em conta a fluecircncia comtecnologia que cada idade possui Com o resultado verificou-se que do puacuteblico alcanccediladocom a pesquisa a maioria estaacute na faixa de 18 a 25 anos de idade assumida como parcelacom maior conhecimento tecnoloacutegico

Questatildeo 2

Figura 42 Graacutefico pizza da distribuiccedilatildeo das respostas em relaccedilatildeo ao sistema operacional

Esta questatildeo foi pensada para medir a porcentagem de cada sistema operacional pre-sente nos celulares do puacuteblico Com ela descobriu-se que 639 das pessoas dentro desse

26 DESENVOLVIMENTO DO PROJETO 41

grupo possuem o sistema Android enquanto 234 possuem iOS e 38 Windows phoneEssa pergunta foi incluiacuteda para um melhor direcionamento do desenvolvimento do aplicativo

Uma questatildeo levantada ao aplicar esse questionaacuterio foi a dificuldade que algumas pessoasencontraram para identificar a versatildeo do proacuteprio aparelho Poreacutem para manter a consistecircnciadas respostas decidiu-se natildeo mudar nada nesta questatildeo para remediar isso

Questatildeo 3

Figura 43 Graacutefico em barras da distribuiccedilatildeo de frequecircncias mensais de cada local analisado

41 PESQUISA DE MERCADO 27

Questatildeo 4

Figura 44 Graacutefico em pizza da distribuiccedilatildeo de interesse do usuaacuterio no tempo de espera de cadalocal

A princiacutepio viu-se muitas possiacuteveis aplicaccedilotildees para a previsatildeo de tempo de espera Paraentender qual seria a prioridade do puacuteblico as questotildees acima foram incluiacutedas A primeiraverificou a frequecircncia de visitas em alguns locais e a segunda serviu para analisar qualestabelecimento despertava mais interesse nos entrevistados quanto ao quesito fila Nos doiscasos restaurantes se destacaram com o maior interesse

Questatildeo 5

Figura 45 Graacutefico em barras da distribuiccedilatildeo de interesse do usuaacuterio por cada item avaliado

Para acompanhar o dado de espera e fornecer mais informaccedilotildees relevantes ao usuaacuteriosem potencial perguntou-se quais outras informaccedilotildees eles acham interessante saber sobre umdeterminado estabelecimento Com isso descobriu-se que a faixa de preccedilo o trajeto ateacute olocal e o cardaacutepio seriam dados importantes de se obter juntamente com o tempo de espera

28 DESENVOLVIMENTO DO PROJETO 41

Questatildeo 6O que vocecirc costuma fazer para evitar filasNeste ponto testou-se se a soluccedilatildeo proposta atraveacutes do aplicativo resolveria o problema dousuaacuterio de uma forma melhor do que a soluccedilatildeo atualmente utilizada Para isso foi perguntadoo que as pessoas fazem para evitar filas e as principais respostas foram

∙ Evitar horaacuterios de pico

∙ Chegar cedo

∙ Ir em outro lugar caso uma fila seja encontrada

∙ Tentar realizar reservas antecipadamente

∙ Se distrair com livroscelular

Notou-se que as soluccedilotildees utilizadas atualmente natildeo suprem as necessidades dos entre-vistados pois mesmo em horaacuterios natildeo convencionais pode-se encontrar filas ou quandodecide-se esperar na fila muito tempo eacute perdido Concluiu-se que a soluccedilatildeo proposta a par-tir do aplicativo resolve de forma mais abrangente o problema pois ajuda o usuaacuterio a evitarhoraacuterios de pico inesperados

Questatildeo 7

Figura 46 Graacutefico em pizza da distribuiccedilatildeo do meio de transporte utilizado pelos usuaacuterios

Essa questatildeo foi formulada com o objetivo de verificar quais meios de transporte seriamincluiacutedos com previsatildeo de tempo de trajeto no aplicativo Foi verificado que a maioria dosentrevistados utilizam transporte puacuteblico seguido por carro

41 PESQUISA DE MERCADO 29

Questatildeo 8

Figura 47 Graacutefico em pizza da distribuiccedilatildeo do interesse do usuaacuterio pela informaccedilatildeo fornecida

Questatildeo 9

Figura 48 Graacutefico em pizza da distribuiccedilatildeo de quantidade de quilocircmetros que o usuaacuterio sedeslocaria para ir a um local com menos fila

Com essas questotildees foi verificado que algo importante para o usuaacuterio eacute saber de outrosestabelecimentos que possam oferecer tempos de espera menores nas redondezas de onde ousuaacuterio se encontra que eacute uma das funcionalidades que desejaacutevamos utilizar no sistema

30 DESENVOLVIMENTO DO PROJETO 41

Questatildeo 10

Figura 49 Graacutefico em barras da distribuiccedilatildeo de sentimento do usuaacuterio em relaccedilatildeo a notificaccedilatildeode aplicativos

Questatildeo 11

Figura 410 Graacutefico em pizza da distribuiccedilatildeo de opiniatildeo do usuaacuterio sobre desabilitar notificaccedilotildeesem celular

42 PESQUISA DE MERCADO 31

Questatildeo 12

Figura 411 Graacutefico em pizza da distribuiccedilatildeo de opiniatildeo do usuaacuterio sobre habilitar GPS emcelular

A ideia inicial era poder usar o GPS para verificar a localizaccedilatildeo do usuaacuterio e enviarnotificaccedilotildees quando este estivesse parado nas proximidades de algum dos estabelecimentoscadastrados Para que essa funcionalidade possa existir eacute necessaacuterio que o aplicativo tenhaacesso agrave localizaccedilatildeo precisa da pessoa atraveacutes do GPS ou internet ateacute mesmo quando natildeoestiver aberto Aleacutem disso tambeacutem eacute necessaacuterio que as notificaccedilotildees estejam habilitadas parafinalizar esta interaccedilatildeo Entatildeo as perguntas 10 11 e 12 foram incluiacutedas no questionaacuterio Ob-servando as respostas foi possiacutevel verificar que 295 das pessoas que responderam deixamambas as funcionalidades habilitadas (GPS e notificaccedilotildees) Com isso pudemos prosseguircom essa ideia e tambeacutem pensar em possiacuteveis alternativas de interaccedilatildeo e engajamento como usuaacuterio

Por conta dessa pesquisa ter sido compartilhada atraveacutes das contas das redes sociais ecomunicadores dos componentes deste grupo sabe-se que este pode apresentar um resultadoviesado mas que mesmo assim natildeo deve ser desconsiderado e que muito ajudou a sanar asduacutevidas iniciaisComo resultado traccedilamos o perfil do entrevistado

∙ Faixa etaacuteria predominante entre 18 e 30 anos

∙ Possui sistema operacional Android (versotildees 4 5 e 6)

∙ Vai a restaurantes com certa frequecircncia mensal resultando em interesses sobre infor-maccedilotildees relacionadas a esse estabelecimento

∙ Costuma chegar cedo ou evitar os horaacuterios de pico para evitar filas nos locais

∙ Carro e transporte coletivo satildeo os principais meios de transporte

∙ Se deslocaria para um estabelecimento semelhante que possui menos fila contanto queeste fique num raio de 2km de distacircncia

32 DESENVOLVIMENTO DO PROJETO 43

42 Projeto do AplicativoO grupo comeccedilou o projeto com o preenchimento do diagrama Canvas(figura 412) apre-

sentado na Seccedilatildeo 21 Desse modo foi adquirida uma ideia mais consistente e uma base paracomeccedilar a implementaccedilatildeo

Figura 412 Diagrama Canvas preenchido pelo grupo

Com o modelo de negoacutecios definido e com base no resultado da pesquisa com o usuaacuterioapresentada na seccedilatildeo seguinte foram aplicadas pequenas mudanccedilas no projeto para melhoradequar-se agraves necessidades e ao perfil do puacuteblico alvo

Para o desenvolvimento foi utilizado um meacutetodo aacutegil baseado no scrum com sprints de3 a 4 semanas devido agrave disponibilidade dos membros do grupo Os encontros natildeo eram diaacute-rios como recomendado para o meacutetodo scrum tambeacutem em razatildeo da disponibilidade Haviamstand ups (discussotildees raacutepidas no comeccedilo de cada encontro) e retrospectivas ao final de cadasprint A cada sprint eram selecionadas histoacuterias e tarefas para serem executadas e caso natildeofossem concluiacutedas ao final da iteraccedilatildeo eram inseridas ao backlog e feitas no sprint seguinte

43 Aplicaccedilatildeo dos meacutetodos de caacutelculo de espera

431 Aplicando a meacutedia por periacuteodo

Aplicando-se no trecho abaixo a teacutecnica desenvolvida na Seccedilatildeo 242 para uma queryrealizada no dia 19082016 no intervalo de 2040 - 2055 analisa-se a semana anterior quepossua tais intervalos Assim o saacutebado dia 06082016 seraacute selecionado

43 APLICACcedilAtildeO DOS MEacuteTODOS DE CAacuteLCULO DE ESPERA 33

Entrada Qtd Pessoas Notificado Espera

6816 2043 2 862016 2053 1606

6816 2044 2 862016 2055 674

6816 2048 2 862016 2056 528

6816 2048 2 862016 2057 520

6816 2051 2 862016 2107 1118

6816 2051 3 862016 2110 1305

6816 2052 2 862016 2110 1273

6816 2052 2 862016 2111 1179

6816 2053 2 862016 2112 1217

6816 2053 2 NULL 59

6816 2054 3 862016 2119 1541

6816 2055 2 862016 2117 1444

6816 2055 2 862016 2120 1570

6816 2055 2 862016 2122 1613

Tabela 41 Trecho do dia 06082016 entre os horaacuterios das 2043 agraves 2055 um intervalo de 12minutos retirado dos dados da empresa Get In

Com esses dados obteve-se a meacutedia de espera de 1080 segundos (18 minutos) a qualseria sugerida para o usuaacuterio com a busca e desvio padratildeo de 465144719 segundos (775 mi-nutos) Dentro desse intervalo tem-se como maacuteximo tempo de espera 1613 segundos (2688minutos) e como miacutenimo 59 segundos (1 minuto) Analisando-se os dados do dia 19082016no mesmo periacuteodo temos

34 DESENVOLVIMENTO DO PROJETO 43

Entrada Pessoas Notificado Espera Erro previsatildeo Erro p 2 pessoas

19816 2043 2 8192016 2051 544 -563 522

19816 2043 2 8192016 2052 605 -502 461

19816 2044 2 8192016 2056 723 -384 343

19816 2046 4 8192016 2119 1988 881 X

19816 2048 2 8192016 2102 919 188 147

19816 2051 2 8192016 2103 821 286 245

19816 2051 3 8192016 2108 1773 666 X

19816 2053 2 8192016 2110 1083 24 -17

19816 2053 2 8192016 2111 1105 2 -39

19816 2053 2 8192016 2112 1169 62 -103

19816 2055 2 8192016 2114 1447 340 -381

Tabela 42 Trecho do dia 19082016 entre os horaacuterios das 2043 agraves 2055um intervalo de 12minutos retirado dos dados da empresa Get In

Ou seja se um grupo chegasse dentro desse periacuteodo e a previsatildeo dada fosse a meacutediaobtida anteriormente o erro calculado pela diferenccedila entre o tempo sugerido e o real tempode espera estaria no intervalo de 15 minutos para menos ou 8 minutos para mais Sendoesse um valor aceitaacutevel

Um proacuteximo passo eacute a restriccedilatildeo dos registros a grupos com 2 integrantes Com tal restri-ccedilatildeo a previsatildeo de espera eacute de 1066 segundos (1776 minutos) Aplicando essa nova meacutedia aosregistros com 2 integrantes do dia 19082016 obteacutem-se um erro (Coluna 6 - erro previsatildeopara 2 pessoas) menor do que o anterior O intervalo do erro calculado neste caso seria de 522segundos (87 minutos) para mais e 381 segundos (635 minutos) para menos Este resultadoeacute ainda mais favoraacutevel mostrando que a inclusatildeo de mais filtros para o caacutelculo da previsatildeomelhorou o tempo previsto

432 Aplicando teoria das filas

A teoria das filas (Seccedilatildeo 242) eacute uma ferramenta muito completa que calcula muitos dadosuacuteteis para a previsatildeo de espera Contudo por conta da necessidade de informaccedilotildees sobreo tempo de atendimento a qual natildeo estaacute contida no banco utilizado esta teoria natildeo podeser aplicada neste caso Poreacutem esse dado pode ter um valor assumido para que a utilizaccedilatildeodessa teoria fosse possiacutevel entretanto a sua precisatildeo ficaria comprometida e imprevisiacutevel

433 Aplicando redes neurais

Para aplicar o que foi estudado na Seccedilatildeo 242 foi executado o software com o mecircs deAgosto como teste o mecircs de Setembro como treino e o limite do erro quadraacutetico como 001 eobteve-se a tabela presente no apecircndice B Na tabela podemos ver o tempo de fila esperadoou seja o tempo contido na tabela do mecircs de Setembro o tempo que o algoritmo deu comoresposta baseado no mecircs de Agosto e o erro entre eles respectivamente

44 DEFINICcedilAtildeO DA INTERFACE DO APLICATIVO 35

Figura 413 Software Multiple Back-Propagation com a configuraccedilatildeo escolhida para os dadosdisponiacuteveis

Mesmo o erro se mantendo em 0018 os dados obtidos possuem um erro padratildeo de 15minutos Se mais dados forem adicionados o criteacuterio de parada pode ser atingido e assimuma previsatildeo melhor pode ser alcanccedilada

434 Conclusatildeo sobre os meacutetodos estudados

Dentre todas as possibilidades estudadas visualizamos na meacutedia por periacuteodo a melhoropccedilatildeo assumindo os dados disponiacuteveis para teste Se mais paracircmetros fossem fornecidoscomo o tempo de atendimento a teoria das filas seria uma boa opccedilatildeo para fornecer a pre-visatildeo de espera E se mais dados estivessem disponiacuteveis as redes neurais conseguiriam umaaproximaccedilatildeo melhor e assim seria uma boa opccedilatildeo tambeacutem

44 Definiccedilatildeo da Interface do aplicativoComo um primeiro protoacutetipo foi desenvolvida uma interface simples que tinha como tela

de iniacutecio um mapa com um campo para buscas na parte superior

36 DESENVOLVIMENTO DO PROJETO 44

Figura 414 Fluxo de telas do primeiro protoacutetipo

Ao efetuar uma busca por algum estabelecimento uma tela mostrando o tempo de esperaaproximado da fila no local era exibida junto com bototildees que permitiam selecionar o meiode transporte visualizar outras opccedilotildees ou dar iniacutecio a rota ateacute o local desejado Tambeacutemhavia uma notificaccedilatildeo para quando a pessoa estivesse parada proacutexima a um restaurantecadastrado que direcionaria o usuaacuterio a uma tela com um cronocircmetro do tempo de esperana fila

Para testar essa visualizaccedilatildeo escolhemos algumas pessoas e realizamos um teste deusabilidade[22] este teste eacute feito da seguinte forma

44 DEFINICcedilAtildeO DA INTERFACE DO APLICATIVO 37

Uma contextualizaccedilatildeo eacute feita para o voluntaacuterio e entatildeo uma tarefa eacute passada para sercompletada Os integrantes do grupo observam dificuldades enfrentadas pelo entrevistado etomam notas Esse teste eacute repetido algumas vezes e seu resultado eacute coletado para avaliaccedilatildeoe modificaccedilatildeo das funcionalidades

Figura 415 Tela de detalhes de um restaurante(segunda versatildeo)

Notou-se que algumas funcionalidadespareceram confusas e natildeo intuitivas porexemplo natildeo ficou claro se o tempo mos-trado era de trajeto ou de espera na filanem qual era o meio de transporte utili-zado

Logo esse protoacutetipo foi reformuladocom o intuito de melhorar a experi-ecircncia do usuaacuterio com o nosso aplica-tivo

Foram colocados aleacutem do tempo deespera da fila o tempo que o usuaacuteriolevaria para chegar ateacute o local selecio-nado (conforme o tipo de transporte es-colhido) e a quantidade estimada de pes-soas na fila O tempo total (espera so-mado ao tempo de deslocamento) ga-nhou destaque entre as informaccedilotildees doestabelecimento e o botatildeo que direcionao usuaacuterio ao trajeto ficou mais especiacute-fico

Tambeacutem cogitou-se a possibilidade deadicionar login e um perfil de usuaacuteriojunto com uma lista de restaurantes favo-ritos

O fluxo das telas deste novo protoacutetipo ficou como mostra o esquema a seguir

38 DESENVOLVIMENTO DO PROJETO 44

Figura 416 Fluxo de telas do segundo protoacutetipo

44 DEFINICcedilAtildeO DA INTERFACE DO APLICATIVO 39

Figura 417 Tela de detalhes de um restaurante(terceira versatildeo)

Apoacutes outras avaliaccedilotildees mais algumaspequenas alteraccedilotildees foram realizadas nainterface Foi decidido que seria inviaacute-vel estimar o nuacutemero de pessoas nafila entatildeo essa funcionalidade foi remo-vida

Notificaccedilotildees foram adicionadas paraquando o usuaacuterio estiver parado na aacutereado restaurante para que ele possa con-tribuir com informaccedilotildees sobre a fila quepegou aleacutem de um botatildeo de contri-buiccedilatildeo ter sido inserido na tela ini-cial

40 DESENVOLVIMENTO DO PROJETO 45

O fluxo de telas do aplicativo atual ficou da seguinte forma

Figura 418 Fluxo de telas do terceiro protoacutetipo

46 EXPLICACcedilAtildeO DAS FUNCIONALIDADES 41

45 Explicaccedilatildeo das funcionalidadesEsta seccedilatildeo explica as funcionalidades do produto utilizando a figura 418

A tela inicial (3) exibe uma lista de restaurantes incluindo seus respectivos tempos detrajeto e tempo de espera na fila Ao clicar no botatildeo ldquo+rdquo uma caixa de diaacutelogo eacute aberta(4) onde eacute possiacutevel adicionar o tempo que o usuaacuterio esperou na fila Primeiro eacute escolhido orestaurante depois a data e hora que a pessoa chegou na fila e por fim o tempo de esperaem minutos Ao tocar em ldquoEnviar Feedback rdquo os dados satildeo incluiacutedos no banco de dados eatualizados para os outros usuaacuterios Assim eacute apicado o conceito de Crowdsourcing no apli-cativo

Ao tocar em um item da lista de restaurantes seraacute aberta a tela de detalhes de um res-taurante (5) na qual eacute possiacutevel ver com mais clareza os tempos de trajeto e espera o tempototal o endereccedilo do estabelecimento e um pequeno mapa centrado no local Pressionandoo botatildeo ldquoDireccedilotildeesrdquo o usuaacuterio seraacute redirecionado ao aplicativo de mapas de sua preferecircnciano caso do exemplo (8) o Google Maps jaacute traccedilando a rota da localizaccedilatildeo do usuaacuterio para oestabelecimento em questatildeo

Novamente na tela inicial tocando no iacutecone de lupa eacute possiacutevel realizar uma busca digi-tando o nome do estabelecimento na caixa de texto a qual exibe sugestotildees dependendo doque foi digitado Ao clicar em um dos resultados da busca o usuaacuterio eacute novamente direcionadopara a tela de detalhes do restaurante (5)

Tambeacutem eacute possiacutevel tocar no iacutecone de mapa na tela inicial onde seraacute mostrado um mapacentrado na localizaccedilatildeo do usuaacuterio

Ao ficar parado por um tempo em um mesmo local proacuteximo a um estabelecimentocadastrado o usuaacuterio eacute perguntado em uma notificaccedilatildeo quanto tempo ele permaneceu nafila Ao tocar na notificaccedilatildeo a caixa de diaacutelogo para feedback do usuaacuterio seraacute aberta (4) jaacutecom o restaurante preenchido e apoacutes o feedback a janela seraacute fechada e os dados enviadosao banco de dados

46 Implementaccedilatildeo do banco de dadosO banco de dados do aplicativo foi modelado e populado em forma de aacutervore (Fi-

gura 419) de forma a facilitar o acesso aos dados necessaacuterios ao aplicativo No primeironiacutevel estatildeo os ids dos restaurantes Cada id de restaurante guarda a localizaccedilatildeo (latitudelongitude) do restaurante o nome o endereccedilo e um objeto fila O objeto fila guarda todos osdias da semana (domingo a saacutebado) e cada dia da semana possui 24 campos um para cadahora do dia Cada hora possui o tempo meacutedio de espera da fila naquela hora e um peso paraesse tempo O peso eacute um valor que aumenta de acordo com o nuacutemero de feedbacks dadospara que o novo valor do tempo meacutedio seja calculado de forma consistente

Modelamos o banco de dados de uma forma que respeitasse uma hierarquia de dados

42 DESENVOLVIMENTO DO PROJETO 46

Figura 419 Aacutervore que ilustra a organizaccedilatildeo de um restaurante no banco de dados

Com o banco de dados jaacute populado o aplicativo faz consultas e atualizaccedilotildees de dadosConsultas satildeo feitas ao criar a tela de listagem de restaurantes e de detalhes de um restau-rante consultado As atualizaccedilotildees satildeo feitas quando o usuaacuterio manda o feedback de tempo deespera em um estabelecimento em determinado horaacuterio o aplicativo calcula a nova meacutedia eatualiza o campo do respectivo horaacuterio

Capiacutetulo 5

Conclusatildeo

Ao longo dos capiacutetulos deste trabalho pocircde-se acompanhar todo o processo de criaccedilatildeo edesenvolvimento do aplicativo que apoacutes finalizado foi batizado com o nome Queue

Comeccedilando com um problema para o qual o grupo almejava oferecer uma soluccedilatildeoacabou-se por adentrar-se um pouco no campo da Estatiacutestica e estudar diversas metodo-logias que poderiam ser uacuteteis para fornecer um caacutelculo de previsatildeo de espera meacutedia porperiacuteodo aplicaccedilatildeo da teoria das filas e utilizaccedilatildeo de redes neurais

Atraveacutes de uma parceria com a empresa GetIn obteve-se acesso a uma grande quantidadede dados e foi possiacutevel utilizaacute-los em anaacutelises feitas nas metodologias escolhidas conseguindoassim resultados relevantes Por meio destes foi feita a escolha de um dos meacutetodos para ocaacutelculo da previsatildeo de filas a meacutedia por periacuteodo

Aleacutem desses estudos ao longo do ano o grupo aprendeu a desenvolver para a plata-forma Android sobre a qual nenhum dos integrantes tinha conhecimento preacutevio Tambeacutemfoi possiacutevel aprender e utilizar a metodologia aacutegil com Scrum para guiar o processo de de-senvolvimento

Ao fim do ciclo de desenvolvimento conseguiu-se entregar um aplicativo em funciona-mento que fornece a previsatildeo de espera no instante da consulta de estabelecimentos cadas-trados no banco de dados armazenado na nuvem

Na versatildeo atual do aplicativo natildeo foi implementado um sistema para o cadastro de novosestabelecimentos Isso soacute eacute possiacutevel atraveacutes da inserccedilatildeo direta no banco de dados atraveacutes dainterface fornecida pelo console do Firebase Atualmente estatildeo cadastrados 5 restaurantesos quais foram visitados durante o desenvolvimento do projeto Para que o cadastro deestabelecimentos escale seria necessaacuterio a implementaccedilatildeo de uma funcionalidade que permitaao usuaacuterio adicionar novos estabelecimentos a partir de locais disponiacuteveis na API de locaisda Google

43

45

46 APEcircNDICE A

Apecircndice A

Dados coletados

Figura A1 Dados de tempo de espera para grupos de tamanhos variados para cada horaacuterio e emcada dia da semana obtidos em entrevista em restaurantes Outback Steakhouse Shopping Uniatildeo nomecircs de outubro

Referecircncias Bibliograacuteficas

[1] Backpropagation httpmbpsourceforgenet Accesso em Janeiro 2017 14

[2] Bitbucket httpsbitbucketorgproduct Accesso em Dezembro 2016 19

[3] Crowdsourcing httpswwwmerriam-webstercomdictionarycrowdsourcing Ac-cesso em Novembro 2016 21

[4] Designing a survey httpwwwsciencebuddiesorgscience-fair-projectsproject_ideasSoc_surveyshtml Accesso em Outubro 2016 4 23

[5] Facebook httpswwwfacebookcom Accesso em Novembro 2016 24

[6] Firebase httpsfirebasegooglecom Accesso em Agosto 2016 20

[7] Getin app httpswwwgetinappcombrhomesao-paulo Accesso em Novembro2016 9

[8] Git 11 primeiros passos - sobre controle de versatildeo httpsgit-scmcombookpt-brv1Primeiros-passos-Sobre-Controle-de-Vers Accesso em Novembro 2016 19

[9] Google forms httpsdocsgooglecomforms Accesso em Novembro 2016 23

[10] Guia definitivo do project model canvas Project Builder 3

[11] Jsonorg introducing json httpwwwjsonorg Accesso em Novembro 2016 17

[12] Manifesto para desenvolvimento Aacutegil de software httpagilemanifestoorgisoptbrmanifestohtml Accesso em Novembro 2016 5

[13] Nosql httpsenwikipediaorgwikiNoSQL Accesso em Novembro 2016 20

[14] Outback steakhouse httpswwwoutbackcombrhome Accesso em Novembro 20169

[15] Restful api development with lumen microframework httpsbelitsoftcomlaravel-development-servicesapi-development Accesso em Novembro 2016 17

[16] Scrum httpswwwatlassiancomagilescrum Accesso em Novembro 2016 5

[17] Smartphone os market share 2016 q2 httpwwwidccomprodservsmartphone-os-market-sharejsp Accesso em Novembro 2016 15

[18] Smartphone os sales market share kantar worldpanel comtech httpwwwkantarworldpanelcomsmartphone-os-market-share Accesso em Novembro 2016 15

[19] Sourcetree httpswwwsourcetreeappcom Accesso em Dezembro 2016 19

47

48 REFEREcircNCIAS BIBLIOGRAacuteFICAS

[20] Sql httpsptkhanacademyorgcomputingcomputer-programmingsql Accesso emDezembro 2016 20

[21] Trello httpstrellocom Accesso em Novembro 2016 6

[22] Usability test httpsenwikipediaorgwikiUsability_testing Accesso em Novembro2016 36

[23] Versionone 2012 agile dev survey httpswwwversiononecompdf7th-Annual-State-of-Agile-Development-Surveypdf Accesso em Novembro 2016 5

[24] Waze httpswwwwazecom Accesso em Novembro 2016 1

[25] What is an open source httpsopensourcecomresourceswhat-open-source Accessoem Novembro 2016 15

[26] Xml tutorial httpwwww3schoolscomxml Accesso em Novembro 2016 17

[27] Paulo F Cabral dos Anjos Jr Aron Ifanger Maciel Christopher Silva de Paacutedua Com-posiccedilatildeo de carteiras de accedilotildees utilizando modelo de redes neurais artificiais e modelo derisco e retorno de Markowitz 2012 14

[28] Google Distance matrix api documentation httpsdevelopersgooglecommapsdocumentationdistance-matrix Accesso em Novembro 2016 17

[29] Alan Klement Designing features using job stories httpsblogintercomcomusing-job-stories-design-features-ui-ux Accesso em Novembro 2016 6

[30] Azmat Nafees Queuing theory and its application analysis of the sales checkout opera-tion in ica supermarket httpwwwstatisticsduseessaysD07ENafeespdf Accessoem Novembro 2016 12

[31] Eric Ries A Startup Enxuta Lua de papel primeira ediccedilatildeo edition 2012 3

  • Introduccedilatildeo
    • Motivaccedilatildeo
    • Trabalho Proposto
    • Estrutura da monografia
      • Estudos Preliminares
        • Desenvolvimento de Startups
          • Desenvolvimento de Questionaacuterios
            • Metodologia Aacutegil
            • Jobs to be done
            • Caacutelculo da previsatildeo do tempo de espera na fila
              • Descriccedilatildeo do problema
              • Meacutetodos de caacutelculo da espera
                  • Tecnologias utilizadas
                    • O sistema Android
                      • Organizaccedilatildeo de uma aplicaccedilatildeo Android
                        • JSON
                        • Google APIs
                        • Localizaccedilatildeo do Usuaacuterio
                        • Controle de Versatildeo
                        • Banco de dados
                          • Firebase
                            • Crowdsourcing
                              • Desenvolvimento do Projeto
                                • Pesquisa de Mercado
                                  • Pesquisa com o usuaacuterio
                                    • Projeto do Aplicativo
                                    • Aplicaccedilatildeo dos meacutetodos de caacutelculo de espera
                                      • Aplicando a meacutedia por periacuteodo
                                      • Aplicando teoria das filas
                                      • Aplicando redes neurais
                                      • Conclusatildeo sobre os meacutetodos estudados
                                        • Definiccedilatildeo da Interface do aplicativo
                                        • Explicaccedilatildeo das funcionalidades
                                        • Implementaccedilatildeo do banco de dados
                                          • Conclusatildeo
                                          • Dados coletados
                                          • Referecircncias Bibliograacuteficas

Abstract

Our goal with this project is to study and apply the process of software development of anAndroid application that provides the user with the waiting time prediction for restaurantsregistered in our database

To assist the development some modeling methods to estimate restaurant queues werestudied as well so that the calculation were accomplished with more precision

The waiting time prediction calculation is done using the following data data obtainedthrough research on the restaurants and data extracted from information sent by usersThus the waiting time provided for that moment will be increasingly more accurate as thefeedback from the users gets more frequent

In order to develop this application some project management techniques were used withthe interest of providing a satisfactory final product for the user

Keywords queues restaurants Android development waiting time estimation

v

Sumaacuterio

1 Introduccedilatildeo 111 Motivaccedilatildeo 112 Trabalho Proposto 113 Estrutura da monografia 2

2 Estudos Preliminares 321 Desenvolvimento de Startups 3

211 Desenvolvimento de Questionaacuterios 422 Metodologia Aacutegil 523 Jobs to be done 624 Caacutelculo da previsatildeo do tempo de espera na fila 8

241 Descriccedilatildeo do problema 8242 Meacutetodos de caacutelculo da espera 9

3 Tecnologias utilizadas 1531 O sistema Android 15

311 Organizaccedilatildeo de uma aplicaccedilatildeo Android 1632 JSON 1733 Google APIs 1734 Localizaccedilatildeo do Usuaacuterio 1835 Controle de Versatildeo 1936 Banco de dados 19

361 Firebase 2037 Crowdsourcing 21

4 Desenvolvimento do Projeto 2341 Pesquisa de Mercado 23

411 Pesquisa com o usuaacuterio 2342 Projeto do Aplicativo 3243 Aplicaccedilatildeo dos meacutetodos de caacutelculo de espera 32

431 Aplicando a meacutedia por periacuteodo 32432 Aplicando teoria das filas 34

vii

viii SUMAacuteRIO

433 Aplicando redes neurais 34434 Conclusatildeo sobre os meacutetodos estudados 35

44 Definiccedilatildeo da Interface do aplicativo 3545 Explicaccedilatildeo das funcionalidades 4146 Implementaccedilatildeo do banco de dados 41

5 Conclusatildeo 43

A Dados coletados 45

Referecircncias Bibliograacuteficas 47

Capiacutetulo 1

Introduccedilatildeo

Este capiacutetulo introduz o problema abordado a soluccedilatildeo proposta os objetivos do projetoe apresenta a estrutura da monografia

11 MotivaccedilatildeoEnfrentamos filas para realizar diversas atividades ao longo do dia Nosso tempo eacute gasto

esperando desde alguns minutos para pedir o almoccedilo ateacute horas para assistir um determinadoshow Ao todo muitas horas de nossas vidas satildeo desperdiccediladas nessas esperas

Muitas vezes somos surpreendidos por filas interminaacuteveis ou entatildeo pela ausecircncia delascriando a impressatildeo de que estas satildeo totalmente imprevisiacuteveis Isso acaba gerando a difi-culdade de programar com precisatildeo outras atividades pois natildeo sabemos ao certo quantotempo iremos gastar em esperas ao longo do dia Deixamos muitos deveres ou ateacute mesmomomentos de lazer de lado por causa disso e se tiveacutessemos como prever esse tempo gastopoderiacuteamos otimizar nosso dia

Esse e outros problemas podem ser minimizados agrave medida que o acesso agrave informaccedilatildeoseja histoacuterica ou em tempo real eacute facilitado Uma forma de fornecer essa informaccedilatildeo aousuaacuterio eacute atraveacutes da tecnologia Um exemplo disso eacute o aplicativo de navegaccedilatildeo Waze [24]que disponibiliza dados do tracircnsito em tempo real ajudando na locomoccedilatildeo diaacuteria Isso eacutepossiacutevel graccedilas aos avanccedilos tecnoloacutegicos e a maior acessibilidade aos dispositivos moacuteveisconectados agrave internet por exemplo

12 Trabalho PropostoAo vislumbrarmos esse problema tanto na vida dos outros como nas nossas e motivados

a utilizar nossos conhecimentos adquiridos ao longo do curso de Ciecircncia da Computaccedilatildeodecidimos desenvolver um aplicativo para diminuir esse desconforto causado pelas filas Essasoluccedilatildeo eacute um sistema

∙ desenvolvido na plataforma Android

∙ baseado em uma modelagem de sistema de filas

que tem como objetivo prever o tempo de espera dos usuaacuterios em filas e assim auxiliaacute-losnas suas decisotildees

1

2 INTRODUCcedilAtildeO 13

Para desenvolver uma soluccedilatildeo para o problema e dada a limitaccedilatildeo de tempo para o de-senvolvimento decidimos implementar a soluccedilatildeo apenas para as filas de restaurantes Estaescolha foi feita por serem locais muito frequentados e assim gerarem mais dados em menostempo e pela diversidade de tamanho das esperas gerando o interesse no estudo de suamodelagem

Implementou-se um aplicativo no qual o usuaacuterio pode fazer uma consulta sobre os res-taurantes cadastrados no banco de dados e ter acesso ao tempo de deslocamento somado aotempo de espera ateacute seu atendimento no estabelecimento Aleacutem disso ele tem a possibilidadede traccedilar uma rota ateacute o local e enviar um feedback sobre quanto tempo foi gasto na filapara aprimorar o calculo do tempo de espera

13 Estrutura da monografiaPara que fosse possiacutevel o desenvolvimento de um aplicativo para previsatildeo de tempo de es-

pera foi necessaacuterio estudar o processo de criaccedilatildeo de startups um processo de desenvolvimentode software tecnologias para programaccedilatildeo em Android bem como algumas modelagens es-tatiacutesticas de previsatildeo de tempo de espera A monografia foi estruturada de acordo comessas informaccedilotildees de modo que o leitor possa ter uma leitura progressiva dividida em trecircsprincipais partes

∙ Estudos preliminares Essa seccedilatildeo apresenta estudos sobre o que eacute necessaacuterio para odesenvolvimento de Startups a definiccedilatildeo da metodologia de desenvolvimento utilizadapelo grupo e o estudo da aplicaccedilatildeo de trecircs diferentes modelagens estatiacutesticas feitaspara analisar os dados iniciais fornecendo um modo de calcular o tempo de espera emum restaurante em um dado instante

∙ Tecnologias utilizadas Onde satildeo apresentadas as tecnologias e ferramentas utiliza-das para auxiliar no desenvolvimento do aplicativo

∙ Desenvolvimento do projeto Essa parte apresenta a aplicaccedilatildeo dos meacutetodos decaacutelculo de espera vistos na seccedilatildeo anterior e o processo de desenvolvimento do aplicativoem si

Capiacutetulo 2

Estudos Preliminares

21 Desenvolvimento de StartupsO desenvolvimento do projeto foi baseado nos meacutetodos utilizados em Startups O grupo

seguiu os princiacutepios da Startup Enxuta [31] no qual um produto miacutenimo deve ser criado eentatildeo incrementado atraveacutes do estudo das necessidades do usuaacuterio A partir de uma pesquisacom o puacuteblico alvo a ideia inicial eacute lapidada e um produto com o miacutenimo de funcionalidadespossiacutevel eacute desenvolvido para entatildeo retornar aos usuaacuterios que iratildeo validaacute-lo Este processo eacuterepetido ateacute que um produto final seja completamente desenvolvido independente da ideiaque se tinha no iniacutecio O processo tem como foco economizar recursos e suprir a necessidadedo usuaacuterio de forma raacutepida e eficiente

De acordo com o livro A Startup Enxuta[31] esta metodologia prioriza o desenvolvi-mento iterativo com a participaccedilatildeo do cliente a cada etapa ao inveacutes de procuraacute-lo somentena entrega do produto final Nessa metodologia temos alguns princiacutepios que guiam o desen-volvimento de projetos

1 Mapeamento do negoacutecio atraveacutes do diagrama conhecido como ldquocanvas do modelo denegoacuteciosrdquo que nos mostra resumidamente uma visatildeo geral do projeto

2 Pesquisas feitas com os usuaacuterios no mercado para saber suas opiniotildees sobre o negoacutecioe posteriores mudanccedilas ou ajustes no projeto com base nos resultados

3 Desenvolvimento do produto utilizando algum meacutetodo aacutegil

Inicialmente deve-se traccedilar os primeiros objetivos do projeto utilizando o diagrama Can-vas [10] (figura 21) Esse diagrama eacute utilizado para auxiliar empresas a ter uma visatildeo macrodo projeto fornecendo uma forma de visualizar suas dependecircncias e permitindo planejartraccedilar e gerenciar um plano de desenvolvimento Ele possui perguntas que devem ser res-pondidas em seus quadros e no decorrer desse processo o projeto vai sendo adaptado deacordo com as limitaccedilotildees impedimentos e novas ideias que vatildeo surgindo

3

4 ESTUDOS PRELIMINARES 21

Figura 21 Modelo do Diagrama Canvas

Com o modelo de negoacutecios definido o proacuteximo passo eacute a realizaccedilatildeo de uma pesquisa como puacuteblico para validaacute-lo Essa fase do desenvolvimento pode ser refeita quantas vezes foremnecessaacuterias reescrevendo o Canvas conforme a interpretaccedilatildeo da necessidade do usuaacuterio

211 Desenvolvimento de Questionaacuterios

De acordo com o manual Designing a Survey [4] um questionaacuterio eacute criado para obterinformaccedilotildees para conduzir o desenvolvimento de um projeto de acordo com as preferecircnciasdo puacuteblico alvo Ele deve ser curto e conciso e deve capturar somente informaccedilotildees que sejamrelevantes para a pesquisa

Os passos para o desenvolvimento de um bom questionaacuterio satildeo

∙ Definir os dados necessaacuterios

∙ Desenvolver as questotildees

∙ Remover qualquer questatildeo que natildeo captura os dados definidos previamente

As questotildees podem ser moldadas de trecircs maneiras

∙ Estruturadas Questotildees que possuem resposta fixa Exemplo

Vocecirc usa transporte puacuteblico

( )Sim

( )Natildeo

22 METODOLOGIA AacuteGIL 5

∙ Natildeo Estruturadas Questotildees de resposta aberta Exemplo

O que vocecirc costuma fazer para evitar filas

∙ Parcialmente Estruturadas Questotildees mistas Exemplo

Qual meio de transporte vocecirc usa

( )Carro

( )Moto

( )Outros______

22 Metodologia AacutegilA metodologia aacutegil tem sido adotada pelas empresas hoje em dia por conta dos melhores

resultados obtidos em relaccedilatildeo agraves metodologias tradicionais[23] Essa eacute caracterizada pelavalorizaccedilatildeo de

∙ ldquoIndiviacuteduos e interaccedilotildees mais que processos e ferramentasrdquo

∙ ldquoSoftware em funcionamento mais que documentaccedilatildeo abrangenterdquo

∙ ldquoColaboraccedilatildeo com o cliente mais que negociaccedilatildeo de contratosrdquo

∙ ldquoResponder a mudanccedilas mais que seguir um planordquo [12]

Eacute uma metodologia que envolve trabalho em equipe encontros regulares com o clientedesenvolvimento iterativo e com menos foco em planejamento estrito e ideias definitivasdiferente de metodologias mais tradicionais que satildeo mais focadas em projetos bem docu-mentados com pouca possibilidade de mudanccedila ao final do processo Decidiu-se por utilizara metodologia aacutegil neste projeto pois natildeo haviam ideias completamente definidas inicial-mente e para o grupo a opiniatildeo do puacuteblico alvo sobre o produto era fundamental em cadaiteraccedilatildeo do processo podendo haver mudanccedilas inesperadas dependendo do feedback recebido

Dentre as opccedilotildees de metodologias aacutegeis O meacutetodo Scrum[16] eacute um que eacute definido comoum gerenciador e um processo de controle que foca em construir um software que conheceas necessidades do negoacutecio devolvendo incrementalmente um software

Com o Scrum o software eacute desenvolvido em iteraccedilotildees de tamanho fixo chamadas deSprints que tem duraccedilatildeo de tipicamente duas a quatro semanas Em cada Sprint um nuacutemerofixo de histoacuterias (que se traduzem em tarefas) satildeo selecionadas pelo grupo para seremutilizadas na sprint(figura 22) Haacute tambeacutem um sistema de motivaccedilatildeo para o time como osMilestones que satildeo objetivos menores distribuiacutedos por toda a sprint ajudando na mediccedilatildeode desemprenho da equipe e graacuteficos Burndown que mostram o progresso de cada iteraccedilatildeopara que o time sinta o progresso no desenvolvimento

6 ESTUDOS PRELIMINARES 23

Figura 22 Dinacircmica do Scrum

Para controle das iteraccedilotildees foi utilizado o software Trello [21] que eacute um gerenciador detarefas de projeto (figura 23)

Figura 23 Interface do Trello - durante o processo de desenvolvimento

23 Jobs to be donePara implementar o aplicativo buscou-se uma metodologia para guiar esse processo desde

sua criaccedilatildeo ateacute sua validaccedilatildeo Duas metodologias conhecidas pelo grupo foram analisadas eestudadas Jobs To Be Done e Personas and Use Cases

Segundo Alan Klement[29] Personas satildeo clientes imaginaacuterios descritos pela idade sexoraccedila e haacutebitos semanais O uso delas natildeo eacute adequado para responder perguntas como ldquoPorqueo cliente quer saber o tamanho da filardquo pois quando a resposta eacute ldquoEle estaacute com pressa paracomerrdquo natildeo fica claro quais satildeo as reais necessidades do usuaacuterio Essa descriccedilatildeo tambeacutem natildeoeacute uacutetil no desenvolvimento de uma boa interface pois natildeo ajuda na hora de responder se umcerto botatildeo realmente deixa claro sua funcionalidade

23 JOBS TO BE DONE 7

Tambeacutem segundo Alan Klement Use Cases possuem 3 grandes problemas usam perso-nas casam implementaccedilotildees motivaccedilotildees e resultado e ignoram contexto situaccedilotildees e ansie-dades

Se uma funcionalidade definida por uma Use Case falhar seraacute difiacutecil identificar o pro-blema pois por casar informaccedilotildees diferentes surgiraacute a dificuldade de saber o que estaacute erradoa implementaccedilatildeo as suposiccedilotildees sobre as motivaccedilotildees ou os resultados

Observando-se esses fatos optou-se pelo uso da metodologia Jobs to Be Done pois haacuteuma mudanccedila na forma de fazer histoacuterias a fim de evitar os problemas observados em Per-sonas e Use Cases(Figura 24) Nesse modelo as Personas satildeo pessoas reais e as histoacuterias satildeoescritas com a seguinte divisatildeo situaccedilatildeo motivaccedilatildeo e resultados esperados

Nessa metodologia criamos histoacuterias descrevendo tarefas para que os usuaacuterios se colo-quem na situaccedilatildeo descrita Observando-os eacute possiacutevel saber se a tarefa foi realizada de formabem sucedida e caso contraacuterio identificar onde e o que estaacute causando a falha no instanteda realizaccedilatildeo dela

Figura 24 Diferenccedila entre estruturas de histoacuterias

8 ESTUDOS PRELIMINARES 24

Algumas das histoacuterias criadas para os testes de interface do grupo foram

∙ Quando eu estiver na tela de lista de restaurantes eu quero acessar a tela de detalhesdo restaurante que eu desejo saber o tempo de espera entatildeo eu posso ver com clarezaas informaccedilotildees e posso traccedilar uma rota para o estabelecimento

∙ Quando eu estiver na tela principal eu quero enviar meu feedback sobre o tempo deespera no estabelecimento que estou entatildeo eu posso ajudar outros usuaacuterios por meiodo aplicativo

24 Caacutelculo da previsatildeo do tempo de espera na filaAtraveacutes de pesquisas em busca de meacutetodos estatiacutesticos para se estudar o comportamento

das filas foram encontradas as trecircs metodologias descritas nesta seccedilatildeo Este capiacutetulo conteacutema explicitaccedilatildeo do problema estudado e suas possiacuteveis soluccedilotildees

241 Descriccedilatildeo do problema

Para que se chegasse a uma soluccedilatildeo apropriada o problema de espera em fila precisouser estudado Esse problema pode ser descrito da seguinte forma dado um restaurante aentrada nesse eacute atraveacutes de uma fila Essa fila tem seu tamanho redefinido agrave medida quenovos clientes chegam e saem dela A saiacuteda dos clientes pode ser devido a desistecircncia ou aacomodaccedilatildeo deles nas mesas A entrada eacute definida pela disponibilizaccedilatildeo de lugares livres agravemedida em que os grupos que estavam alocados terminam seu atendimento

Figura 25 Esquema simplificado do funcionamento do processo em um restaurante

A fila de espera eacute influenciada por dois fatores a taxa de chegada do cliente e a taxa deatendimento nas mesas

∙ chegada em restaurantes a chegada de clientes eacute definida por uma taxa O clienteneste caso representa um grupo com tamanho variaacutevel A distribuiccedilatildeo do tamanho dogrupo nas chegadas eacute variaacutevel

∙ O atendimento a alocaccedilatildeo do grupo eacute organizada pela recepccedilatildeo O meacutetodo utilizadopor eles natildeo eacute padronizado e muitas vezes eacute completamente subjetivo Por exemplose acontecer de um grupo grande e vaacuterios casais chegarem ao mesmo tempo e nesse

24 CAacuteLCULO DA PREVISAtildeO DO TEMPO DE ESPERA NA FILA 9

momento existir um espaccedilo no salatildeo que acomode o grupo (juntando as mesas) outodos os casais (com as mesas separadas) dependendo de quem estaacute responsaacutevel poralocaacute-los cada um receberaacute uma prioridade diferente e essa decisatildeo natildeo eacute padronizada

∙ A disposiccedilatildeo das mesas a disposiccedilatildeo e quantidade de mesas natildeo satildeo padronizadasentre restaurantes de uma mesma rede muito menos entre restaurantes diferentesAleacutem disso a formataccedilatildeo do salatildeo pode ser remodelada de acordo com a necessidadede alocaccedilatildeo dos clientes haacute gerentes que evitam essa movimentaccedilatildeo ou ateacute mesmorestaurantes que natildeo tecircm essa possibilidade

242 Meacutetodos de caacutelculo da espera

Com o problema desenhado desta maneira esboccedilou-se trecircs possiacuteveis meacutetodos de resoluccedilatildeoe um desses foi aplicado na soluccedilatildeo final Os meacutetodos desenvolvidos satildeo meacutedia por periacuteodoaplicaccedilatildeo da teoria das filas e utilizaccedilatildeo de redes neurais Essas teacutecnicas precisam de dadospara serem desenvolvidas e aplicadas Por conta disso buscou-se fontes que suprissem essanecessidade

Captaccedilatildeo dos dados para a anaacutelise

Para que seja possiacutevel aplicar os meacutetodos estudados eacute necessaacuterio obter dados para aplicarna anaacutelise Estes foram obtidos de duas formas a partir de uma parceria com a empresa GetIn [7] desenvolvedora de um aplicativo de gerenciamento de filas de restaurantes e atraveacutesde pesquisas presenciais em restaurantes da rede Outback Steakhouse[14] selecionados para oestudo(Apecircndice A) O aplicativo da Get In possui uma funcionalidade principal realizaccedilatildeode uma reserva em um determinado restaurante O banco de dados manteacutem o registro detodos os usuaacuterios que entram na fila e esses dados satildeo organizados em uma tabela com osseguintes campos

∙ Origem Se a reserva foi realizada de forma remota ou presencial Assim

1 Reserva presencial (na entrada do restaurante incluiacuteda pela recepcionista)

2 Reserva remota (realizada atraveacutes do aplicativo)

∙ Entrada este consiste na data e hora que o usuaacuterio entrou na fila

∙ Qtd Pessoas tamanho do grupo para o qual a reserva foi feita

∙ Prioritaacuterio se este grupo requer atendimento prioritaacuterio

0 Natildeo

1 Sim

∙ Notificado A data e horaacuterio em que o grupo foi notificado que sua mesa estava pronta

ndash Quando NULL a recepcionista natildeo notificou essa pessoa (possivelmente chamoudiretamente pelo nome)

∙ Tempo na Espera Tempo que o grupo ficou ativo na fila de espera (em segundos)

∙ Status Qual a situaccedilatildeo da reserva do grupo Podendo assumir tais valores

0 Cancelado pela recepcionista

10 ESTUDOS PRELIMINARES 24

2 Sentado

3 Cancelado pelo proacuteprio Usuaacuterio

Para melhor entender estes paracircmetros o funcionamento do aplicativo deve ser expli-cado com maior detalhamento O processo de reserva funciona da seguinte forma o usuaacuterioreserva seu lugar atraveacutes do aplicativo ou vai ao restaurante e a recepcionista o adiciona agraveespera No primeiro caso o usuaacuterio tem um tempo de toleracircncia para chegar ao estabeleci-mento apoacutes receber a notificaccedilatildeo caso natildeo consiga chegar a tempo a reserva eacute cancelada Nosegundo caso quando o grupo a ser chamado estaacute proacuteximo da recepccedilatildeo a funcionalidade denotificaccedilatildeo natildeo precisa ser usada o responsaacutevel pode se direcionar diretamente aos clientes echamaacute-los pelo nome Mesmo nesse segundo caso o tempo de espera na fila ainda eacute guardadopois a recepccedilatildeo precisa ldquofecharrdquo a espera do grupo para chamar o proacuteximo

Poreacutem a utilizaccedilatildeo desses dados natildeo foi liberada pela empresa Get In para serem usadoscomo banco de dados do aplicativo somente foram fornecidos dados do mecircs de agosto esetembro de 2016 para que fossem utilizados nas anaacutelises feitas com os modelos estatiacutesticosPara obter dados que poderiam ser utilizados no banco de dados do aplicativo foi neces-saacuterio uma pesquisa presencial onde o grupo visitou alguns restaurantes da rede OutbackSteakhouse para obter informaccedilotildees sobre o tempo de espera nestes estabelecimentos

Foram visitados 5 restaurantes Outback Steakhouse Shopping Eldorado Outback Ste-akhouse Shopping Villa Lobos Outback Steakhouse Shopping Granja Vianna Outback Ste-akhouse Shopping Uniatildeo de Osasco e Outback Steakhouse Shopping Market Place ondequestionamos sobre o tempo de espera por tamanho de grupos (em nuacutemero de pessoas) epor horaacuterio e dia da semana

Ao analisar os dados coletados pela pesquisa presencial notamos que estes estavam sus-cetiacuteveis a erros por terem sido obtidos por meio de diferentes observaccedilotildees humanas Ummeacutetodo para obter dados mais precisos consistiria na realizaccedilatildeo de novas pesquisas no for-mato mediccedilatildeo onde cada integrante do grupo deveria coletar o tempo de espera de cadacliente atraveacutes de um cronocircmetro e calcular o tempo de espera meacutedio nesse horaacuterio Comoo grupo natildeo conseguiria aplicar este meacutetodo optou-se por melhorar a precisatildeo dos dadoscoletados usando como base o graacutefico de horaacuterios de pico disponibilizado pela Google paracada restaurante Essa melhora foi feita utilizando-se caacutelculos de proporccedilatildeo de valores

24 CAacuteLCULO DA PREVISAtildeO DO TEMPO DE ESPERA NA FILA 11

Primeiro meacutetodo Meacutedia por periacuteodo

Figura 26 Esquema do meacutetodo meacutedia por periacuteodo

Para que uma previsatildeo de espera possa ser fornecida ao usuaacuterio essa deve basear-seobrigatoriamente em alguma informaccedilatildeo preacutevia Contudo encontrar uma fonte para taisdados se mostrou uma tarefa muito complicada Para conseguir ainda assim apresentar umtempo de espera em fila meacutetodos de anaacutelise foram definidos de acordo com a quantidade dedados disponiacutevel para cada estabelecimento

De um modo geral neste modelo o caacutelculo do tempo de espera funcionaraacute da seguinteforma calcular-se-aacute a meacutedia de espera para o dia da semana e horaacuterio requeridos pelousuaacuterio sem diferenciar feriados de dias normais Dependendo de quatildeo longo eacute o histoacutericoniacuteveis de especificidade podem ser adicionados ou seja numa busca tempo de espera em 9de Dezembro (segunda-feira) agraves 19h no restaurante X a query selecionaraacute todos os registrosfeitos no dia 9 de dezembro entre as 19h e agraves 20h dos uacuteltimos anos no restaurante X e realizaraacuteessa meacutedia ou pode selecionar apenas linhas de todas as segundas-feiras do mecircs de Dezembrodeste mesmo periacuteodo

∙ Muitos dados neste caso um maior niacutevel de especificidade pode ser aplicado sem autilizaccedilatildeo de outras fontes para complementar o banco de dados

∙ Alguns dados o niacutevel de especificidade eacute bem menor apenas filtrando por dia dasemana e intervalo de hora sem mecircs ou dia especiacutefico no ano Em alguns casos aquantidade de dados eacute tatildeo pequena que deve-se recorrer a outras fontes A Googletem disponibilizado graacuteficos com a distribuiccedilatildeo dos clientes nos horaacuterios de funciona-mento de estabelecimentos Esses dados natildeo estatildeo disponiacuteveis em sua API ou seja natildeo

12 ESTUDOS PRELIMINARES 24

haacute uma forma automaacutetica para que o aproveitamento desses possa ser feito Poreacutemmesmo omitindo-se os valores do graacutefico o perfil da distribuiccedilatildeo e o horaacuterio de picosatildeo aproveitados manualmente para nosso sistema

∙ Poucos dados para este caso fizemos o balanceamento dos dados da Google comas informaccedilotildees retiradas das entrevistas Aleacutem do aproveitamento das informaccedilotildees daGoogle foram realizadas pesquisas com funcionaacuterios dos restaurantes

Segundo meacutetodo Teoria das filas

Filas podem ser vistas como um sistema dinacircmico no qual existe um conjunto de usuaacuteriosque satildeo atendidos por um conjunto de atendentes de acordo com a ordem de chegada dosusuaacuterios A teoria de filas busca utilizando anaacutelises matemaacuteticas estudar o comportamentodestas filas para estimar o tempo de espera com base em um conjunto inicial de dadospreviamente fornecido[30]

Um sistema de filas possui como caracteriacutesticas

∙ Modelo de chegada dos usuaacuterios Utiliza como base o tempo entre as chegadasdos usuaacuterios

∙ Modelo de serviccedilo (atendimento aos usuaacuterios) Utiliza como base o tempo gastono atendimento ao usuaacuterio No caso dos restaurantes equivale ao tempo que um grupopassa na mesa ateacute a sua saiacuteda

∙ Nuacutemero de servidores Eacute o nuacutemero de atendentes disponiacuteveis no sistema Para omodelo do restaurante este equivale agraves mesas disponiacuteveis no salatildeo

∙ Capacidade do sistema Eacute o nuacutemero de usuaacuterios que o sistema eacute capaz de atenderInclui o nuacutemero de usuaacuterios que estatildeo sendo atendidos somado com os que esperamna fila Se este paracircmetro natildeo for informado o sistema eacute considerado com capacidadeilimitada

∙ Tamanho da populaccedilatildeo nuacutemero potencial de clientes que podem chegar a umsistema Pode ser finito ou infinito

∙ Disciplina da fila A disciplina da fila pode ser FIFO (first in first out) - o primeiroa chegar eacute o primeiro a ser atendido LIFO (last in first out) - o uacuteltimo a chegar eacuteo primeiro a ser atendido ALEATOacuteRIO - os atendimentos satildeo feitos sem qualquerpreocupaccedilatildeo com a ordem de chegada COM PRIORIDADE - os atendimentos satildeofeitos de acordo com prioridades estabelecidas No caso dos restaurantes a disciplinaadotada eacute a FIFO poreacutem esta pode mudar de acordo com o atendente responsaacutevel

Os tempos mencionados nos modelos de chegada e de serviccedilo podem ser constantesquando os intervalos entre as chegadas dos usuaacuterios satildeo iguais ou variaacuteveis quando os valo-res desses intervalos variam Nesse uacuteltimo caso o intervalo de tempo segue uma distribuiccedilatildeode probabilidades Nesse modelo tambeacutem existe a taxa meacutedia de chegada dos usuaacuterios porunidade de tempo ou seja quantos usuaacuterios chegam em uma hora

As filas podem ser moldadas em trecircs situaccedilotildees baacutesicas como descrito por Azmat Nafees[30]

∙ Modelo de fila de canal uacutenico com fila uacutenica e atendimento uacutenico (Figura 27)

24 CAacuteLCULO DA PREVISAtildeO DO TEMPO DE ESPERA NA FILA 13

∙ Modelo de fila de canal uacutenico com fila uacutenica e muacuteltiplos atendimentos paralelos (Fi-gura 28)

∙ Modelo de fila de canal uacutenico com muacuteltiplas filas e muacuteltiplos atendimentos paralelos(Figura 29)

Figura 27 Modelo de fila de canal uacutenico com fila uacutenica e atendimento uacutenico

Figura 28 Modelo de fila de canal uacutenico com fila uacutenica e muacuteltiplos atendimentos paralelos

Figura 29 Modelo de fila de canal uacutenico com muacuteltiplas filas e muacuteltiplos atendimentos paralelos

Tambeacutem por Azmat Nafees nesses modelos trecircs subprocessos podem ser vistos

∙ Processo de chegada Eacute um processo contiacutenuo do evento ldquochegada de clientesrdquo ouseja quando o evento ocorre o processo aguarda a ocorrecircncia do proacuteximo evento Esseevento coloca um cliente na fila quando ele chega

14 ESTUDOS PRELIMINARES 24

∙ Processo de espera Eacute um processo que inclui o evento ldquocomece a servir o proacuteximocliente da filardquo que retira um cliente da fila o coloca no processo de atendimento eespera a conclusatildeo do evento ldquocliente servidordquo para recomeccedilar Nele se trabalha comtamanho e disciplina da fila

∙ Processo de atendimento Eacute um processo que inclui o evento ldquocliente servidordquo eespera a conclusatildeo do evento ldquocomece a servir o proacuteximo cliente da filardquo para recomeccedilarNele se trabalha com tipo taxa e tempo de atendimento

Dentre esses 3 modelos o que mais se encaixa na situaccedilatildeo de um restaurante eacute o segundomodelo canal uacutenico com fila uacutenica e muacuteltiplos atendimentos paralelos O processo de chegadade novos clientes na fila eacute tido como aleatoacuterio

Terceiro meacutetodo Rede Neural

Rede Neural eacute uma teacutecnica computacional inspirada no sistema nervoso que com o auxiacute-lio de um modelo matemaacutetico apresenta respostas para problemas de decisatildeo Esses modelosfuncionam da seguinte forma primeiro um conjunto de dados (conjunto de treinamento) eacuteapresentado ao sistema e este aprende com ele atraveacutes de reconhecimento de padratildeo entatildeocoloca-se o sistema para analisar os dados (conjunto de teste) para os quais deseja-se obteralgum resultado Este processo eacute chamado de aprendizagem de maacutequina Quanto melhor forseu treinamento mais precisas seratildeo as respostas para o segundo conjunto

Uma rede neural eacute formada por subestruturas chamadas neurocircnios Um neurocircnio tem oseguinte funcionamento ele recebe como entrada sinais cada sinal recebe um peso de acordocom a influecircncia dele na saiacuteda e uma soma eacute feita para produzir o niacutevel de atividade entatildeodependendo se o niacutevel de atividade exceder o limite dado pela funccedilatildeo de transferecircncia aresposta eacute produzida[27]

Software Multiple Back-Propagation

Para implementar a soluccedilatildeo baseada em redes neurais foi usado o Software MultipleBack-Propagation [1] Este eacute um software de faacutecil utilizaccedilatildeo que fornece uma rede a qualaprende atraveacutes do processo de propagaccedilatildeo inversa Esse meacutetodo baseia-se na comparaccedilatildeodos dados esperados (conjunto de teste) com os dados obtidos a partir do treinamento senecessaacuterio adaptaccedilotildees satildeo feitas a estrutura da rede para melhor aproximar aos dados doconjunto teste e isso eacute chamado de propagaccedilatildeo inversa

Por se tratar de um meacutetodo de aprendizagem de maacutequinas para se obter um resultadodeve-se treinar o algoritmo Primeiramente submete-se o conjunto de treinamento ao soft-ware para isso foi escolhido o mecircs de Agosto O criteacuterio de parada para o treino eacute o erroquadraacutetico meacutedio o qual teve seu valor atribuiacutedo para 001

Capiacutetulo 3

Tecnologias utilizadas

31 O sistema AndroidAndroid eacute um Sistema operacional open source (software de coacutedigo aberto o qual as

pessoas podem acessar e modificar para contribuir com o projeto [25]) e para dispositivosmoacuteveis desenvolvido pela Google baseado no Kernel do Linux e utilizado principalmente emdispositivos touchscreen Atualmente o Android eacute o sistema operacional que deteacutem a maiorparcela do mercado[17] com 836 dos dispositivos contra 134 do iOS da Apple

A Google tambeacutem oferece um ambiente de desenvolvimento para a plataforma Androidchamado Android Studio no qual os aplicativos satildeo criados e exportados para os dispositi-vos moacuteveis Aplicativos Android satildeo programados na linguagem Java com vaacuterias bibliotecasdisponibilizadas pela Google para suporte ao sistema operacional

A escolha da plataforma foi feita principalmente por conta de o sistema possuir a maiorparte dos usuaacuterios de Smartphones e tambeacutem pela ampla comunidade ativa de desenvolve-dores agrave qual se pode recorrer em casos de duacutevidas e problemas tornando suas resoluccedilotildeesmais raacutepidas e com muacuteltiplas alternativas Outros motivos que contribuiacuteram para a escolhado Android foram

∙ A disponibilidade do ambiente de desenvolvimento Android Studio que possui todosos recursos necessaacuterios para desenvolver um aplicativo funcional logo apoacutes a instalaccedilatildeosem a necessidade de utilizar outras dependecircncias as quais satildeo gerenciadas automati-camente pelo proacuteprio software

∙ O fato de no mercado brasileiro o sistema Android se encontrar em 918 dos dispo-sitivos segundo pesquisa da Kantar[18] e dado a pesquisa realizada para definiccedilatildeo depuacuteblico alvo onde foi possiacutevel perceber que 639 dos entrevistados utilizam smartpho-nes com sistema Android

∙ A utilizaccedilatildeo da linguagem de programaccedilatildeo Java para desenvolvimento que jaacute eraconhecida e fora utilizada anteriormente ao contraacuterio das linguagens Objective C eSwift linguagens utilizadas para desenvolver aplicativos para o sistema iOS Assimcomo a disponibilidade de dispositivos por parte do grupo que em sua maioria era decelulares com o sistema Android

15

16 TECNOLOGIAS UTILIZADAS 31

Figura 31 Parcela de mercado dos dispositivos no Brasil

311 Organizaccedilatildeo de uma aplicaccedilatildeo Android

Aplicativos Android satildeo divididos em componentes Haacute quatro tipos de componentespresentes Activities (ou atividades) Services (ou serviccedilos) Content providers (ou provedoresde conteuacutedo) Broadcast receivers (ou receptores de transmissatildeo)

∙ Activities Satildeo as telas e interfaces do usuaacuterio Cada tela de uma aplicaccedilatildeo eacute repre-sentada por uma activity e cada activity eacute independente de outras apesar de seremcomponentes de uma mesma aplicaccedilatildeo Isso se daacute pelo fato de haver a possibilidade deutilizar activities de aplicativos durante a execuccedilatildeo de outros Atividades satildeo iniciadase se comunicam entre si atraveacutes de objetos chamados Intent que transferem um pacotede dados que pode ser carregado no iniacutecio da nova atividade

∙ Services Sempre satildeo executados em segundo plano sem interferir na experiecircncia dousuaacuterio geralmente para realizar operaccedilotildees longas ou realizar operaccedilotildees de troca dedados enquanto o usuaacuterio estaacute utilizando outra aplicaccedilatildeo em primeiro plano

∙ Content Providers Satildeo gerenciadores de dados de aplicaccedilotildees Android utilizadospara ler e salvar dados compartilhados ou secretos dos aplicativos e do sistema

∙ Broadcast Receivers Satildeo componentes responsaacuteveis por obter eventos que aconte-ceram em outras aplicaccedilotildees ou no sistema e direcionar dados sobre esses eventos paraeventuais aplicaccedilotildees que necessitem destes dados alguns exemplos de eventos obtidospelos receptores de transmissatildeo satildeo tela desligada e bateria fraca

Aleacutem dos componentes uma parte importante de uma aplicaccedilatildeo Android eacute o ArquivoManifest que eacute uma declaraccedilatildeo de permissotildees serviccedilos e exigecircncias de hardware necessaacuterios

33 JSON 17

para o funcionamento do aplicativo Outra funccedilatildeo eacute possuir declaraccedilotildees de todos os compo-nentes utilizados no projeto nomes iacutecones entre outros

As interfaces de usuaacuterio do Android satildeo definidas em arquivos XML (eXtensible MarkupLanguage)[26] nos quais estatildeo declarados todos os layouts e configuraccedilotildees das telas Essesarquivos de layout satildeo depois inflados e satildeo gerados os componentes visuais da aplicaccedilatildeoEssa estrutura tem como objetivo facilitar o design da interface do usuaacuterio jaacute que arquivosxml satildeo de faacutecil compreensatildeo do desenvolvedor

32 JSONJSON ou Javascript Object Notation eacute um formato de dados amplamente utilizado para

troca de informaccedilotildees entre programas Possui uma notaccedilatildeo simples para grande parte dosprogramadores pois se assemelha a convenccedilotildees utilizadas em linguagens de programaccedilatildeomuito conhecidas como C C++ Python e Java O objetivo eacute que ele seja de faacutecil entendi-mento tanto para pessoas como para maacutequinas[11]

Um arquivo JSON eacute organizado como um objeto contendo pares nomevalorseparadospor viacutergulas e dentro de chaves(lsquolsquo rsquorsquo) ou como um array que eacute uma lista de valores separa-dos por viacutergulas e entre colchetes(lsquo[lsquo rsquo]rsquo) Um valor por sua vez pode ser um objeto ou umarray mas tambeacutem um nuacutemero inteiro ou uma String entre outros

Um exemplo de arquivo JSON eacute

1 2 Carros [3 4 Nome Scen ic 5 Marca Renault 6 Ano 20127 8 9 Nome Sentra

10 Marca Nissan 11 Ano 200912 13 ]14

33 Google APIsAPIs (Application Program Interfaces) satildeo interfaces para facilitar a troca de informa-

ccedilotildees entre aplicaccedilotildees utilizando comandos especiacuteficos[15]

Ao longo do desenvolvimento algumas APIs fornecidas pela Google foram utilizadascomo fonte de informaccedilotildees adicionais para o aplicativo

∙ Google Maps Distance Matrix API Esta API eacute utilizada para obter o tempo emsegundos de trajeto entre dois pontos (latlong) no mapa podem ser consultados ostempos de trajeto de carro bicicleta a peacute e utilizando transporte puacuteblico[28] Esta eacute

18 TECNOLOGIAS UTILIZADAS 35

uma API web logo utiliza-se um request http para realizar uma consulta

Por exemplo o request

httpsmapsgoogleapiscommapsapidistancematrixjsonorigins=Seattleampdestinations=Victoria+BCampkey=[user_key]

retorna o JSON

1 2 des t ina t i on_addre s s e s [ Vic tor ia BC Canada ] 3 o r i g in_addre s s e s [ Sea t t l e WA EUA ] 4 rows [5 6 e lements [7 8 d i s t anc e 9 text 172 km

10 value 17166811 12 durat ion 13 text 4 horas 40 minutos 14 value 1680915 16 s t a tu s OK17 18 ]19 20 ] 21 s t a tu s OK22

no qual eacute possiacutevel obter o tempo de trajeto em segundos

∙ Google Maps Android API Esta API eacute utilizada para habilitar o uso de mapasda Google integrados agrave aplicaccedilatildeo jaacute disponiacutevel com todas as funcionalidades de zoome arrastar presentes no aplicativo nativo permitindo tambeacutem a personalizaccedilatildeo comoa adiccedilatildeo de pontos definidos pelo usuaacuterio ao mapa

34 Localizaccedilatildeo do UsuaacuterioOutro serviccedilo que foi utilizado com o intuito de obter o tempo de trajeto e a lista ordenada

de forma personalizada de restaurantes foi a localizaccedilatildeo do usuaacuterio que eacute obtida atraveacutes doGPS presente nos smartphones Um objeto de localizaccedilatildeo eacute criado e realiza a comunicaccedilatildeocom o serviccedilo de localizaccedilatildeo do aparelho Ao obter a localizaccedilatildeo ele lanccedila um evento quepode ser acessado por outras partes da aplicaccedilatildeo obtendo a localizaccedilatildeo mais atualizada dodispositivo

36 CONTROLE DE VERSAtildeO 19

35 Controle de VersatildeoControle de versatildeo eacute uma praacutetica usada para manter a organizaccedilatildeo do coacutedigo e do seu de-

senvolvimento quando muitos desenvolvedores colaboram conjuntamente Existem softwaresque auxiliam essa organizaccedilatildeo registrando todas as mudanccedilas feitas ao longo do processo eque possui recursos que permitem que vaacuterios usuaacuterios trabalhem nos mesmos arquivos semperda de informaccedilotildees

No caso do Git [8] o projeto fica organizado em uma estrutura de aacutervore onde cadacommit (checkpoints criados pelos membros do grupo durante o processo) eacute marcado porum noacute para onde se pode retornar quando necessaacuterio Existem tambeacutem estruturas chama-das branches que satildeo bifurcaccedilotildees na estrutura para que partes do projeto sejam criadasseparadamente sem interferir com a linha principal As branches depois satildeo unidas agrave linhaprincipal atraveacutes do comando merge

Neste projeto o serviccedilo de controle de versatildeo utilizado foi o Bitbucket [2] (que eacute um ser-viccedilo web-based de controle de versatildeo que utiliza Git) com auxiacutelio do software SourceTree[19]que eacute uma interface graacutefica para os serviccedilos do Bitbucket onde eacute possiacutevel visualizar com maisfacilidade as fases do desenvolvimento do projeto e realizar os comandos mais intuitivamente

Figura 32 Interface do SourceTree que mostra o controle de versionamento do projeto

36 Banco de dadosCom o intuito de deixar o aplicativo mais completo guardando informaccedilotildees dos usuaacuterios

e dos estabelecimentos optou-se por utilizar-se um banco de dados Alguns exemplos de

20 TECNOLOGIAS UTILIZADAS 36

banco de dados aprendidos no curso Laboratoacuterio de Banco de Dados foram

∙ SQL (Structured Query Language - Linguagem de Consulta Estruturada)[20] umalinguagem para atualizar deletar e requisitar informaccedilotildees atraveacutes de consultas emtabelas que possuem relaccedilatildeo entre si

∙ noSQL[13] um banco de dados que armazena e recupera informaccedilotildees modeladas deuma forma onde natildeo satildeo usadas tabelas relacionais

Como este uacuteltimo natildeo foi o foco da disciplina por falta de tempo decidiu-se por utilizaacute-lopara que o grupo pudesse aprender melhor esse modelo

Outra decisatildeo tomada foi a hospedagem dos dados na nuvem ou seja colocaacute-los em umservidor que natildeo seja local e conseguir acessaacute-los atraveacutes de uma conexatildeo via internet Dessemodo os dados sempre estaratildeo disponiacuteveis para serem consultados

361 Firebase

Buscando-se atender as decisotildees tomadas sobre o banco de dados procuramos um serviccedilode banco de dados da Google por conter ampla integraccedilatildeo com a plataforma de desenvolvi-mento Android por ser conhecido bastante utilizado e por possuir uma ampla comunidadede desenvolvedores dispostos a oferecer auxiacutelio em foacuteruns de discussatildeo de coacutedigos

Para atender esses requisitos escolheu-se o Firebase Realtime Database[6] desenvolvido edisponibilizado pela Google que consiste em um banco de dados noSQL com armazenamentona nuvem Esse serviccedilo armazena os dados do usuaacuterio no servidor da Google em formatoJSON e a cada alteraccedilatildeo sincroniza em tempo real com todos os clientes conectados

O grupo pode observar as seguintes vantagens de se trabalhar com a ferramenta existea sincronizaccedilatildeo em tempo real dos dados de todos os clientes e sua disponibilidade mesmocom o aplicativo offline ou seja quando o aplicativo natildeo estiver conectado a internet osdados do dispositivo moacutevel seratildeo armazenados e sincronizados com o banco de dados assimque a conexatildeo estiver disponiacutevel novamente Aleacutem disso os desenvolvedores possuem acessoa um console online (figura 33) onde o JSON eacute mostrado numa interface interativa de umaforma mais amigaacutevel e no qual eacute permitido editaacute-lo facilmente

37 CROWDSOURCING 21

Figura 33 Console online do Firebase onde os dados satildeo mostrados de forma mais amigaacutevel eintuitiva

Outra observaccedilatildeo feita foi que o Firebase Realtime Database funciona como o esperadose ele guardar uma coacutepia local dos dados em um arquivo JSON no celular Poreacutem isso natildeofoi visto como um problema pois como essa coacutepia pode ser salva em um arquivo texto oespaccedilo utilizado diminui consideravelmente

Na primeira vez que os dados satildeo criados e todas as vezes em que os dados forem atua-lizados por algum dispositivo moacutevel eacute enviada uma atualizaccedilatildeo que seraacute recebida atraveacutes delisteners por todos os aparelhos que utilizam o aplicativo para que eles atualizem seus res-pectivos JSONs Listeners satildeo interfaces de comunicaccedilatildeo que executam uma seacuterie de accedilotildeesassim que um outro evento esperado acontece

37 CrowdsourcingO termo Crowdsourcing tem origem nas palavras da liacutengua inglesa Crowd (multidatildeo) e

Outsourcing (terceirizaccedilatildeo) e eacute definido pelo dicionaacuterio Merriam Webster como A praacuteticade obtenccedilatildeo de serviccedilos ideias ou conteuacutedo solicitando contribuiccedilotildees de grandes grupos depessoas e especialmente da comunidade online [3] Esta praacutetica eacute utilizada para que sejapossiacutevel agrave comunidade contribuir com dados para algum programa ou serviccedilo como no apli-cativo Waze do qual a principal fonte de dados de tracircnsito acidentes e radares eacute obtida pormeio dos proacuteprios usuaacuterios

Capiacutetulo 4

Desenvolvimento do Projeto

Este capiacutetulo aborda o processo de desenvolvimento do projeto iniciado com o preen-chimento do diagrama Canvas e uma pesquisa de mercado direcionada ao usuaacuterio A partirdas informaccedilotildees coletadas foi possiacutevel projetar um aplicativo que atendesse as necessidadesexpostas pela pesquisa e selecionar as tecnologias necessaacuterias Tambeacutem eacute abordada a aplica-ccedilatildeo dos diferentes meacutetodos de caacutelculo da previsatildeo de tempo de espera que foram estudadose explicados no Capiacutetulo 2 Por fim satildeo expostas as diferentes versotildees do aplicativo duranteo processo e seus detalhes

41 Pesquisa de MercadoAntes de iniciar-se o desenvolvimento praacutetico algumas questotildees foram levantadas se

um aplicativo com as funcionalidades escolhidas seria de alguma forma uacutetil para o usuaacuterioe se sim qual metodologia deveria ser usada para que este produto fosse entregue o maiscompleto possiacutevel ateacute o final do ano Para responder a primeira pergunta desenvolveu-seum questionaacuterio

411 Pesquisa com o usuaacuterio

O questionaacuterio foi desenvolvido para avaliar a viabilidade do aplicativo e suas funciona-lidades e foi criado utilizando-se o Google Forms [9] Essa eacute uma ferramenta desenvolvidapelo Google que possibilita a criaccedilatildeo de formulaacuterios contendo diversos formatos de pergun-tas tanto dissertativas quanto de muacuteltipla escolha

Seguindo os princiacutepios de desenvolvimento de questionaacuterios [4] o conjunto de perguntasfoi mantido curto simples e de faacutecil entendimento Tambeacutem variou-se o tipo de questotildeesentre estruturadas (questotildees com respostas em forma de alternativas) e desestruturadas(questotildees com respostas em formato texto) seguindo esses mesmos princiacutepios para captarmelhor as informaccedilotildees dos entrevistados e evitar erros de entendimento

Com as respostas do questionaacuterio tinha-se o intuito de traccedilar um possiacutevel puacuteblico alvoconhecer seu modo de uso de dispositivos moacuteveis e validar a aplicabilidade de diferentesfuncionalidades pretendidas inicialmente sendo essas engajamento do usuaacuterio atraveacutes denotificaccedilotildees do sistema aceitaccedilatildeo de sugestotildees de locais alternativos avaliaccedilatildeo da existecircnciado problema que queremos resolver (se este aplicativo supre uma necessidade real do usuaacute-rio) e aceitaccedilatildeo do aplicativo

23

24 DESENVOLVIMENTO DO PROJETO 41

Para a divulgaccedilatildeo redes sociais como Facebook [5] e sistemas de mensagem instantacircneascomo WhatsApp foram usados e o envio de respostas foi restrito ateacute trecircs semanas apoacutes suaprimeira postagem Neste periacuteodo foram obtidas 210 respostas as quais ajudaram a definiros aspectos do sistema a ser desenvolvido

O questionaacuterio foi dividido em duas subseccedilotildees perfil do usuaacuterio e funcionalidade Comelas obteve-se os seguintes resultados

41 PESQUISA DE MERCADO 25

Questatildeo 1

Figura 41 Graacutefico pizza da distribuiccedilatildeo das respostas em relaccedilatildeo a idade dos pesquisados

As faixas de idade apresentadas estatildeo desbalanceadas por natildeo terem a mesma quantidadede anos em cada uma poreacutem essa divisatildeo foi pensada levando-se em conta a fluecircncia comtecnologia que cada idade possui Com o resultado verificou-se que do puacuteblico alcanccediladocom a pesquisa a maioria estaacute na faixa de 18 a 25 anos de idade assumida como parcelacom maior conhecimento tecnoloacutegico

Questatildeo 2

Figura 42 Graacutefico pizza da distribuiccedilatildeo das respostas em relaccedilatildeo ao sistema operacional

Esta questatildeo foi pensada para medir a porcentagem de cada sistema operacional pre-sente nos celulares do puacuteblico Com ela descobriu-se que 639 das pessoas dentro desse

26 DESENVOLVIMENTO DO PROJETO 41

grupo possuem o sistema Android enquanto 234 possuem iOS e 38 Windows phoneEssa pergunta foi incluiacuteda para um melhor direcionamento do desenvolvimento do aplicativo

Uma questatildeo levantada ao aplicar esse questionaacuterio foi a dificuldade que algumas pessoasencontraram para identificar a versatildeo do proacuteprio aparelho Poreacutem para manter a consistecircnciadas respostas decidiu-se natildeo mudar nada nesta questatildeo para remediar isso

Questatildeo 3

Figura 43 Graacutefico em barras da distribuiccedilatildeo de frequecircncias mensais de cada local analisado

41 PESQUISA DE MERCADO 27

Questatildeo 4

Figura 44 Graacutefico em pizza da distribuiccedilatildeo de interesse do usuaacuterio no tempo de espera de cadalocal

A princiacutepio viu-se muitas possiacuteveis aplicaccedilotildees para a previsatildeo de tempo de espera Paraentender qual seria a prioridade do puacuteblico as questotildees acima foram incluiacutedas A primeiraverificou a frequecircncia de visitas em alguns locais e a segunda serviu para analisar qualestabelecimento despertava mais interesse nos entrevistados quanto ao quesito fila Nos doiscasos restaurantes se destacaram com o maior interesse

Questatildeo 5

Figura 45 Graacutefico em barras da distribuiccedilatildeo de interesse do usuaacuterio por cada item avaliado

Para acompanhar o dado de espera e fornecer mais informaccedilotildees relevantes ao usuaacuteriosem potencial perguntou-se quais outras informaccedilotildees eles acham interessante saber sobre umdeterminado estabelecimento Com isso descobriu-se que a faixa de preccedilo o trajeto ateacute olocal e o cardaacutepio seriam dados importantes de se obter juntamente com o tempo de espera

28 DESENVOLVIMENTO DO PROJETO 41

Questatildeo 6O que vocecirc costuma fazer para evitar filasNeste ponto testou-se se a soluccedilatildeo proposta atraveacutes do aplicativo resolveria o problema dousuaacuterio de uma forma melhor do que a soluccedilatildeo atualmente utilizada Para isso foi perguntadoo que as pessoas fazem para evitar filas e as principais respostas foram

∙ Evitar horaacuterios de pico

∙ Chegar cedo

∙ Ir em outro lugar caso uma fila seja encontrada

∙ Tentar realizar reservas antecipadamente

∙ Se distrair com livroscelular

Notou-se que as soluccedilotildees utilizadas atualmente natildeo suprem as necessidades dos entre-vistados pois mesmo em horaacuterios natildeo convencionais pode-se encontrar filas ou quandodecide-se esperar na fila muito tempo eacute perdido Concluiu-se que a soluccedilatildeo proposta a par-tir do aplicativo resolve de forma mais abrangente o problema pois ajuda o usuaacuterio a evitarhoraacuterios de pico inesperados

Questatildeo 7

Figura 46 Graacutefico em pizza da distribuiccedilatildeo do meio de transporte utilizado pelos usuaacuterios

Essa questatildeo foi formulada com o objetivo de verificar quais meios de transporte seriamincluiacutedos com previsatildeo de tempo de trajeto no aplicativo Foi verificado que a maioria dosentrevistados utilizam transporte puacuteblico seguido por carro

41 PESQUISA DE MERCADO 29

Questatildeo 8

Figura 47 Graacutefico em pizza da distribuiccedilatildeo do interesse do usuaacuterio pela informaccedilatildeo fornecida

Questatildeo 9

Figura 48 Graacutefico em pizza da distribuiccedilatildeo de quantidade de quilocircmetros que o usuaacuterio sedeslocaria para ir a um local com menos fila

Com essas questotildees foi verificado que algo importante para o usuaacuterio eacute saber de outrosestabelecimentos que possam oferecer tempos de espera menores nas redondezas de onde ousuaacuterio se encontra que eacute uma das funcionalidades que desejaacutevamos utilizar no sistema

30 DESENVOLVIMENTO DO PROJETO 41

Questatildeo 10

Figura 49 Graacutefico em barras da distribuiccedilatildeo de sentimento do usuaacuterio em relaccedilatildeo a notificaccedilatildeode aplicativos

Questatildeo 11

Figura 410 Graacutefico em pizza da distribuiccedilatildeo de opiniatildeo do usuaacuterio sobre desabilitar notificaccedilotildeesem celular

42 PESQUISA DE MERCADO 31

Questatildeo 12

Figura 411 Graacutefico em pizza da distribuiccedilatildeo de opiniatildeo do usuaacuterio sobre habilitar GPS emcelular

A ideia inicial era poder usar o GPS para verificar a localizaccedilatildeo do usuaacuterio e enviarnotificaccedilotildees quando este estivesse parado nas proximidades de algum dos estabelecimentoscadastrados Para que essa funcionalidade possa existir eacute necessaacuterio que o aplicativo tenhaacesso agrave localizaccedilatildeo precisa da pessoa atraveacutes do GPS ou internet ateacute mesmo quando natildeoestiver aberto Aleacutem disso tambeacutem eacute necessaacuterio que as notificaccedilotildees estejam habilitadas parafinalizar esta interaccedilatildeo Entatildeo as perguntas 10 11 e 12 foram incluiacutedas no questionaacuterio Ob-servando as respostas foi possiacutevel verificar que 295 das pessoas que responderam deixamambas as funcionalidades habilitadas (GPS e notificaccedilotildees) Com isso pudemos prosseguircom essa ideia e tambeacutem pensar em possiacuteveis alternativas de interaccedilatildeo e engajamento como usuaacuterio

Por conta dessa pesquisa ter sido compartilhada atraveacutes das contas das redes sociais ecomunicadores dos componentes deste grupo sabe-se que este pode apresentar um resultadoviesado mas que mesmo assim natildeo deve ser desconsiderado e que muito ajudou a sanar asduacutevidas iniciaisComo resultado traccedilamos o perfil do entrevistado

∙ Faixa etaacuteria predominante entre 18 e 30 anos

∙ Possui sistema operacional Android (versotildees 4 5 e 6)

∙ Vai a restaurantes com certa frequecircncia mensal resultando em interesses sobre infor-maccedilotildees relacionadas a esse estabelecimento

∙ Costuma chegar cedo ou evitar os horaacuterios de pico para evitar filas nos locais

∙ Carro e transporte coletivo satildeo os principais meios de transporte

∙ Se deslocaria para um estabelecimento semelhante que possui menos fila contanto queeste fique num raio de 2km de distacircncia

32 DESENVOLVIMENTO DO PROJETO 43

42 Projeto do AplicativoO grupo comeccedilou o projeto com o preenchimento do diagrama Canvas(figura 412) apre-

sentado na Seccedilatildeo 21 Desse modo foi adquirida uma ideia mais consistente e uma base paracomeccedilar a implementaccedilatildeo

Figura 412 Diagrama Canvas preenchido pelo grupo

Com o modelo de negoacutecios definido e com base no resultado da pesquisa com o usuaacuterioapresentada na seccedilatildeo seguinte foram aplicadas pequenas mudanccedilas no projeto para melhoradequar-se agraves necessidades e ao perfil do puacuteblico alvo

Para o desenvolvimento foi utilizado um meacutetodo aacutegil baseado no scrum com sprints de3 a 4 semanas devido agrave disponibilidade dos membros do grupo Os encontros natildeo eram diaacute-rios como recomendado para o meacutetodo scrum tambeacutem em razatildeo da disponibilidade Haviamstand ups (discussotildees raacutepidas no comeccedilo de cada encontro) e retrospectivas ao final de cadasprint A cada sprint eram selecionadas histoacuterias e tarefas para serem executadas e caso natildeofossem concluiacutedas ao final da iteraccedilatildeo eram inseridas ao backlog e feitas no sprint seguinte

43 Aplicaccedilatildeo dos meacutetodos de caacutelculo de espera

431 Aplicando a meacutedia por periacuteodo

Aplicando-se no trecho abaixo a teacutecnica desenvolvida na Seccedilatildeo 242 para uma queryrealizada no dia 19082016 no intervalo de 2040 - 2055 analisa-se a semana anterior quepossua tais intervalos Assim o saacutebado dia 06082016 seraacute selecionado

43 APLICACcedilAtildeO DOS MEacuteTODOS DE CAacuteLCULO DE ESPERA 33

Entrada Qtd Pessoas Notificado Espera

6816 2043 2 862016 2053 1606

6816 2044 2 862016 2055 674

6816 2048 2 862016 2056 528

6816 2048 2 862016 2057 520

6816 2051 2 862016 2107 1118

6816 2051 3 862016 2110 1305

6816 2052 2 862016 2110 1273

6816 2052 2 862016 2111 1179

6816 2053 2 862016 2112 1217

6816 2053 2 NULL 59

6816 2054 3 862016 2119 1541

6816 2055 2 862016 2117 1444

6816 2055 2 862016 2120 1570

6816 2055 2 862016 2122 1613

Tabela 41 Trecho do dia 06082016 entre os horaacuterios das 2043 agraves 2055 um intervalo de 12minutos retirado dos dados da empresa Get In

Com esses dados obteve-se a meacutedia de espera de 1080 segundos (18 minutos) a qualseria sugerida para o usuaacuterio com a busca e desvio padratildeo de 465144719 segundos (775 mi-nutos) Dentro desse intervalo tem-se como maacuteximo tempo de espera 1613 segundos (2688minutos) e como miacutenimo 59 segundos (1 minuto) Analisando-se os dados do dia 19082016no mesmo periacuteodo temos

34 DESENVOLVIMENTO DO PROJETO 43

Entrada Pessoas Notificado Espera Erro previsatildeo Erro p 2 pessoas

19816 2043 2 8192016 2051 544 -563 522

19816 2043 2 8192016 2052 605 -502 461

19816 2044 2 8192016 2056 723 -384 343

19816 2046 4 8192016 2119 1988 881 X

19816 2048 2 8192016 2102 919 188 147

19816 2051 2 8192016 2103 821 286 245

19816 2051 3 8192016 2108 1773 666 X

19816 2053 2 8192016 2110 1083 24 -17

19816 2053 2 8192016 2111 1105 2 -39

19816 2053 2 8192016 2112 1169 62 -103

19816 2055 2 8192016 2114 1447 340 -381

Tabela 42 Trecho do dia 19082016 entre os horaacuterios das 2043 agraves 2055um intervalo de 12minutos retirado dos dados da empresa Get In

Ou seja se um grupo chegasse dentro desse periacuteodo e a previsatildeo dada fosse a meacutediaobtida anteriormente o erro calculado pela diferenccedila entre o tempo sugerido e o real tempode espera estaria no intervalo de 15 minutos para menos ou 8 minutos para mais Sendoesse um valor aceitaacutevel

Um proacuteximo passo eacute a restriccedilatildeo dos registros a grupos com 2 integrantes Com tal restri-ccedilatildeo a previsatildeo de espera eacute de 1066 segundos (1776 minutos) Aplicando essa nova meacutedia aosregistros com 2 integrantes do dia 19082016 obteacutem-se um erro (Coluna 6 - erro previsatildeopara 2 pessoas) menor do que o anterior O intervalo do erro calculado neste caso seria de 522segundos (87 minutos) para mais e 381 segundos (635 minutos) para menos Este resultadoeacute ainda mais favoraacutevel mostrando que a inclusatildeo de mais filtros para o caacutelculo da previsatildeomelhorou o tempo previsto

432 Aplicando teoria das filas

A teoria das filas (Seccedilatildeo 242) eacute uma ferramenta muito completa que calcula muitos dadosuacuteteis para a previsatildeo de espera Contudo por conta da necessidade de informaccedilotildees sobreo tempo de atendimento a qual natildeo estaacute contida no banco utilizado esta teoria natildeo podeser aplicada neste caso Poreacutem esse dado pode ter um valor assumido para que a utilizaccedilatildeodessa teoria fosse possiacutevel entretanto a sua precisatildeo ficaria comprometida e imprevisiacutevel

433 Aplicando redes neurais

Para aplicar o que foi estudado na Seccedilatildeo 242 foi executado o software com o mecircs deAgosto como teste o mecircs de Setembro como treino e o limite do erro quadraacutetico como 001 eobteve-se a tabela presente no apecircndice B Na tabela podemos ver o tempo de fila esperadoou seja o tempo contido na tabela do mecircs de Setembro o tempo que o algoritmo deu comoresposta baseado no mecircs de Agosto e o erro entre eles respectivamente

44 DEFINICcedilAtildeO DA INTERFACE DO APLICATIVO 35

Figura 413 Software Multiple Back-Propagation com a configuraccedilatildeo escolhida para os dadosdisponiacuteveis

Mesmo o erro se mantendo em 0018 os dados obtidos possuem um erro padratildeo de 15minutos Se mais dados forem adicionados o criteacuterio de parada pode ser atingido e assimuma previsatildeo melhor pode ser alcanccedilada

434 Conclusatildeo sobre os meacutetodos estudados

Dentre todas as possibilidades estudadas visualizamos na meacutedia por periacuteodo a melhoropccedilatildeo assumindo os dados disponiacuteveis para teste Se mais paracircmetros fossem fornecidoscomo o tempo de atendimento a teoria das filas seria uma boa opccedilatildeo para fornecer a pre-visatildeo de espera E se mais dados estivessem disponiacuteveis as redes neurais conseguiriam umaaproximaccedilatildeo melhor e assim seria uma boa opccedilatildeo tambeacutem

44 Definiccedilatildeo da Interface do aplicativoComo um primeiro protoacutetipo foi desenvolvida uma interface simples que tinha como tela

de iniacutecio um mapa com um campo para buscas na parte superior

36 DESENVOLVIMENTO DO PROJETO 44

Figura 414 Fluxo de telas do primeiro protoacutetipo

Ao efetuar uma busca por algum estabelecimento uma tela mostrando o tempo de esperaaproximado da fila no local era exibida junto com bototildees que permitiam selecionar o meiode transporte visualizar outras opccedilotildees ou dar iniacutecio a rota ateacute o local desejado Tambeacutemhavia uma notificaccedilatildeo para quando a pessoa estivesse parada proacutexima a um restaurantecadastrado que direcionaria o usuaacuterio a uma tela com um cronocircmetro do tempo de esperana fila

Para testar essa visualizaccedilatildeo escolhemos algumas pessoas e realizamos um teste deusabilidade[22] este teste eacute feito da seguinte forma

44 DEFINICcedilAtildeO DA INTERFACE DO APLICATIVO 37

Uma contextualizaccedilatildeo eacute feita para o voluntaacuterio e entatildeo uma tarefa eacute passada para sercompletada Os integrantes do grupo observam dificuldades enfrentadas pelo entrevistado etomam notas Esse teste eacute repetido algumas vezes e seu resultado eacute coletado para avaliaccedilatildeoe modificaccedilatildeo das funcionalidades

Figura 415 Tela de detalhes de um restaurante(segunda versatildeo)

Notou-se que algumas funcionalidadespareceram confusas e natildeo intuitivas porexemplo natildeo ficou claro se o tempo mos-trado era de trajeto ou de espera na filanem qual era o meio de transporte utili-zado

Logo esse protoacutetipo foi reformuladocom o intuito de melhorar a experi-ecircncia do usuaacuterio com o nosso aplica-tivo

Foram colocados aleacutem do tempo deespera da fila o tempo que o usuaacuteriolevaria para chegar ateacute o local selecio-nado (conforme o tipo de transporte es-colhido) e a quantidade estimada de pes-soas na fila O tempo total (espera so-mado ao tempo de deslocamento) ga-nhou destaque entre as informaccedilotildees doestabelecimento e o botatildeo que direcionao usuaacuterio ao trajeto ficou mais especiacute-fico

Tambeacutem cogitou-se a possibilidade deadicionar login e um perfil de usuaacuteriojunto com uma lista de restaurantes favo-ritos

O fluxo das telas deste novo protoacutetipo ficou como mostra o esquema a seguir

38 DESENVOLVIMENTO DO PROJETO 44

Figura 416 Fluxo de telas do segundo protoacutetipo

44 DEFINICcedilAtildeO DA INTERFACE DO APLICATIVO 39

Figura 417 Tela de detalhes de um restaurante(terceira versatildeo)

Apoacutes outras avaliaccedilotildees mais algumaspequenas alteraccedilotildees foram realizadas nainterface Foi decidido que seria inviaacute-vel estimar o nuacutemero de pessoas nafila entatildeo essa funcionalidade foi remo-vida

Notificaccedilotildees foram adicionadas paraquando o usuaacuterio estiver parado na aacutereado restaurante para que ele possa con-tribuir com informaccedilotildees sobre a fila quepegou aleacutem de um botatildeo de contri-buiccedilatildeo ter sido inserido na tela ini-cial

40 DESENVOLVIMENTO DO PROJETO 45

O fluxo de telas do aplicativo atual ficou da seguinte forma

Figura 418 Fluxo de telas do terceiro protoacutetipo

46 EXPLICACcedilAtildeO DAS FUNCIONALIDADES 41

45 Explicaccedilatildeo das funcionalidadesEsta seccedilatildeo explica as funcionalidades do produto utilizando a figura 418

A tela inicial (3) exibe uma lista de restaurantes incluindo seus respectivos tempos detrajeto e tempo de espera na fila Ao clicar no botatildeo ldquo+rdquo uma caixa de diaacutelogo eacute aberta(4) onde eacute possiacutevel adicionar o tempo que o usuaacuterio esperou na fila Primeiro eacute escolhido orestaurante depois a data e hora que a pessoa chegou na fila e por fim o tempo de esperaem minutos Ao tocar em ldquoEnviar Feedback rdquo os dados satildeo incluiacutedos no banco de dados eatualizados para os outros usuaacuterios Assim eacute apicado o conceito de Crowdsourcing no apli-cativo

Ao tocar em um item da lista de restaurantes seraacute aberta a tela de detalhes de um res-taurante (5) na qual eacute possiacutevel ver com mais clareza os tempos de trajeto e espera o tempototal o endereccedilo do estabelecimento e um pequeno mapa centrado no local Pressionandoo botatildeo ldquoDireccedilotildeesrdquo o usuaacuterio seraacute redirecionado ao aplicativo de mapas de sua preferecircnciano caso do exemplo (8) o Google Maps jaacute traccedilando a rota da localizaccedilatildeo do usuaacuterio para oestabelecimento em questatildeo

Novamente na tela inicial tocando no iacutecone de lupa eacute possiacutevel realizar uma busca digi-tando o nome do estabelecimento na caixa de texto a qual exibe sugestotildees dependendo doque foi digitado Ao clicar em um dos resultados da busca o usuaacuterio eacute novamente direcionadopara a tela de detalhes do restaurante (5)

Tambeacutem eacute possiacutevel tocar no iacutecone de mapa na tela inicial onde seraacute mostrado um mapacentrado na localizaccedilatildeo do usuaacuterio

Ao ficar parado por um tempo em um mesmo local proacuteximo a um estabelecimentocadastrado o usuaacuterio eacute perguntado em uma notificaccedilatildeo quanto tempo ele permaneceu nafila Ao tocar na notificaccedilatildeo a caixa de diaacutelogo para feedback do usuaacuterio seraacute aberta (4) jaacutecom o restaurante preenchido e apoacutes o feedback a janela seraacute fechada e os dados enviadosao banco de dados

46 Implementaccedilatildeo do banco de dadosO banco de dados do aplicativo foi modelado e populado em forma de aacutervore (Fi-

gura 419) de forma a facilitar o acesso aos dados necessaacuterios ao aplicativo No primeironiacutevel estatildeo os ids dos restaurantes Cada id de restaurante guarda a localizaccedilatildeo (latitudelongitude) do restaurante o nome o endereccedilo e um objeto fila O objeto fila guarda todos osdias da semana (domingo a saacutebado) e cada dia da semana possui 24 campos um para cadahora do dia Cada hora possui o tempo meacutedio de espera da fila naquela hora e um peso paraesse tempo O peso eacute um valor que aumenta de acordo com o nuacutemero de feedbacks dadospara que o novo valor do tempo meacutedio seja calculado de forma consistente

Modelamos o banco de dados de uma forma que respeitasse uma hierarquia de dados

42 DESENVOLVIMENTO DO PROJETO 46

Figura 419 Aacutervore que ilustra a organizaccedilatildeo de um restaurante no banco de dados

Com o banco de dados jaacute populado o aplicativo faz consultas e atualizaccedilotildees de dadosConsultas satildeo feitas ao criar a tela de listagem de restaurantes e de detalhes de um restau-rante consultado As atualizaccedilotildees satildeo feitas quando o usuaacuterio manda o feedback de tempo deespera em um estabelecimento em determinado horaacuterio o aplicativo calcula a nova meacutedia eatualiza o campo do respectivo horaacuterio

Capiacutetulo 5

Conclusatildeo

Ao longo dos capiacutetulos deste trabalho pocircde-se acompanhar todo o processo de criaccedilatildeo edesenvolvimento do aplicativo que apoacutes finalizado foi batizado com o nome Queue

Comeccedilando com um problema para o qual o grupo almejava oferecer uma soluccedilatildeoacabou-se por adentrar-se um pouco no campo da Estatiacutestica e estudar diversas metodo-logias que poderiam ser uacuteteis para fornecer um caacutelculo de previsatildeo de espera meacutedia porperiacuteodo aplicaccedilatildeo da teoria das filas e utilizaccedilatildeo de redes neurais

Atraveacutes de uma parceria com a empresa GetIn obteve-se acesso a uma grande quantidadede dados e foi possiacutevel utilizaacute-los em anaacutelises feitas nas metodologias escolhidas conseguindoassim resultados relevantes Por meio destes foi feita a escolha de um dos meacutetodos para ocaacutelculo da previsatildeo de filas a meacutedia por periacuteodo

Aleacutem desses estudos ao longo do ano o grupo aprendeu a desenvolver para a plata-forma Android sobre a qual nenhum dos integrantes tinha conhecimento preacutevio Tambeacutemfoi possiacutevel aprender e utilizar a metodologia aacutegil com Scrum para guiar o processo de de-senvolvimento

Ao fim do ciclo de desenvolvimento conseguiu-se entregar um aplicativo em funciona-mento que fornece a previsatildeo de espera no instante da consulta de estabelecimentos cadas-trados no banco de dados armazenado na nuvem

Na versatildeo atual do aplicativo natildeo foi implementado um sistema para o cadastro de novosestabelecimentos Isso soacute eacute possiacutevel atraveacutes da inserccedilatildeo direta no banco de dados atraveacutes dainterface fornecida pelo console do Firebase Atualmente estatildeo cadastrados 5 restaurantesos quais foram visitados durante o desenvolvimento do projeto Para que o cadastro deestabelecimentos escale seria necessaacuterio a implementaccedilatildeo de uma funcionalidade que permitaao usuaacuterio adicionar novos estabelecimentos a partir de locais disponiacuteveis na API de locaisda Google

43

45

46 APEcircNDICE A

Apecircndice A

Dados coletados

Figura A1 Dados de tempo de espera para grupos de tamanhos variados para cada horaacuterio e emcada dia da semana obtidos em entrevista em restaurantes Outback Steakhouse Shopping Uniatildeo nomecircs de outubro

Referecircncias Bibliograacuteficas

[1] Backpropagation httpmbpsourceforgenet Accesso em Janeiro 2017 14

[2] Bitbucket httpsbitbucketorgproduct Accesso em Dezembro 2016 19

[3] Crowdsourcing httpswwwmerriam-webstercomdictionarycrowdsourcing Ac-cesso em Novembro 2016 21

[4] Designing a survey httpwwwsciencebuddiesorgscience-fair-projectsproject_ideasSoc_surveyshtml Accesso em Outubro 2016 4 23

[5] Facebook httpswwwfacebookcom Accesso em Novembro 2016 24

[6] Firebase httpsfirebasegooglecom Accesso em Agosto 2016 20

[7] Getin app httpswwwgetinappcombrhomesao-paulo Accesso em Novembro2016 9

[8] Git 11 primeiros passos - sobre controle de versatildeo httpsgit-scmcombookpt-brv1Primeiros-passos-Sobre-Controle-de-Vers Accesso em Novembro 2016 19

[9] Google forms httpsdocsgooglecomforms Accesso em Novembro 2016 23

[10] Guia definitivo do project model canvas Project Builder 3

[11] Jsonorg introducing json httpwwwjsonorg Accesso em Novembro 2016 17

[12] Manifesto para desenvolvimento Aacutegil de software httpagilemanifestoorgisoptbrmanifestohtml Accesso em Novembro 2016 5

[13] Nosql httpsenwikipediaorgwikiNoSQL Accesso em Novembro 2016 20

[14] Outback steakhouse httpswwwoutbackcombrhome Accesso em Novembro 20169

[15] Restful api development with lumen microframework httpsbelitsoftcomlaravel-development-servicesapi-development Accesso em Novembro 2016 17

[16] Scrum httpswwwatlassiancomagilescrum Accesso em Novembro 2016 5

[17] Smartphone os market share 2016 q2 httpwwwidccomprodservsmartphone-os-market-sharejsp Accesso em Novembro 2016 15

[18] Smartphone os sales market share kantar worldpanel comtech httpwwwkantarworldpanelcomsmartphone-os-market-share Accesso em Novembro 2016 15

[19] Sourcetree httpswwwsourcetreeappcom Accesso em Dezembro 2016 19

47

48 REFEREcircNCIAS BIBLIOGRAacuteFICAS

[20] Sql httpsptkhanacademyorgcomputingcomputer-programmingsql Accesso emDezembro 2016 20

[21] Trello httpstrellocom Accesso em Novembro 2016 6

[22] Usability test httpsenwikipediaorgwikiUsability_testing Accesso em Novembro2016 36

[23] Versionone 2012 agile dev survey httpswwwversiononecompdf7th-Annual-State-of-Agile-Development-Surveypdf Accesso em Novembro 2016 5

[24] Waze httpswwwwazecom Accesso em Novembro 2016 1

[25] What is an open source httpsopensourcecomresourceswhat-open-source Accessoem Novembro 2016 15

[26] Xml tutorial httpwwww3schoolscomxml Accesso em Novembro 2016 17

[27] Paulo F Cabral dos Anjos Jr Aron Ifanger Maciel Christopher Silva de Paacutedua Com-posiccedilatildeo de carteiras de accedilotildees utilizando modelo de redes neurais artificiais e modelo derisco e retorno de Markowitz 2012 14

[28] Google Distance matrix api documentation httpsdevelopersgooglecommapsdocumentationdistance-matrix Accesso em Novembro 2016 17

[29] Alan Klement Designing features using job stories httpsblogintercomcomusing-job-stories-design-features-ui-ux Accesso em Novembro 2016 6

[30] Azmat Nafees Queuing theory and its application analysis of the sales checkout opera-tion in ica supermarket httpwwwstatisticsduseessaysD07ENafeespdf Accessoem Novembro 2016 12

[31] Eric Ries A Startup Enxuta Lua de papel primeira ediccedilatildeo edition 2012 3

  • Introduccedilatildeo
    • Motivaccedilatildeo
    • Trabalho Proposto
    • Estrutura da monografia
      • Estudos Preliminares
        • Desenvolvimento de Startups
          • Desenvolvimento de Questionaacuterios
            • Metodologia Aacutegil
            • Jobs to be done
            • Caacutelculo da previsatildeo do tempo de espera na fila
              • Descriccedilatildeo do problema
              • Meacutetodos de caacutelculo da espera
                  • Tecnologias utilizadas
                    • O sistema Android
                      • Organizaccedilatildeo de uma aplicaccedilatildeo Android
                        • JSON
                        • Google APIs
                        • Localizaccedilatildeo do Usuaacuterio
                        • Controle de Versatildeo
                        • Banco de dados
                          • Firebase
                            • Crowdsourcing
                              • Desenvolvimento do Projeto
                                • Pesquisa de Mercado
                                  • Pesquisa com o usuaacuterio
                                    • Projeto do Aplicativo
                                    • Aplicaccedilatildeo dos meacutetodos de caacutelculo de espera
                                      • Aplicando a meacutedia por periacuteodo
                                      • Aplicando teoria das filas
                                      • Aplicando redes neurais
                                      • Conclusatildeo sobre os meacutetodos estudados
                                        • Definiccedilatildeo da Interface do aplicativo
                                        • Explicaccedilatildeo das funcionalidades
                                        • Implementaccedilatildeo do banco de dados
                                          • Conclusatildeo
                                          • Dados coletados
                                          • Referecircncias Bibliograacuteficas

Sumaacuterio

1 Introduccedilatildeo 111 Motivaccedilatildeo 112 Trabalho Proposto 113 Estrutura da monografia 2

2 Estudos Preliminares 321 Desenvolvimento de Startups 3

211 Desenvolvimento de Questionaacuterios 422 Metodologia Aacutegil 523 Jobs to be done 624 Caacutelculo da previsatildeo do tempo de espera na fila 8

241 Descriccedilatildeo do problema 8242 Meacutetodos de caacutelculo da espera 9

3 Tecnologias utilizadas 1531 O sistema Android 15

311 Organizaccedilatildeo de uma aplicaccedilatildeo Android 1632 JSON 1733 Google APIs 1734 Localizaccedilatildeo do Usuaacuterio 1835 Controle de Versatildeo 1936 Banco de dados 19

361 Firebase 2037 Crowdsourcing 21

4 Desenvolvimento do Projeto 2341 Pesquisa de Mercado 23

411 Pesquisa com o usuaacuterio 2342 Projeto do Aplicativo 3243 Aplicaccedilatildeo dos meacutetodos de caacutelculo de espera 32

431 Aplicando a meacutedia por periacuteodo 32432 Aplicando teoria das filas 34

vii

viii SUMAacuteRIO

433 Aplicando redes neurais 34434 Conclusatildeo sobre os meacutetodos estudados 35

44 Definiccedilatildeo da Interface do aplicativo 3545 Explicaccedilatildeo das funcionalidades 4146 Implementaccedilatildeo do banco de dados 41

5 Conclusatildeo 43

A Dados coletados 45

Referecircncias Bibliograacuteficas 47

Capiacutetulo 1

Introduccedilatildeo

Este capiacutetulo introduz o problema abordado a soluccedilatildeo proposta os objetivos do projetoe apresenta a estrutura da monografia

11 MotivaccedilatildeoEnfrentamos filas para realizar diversas atividades ao longo do dia Nosso tempo eacute gasto

esperando desde alguns minutos para pedir o almoccedilo ateacute horas para assistir um determinadoshow Ao todo muitas horas de nossas vidas satildeo desperdiccediladas nessas esperas

Muitas vezes somos surpreendidos por filas interminaacuteveis ou entatildeo pela ausecircncia delascriando a impressatildeo de que estas satildeo totalmente imprevisiacuteveis Isso acaba gerando a difi-culdade de programar com precisatildeo outras atividades pois natildeo sabemos ao certo quantotempo iremos gastar em esperas ao longo do dia Deixamos muitos deveres ou ateacute mesmomomentos de lazer de lado por causa disso e se tiveacutessemos como prever esse tempo gastopoderiacuteamos otimizar nosso dia

Esse e outros problemas podem ser minimizados agrave medida que o acesso agrave informaccedilatildeoseja histoacuterica ou em tempo real eacute facilitado Uma forma de fornecer essa informaccedilatildeo aousuaacuterio eacute atraveacutes da tecnologia Um exemplo disso eacute o aplicativo de navegaccedilatildeo Waze [24]que disponibiliza dados do tracircnsito em tempo real ajudando na locomoccedilatildeo diaacuteria Isso eacutepossiacutevel graccedilas aos avanccedilos tecnoloacutegicos e a maior acessibilidade aos dispositivos moacuteveisconectados agrave internet por exemplo

12 Trabalho PropostoAo vislumbrarmos esse problema tanto na vida dos outros como nas nossas e motivados

a utilizar nossos conhecimentos adquiridos ao longo do curso de Ciecircncia da Computaccedilatildeodecidimos desenvolver um aplicativo para diminuir esse desconforto causado pelas filas Essasoluccedilatildeo eacute um sistema

∙ desenvolvido na plataforma Android

∙ baseado em uma modelagem de sistema de filas

que tem como objetivo prever o tempo de espera dos usuaacuterios em filas e assim auxiliaacute-losnas suas decisotildees

1

2 INTRODUCcedilAtildeO 13

Para desenvolver uma soluccedilatildeo para o problema e dada a limitaccedilatildeo de tempo para o de-senvolvimento decidimos implementar a soluccedilatildeo apenas para as filas de restaurantes Estaescolha foi feita por serem locais muito frequentados e assim gerarem mais dados em menostempo e pela diversidade de tamanho das esperas gerando o interesse no estudo de suamodelagem

Implementou-se um aplicativo no qual o usuaacuterio pode fazer uma consulta sobre os res-taurantes cadastrados no banco de dados e ter acesso ao tempo de deslocamento somado aotempo de espera ateacute seu atendimento no estabelecimento Aleacutem disso ele tem a possibilidadede traccedilar uma rota ateacute o local e enviar um feedback sobre quanto tempo foi gasto na filapara aprimorar o calculo do tempo de espera

13 Estrutura da monografiaPara que fosse possiacutevel o desenvolvimento de um aplicativo para previsatildeo de tempo de es-

pera foi necessaacuterio estudar o processo de criaccedilatildeo de startups um processo de desenvolvimentode software tecnologias para programaccedilatildeo em Android bem como algumas modelagens es-tatiacutesticas de previsatildeo de tempo de espera A monografia foi estruturada de acordo comessas informaccedilotildees de modo que o leitor possa ter uma leitura progressiva dividida em trecircsprincipais partes

∙ Estudos preliminares Essa seccedilatildeo apresenta estudos sobre o que eacute necessaacuterio para odesenvolvimento de Startups a definiccedilatildeo da metodologia de desenvolvimento utilizadapelo grupo e o estudo da aplicaccedilatildeo de trecircs diferentes modelagens estatiacutesticas feitaspara analisar os dados iniciais fornecendo um modo de calcular o tempo de espera emum restaurante em um dado instante

∙ Tecnologias utilizadas Onde satildeo apresentadas as tecnologias e ferramentas utiliza-das para auxiliar no desenvolvimento do aplicativo

∙ Desenvolvimento do projeto Essa parte apresenta a aplicaccedilatildeo dos meacutetodos decaacutelculo de espera vistos na seccedilatildeo anterior e o processo de desenvolvimento do aplicativoem si

Capiacutetulo 2

Estudos Preliminares

21 Desenvolvimento de StartupsO desenvolvimento do projeto foi baseado nos meacutetodos utilizados em Startups O grupo

seguiu os princiacutepios da Startup Enxuta [31] no qual um produto miacutenimo deve ser criado eentatildeo incrementado atraveacutes do estudo das necessidades do usuaacuterio A partir de uma pesquisacom o puacuteblico alvo a ideia inicial eacute lapidada e um produto com o miacutenimo de funcionalidadespossiacutevel eacute desenvolvido para entatildeo retornar aos usuaacuterios que iratildeo validaacute-lo Este processo eacuterepetido ateacute que um produto final seja completamente desenvolvido independente da ideiaque se tinha no iniacutecio O processo tem como foco economizar recursos e suprir a necessidadedo usuaacuterio de forma raacutepida e eficiente

De acordo com o livro A Startup Enxuta[31] esta metodologia prioriza o desenvolvi-mento iterativo com a participaccedilatildeo do cliente a cada etapa ao inveacutes de procuraacute-lo somentena entrega do produto final Nessa metodologia temos alguns princiacutepios que guiam o desen-volvimento de projetos

1 Mapeamento do negoacutecio atraveacutes do diagrama conhecido como ldquocanvas do modelo denegoacuteciosrdquo que nos mostra resumidamente uma visatildeo geral do projeto

2 Pesquisas feitas com os usuaacuterios no mercado para saber suas opiniotildees sobre o negoacutecioe posteriores mudanccedilas ou ajustes no projeto com base nos resultados

3 Desenvolvimento do produto utilizando algum meacutetodo aacutegil

Inicialmente deve-se traccedilar os primeiros objetivos do projeto utilizando o diagrama Can-vas [10] (figura 21) Esse diagrama eacute utilizado para auxiliar empresas a ter uma visatildeo macrodo projeto fornecendo uma forma de visualizar suas dependecircncias e permitindo planejartraccedilar e gerenciar um plano de desenvolvimento Ele possui perguntas que devem ser res-pondidas em seus quadros e no decorrer desse processo o projeto vai sendo adaptado deacordo com as limitaccedilotildees impedimentos e novas ideias que vatildeo surgindo

3

4 ESTUDOS PRELIMINARES 21

Figura 21 Modelo do Diagrama Canvas

Com o modelo de negoacutecios definido o proacuteximo passo eacute a realizaccedilatildeo de uma pesquisa como puacuteblico para validaacute-lo Essa fase do desenvolvimento pode ser refeita quantas vezes foremnecessaacuterias reescrevendo o Canvas conforme a interpretaccedilatildeo da necessidade do usuaacuterio

211 Desenvolvimento de Questionaacuterios

De acordo com o manual Designing a Survey [4] um questionaacuterio eacute criado para obterinformaccedilotildees para conduzir o desenvolvimento de um projeto de acordo com as preferecircnciasdo puacuteblico alvo Ele deve ser curto e conciso e deve capturar somente informaccedilotildees que sejamrelevantes para a pesquisa

Os passos para o desenvolvimento de um bom questionaacuterio satildeo

∙ Definir os dados necessaacuterios

∙ Desenvolver as questotildees

∙ Remover qualquer questatildeo que natildeo captura os dados definidos previamente

As questotildees podem ser moldadas de trecircs maneiras

∙ Estruturadas Questotildees que possuem resposta fixa Exemplo

Vocecirc usa transporte puacuteblico

( )Sim

( )Natildeo

22 METODOLOGIA AacuteGIL 5

∙ Natildeo Estruturadas Questotildees de resposta aberta Exemplo

O que vocecirc costuma fazer para evitar filas

∙ Parcialmente Estruturadas Questotildees mistas Exemplo

Qual meio de transporte vocecirc usa

( )Carro

( )Moto

( )Outros______

22 Metodologia AacutegilA metodologia aacutegil tem sido adotada pelas empresas hoje em dia por conta dos melhores

resultados obtidos em relaccedilatildeo agraves metodologias tradicionais[23] Essa eacute caracterizada pelavalorizaccedilatildeo de

∙ ldquoIndiviacuteduos e interaccedilotildees mais que processos e ferramentasrdquo

∙ ldquoSoftware em funcionamento mais que documentaccedilatildeo abrangenterdquo

∙ ldquoColaboraccedilatildeo com o cliente mais que negociaccedilatildeo de contratosrdquo

∙ ldquoResponder a mudanccedilas mais que seguir um planordquo [12]

Eacute uma metodologia que envolve trabalho em equipe encontros regulares com o clientedesenvolvimento iterativo e com menos foco em planejamento estrito e ideias definitivasdiferente de metodologias mais tradicionais que satildeo mais focadas em projetos bem docu-mentados com pouca possibilidade de mudanccedila ao final do processo Decidiu-se por utilizara metodologia aacutegil neste projeto pois natildeo haviam ideias completamente definidas inicial-mente e para o grupo a opiniatildeo do puacuteblico alvo sobre o produto era fundamental em cadaiteraccedilatildeo do processo podendo haver mudanccedilas inesperadas dependendo do feedback recebido

Dentre as opccedilotildees de metodologias aacutegeis O meacutetodo Scrum[16] eacute um que eacute definido comoum gerenciador e um processo de controle que foca em construir um software que conheceas necessidades do negoacutecio devolvendo incrementalmente um software

Com o Scrum o software eacute desenvolvido em iteraccedilotildees de tamanho fixo chamadas deSprints que tem duraccedilatildeo de tipicamente duas a quatro semanas Em cada Sprint um nuacutemerofixo de histoacuterias (que se traduzem em tarefas) satildeo selecionadas pelo grupo para seremutilizadas na sprint(figura 22) Haacute tambeacutem um sistema de motivaccedilatildeo para o time como osMilestones que satildeo objetivos menores distribuiacutedos por toda a sprint ajudando na mediccedilatildeode desemprenho da equipe e graacuteficos Burndown que mostram o progresso de cada iteraccedilatildeopara que o time sinta o progresso no desenvolvimento

6 ESTUDOS PRELIMINARES 23

Figura 22 Dinacircmica do Scrum

Para controle das iteraccedilotildees foi utilizado o software Trello [21] que eacute um gerenciador detarefas de projeto (figura 23)

Figura 23 Interface do Trello - durante o processo de desenvolvimento

23 Jobs to be donePara implementar o aplicativo buscou-se uma metodologia para guiar esse processo desde

sua criaccedilatildeo ateacute sua validaccedilatildeo Duas metodologias conhecidas pelo grupo foram analisadas eestudadas Jobs To Be Done e Personas and Use Cases

Segundo Alan Klement[29] Personas satildeo clientes imaginaacuterios descritos pela idade sexoraccedila e haacutebitos semanais O uso delas natildeo eacute adequado para responder perguntas como ldquoPorqueo cliente quer saber o tamanho da filardquo pois quando a resposta eacute ldquoEle estaacute com pressa paracomerrdquo natildeo fica claro quais satildeo as reais necessidades do usuaacuterio Essa descriccedilatildeo tambeacutem natildeoeacute uacutetil no desenvolvimento de uma boa interface pois natildeo ajuda na hora de responder se umcerto botatildeo realmente deixa claro sua funcionalidade

23 JOBS TO BE DONE 7

Tambeacutem segundo Alan Klement Use Cases possuem 3 grandes problemas usam perso-nas casam implementaccedilotildees motivaccedilotildees e resultado e ignoram contexto situaccedilotildees e ansie-dades

Se uma funcionalidade definida por uma Use Case falhar seraacute difiacutecil identificar o pro-blema pois por casar informaccedilotildees diferentes surgiraacute a dificuldade de saber o que estaacute erradoa implementaccedilatildeo as suposiccedilotildees sobre as motivaccedilotildees ou os resultados

Observando-se esses fatos optou-se pelo uso da metodologia Jobs to Be Done pois haacuteuma mudanccedila na forma de fazer histoacuterias a fim de evitar os problemas observados em Per-sonas e Use Cases(Figura 24) Nesse modelo as Personas satildeo pessoas reais e as histoacuterias satildeoescritas com a seguinte divisatildeo situaccedilatildeo motivaccedilatildeo e resultados esperados

Nessa metodologia criamos histoacuterias descrevendo tarefas para que os usuaacuterios se colo-quem na situaccedilatildeo descrita Observando-os eacute possiacutevel saber se a tarefa foi realizada de formabem sucedida e caso contraacuterio identificar onde e o que estaacute causando a falha no instanteda realizaccedilatildeo dela

Figura 24 Diferenccedila entre estruturas de histoacuterias

8 ESTUDOS PRELIMINARES 24

Algumas das histoacuterias criadas para os testes de interface do grupo foram

∙ Quando eu estiver na tela de lista de restaurantes eu quero acessar a tela de detalhesdo restaurante que eu desejo saber o tempo de espera entatildeo eu posso ver com clarezaas informaccedilotildees e posso traccedilar uma rota para o estabelecimento

∙ Quando eu estiver na tela principal eu quero enviar meu feedback sobre o tempo deespera no estabelecimento que estou entatildeo eu posso ajudar outros usuaacuterios por meiodo aplicativo

24 Caacutelculo da previsatildeo do tempo de espera na filaAtraveacutes de pesquisas em busca de meacutetodos estatiacutesticos para se estudar o comportamento

das filas foram encontradas as trecircs metodologias descritas nesta seccedilatildeo Este capiacutetulo conteacutema explicitaccedilatildeo do problema estudado e suas possiacuteveis soluccedilotildees

241 Descriccedilatildeo do problema

Para que se chegasse a uma soluccedilatildeo apropriada o problema de espera em fila precisouser estudado Esse problema pode ser descrito da seguinte forma dado um restaurante aentrada nesse eacute atraveacutes de uma fila Essa fila tem seu tamanho redefinido agrave medida quenovos clientes chegam e saem dela A saiacuteda dos clientes pode ser devido a desistecircncia ou aacomodaccedilatildeo deles nas mesas A entrada eacute definida pela disponibilizaccedilatildeo de lugares livres agravemedida em que os grupos que estavam alocados terminam seu atendimento

Figura 25 Esquema simplificado do funcionamento do processo em um restaurante

A fila de espera eacute influenciada por dois fatores a taxa de chegada do cliente e a taxa deatendimento nas mesas

∙ chegada em restaurantes a chegada de clientes eacute definida por uma taxa O clienteneste caso representa um grupo com tamanho variaacutevel A distribuiccedilatildeo do tamanho dogrupo nas chegadas eacute variaacutevel

∙ O atendimento a alocaccedilatildeo do grupo eacute organizada pela recepccedilatildeo O meacutetodo utilizadopor eles natildeo eacute padronizado e muitas vezes eacute completamente subjetivo Por exemplose acontecer de um grupo grande e vaacuterios casais chegarem ao mesmo tempo e nesse

24 CAacuteLCULO DA PREVISAtildeO DO TEMPO DE ESPERA NA FILA 9

momento existir um espaccedilo no salatildeo que acomode o grupo (juntando as mesas) outodos os casais (com as mesas separadas) dependendo de quem estaacute responsaacutevel poralocaacute-los cada um receberaacute uma prioridade diferente e essa decisatildeo natildeo eacute padronizada

∙ A disposiccedilatildeo das mesas a disposiccedilatildeo e quantidade de mesas natildeo satildeo padronizadasentre restaurantes de uma mesma rede muito menos entre restaurantes diferentesAleacutem disso a formataccedilatildeo do salatildeo pode ser remodelada de acordo com a necessidadede alocaccedilatildeo dos clientes haacute gerentes que evitam essa movimentaccedilatildeo ou ateacute mesmorestaurantes que natildeo tecircm essa possibilidade

242 Meacutetodos de caacutelculo da espera

Com o problema desenhado desta maneira esboccedilou-se trecircs possiacuteveis meacutetodos de resoluccedilatildeoe um desses foi aplicado na soluccedilatildeo final Os meacutetodos desenvolvidos satildeo meacutedia por periacuteodoaplicaccedilatildeo da teoria das filas e utilizaccedilatildeo de redes neurais Essas teacutecnicas precisam de dadospara serem desenvolvidas e aplicadas Por conta disso buscou-se fontes que suprissem essanecessidade

Captaccedilatildeo dos dados para a anaacutelise

Para que seja possiacutevel aplicar os meacutetodos estudados eacute necessaacuterio obter dados para aplicarna anaacutelise Estes foram obtidos de duas formas a partir de uma parceria com a empresa GetIn [7] desenvolvedora de um aplicativo de gerenciamento de filas de restaurantes e atraveacutesde pesquisas presenciais em restaurantes da rede Outback Steakhouse[14] selecionados para oestudo(Apecircndice A) O aplicativo da Get In possui uma funcionalidade principal realizaccedilatildeode uma reserva em um determinado restaurante O banco de dados manteacutem o registro detodos os usuaacuterios que entram na fila e esses dados satildeo organizados em uma tabela com osseguintes campos

∙ Origem Se a reserva foi realizada de forma remota ou presencial Assim

1 Reserva presencial (na entrada do restaurante incluiacuteda pela recepcionista)

2 Reserva remota (realizada atraveacutes do aplicativo)

∙ Entrada este consiste na data e hora que o usuaacuterio entrou na fila

∙ Qtd Pessoas tamanho do grupo para o qual a reserva foi feita

∙ Prioritaacuterio se este grupo requer atendimento prioritaacuterio

0 Natildeo

1 Sim

∙ Notificado A data e horaacuterio em que o grupo foi notificado que sua mesa estava pronta

ndash Quando NULL a recepcionista natildeo notificou essa pessoa (possivelmente chamoudiretamente pelo nome)

∙ Tempo na Espera Tempo que o grupo ficou ativo na fila de espera (em segundos)

∙ Status Qual a situaccedilatildeo da reserva do grupo Podendo assumir tais valores

0 Cancelado pela recepcionista

10 ESTUDOS PRELIMINARES 24

2 Sentado

3 Cancelado pelo proacuteprio Usuaacuterio

Para melhor entender estes paracircmetros o funcionamento do aplicativo deve ser expli-cado com maior detalhamento O processo de reserva funciona da seguinte forma o usuaacuterioreserva seu lugar atraveacutes do aplicativo ou vai ao restaurante e a recepcionista o adiciona agraveespera No primeiro caso o usuaacuterio tem um tempo de toleracircncia para chegar ao estabeleci-mento apoacutes receber a notificaccedilatildeo caso natildeo consiga chegar a tempo a reserva eacute cancelada Nosegundo caso quando o grupo a ser chamado estaacute proacuteximo da recepccedilatildeo a funcionalidade denotificaccedilatildeo natildeo precisa ser usada o responsaacutevel pode se direcionar diretamente aos clientes echamaacute-los pelo nome Mesmo nesse segundo caso o tempo de espera na fila ainda eacute guardadopois a recepccedilatildeo precisa ldquofecharrdquo a espera do grupo para chamar o proacuteximo

Poreacutem a utilizaccedilatildeo desses dados natildeo foi liberada pela empresa Get In para serem usadoscomo banco de dados do aplicativo somente foram fornecidos dados do mecircs de agosto esetembro de 2016 para que fossem utilizados nas anaacutelises feitas com os modelos estatiacutesticosPara obter dados que poderiam ser utilizados no banco de dados do aplicativo foi neces-saacuterio uma pesquisa presencial onde o grupo visitou alguns restaurantes da rede OutbackSteakhouse para obter informaccedilotildees sobre o tempo de espera nestes estabelecimentos

Foram visitados 5 restaurantes Outback Steakhouse Shopping Eldorado Outback Ste-akhouse Shopping Villa Lobos Outback Steakhouse Shopping Granja Vianna Outback Ste-akhouse Shopping Uniatildeo de Osasco e Outback Steakhouse Shopping Market Place ondequestionamos sobre o tempo de espera por tamanho de grupos (em nuacutemero de pessoas) epor horaacuterio e dia da semana

Ao analisar os dados coletados pela pesquisa presencial notamos que estes estavam sus-cetiacuteveis a erros por terem sido obtidos por meio de diferentes observaccedilotildees humanas Ummeacutetodo para obter dados mais precisos consistiria na realizaccedilatildeo de novas pesquisas no for-mato mediccedilatildeo onde cada integrante do grupo deveria coletar o tempo de espera de cadacliente atraveacutes de um cronocircmetro e calcular o tempo de espera meacutedio nesse horaacuterio Comoo grupo natildeo conseguiria aplicar este meacutetodo optou-se por melhorar a precisatildeo dos dadoscoletados usando como base o graacutefico de horaacuterios de pico disponibilizado pela Google paracada restaurante Essa melhora foi feita utilizando-se caacutelculos de proporccedilatildeo de valores

24 CAacuteLCULO DA PREVISAtildeO DO TEMPO DE ESPERA NA FILA 11

Primeiro meacutetodo Meacutedia por periacuteodo

Figura 26 Esquema do meacutetodo meacutedia por periacuteodo

Para que uma previsatildeo de espera possa ser fornecida ao usuaacuterio essa deve basear-seobrigatoriamente em alguma informaccedilatildeo preacutevia Contudo encontrar uma fonte para taisdados se mostrou uma tarefa muito complicada Para conseguir ainda assim apresentar umtempo de espera em fila meacutetodos de anaacutelise foram definidos de acordo com a quantidade dedados disponiacutevel para cada estabelecimento

De um modo geral neste modelo o caacutelculo do tempo de espera funcionaraacute da seguinteforma calcular-se-aacute a meacutedia de espera para o dia da semana e horaacuterio requeridos pelousuaacuterio sem diferenciar feriados de dias normais Dependendo de quatildeo longo eacute o histoacutericoniacuteveis de especificidade podem ser adicionados ou seja numa busca tempo de espera em 9de Dezembro (segunda-feira) agraves 19h no restaurante X a query selecionaraacute todos os registrosfeitos no dia 9 de dezembro entre as 19h e agraves 20h dos uacuteltimos anos no restaurante X e realizaraacuteessa meacutedia ou pode selecionar apenas linhas de todas as segundas-feiras do mecircs de Dezembrodeste mesmo periacuteodo

∙ Muitos dados neste caso um maior niacutevel de especificidade pode ser aplicado sem autilizaccedilatildeo de outras fontes para complementar o banco de dados

∙ Alguns dados o niacutevel de especificidade eacute bem menor apenas filtrando por dia dasemana e intervalo de hora sem mecircs ou dia especiacutefico no ano Em alguns casos aquantidade de dados eacute tatildeo pequena que deve-se recorrer a outras fontes A Googletem disponibilizado graacuteficos com a distribuiccedilatildeo dos clientes nos horaacuterios de funciona-mento de estabelecimentos Esses dados natildeo estatildeo disponiacuteveis em sua API ou seja natildeo

12 ESTUDOS PRELIMINARES 24

haacute uma forma automaacutetica para que o aproveitamento desses possa ser feito Poreacutemmesmo omitindo-se os valores do graacutefico o perfil da distribuiccedilatildeo e o horaacuterio de picosatildeo aproveitados manualmente para nosso sistema

∙ Poucos dados para este caso fizemos o balanceamento dos dados da Google comas informaccedilotildees retiradas das entrevistas Aleacutem do aproveitamento das informaccedilotildees daGoogle foram realizadas pesquisas com funcionaacuterios dos restaurantes

Segundo meacutetodo Teoria das filas

Filas podem ser vistas como um sistema dinacircmico no qual existe um conjunto de usuaacuteriosque satildeo atendidos por um conjunto de atendentes de acordo com a ordem de chegada dosusuaacuterios A teoria de filas busca utilizando anaacutelises matemaacuteticas estudar o comportamentodestas filas para estimar o tempo de espera com base em um conjunto inicial de dadospreviamente fornecido[30]

Um sistema de filas possui como caracteriacutesticas

∙ Modelo de chegada dos usuaacuterios Utiliza como base o tempo entre as chegadasdos usuaacuterios

∙ Modelo de serviccedilo (atendimento aos usuaacuterios) Utiliza como base o tempo gastono atendimento ao usuaacuterio No caso dos restaurantes equivale ao tempo que um grupopassa na mesa ateacute a sua saiacuteda

∙ Nuacutemero de servidores Eacute o nuacutemero de atendentes disponiacuteveis no sistema Para omodelo do restaurante este equivale agraves mesas disponiacuteveis no salatildeo

∙ Capacidade do sistema Eacute o nuacutemero de usuaacuterios que o sistema eacute capaz de atenderInclui o nuacutemero de usuaacuterios que estatildeo sendo atendidos somado com os que esperamna fila Se este paracircmetro natildeo for informado o sistema eacute considerado com capacidadeilimitada

∙ Tamanho da populaccedilatildeo nuacutemero potencial de clientes que podem chegar a umsistema Pode ser finito ou infinito

∙ Disciplina da fila A disciplina da fila pode ser FIFO (first in first out) - o primeiroa chegar eacute o primeiro a ser atendido LIFO (last in first out) - o uacuteltimo a chegar eacuteo primeiro a ser atendido ALEATOacuteRIO - os atendimentos satildeo feitos sem qualquerpreocupaccedilatildeo com a ordem de chegada COM PRIORIDADE - os atendimentos satildeofeitos de acordo com prioridades estabelecidas No caso dos restaurantes a disciplinaadotada eacute a FIFO poreacutem esta pode mudar de acordo com o atendente responsaacutevel

Os tempos mencionados nos modelos de chegada e de serviccedilo podem ser constantesquando os intervalos entre as chegadas dos usuaacuterios satildeo iguais ou variaacuteveis quando os valo-res desses intervalos variam Nesse uacuteltimo caso o intervalo de tempo segue uma distribuiccedilatildeode probabilidades Nesse modelo tambeacutem existe a taxa meacutedia de chegada dos usuaacuterios porunidade de tempo ou seja quantos usuaacuterios chegam em uma hora

As filas podem ser moldadas em trecircs situaccedilotildees baacutesicas como descrito por Azmat Nafees[30]

∙ Modelo de fila de canal uacutenico com fila uacutenica e atendimento uacutenico (Figura 27)

24 CAacuteLCULO DA PREVISAtildeO DO TEMPO DE ESPERA NA FILA 13

∙ Modelo de fila de canal uacutenico com fila uacutenica e muacuteltiplos atendimentos paralelos (Fi-gura 28)

∙ Modelo de fila de canal uacutenico com muacuteltiplas filas e muacuteltiplos atendimentos paralelos(Figura 29)

Figura 27 Modelo de fila de canal uacutenico com fila uacutenica e atendimento uacutenico

Figura 28 Modelo de fila de canal uacutenico com fila uacutenica e muacuteltiplos atendimentos paralelos

Figura 29 Modelo de fila de canal uacutenico com muacuteltiplas filas e muacuteltiplos atendimentos paralelos

Tambeacutem por Azmat Nafees nesses modelos trecircs subprocessos podem ser vistos

∙ Processo de chegada Eacute um processo contiacutenuo do evento ldquochegada de clientesrdquo ouseja quando o evento ocorre o processo aguarda a ocorrecircncia do proacuteximo evento Esseevento coloca um cliente na fila quando ele chega

14 ESTUDOS PRELIMINARES 24

∙ Processo de espera Eacute um processo que inclui o evento ldquocomece a servir o proacuteximocliente da filardquo que retira um cliente da fila o coloca no processo de atendimento eespera a conclusatildeo do evento ldquocliente servidordquo para recomeccedilar Nele se trabalha comtamanho e disciplina da fila

∙ Processo de atendimento Eacute um processo que inclui o evento ldquocliente servidordquo eespera a conclusatildeo do evento ldquocomece a servir o proacuteximo cliente da filardquo para recomeccedilarNele se trabalha com tipo taxa e tempo de atendimento

Dentre esses 3 modelos o que mais se encaixa na situaccedilatildeo de um restaurante eacute o segundomodelo canal uacutenico com fila uacutenica e muacuteltiplos atendimentos paralelos O processo de chegadade novos clientes na fila eacute tido como aleatoacuterio

Terceiro meacutetodo Rede Neural

Rede Neural eacute uma teacutecnica computacional inspirada no sistema nervoso que com o auxiacute-lio de um modelo matemaacutetico apresenta respostas para problemas de decisatildeo Esses modelosfuncionam da seguinte forma primeiro um conjunto de dados (conjunto de treinamento) eacuteapresentado ao sistema e este aprende com ele atraveacutes de reconhecimento de padratildeo entatildeocoloca-se o sistema para analisar os dados (conjunto de teste) para os quais deseja-se obteralgum resultado Este processo eacute chamado de aprendizagem de maacutequina Quanto melhor forseu treinamento mais precisas seratildeo as respostas para o segundo conjunto

Uma rede neural eacute formada por subestruturas chamadas neurocircnios Um neurocircnio tem oseguinte funcionamento ele recebe como entrada sinais cada sinal recebe um peso de acordocom a influecircncia dele na saiacuteda e uma soma eacute feita para produzir o niacutevel de atividade entatildeodependendo se o niacutevel de atividade exceder o limite dado pela funccedilatildeo de transferecircncia aresposta eacute produzida[27]

Software Multiple Back-Propagation

Para implementar a soluccedilatildeo baseada em redes neurais foi usado o Software MultipleBack-Propagation [1] Este eacute um software de faacutecil utilizaccedilatildeo que fornece uma rede a qualaprende atraveacutes do processo de propagaccedilatildeo inversa Esse meacutetodo baseia-se na comparaccedilatildeodos dados esperados (conjunto de teste) com os dados obtidos a partir do treinamento senecessaacuterio adaptaccedilotildees satildeo feitas a estrutura da rede para melhor aproximar aos dados doconjunto teste e isso eacute chamado de propagaccedilatildeo inversa

Por se tratar de um meacutetodo de aprendizagem de maacutequinas para se obter um resultadodeve-se treinar o algoritmo Primeiramente submete-se o conjunto de treinamento ao soft-ware para isso foi escolhido o mecircs de Agosto O criteacuterio de parada para o treino eacute o erroquadraacutetico meacutedio o qual teve seu valor atribuiacutedo para 001

Capiacutetulo 3

Tecnologias utilizadas

31 O sistema AndroidAndroid eacute um Sistema operacional open source (software de coacutedigo aberto o qual as

pessoas podem acessar e modificar para contribuir com o projeto [25]) e para dispositivosmoacuteveis desenvolvido pela Google baseado no Kernel do Linux e utilizado principalmente emdispositivos touchscreen Atualmente o Android eacute o sistema operacional que deteacutem a maiorparcela do mercado[17] com 836 dos dispositivos contra 134 do iOS da Apple

A Google tambeacutem oferece um ambiente de desenvolvimento para a plataforma Androidchamado Android Studio no qual os aplicativos satildeo criados e exportados para os dispositi-vos moacuteveis Aplicativos Android satildeo programados na linguagem Java com vaacuterias bibliotecasdisponibilizadas pela Google para suporte ao sistema operacional

A escolha da plataforma foi feita principalmente por conta de o sistema possuir a maiorparte dos usuaacuterios de Smartphones e tambeacutem pela ampla comunidade ativa de desenvolve-dores agrave qual se pode recorrer em casos de duacutevidas e problemas tornando suas resoluccedilotildeesmais raacutepidas e com muacuteltiplas alternativas Outros motivos que contribuiacuteram para a escolhado Android foram

∙ A disponibilidade do ambiente de desenvolvimento Android Studio que possui todosos recursos necessaacuterios para desenvolver um aplicativo funcional logo apoacutes a instalaccedilatildeosem a necessidade de utilizar outras dependecircncias as quais satildeo gerenciadas automati-camente pelo proacuteprio software

∙ O fato de no mercado brasileiro o sistema Android se encontrar em 918 dos dispo-sitivos segundo pesquisa da Kantar[18] e dado a pesquisa realizada para definiccedilatildeo depuacuteblico alvo onde foi possiacutevel perceber que 639 dos entrevistados utilizam smartpho-nes com sistema Android

∙ A utilizaccedilatildeo da linguagem de programaccedilatildeo Java para desenvolvimento que jaacute eraconhecida e fora utilizada anteriormente ao contraacuterio das linguagens Objective C eSwift linguagens utilizadas para desenvolver aplicativos para o sistema iOS Assimcomo a disponibilidade de dispositivos por parte do grupo que em sua maioria era decelulares com o sistema Android

15

16 TECNOLOGIAS UTILIZADAS 31

Figura 31 Parcela de mercado dos dispositivos no Brasil

311 Organizaccedilatildeo de uma aplicaccedilatildeo Android

Aplicativos Android satildeo divididos em componentes Haacute quatro tipos de componentespresentes Activities (ou atividades) Services (ou serviccedilos) Content providers (ou provedoresde conteuacutedo) Broadcast receivers (ou receptores de transmissatildeo)

∙ Activities Satildeo as telas e interfaces do usuaacuterio Cada tela de uma aplicaccedilatildeo eacute repre-sentada por uma activity e cada activity eacute independente de outras apesar de seremcomponentes de uma mesma aplicaccedilatildeo Isso se daacute pelo fato de haver a possibilidade deutilizar activities de aplicativos durante a execuccedilatildeo de outros Atividades satildeo iniciadase se comunicam entre si atraveacutes de objetos chamados Intent que transferem um pacotede dados que pode ser carregado no iniacutecio da nova atividade

∙ Services Sempre satildeo executados em segundo plano sem interferir na experiecircncia dousuaacuterio geralmente para realizar operaccedilotildees longas ou realizar operaccedilotildees de troca dedados enquanto o usuaacuterio estaacute utilizando outra aplicaccedilatildeo em primeiro plano

∙ Content Providers Satildeo gerenciadores de dados de aplicaccedilotildees Android utilizadospara ler e salvar dados compartilhados ou secretos dos aplicativos e do sistema

∙ Broadcast Receivers Satildeo componentes responsaacuteveis por obter eventos que aconte-ceram em outras aplicaccedilotildees ou no sistema e direcionar dados sobre esses eventos paraeventuais aplicaccedilotildees que necessitem destes dados alguns exemplos de eventos obtidospelos receptores de transmissatildeo satildeo tela desligada e bateria fraca

Aleacutem dos componentes uma parte importante de uma aplicaccedilatildeo Android eacute o ArquivoManifest que eacute uma declaraccedilatildeo de permissotildees serviccedilos e exigecircncias de hardware necessaacuterios

33 JSON 17

para o funcionamento do aplicativo Outra funccedilatildeo eacute possuir declaraccedilotildees de todos os compo-nentes utilizados no projeto nomes iacutecones entre outros

As interfaces de usuaacuterio do Android satildeo definidas em arquivos XML (eXtensible MarkupLanguage)[26] nos quais estatildeo declarados todos os layouts e configuraccedilotildees das telas Essesarquivos de layout satildeo depois inflados e satildeo gerados os componentes visuais da aplicaccedilatildeoEssa estrutura tem como objetivo facilitar o design da interface do usuaacuterio jaacute que arquivosxml satildeo de faacutecil compreensatildeo do desenvolvedor

32 JSONJSON ou Javascript Object Notation eacute um formato de dados amplamente utilizado para

troca de informaccedilotildees entre programas Possui uma notaccedilatildeo simples para grande parte dosprogramadores pois se assemelha a convenccedilotildees utilizadas em linguagens de programaccedilatildeomuito conhecidas como C C++ Python e Java O objetivo eacute que ele seja de faacutecil entendi-mento tanto para pessoas como para maacutequinas[11]

Um arquivo JSON eacute organizado como um objeto contendo pares nomevalorseparadospor viacutergulas e dentro de chaves(lsquolsquo rsquorsquo) ou como um array que eacute uma lista de valores separa-dos por viacutergulas e entre colchetes(lsquo[lsquo rsquo]rsquo) Um valor por sua vez pode ser um objeto ou umarray mas tambeacutem um nuacutemero inteiro ou uma String entre outros

Um exemplo de arquivo JSON eacute

1 2 Carros [3 4 Nome Scen ic 5 Marca Renault 6 Ano 20127 8 9 Nome Sentra

10 Marca Nissan 11 Ano 200912 13 ]14

33 Google APIsAPIs (Application Program Interfaces) satildeo interfaces para facilitar a troca de informa-

ccedilotildees entre aplicaccedilotildees utilizando comandos especiacuteficos[15]

Ao longo do desenvolvimento algumas APIs fornecidas pela Google foram utilizadascomo fonte de informaccedilotildees adicionais para o aplicativo

∙ Google Maps Distance Matrix API Esta API eacute utilizada para obter o tempo emsegundos de trajeto entre dois pontos (latlong) no mapa podem ser consultados ostempos de trajeto de carro bicicleta a peacute e utilizando transporte puacuteblico[28] Esta eacute

18 TECNOLOGIAS UTILIZADAS 35

uma API web logo utiliza-se um request http para realizar uma consulta

Por exemplo o request

httpsmapsgoogleapiscommapsapidistancematrixjsonorigins=Seattleampdestinations=Victoria+BCampkey=[user_key]

retorna o JSON

1 2 des t ina t i on_addre s s e s [ Vic tor ia BC Canada ] 3 o r i g in_addre s s e s [ Sea t t l e WA EUA ] 4 rows [5 6 e lements [7 8 d i s t anc e 9 text 172 km

10 value 17166811 12 durat ion 13 text 4 horas 40 minutos 14 value 1680915 16 s t a tu s OK17 18 ]19 20 ] 21 s t a tu s OK22

no qual eacute possiacutevel obter o tempo de trajeto em segundos

∙ Google Maps Android API Esta API eacute utilizada para habilitar o uso de mapasda Google integrados agrave aplicaccedilatildeo jaacute disponiacutevel com todas as funcionalidades de zoome arrastar presentes no aplicativo nativo permitindo tambeacutem a personalizaccedilatildeo comoa adiccedilatildeo de pontos definidos pelo usuaacuterio ao mapa

34 Localizaccedilatildeo do UsuaacuterioOutro serviccedilo que foi utilizado com o intuito de obter o tempo de trajeto e a lista ordenada

de forma personalizada de restaurantes foi a localizaccedilatildeo do usuaacuterio que eacute obtida atraveacutes doGPS presente nos smartphones Um objeto de localizaccedilatildeo eacute criado e realiza a comunicaccedilatildeocom o serviccedilo de localizaccedilatildeo do aparelho Ao obter a localizaccedilatildeo ele lanccedila um evento quepode ser acessado por outras partes da aplicaccedilatildeo obtendo a localizaccedilatildeo mais atualizada dodispositivo

36 CONTROLE DE VERSAtildeO 19

35 Controle de VersatildeoControle de versatildeo eacute uma praacutetica usada para manter a organizaccedilatildeo do coacutedigo e do seu de-

senvolvimento quando muitos desenvolvedores colaboram conjuntamente Existem softwaresque auxiliam essa organizaccedilatildeo registrando todas as mudanccedilas feitas ao longo do processo eque possui recursos que permitem que vaacuterios usuaacuterios trabalhem nos mesmos arquivos semperda de informaccedilotildees

No caso do Git [8] o projeto fica organizado em uma estrutura de aacutervore onde cadacommit (checkpoints criados pelos membros do grupo durante o processo) eacute marcado porum noacute para onde se pode retornar quando necessaacuterio Existem tambeacutem estruturas chama-das branches que satildeo bifurcaccedilotildees na estrutura para que partes do projeto sejam criadasseparadamente sem interferir com a linha principal As branches depois satildeo unidas agrave linhaprincipal atraveacutes do comando merge

Neste projeto o serviccedilo de controle de versatildeo utilizado foi o Bitbucket [2] (que eacute um ser-viccedilo web-based de controle de versatildeo que utiliza Git) com auxiacutelio do software SourceTree[19]que eacute uma interface graacutefica para os serviccedilos do Bitbucket onde eacute possiacutevel visualizar com maisfacilidade as fases do desenvolvimento do projeto e realizar os comandos mais intuitivamente

Figura 32 Interface do SourceTree que mostra o controle de versionamento do projeto

36 Banco de dadosCom o intuito de deixar o aplicativo mais completo guardando informaccedilotildees dos usuaacuterios

e dos estabelecimentos optou-se por utilizar-se um banco de dados Alguns exemplos de

20 TECNOLOGIAS UTILIZADAS 36

banco de dados aprendidos no curso Laboratoacuterio de Banco de Dados foram

∙ SQL (Structured Query Language - Linguagem de Consulta Estruturada)[20] umalinguagem para atualizar deletar e requisitar informaccedilotildees atraveacutes de consultas emtabelas que possuem relaccedilatildeo entre si

∙ noSQL[13] um banco de dados que armazena e recupera informaccedilotildees modeladas deuma forma onde natildeo satildeo usadas tabelas relacionais

Como este uacuteltimo natildeo foi o foco da disciplina por falta de tempo decidiu-se por utilizaacute-lopara que o grupo pudesse aprender melhor esse modelo

Outra decisatildeo tomada foi a hospedagem dos dados na nuvem ou seja colocaacute-los em umservidor que natildeo seja local e conseguir acessaacute-los atraveacutes de uma conexatildeo via internet Dessemodo os dados sempre estaratildeo disponiacuteveis para serem consultados

361 Firebase

Buscando-se atender as decisotildees tomadas sobre o banco de dados procuramos um serviccedilode banco de dados da Google por conter ampla integraccedilatildeo com a plataforma de desenvolvi-mento Android por ser conhecido bastante utilizado e por possuir uma ampla comunidadede desenvolvedores dispostos a oferecer auxiacutelio em foacuteruns de discussatildeo de coacutedigos

Para atender esses requisitos escolheu-se o Firebase Realtime Database[6] desenvolvido edisponibilizado pela Google que consiste em um banco de dados noSQL com armazenamentona nuvem Esse serviccedilo armazena os dados do usuaacuterio no servidor da Google em formatoJSON e a cada alteraccedilatildeo sincroniza em tempo real com todos os clientes conectados

O grupo pode observar as seguintes vantagens de se trabalhar com a ferramenta existea sincronizaccedilatildeo em tempo real dos dados de todos os clientes e sua disponibilidade mesmocom o aplicativo offline ou seja quando o aplicativo natildeo estiver conectado a internet osdados do dispositivo moacutevel seratildeo armazenados e sincronizados com o banco de dados assimque a conexatildeo estiver disponiacutevel novamente Aleacutem disso os desenvolvedores possuem acessoa um console online (figura 33) onde o JSON eacute mostrado numa interface interativa de umaforma mais amigaacutevel e no qual eacute permitido editaacute-lo facilmente

37 CROWDSOURCING 21

Figura 33 Console online do Firebase onde os dados satildeo mostrados de forma mais amigaacutevel eintuitiva

Outra observaccedilatildeo feita foi que o Firebase Realtime Database funciona como o esperadose ele guardar uma coacutepia local dos dados em um arquivo JSON no celular Poreacutem isso natildeofoi visto como um problema pois como essa coacutepia pode ser salva em um arquivo texto oespaccedilo utilizado diminui consideravelmente

Na primeira vez que os dados satildeo criados e todas as vezes em que os dados forem atua-lizados por algum dispositivo moacutevel eacute enviada uma atualizaccedilatildeo que seraacute recebida atraveacutes delisteners por todos os aparelhos que utilizam o aplicativo para que eles atualizem seus res-pectivos JSONs Listeners satildeo interfaces de comunicaccedilatildeo que executam uma seacuterie de accedilotildeesassim que um outro evento esperado acontece

37 CrowdsourcingO termo Crowdsourcing tem origem nas palavras da liacutengua inglesa Crowd (multidatildeo) e

Outsourcing (terceirizaccedilatildeo) e eacute definido pelo dicionaacuterio Merriam Webster como A praacuteticade obtenccedilatildeo de serviccedilos ideias ou conteuacutedo solicitando contribuiccedilotildees de grandes grupos depessoas e especialmente da comunidade online [3] Esta praacutetica eacute utilizada para que sejapossiacutevel agrave comunidade contribuir com dados para algum programa ou serviccedilo como no apli-cativo Waze do qual a principal fonte de dados de tracircnsito acidentes e radares eacute obtida pormeio dos proacuteprios usuaacuterios

Capiacutetulo 4

Desenvolvimento do Projeto

Este capiacutetulo aborda o processo de desenvolvimento do projeto iniciado com o preen-chimento do diagrama Canvas e uma pesquisa de mercado direcionada ao usuaacuterio A partirdas informaccedilotildees coletadas foi possiacutevel projetar um aplicativo que atendesse as necessidadesexpostas pela pesquisa e selecionar as tecnologias necessaacuterias Tambeacutem eacute abordada a aplica-ccedilatildeo dos diferentes meacutetodos de caacutelculo da previsatildeo de tempo de espera que foram estudadose explicados no Capiacutetulo 2 Por fim satildeo expostas as diferentes versotildees do aplicativo duranteo processo e seus detalhes

41 Pesquisa de MercadoAntes de iniciar-se o desenvolvimento praacutetico algumas questotildees foram levantadas se

um aplicativo com as funcionalidades escolhidas seria de alguma forma uacutetil para o usuaacuterioe se sim qual metodologia deveria ser usada para que este produto fosse entregue o maiscompleto possiacutevel ateacute o final do ano Para responder a primeira pergunta desenvolveu-seum questionaacuterio

411 Pesquisa com o usuaacuterio

O questionaacuterio foi desenvolvido para avaliar a viabilidade do aplicativo e suas funciona-lidades e foi criado utilizando-se o Google Forms [9] Essa eacute uma ferramenta desenvolvidapelo Google que possibilita a criaccedilatildeo de formulaacuterios contendo diversos formatos de pergun-tas tanto dissertativas quanto de muacuteltipla escolha

Seguindo os princiacutepios de desenvolvimento de questionaacuterios [4] o conjunto de perguntasfoi mantido curto simples e de faacutecil entendimento Tambeacutem variou-se o tipo de questotildeesentre estruturadas (questotildees com respostas em forma de alternativas) e desestruturadas(questotildees com respostas em formato texto) seguindo esses mesmos princiacutepios para captarmelhor as informaccedilotildees dos entrevistados e evitar erros de entendimento

Com as respostas do questionaacuterio tinha-se o intuito de traccedilar um possiacutevel puacuteblico alvoconhecer seu modo de uso de dispositivos moacuteveis e validar a aplicabilidade de diferentesfuncionalidades pretendidas inicialmente sendo essas engajamento do usuaacuterio atraveacutes denotificaccedilotildees do sistema aceitaccedilatildeo de sugestotildees de locais alternativos avaliaccedilatildeo da existecircnciado problema que queremos resolver (se este aplicativo supre uma necessidade real do usuaacute-rio) e aceitaccedilatildeo do aplicativo

23

24 DESENVOLVIMENTO DO PROJETO 41

Para a divulgaccedilatildeo redes sociais como Facebook [5] e sistemas de mensagem instantacircneascomo WhatsApp foram usados e o envio de respostas foi restrito ateacute trecircs semanas apoacutes suaprimeira postagem Neste periacuteodo foram obtidas 210 respostas as quais ajudaram a definiros aspectos do sistema a ser desenvolvido

O questionaacuterio foi dividido em duas subseccedilotildees perfil do usuaacuterio e funcionalidade Comelas obteve-se os seguintes resultados

41 PESQUISA DE MERCADO 25

Questatildeo 1

Figura 41 Graacutefico pizza da distribuiccedilatildeo das respostas em relaccedilatildeo a idade dos pesquisados

As faixas de idade apresentadas estatildeo desbalanceadas por natildeo terem a mesma quantidadede anos em cada uma poreacutem essa divisatildeo foi pensada levando-se em conta a fluecircncia comtecnologia que cada idade possui Com o resultado verificou-se que do puacuteblico alcanccediladocom a pesquisa a maioria estaacute na faixa de 18 a 25 anos de idade assumida como parcelacom maior conhecimento tecnoloacutegico

Questatildeo 2

Figura 42 Graacutefico pizza da distribuiccedilatildeo das respostas em relaccedilatildeo ao sistema operacional

Esta questatildeo foi pensada para medir a porcentagem de cada sistema operacional pre-sente nos celulares do puacuteblico Com ela descobriu-se que 639 das pessoas dentro desse

26 DESENVOLVIMENTO DO PROJETO 41

grupo possuem o sistema Android enquanto 234 possuem iOS e 38 Windows phoneEssa pergunta foi incluiacuteda para um melhor direcionamento do desenvolvimento do aplicativo

Uma questatildeo levantada ao aplicar esse questionaacuterio foi a dificuldade que algumas pessoasencontraram para identificar a versatildeo do proacuteprio aparelho Poreacutem para manter a consistecircnciadas respostas decidiu-se natildeo mudar nada nesta questatildeo para remediar isso

Questatildeo 3

Figura 43 Graacutefico em barras da distribuiccedilatildeo de frequecircncias mensais de cada local analisado

41 PESQUISA DE MERCADO 27

Questatildeo 4

Figura 44 Graacutefico em pizza da distribuiccedilatildeo de interesse do usuaacuterio no tempo de espera de cadalocal

A princiacutepio viu-se muitas possiacuteveis aplicaccedilotildees para a previsatildeo de tempo de espera Paraentender qual seria a prioridade do puacuteblico as questotildees acima foram incluiacutedas A primeiraverificou a frequecircncia de visitas em alguns locais e a segunda serviu para analisar qualestabelecimento despertava mais interesse nos entrevistados quanto ao quesito fila Nos doiscasos restaurantes se destacaram com o maior interesse

Questatildeo 5

Figura 45 Graacutefico em barras da distribuiccedilatildeo de interesse do usuaacuterio por cada item avaliado

Para acompanhar o dado de espera e fornecer mais informaccedilotildees relevantes ao usuaacuteriosem potencial perguntou-se quais outras informaccedilotildees eles acham interessante saber sobre umdeterminado estabelecimento Com isso descobriu-se que a faixa de preccedilo o trajeto ateacute olocal e o cardaacutepio seriam dados importantes de se obter juntamente com o tempo de espera

28 DESENVOLVIMENTO DO PROJETO 41

Questatildeo 6O que vocecirc costuma fazer para evitar filasNeste ponto testou-se se a soluccedilatildeo proposta atraveacutes do aplicativo resolveria o problema dousuaacuterio de uma forma melhor do que a soluccedilatildeo atualmente utilizada Para isso foi perguntadoo que as pessoas fazem para evitar filas e as principais respostas foram

∙ Evitar horaacuterios de pico

∙ Chegar cedo

∙ Ir em outro lugar caso uma fila seja encontrada

∙ Tentar realizar reservas antecipadamente

∙ Se distrair com livroscelular

Notou-se que as soluccedilotildees utilizadas atualmente natildeo suprem as necessidades dos entre-vistados pois mesmo em horaacuterios natildeo convencionais pode-se encontrar filas ou quandodecide-se esperar na fila muito tempo eacute perdido Concluiu-se que a soluccedilatildeo proposta a par-tir do aplicativo resolve de forma mais abrangente o problema pois ajuda o usuaacuterio a evitarhoraacuterios de pico inesperados

Questatildeo 7

Figura 46 Graacutefico em pizza da distribuiccedilatildeo do meio de transporte utilizado pelos usuaacuterios

Essa questatildeo foi formulada com o objetivo de verificar quais meios de transporte seriamincluiacutedos com previsatildeo de tempo de trajeto no aplicativo Foi verificado que a maioria dosentrevistados utilizam transporte puacuteblico seguido por carro

41 PESQUISA DE MERCADO 29

Questatildeo 8

Figura 47 Graacutefico em pizza da distribuiccedilatildeo do interesse do usuaacuterio pela informaccedilatildeo fornecida

Questatildeo 9

Figura 48 Graacutefico em pizza da distribuiccedilatildeo de quantidade de quilocircmetros que o usuaacuterio sedeslocaria para ir a um local com menos fila

Com essas questotildees foi verificado que algo importante para o usuaacuterio eacute saber de outrosestabelecimentos que possam oferecer tempos de espera menores nas redondezas de onde ousuaacuterio se encontra que eacute uma das funcionalidades que desejaacutevamos utilizar no sistema

30 DESENVOLVIMENTO DO PROJETO 41

Questatildeo 10

Figura 49 Graacutefico em barras da distribuiccedilatildeo de sentimento do usuaacuterio em relaccedilatildeo a notificaccedilatildeode aplicativos

Questatildeo 11

Figura 410 Graacutefico em pizza da distribuiccedilatildeo de opiniatildeo do usuaacuterio sobre desabilitar notificaccedilotildeesem celular

42 PESQUISA DE MERCADO 31

Questatildeo 12

Figura 411 Graacutefico em pizza da distribuiccedilatildeo de opiniatildeo do usuaacuterio sobre habilitar GPS emcelular

A ideia inicial era poder usar o GPS para verificar a localizaccedilatildeo do usuaacuterio e enviarnotificaccedilotildees quando este estivesse parado nas proximidades de algum dos estabelecimentoscadastrados Para que essa funcionalidade possa existir eacute necessaacuterio que o aplicativo tenhaacesso agrave localizaccedilatildeo precisa da pessoa atraveacutes do GPS ou internet ateacute mesmo quando natildeoestiver aberto Aleacutem disso tambeacutem eacute necessaacuterio que as notificaccedilotildees estejam habilitadas parafinalizar esta interaccedilatildeo Entatildeo as perguntas 10 11 e 12 foram incluiacutedas no questionaacuterio Ob-servando as respostas foi possiacutevel verificar que 295 das pessoas que responderam deixamambas as funcionalidades habilitadas (GPS e notificaccedilotildees) Com isso pudemos prosseguircom essa ideia e tambeacutem pensar em possiacuteveis alternativas de interaccedilatildeo e engajamento como usuaacuterio

Por conta dessa pesquisa ter sido compartilhada atraveacutes das contas das redes sociais ecomunicadores dos componentes deste grupo sabe-se que este pode apresentar um resultadoviesado mas que mesmo assim natildeo deve ser desconsiderado e que muito ajudou a sanar asduacutevidas iniciaisComo resultado traccedilamos o perfil do entrevistado

∙ Faixa etaacuteria predominante entre 18 e 30 anos

∙ Possui sistema operacional Android (versotildees 4 5 e 6)

∙ Vai a restaurantes com certa frequecircncia mensal resultando em interesses sobre infor-maccedilotildees relacionadas a esse estabelecimento

∙ Costuma chegar cedo ou evitar os horaacuterios de pico para evitar filas nos locais

∙ Carro e transporte coletivo satildeo os principais meios de transporte

∙ Se deslocaria para um estabelecimento semelhante que possui menos fila contanto queeste fique num raio de 2km de distacircncia

32 DESENVOLVIMENTO DO PROJETO 43

42 Projeto do AplicativoO grupo comeccedilou o projeto com o preenchimento do diagrama Canvas(figura 412) apre-

sentado na Seccedilatildeo 21 Desse modo foi adquirida uma ideia mais consistente e uma base paracomeccedilar a implementaccedilatildeo

Figura 412 Diagrama Canvas preenchido pelo grupo

Com o modelo de negoacutecios definido e com base no resultado da pesquisa com o usuaacuterioapresentada na seccedilatildeo seguinte foram aplicadas pequenas mudanccedilas no projeto para melhoradequar-se agraves necessidades e ao perfil do puacuteblico alvo

Para o desenvolvimento foi utilizado um meacutetodo aacutegil baseado no scrum com sprints de3 a 4 semanas devido agrave disponibilidade dos membros do grupo Os encontros natildeo eram diaacute-rios como recomendado para o meacutetodo scrum tambeacutem em razatildeo da disponibilidade Haviamstand ups (discussotildees raacutepidas no comeccedilo de cada encontro) e retrospectivas ao final de cadasprint A cada sprint eram selecionadas histoacuterias e tarefas para serem executadas e caso natildeofossem concluiacutedas ao final da iteraccedilatildeo eram inseridas ao backlog e feitas no sprint seguinte

43 Aplicaccedilatildeo dos meacutetodos de caacutelculo de espera

431 Aplicando a meacutedia por periacuteodo

Aplicando-se no trecho abaixo a teacutecnica desenvolvida na Seccedilatildeo 242 para uma queryrealizada no dia 19082016 no intervalo de 2040 - 2055 analisa-se a semana anterior quepossua tais intervalos Assim o saacutebado dia 06082016 seraacute selecionado

43 APLICACcedilAtildeO DOS MEacuteTODOS DE CAacuteLCULO DE ESPERA 33

Entrada Qtd Pessoas Notificado Espera

6816 2043 2 862016 2053 1606

6816 2044 2 862016 2055 674

6816 2048 2 862016 2056 528

6816 2048 2 862016 2057 520

6816 2051 2 862016 2107 1118

6816 2051 3 862016 2110 1305

6816 2052 2 862016 2110 1273

6816 2052 2 862016 2111 1179

6816 2053 2 862016 2112 1217

6816 2053 2 NULL 59

6816 2054 3 862016 2119 1541

6816 2055 2 862016 2117 1444

6816 2055 2 862016 2120 1570

6816 2055 2 862016 2122 1613

Tabela 41 Trecho do dia 06082016 entre os horaacuterios das 2043 agraves 2055 um intervalo de 12minutos retirado dos dados da empresa Get In

Com esses dados obteve-se a meacutedia de espera de 1080 segundos (18 minutos) a qualseria sugerida para o usuaacuterio com a busca e desvio padratildeo de 465144719 segundos (775 mi-nutos) Dentro desse intervalo tem-se como maacuteximo tempo de espera 1613 segundos (2688minutos) e como miacutenimo 59 segundos (1 minuto) Analisando-se os dados do dia 19082016no mesmo periacuteodo temos

34 DESENVOLVIMENTO DO PROJETO 43

Entrada Pessoas Notificado Espera Erro previsatildeo Erro p 2 pessoas

19816 2043 2 8192016 2051 544 -563 522

19816 2043 2 8192016 2052 605 -502 461

19816 2044 2 8192016 2056 723 -384 343

19816 2046 4 8192016 2119 1988 881 X

19816 2048 2 8192016 2102 919 188 147

19816 2051 2 8192016 2103 821 286 245

19816 2051 3 8192016 2108 1773 666 X

19816 2053 2 8192016 2110 1083 24 -17

19816 2053 2 8192016 2111 1105 2 -39

19816 2053 2 8192016 2112 1169 62 -103

19816 2055 2 8192016 2114 1447 340 -381

Tabela 42 Trecho do dia 19082016 entre os horaacuterios das 2043 agraves 2055um intervalo de 12minutos retirado dos dados da empresa Get In

Ou seja se um grupo chegasse dentro desse periacuteodo e a previsatildeo dada fosse a meacutediaobtida anteriormente o erro calculado pela diferenccedila entre o tempo sugerido e o real tempode espera estaria no intervalo de 15 minutos para menos ou 8 minutos para mais Sendoesse um valor aceitaacutevel

Um proacuteximo passo eacute a restriccedilatildeo dos registros a grupos com 2 integrantes Com tal restri-ccedilatildeo a previsatildeo de espera eacute de 1066 segundos (1776 minutos) Aplicando essa nova meacutedia aosregistros com 2 integrantes do dia 19082016 obteacutem-se um erro (Coluna 6 - erro previsatildeopara 2 pessoas) menor do que o anterior O intervalo do erro calculado neste caso seria de 522segundos (87 minutos) para mais e 381 segundos (635 minutos) para menos Este resultadoeacute ainda mais favoraacutevel mostrando que a inclusatildeo de mais filtros para o caacutelculo da previsatildeomelhorou o tempo previsto

432 Aplicando teoria das filas

A teoria das filas (Seccedilatildeo 242) eacute uma ferramenta muito completa que calcula muitos dadosuacuteteis para a previsatildeo de espera Contudo por conta da necessidade de informaccedilotildees sobreo tempo de atendimento a qual natildeo estaacute contida no banco utilizado esta teoria natildeo podeser aplicada neste caso Poreacutem esse dado pode ter um valor assumido para que a utilizaccedilatildeodessa teoria fosse possiacutevel entretanto a sua precisatildeo ficaria comprometida e imprevisiacutevel

433 Aplicando redes neurais

Para aplicar o que foi estudado na Seccedilatildeo 242 foi executado o software com o mecircs deAgosto como teste o mecircs de Setembro como treino e o limite do erro quadraacutetico como 001 eobteve-se a tabela presente no apecircndice B Na tabela podemos ver o tempo de fila esperadoou seja o tempo contido na tabela do mecircs de Setembro o tempo que o algoritmo deu comoresposta baseado no mecircs de Agosto e o erro entre eles respectivamente

44 DEFINICcedilAtildeO DA INTERFACE DO APLICATIVO 35

Figura 413 Software Multiple Back-Propagation com a configuraccedilatildeo escolhida para os dadosdisponiacuteveis

Mesmo o erro se mantendo em 0018 os dados obtidos possuem um erro padratildeo de 15minutos Se mais dados forem adicionados o criteacuterio de parada pode ser atingido e assimuma previsatildeo melhor pode ser alcanccedilada

434 Conclusatildeo sobre os meacutetodos estudados

Dentre todas as possibilidades estudadas visualizamos na meacutedia por periacuteodo a melhoropccedilatildeo assumindo os dados disponiacuteveis para teste Se mais paracircmetros fossem fornecidoscomo o tempo de atendimento a teoria das filas seria uma boa opccedilatildeo para fornecer a pre-visatildeo de espera E se mais dados estivessem disponiacuteveis as redes neurais conseguiriam umaaproximaccedilatildeo melhor e assim seria uma boa opccedilatildeo tambeacutem

44 Definiccedilatildeo da Interface do aplicativoComo um primeiro protoacutetipo foi desenvolvida uma interface simples que tinha como tela

de iniacutecio um mapa com um campo para buscas na parte superior

36 DESENVOLVIMENTO DO PROJETO 44

Figura 414 Fluxo de telas do primeiro protoacutetipo

Ao efetuar uma busca por algum estabelecimento uma tela mostrando o tempo de esperaaproximado da fila no local era exibida junto com bototildees que permitiam selecionar o meiode transporte visualizar outras opccedilotildees ou dar iniacutecio a rota ateacute o local desejado Tambeacutemhavia uma notificaccedilatildeo para quando a pessoa estivesse parada proacutexima a um restaurantecadastrado que direcionaria o usuaacuterio a uma tela com um cronocircmetro do tempo de esperana fila

Para testar essa visualizaccedilatildeo escolhemos algumas pessoas e realizamos um teste deusabilidade[22] este teste eacute feito da seguinte forma

44 DEFINICcedilAtildeO DA INTERFACE DO APLICATIVO 37

Uma contextualizaccedilatildeo eacute feita para o voluntaacuterio e entatildeo uma tarefa eacute passada para sercompletada Os integrantes do grupo observam dificuldades enfrentadas pelo entrevistado etomam notas Esse teste eacute repetido algumas vezes e seu resultado eacute coletado para avaliaccedilatildeoe modificaccedilatildeo das funcionalidades

Figura 415 Tela de detalhes de um restaurante(segunda versatildeo)

Notou-se que algumas funcionalidadespareceram confusas e natildeo intuitivas porexemplo natildeo ficou claro se o tempo mos-trado era de trajeto ou de espera na filanem qual era o meio de transporte utili-zado

Logo esse protoacutetipo foi reformuladocom o intuito de melhorar a experi-ecircncia do usuaacuterio com o nosso aplica-tivo

Foram colocados aleacutem do tempo deespera da fila o tempo que o usuaacuteriolevaria para chegar ateacute o local selecio-nado (conforme o tipo de transporte es-colhido) e a quantidade estimada de pes-soas na fila O tempo total (espera so-mado ao tempo de deslocamento) ga-nhou destaque entre as informaccedilotildees doestabelecimento e o botatildeo que direcionao usuaacuterio ao trajeto ficou mais especiacute-fico

Tambeacutem cogitou-se a possibilidade deadicionar login e um perfil de usuaacuteriojunto com uma lista de restaurantes favo-ritos

O fluxo das telas deste novo protoacutetipo ficou como mostra o esquema a seguir

38 DESENVOLVIMENTO DO PROJETO 44

Figura 416 Fluxo de telas do segundo protoacutetipo

44 DEFINICcedilAtildeO DA INTERFACE DO APLICATIVO 39

Figura 417 Tela de detalhes de um restaurante(terceira versatildeo)

Apoacutes outras avaliaccedilotildees mais algumaspequenas alteraccedilotildees foram realizadas nainterface Foi decidido que seria inviaacute-vel estimar o nuacutemero de pessoas nafila entatildeo essa funcionalidade foi remo-vida

Notificaccedilotildees foram adicionadas paraquando o usuaacuterio estiver parado na aacutereado restaurante para que ele possa con-tribuir com informaccedilotildees sobre a fila quepegou aleacutem de um botatildeo de contri-buiccedilatildeo ter sido inserido na tela ini-cial

40 DESENVOLVIMENTO DO PROJETO 45

O fluxo de telas do aplicativo atual ficou da seguinte forma

Figura 418 Fluxo de telas do terceiro protoacutetipo

46 EXPLICACcedilAtildeO DAS FUNCIONALIDADES 41

45 Explicaccedilatildeo das funcionalidadesEsta seccedilatildeo explica as funcionalidades do produto utilizando a figura 418

A tela inicial (3) exibe uma lista de restaurantes incluindo seus respectivos tempos detrajeto e tempo de espera na fila Ao clicar no botatildeo ldquo+rdquo uma caixa de diaacutelogo eacute aberta(4) onde eacute possiacutevel adicionar o tempo que o usuaacuterio esperou na fila Primeiro eacute escolhido orestaurante depois a data e hora que a pessoa chegou na fila e por fim o tempo de esperaem minutos Ao tocar em ldquoEnviar Feedback rdquo os dados satildeo incluiacutedos no banco de dados eatualizados para os outros usuaacuterios Assim eacute apicado o conceito de Crowdsourcing no apli-cativo

Ao tocar em um item da lista de restaurantes seraacute aberta a tela de detalhes de um res-taurante (5) na qual eacute possiacutevel ver com mais clareza os tempos de trajeto e espera o tempototal o endereccedilo do estabelecimento e um pequeno mapa centrado no local Pressionandoo botatildeo ldquoDireccedilotildeesrdquo o usuaacuterio seraacute redirecionado ao aplicativo de mapas de sua preferecircnciano caso do exemplo (8) o Google Maps jaacute traccedilando a rota da localizaccedilatildeo do usuaacuterio para oestabelecimento em questatildeo

Novamente na tela inicial tocando no iacutecone de lupa eacute possiacutevel realizar uma busca digi-tando o nome do estabelecimento na caixa de texto a qual exibe sugestotildees dependendo doque foi digitado Ao clicar em um dos resultados da busca o usuaacuterio eacute novamente direcionadopara a tela de detalhes do restaurante (5)

Tambeacutem eacute possiacutevel tocar no iacutecone de mapa na tela inicial onde seraacute mostrado um mapacentrado na localizaccedilatildeo do usuaacuterio

Ao ficar parado por um tempo em um mesmo local proacuteximo a um estabelecimentocadastrado o usuaacuterio eacute perguntado em uma notificaccedilatildeo quanto tempo ele permaneceu nafila Ao tocar na notificaccedilatildeo a caixa de diaacutelogo para feedback do usuaacuterio seraacute aberta (4) jaacutecom o restaurante preenchido e apoacutes o feedback a janela seraacute fechada e os dados enviadosao banco de dados

46 Implementaccedilatildeo do banco de dadosO banco de dados do aplicativo foi modelado e populado em forma de aacutervore (Fi-

gura 419) de forma a facilitar o acesso aos dados necessaacuterios ao aplicativo No primeironiacutevel estatildeo os ids dos restaurantes Cada id de restaurante guarda a localizaccedilatildeo (latitudelongitude) do restaurante o nome o endereccedilo e um objeto fila O objeto fila guarda todos osdias da semana (domingo a saacutebado) e cada dia da semana possui 24 campos um para cadahora do dia Cada hora possui o tempo meacutedio de espera da fila naquela hora e um peso paraesse tempo O peso eacute um valor que aumenta de acordo com o nuacutemero de feedbacks dadospara que o novo valor do tempo meacutedio seja calculado de forma consistente

Modelamos o banco de dados de uma forma que respeitasse uma hierarquia de dados

42 DESENVOLVIMENTO DO PROJETO 46

Figura 419 Aacutervore que ilustra a organizaccedilatildeo de um restaurante no banco de dados

Com o banco de dados jaacute populado o aplicativo faz consultas e atualizaccedilotildees de dadosConsultas satildeo feitas ao criar a tela de listagem de restaurantes e de detalhes de um restau-rante consultado As atualizaccedilotildees satildeo feitas quando o usuaacuterio manda o feedback de tempo deespera em um estabelecimento em determinado horaacuterio o aplicativo calcula a nova meacutedia eatualiza o campo do respectivo horaacuterio

Capiacutetulo 5

Conclusatildeo

Ao longo dos capiacutetulos deste trabalho pocircde-se acompanhar todo o processo de criaccedilatildeo edesenvolvimento do aplicativo que apoacutes finalizado foi batizado com o nome Queue

Comeccedilando com um problema para o qual o grupo almejava oferecer uma soluccedilatildeoacabou-se por adentrar-se um pouco no campo da Estatiacutestica e estudar diversas metodo-logias que poderiam ser uacuteteis para fornecer um caacutelculo de previsatildeo de espera meacutedia porperiacuteodo aplicaccedilatildeo da teoria das filas e utilizaccedilatildeo de redes neurais

Atraveacutes de uma parceria com a empresa GetIn obteve-se acesso a uma grande quantidadede dados e foi possiacutevel utilizaacute-los em anaacutelises feitas nas metodologias escolhidas conseguindoassim resultados relevantes Por meio destes foi feita a escolha de um dos meacutetodos para ocaacutelculo da previsatildeo de filas a meacutedia por periacuteodo

Aleacutem desses estudos ao longo do ano o grupo aprendeu a desenvolver para a plata-forma Android sobre a qual nenhum dos integrantes tinha conhecimento preacutevio Tambeacutemfoi possiacutevel aprender e utilizar a metodologia aacutegil com Scrum para guiar o processo de de-senvolvimento

Ao fim do ciclo de desenvolvimento conseguiu-se entregar um aplicativo em funciona-mento que fornece a previsatildeo de espera no instante da consulta de estabelecimentos cadas-trados no banco de dados armazenado na nuvem

Na versatildeo atual do aplicativo natildeo foi implementado um sistema para o cadastro de novosestabelecimentos Isso soacute eacute possiacutevel atraveacutes da inserccedilatildeo direta no banco de dados atraveacutes dainterface fornecida pelo console do Firebase Atualmente estatildeo cadastrados 5 restaurantesos quais foram visitados durante o desenvolvimento do projeto Para que o cadastro deestabelecimentos escale seria necessaacuterio a implementaccedilatildeo de uma funcionalidade que permitaao usuaacuterio adicionar novos estabelecimentos a partir de locais disponiacuteveis na API de locaisda Google

43

45

46 APEcircNDICE A

Apecircndice A

Dados coletados

Figura A1 Dados de tempo de espera para grupos de tamanhos variados para cada horaacuterio e emcada dia da semana obtidos em entrevista em restaurantes Outback Steakhouse Shopping Uniatildeo nomecircs de outubro

Referecircncias Bibliograacuteficas

[1] Backpropagation httpmbpsourceforgenet Accesso em Janeiro 2017 14

[2] Bitbucket httpsbitbucketorgproduct Accesso em Dezembro 2016 19

[3] Crowdsourcing httpswwwmerriam-webstercomdictionarycrowdsourcing Ac-cesso em Novembro 2016 21

[4] Designing a survey httpwwwsciencebuddiesorgscience-fair-projectsproject_ideasSoc_surveyshtml Accesso em Outubro 2016 4 23

[5] Facebook httpswwwfacebookcom Accesso em Novembro 2016 24

[6] Firebase httpsfirebasegooglecom Accesso em Agosto 2016 20

[7] Getin app httpswwwgetinappcombrhomesao-paulo Accesso em Novembro2016 9

[8] Git 11 primeiros passos - sobre controle de versatildeo httpsgit-scmcombookpt-brv1Primeiros-passos-Sobre-Controle-de-Vers Accesso em Novembro 2016 19

[9] Google forms httpsdocsgooglecomforms Accesso em Novembro 2016 23

[10] Guia definitivo do project model canvas Project Builder 3

[11] Jsonorg introducing json httpwwwjsonorg Accesso em Novembro 2016 17

[12] Manifesto para desenvolvimento Aacutegil de software httpagilemanifestoorgisoptbrmanifestohtml Accesso em Novembro 2016 5

[13] Nosql httpsenwikipediaorgwikiNoSQL Accesso em Novembro 2016 20

[14] Outback steakhouse httpswwwoutbackcombrhome Accesso em Novembro 20169

[15] Restful api development with lumen microframework httpsbelitsoftcomlaravel-development-servicesapi-development Accesso em Novembro 2016 17

[16] Scrum httpswwwatlassiancomagilescrum Accesso em Novembro 2016 5

[17] Smartphone os market share 2016 q2 httpwwwidccomprodservsmartphone-os-market-sharejsp Accesso em Novembro 2016 15

[18] Smartphone os sales market share kantar worldpanel comtech httpwwwkantarworldpanelcomsmartphone-os-market-share Accesso em Novembro 2016 15

[19] Sourcetree httpswwwsourcetreeappcom Accesso em Dezembro 2016 19

47

48 REFEREcircNCIAS BIBLIOGRAacuteFICAS

[20] Sql httpsptkhanacademyorgcomputingcomputer-programmingsql Accesso emDezembro 2016 20

[21] Trello httpstrellocom Accesso em Novembro 2016 6

[22] Usability test httpsenwikipediaorgwikiUsability_testing Accesso em Novembro2016 36

[23] Versionone 2012 agile dev survey httpswwwversiononecompdf7th-Annual-State-of-Agile-Development-Surveypdf Accesso em Novembro 2016 5

[24] Waze httpswwwwazecom Accesso em Novembro 2016 1

[25] What is an open source httpsopensourcecomresourceswhat-open-source Accessoem Novembro 2016 15

[26] Xml tutorial httpwwww3schoolscomxml Accesso em Novembro 2016 17

[27] Paulo F Cabral dos Anjos Jr Aron Ifanger Maciel Christopher Silva de Paacutedua Com-posiccedilatildeo de carteiras de accedilotildees utilizando modelo de redes neurais artificiais e modelo derisco e retorno de Markowitz 2012 14

[28] Google Distance matrix api documentation httpsdevelopersgooglecommapsdocumentationdistance-matrix Accesso em Novembro 2016 17

[29] Alan Klement Designing features using job stories httpsblogintercomcomusing-job-stories-design-features-ui-ux Accesso em Novembro 2016 6

[30] Azmat Nafees Queuing theory and its application analysis of the sales checkout opera-tion in ica supermarket httpwwwstatisticsduseessaysD07ENafeespdf Accessoem Novembro 2016 12

[31] Eric Ries A Startup Enxuta Lua de papel primeira ediccedilatildeo edition 2012 3

  • Introduccedilatildeo
    • Motivaccedilatildeo
    • Trabalho Proposto
    • Estrutura da monografia
      • Estudos Preliminares
        • Desenvolvimento de Startups
          • Desenvolvimento de Questionaacuterios
            • Metodologia Aacutegil
            • Jobs to be done
            • Caacutelculo da previsatildeo do tempo de espera na fila
              • Descriccedilatildeo do problema
              • Meacutetodos de caacutelculo da espera
                  • Tecnologias utilizadas
                    • O sistema Android
                      • Organizaccedilatildeo de uma aplicaccedilatildeo Android
                        • JSON
                        • Google APIs
                        • Localizaccedilatildeo do Usuaacuterio
                        • Controle de Versatildeo
                        • Banco de dados
                          • Firebase
                            • Crowdsourcing
                              • Desenvolvimento do Projeto
                                • Pesquisa de Mercado
                                  • Pesquisa com o usuaacuterio
                                    • Projeto do Aplicativo
                                    • Aplicaccedilatildeo dos meacutetodos de caacutelculo de espera
                                      • Aplicando a meacutedia por periacuteodo
                                      • Aplicando teoria das filas
                                      • Aplicando redes neurais
                                      • Conclusatildeo sobre os meacutetodos estudados
                                        • Definiccedilatildeo da Interface do aplicativo
                                        • Explicaccedilatildeo das funcionalidades
                                        • Implementaccedilatildeo do banco de dados
                                          • Conclusatildeo
                                          • Dados coletados
                                          • Referecircncias Bibliograacuteficas

viii SUMAacuteRIO

433 Aplicando redes neurais 34434 Conclusatildeo sobre os meacutetodos estudados 35

44 Definiccedilatildeo da Interface do aplicativo 3545 Explicaccedilatildeo das funcionalidades 4146 Implementaccedilatildeo do banco de dados 41

5 Conclusatildeo 43

A Dados coletados 45

Referecircncias Bibliograacuteficas 47

Capiacutetulo 1

Introduccedilatildeo

Este capiacutetulo introduz o problema abordado a soluccedilatildeo proposta os objetivos do projetoe apresenta a estrutura da monografia

11 MotivaccedilatildeoEnfrentamos filas para realizar diversas atividades ao longo do dia Nosso tempo eacute gasto

esperando desde alguns minutos para pedir o almoccedilo ateacute horas para assistir um determinadoshow Ao todo muitas horas de nossas vidas satildeo desperdiccediladas nessas esperas

Muitas vezes somos surpreendidos por filas interminaacuteveis ou entatildeo pela ausecircncia delascriando a impressatildeo de que estas satildeo totalmente imprevisiacuteveis Isso acaba gerando a difi-culdade de programar com precisatildeo outras atividades pois natildeo sabemos ao certo quantotempo iremos gastar em esperas ao longo do dia Deixamos muitos deveres ou ateacute mesmomomentos de lazer de lado por causa disso e se tiveacutessemos como prever esse tempo gastopoderiacuteamos otimizar nosso dia

Esse e outros problemas podem ser minimizados agrave medida que o acesso agrave informaccedilatildeoseja histoacuterica ou em tempo real eacute facilitado Uma forma de fornecer essa informaccedilatildeo aousuaacuterio eacute atraveacutes da tecnologia Um exemplo disso eacute o aplicativo de navegaccedilatildeo Waze [24]que disponibiliza dados do tracircnsito em tempo real ajudando na locomoccedilatildeo diaacuteria Isso eacutepossiacutevel graccedilas aos avanccedilos tecnoloacutegicos e a maior acessibilidade aos dispositivos moacuteveisconectados agrave internet por exemplo

12 Trabalho PropostoAo vislumbrarmos esse problema tanto na vida dos outros como nas nossas e motivados

a utilizar nossos conhecimentos adquiridos ao longo do curso de Ciecircncia da Computaccedilatildeodecidimos desenvolver um aplicativo para diminuir esse desconforto causado pelas filas Essasoluccedilatildeo eacute um sistema

∙ desenvolvido na plataforma Android

∙ baseado em uma modelagem de sistema de filas

que tem como objetivo prever o tempo de espera dos usuaacuterios em filas e assim auxiliaacute-losnas suas decisotildees

1

2 INTRODUCcedilAtildeO 13

Para desenvolver uma soluccedilatildeo para o problema e dada a limitaccedilatildeo de tempo para o de-senvolvimento decidimos implementar a soluccedilatildeo apenas para as filas de restaurantes Estaescolha foi feita por serem locais muito frequentados e assim gerarem mais dados em menostempo e pela diversidade de tamanho das esperas gerando o interesse no estudo de suamodelagem

Implementou-se um aplicativo no qual o usuaacuterio pode fazer uma consulta sobre os res-taurantes cadastrados no banco de dados e ter acesso ao tempo de deslocamento somado aotempo de espera ateacute seu atendimento no estabelecimento Aleacutem disso ele tem a possibilidadede traccedilar uma rota ateacute o local e enviar um feedback sobre quanto tempo foi gasto na filapara aprimorar o calculo do tempo de espera

13 Estrutura da monografiaPara que fosse possiacutevel o desenvolvimento de um aplicativo para previsatildeo de tempo de es-

pera foi necessaacuterio estudar o processo de criaccedilatildeo de startups um processo de desenvolvimentode software tecnologias para programaccedilatildeo em Android bem como algumas modelagens es-tatiacutesticas de previsatildeo de tempo de espera A monografia foi estruturada de acordo comessas informaccedilotildees de modo que o leitor possa ter uma leitura progressiva dividida em trecircsprincipais partes

∙ Estudos preliminares Essa seccedilatildeo apresenta estudos sobre o que eacute necessaacuterio para odesenvolvimento de Startups a definiccedilatildeo da metodologia de desenvolvimento utilizadapelo grupo e o estudo da aplicaccedilatildeo de trecircs diferentes modelagens estatiacutesticas feitaspara analisar os dados iniciais fornecendo um modo de calcular o tempo de espera emum restaurante em um dado instante

∙ Tecnologias utilizadas Onde satildeo apresentadas as tecnologias e ferramentas utiliza-das para auxiliar no desenvolvimento do aplicativo

∙ Desenvolvimento do projeto Essa parte apresenta a aplicaccedilatildeo dos meacutetodos decaacutelculo de espera vistos na seccedilatildeo anterior e o processo de desenvolvimento do aplicativoem si

Capiacutetulo 2

Estudos Preliminares

21 Desenvolvimento de StartupsO desenvolvimento do projeto foi baseado nos meacutetodos utilizados em Startups O grupo

seguiu os princiacutepios da Startup Enxuta [31] no qual um produto miacutenimo deve ser criado eentatildeo incrementado atraveacutes do estudo das necessidades do usuaacuterio A partir de uma pesquisacom o puacuteblico alvo a ideia inicial eacute lapidada e um produto com o miacutenimo de funcionalidadespossiacutevel eacute desenvolvido para entatildeo retornar aos usuaacuterios que iratildeo validaacute-lo Este processo eacuterepetido ateacute que um produto final seja completamente desenvolvido independente da ideiaque se tinha no iniacutecio O processo tem como foco economizar recursos e suprir a necessidadedo usuaacuterio de forma raacutepida e eficiente

De acordo com o livro A Startup Enxuta[31] esta metodologia prioriza o desenvolvi-mento iterativo com a participaccedilatildeo do cliente a cada etapa ao inveacutes de procuraacute-lo somentena entrega do produto final Nessa metodologia temos alguns princiacutepios que guiam o desen-volvimento de projetos

1 Mapeamento do negoacutecio atraveacutes do diagrama conhecido como ldquocanvas do modelo denegoacuteciosrdquo que nos mostra resumidamente uma visatildeo geral do projeto

2 Pesquisas feitas com os usuaacuterios no mercado para saber suas opiniotildees sobre o negoacutecioe posteriores mudanccedilas ou ajustes no projeto com base nos resultados

3 Desenvolvimento do produto utilizando algum meacutetodo aacutegil

Inicialmente deve-se traccedilar os primeiros objetivos do projeto utilizando o diagrama Can-vas [10] (figura 21) Esse diagrama eacute utilizado para auxiliar empresas a ter uma visatildeo macrodo projeto fornecendo uma forma de visualizar suas dependecircncias e permitindo planejartraccedilar e gerenciar um plano de desenvolvimento Ele possui perguntas que devem ser res-pondidas em seus quadros e no decorrer desse processo o projeto vai sendo adaptado deacordo com as limitaccedilotildees impedimentos e novas ideias que vatildeo surgindo

3

4 ESTUDOS PRELIMINARES 21

Figura 21 Modelo do Diagrama Canvas

Com o modelo de negoacutecios definido o proacuteximo passo eacute a realizaccedilatildeo de uma pesquisa como puacuteblico para validaacute-lo Essa fase do desenvolvimento pode ser refeita quantas vezes foremnecessaacuterias reescrevendo o Canvas conforme a interpretaccedilatildeo da necessidade do usuaacuterio

211 Desenvolvimento de Questionaacuterios

De acordo com o manual Designing a Survey [4] um questionaacuterio eacute criado para obterinformaccedilotildees para conduzir o desenvolvimento de um projeto de acordo com as preferecircnciasdo puacuteblico alvo Ele deve ser curto e conciso e deve capturar somente informaccedilotildees que sejamrelevantes para a pesquisa

Os passos para o desenvolvimento de um bom questionaacuterio satildeo

∙ Definir os dados necessaacuterios

∙ Desenvolver as questotildees

∙ Remover qualquer questatildeo que natildeo captura os dados definidos previamente

As questotildees podem ser moldadas de trecircs maneiras

∙ Estruturadas Questotildees que possuem resposta fixa Exemplo

Vocecirc usa transporte puacuteblico

( )Sim

( )Natildeo

22 METODOLOGIA AacuteGIL 5

∙ Natildeo Estruturadas Questotildees de resposta aberta Exemplo

O que vocecirc costuma fazer para evitar filas

∙ Parcialmente Estruturadas Questotildees mistas Exemplo

Qual meio de transporte vocecirc usa

( )Carro

( )Moto

( )Outros______

22 Metodologia AacutegilA metodologia aacutegil tem sido adotada pelas empresas hoje em dia por conta dos melhores

resultados obtidos em relaccedilatildeo agraves metodologias tradicionais[23] Essa eacute caracterizada pelavalorizaccedilatildeo de

∙ ldquoIndiviacuteduos e interaccedilotildees mais que processos e ferramentasrdquo

∙ ldquoSoftware em funcionamento mais que documentaccedilatildeo abrangenterdquo

∙ ldquoColaboraccedilatildeo com o cliente mais que negociaccedilatildeo de contratosrdquo

∙ ldquoResponder a mudanccedilas mais que seguir um planordquo [12]

Eacute uma metodologia que envolve trabalho em equipe encontros regulares com o clientedesenvolvimento iterativo e com menos foco em planejamento estrito e ideias definitivasdiferente de metodologias mais tradicionais que satildeo mais focadas em projetos bem docu-mentados com pouca possibilidade de mudanccedila ao final do processo Decidiu-se por utilizara metodologia aacutegil neste projeto pois natildeo haviam ideias completamente definidas inicial-mente e para o grupo a opiniatildeo do puacuteblico alvo sobre o produto era fundamental em cadaiteraccedilatildeo do processo podendo haver mudanccedilas inesperadas dependendo do feedback recebido

Dentre as opccedilotildees de metodologias aacutegeis O meacutetodo Scrum[16] eacute um que eacute definido comoum gerenciador e um processo de controle que foca em construir um software que conheceas necessidades do negoacutecio devolvendo incrementalmente um software

Com o Scrum o software eacute desenvolvido em iteraccedilotildees de tamanho fixo chamadas deSprints que tem duraccedilatildeo de tipicamente duas a quatro semanas Em cada Sprint um nuacutemerofixo de histoacuterias (que se traduzem em tarefas) satildeo selecionadas pelo grupo para seremutilizadas na sprint(figura 22) Haacute tambeacutem um sistema de motivaccedilatildeo para o time como osMilestones que satildeo objetivos menores distribuiacutedos por toda a sprint ajudando na mediccedilatildeode desemprenho da equipe e graacuteficos Burndown que mostram o progresso de cada iteraccedilatildeopara que o time sinta o progresso no desenvolvimento

6 ESTUDOS PRELIMINARES 23

Figura 22 Dinacircmica do Scrum

Para controle das iteraccedilotildees foi utilizado o software Trello [21] que eacute um gerenciador detarefas de projeto (figura 23)

Figura 23 Interface do Trello - durante o processo de desenvolvimento

23 Jobs to be donePara implementar o aplicativo buscou-se uma metodologia para guiar esse processo desde

sua criaccedilatildeo ateacute sua validaccedilatildeo Duas metodologias conhecidas pelo grupo foram analisadas eestudadas Jobs To Be Done e Personas and Use Cases

Segundo Alan Klement[29] Personas satildeo clientes imaginaacuterios descritos pela idade sexoraccedila e haacutebitos semanais O uso delas natildeo eacute adequado para responder perguntas como ldquoPorqueo cliente quer saber o tamanho da filardquo pois quando a resposta eacute ldquoEle estaacute com pressa paracomerrdquo natildeo fica claro quais satildeo as reais necessidades do usuaacuterio Essa descriccedilatildeo tambeacutem natildeoeacute uacutetil no desenvolvimento de uma boa interface pois natildeo ajuda na hora de responder se umcerto botatildeo realmente deixa claro sua funcionalidade

23 JOBS TO BE DONE 7

Tambeacutem segundo Alan Klement Use Cases possuem 3 grandes problemas usam perso-nas casam implementaccedilotildees motivaccedilotildees e resultado e ignoram contexto situaccedilotildees e ansie-dades

Se uma funcionalidade definida por uma Use Case falhar seraacute difiacutecil identificar o pro-blema pois por casar informaccedilotildees diferentes surgiraacute a dificuldade de saber o que estaacute erradoa implementaccedilatildeo as suposiccedilotildees sobre as motivaccedilotildees ou os resultados

Observando-se esses fatos optou-se pelo uso da metodologia Jobs to Be Done pois haacuteuma mudanccedila na forma de fazer histoacuterias a fim de evitar os problemas observados em Per-sonas e Use Cases(Figura 24) Nesse modelo as Personas satildeo pessoas reais e as histoacuterias satildeoescritas com a seguinte divisatildeo situaccedilatildeo motivaccedilatildeo e resultados esperados

Nessa metodologia criamos histoacuterias descrevendo tarefas para que os usuaacuterios se colo-quem na situaccedilatildeo descrita Observando-os eacute possiacutevel saber se a tarefa foi realizada de formabem sucedida e caso contraacuterio identificar onde e o que estaacute causando a falha no instanteda realizaccedilatildeo dela

Figura 24 Diferenccedila entre estruturas de histoacuterias

8 ESTUDOS PRELIMINARES 24

Algumas das histoacuterias criadas para os testes de interface do grupo foram

∙ Quando eu estiver na tela de lista de restaurantes eu quero acessar a tela de detalhesdo restaurante que eu desejo saber o tempo de espera entatildeo eu posso ver com clarezaas informaccedilotildees e posso traccedilar uma rota para o estabelecimento

∙ Quando eu estiver na tela principal eu quero enviar meu feedback sobre o tempo deespera no estabelecimento que estou entatildeo eu posso ajudar outros usuaacuterios por meiodo aplicativo

24 Caacutelculo da previsatildeo do tempo de espera na filaAtraveacutes de pesquisas em busca de meacutetodos estatiacutesticos para se estudar o comportamento

das filas foram encontradas as trecircs metodologias descritas nesta seccedilatildeo Este capiacutetulo conteacutema explicitaccedilatildeo do problema estudado e suas possiacuteveis soluccedilotildees

241 Descriccedilatildeo do problema

Para que se chegasse a uma soluccedilatildeo apropriada o problema de espera em fila precisouser estudado Esse problema pode ser descrito da seguinte forma dado um restaurante aentrada nesse eacute atraveacutes de uma fila Essa fila tem seu tamanho redefinido agrave medida quenovos clientes chegam e saem dela A saiacuteda dos clientes pode ser devido a desistecircncia ou aacomodaccedilatildeo deles nas mesas A entrada eacute definida pela disponibilizaccedilatildeo de lugares livres agravemedida em que os grupos que estavam alocados terminam seu atendimento

Figura 25 Esquema simplificado do funcionamento do processo em um restaurante

A fila de espera eacute influenciada por dois fatores a taxa de chegada do cliente e a taxa deatendimento nas mesas

∙ chegada em restaurantes a chegada de clientes eacute definida por uma taxa O clienteneste caso representa um grupo com tamanho variaacutevel A distribuiccedilatildeo do tamanho dogrupo nas chegadas eacute variaacutevel

∙ O atendimento a alocaccedilatildeo do grupo eacute organizada pela recepccedilatildeo O meacutetodo utilizadopor eles natildeo eacute padronizado e muitas vezes eacute completamente subjetivo Por exemplose acontecer de um grupo grande e vaacuterios casais chegarem ao mesmo tempo e nesse

24 CAacuteLCULO DA PREVISAtildeO DO TEMPO DE ESPERA NA FILA 9

momento existir um espaccedilo no salatildeo que acomode o grupo (juntando as mesas) outodos os casais (com as mesas separadas) dependendo de quem estaacute responsaacutevel poralocaacute-los cada um receberaacute uma prioridade diferente e essa decisatildeo natildeo eacute padronizada

∙ A disposiccedilatildeo das mesas a disposiccedilatildeo e quantidade de mesas natildeo satildeo padronizadasentre restaurantes de uma mesma rede muito menos entre restaurantes diferentesAleacutem disso a formataccedilatildeo do salatildeo pode ser remodelada de acordo com a necessidadede alocaccedilatildeo dos clientes haacute gerentes que evitam essa movimentaccedilatildeo ou ateacute mesmorestaurantes que natildeo tecircm essa possibilidade

242 Meacutetodos de caacutelculo da espera

Com o problema desenhado desta maneira esboccedilou-se trecircs possiacuteveis meacutetodos de resoluccedilatildeoe um desses foi aplicado na soluccedilatildeo final Os meacutetodos desenvolvidos satildeo meacutedia por periacuteodoaplicaccedilatildeo da teoria das filas e utilizaccedilatildeo de redes neurais Essas teacutecnicas precisam de dadospara serem desenvolvidas e aplicadas Por conta disso buscou-se fontes que suprissem essanecessidade

Captaccedilatildeo dos dados para a anaacutelise

Para que seja possiacutevel aplicar os meacutetodos estudados eacute necessaacuterio obter dados para aplicarna anaacutelise Estes foram obtidos de duas formas a partir de uma parceria com a empresa GetIn [7] desenvolvedora de um aplicativo de gerenciamento de filas de restaurantes e atraveacutesde pesquisas presenciais em restaurantes da rede Outback Steakhouse[14] selecionados para oestudo(Apecircndice A) O aplicativo da Get In possui uma funcionalidade principal realizaccedilatildeode uma reserva em um determinado restaurante O banco de dados manteacutem o registro detodos os usuaacuterios que entram na fila e esses dados satildeo organizados em uma tabela com osseguintes campos

∙ Origem Se a reserva foi realizada de forma remota ou presencial Assim

1 Reserva presencial (na entrada do restaurante incluiacuteda pela recepcionista)

2 Reserva remota (realizada atraveacutes do aplicativo)

∙ Entrada este consiste na data e hora que o usuaacuterio entrou na fila

∙ Qtd Pessoas tamanho do grupo para o qual a reserva foi feita

∙ Prioritaacuterio se este grupo requer atendimento prioritaacuterio

0 Natildeo

1 Sim

∙ Notificado A data e horaacuterio em que o grupo foi notificado que sua mesa estava pronta

ndash Quando NULL a recepcionista natildeo notificou essa pessoa (possivelmente chamoudiretamente pelo nome)

∙ Tempo na Espera Tempo que o grupo ficou ativo na fila de espera (em segundos)

∙ Status Qual a situaccedilatildeo da reserva do grupo Podendo assumir tais valores

0 Cancelado pela recepcionista

10 ESTUDOS PRELIMINARES 24

2 Sentado

3 Cancelado pelo proacuteprio Usuaacuterio

Para melhor entender estes paracircmetros o funcionamento do aplicativo deve ser expli-cado com maior detalhamento O processo de reserva funciona da seguinte forma o usuaacuterioreserva seu lugar atraveacutes do aplicativo ou vai ao restaurante e a recepcionista o adiciona agraveespera No primeiro caso o usuaacuterio tem um tempo de toleracircncia para chegar ao estabeleci-mento apoacutes receber a notificaccedilatildeo caso natildeo consiga chegar a tempo a reserva eacute cancelada Nosegundo caso quando o grupo a ser chamado estaacute proacuteximo da recepccedilatildeo a funcionalidade denotificaccedilatildeo natildeo precisa ser usada o responsaacutevel pode se direcionar diretamente aos clientes echamaacute-los pelo nome Mesmo nesse segundo caso o tempo de espera na fila ainda eacute guardadopois a recepccedilatildeo precisa ldquofecharrdquo a espera do grupo para chamar o proacuteximo

Poreacutem a utilizaccedilatildeo desses dados natildeo foi liberada pela empresa Get In para serem usadoscomo banco de dados do aplicativo somente foram fornecidos dados do mecircs de agosto esetembro de 2016 para que fossem utilizados nas anaacutelises feitas com os modelos estatiacutesticosPara obter dados que poderiam ser utilizados no banco de dados do aplicativo foi neces-saacuterio uma pesquisa presencial onde o grupo visitou alguns restaurantes da rede OutbackSteakhouse para obter informaccedilotildees sobre o tempo de espera nestes estabelecimentos

Foram visitados 5 restaurantes Outback Steakhouse Shopping Eldorado Outback Ste-akhouse Shopping Villa Lobos Outback Steakhouse Shopping Granja Vianna Outback Ste-akhouse Shopping Uniatildeo de Osasco e Outback Steakhouse Shopping Market Place ondequestionamos sobre o tempo de espera por tamanho de grupos (em nuacutemero de pessoas) epor horaacuterio e dia da semana

Ao analisar os dados coletados pela pesquisa presencial notamos que estes estavam sus-cetiacuteveis a erros por terem sido obtidos por meio de diferentes observaccedilotildees humanas Ummeacutetodo para obter dados mais precisos consistiria na realizaccedilatildeo de novas pesquisas no for-mato mediccedilatildeo onde cada integrante do grupo deveria coletar o tempo de espera de cadacliente atraveacutes de um cronocircmetro e calcular o tempo de espera meacutedio nesse horaacuterio Comoo grupo natildeo conseguiria aplicar este meacutetodo optou-se por melhorar a precisatildeo dos dadoscoletados usando como base o graacutefico de horaacuterios de pico disponibilizado pela Google paracada restaurante Essa melhora foi feita utilizando-se caacutelculos de proporccedilatildeo de valores

24 CAacuteLCULO DA PREVISAtildeO DO TEMPO DE ESPERA NA FILA 11

Primeiro meacutetodo Meacutedia por periacuteodo

Figura 26 Esquema do meacutetodo meacutedia por periacuteodo

Para que uma previsatildeo de espera possa ser fornecida ao usuaacuterio essa deve basear-seobrigatoriamente em alguma informaccedilatildeo preacutevia Contudo encontrar uma fonte para taisdados se mostrou uma tarefa muito complicada Para conseguir ainda assim apresentar umtempo de espera em fila meacutetodos de anaacutelise foram definidos de acordo com a quantidade dedados disponiacutevel para cada estabelecimento

De um modo geral neste modelo o caacutelculo do tempo de espera funcionaraacute da seguinteforma calcular-se-aacute a meacutedia de espera para o dia da semana e horaacuterio requeridos pelousuaacuterio sem diferenciar feriados de dias normais Dependendo de quatildeo longo eacute o histoacutericoniacuteveis de especificidade podem ser adicionados ou seja numa busca tempo de espera em 9de Dezembro (segunda-feira) agraves 19h no restaurante X a query selecionaraacute todos os registrosfeitos no dia 9 de dezembro entre as 19h e agraves 20h dos uacuteltimos anos no restaurante X e realizaraacuteessa meacutedia ou pode selecionar apenas linhas de todas as segundas-feiras do mecircs de Dezembrodeste mesmo periacuteodo

∙ Muitos dados neste caso um maior niacutevel de especificidade pode ser aplicado sem autilizaccedilatildeo de outras fontes para complementar o banco de dados

∙ Alguns dados o niacutevel de especificidade eacute bem menor apenas filtrando por dia dasemana e intervalo de hora sem mecircs ou dia especiacutefico no ano Em alguns casos aquantidade de dados eacute tatildeo pequena que deve-se recorrer a outras fontes A Googletem disponibilizado graacuteficos com a distribuiccedilatildeo dos clientes nos horaacuterios de funciona-mento de estabelecimentos Esses dados natildeo estatildeo disponiacuteveis em sua API ou seja natildeo

12 ESTUDOS PRELIMINARES 24

haacute uma forma automaacutetica para que o aproveitamento desses possa ser feito Poreacutemmesmo omitindo-se os valores do graacutefico o perfil da distribuiccedilatildeo e o horaacuterio de picosatildeo aproveitados manualmente para nosso sistema

∙ Poucos dados para este caso fizemos o balanceamento dos dados da Google comas informaccedilotildees retiradas das entrevistas Aleacutem do aproveitamento das informaccedilotildees daGoogle foram realizadas pesquisas com funcionaacuterios dos restaurantes

Segundo meacutetodo Teoria das filas

Filas podem ser vistas como um sistema dinacircmico no qual existe um conjunto de usuaacuteriosque satildeo atendidos por um conjunto de atendentes de acordo com a ordem de chegada dosusuaacuterios A teoria de filas busca utilizando anaacutelises matemaacuteticas estudar o comportamentodestas filas para estimar o tempo de espera com base em um conjunto inicial de dadospreviamente fornecido[30]

Um sistema de filas possui como caracteriacutesticas

∙ Modelo de chegada dos usuaacuterios Utiliza como base o tempo entre as chegadasdos usuaacuterios

∙ Modelo de serviccedilo (atendimento aos usuaacuterios) Utiliza como base o tempo gastono atendimento ao usuaacuterio No caso dos restaurantes equivale ao tempo que um grupopassa na mesa ateacute a sua saiacuteda

∙ Nuacutemero de servidores Eacute o nuacutemero de atendentes disponiacuteveis no sistema Para omodelo do restaurante este equivale agraves mesas disponiacuteveis no salatildeo

∙ Capacidade do sistema Eacute o nuacutemero de usuaacuterios que o sistema eacute capaz de atenderInclui o nuacutemero de usuaacuterios que estatildeo sendo atendidos somado com os que esperamna fila Se este paracircmetro natildeo for informado o sistema eacute considerado com capacidadeilimitada

∙ Tamanho da populaccedilatildeo nuacutemero potencial de clientes que podem chegar a umsistema Pode ser finito ou infinito

∙ Disciplina da fila A disciplina da fila pode ser FIFO (first in first out) - o primeiroa chegar eacute o primeiro a ser atendido LIFO (last in first out) - o uacuteltimo a chegar eacuteo primeiro a ser atendido ALEATOacuteRIO - os atendimentos satildeo feitos sem qualquerpreocupaccedilatildeo com a ordem de chegada COM PRIORIDADE - os atendimentos satildeofeitos de acordo com prioridades estabelecidas No caso dos restaurantes a disciplinaadotada eacute a FIFO poreacutem esta pode mudar de acordo com o atendente responsaacutevel

Os tempos mencionados nos modelos de chegada e de serviccedilo podem ser constantesquando os intervalos entre as chegadas dos usuaacuterios satildeo iguais ou variaacuteveis quando os valo-res desses intervalos variam Nesse uacuteltimo caso o intervalo de tempo segue uma distribuiccedilatildeode probabilidades Nesse modelo tambeacutem existe a taxa meacutedia de chegada dos usuaacuterios porunidade de tempo ou seja quantos usuaacuterios chegam em uma hora

As filas podem ser moldadas em trecircs situaccedilotildees baacutesicas como descrito por Azmat Nafees[30]

∙ Modelo de fila de canal uacutenico com fila uacutenica e atendimento uacutenico (Figura 27)

24 CAacuteLCULO DA PREVISAtildeO DO TEMPO DE ESPERA NA FILA 13

∙ Modelo de fila de canal uacutenico com fila uacutenica e muacuteltiplos atendimentos paralelos (Fi-gura 28)

∙ Modelo de fila de canal uacutenico com muacuteltiplas filas e muacuteltiplos atendimentos paralelos(Figura 29)

Figura 27 Modelo de fila de canal uacutenico com fila uacutenica e atendimento uacutenico

Figura 28 Modelo de fila de canal uacutenico com fila uacutenica e muacuteltiplos atendimentos paralelos

Figura 29 Modelo de fila de canal uacutenico com muacuteltiplas filas e muacuteltiplos atendimentos paralelos

Tambeacutem por Azmat Nafees nesses modelos trecircs subprocessos podem ser vistos

∙ Processo de chegada Eacute um processo contiacutenuo do evento ldquochegada de clientesrdquo ouseja quando o evento ocorre o processo aguarda a ocorrecircncia do proacuteximo evento Esseevento coloca um cliente na fila quando ele chega

14 ESTUDOS PRELIMINARES 24

∙ Processo de espera Eacute um processo que inclui o evento ldquocomece a servir o proacuteximocliente da filardquo que retira um cliente da fila o coloca no processo de atendimento eespera a conclusatildeo do evento ldquocliente servidordquo para recomeccedilar Nele se trabalha comtamanho e disciplina da fila

∙ Processo de atendimento Eacute um processo que inclui o evento ldquocliente servidordquo eespera a conclusatildeo do evento ldquocomece a servir o proacuteximo cliente da filardquo para recomeccedilarNele se trabalha com tipo taxa e tempo de atendimento

Dentre esses 3 modelos o que mais se encaixa na situaccedilatildeo de um restaurante eacute o segundomodelo canal uacutenico com fila uacutenica e muacuteltiplos atendimentos paralelos O processo de chegadade novos clientes na fila eacute tido como aleatoacuterio

Terceiro meacutetodo Rede Neural

Rede Neural eacute uma teacutecnica computacional inspirada no sistema nervoso que com o auxiacute-lio de um modelo matemaacutetico apresenta respostas para problemas de decisatildeo Esses modelosfuncionam da seguinte forma primeiro um conjunto de dados (conjunto de treinamento) eacuteapresentado ao sistema e este aprende com ele atraveacutes de reconhecimento de padratildeo entatildeocoloca-se o sistema para analisar os dados (conjunto de teste) para os quais deseja-se obteralgum resultado Este processo eacute chamado de aprendizagem de maacutequina Quanto melhor forseu treinamento mais precisas seratildeo as respostas para o segundo conjunto

Uma rede neural eacute formada por subestruturas chamadas neurocircnios Um neurocircnio tem oseguinte funcionamento ele recebe como entrada sinais cada sinal recebe um peso de acordocom a influecircncia dele na saiacuteda e uma soma eacute feita para produzir o niacutevel de atividade entatildeodependendo se o niacutevel de atividade exceder o limite dado pela funccedilatildeo de transferecircncia aresposta eacute produzida[27]

Software Multiple Back-Propagation

Para implementar a soluccedilatildeo baseada em redes neurais foi usado o Software MultipleBack-Propagation [1] Este eacute um software de faacutecil utilizaccedilatildeo que fornece uma rede a qualaprende atraveacutes do processo de propagaccedilatildeo inversa Esse meacutetodo baseia-se na comparaccedilatildeodos dados esperados (conjunto de teste) com os dados obtidos a partir do treinamento senecessaacuterio adaptaccedilotildees satildeo feitas a estrutura da rede para melhor aproximar aos dados doconjunto teste e isso eacute chamado de propagaccedilatildeo inversa

Por se tratar de um meacutetodo de aprendizagem de maacutequinas para se obter um resultadodeve-se treinar o algoritmo Primeiramente submete-se o conjunto de treinamento ao soft-ware para isso foi escolhido o mecircs de Agosto O criteacuterio de parada para o treino eacute o erroquadraacutetico meacutedio o qual teve seu valor atribuiacutedo para 001

Capiacutetulo 3

Tecnologias utilizadas

31 O sistema AndroidAndroid eacute um Sistema operacional open source (software de coacutedigo aberto o qual as

pessoas podem acessar e modificar para contribuir com o projeto [25]) e para dispositivosmoacuteveis desenvolvido pela Google baseado no Kernel do Linux e utilizado principalmente emdispositivos touchscreen Atualmente o Android eacute o sistema operacional que deteacutem a maiorparcela do mercado[17] com 836 dos dispositivos contra 134 do iOS da Apple

A Google tambeacutem oferece um ambiente de desenvolvimento para a plataforma Androidchamado Android Studio no qual os aplicativos satildeo criados e exportados para os dispositi-vos moacuteveis Aplicativos Android satildeo programados na linguagem Java com vaacuterias bibliotecasdisponibilizadas pela Google para suporte ao sistema operacional

A escolha da plataforma foi feita principalmente por conta de o sistema possuir a maiorparte dos usuaacuterios de Smartphones e tambeacutem pela ampla comunidade ativa de desenvolve-dores agrave qual se pode recorrer em casos de duacutevidas e problemas tornando suas resoluccedilotildeesmais raacutepidas e com muacuteltiplas alternativas Outros motivos que contribuiacuteram para a escolhado Android foram

∙ A disponibilidade do ambiente de desenvolvimento Android Studio que possui todosos recursos necessaacuterios para desenvolver um aplicativo funcional logo apoacutes a instalaccedilatildeosem a necessidade de utilizar outras dependecircncias as quais satildeo gerenciadas automati-camente pelo proacuteprio software

∙ O fato de no mercado brasileiro o sistema Android se encontrar em 918 dos dispo-sitivos segundo pesquisa da Kantar[18] e dado a pesquisa realizada para definiccedilatildeo depuacuteblico alvo onde foi possiacutevel perceber que 639 dos entrevistados utilizam smartpho-nes com sistema Android

∙ A utilizaccedilatildeo da linguagem de programaccedilatildeo Java para desenvolvimento que jaacute eraconhecida e fora utilizada anteriormente ao contraacuterio das linguagens Objective C eSwift linguagens utilizadas para desenvolver aplicativos para o sistema iOS Assimcomo a disponibilidade de dispositivos por parte do grupo que em sua maioria era decelulares com o sistema Android

15

16 TECNOLOGIAS UTILIZADAS 31

Figura 31 Parcela de mercado dos dispositivos no Brasil

311 Organizaccedilatildeo de uma aplicaccedilatildeo Android

Aplicativos Android satildeo divididos em componentes Haacute quatro tipos de componentespresentes Activities (ou atividades) Services (ou serviccedilos) Content providers (ou provedoresde conteuacutedo) Broadcast receivers (ou receptores de transmissatildeo)

∙ Activities Satildeo as telas e interfaces do usuaacuterio Cada tela de uma aplicaccedilatildeo eacute repre-sentada por uma activity e cada activity eacute independente de outras apesar de seremcomponentes de uma mesma aplicaccedilatildeo Isso se daacute pelo fato de haver a possibilidade deutilizar activities de aplicativos durante a execuccedilatildeo de outros Atividades satildeo iniciadase se comunicam entre si atraveacutes de objetos chamados Intent que transferem um pacotede dados que pode ser carregado no iniacutecio da nova atividade

∙ Services Sempre satildeo executados em segundo plano sem interferir na experiecircncia dousuaacuterio geralmente para realizar operaccedilotildees longas ou realizar operaccedilotildees de troca dedados enquanto o usuaacuterio estaacute utilizando outra aplicaccedilatildeo em primeiro plano

∙ Content Providers Satildeo gerenciadores de dados de aplicaccedilotildees Android utilizadospara ler e salvar dados compartilhados ou secretos dos aplicativos e do sistema

∙ Broadcast Receivers Satildeo componentes responsaacuteveis por obter eventos que aconte-ceram em outras aplicaccedilotildees ou no sistema e direcionar dados sobre esses eventos paraeventuais aplicaccedilotildees que necessitem destes dados alguns exemplos de eventos obtidospelos receptores de transmissatildeo satildeo tela desligada e bateria fraca

Aleacutem dos componentes uma parte importante de uma aplicaccedilatildeo Android eacute o ArquivoManifest que eacute uma declaraccedilatildeo de permissotildees serviccedilos e exigecircncias de hardware necessaacuterios

33 JSON 17

para o funcionamento do aplicativo Outra funccedilatildeo eacute possuir declaraccedilotildees de todos os compo-nentes utilizados no projeto nomes iacutecones entre outros

As interfaces de usuaacuterio do Android satildeo definidas em arquivos XML (eXtensible MarkupLanguage)[26] nos quais estatildeo declarados todos os layouts e configuraccedilotildees das telas Essesarquivos de layout satildeo depois inflados e satildeo gerados os componentes visuais da aplicaccedilatildeoEssa estrutura tem como objetivo facilitar o design da interface do usuaacuterio jaacute que arquivosxml satildeo de faacutecil compreensatildeo do desenvolvedor

32 JSONJSON ou Javascript Object Notation eacute um formato de dados amplamente utilizado para

troca de informaccedilotildees entre programas Possui uma notaccedilatildeo simples para grande parte dosprogramadores pois se assemelha a convenccedilotildees utilizadas em linguagens de programaccedilatildeomuito conhecidas como C C++ Python e Java O objetivo eacute que ele seja de faacutecil entendi-mento tanto para pessoas como para maacutequinas[11]

Um arquivo JSON eacute organizado como um objeto contendo pares nomevalorseparadospor viacutergulas e dentro de chaves(lsquolsquo rsquorsquo) ou como um array que eacute uma lista de valores separa-dos por viacutergulas e entre colchetes(lsquo[lsquo rsquo]rsquo) Um valor por sua vez pode ser um objeto ou umarray mas tambeacutem um nuacutemero inteiro ou uma String entre outros

Um exemplo de arquivo JSON eacute

1 2 Carros [3 4 Nome Scen ic 5 Marca Renault 6 Ano 20127 8 9 Nome Sentra

10 Marca Nissan 11 Ano 200912 13 ]14

33 Google APIsAPIs (Application Program Interfaces) satildeo interfaces para facilitar a troca de informa-

ccedilotildees entre aplicaccedilotildees utilizando comandos especiacuteficos[15]

Ao longo do desenvolvimento algumas APIs fornecidas pela Google foram utilizadascomo fonte de informaccedilotildees adicionais para o aplicativo

∙ Google Maps Distance Matrix API Esta API eacute utilizada para obter o tempo emsegundos de trajeto entre dois pontos (latlong) no mapa podem ser consultados ostempos de trajeto de carro bicicleta a peacute e utilizando transporte puacuteblico[28] Esta eacute

18 TECNOLOGIAS UTILIZADAS 35

uma API web logo utiliza-se um request http para realizar uma consulta

Por exemplo o request

httpsmapsgoogleapiscommapsapidistancematrixjsonorigins=Seattleampdestinations=Victoria+BCampkey=[user_key]

retorna o JSON

1 2 des t ina t i on_addre s s e s [ Vic tor ia BC Canada ] 3 o r i g in_addre s s e s [ Sea t t l e WA EUA ] 4 rows [5 6 e lements [7 8 d i s t anc e 9 text 172 km

10 value 17166811 12 durat ion 13 text 4 horas 40 minutos 14 value 1680915 16 s t a tu s OK17 18 ]19 20 ] 21 s t a tu s OK22

no qual eacute possiacutevel obter o tempo de trajeto em segundos

∙ Google Maps Android API Esta API eacute utilizada para habilitar o uso de mapasda Google integrados agrave aplicaccedilatildeo jaacute disponiacutevel com todas as funcionalidades de zoome arrastar presentes no aplicativo nativo permitindo tambeacutem a personalizaccedilatildeo comoa adiccedilatildeo de pontos definidos pelo usuaacuterio ao mapa

34 Localizaccedilatildeo do UsuaacuterioOutro serviccedilo que foi utilizado com o intuito de obter o tempo de trajeto e a lista ordenada

de forma personalizada de restaurantes foi a localizaccedilatildeo do usuaacuterio que eacute obtida atraveacutes doGPS presente nos smartphones Um objeto de localizaccedilatildeo eacute criado e realiza a comunicaccedilatildeocom o serviccedilo de localizaccedilatildeo do aparelho Ao obter a localizaccedilatildeo ele lanccedila um evento quepode ser acessado por outras partes da aplicaccedilatildeo obtendo a localizaccedilatildeo mais atualizada dodispositivo

36 CONTROLE DE VERSAtildeO 19

35 Controle de VersatildeoControle de versatildeo eacute uma praacutetica usada para manter a organizaccedilatildeo do coacutedigo e do seu de-

senvolvimento quando muitos desenvolvedores colaboram conjuntamente Existem softwaresque auxiliam essa organizaccedilatildeo registrando todas as mudanccedilas feitas ao longo do processo eque possui recursos que permitem que vaacuterios usuaacuterios trabalhem nos mesmos arquivos semperda de informaccedilotildees

No caso do Git [8] o projeto fica organizado em uma estrutura de aacutervore onde cadacommit (checkpoints criados pelos membros do grupo durante o processo) eacute marcado porum noacute para onde se pode retornar quando necessaacuterio Existem tambeacutem estruturas chama-das branches que satildeo bifurcaccedilotildees na estrutura para que partes do projeto sejam criadasseparadamente sem interferir com a linha principal As branches depois satildeo unidas agrave linhaprincipal atraveacutes do comando merge

Neste projeto o serviccedilo de controle de versatildeo utilizado foi o Bitbucket [2] (que eacute um ser-viccedilo web-based de controle de versatildeo que utiliza Git) com auxiacutelio do software SourceTree[19]que eacute uma interface graacutefica para os serviccedilos do Bitbucket onde eacute possiacutevel visualizar com maisfacilidade as fases do desenvolvimento do projeto e realizar os comandos mais intuitivamente

Figura 32 Interface do SourceTree que mostra o controle de versionamento do projeto

36 Banco de dadosCom o intuito de deixar o aplicativo mais completo guardando informaccedilotildees dos usuaacuterios

e dos estabelecimentos optou-se por utilizar-se um banco de dados Alguns exemplos de

20 TECNOLOGIAS UTILIZADAS 36

banco de dados aprendidos no curso Laboratoacuterio de Banco de Dados foram

∙ SQL (Structured Query Language - Linguagem de Consulta Estruturada)[20] umalinguagem para atualizar deletar e requisitar informaccedilotildees atraveacutes de consultas emtabelas que possuem relaccedilatildeo entre si

∙ noSQL[13] um banco de dados que armazena e recupera informaccedilotildees modeladas deuma forma onde natildeo satildeo usadas tabelas relacionais

Como este uacuteltimo natildeo foi o foco da disciplina por falta de tempo decidiu-se por utilizaacute-lopara que o grupo pudesse aprender melhor esse modelo

Outra decisatildeo tomada foi a hospedagem dos dados na nuvem ou seja colocaacute-los em umservidor que natildeo seja local e conseguir acessaacute-los atraveacutes de uma conexatildeo via internet Dessemodo os dados sempre estaratildeo disponiacuteveis para serem consultados

361 Firebase

Buscando-se atender as decisotildees tomadas sobre o banco de dados procuramos um serviccedilode banco de dados da Google por conter ampla integraccedilatildeo com a plataforma de desenvolvi-mento Android por ser conhecido bastante utilizado e por possuir uma ampla comunidadede desenvolvedores dispostos a oferecer auxiacutelio em foacuteruns de discussatildeo de coacutedigos

Para atender esses requisitos escolheu-se o Firebase Realtime Database[6] desenvolvido edisponibilizado pela Google que consiste em um banco de dados noSQL com armazenamentona nuvem Esse serviccedilo armazena os dados do usuaacuterio no servidor da Google em formatoJSON e a cada alteraccedilatildeo sincroniza em tempo real com todos os clientes conectados

O grupo pode observar as seguintes vantagens de se trabalhar com a ferramenta existea sincronizaccedilatildeo em tempo real dos dados de todos os clientes e sua disponibilidade mesmocom o aplicativo offline ou seja quando o aplicativo natildeo estiver conectado a internet osdados do dispositivo moacutevel seratildeo armazenados e sincronizados com o banco de dados assimque a conexatildeo estiver disponiacutevel novamente Aleacutem disso os desenvolvedores possuem acessoa um console online (figura 33) onde o JSON eacute mostrado numa interface interativa de umaforma mais amigaacutevel e no qual eacute permitido editaacute-lo facilmente

37 CROWDSOURCING 21

Figura 33 Console online do Firebase onde os dados satildeo mostrados de forma mais amigaacutevel eintuitiva

Outra observaccedilatildeo feita foi que o Firebase Realtime Database funciona como o esperadose ele guardar uma coacutepia local dos dados em um arquivo JSON no celular Poreacutem isso natildeofoi visto como um problema pois como essa coacutepia pode ser salva em um arquivo texto oespaccedilo utilizado diminui consideravelmente

Na primeira vez que os dados satildeo criados e todas as vezes em que os dados forem atua-lizados por algum dispositivo moacutevel eacute enviada uma atualizaccedilatildeo que seraacute recebida atraveacutes delisteners por todos os aparelhos que utilizam o aplicativo para que eles atualizem seus res-pectivos JSONs Listeners satildeo interfaces de comunicaccedilatildeo que executam uma seacuterie de accedilotildeesassim que um outro evento esperado acontece

37 CrowdsourcingO termo Crowdsourcing tem origem nas palavras da liacutengua inglesa Crowd (multidatildeo) e

Outsourcing (terceirizaccedilatildeo) e eacute definido pelo dicionaacuterio Merriam Webster como A praacuteticade obtenccedilatildeo de serviccedilos ideias ou conteuacutedo solicitando contribuiccedilotildees de grandes grupos depessoas e especialmente da comunidade online [3] Esta praacutetica eacute utilizada para que sejapossiacutevel agrave comunidade contribuir com dados para algum programa ou serviccedilo como no apli-cativo Waze do qual a principal fonte de dados de tracircnsito acidentes e radares eacute obtida pormeio dos proacuteprios usuaacuterios

Capiacutetulo 4

Desenvolvimento do Projeto

Este capiacutetulo aborda o processo de desenvolvimento do projeto iniciado com o preen-chimento do diagrama Canvas e uma pesquisa de mercado direcionada ao usuaacuterio A partirdas informaccedilotildees coletadas foi possiacutevel projetar um aplicativo que atendesse as necessidadesexpostas pela pesquisa e selecionar as tecnologias necessaacuterias Tambeacutem eacute abordada a aplica-ccedilatildeo dos diferentes meacutetodos de caacutelculo da previsatildeo de tempo de espera que foram estudadose explicados no Capiacutetulo 2 Por fim satildeo expostas as diferentes versotildees do aplicativo duranteo processo e seus detalhes

41 Pesquisa de MercadoAntes de iniciar-se o desenvolvimento praacutetico algumas questotildees foram levantadas se

um aplicativo com as funcionalidades escolhidas seria de alguma forma uacutetil para o usuaacuterioe se sim qual metodologia deveria ser usada para que este produto fosse entregue o maiscompleto possiacutevel ateacute o final do ano Para responder a primeira pergunta desenvolveu-seum questionaacuterio

411 Pesquisa com o usuaacuterio

O questionaacuterio foi desenvolvido para avaliar a viabilidade do aplicativo e suas funciona-lidades e foi criado utilizando-se o Google Forms [9] Essa eacute uma ferramenta desenvolvidapelo Google que possibilita a criaccedilatildeo de formulaacuterios contendo diversos formatos de pergun-tas tanto dissertativas quanto de muacuteltipla escolha

Seguindo os princiacutepios de desenvolvimento de questionaacuterios [4] o conjunto de perguntasfoi mantido curto simples e de faacutecil entendimento Tambeacutem variou-se o tipo de questotildeesentre estruturadas (questotildees com respostas em forma de alternativas) e desestruturadas(questotildees com respostas em formato texto) seguindo esses mesmos princiacutepios para captarmelhor as informaccedilotildees dos entrevistados e evitar erros de entendimento

Com as respostas do questionaacuterio tinha-se o intuito de traccedilar um possiacutevel puacuteblico alvoconhecer seu modo de uso de dispositivos moacuteveis e validar a aplicabilidade de diferentesfuncionalidades pretendidas inicialmente sendo essas engajamento do usuaacuterio atraveacutes denotificaccedilotildees do sistema aceitaccedilatildeo de sugestotildees de locais alternativos avaliaccedilatildeo da existecircnciado problema que queremos resolver (se este aplicativo supre uma necessidade real do usuaacute-rio) e aceitaccedilatildeo do aplicativo

23

24 DESENVOLVIMENTO DO PROJETO 41

Para a divulgaccedilatildeo redes sociais como Facebook [5] e sistemas de mensagem instantacircneascomo WhatsApp foram usados e o envio de respostas foi restrito ateacute trecircs semanas apoacutes suaprimeira postagem Neste periacuteodo foram obtidas 210 respostas as quais ajudaram a definiros aspectos do sistema a ser desenvolvido

O questionaacuterio foi dividido em duas subseccedilotildees perfil do usuaacuterio e funcionalidade Comelas obteve-se os seguintes resultados

41 PESQUISA DE MERCADO 25

Questatildeo 1

Figura 41 Graacutefico pizza da distribuiccedilatildeo das respostas em relaccedilatildeo a idade dos pesquisados

As faixas de idade apresentadas estatildeo desbalanceadas por natildeo terem a mesma quantidadede anos em cada uma poreacutem essa divisatildeo foi pensada levando-se em conta a fluecircncia comtecnologia que cada idade possui Com o resultado verificou-se que do puacuteblico alcanccediladocom a pesquisa a maioria estaacute na faixa de 18 a 25 anos de idade assumida como parcelacom maior conhecimento tecnoloacutegico

Questatildeo 2

Figura 42 Graacutefico pizza da distribuiccedilatildeo das respostas em relaccedilatildeo ao sistema operacional

Esta questatildeo foi pensada para medir a porcentagem de cada sistema operacional pre-sente nos celulares do puacuteblico Com ela descobriu-se que 639 das pessoas dentro desse

26 DESENVOLVIMENTO DO PROJETO 41

grupo possuem o sistema Android enquanto 234 possuem iOS e 38 Windows phoneEssa pergunta foi incluiacuteda para um melhor direcionamento do desenvolvimento do aplicativo

Uma questatildeo levantada ao aplicar esse questionaacuterio foi a dificuldade que algumas pessoasencontraram para identificar a versatildeo do proacuteprio aparelho Poreacutem para manter a consistecircnciadas respostas decidiu-se natildeo mudar nada nesta questatildeo para remediar isso

Questatildeo 3

Figura 43 Graacutefico em barras da distribuiccedilatildeo de frequecircncias mensais de cada local analisado

41 PESQUISA DE MERCADO 27

Questatildeo 4

Figura 44 Graacutefico em pizza da distribuiccedilatildeo de interesse do usuaacuterio no tempo de espera de cadalocal

A princiacutepio viu-se muitas possiacuteveis aplicaccedilotildees para a previsatildeo de tempo de espera Paraentender qual seria a prioridade do puacuteblico as questotildees acima foram incluiacutedas A primeiraverificou a frequecircncia de visitas em alguns locais e a segunda serviu para analisar qualestabelecimento despertava mais interesse nos entrevistados quanto ao quesito fila Nos doiscasos restaurantes se destacaram com o maior interesse

Questatildeo 5

Figura 45 Graacutefico em barras da distribuiccedilatildeo de interesse do usuaacuterio por cada item avaliado

Para acompanhar o dado de espera e fornecer mais informaccedilotildees relevantes ao usuaacuteriosem potencial perguntou-se quais outras informaccedilotildees eles acham interessante saber sobre umdeterminado estabelecimento Com isso descobriu-se que a faixa de preccedilo o trajeto ateacute olocal e o cardaacutepio seriam dados importantes de se obter juntamente com o tempo de espera

28 DESENVOLVIMENTO DO PROJETO 41

Questatildeo 6O que vocecirc costuma fazer para evitar filasNeste ponto testou-se se a soluccedilatildeo proposta atraveacutes do aplicativo resolveria o problema dousuaacuterio de uma forma melhor do que a soluccedilatildeo atualmente utilizada Para isso foi perguntadoo que as pessoas fazem para evitar filas e as principais respostas foram

∙ Evitar horaacuterios de pico

∙ Chegar cedo

∙ Ir em outro lugar caso uma fila seja encontrada

∙ Tentar realizar reservas antecipadamente

∙ Se distrair com livroscelular

Notou-se que as soluccedilotildees utilizadas atualmente natildeo suprem as necessidades dos entre-vistados pois mesmo em horaacuterios natildeo convencionais pode-se encontrar filas ou quandodecide-se esperar na fila muito tempo eacute perdido Concluiu-se que a soluccedilatildeo proposta a par-tir do aplicativo resolve de forma mais abrangente o problema pois ajuda o usuaacuterio a evitarhoraacuterios de pico inesperados

Questatildeo 7

Figura 46 Graacutefico em pizza da distribuiccedilatildeo do meio de transporte utilizado pelos usuaacuterios

Essa questatildeo foi formulada com o objetivo de verificar quais meios de transporte seriamincluiacutedos com previsatildeo de tempo de trajeto no aplicativo Foi verificado que a maioria dosentrevistados utilizam transporte puacuteblico seguido por carro

41 PESQUISA DE MERCADO 29

Questatildeo 8

Figura 47 Graacutefico em pizza da distribuiccedilatildeo do interesse do usuaacuterio pela informaccedilatildeo fornecida

Questatildeo 9

Figura 48 Graacutefico em pizza da distribuiccedilatildeo de quantidade de quilocircmetros que o usuaacuterio sedeslocaria para ir a um local com menos fila

Com essas questotildees foi verificado que algo importante para o usuaacuterio eacute saber de outrosestabelecimentos que possam oferecer tempos de espera menores nas redondezas de onde ousuaacuterio se encontra que eacute uma das funcionalidades que desejaacutevamos utilizar no sistema

30 DESENVOLVIMENTO DO PROJETO 41

Questatildeo 10

Figura 49 Graacutefico em barras da distribuiccedilatildeo de sentimento do usuaacuterio em relaccedilatildeo a notificaccedilatildeode aplicativos

Questatildeo 11

Figura 410 Graacutefico em pizza da distribuiccedilatildeo de opiniatildeo do usuaacuterio sobre desabilitar notificaccedilotildeesem celular

42 PESQUISA DE MERCADO 31

Questatildeo 12

Figura 411 Graacutefico em pizza da distribuiccedilatildeo de opiniatildeo do usuaacuterio sobre habilitar GPS emcelular

A ideia inicial era poder usar o GPS para verificar a localizaccedilatildeo do usuaacuterio e enviarnotificaccedilotildees quando este estivesse parado nas proximidades de algum dos estabelecimentoscadastrados Para que essa funcionalidade possa existir eacute necessaacuterio que o aplicativo tenhaacesso agrave localizaccedilatildeo precisa da pessoa atraveacutes do GPS ou internet ateacute mesmo quando natildeoestiver aberto Aleacutem disso tambeacutem eacute necessaacuterio que as notificaccedilotildees estejam habilitadas parafinalizar esta interaccedilatildeo Entatildeo as perguntas 10 11 e 12 foram incluiacutedas no questionaacuterio Ob-servando as respostas foi possiacutevel verificar que 295 das pessoas que responderam deixamambas as funcionalidades habilitadas (GPS e notificaccedilotildees) Com isso pudemos prosseguircom essa ideia e tambeacutem pensar em possiacuteveis alternativas de interaccedilatildeo e engajamento como usuaacuterio

Por conta dessa pesquisa ter sido compartilhada atraveacutes das contas das redes sociais ecomunicadores dos componentes deste grupo sabe-se que este pode apresentar um resultadoviesado mas que mesmo assim natildeo deve ser desconsiderado e que muito ajudou a sanar asduacutevidas iniciaisComo resultado traccedilamos o perfil do entrevistado

∙ Faixa etaacuteria predominante entre 18 e 30 anos

∙ Possui sistema operacional Android (versotildees 4 5 e 6)

∙ Vai a restaurantes com certa frequecircncia mensal resultando em interesses sobre infor-maccedilotildees relacionadas a esse estabelecimento

∙ Costuma chegar cedo ou evitar os horaacuterios de pico para evitar filas nos locais

∙ Carro e transporte coletivo satildeo os principais meios de transporte

∙ Se deslocaria para um estabelecimento semelhante que possui menos fila contanto queeste fique num raio de 2km de distacircncia

32 DESENVOLVIMENTO DO PROJETO 43

42 Projeto do AplicativoO grupo comeccedilou o projeto com o preenchimento do diagrama Canvas(figura 412) apre-

sentado na Seccedilatildeo 21 Desse modo foi adquirida uma ideia mais consistente e uma base paracomeccedilar a implementaccedilatildeo

Figura 412 Diagrama Canvas preenchido pelo grupo

Com o modelo de negoacutecios definido e com base no resultado da pesquisa com o usuaacuterioapresentada na seccedilatildeo seguinte foram aplicadas pequenas mudanccedilas no projeto para melhoradequar-se agraves necessidades e ao perfil do puacuteblico alvo

Para o desenvolvimento foi utilizado um meacutetodo aacutegil baseado no scrum com sprints de3 a 4 semanas devido agrave disponibilidade dos membros do grupo Os encontros natildeo eram diaacute-rios como recomendado para o meacutetodo scrum tambeacutem em razatildeo da disponibilidade Haviamstand ups (discussotildees raacutepidas no comeccedilo de cada encontro) e retrospectivas ao final de cadasprint A cada sprint eram selecionadas histoacuterias e tarefas para serem executadas e caso natildeofossem concluiacutedas ao final da iteraccedilatildeo eram inseridas ao backlog e feitas no sprint seguinte

43 Aplicaccedilatildeo dos meacutetodos de caacutelculo de espera

431 Aplicando a meacutedia por periacuteodo

Aplicando-se no trecho abaixo a teacutecnica desenvolvida na Seccedilatildeo 242 para uma queryrealizada no dia 19082016 no intervalo de 2040 - 2055 analisa-se a semana anterior quepossua tais intervalos Assim o saacutebado dia 06082016 seraacute selecionado

43 APLICACcedilAtildeO DOS MEacuteTODOS DE CAacuteLCULO DE ESPERA 33

Entrada Qtd Pessoas Notificado Espera

6816 2043 2 862016 2053 1606

6816 2044 2 862016 2055 674

6816 2048 2 862016 2056 528

6816 2048 2 862016 2057 520

6816 2051 2 862016 2107 1118

6816 2051 3 862016 2110 1305

6816 2052 2 862016 2110 1273

6816 2052 2 862016 2111 1179

6816 2053 2 862016 2112 1217

6816 2053 2 NULL 59

6816 2054 3 862016 2119 1541

6816 2055 2 862016 2117 1444

6816 2055 2 862016 2120 1570

6816 2055 2 862016 2122 1613

Tabela 41 Trecho do dia 06082016 entre os horaacuterios das 2043 agraves 2055 um intervalo de 12minutos retirado dos dados da empresa Get In

Com esses dados obteve-se a meacutedia de espera de 1080 segundos (18 minutos) a qualseria sugerida para o usuaacuterio com a busca e desvio padratildeo de 465144719 segundos (775 mi-nutos) Dentro desse intervalo tem-se como maacuteximo tempo de espera 1613 segundos (2688minutos) e como miacutenimo 59 segundos (1 minuto) Analisando-se os dados do dia 19082016no mesmo periacuteodo temos

34 DESENVOLVIMENTO DO PROJETO 43

Entrada Pessoas Notificado Espera Erro previsatildeo Erro p 2 pessoas

19816 2043 2 8192016 2051 544 -563 522

19816 2043 2 8192016 2052 605 -502 461

19816 2044 2 8192016 2056 723 -384 343

19816 2046 4 8192016 2119 1988 881 X

19816 2048 2 8192016 2102 919 188 147

19816 2051 2 8192016 2103 821 286 245

19816 2051 3 8192016 2108 1773 666 X

19816 2053 2 8192016 2110 1083 24 -17

19816 2053 2 8192016 2111 1105 2 -39

19816 2053 2 8192016 2112 1169 62 -103

19816 2055 2 8192016 2114 1447 340 -381

Tabela 42 Trecho do dia 19082016 entre os horaacuterios das 2043 agraves 2055um intervalo de 12minutos retirado dos dados da empresa Get In

Ou seja se um grupo chegasse dentro desse periacuteodo e a previsatildeo dada fosse a meacutediaobtida anteriormente o erro calculado pela diferenccedila entre o tempo sugerido e o real tempode espera estaria no intervalo de 15 minutos para menos ou 8 minutos para mais Sendoesse um valor aceitaacutevel

Um proacuteximo passo eacute a restriccedilatildeo dos registros a grupos com 2 integrantes Com tal restri-ccedilatildeo a previsatildeo de espera eacute de 1066 segundos (1776 minutos) Aplicando essa nova meacutedia aosregistros com 2 integrantes do dia 19082016 obteacutem-se um erro (Coluna 6 - erro previsatildeopara 2 pessoas) menor do que o anterior O intervalo do erro calculado neste caso seria de 522segundos (87 minutos) para mais e 381 segundos (635 minutos) para menos Este resultadoeacute ainda mais favoraacutevel mostrando que a inclusatildeo de mais filtros para o caacutelculo da previsatildeomelhorou o tempo previsto

432 Aplicando teoria das filas

A teoria das filas (Seccedilatildeo 242) eacute uma ferramenta muito completa que calcula muitos dadosuacuteteis para a previsatildeo de espera Contudo por conta da necessidade de informaccedilotildees sobreo tempo de atendimento a qual natildeo estaacute contida no banco utilizado esta teoria natildeo podeser aplicada neste caso Poreacutem esse dado pode ter um valor assumido para que a utilizaccedilatildeodessa teoria fosse possiacutevel entretanto a sua precisatildeo ficaria comprometida e imprevisiacutevel

433 Aplicando redes neurais

Para aplicar o que foi estudado na Seccedilatildeo 242 foi executado o software com o mecircs deAgosto como teste o mecircs de Setembro como treino e o limite do erro quadraacutetico como 001 eobteve-se a tabela presente no apecircndice B Na tabela podemos ver o tempo de fila esperadoou seja o tempo contido na tabela do mecircs de Setembro o tempo que o algoritmo deu comoresposta baseado no mecircs de Agosto e o erro entre eles respectivamente

44 DEFINICcedilAtildeO DA INTERFACE DO APLICATIVO 35

Figura 413 Software Multiple Back-Propagation com a configuraccedilatildeo escolhida para os dadosdisponiacuteveis

Mesmo o erro se mantendo em 0018 os dados obtidos possuem um erro padratildeo de 15minutos Se mais dados forem adicionados o criteacuterio de parada pode ser atingido e assimuma previsatildeo melhor pode ser alcanccedilada

434 Conclusatildeo sobre os meacutetodos estudados

Dentre todas as possibilidades estudadas visualizamos na meacutedia por periacuteodo a melhoropccedilatildeo assumindo os dados disponiacuteveis para teste Se mais paracircmetros fossem fornecidoscomo o tempo de atendimento a teoria das filas seria uma boa opccedilatildeo para fornecer a pre-visatildeo de espera E se mais dados estivessem disponiacuteveis as redes neurais conseguiriam umaaproximaccedilatildeo melhor e assim seria uma boa opccedilatildeo tambeacutem

44 Definiccedilatildeo da Interface do aplicativoComo um primeiro protoacutetipo foi desenvolvida uma interface simples que tinha como tela

de iniacutecio um mapa com um campo para buscas na parte superior

36 DESENVOLVIMENTO DO PROJETO 44

Figura 414 Fluxo de telas do primeiro protoacutetipo

Ao efetuar uma busca por algum estabelecimento uma tela mostrando o tempo de esperaaproximado da fila no local era exibida junto com bototildees que permitiam selecionar o meiode transporte visualizar outras opccedilotildees ou dar iniacutecio a rota ateacute o local desejado Tambeacutemhavia uma notificaccedilatildeo para quando a pessoa estivesse parada proacutexima a um restaurantecadastrado que direcionaria o usuaacuterio a uma tela com um cronocircmetro do tempo de esperana fila

Para testar essa visualizaccedilatildeo escolhemos algumas pessoas e realizamos um teste deusabilidade[22] este teste eacute feito da seguinte forma

44 DEFINICcedilAtildeO DA INTERFACE DO APLICATIVO 37

Uma contextualizaccedilatildeo eacute feita para o voluntaacuterio e entatildeo uma tarefa eacute passada para sercompletada Os integrantes do grupo observam dificuldades enfrentadas pelo entrevistado etomam notas Esse teste eacute repetido algumas vezes e seu resultado eacute coletado para avaliaccedilatildeoe modificaccedilatildeo das funcionalidades

Figura 415 Tela de detalhes de um restaurante(segunda versatildeo)

Notou-se que algumas funcionalidadespareceram confusas e natildeo intuitivas porexemplo natildeo ficou claro se o tempo mos-trado era de trajeto ou de espera na filanem qual era o meio de transporte utili-zado

Logo esse protoacutetipo foi reformuladocom o intuito de melhorar a experi-ecircncia do usuaacuterio com o nosso aplica-tivo

Foram colocados aleacutem do tempo deespera da fila o tempo que o usuaacuteriolevaria para chegar ateacute o local selecio-nado (conforme o tipo de transporte es-colhido) e a quantidade estimada de pes-soas na fila O tempo total (espera so-mado ao tempo de deslocamento) ga-nhou destaque entre as informaccedilotildees doestabelecimento e o botatildeo que direcionao usuaacuterio ao trajeto ficou mais especiacute-fico

Tambeacutem cogitou-se a possibilidade deadicionar login e um perfil de usuaacuteriojunto com uma lista de restaurantes favo-ritos

O fluxo das telas deste novo protoacutetipo ficou como mostra o esquema a seguir

38 DESENVOLVIMENTO DO PROJETO 44

Figura 416 Fluxo de telas do segundo protoacutetipo

44 DEFINICcedilAtildeO DA INTERFACE DO APLICATIVO 39

Figura 417 Tela de detalhes de um restaurante(terceira versatildeo)

Apoacutes outras avaliaccedilotildees mais algumaspequenas alteraccedilotildees foram realizadas nainterface Foi decidido que seria inviaacute-vel estimar o nuacutemero de pessoas nafila entatildeo essa funcionalidade foi remo-vida

Notificaccedilotildees foram adicionadas paraquando o usuaacuterio estiver parado na aacutereado restaurante para que ele possa con-tribuir com informaccedilotildees sobre a fila quepegou aleacutem de um botatildeo de contri-buiccedilatildeo ter sido inserido na tela ini-cial

40 DESENVOLVIMENTO DO PROJETO 45

O fluxo de telas do aplicativo atual ficou da seguinte forma

Figura 418 Fluxo de telas do terceiro protoacutetipo

46 EXPLICACcedilAtildeO DAS FUNCIONALIDADES 41

45 Explicaccedilatildeo das funcionalidadesEsta seccedilatildeo explica as funcionalidades do produto utilizando a figura 418

A tela inicial (3) exibe uma lista de restaurantes incluindo seus respectivos tempos detrajeto e tempo de espera na fila Ao clicar no botatildeo ldquo+rdquo uma caixa de diaacutelogo eacute aberta(4) onde eacute possiacutevel adicionar o tempo que o usuaacuterio esperou na fila Primeiro eacute escolhido orestaurante depois a data e hora que a pessoa chegou na fila e por fim o tempo de esperaem minutos Ao tocar em ldquoEnviar Feedback rdquo os dados satildeo incluiacutedos no banco de dados eatualizados para os outros usuaacuterios Assim eacute apicado o conceito de Crowdsourcing no apli-cativo

Ao tocar em um item da lista de restaurantes seraacute aberta a tela de detalhes de um res-taurante (5) na qual eacute possiacutevel ver com mais clareza os tempos de trajeto e espera o tempototal o endereccedilo do estabelecimento e um pequeno mapa centrado no local Pressionandoo botatildeo ldquoDireccedilotildeesrdquo o usuaacuterio seraacute redirecionado ao aplicativo de mapas de sua preferecircnciano caso do exemplo (8) o Google Maps jaacute traccedilando a rota da localizaccedilatildeo do usuaacuterio para oestabelecimento em questatildeo

Novamente na tela inicial tocando no iacutecone de lupa eacute possiacutevel realizar uma busca digi-tando o nome do estabelecimento na caixa de texto a qual exibe sugestotildees dependendo doque foi digitado Ao clicar em um dos resultados da busca o usuaacuterio eacute novamente direcionadopara a tela de detalhes do restaurante (5)

Tambeacutem eacute possiacutevel tocar no iacutecone de mapa na tela inicial onde seraacute mostrado um mapacentrado na localizaccedilatildeo do usuaacuterio

Ao ficar parado por um tempo em um mesmo local proacuteximo a um estabelecimentocadastrado o usuaacuterio eacute perguntado em uma notificaccedilatildeo quanto tempo ele permaneceu nafila Ao tocar na notificaccedilatildeo a caixa de diaacutelogo para feedback do usuaacuterio seraacute aberta (4) jaacutecom o restaurante preenchido e apoacutes o feedback a janela seraacute fechada e os dados enviadosao banco de dados

46 Implementaccedilatildeo do banco de dadosO banco de dados do aplicativo foi modelado e populado em forma de aacutervore (Fi-

gura 419) de forma a facilitar o acesso aos dados necessaacuterios ao aplicativo No primeironiacutevel estatildeo os ids dos restaurantes Cada id de restaurante guarda a localizaccedilatildeo (latitudelongitude) do restaurante o nome o endereccedilo e um objeto fila O objeto fila guarda todos osdias da semana (domingo a saacutebado) e cada dia da semana possui 24 campos um para cadahora do dia Cada hora possui o tempo meacutedio de espera da fila naquela hora e um peso paraesse tempo O peso eacute um valor que aumenta de acordo com o nuacutemero de feedbacks dadospara que o novo valor do tempo meacutedio seja calculado de forma consistente

Modelamos o banco de dados de uma forma que respeitasse uma hierarquia de dados

42 DESENVOLVIMENTO DO PROJETO 46

Figura 419 Aacutervore que ilustra a organizaccedilatildeo de um restaurante no banco de dados

Com o banco de dados jaacute populado o aplicativo faz consultas e atualizaccedilotildees de dadosConsultas satildeo feitas ao criar a tela de listagem de restaurantes e de detalhes de um restau-rante consultado As atualizaccedilotildees satildeo feitas quando o usuaacuterio manda o feedback de tempo deespera em um estabelecimento em determinado horaacuterio o aplicativo calcula a nova meacutedia eatualiza o campo do respectivo horaacuterio

Capiacutetulo 5

Conclusatildeo

Ao longo dos capiacutetulos deste trabalho pocircde-se acompanhar todo o processo de criaccedilatildeo edesenvolvimento do aplicativo que apoacutes finalizado foi batizado com o nome Queue

Comeccedilando com um problema para o qual o grupo almejava oferecer uma soluccedilatildeoacabou-se por adentrar-se um pouco no campo da Estatiacutestica e estudar diversas metodo-logias que poderiam ser uacuteteis para fornecer um caacutelculo de previsatildeo de espera meacutedia porperiacuteodo aplicaccedilatildeo da teoria das filas e utilizaccedilatildeo de redes neurais

Atraveacutes de uma parceria com a empresa GetIn obteve-se acesso a uma grande quantidadede dados e foi possiacutevel utilizaacute-los em anaacutelises feitas nas metodologias escolhidas conseguindoassim resultados relevantes Por meio destes foi feita a escolha de um dos meacutetodos para ocaacutelculo da previsatildeo de filas a meacutedia por periacuteodo

Aleacutem desses estudos ao longo do ano o grupo aprendeu a desenvolver para a plata-forma Android sobre a qual nenhum dos integrantes tinha conhecimento preacutevio Tambeacutemfoi possiacutevel aprender e utilizar a metodologia aacutegil com Scrum para guiar o processo de de-senvolvimento

Ao fim do ciclo de desenvolvimento conseguiu-se entregar um aplicativo em funciona-mento que fornece a previsatildeo de espera no instante da consulta de estabelecimentos cadas-trados no banco de dados armazenado na nuvem

Na versatildeo atual do aplicativo natildeo foi implementado um sistema para o cadastro de novosestabelecimentos Isso soacute eacute possiacutevel atraveacutes da inserccedilatildeo direta no banco de dados atraveacutes dainterface fornecida pelo console do Firebase Atualmente estatildeo cadastrados 5 restaurantesos quais foram visitados durante o desenvolvimento do projeto Para que o cadastro deestabelecimentos escale seria necessaacuterio a implementaccedilatildeo de uma funcionalidade que permitaao usuaacuterio adicionar novos estabelecimentos a partir de locais disponiacuteveis na API de locaisda Google

43

45

46 APEcircNDICE A

Apecircndice A

Dados coletados

Figura A1 Dados de tempo de espera para grupos de tamanhos variados para cada horaacuterio e emcada dia da semana obtidos em entrevista em restaurantes Outback Steakhouse Shopping Uniatildeo nomecircs de outubro

Referecircncias Bibliograacuteficas

[1] Backpropagation httpmbpsourceforgenet Accesso em Janeiro 2017 14

[2] Bitbucket httpsbitbucketorgproduct Accesso em Dezembro 2016 19

[3] Crowdsourcing httpswwwmerriam-webstercomdictionarycrowdsourcing Ac-cesso em Novembro 2016 21

[4] Designing a survey httpwwwsciencebuddiesorgscience-fair-projectsproject_ideasSoc_surveyshtml Accesso em Outubro 2016 4 23

[5] Facebook httpswwwfacebookcom Accesso em Novembro 2016 24

[6] Firebase httpsfirebasegooglecom Accesso em Agosto 2016 20

[7] Getin app httpswwwgetinappcombrhomesao-paulo Accesso em Novembro2016 9

[8] Git 11 primeiros passos - sobre controle de versatildeo httpsgit-scmcombookpt-brv1Primeiros-passos-Sobre-Controle-de-Vers Accesso em Novembro 2016 19

[9] Google forms httpsdocsgooglecomforms Accesso em Novembro 2016 23

[10] Guia definitivo do project model canvas Project Builder 3

[11] Jsonorg introducing json httpwwwjsonorg Accesso em Novembro 2016 17

[12] Manifesto para desenvolvimento Aacutegil de software httpagilemanifestoorgisoptbrmanifestohtml Accesso em Novembro 2016 5

[13] Nosql httpsenwikipediaorgwikiNoSQL Accesso em Novembro 2016 20

[14] Outback steakhouse httpswwwoutbackcombrhome Accesso em Novembro 20169

[15] Restful api development with lumen microframework httpsbelitsoftcomlaravel-development-servicesapi-development Accesso em Novembro 2016 17

[16] Scrum httpswwwatlassiancomagilescrum Accesso em Novembro 2016 5

[17] Smartphone os market share 2016 q2 httpwwwidccomprodservsmartphone-os-market-sharejsp Accesso em Novembro 2016 15

[18] Smartphone os sales market share kantar worldpanel comtech httpwwwkantarworldpanelcomsmartphone-os-market-share Accesso em Novembro 2016 15

[19] Sourcetree httpswwwsourcetreeappcom Accesso em Dezembro 2016 19

47

48 REFEREcircNCIAS BIBLIOGRAacuteFICAS

[20] Sql httpsptkhanacademyorgcomputingcomputer-programmingsql Accesso emDezembro 2016 20

[21] Trello httpstrellocom Accesso em Novembro 2016 6

[22] Usability test httpsenwikipediaorgwikiUsability_testing Accesso em Novembro2016 36

[23] Versionone 2012 agile dev survey httpswwwversiononecompdf7th-Annual-State-of-Agile-Development-Surveypdf Accesso em Novembro 2016 5

[24] Waze httpswwwwazecom Accesso em Novembro 2016 1

[25] What is an open source httpsopensourcecomresourceswhat-open-source Accessoem Novembro 2016 15

[26] Xml tutorial httpwwww3schoolscomxml Accesso em Novembro 2016 17

[27] Paulo F Cabral dos Anjos Jr Aron Ifanger Maciel Christopher Silva de Paacutedua Com-posiccedilatildeo de carteiras de accedilotildees utilizando modelo de redes neurais artificiais e modelo derisco e retorno de Markowitz 2012 14

[28] Google Distance matrix api documentation httpsdevelopersgooglecommapsdocumentationdistance-matrix Accesso em Novembro 2016 17

[29] Alan Klement Designing features using job stories httpsblogintercomcomusing-job-stories-design-features-ui-ux Accesso em Novembro 2016 6

[30] Azmat Nafees Queuing theory and its application analysis of the sales checkout opera-tion in ica supermarket httpwwwstatisticsduseessaysD07ENafeespdf Accessoem Novembro 2016 12

[31] Eric Ries A Startup Enxuta Lua de papel primeira ediccedilatildeo edition 2012 3

  • Introduccedilatildeo
    • Motivaccedilatildeo
    • Trabalho Proposto
    • Estrutura da monografia
      • Estudos Preliminares
        • Desenvolvimento de Startups
          • Desenvolvimento de Questionaacuterios
            • Metodologia Aacutegil
            • Jobs to be done
            • Caacutelculo da previsatildeo do tempo de espera na fila
              • Descriccedilatildeo do problema
              • Meacutetodos de caacutelculo da espera
                  • Tecnologias utilizadas
                    • O sistema Android
                      • Organizaccedilatildeo de uma aplicaccedilatildeo Android
                        • JSON
                        • Google APIs
                        • Localizaccedilatildeo do Usuaacuterio
                        • Controle de Versatildeo
                        • Banco de dados
                          • Firebase
                            • Crowdsourcing
                              • Desenvolvimento do Projeto
                                • Pesquisa de Mercado
                                  • Pesquisa com o usuaacuterio
                                    • Projeto do Aplicativo
                                    • Aplicaccedilatildeo dos meacutetodos de caacutelculo de espera
                                      • Aplicando a meacutedia por periacuteodo
                                      • Aplicando teoria das filas
                                      • Aplicando redes neurais
                                      • Conclusatildeo sobre os meacutetodos estudados
                                        • Definiccedilatildeo da Interface do aplicativo
                                        • Explicaccedilatildeo das funcionalidades
                                        • Implementaccedilatildeo do banco de dados
                                          • Conclusatildeo
                                          • Dados coletados
                                          • Referecircncias Bibliograacuteficas

Capiacutetulo 1

Introduccedilatildeo

Este capiacutetulo introduz o problema abordado a soluccedilatildeo proposta os objetivos do projetoe apresenta a estrutura da monografia

11 MotivaccedilatildeoEnfrentamos filas para realizar diversas atividades ao longo do dia Nosso tempo eacute gasto

esperando desde alguns minutos para pedir o almoccedilo ateacute horas para assistir um determinadoshow Ao todo muitas horas de nossas vidas satildeo desperdiccediladas nessas esperas

Muitas vezes somos surpreendidos por filas interminaacuteveis ou entatildeo pela ausecircncia delascriando a impressatildeo de que estas satildeo totalmente imprevisiacuteveis Isso acaba gerando a difi-culdade de programar com precisatildeo outras atividades pois natildeo sabemos ao certo quantotempo iremos gastar em esperas ao longo do dia Deixamos muitos deveres ou ateacute mesmomomentos de lazer de lado por causa disso e se tiveacutessemos como prever esse tempo gastopoderiacuteamos otimizar nosso dia

Esse e outros problemas podem ser minimizados agrave medida que o acesso agrave informaccedilatildeoseja histoacuterica ou em tempo real eacute facilitado Uma forma de fornecer essa informaccedilatildeo aousuaacuterio eacute atraveacutes da tecnologia Um exemplo disso eacute o aplicativo de navegaccedilatildeo Waze [24]que disponibiliza dados do tracircnsito em tempo real ajudando na locomoccedilatildeo diaacuteria Isso eacutepossiacutevel graccedilas aos avanccedilos tecnoloacutegicos e a maior acessibilidade aos dispositivos moacuteveisconectados agrave internet por exemplo

12 Trabalho PropostoAo vislumbrarmos esse problema tanto na vida dos outros como nas nossas e motivados

a utilizar nossos conhecimentos adquiridos ao longo do curso de Ciecircncia da Computaccedilatildeodecidimos desenvolver um aplicativo para diminuir esse desconforto causado pelas filas Essasoluccedilatildeo eacute um sistema

∙ desenvolvido na plataforma Android

∙ baseado em uma modelagem de sistema de filas

que tem como objetivo prever o tempo de espera dos usuaacuterios em filas e assim auxiliaacute-losnas suas decisotildees

1

2 INTRODUCcedilAtildeO 13

Para desenvolver uma soluccedilatildeo para o problema e dada a limitaccedilatildeo de tempo para o de-senvolvimento decidimos implementar a soluccedilatildeo apenas para as filas de restaurantes Estaescolha foi feita por serem locais muito frequentados e assim gerarem mais dados em menostempo e pela diversidade de tamanho das esperas gerando o interesse no estudo de suamodelagem

Implementou-se um aplicativo no qual o usuaacuterio pode fazer uma consulta sobre os res-taurantes cadastrados no banco de dados e ter acesso ao tempo de deslocamento somado aotempo de espera ateacute seu atendimento no estabelecimento Aleacutem disso ele tem a possibilidadede traccedilar uma rota ateacute o local e enviar um feedback sobre quanto tempo foi gasto na filapara aprimorar o calculo do tempo de espera

13 Estrutura da monografiaPara que fosse possiacutevel o desenvolvimento de um aplicativo para previsatildeo de tempo de es-

pera foi necessaacuterio estudar o processo de criaccedilatildeo de startups um processo de desenvolvimentode software tecnologias para programaccedilatildeo em Android bem como algumas modelagens es-tatiacutesticas de previsatildeo de tempo de espera A monografia foi estruturada de acordo comessas informaccedilotildees de modo que o leitor possa ter uma leitura progressiva dividida em trecircsprincipais partes

∙ Estudos preliminares Essa seccedilatildeo apresenta estudos sobre o que eacute necessaacuterio para odesenvolvimento de Startups a definiccedilatildeo da metodologia de desenvolvimento utilizadapelo grupo e o estudo da aplicaccedilatildeo de trecircs diferentes modelagens estatiacutesticas feitaspara analisar os dados iniciais fornecendo um modo de calcular o tempo de espera emum restaurante em um dado instante

∙ Tecnologias utilizadas Onde satildeo apresentadas as tecnologias e ferramentas utiliza-das para auxiliar no desenvolvimento do aplicativo

∙ Desenvolvimento do projeto Essa parte apresenta a aplicaccedilatildeo dos meacutetodos decaacutelculo de espera vistos na seccedilatildeo anterior e o processo de desenvolvimento do aplicativoem si

Capiacutetulo 2

Estudos Preliminares

21 Desenvolvimento de StartupsO desenvolvimento do projeto foi baseado nos meacutetodos utilizados em Startups O grupo

seguiu os princiacutepios da Startup Enxuta [31] no qual um produto miacutenimo deve ser criado eentatildeo incrementado atraveacutes do estudo das necessidades do usuaacuterio A partir de uma pesquisacom o puacuteblico alvo a ideia inicial eacute lapidada e um produto com o miacutenimo de funcionalidadespossiacutevel eacute desenvolvido para entatildeo retornar aos usuaacuterios que iratildeo validaacute-lo Este processo eacuterepetido ateacute que um produto final seja completamente desenvolvido independente da ideiaque se tinha no iniacutecio O processo tem como foco economizar recursos e suprir a necessidadedo usuaacuterio de forma raacutepida e eficiente

De acordo com o livro A Startup Enxuta[31] esta metodologia prioriza o desenvolvi-mento iterativo com a participaccedilatildeo do cliente a cada etapa ao inveacutes de procuraacute-lo somentena entrega do produto final Nessa metodologia temos alguns princiacutepios que guiam o desen-volvimento de projetos

1 Mapeamento do negoacutecio atraveacutes do diagrama conhecido como ldquocanvas do modelo denegoacuteciosrdquo que nos mostra resumidamente uma visatildeo geral do projeto

2 Pesquisas feitas com os usuaacuterios no mercado para saber suas opiniotildees sobre o negoacutecioe posteriores mudanccedilas ou ajustes no projeto com base nos resultados

3 Desenvolvimento do produto utilizando algum meacutetodo aacutegil

Inicialmente deve-se traccedilar os primeiros objetivos do projeto utilizando o diagrama Can-vas [10] (figura 21) Esse diagrama eacute utilizado para auxiliar empresas a ter uma visatildeo macrodo projeto fornecendo uma forma de visualizar suas dependecircncias e permitindo planejartraccedilar e gerenciar um plano de desenvolvimento Ele possui perguntas que devem ser res-pondidas em seus quadros e no decorrer desse processo o projeto vai sendo adaptado deacordo com as limitaccedilotildees impedimentos e novas ideias que vatildeo surgindo

3

4 ESTUDOS PRELIMINARES 21

Figura 21 Modelo do Diagrama Canvas

Com o modelo de negoacutecios definido o proacuteximo passo eacute a realizaccedilatildeo de uma pesquisa como puacuteblico para validaacute-lo Essa fase do desenvolvimento pode ser refeita quantas vezes foremnecessaacuterias reescrevendo o Canvas conforme a interpretaccedilatildeo da necessidade do usuaacuterio

211 Desenvolvimento de Questionaacuterios

De acordo com o manual Designing a Survey [4] um questionaacuterio eacute criado para obterinformaccedilotildees para conduzir o desenvolvimento de um projeto de acordo com as preferecircnciasdo puacuteblico alvo Ele deve ser curto e conciso e deve capturar somente informaccedilotildees que sejamrelevantes para a pesquisa

Os passos para o desenvolvimento de um bom questionaacuterio satildeo

∙ Definir os dados necessaacuterios

∙ Desenvolver as questotildees

∙ Remover qualquer questatildeo que natildeo captura os dados definidos previamente

As questotildees podem ser moldadas de trecircs maneiras

∙ Estruturadas Questotildees que possuem resposta fixa Exemplo

Vocecirc usa transporte puacuteblico

( )Sim

( )Natildeo

22 METODOLOGIA AacuteGIL 5

∙ Natildeo Estruturadas Questotildees de resposta aberta Exemplo

O que vocecirc costuma fazer para evitar filas

∙ Parcialmente Estruturadas Questotildees mistas Exemplo

Qual meio de transporte vocecirc usa

( )Carro

( )Moto

( )Outros______

22 Metodologia AacutegilA metodologia aacutegil tem sido adotada pelas empresas hoje em dia por conta dos melhores

resultados obtidos em relaccedilatildeo agraves metodologias tradicionais[23] Essa eacute caracterizada pelavalorizaccedilatildeo de

∙ ldquoIndiviacuteduos e interaccedilotildees mais que processos e ferramentasrdquo

∙ ldquoSoftware em funcionamento mais que documentaccedilatildeo abrangenterdquo

∙ ldquoColaboraccedilatildeo com o cliente mais que negociaccedilatildeo de contratosrdquo

∙ ldquoResponder a mudanccedilas mais que seguir um planordquo [12]

Eacute uma metodologia que envolve trabalho em equipe encontros regulares com o clientedesenvolvimento iterativo e com menos foco em planejamento estrito e ideias definitivasdiferente de metodologias mais tradicionais que satildeo mais focadas em projetos bem docu-mentados com pouca possibilidade de mudanccedila ao final do processo Decidiu-se por utilizara metodologia aacutegil neste projeto pois natildeo haviam ideias completamente definidas inicial-mente e para o grupo a opiniatildeo do puacuteblico alvo sobre o produto era fundamental em cadaiteraccedilatildeo do processo podendo haver mudanccedilas inesperadas dependendo do feedback recebido

Dentre as opccedilotildees de metodologias aacutegeis O meacutetodo Scrum[16] eacute um que eacute definido comoum gerenciador e um processo de controle que foca em construir um software que conheceas necessidades do negoacutecio devolvendo incrementalmente um software

Com o Scrum o software eacute desenvolvido em iteraccedilotildees de tamanho fixo chamadas deSprints que tem duraccedilatildeo de tipicamente duas a quatro semanas Em cada Sprint um nuacutemerofixo de histoacuterias (que se traduzem em tarefas) satildeo selecionadas pelo grupo para seremutilizadas na sprint(figura 22) Haacute tambeacutem um sistema de motivaccedilatildeo para o time como osMilestones que satildeo objetivos menores distribuiacutedos por toda a sprint ajudando na mediccedilatildeode desemprenho da equipe e graacuteficos Burndown que mostram o progresso de cada iteraccedilatildeopara que o time sinta o progresso no desenvolvimento

6 ESTUDOS PRELIMINARES 23

Figura 22 Dinacircmica do Scrum

Para controle das iteraccedilotildees foi utilizado o software Trello [21] que eacute um gerenciador detarefas de projeto (figura 23)

Figura 23 Interface do Trello - durante o processo de desenvolvimento

23 Jobs to be donePara implementar o aplicativo buscou-se uma metodologia para guiar esse processo desde

sua criaccedilatildeo ateacute sua validaccedilatildeo Duas metodologias conhecidas pelo grupo foram analisadas eestudadas Jobs To Be Done e Personas and Use Cases

Segundo Alan Klement[29] Personas satildeo clientes imaginaacuterios descritos pela idade sexoraccedila e haacutebitos semanais O uso delas natildeo eacute adequado para responder perguntas como ldquoPorqueo cliente quer saber o tamanho da filardquo pois quando a resposta eacute ldquoEle estaacute com pressa paracomerrdquo natildeo fica claro quais satildeo as reais necessidades do usuaacuterio Essa descriccedilatildeo tambeacutem natildeoeacute uacutetil no desenvolvimento de uma boa interface pois natildeo ajuda na hora de responder se umcerto botatildeo realmente deixa claro sua funcionalidade

23 JOBS TO BE DONE 7

Tambeacutem segundo Alan Klement Use Cases possuem 3 grandes problemas usam perso-nas casam implementaccedilotildees motivaccedilotildees e resultado e ignoram contexto situaccedilotildees e ansie-dades

Se uma funcionalidade definida por uma Use Case falhar seraacute difiacutecil identificar o pro-blema pois por casar informaccedilotildees diferentes surgiraacute a dificuldade de saber o que estaacute erradoa implementaccedilatildeo as suposiccedilotildees sobre as motivaccedilotildees ou os resultados

Observando-se esses fatos optou-se pelo uso da metodologia Jobs to Be Done pois haacuteuma mudanccedila na forma de fazer histoacuterias a fim de evitar os problemas observados em Per-sonas e Use Cases(Figura 24) Nesse modelo as Personas satildeo pessoas reais e as histoacuterias satildeoescritas com a seguinte divisatildeo situaccedilatildeo motivaccedilatildeo e resultados esperados

Nessa metodologia criamos histoacuterias descrevendo tarefas para que os usuaacuterios se colo-quem na situaccedilatildeo descrita Observando-os eacute possiacutevel saber se a tarefa foi realizada de formabem sucedida e caso contraacuterio identificar onde e o que estaacute causando a falha no instanteda realizaccedilatildeo dela

Figura 24 Diferenccedila entre estruturas de histoacuterias

8 ESTUDOS PRELIMINARES 24

Algumas das histoacuterias criadas para os testes de interface do grupo foram

∙ Quando eu estiver na tela de lista de restaurantes eu quero acessar a tela de detalhesdo restaurante que eu desejo saber o tempo de espera entatildeo eu posso ver com clarezaas informaccedilotildees e posso traccedilar uma rota para o estabelecimento

∙ Quando eu estiver na tela principal eu quero enviar meu feedback sobre o tempo deespera no estabelecimento que estou entatildeo eu posso ajudar outros usuaacuterios por meiodo aplicativo

24 Caacutelculo da previsatildeo do tempo de espera na filaAtraveacutes de pesquisas em busca de meacutetodos estatiacutesticos para se estudar o comportamento

das filas foram encontradas as trecircs metodologias descritas nesta seccedilatildeo Este capiacutetulo conteacutema explicitaccedilatildeo do problema estudado e suas possiacuteveis soluccedilotildees

241 Descriccedilatildeo do problema

Para que se chegasse a uma soluccedilatildeo apropriada o problema de espera em fila precisouser estudado Esse problema pode ser descrito da seguinte forma dado um restaurante aentrada nesse eacute atraveacutes de uma fila Essa fila tem seu tamanho redefinido agrave medida quenovos clientes chegam e saem dela A saiacuteda dos clientes pode ser devido a desistecircncia ou aacomodaccedilatildeo deles nas mesas A entrada eacute definida pela disponibilizaccedilatildeo de lugares livres agravemedida em que os grupos que estavam alocados terminam seu atendimento

Figura 25 Esquema simplificado do funcionamento do processo em um restaurante

A fila de espera eacute influenciada por dois fatores a taxa de chegada do cliente e a taxa deatendimento nas mesas

∙ chegada em restaurantes a chegada de clientes eacute definida por uma taxa O clienteneste caso representa um grupo com tamanho variaacutevel A distribuiccedilatildeo do tamanho dogrupo nas chegadas eacute variaacutevel

∙ O atendimento a alocaccedilatildeo do grupo eacute organizada pela recepccedilatildeo O meacutetodo utilizadopor eles natildeo eacute padronizado e muitas vezes eacute completamente subjetivo Por exemplose acontecer de um grupo grande e vaacuterios casais chegarem ao mesmo tempo e nesse

24 CAacuteLCULO DA PREVISAtildeO DO TEMPO DE ESPERA NA FILA 9

momento existir um espaccedilo no salatildeo que acomode o grupo (juntando as mesas) outodos os casais (com as mesas separadas) dependendo de quem estaacute responsaacutevel poralocaacute-los cada um receberaacute uma prioridade diferente e essa decisatildeo natildeo eacute padronizada

∙ A disposiccedilatildeo das mesas a disposiccedilatildeo e quantidade de mesas natildeo satildeo padronizadasentre restaurantes de uma mesma rede muito menos entre restaurantes diferentesAleacutem disso a formataccedilatildeo do salatildeo pode ser remodelada de acordo com a necessidadede alocaccedilatildeo dos clientes haacute gerentes que evitam essa movimentaccedilatildeo ou ateacute mesmorestaurantes que natildeo tecircm essa possibilidade

242 Meacutetodos de caacutelculo da espera

Com o problema desenhado desta maneira esboccedilou-se trecircs possiacuteveis meacutetodos de resoluccedilatildeoe um desses foi aplicado na soluccedilatildeo final Os meacutetodos desenvolvidos satildeo meacutedia por periacuteodoaplicaccedilatildeo da teoria das filas e utilizaccedilatildeo de redes neurais Essas teacutecnicas precisam de dadospara serem desenvolvidas e aplicadas Por conta disso buscou-se fontes que suprissem essanecessidade

Captaccedilatildeo dos dados para a anaacutelise

Para que seja possiacutevel aplicar os meacutetodos estudados eacute necessaacuterio obter dados para aplicarna anaacutelise Estes foram obtidos de duas formas a partir de uma parceria com a empresa GetIn [7] desenvolvedora de um aplicativo de gerenciamento de filas de restaurantes e atraveacutesde pesquisas presenciais em restaurantes da rede Outback Steakhouse[14] selecionados para oestudo(Apecircndice A) O aplicativo da Get In possui uma funcionalidade principal realizaccedilatildeode uma reserva em um determinado restaurante O banco de dados manteacutem o registro detodos os usuaacuterios que entram na fila e esses dados satildeo organizados em uma tabela com osseguintes campos

∙ Origem Se a reserva foi realizada de forma remota ou presencial Assim

1 Reserva presencial (na entrada do restaurante incluiacuteda pela recepcionista)

2 Reserva remota (realizada atraveacutes do aplicativo)

∙ Entrada este consiste na data e hora que o usuaacuterio entrou na fila

∙ Qtd Pessoas tamanho do grupo para o qual a reserva foi feita

∙ Prioritaacuterio se este grupo requer atendimento prioritaacuterio

0 Natildeo

1 Sim

∙ Notificado A data e horaacuterio em que o grupo foi notificado que sua mesa estava pronta

ndash Quando NULL a recepcionista natildeo notificou essa pessoa (possivelmente chamoudiretamente pelo nome)

∙ Tempo na Espera Tempo que o grupo ficou ativo na fila de espera (em segundos)

∙ Status Qual a situaccedilatildeo da reserva do grupo Podendo assumir tais valores

0 Cancelado pela recepcionista

10 ESTUDOS PRELIMINARES 24

2 Sentado

3 Cancelado pelo proacuteprio Usuaacuterio

Para melhor entender estes paracircmetros o funcionamento do aplicativo deve ser expli-cado com maior detalhamento O processo de reserva funciona da seguinte forma o usuaacuterioreserva seu lugar atraveacutes do aplicativo ou vai ao restaurante e a recepcionista o adiciona agraveespera No primeiro caso o usuaacuterio tem um tempo de toleracircncia para chegar ao estabeleci-mento apoacutes receber a notificaccedilatildeo caso natildeo consiga chegar a tempo a reserva eacute cancelada Nosegundo caso quando o grupo a ser chamado estaacute proacuteximo da recepccedilatildeo a funcionalidade denotificaccedilatildeo natildeo precisa ser usada o responsaacutevel pode se direcionar diretamente aos clientes echamaacute-los pelo nome Mesmo nesse segundo caso o tempo de espera na fila ainda eacute guardadopois a recepccedilatildeo precisa ldquofecharrdquo a espera do grupo para chamar o proacuteximo

Poreacutem a utilizaccedilatildeo desses dados natildeo foi liberada pela empresa Get In para serem usadoscomo banco de dados do aplicativo somente foram fornecidos dados do mecircs de agosto esetembro de 2016 para que fossem utilizados nas anaacutelises feitas com os modelos estatiacutesticosPara obter dados que poderiam ser utilizados no banco de dados do aplicativo foi neces-saacuterio uma pesquisa presencial onde o grupo visitou alguns restaurantes da rede OutbackSteakhouse para obter informaccedilotildees sobre o tempo de espera nestes estabelecimentos

Foram visitados 5 restaurantes Outback Steakhouse Shopping Eldorado Outback Ste-akhouse Shopping Villa Lobos Outback Steakhouse Shopping Granja Vianna Outback Ste-akhouse Shopping Uniatildeo de Osasco e Outback Steakhouse Shopping Market Place ondequestionamos sobre o tempo de espera por tamanho de grupos (em nuacutemero de pessoas) epor horaacuterio e dia da semana

Ao analisar os dados coletados pela pesquisa presencial notamos que estes estavam sus-cetiacuteveis a erros por terem sido obtidos por meio de diferentes observaccedilotildees humanas Ummeacutetodo para obter dados mais precisos consistiria na realizaccedilatildeo de novas pesquisas no for-mato mediccedilatildeo onde cada integrante do grupo deveria coletar o tempo de espera de cadacliente atraveacutes de um cronocircmetro e calcular o tempo de espera meacutedio nesse horaacuterio Comoo grupo natildeo conseguiria aplicar este meacutetodo optou-se por melhorar a precisatildeo dos dadoscoletados usando como base o graacutefico de horaacuterios de pico disponibilizado pela Google paracada restaurante Essa melhora foi feita utilizando-se caacutelculos de proporccedilatildeo de valores

24 CAacuteLCULO DA PREVISAtildeO DO TEMPO DE ESPERA NA FILA 11

Primeiro meacutetodo Meacutedia por periacuteodo

Figura 26 Esquema do meacutetodo meacutedia por periacuteodo

Para que uma previsatildeo de espera possa ser fornecida ao usuaacuterio essa deve basear-seobrigatoriamente em alguma informaccedilatildeo preacutevia Contudo encontrar uma fonte para taisdados se mostrou uma tarefa muito complicada Para conseguir ainda assim apresentar umtempo de espera em fila meacutetodos de anaacutelise foram definidos de acordo com a quantidade dedados disponiacutevel para cada estabelecimento

De um modo geral neste modelo o caacutelculo do tempo de espera funcionaraacute da seguinteforma calcular-se-aacute a meacutedia de espera para o dia da semana e horaacuterio requeridos pelousuaacuterio sem diferenciar feriados de dias normais Dependendo de quatildeo longo eacute o histoacutericoniacuteveis de especificidade podem ser adicionados ou seja numa busca tempo de espera em 9de Dezembro (segunda-feira) agraves 19h no restaurante X a query selecionaraacute todos os registrosfeitos no dia 9 de dezembro entre as 19h e agraves 20h dos uacuteltimos anos no restaurante X e realizaraacuteessa meacutedia ou pode selecionar apenas linhas de todas as segundas-feiras do mecircs de Dezembrodeste mesmo periacuteodo

∙ Muitos dados neste caso um maior niacutevel de especificidade pode ser aplicado sem autilizaccedilatildeo de outras fontes para complementar o banco de dados

∙ Alguns dados o niacutevel de especificidade eacute bem menor apenas filtrando por dia dasemana e intervalo de hora sem mecircs ou dia especiacutefico no ano Em alguns casos aquantidade de dados eacute tatildeo pequena que deve-se recorrer a outras fontes A Googletem disponibilizado graacuteficos com a distribuiccedilatildeo dos clientes nos horaacuterios de funciona-mento de estabelecimentos Esses dados natildeo estatildeo disponiacuteveis em sua API ou seja natildeo

12 ESTUDOS PRELIMINARES 24

haacute uma forma automaacutetica para que o aproveitamento desses possa ser feito Poreacutemmesmo omitindo-se os valores do graacutefico o perfil da distribuiccedilatildeo e o horaacuterio de picosatildeo aproveitados manualmente para nosso sistema

∙ Poucos dados para este caso fizemos o balanceamento dos dados da Google comas informaccedilotildees retiradas das entrevistas Aleacutem do aproveitamento das informaccedilotildees daGoogle foram realizadas pesquisas com funcionaacuterios dos restaurantes

Segundo meacutetodo Teoria das filas

Filas podem ser vistas como um sistema dinacircmico no qual existe um conjunto de usuaacuteriosque satildeo atendidos por um conjunto de atendentes de acordo com a ordem de chegada dosusuaacuterios A teoria de filas busca utilizando anaacutelises matemaacuteticas estudar o comportamentodestas filas para estimar o tempo de espera com base em um conjunto inicial de dadospreviamente fornecido[30]

Um sistema de filas possui como caracteriacutesticas

∙ Modelo de chegada dos usuaacuterios Utiliza como base o tempo entre as chegadasdos usuaacuterios

∙ Modelo de serviccedilo (atendimento aos usuaacuterios) Utiliza como base o tempo gastono atendimento ao usuaacuterio No caso dos restaurantes equivale ao tempo que um grupopassa na mesa ateacute a sua saiacuteda

∙ Nuacutemero de servidores Eacute o nuacutemero de atendentes disponiacuteveis no sistema Para omodelo do restaurante este equivale agraves mesas disponiacuteveis no salatildeo

∙ Capacidade do sistema Eacute o nuacutemero de usuaacuterios que o sistema eacute capaz de atenderInclui o nuacutemero de usuaacuterios que estatildeo sendo atendidos somado com os que esperamna fila Se este paracircmetro natildeo for informado o sistema eacute considerado com capacidadeilimitada

∙ Tamanho da populaccedilatildeo nuacutemero potencial de clientes que podem chegar a umsistema Pode ser finito ou infinito

∙ Disciplina da fila A disciplina da fila pode ser FIFO (first in first out) - o primeiroa chegar eacute o primeiro a ser atendido LIFO (last in first out) - o uacuteltimo a chegar eacuteo primeiro a ser atendido ALEATOacuteRIO - os atendimentos satildeo feitos sem qualquerpreocupaccedilatildeo com a ordem de chegada COM PRIORIDADE - os atendimentos satildeofeitos de acordo com prioridades estabelecidas No caso dos restaurantes a disciplinaadotada eacute a FIFO poreacutem esta pode mudar de acordo com o atendente responsaacutevel

Os tempos mencionados nos modelos de chegada e de serviccedilo podem ser constantesquando os intervalos entre as chegadas dos usuaacuterios satildeo iguais ou variaacuteveis quando os valo-res desses intervalos variam Nesse uacuteltimo caso o intervalo de tempo segue uma distribuiccedilatildeode probabilidades Nesse modelo tambeacutem existe a taxa meacutedia de chegada dos usuaacuterios porunidade de tempo ou seja quantos usuaacuterios chegam em uma hora

As filas podem ser moldadas em trecircs situaccedilotildees baacutesicas como descrito por Azmat Nafees[30]

∙ Modelo de fila de canal uacutenico com fila uacutenica e atendimento uacutenico (Figura 27)

24 CAacuteLCULO DA PREVISAtildeO DO TEMPO DE ESPERA NA FILA 13

∙ Modelo de fila de canal uacutenico com fila uacutenica e muacuteltiplos atendimentos paralelos (Fi-gura 28)

∙ Modelo de fila de canal uacutenico com muacuteltiplas filas e muacuteltiplos atendimentos paralelos(Figura 29)

Figura 27 Modelo de fila de canal uacutenico com fila uacutenica e atendimento uacutenico

Figura 28 Modelo de fila de canal uacutenico com fila uacutenica e muacuteltiplos atendimentos paralelos

Figura 29 Modelo de fila de canal uacutenico com muacuteltiplas filas e muacuteltiplos atendimentos paralelos

Tambeacutem por Azmat Nafees nesses modelos trecircs subprocessos podem ser vistos

∙ Processo de chegada Eacute um processo contiacutenuo do evento ldquochegada de clientesrdquo ouseja quando o evento ocorre o processo aguarda a ocorrecircncia do proacuteximo evento Esseevento coloca um cliente na fila quando ele chega

14 ESTUDOS PRELIMINARES 24

∙ Processo de espera Eacute um processo que inclui o evento ldquocomece a servir o proacuteximocliente da filardquo que retira um cliente da fila o coloca no processo de atendimento eespera a conclusatildeo do evento ldquocliente servidordquo para recomeccedilar Nele se trabalha comtamanho e disciplina da fila

∙ Processo de atendimento Eacute um processo que inclui o evento ldquocliente servidordquo eespera a conclusatildeo do evento ldquocomece a servir o proacuteximo cliente da filardquo para recomeccedilarNele se trabalha com tipo taxa e tempo de atendimento

Dentre esses 3 modelos o que mais se encaixa na situaccedilatildeo de um restaurante eacute o segundomodelo canal uacutenico com fila uacutenica e muacuteltiplos atendimentos paralelos O processo de chegadade novos clientes na fila eacute tido como aleatoacuterio

Terceiro meacutetodo Rede Neural

Rede Neural eacute uma teacutecnica computacional inspirada no sistema nervoso que com o auxiacute-lio de um modelo matemaacutetico apresenta respostas para problemas de decisatildeo Esses modelosfuncionam da seguinte forma primeiro um conjunto de dados (conjunto de treinamento) eacuteapresentado ao sistema e este aprende com ele atraveacutes de reconhecimento de padratildeo entatildeocoloca-se o sistema para analisar os dados (conjunto de teste) para os quais deseja-se obteralgum resultado Este processo eacute chamado de aprendizagem de maacutequina Quanto melhor forseu treinamento mais precisas seratildeo as respostas para o segundo conjunto

Uma rede neural eacute formada por subestruturas chamadas neurocircnios Um neurocircnio tem oseguinte funcionamento ele recebe como entrada sinais cada sinal recebe um peso de acordocom a influecircncia dele na saiacuteda e uma soma eacute feita para produzir o niacutevel de atividade entatildeodependendo se o niacutevel de atividade exceder o limite dado pela funccedilatildeo de transferecircncia aresposta eacute produzida[27]

Software Multiple Back-Propagation

Para implementar a soluccedilatildeo baseada em redes neurais foi usado o Software MultipleBack-Propagation [1] Este eacute um software de faacutecil utilizaccedilatildeo que fornece uma rede a qualaprende atraveacutes do processo de propagaccedilatildeo inversa Esse meacutetodo baseia-se na comparaccedilatildeodos dados esperados (conjunto de teste) com os dados obtidos a partir do treinamento senecessaacuterio adaptaccedilotildees satildeo feitas a estrutura da rede para melhor aproximar aos dados doconjunto teste e isso eacute chamado de propagaccedilatildeo inversa

Por se tratar de um meacutetodo de aprendizagem de maacutequinas para se obter um resultadodeve-se treinar o algoritmo Primeiramente submete-se o conjunto de treinamento ao soft-ware para isso foi escolhido o mecircs de Agosto O criteacuterio de parada para o treino eacute o erroquadraacutetico meacutedio o qual teve seu valor atribuiacutedo para 001

Capiacutetulo 3

Tecnologias utilizadas

31 O sistema AndroidAndroid eacute um Sistema operacional open source (software de coacutedigo aberto o qual as

pessoas podem acessar e modificar para contribuir com o projeto [25]) e para dispositivosmoacuteveis desenvolvido pela Google baseado no Kernel do Linux e utilizado principalmente emdispositivos touchscreen Atualmente o Android eacute o sistema operacional que deteacutem a maiorparcela do mercado[17] com 836 dos dispositivos contra 134 do iOS da Apple

A Google tambeacutem oferece um ambiente de desenvolvimento para a plataforma Androidchamado Android Studio no qual os aplicativos satildeo criados e exportados para os dispositi-vos moacuteveis Aplicativos Android satildeo programados na linguagem Java com vaacuterias bibliotecasdisponibilizadas pela Google para suporte ao sistema operacional

A escolha da plataforma foi feita principalmente por conta de o sistema possuir a maiorparte dos usuaacuterios de Smartphones e tambeacutem pela ampla comunidade ativa de desenvolve-dores agrave qual se pode recorrer em casos de duacutevidas e problemas tornando suas resoluccedilotildeesmais raacutepidas e com muacuteltiplas alternativas Outros motivos que contribuiacuteram para a escolhado Android foram

∙ A disponibilidade do ambiente de desenvolvimento Android Studio que possui todosos recursos necessaacuterios para desenvolver um aplicativo funcional logo apoacutes a instalaccedilatildeosem a necessidade de utilizar outras dependecircncias as quais satildeo gerenciadas automati-camente pelo proacuteprio software

∙ O fato de no mercado brasileiro o sistema Android se encontrar em 918 dos dispo-sitivos segundo pesquisa da Kantar[18] e dado a pesquisa realizada para definiccedilatildeo depuacuteblico alvo onde foi possiacutevel perceber que 639 dos entrevistados utilizam smartpho-nes com sistema Android

∙ A utilizaccedilatildeo da linguagem de programaccedilatildeo Java para desenvolvimento que jaacute eraconhecida e fora utilizada anteriormente ao contraacuterio das linguagens Objective C eSwift linguagens utilizadas para desenvolver aplicativos para o sistema iOS Assimcomo a disponibilidade de dispositivos por parte do grupo que em sua maioria era decelulares com o sistema Android

15

16 TECNOLOGIAS UTILIZADAS 31

Figura 31 Parcela de mercado dos dispositivos no Brasil

311 Organizaccedilatildeo de uma aplicaccedilatildeo Android

Aplicativos Android satildeo divididos em componentes Haacute quatro tipos de componentespresentes Activities (ou atividades) Services (ou serviccedilos) Content providers (ou provedoresde conteuacutedo) Broadcast receivers (ou receptores de transmissatildeo)

∙ Activities Satildeo as telas e interfaces do usuaacuterio Cada tela de uma aplicaccedilatildeo eacute repre-sentada por uma activity e cada activity eacute independente de outras apesar de seremcomponentes de uma mesma aplicaccedilatildeo Isso se daacute pelo fato de haver a possibilidade deutilizar activities de aplicativos durante a execuccedilatildeo de outros Atividades satildeo iniciadase se comunicam entre si atraveacutes de objetos chamados Intent que transferem um pacotede dados que pode ser carregado no iniacutecio da nova atividade

∙ Services Sempre satildeo executados em segundo plano sem interferir na experiecircncia dousuaacuterio geralmente para realizar operaccedilotildees longas ou realizar operaccedilotildees de troca dedados enquanto o usuaacuterio estaacute utilizando outra aplicaccedilatildeo em primeiro plano

∙ Content Providers Satildeo gerenciadores de dados de aplicaccedilotildees Android utilizadospara ler e salvar dados compartilhados ou secretos dos aplicativos e do sistema

∙ Broadcast Receivers Satildeo componentes responsaacuteveis por obter eventos que aconte-ceram em outras aplicaccedilotildees ou no sistema e direcionar dados sobre esses eventos paraeventuais aplicaccedilotildees que necessitem destes dados alguns exemplos de eventos obtidospelos receptores de transmissatildeo satildeo tela desligada e bateria fraca

Aleacutem dos componentes uma parte importante de uma aplicaccedilatildeo Android eacute o ArquivoManifest que eacute uma declaraccedilatildeo de permissotildees serviccedilos e exigecircncias de hardware necessaacuterios

33 JSON 17

para o funcionamento do aplicativo Outra funccedilatildeo eacute possuir declaraccedilotildees de todos os compo-nentes utilizados no projeto nomes iacutecones entre outros

As interfaces de usuaacuterio do Android satildeo definidas em arquivos XML (eXtensible MarkupLanguage)[26] nos quais estatildeo declarados todos os layouts e configuraccedilotildees das telas Essesarquivos de layout satildeo depois inflados e satildeo gerados os componentes visuais da aplicaccedilatildeoEssa estrutura tem como objetivo facilitar o design da interface do usuaacuterio jaacute que arquivosxml satildeo de faacutecil compreensatildeo do desenvolvedor

32 JSONJSON ou Javascript Object Notation eacute um formato de dados amplamente utilizado para

troca de informaccedilotildees entre programas Possui uma notaccedilatildeo simples para grande parte dosprogramadores pois se assemelha a convenccedilotildees utilizadas em linguagens de programaccedilatildeomuito conhecidas como C C++ Python e Java O objetivo eacute que ele seja de faacutecil entendi-mento tanto para pessoas como para maacutequinas[11]

Um arquivo JSON eacute organizado como um objeto contendo pares nomevalorseparadospor viacutergulas e dentro de chaves(lsquolsquo rsquorsquo) ou como um array que eacute uma lista de valores separa-dos por viacutergulas e entre colchetes(lsquo[lsquo rsquo]rsquo) Um valor por sua vez pode ser um objeto ou umarray mas tambeacutem um nuacutemero inteiro ou uma String entre outros

Um exemplo de arquivo JSON eacute

1 2 Carros [3 4 Nome Scen ic 5 Marca Renault 6 Ano 20127 8 9 Nome Sentra

10 Marca Nissan 11 Ano 200912 13 ]14

33 Google APIsAPIs (Application Program Interfaces) satildeo interfaces para facilitar a troca de informa-

ccedilotildees entre aplicaccedilotildees utilizando comandos especiacuteficos[15]

Ao longo do desenvolvimento algumas APIs fornecidas pela Google foram utilizadascomo fonte de informaccedilotildees adicionais para o aplicativo

∙ Google Maps Distance Matrix API Esta API eacute utilizada para obter o tempo emsegundos de trajeto entre dois pontos (latlong) no mapa podem ser consultados ostempos de trajeto de carro bicicleta a peacute e utilizando transporte puacuteblico[28] Esta eacute

18 TECNOLOGIAS UTILIZADAS 35

uma API web logo utiliza-se um request http para realizar uma consulta

Por exemplo o request

httpsmapsgoogleapiscommapsapidistancematrixjsonorigins=Seattleampdestinations=Victoria+BCampkey=[user_key]

retorna o JSON

1 2 des t ina t i on_addre s s e s [ Vic tor ia BC Canada ] 3 o r i g in_addre s s e s [ Sea t t l e WA EUA ] 4 rows [5 6 e lements [7 8 d i s t anc e 9 text 172 km

10 value 17166811 12 durat ion 13 text 4 horas 40 minutos 14 value 1680915 16 s t a tu s OK17 18 ]19 20 ] 21 s t a tu s OK22

no qual eacute possiacutevel obter o tempo de trajeto em segundos

∙ Google Maps Android API Esta API eacute utilizada para habilitar o uso de mapasda Google integrados agrave aplicaccedilatildeo jaacute disponiacutevel com todas as funcionalidades de zoome arrastar presentes no aplicativo nativo permitindo tambeacutem a personalizaccedilatildeo comoa adiccedilatildeo de pontos definidos pelo usuaacuterio ao mapa

34 Localizaccedilatildeo do UsuaacuterioOutro serviccedilo que foi utilizado com o intuito de obter o tempo de trajeto e a lista ordenada

de forma personalizada de restaurantes foi a localizaccedilatildeo do usuaacuterio que eacute obtida atraveacutes doGPS presente nos smartphones Um objeto de localizaccedilatildeo eacute criado e realiza a comunicaccedilatildeocom o serviccedilo de localizaccedilatildeo do aparelho Ao obter a localizaccedilatildeo ele lanccedila um evento quepode ser acessado por outras partes da aplicaccedilatildeo obtendo a localizaccedilatildeo mais atualizada dodispositivo

36 CONTROLE DE VERSAtildeO 19

35 Controle de VersatildeoControle de versatildeo eacute uma praacutetica usada para manter a organizaccedilatildeo do coacutedigo e do seu de-

senvolvimento quando muitos desenvolvedores colaboram conjuntamente Existem softwaresque auxiliam essa organizaccedilatildeo registrando todas as mudanccedilas feitas ao longo do processo eque possui recursos que permitem que vaacuterios usuaacuterios trabalhem nos mesmos arquivos semperda de informaccedilotildees

No caso do Git [8] o projeto fica organizado em uma estrutura de aacutervore onde cadacommit (checkpoints criados pelos membros do grupo durante o processo) eacute marcado porum noacute para onde se pode retornar quando necessaacuterio Existem tambeacutem estruturas chama-das branches que satildeo bifurcaccedilotildees na estrutura para que partes do projeto sejam criadasseparadamente sem interferir com a linha principal As branches depois satildeo unidas agrave linhaprincipal atraveacutes do comando merge

Neste projeto o serviccedilo de controle de versatildeo utilizado foi o Bitbucket [2] (que eacute um ser-viccedilo web-based de controle de versatildeo que utiliza Git) com auxiacutelio do software SourceTree[19]que eacute uma interface graacutefica para os serviccedilos do Bitbucket onde eacute possiacutevel visualizar com maisfacilidade as fases do desenvolvimento do projeto e realizar os comandos mais intuitivamente

Figura 32 Interface do SourceTree que mostra o controle de versionamento do projeto

36 Banco de dadosCom o intuito de deixar o aplicativo mais completo guardando informaccedilotildees dos usuaacuterios

e dos estabelecimentos optou-se por utilizar-se um banco de dados Alguns exemplos de

20 TECNOLOGIAS UTILIZADAS 36

banco de dados aprendidos no curso Laboratoacuterio de Banco de Dados foram

∙ SQL (Structured Query Language - Linguagem de Consulta Estruturada)[20] umalinguagem para atualizar deletar e requisitar informaccedilotildees atraveacutes de consultas emtabelas que possuem relaccedilatildeo entre si

∙ noSQL[13] um banco de dados que armazena e recupera informaccedilotildees modeladas deuma forma onde natildeo satildeo usadas tabelas relacionais

Como este uacuteltimo natildeo foi o foco da disciplina por falta de tempo decidiu-se por utilizaacute-lopara que o grupo pudesse aprender melhor esse modelo

Outra decisatildeo tomada foi a hospedagem dos dados na nuvem ou seja colocaacute-los em umservidor que natildeo seja local e conseguir acessaacute-los atraveacutes de uma conexatildeo via internet Dessemodo os dados sempre estaratildeo disponiacuteveis para serem consultados

361 Firebase

Buscando-se atender as decisotildees tomadas sobre o banco de dados procuramos um serviccedilode banco de dados da Google por conter ampla integraccedilatildeo com a plataforma de desenvolvi-mento Android por ser conhecido bastante utilizado e por possuir uma ampla comunidadede desenvolvedores dispostos a oferecer auxiacutelio em foacuteruns de discussatildeo de coacutedigos

Para atender esses requisitos escolheu-se o Firebase Realtime Database[6] desenvolvido edisponibilizado pela Google que consiste em um banco de dados noSQL com armazenamentona nuvem Esse serviccedilo armazena os dados do usuaacuterio no servidor da Google em formatoJSON e a cada alteraccedilatildeo sincroniza em tempo real com todos os clientes conectados

O grupo pode observar as seguintes vantagens de se trabalhar com a ferramenta existea sincronizaccedilatildeo em tempo real dos dados de todos os clientes e sua disponibilidade mesmocom o aplicativo offline ou seja quando o aplicativo natildeo estiver conectado a internet osdados do dispositivo moacutevel seratildeo armazenados e sincronizados com o banco de dados assimque a conexatildeo estiver disponiacutevel novamente Aleacutem disso os desenvolvedores possuem acessoa um console online (figura 33) onde o JSON eacute mostrado numa interface interativa de umaforma mais amigaacutevel e no qual eacute permitido editaacute-lo facilmente

37 CROWDSOURCING 21

Figura 33 Console online do Firebase onde os dados satildeo mostrados de forma mais amigaacutevel eintuitiva

Outra observaccedilatildeo feita foi que o Firebase Realtime Database funciona como o esperadose ele guardar uma coacutepia local dos dados em um arquivo JSON no celular Poreacutem isso natildeofoi visto como um problema pois como essa coacutepia pode ser salva em um arquivo texto oespaccedilo utilizado diminui consideravelmente

Na primeira vez que os dados satildeo criados e todas as vezes em que os dados forem atua-lizados por algum dispositivo moacutevel eacute enviada uma atualizaccedilatildeo que seraacute recebida atraveacutes delisteners por todos os aparelhos que utilizam o aplicativo para que eles atualizem seus res-pectivos JSONs Listeners satildeo interfaces de comunicaccedilatildeo que executam uma seacuterie de accedilotildeesassim que um outro evento esperado acontece

37 CrowdsourcingO termo Crowdsourcing tem origem nas palavras da liacutengua inglesa Crowd (multidatildeo) e

Outsourcing (terceirizaccedilatildeo) e eacute definido pelo dicionaacuterio Merriam Webster como A praacuteticade obtenccedilatildeo de serviccedilos ideias ou conteuacutedo solicitando contribuiccedilotildees de grandes grupos depessoas e especialmente da comunidade online [3] Esta praacutetica eacute utilizada para que sejapossiacutevel agrave comunidade contribuir com dados para algum programa ou serviccedilo como no apli-cativo Waze do qual a principal fonte de dados de tracircnsito acidentes e radares eacute obtida pormeio dos proacuteprios usuaacuterios

Capiacutetulo 4

Desenvolvimento do Projeto

Este capiacutetulo aborda o processo de desenvolvimento do projeto iniciado com o preen-chimento do diagrama Canvas e uma pesquisa de mercado direcionada ao usuaacuterio A partirdas informaccedilotildees coletadas foi possiacutevel projetar um aplicativo que atendesse as necessidadesexpostas pela pesquisa e selecionar as tecnologias necessaacuterias Tambeacutem eacute abordada a aplica-ccedilatildeo dos diferentes meacutetodos de caacutelculo da previsatildeo de tempo de espera que foram estudadose explicados no Capiacutetulo 2 Por fim satildeo expostas as diferentes versotildees do aplicativo duranteo processo e seus detalhes

41 Pesquisa de MercadoAntes de iniciar-se o desenvolvimento praacutetico algumas questotildees foram levantadas se

um aplicativo com as funcionalidades escolhidas seria de alguma forma uacutetil para o usuaacuterioe se sim qual metodologia deveria ser usada para que este produto fosse entregue o maiscompleto possiacutevel ateacute o final do ano Para responder a primeira pergunta desenvolveu-seum questionaacuterio

411 Pesquisa com o usuaacuterio

O questionaacuterio foi desenvolvido para avaliar a viabilidade do aplicativo e suas funciona-lidades e foi criado utilizando-se o Google Forms [9] Essa eacute uma ferramenta desenvolvidapelo Google que possibilita a criaccedilatildeo de formulaacuterios contendo diversos formatos de pergun-tas tanto dissertativas quanto de muacuteltipla escolha

Seguindo os princiacutepios de desenvolvimento de questionaacuterios [4] o conjunto de perguntasfoi mantido curto simples e de faacutecil entendimento Tambeacutem variou-se o tipo de questotildeesentre estruturadas (questotildees com respostas em forma de alternativas) e desestruturadas(questotildees com respostas em formato texto) seguindo esses mesmos princiacutepios para captarmelhor as informaccedilotildees dos entrevistados e evitar erros de entendimento

Com as respostas do questionaacuterio tinha-se o intuito de traccedilar um possiacutevel puacuteblico alvoconhecer seu modo de uso de dispositivos moacuteveis e validar a aplicabilidade de diferentesfuncionalidades pretendidas inicialmente sendo essas engajamento do usuaacuterio atraveacutes denotificaccedilotildees do sistema aceitaccedilatildeo de sugestotildees de locais alternativos avaliaccedilatildeo da existecircnciado problema que queremos resolver (se este aplicativo supre uma necessidade real do usuaacute-rio) e aceitaccedilatildeo do aplicativo

23

24 DESENVOLVIMENTO DO PROJETO 41

Para a divulgaccedilatildeo redes sociais como Facebook [5] e sistemas de mensagem instantacircneascomo WhatsApp foram usados e o envio de respostas foi restrito ateacute trecircs semanas apoacutes suaprimeira postagem Neste periacuteodo foram obtidas 210 respostas as quais ajudaram a definiros aspectos do sistema a ser desenvolvido

O questionaacuterio foi dividido em duas subseccedilotildees perfil do usuaacuterio e funcionalidade Comelas obteve-se os seguintes resultados

41 PESQUISA DE MERCADO 25

Questatildeo 1

Figura 41 Graacutefico pizza da distribuiccedilatildeo das respostas em relaccedilatildeo a idade dos pesquisados

As faixas de idade apresentadas estatildeo desbalanceadas por natildeo terem a mesma quantidadede anos em cada uma poreacutem essa divisatildeo foi pensada levando-se em conta a fluecircncia comtecnologia que cada idade possui Com o resultado verificou-se que do puacuteblico alcanccediladocom a pesquisa a maioria estaacute na faixa de 18 a 25 anos de idade assumida como parcelacom maior conhecimento tecnoloacutegico

Questatildeo 2

Figura 42 Graacutefico pizza da distribuiccedilatildeo das respostas em relaccedilatildeo ao sistema operacional

Esta questatildeo foi pensada para medir a porcentagem de cada sistema operacional pre-sente nos celulares do puacuteblico Com ela descobriu-se que 639 das pessoas dentro desse

26 DESENVOLVIMENTO DO PROJETO 41

grupo possuem o sistema Android enquanto 234 possuem iOS e 38 Windows phoneEssa pergunta foi incluiacuteda para um melhor direcionamento do desenvolvimento do aplicativo

Uma questatildeo levantada ao aplicar esse questionaacuterio foi a dificuldade que algumas pessoasencontraram para identificar a versatildeo do proacuteprio aparelho Poreacutem para manter a consistecircnciadas respostas decidiu-se natildeo mudar nada nesta questatildeo para remediar isso

Questatildeo 3

Figura 43 Graacutefico em barras da distribuiccedilatildeo de frequecircncias mensais de cada local analisado

41 PESQUISA DE MERCADO 27

Questatildeo 4

Figura 44 Graacutefico em pizza da distribuiccedilatildeo de interesse do usuaacuterio no tempo de espera de cadalocal

A princiacutepio viu-se muitas possiacuteveis aplicaccedilotildees para a previsatildeo de tempo de espera Paraentender qual seria a prioridade do puacuteblico as questotildees acima foram incluiacutedas A primeiraverificou a frequecircncia de visitas em alguns locais e a segunda serviu para analisar qualestabelecimento despertava mais interesse nos entrevistados quanto ao quesito fila Nos doiscasos restaurantes se destacaram com o maior interesse

Questatildeo 5

Figura 45 Graacutefico em barras da distribuiccedilatildeo de interesse do usuaacuterio por cada item avaliado

Para acompanhar o dado de espera e fornecer mais informaccedilotildees relevantes ao usuaacuteriosem potencial perguntou-se quais outras informaccedilotildees eles acham interessante saber sobre umdeterminado estabelecimento Com isso descobriu-se que a faixa de preccedilo o trajeto ateacute olocal e o cardaacutepio seriam dados importantes de se obter juntamente com o tempo de espera

28 DESENVOLVIMENTO DO PROJETO 41

Questatildeo 6O que vocecirc costuma fazer para evitar filasNeste ponto testou-se se a soluccedilatildeo proposta atraveacutes do aplicativo resolveria o problema dousuaacuterio de uma forma melhor do que a soluccedilatildeo atualmente utilizada Para isso foi perguntadoo que as pessoas fazem para evitar filas e as principais respostas foram

∙ Evitar horaacuterios de pico

∙ Chegar cedo

∙ Ir em outro lugar caso uma fila seja encontrada

∙ Tentar realizar reservas antecipadamente

∙ Se distrair com livroscelular

Notou-se que as soluccedilotildees utilizadas atualmente natildeo suprem as necessidades dos entre-vistados pois mesmo em horaacuterios natildeo convencionais pode-se encontrar filas ou quandodecide-se esperar na fila muito tempo eacute perdido Concluiu-se que a soluccedilatildeo proposta a par-tir do aplicativo resolve de forma mais abrangente o problema pois ajuda o usuaacuterio a evitarhoraacuterios de pico inesperados

Questatildeo 7

Figura 46 Graacutefico em pizza da distribuiccedilatildeo do meio de transporte utilizado pelos usuaacuterios

Essa questatildeo foi formulada com o objetivo de verificar quais meios de transporte seriamincluiacutedos com previsatildeo de tempo de trajeto no aplicativo Foi verificado que a maioria dosentrevistados utilizam transporte puacuteblico seguido por carro

41 PESQUISA DE MERCADO 29

Questatildeo 8

Figura 47 Graacutefico em pizza da distribuiccedilatildeo do interesse do usuaacuterio pela informaccedilatildeo fornecida

Questatildeo 9

Figura 48 Graacutefico em pizza da distribuiccedilatildeo de quantidade de quilocircmetros que o usuaacuterio sedeslocaria para ir a um local com menos fila

Com essas questotildees foi verificado que algo importante para o usuaacuterio eacute saber de outrosestabelecimentos que possam oferecer tempos de espera menores nas redondezas de onde ousuaacuterio se encontra que eacute uma das funcionalidades que desejaacutevamos utilizar no sistema

30 DESENVOLVIMENTO DO PROJETO 41

Questatildeo 10

Figura 49 Graacutefico em barras da distribuiccedilatildeo de sentimento do usuaacuterio em relaccedilatildeo a notificaccedilatildeode aplicativos

Questatildeo 11

Figura 410 Graacutefico em pizza da distribuiccedilatildeo de opiniatildeo do usuaacuterio sobre desabilitar notificaccedilotildeesem celular

42 PESQUISA DE MERCADO 31

Questatildeo 12

Figura 411 Graacutefico em pizza da distribuiccedilatildeo de opiniatildeo do usuaacuterio sobre habilitar GPS emcelular

A ideia inicial era poder usar o GPS para verificar a localizaccedilatildeo do usuaacuterio e enviarnotificaccedilotildees quando este estivesse parado nas proximidades de algum dos estabelecimentoscadastrados Para que essa funcionalidade possa existir eacute necessaacuterio que o aplicativo tenhaacesso agrave localizaccedilatildeo precisa da pessoa atraveacutes do GPS ou internet ateacute mesmo quando natildeoestiver aberto Aleacutem disso tambeacutem eacute necessaacuterio que as notificaccedilotildees estejam habilitadas parafinalizar esta interaccedilatildeo Entatildeo as perguntas 10 11 e 12 foram incluiacutedas no questionaacuterio Ob-servando as respostas foi possiacutevel verificar que 295 das pessoas que responderam deixamambas as funcionalidades habilitadas (GPS e notificaccedilotildees) Com isso pudemos prosseguircom essa ideia e tambeacutem pensar em possiacuteveis alternativas de interaccedilatildeo e engajamento como usuaacuterio

Por conta dessa pesquisa ter sido compartilhada atraveacutes das contas das redes sociais ecomunicadores dos componentes deste grupo sabe-se que este pode apresentar um resultadoviesado mas que mesmo assim natildeo deve ser desconsiderado e que muito ajudou a sanar asduacutevidas iniciaisComo resultado traccedilamos o perfil do entrevistado

∙ Faixa etaacuteria predominante entre 18 e 30 anos

∙ Possui sistema operacional Android (versotildees 4 5 e 6)

∙ Vai a restaurantes com certa frequecircncia mensal resultando em interesses sobre infor-maccedilotildees relacionadas a esse estabelecimento

∙ Costuma chegar cedo ou evitar os horaacuterios de pico para evitar filas nos locais

∙ Carro e transporte coletivo satildeo os principais meios de transporte

∙ Se deslocaria para um estabelecimento semelhante que possui menos fila contanto queeste fique num raio de 2km de distacircncia

32 DESENVOLVIMENTO DO PROJETO 43

42 Projeto do AplicativoO grupo comeccedilou o projeto com o preenchimento do diagrama Canvas(figura 412) apre-

sentado na Seccedilatildeo 21 Desse modo foi adquirida uma ideia mais consistente e uma base paracomeccedilar a implementaccedilatildeo

Figura 412 Diagrama Canvas preenchido pelo grupo

Com o modelo de negoacutecios definido e com base no resultado da pesquisa com o usuaacuterioapresentada na seccedilatildeo seguinte foram aplicadas pequenas mudanccedilas no projeto para melhoradequar-se agraves necessidades e ao perfil do puacuteblico alvo

Para o desenvolvimento foi utilizado um meacutetodo aacutegil baseado no scrum com sprints de3 a 4 semanas devido agrave disponibilidade dos membros do grupo Os encontros natildeo eram diaacute-rios como recomendado para o meacutetodo scrum tambeacutem em razatildeo da disponibilidade Haviamstand ups (discussotildees raacutepidas no comeccedilo de cada encontro) e retrospectivas ao final de cadasprint A cada sprint eram selecionadas histoacuterias e tarefas para serem executadas e caso natildeofossem concluiacutedas ao final da iteraccedilatildeo eram inseridas ao backlog e feitas no sprint seguinte

43 Aplicaccedilatildeo dos meacutetodos de caacutelculo de espera

431 Aplicando a meacutedia por periacuteodo

Aplicando-se no trecho abaixo a teacutecnica desenvolvida na Seccedilatildeo 242 para uma queryrealizada no dia 19082016 no intervalo de 2040 - 2055 analisa-se a semana anterior quepossua tais intervalos Assim o saacutebado dia 06082016 seraacute selecionado

43 APLICACcedilAtildeO DOS MEacuteTODOS DE CAacuteLCULO DE ESPERA 33

Entrada Qtd Pessoas Notificado Espera

6816 2043 2 862016 2053 1606

6816 2044 2 862016 2055 674

6816 2048 2 862016 2056 528

6816 2048 2 862016 2057 520

6816 2051 2 862016 2107 1118

6816 2051 3 862016 2110 1305

6816 2052 2 862016 2110 1273

6816 2052 2 862016 2111 1179

6816 2053 2 862016 2112 1217

6816 2053 2 NULL 59

6816 2054 3 862016 2119 1541

6816 2055 2 862016 2117 1444

6816 2055 2 862016 2120 1570

6816 2055 2 862016 2122 1613

Tabela 41 Trecho do dia 06082016 entre os horaacuterios das 2043 agraves 2055 um intervalo de 12minutos retirado dos dados da empresa Get In

Com esses dados obteve-se a meacutedia de espera de 1080 segundos (18 minutos) a qualseria sugerida para o usuaacuterio com a busca e desvio padratildeo de 465144719 segundos (775 mi-nutos) Dentro desse intervalo tem-se como maacuteximo tempo de espera 1613 segundos (2688minutos) e como miacutenimo 59 segundos (1 minuto) Analisando-se os dados do dia 19082016no mesmo periacuteodo temos

34 DESENVOLVIMENTO DO PROJETO 43

Entrada Pessoas Notificado Espera Erro previsatildeo Erro p 2 pessoas

19816 2043 2 8192016 2051 544 -563 522

19816 2043 2 8192016 2052 605 -502 461

19816 2044 2 8192016 2056 723 -384 343

19816 2046 4 8192016 2119 1988 881 X

19816 2048 2 8192016 2102 919 188 147

19816 2051 2 8192016 2103 821 286 245

19816 2051 3 8192016 2108 1773 666 X

19816 2053 2 8192016 2110 1083 24 -17

19816 2053 2 8192016 2111 1105 2 -39

19816 2053 2 8192016 2112 1169 62 -103

19816 2055 2 8192016 2114 1447 340 -381

Tabela 42 Trecho do dia 19082016 entre os horaacuterios das 2043 agraves 2055um intervalo de 12minutos retirado dos dados da empresa Get In

Ou seja se um grupo chegasse dentro desse periacuteodo e a previsatildeo dada fosse a meacutediaobtida anteriormente o erro calculado pela diferenccedila entre o tempo sugerido e o real tempode espera estaria no intervalo de 15 minutos para menos ou 8 minutos para mais Sendoesse um valor aceitaacutevel

Um proacuteximo passo eacute a restriccedilatildeo dos registros a grupos com 2 integrantes Com tal restri-ccedilatildeo a previsatildeo de espera eacute de 1066 segundos (1776 minutos) Aplicando essa nova meacutedia aosregistros com 2 integrantes do dia 19082016 obteacutem-se um erro (Coluna 6 - erro previsatildeopara 2 pessoas) menor do que o anterior O intervalo do erro calculado neste caso seria de 522segundos (87 minutos) para mais e 381 segundos (635 minutos) para menos Este resultadoeacute ainda mais favoraacutevel mostrando que a inclusatildeo de mais filtros para o caacutelculo da previsatildeomelhorou o tempo previsto

432 Aplicando teoria das filas

A teoria das filas (Seccedilatildeo 242) eacute uma ferramenta muito completa que calcula muitos dadosuacuteteis para a previsatildeo de espera Contudo por conta da necessidade de informaccedilotildees sobreo tempo de atendimento a qual natildeo estaacute contida no banco utilizado esta teoria natildeo podeser aplicada neste caso Poreacutem esse dado pode ter um valor assumido para que a utilizaccedilatildeodessa teoria fosse possiacutevel entretanto a sua precisatildeo ficaria comprometida e imprevisiacutevel

433 Aplicando redes neurais

Para aplicar o que foi estudado na Seccedilatildeo 242 foi executado o software com o mecircs deAgosto como teste o mecircs de Setembro como treino e o limite do erro quadraacutetico como 001 eobteve-se a tabela presente no apecircndice B Na tabela podemos ver o tempo de fila esperadoou seja o tempo contido na tabela do mecircs de Setembro o tempo que o algoritmo deu comoresposta baseado no mecircs de Agosto e o erro entre eles respectivamente

44 DEFINICcedilAtildeO DA INTERFACE DO APLICATIVO 35

Figura 413 Software Multiple Back-Propagation com a configuraccedilatildeo escolhida para os dadosdisponiacuteveis

Mesmo o erro se mantendo em 0018 os dados obtidos possuem um erro padratildeo de 15minutos Se mais dados forem adicionados o criteacuterio de parada pode ser atingido e assimuma previsatildeo melhor pode ser alcanccedilada

434 Conclusatildeo sobre os meacutetodos estudados

Dentre todas as possibilidades estudadas visualizamos na meacutedia por periacuteodo a melhoropccedilatildeo assumindo os dados disponiacuteveis para teste Se mais paracircmetros fossem fornecidoscomo o tempo de atendimento a teoria das filas seria uma boa opccedilatildeo para fornecer a pre-visatildeo de espera E se mais dados estivessem disponiacuteveis as redes neurais conseguiriam umaaproximaccedilatildeo melhor e assim seria uma boa opccedilatildeo tambeacutem

44 Definiccedilatildeo da Interface do aplicativoComo um primeiro protoacutetipo foi desenvolvida uma interface simples que tinha como tela

de iniacutecio um mapa com um campo para buscas na parte superior

36 DESENVOLVIMENTO DO PROJETO 44

Figura 414 Fluxo de telas do primeiro protoacutetipo

Ao efetuar uma busca por algum estabelecimento uma tela mostrando o tempo de esperaaproximado da fila no local era exibida junto com bototildees que permitiam selecionar o meiode transporte visualizar outras opccedilotildees ou dar iniacutecio a rota ateacute o local desejado Tambeacutemhavia uma notificaccedilatildeo para quando a pessoa estivesse parada proacutexima a um restaurantecadastrado que direcionaria o usuaacuterio a uma tela com um cronocircmetro do tempo de esperana fila

Para testar essa visualizaccedilatildeo escolhemos algumas pessoas e realizamos um teste deusabilidade[22] este teste eacute feito da seguinte forma

44 DEFINICcedilAtildeO DA INTERFACE DO APLICATIVO 37

Uma contextualizaccedilatildeo eacute feita para o voluntaacuterio e entatildeo uma tarefa eacute passada para sercompletada Os integrantes do grupo observam dificuldades enfrentadas pelo entrevistado etomam notas Esse teste eacute repetido algumas vezes e seu resultado eacute coletado para avaliaccedilatildeoe modificaccedilatildeo das funcionalidades

Figura 415 Tela de detalhes de um restaurante(segunda versatildeo)

Notou-se que algumas funcionalidadespareceram confusas e natildeo intuitivas porexemplo natildeo ficou claro se o tempo mos-trado era de trajeto ou de espera na filanem qual era o meio de transporte utili-zado

Logo esse protoacutetipo foi reformuladocom o intuito de melhorar a experi-ecircncia do usuaacuterio com o nosso aplica-tivo

Foram colocados aleacutem do tempo deespera da fila o tempo que o usuaacuteriolevaria para chegar ateacute o local selecio-nado (conforme o tipo de transporte es-colhido) e a quantidade estimada de pes-soas na fila O tempo total (espera so-mado ao tempo de deslocamento) ga-nhou destaque entre as informaccedilotildees doestabelecimento e o botatildeo que direcionao usuaacuterio ao trajeto ficou mais especiacute-fico

Tambeacutem cogitou-se a possibilidade deadicionar login e um perfil de usuaacuteriojunto com uma lista de restaurantes favo-ritos

O fluxo das telas deste novo protoacutetipo ficou como mostra o esquema a seguir

38 DESENVOLVIMENTO DO PROJETO 44

Figura 416 Fluxo de telas do segundo protoacutetipo

44 DEFINICcedilAtildeO DA INTERFACE DO APLICATIVO 39

Figura 417 Tela de detalhes de um restaurante(terceira versatildeo)

Apoacutes outras avaliaccedilotildees mais algumaspequenas alteraccedilotildees foram realizadas nainterface Foi decidido que seria inviaacute-vel estimar o nuacutemero de pessoas nafila entatildeo essa funcionalidade foi remo-vida

Notificaccedilotildees foram adicionadas paraquando o usuaacuterio estiver parado na aacutereado restaurante para que ele possa con-tribuir com informaccedilotildees sobre a fila quepegou aleacutem de um botatildeo de contri-buiccedilatildeo ter sido inserido na tela ini-cial

40 DESENVOLVIMENTO DO PROJETO 45

O fluxo de telas do aplicativo atual ficou da seguinte forma

Figura 418 Fluxo de telas do terceiro protoacutetipo

46 EXPLICACcedilAtildeO DAS FUNCIONALIDADES 41

45 Explicaccedilatildeo das funcionalidadesEsta seccedilatildeo explica as funcionalidades do produto utilizando a figura 418

A tela inicial (3) exibe uma lista de restaurantes incluindo seus respectivos tempos detrajeto e tempo de espera na fila Ao clicar no botatildeo ldquo+rdquo uma caixa de diaacutelogo eacute aberta(4) onde eacute possiacutevel adicionar o tempo que o usuaacuterio esperou na fila Primeiro eacute escolhido orestaurante depois a data e hora que a pessoa chegou na fila e por fim o tempo de esperaem minutos Ao tocar em ldquoEnviar Feedback rdquo os dados satildeo incluiacutedos no banco de dados eatualizados para os outros usuaacuterios Assim eacute apicado o conceito de Crowdsourcing no apli-cativo

Ao tocar em um item da lista de restaurantes seraacute aberta a tela de detalhes de um res-taurante (5) na qual eacute possiacutevel ver com mais clareza os tempos de trajeto e espera o tempototal o endereccedilo do estabelecimento e um pequeno mapa centrado no local Pressionandoo botatildeo ldquoDireccedilotildeesrdquo o usuaacuterio seraacute redirecionado ao aplicativo de mapas de sua preferecircnciano caso do exemplo (8) o Google Maps jaacute traccedilando a rota da localizaccedilatildeo do usuaacuterio para oestabelecimento em questatildeo

Novamente na tela inicial tocando no iacutecone de lupa eacute possiacutevel realizar uma busca digi-tando o nome do estabelecimento na caixa de texto a qual exibe sugestotildees dependendo doque foi digitado Ao clicar em um dos resultados da busca o usuaacuterio eacute novamente direcionadopara a tela de detalhes do restaurante (5)

Tambeacutem eacute possiacutevel tocar no iacutecone de mapa na tela inicial onde seraacute mostrado um mapacentrado na localizaccedilatildeo do usuaacuterio

Ao ficar parado por um tempo em um mesmo local proacuteximo a um estabelecimentocadastrado o usuaacuterio eacute perguntado em uma notificaccedilatildeo quanto tempo ele permaneceu nafila Ao tocar na notificaccedilatildeo a caixa de diaacutelogo para feedback do usuaacuterio seraacute aberta (4) jaacutecom o restaurante preenchido e apoacutes o feedback a janela seraacute fechada e os dados enviadosao banco de dados

46 Implementaccedilatildeo do banco de dadosO banco de dados do aplicativo foi modelado e populado em forma de aacutervore (Fi-

gura 419) de forma a facilitar o acesso aos dados necessaacuterios ao aplicativo No primeironiacutevel estatildeo os ids dos restaurantes Cada id de restaurante guarda a localizaccedilatildeo (latitudelongitude) do restaurante o nome o endereccedilo e um objeto fila O objeto fila guarda todos osdias da semana (domingo a saacutebado) e cada dia da semana possui 24 campos um para cadahora do dia Cada hora possui o tempo meacutedio de espera da fila naquela hora e um peso paraesse tempo O peso eacute um valor que aumenta de acordo com o nuacutemero de feedbacks dadospara que o novo valor do tempo meacutedio seja calculado de forma consistente

Modelamos o banco de dados de uma forma que respeitasse uma hierarquia de dados

42 DESENVOLVIMENTO DO PROJETO 46

Figura 419 Aacutervore que ilustra a organizaccedilatildeo de um restaurante no banco de dados

Com o banco de dados jaacute populado o aplicativo faz consultas e atualizaccedilotildees de dadosConsultas satildeo feitas ao criar a tela de listagem de restaurantes e de detalhes de um restau-rante consultado As atualizaccedilotildees satildeo feitas quando o usuaacuterio manda o feedback de tempo deespera em um estabelecimento em determinado horaacuterio o aplicativo calcula a nova meacutedia eatualiza o campo do respectivo horaacuterio

Capiacutetulo 5

Conclusatildeo

Ao longo dos capiacutetulos deste trabalho pocircde-se acompanhar todo o processo de criaccedilatildeo edesenvolvimento do aplicativo que apoacutes finalizado foi batizado com o nome Queue

Comeccedilando com um problema para o qual o grupo almejava oferecer uma soluccedilatildeoacabou-se por adentrar-se um pouco no campo da Estatiacutestica e estudar diversas metodo-logias que poderiam ser uacuteteis para fornecer um caacutelculo de previsatildeo de espera meacutedia porperiacuteodo aplicaccedilatildeo da teoria das filas e utilizaccedilatildeo de redes neurais

Atraveacutes de uma parceria com a empresa GetIn obteve-se acesso a uma grande quantidadede dados e foi possiacutevel utilizaacute-los em anaacutelises feitas nas metodologias escolhidas conseguindoassim resultados relevantes Por meio destes foi feita a escolha de um dos meacutetodos para ocaacutelculo da previsatildeo de filas a meacutedia por periacuteodo

Aleacutem desses estudos ao longo do ano o grupo aprendeu a desenvolver para a plata-forma Android sobre a qual nenhum dos integrantes tinha conhecimento preacutevio Tambeacutemfoi possiacutevel aprender e utilizar a metodologia aacutegil com Scrum para guiar o processo de de-senvolvimento

Ao fim do ciclo de desenvolvimento conseguiu-se entregar um aplicativo em funciona-mento que fornece a previsatildeo de espera no instante da consulta de estabelecimentos cadas-trados no banco de dados armazenado na nuvem

Na versatildeo atual do aplicativo natildeo foi implementado um sistema para o cadastro de novosestabelecimentos Isso soacute eacute possiacutevel atraveacutes da inserccedilatildeo direta no banco de dados atraveacutes dainterface fornecida pelo console do Firebase Atualmente estatildeo cadastrados 5 restaurantesos quais foram visitados durante o desenvolvimento do projeto Para que o cadastro deestabelecimentos escale seria necessaacuterio a implementaccedilatildeo de uma funcionalidade que permitaao usuaacuterio adicionar novos estabelecimentos a partir de locais disponiacuteveis na API de locaisda Google

43

45

46 APEcircNDICE A

Apecircndice A

Dados coletados

Figura A1 Dados de tempo de espera para grupos de tamanhos variados para cada horaacuterio e emcada dia da semana obtidos em entrevista em restaurantes Outback Steakhouse Shopping Uniatildeo nomecircs de outubro

Referecircncias Bibliograacuteficas

[1] Backpropagation httpmbpsourceforgenet Accesso em Janeiro 2017 14

[2] Bitbucket httpsbitbucketorgproduct Accesso em Dezembro 2016 19

[3] Crowdsourcing httpswwwmerriam-webstercomdictionarycrowdsourcing Ac-cesso em Novembro 2016 21

[4] Designing a survey httpwwwsciencebuddiesorgscience-fair-projectsproject_ideasSoc_surveyshtml Accesso em Outubro 2016 4 23

[5] Facebook httpswwwfacebookcom Accesso em Novembro 2016 24

[6] Firebase httpsfirebasegooglecom Accesso em Agosto 2016 20

[7] Getin app httpswwwgetinappcombrhomesao-paulo Accesso em Novembro2016 9

[8] Git 11 primeiros passos - sobre controle de versatildeo httpsgit-scmcombookpt-brv1Primeiros-passos-Sobre-Controle-de-Vers Accesso em Novembro 2016 19

[9] Google forms httpsdocsgooglecomforms Accesso em Novembro 2016 23

[10] Guia definitivo do project model canvas Project Builder 3

[11] Jsonorg introducing json httpwwwjsonorg Accesso em Novembro 2016 17

[12] Manifesto para desenvolvimento Aacutegil de software httpagilemanifestoorgisoptbrmanifestohtml Accesso em Novembro 2016 5

[13] Nosql httpsenwikipediaorgwikiNoSQL Accesso em Novembro 2016 20

[14] Outback steakhouse httpswwwoutbackcombrhome Accesso em Novembro 20169

[15] Restful api development with lumen microframework httpsbelitsoftcomlaravel-development-servicesapi-development Accesso em Novembro 2016 17

[16] Scrum httpswwwatlassiancomagilescrum Accesso em Novembro 2016 5

[17] Smartphone os market share 2016 q2 httpwwwidccomprodservsmartphone-os-market-sharejsp Accesso em Novembro 2016 15

[18] Smartphone os sales market share kantar worldpanel comtech httpwwwkantarworldpanelcomsmartphone-os-market-share Accesso em Novembro 2016 15

[19] Sourcetree httpswwwsourcetreeappcom Accesso em Dezembro 2016 19

47

48 REFEREcircNCIAS BIBLIOGRAacuteFICAS

[20] Sql httpsptkhanacademyorgcomputingcomputer-programmingsql Accesso emDezembro 2016 20

[21] Trello httpstrellocom Accesso em Novembro 2016 6

[22] Usability test httpsenwikipediaorgwikiUsability_testing Accesso em Novembro2016 36

[23] Versionone 2012 agile dev survey httpswwwversiononecompdf7th-Annual-State-of-Agile-Development-Surveypdf Accesso em Novembro 2016 5

[24] Waze httpswwwwazecom Accesso em Novembro 2016 1

[25] What is an open source httpsopensourcecomresourceswhat-open-source Accessoem Novembro 2016 15

[26] Xml tutorial httpwwww3schoolscomxml Accesso em Novembro 2016 17

[27] Paulo F Cabral dos Anjos Jr Aron Ifanger Maciel Christopher Silva de Paacutedua Com-posiccedilatildeo de carteiras de accedilotildees utilizando modelo de redes neurais artificiais e modelo derisco e retorno de Markowitz 2012 14

[28] Google Distance matrix api documentation httpsdevelopersgooglecommapsdocumentationdistance-matrix Accesso em Novembro 2016 17

[29] Alan Klement Designing features using job stories httpsblogintercomcomusing-job-stories-design-features-ui-ux Accesso em Novembro 2016 6

[30] Azmat Nafees Queuing theory and its application analysis of the sales checkout opera-tion in ica supermarket httpwwwstatisticsduseessaysD07ENafeespdf Accessoem Novembro 2016 12

[31] Eric Ries A Startup Enxuta Lua de papel primeira ediccedilatildeo edition 2012 3

  • Introduccedilatildeo
    • Motivaccedilatildeo
    • Trabalho Proposto
    • Estrutura da monografia
      • Estudos Preliminares
        • Desenvolvimento de Startups
          • Desenvolvimento de Questionaacuterios
            • Metodologia Aacutegil
            • Jobs to be done
            • Caacutelculo da previsatildeo do tempo de espera na fila
              • Descriccedilatildeo do problema
              • Meacutetodos de caacutelculo da espera
                  • Tecnologias utilizadas
                    • O sistema Android
                      • Organizaccedilatildeo de uma aplicaccedilatildeo Android
                        • JSON
                        • Google APIs
                        • Localizaccedilatildeo do Usuaacuterio
                        • Controle de Versatildeo
                        • Banco de dados
                          • Firebase
                            • Crowdsourcing
                              • Desenvolvimento do Projeto
                                • Pesquisa de Mercado
                                  • Pesquisa com o usuaacuterio
                                    • Projeto do Aplicativo
                                    • Aplicaccedilatildeo dos meacutetodos de caacutelculo de espera
                                      • Aplicando a meacutedia por periacuteodo
                                      • Aplicando teoria das filas
                                      • Aplicando redes neurais
                                      • Conclusatildeo sobre os meacutetodos estudados
                                        • Definiccedilatildeo da Interface do aplicativo
                                        • Explicaccedilatildeo das funcionalidades
                                        • Implementaccedilatildeo do banco de dados
                                          • Conclusatildeo
                                          • Dados coletados
                                          • Referecircncias Bibliograacuteficas

2 INTRODUCcedilAtildeO 13

Para desenvolver uma soluccedilatildeo para o problema e dada a limitaccedilatildeo de tempo para o de-senvolvimento decidimos implementar a soluccedilatildeo apenas para as filas de restaurantes Estaescolha foi feita por serem locais muito frequentados e assim gerarem mais dados em menostempo e pela diversidade de tamanho das esperas gerando o interesse no estudo de suamodelagem

Implementou-se um aplicativo no qual o usuaacuterio pode fazer uma consulta sobre os res-taurantes cadastrados no banco de dados e ter acesso ao tempo de deslocamento somado aotempo de espera ateacute seu atendimento no estabelecimento Aleacutem disso ele tem a possibilidadede traccedilar uma rota ateacute o local e enviar um feedback sobre quanto tempo foi gasto na filapara aprimorar o calculo do tempo de espera

13 Estrutura da monografiaPara que fosse possiacutevel o desenvolvimento de um aplicativo para previsatildeo de tempo de es-

pera foi necessaacuterio estudar o processo de criaccedilatildeo de startups um processo de desenvolvimentode software tecnologias para programaccedilatildeo em Android bem como algumas modelagens es-tatiacutesticas de previsatildeo de tempo de espera A monografia foi estruturada de acordo comessas informaccedilotildees de modo que o leitor possa ter uma leitura progressiva dividida em trecircsprincipais partes

∙ Estudos preliminares Essa seccedilatildeo apresenta estudos sobre o que eacute necessaacuterio para odesenvolvimento de Startups a definiccedilatildeo da metodologia de desenvolvimento utilizadapelo grupo e o estudo da aplicaccedilatildeo de trecircs diferentes modelagens estatiacutesticas feitaspara analisar os dados iniciais fornecendo um modo de calcular o tempo de espera emum restaurante em um dado instante

∙ Tecnologias utilizadas Onde satildeo apresentadas as tecnologias e ferramentas utiliza-das para auxiliar no desenvolvimento do aplicativo

∙ Desenvolvimento do projeto Essa parte apresenta a aplicaccedilatildeo dos meacutetodos decaacutelculo de espera vistos na seccedilatildeo anterior e o processo de desenvolvimento do aplicativoem si

Capiacutetulo 2

Estudos Preliminares

21 Desenvolvimento de StartupsO desenvolvimento do projeto foi baseado nos meacutetodos utilizados em Startups O grupo

seguiu os princiacutepios da Startup Enxuta [31] no qual um produto miacutenimo deve ser criado eentatildeo incrementado atraveacutes do estudo das necessidades do usuaacuterio A partir de uma pesquisacom o puacuteblico alvo a ideia inicial eacute lapidada e um produto com o miacutenimo de funcionalidadespossiacutevel eacute desenvolvido para entatildeo retornar aos usuaacuterios que iratildeo validaacute-lo Este processo eacuterepetido ateacute que um produto final seja completamente desenvolvido independente da ideiaque se tinha no iniacutecio O processo tem como foco economizar recursos e suprir a necessidadedo usuaacuterio de forma raacutepida e eficiente

De acordo com o livro A Startup Enxuta[31] esta metodologia prioriza o desenvolvi-mento iterativo com a participaccedilatildeo do cliente a cada etapa ao inveacutes de procuraacute-lo somentena entrega do produto final Nessa metodologia temos alguns princiacutepios que guiam o desen-volvimento de projetos

1 Mapeamento do negoacutecio atraveacutes do diagrama conhecido como ldquocanvas do modelo denegoacuteciosrdquo que nos mostra resumidamente uma visatildeo geral do projeto

2 Pesquisas feitas com os usuaacuterios no mercado para saber suas opiniotildees sobre o negoacutecioe posteriores mudanccedilas ou ajustes no projeto com base nos resultados

3 Desenvolvimento do produto utilizando algum meacutetodo aacutegil

Inicialmente deve-se traccedilar os primeiros objetivos do projeto utilizando o diagrama Can-vas [10] (figura 21) Esse diagrama eacute utilizado para auxiliar empresas a ter uma visatildeo macrodo projeto fornecendo uma forma de visualizar suas dependecircncias e permitindo planejartraccedilar e gerenciar um plano de desenvolvimento Ele possui perguntas que devem ser res-pondidas em seus quadros e no decorrer desse processo o projeto vai sendo adaptado deacordo com as limitaccedilotildees impedimentos e novas ideias que vatildeo surgindo

3

4 ESTUDOS PRELIMINARES 21

Figura 21 Modelo do Diagrama Canvas

Com o modelo de negoacutecios definido o proacuteximo passo eacute a realizaccedilatildeo de uma pesquisa como puacuteblico para validaacute-lo Essa fase do desenvolvimento pode ser refeita quantas vezes foremnecessaacuterias reescrevendo o Canvas conforme a interpretaccedilatildeo da necessidade do usuaacuterio

211 Desenvolvimento de Questionaacuterios

De acordo com o manual Designing a Survey [4] um questionaacuterio eacute criado para obterinformaccedilotildees para conduzir o desenvolvimento de um projeto de acordo com as preferecircnciasdo puacuteblico alvo Ele deve ser curto e conciso e deve capturar somente informaccedilotildees que sejamrelevantes para a pesquisa

Os passos para o desenvolvimento de um bom questionaacuterio satildeo

∙ Definir os dados necessaacuterios

∙ Desenvolver as questotildees

∙ Remover qualquer questatildeo que natildeo captura os dados definidos previamente

As questotildees podem ser moldadas de trecircs maneiras

∙ Estruturadas Questotildees que possuem resposta fixa Exemplo

Vocecirc usa transporte puacuteblico

( )Sim

( )Natildeo

22 METODOLOGIA AacuteGIL 5

∙ Natildeo Estruturadas Questotildees de resposta aberta Exemplo

O que vocecirc costuma fazer para evitar filas

∙ Parcialmente Estruturadas Questotildees mistas Exemplo

Qual meio de transporte vocecirc usa

( )Carro

( )Moto

( )Outros______

22 Metodologia AacutegilA metodologia aacutegil tem sido adotada pelas empresas hoje em dia por conta dos melhores

resultados obtidos em relaccedilatildeo agraves metodologias tradicionais[23] Essa eacute caracterizada pelavalorizaccedilatildeo de

∙ ldquoIndiviacuteduos e interaccedilotildees mais que processos e ferramentasrdquo

∙ ldquoSoftware em funcionamento mais que documentaccedilatildeo abrangenterdquo

∙ ldquoColaboraccedilatildeo com o cliente mais que negociaccedilatildeo de contratosrdquo

∙ ldquoResponder a mudanccedilas mais que seguir um planordquo [12]

Eacute uma metodologia que envolve trabalho em equipe encontros regulares com o clientedesenvolvimento iterativo e com menos foco em planejamento estrito e ideias definitivasdiferente de metodologias mais tradicionais que satildeo mais focadas em projetos bem docu-mentados com pouca possibilidade de mudanccedila ao final do processo Decidiu-se por utilizara metodologia aacutegil neste projeto pois natildeo haviam ideias completamente definidas inicial-mente e para o grupo a opiniatildeo do puacuteblico alvo sobre o produto era fundamental em cadaiteraccedilatildeo do processo podendo haver mudanccedilas inesperadas dependendo do feedback recebido

Dentre as opccedilotildees de metodologias aacutegeis O meacutetodo Scrum[16] eacute um que eacute definido comoum gerenciador e um processo de controle que foca em construir um software que conheceas necessidades do negoacutecio devolvendo incrementalmente um software

Com o Scrum o software eacute desenvolvido em iteraccedilotildees de tamanho fixo chamadas deSprints que tem duraccedilatildeo de tipicamente duas a quatro semanas Em cada Sprint um nuacutemerofixo de histoacuterias (que se traduzem em tarefas) satildeo selecionadas pelo grupo para seremutilizadas na sprint(figura 22) Haacute tambeacutem um sistema de motivaccedilatildeo para o time como osMilestones que satildeo objetivos menores distribuiacutedos por toda a sprint ajudando na mediccedilatildeode desemprenho da equipe e graacuteficos Burndown que mostram o progresso de cada iteraccedilatildeopara que o time sinta o progresso no desenvolvimento

6 ESTUDOS PRELIMINARES 23

Figura 22 Dinacircmica do Scrum

Para controle das iteraccedilotildees foi utilizado o software Trello [21] que eacute um gerenciador detarefas de projeto (figura 23)

Figura 23 Interface do Trello - durante o processo de desenvolvimento

23 Jobs to be donePara implementar o aplicativo buscou-se uma metodologia para guiar esse processo desde

sua criaccedilatildeo ateacute sua validaccedilatildeo Duas metodologias conhecidas pelo grupo foram analisadas eestudadas Jobs To Be Done e Personas and Use Cases

Segundo Alan Klement[29] Personas satildeo clientes imaginaacuterios descritos pela idade sexoraccedila e haacutebitos semanais O uso delas natildeo eacute adequado para responder perguntas como ldquoPorqueo cliente quer saber o tamanho da filardquo pois quando a resposta eacute ldquoEle estaacute com pressa paracomerrdquo natildeo fica claro quais satildeo as reais necessidades do usuaacuterio Essa descriccedilatildeo tambeacutem natildeoeacute uacutetil no desenvolvimento de uma boa interface pois natildeo ajuda na hora de responder se umcerto botatildeo realmente deixa claro sua funcionalidade

23 JOBS TO BE DONE 7

Tambeacutem segundo Alan Klement Use Cases possuem 3 grandes problemas usam perso-nas casam implementaccedilotildees motivaccedilotildees e resultado e ignoram contexto situaccedilotildees e ansie-dades

Se uma funcionalidade definida por uma Use Case falhar seraacute difiacutecil identificar o pro-blema pois por casar informaccedilotildees diferentes surgiraacute a dificuldade de saber o que estaacute erradoa implementaccedilatildeo as suposiccedilotildees sobre as motivaccedilotildees ou os resultados

Observando-se esses fatos optou-se pelo uso da metodologia Jobs to Be Done pois haacuteuma mudanccedila na forma de fazer histoacuterias a fim de evitar os problemas observados em Per-sonas e Use Cases(Figura 24) Nesse modelo as Personas satildeo pessoas reais e as histoacuterias satildeoescritas com a seguinte divisatildeo situaccedilatildeo motivaccedilatildeo e resultados esperados

Nessa metodologia criamos histoacuterias descrevendo tarefas para que os usuaacuterios se colo-quem na situaccedilatildeo descrita Observando-os eacute possiacutevel saber se a tarefa foi realizada de formabem sucedida e caso contraacuterio identificar onde e o que estaacute causando a falha no instanteda realizaccedilatildeo dela

Figura 24 Diferenccedila entre estruturas de histoacuterias

8 ESTUDOS PRELIMINARES 24

Algumas das histoacuterias criadas para os testes de interface do grupo foram

∙ Quando eu estiver na tela de lista de restaurantes eu quero acessar a tela de detalhesdo restaurante que eu desejo saber o tempo de espera entatildeo eu posso ver com clarezaas informaccedilotildees e posso traccedilar uma rota para o estabelecimento

∙ Quando eu estiver na tela principal eu quero enviar meu feedback sobre o tempo deespera no estabelecimento que estou entatildeo eu posso ajudar outros usuaacuterios por meiodo aplicativo

24 Caacutelculo da previsatildeo do tempo de espera na filaAtraveacutes de pesquisas em busca de meacutetodos estatiacutesticos para se estudar o comportamento

das filas foram encontradas as trecircs metodologias descritas nesta seccedilatildeo Este capiacutetulo conteacutema explicitaccedilatildeo do problema estudado e suas possiacuteveis soluccedilotildees

241 Descriccedilatildeo do problema

Para que se chegasse a uma soluccedilatildeo apropriada o problema de espera em fila precisouser estudado Esse problema pode ser descrito da seguinte forma dado um restaurante aentrada nesse eacute atraveacutes de uma fila Essa fila tem seu tamanho redefinido agrave medida quenovos clientes chegam e saem dela A saiacuteda dos clientes pode ser devido a desistecircncia ou aacomodaccedilatildeo deles nas mesas A entrada eacute definida pela disponibilizaccedilatildeo de lugares livres agravemedida em que os grupos que estavam alocados terminam seu atendimento

Figura 25 Esquema simplificado do funcionamento do processo em um restaurante

A fila de espera eacute influenciada por dois fatores a taxa de chegada do cliente e a taxa deatendimento nas mesas

∙ chegada em restaurantes a chegada de clientes eacute definida por uma taxa O clienteneste caso representa um grupo com tamanho variaacutevel A distribuiccedilatildeo do tamanho dogrupo nas chegadas eacute variaacutevel

∙ O atendimento a alocaccedilatildeo do grupo eacute organizada pela recepccedilatildeo O meacutetodo utilizadopor eles natildeo eacute padronizado e muitas vezes eacute completamente subjetivo Por exemplose acontecer de um grupo grande e vaacuterios casais chegarem ao mesmo tempo e nesse

24 CAacuteLCULO DA PREVISAtildeO DO TEMPO DE ESPERA NA FILA 9

momento existir um espaccedilo no salatildeo que acomode o grupo (juntando as mesas) outodos os casais (com as mesas separadas) dependendo de quem estaacute responsaacutevel poralocaacute-los cada um receberaacute uma prioridade diferente e essa decisatildeo natildeo eacute padronizada

∙ A disposiccedilatildeo das mesas a disposiccedilatildeo e quantidade de mesas natildeo satildeo padronizadasentre restaurantes de uma mesma rede muito menos entre restaurantes diferentesAleacutem disso a formataccedilatildeo do salatildeo pode ser remodelada de acordo com a necessidadede alocaccedilatildeo dos clientes haacute gerentes que evitam essa movimentaccedilatildeo ou ateacute mesmorestaurantes que natildeo tecircm essa possibilidade

242 Meacutetodos de caacutelculo da espera

Com o problema desenhado desta maneira esboccedilou-se trecircs possiacuteveis meacutetodos de resoluccedilatildeoe um desses foi aplicado na soluccedilatildeo final Os meacutetodos desenvolvidos satildeo meacutedia por periacuteodoaplicaccedilatildeo da teoria das filas e utilizaccedilatildeo de redes neurais Essas teacutecnicas precisam de dadospara serem desenvolvidas e aplicadas Por conta disso buscou-se fontes que suprissem essanecessidade

Captaccedilatildeo dos dados para a anaacutelise

Para que seja possiacutevel aplicar os meacutetodos estudados eacute necessaacuterio obter dados para aplicarna anaacutelise Estes foram obtidos de duas formas a partir de uma parceria com a empresa GetIn [7] desenvolvedora de um aplicativo de gerenciamento de filas de restaurantes e atraveacutesde pesquisas presenciais em restaurantes da rede Outback Steakhouse[14] selecionados para oestudo(Apecircndice A) O aplicativo da Get In possui uma funcionalidade principal realizaccedilatildeode uma reserva em um determinado restaurante O banco de dados manteacutem o registro detodos os usuaacuterios que entram na fila e esses dados satildeo organizados em uma tabela com osseguintes campos

∙ Origem Se a reserva foi realizada de forma remota ou presencial Assim

1 Reserva presencial (na entrada do restaurante incluiacuteda pela recepcionista)

2 Reserva remota (realizada atraveacutes do aplicativo)

∙ Entrada este consiste na data e hora que o usuaacuterio entrou na fila

∙ Qtd Pessoas tamanho do grupo para o qual a reserva foi feita

∙ Prioritaacuterio se este grupo requer atendimento prioritaacuterio

0 Natildeo

1 Sim

∙ Notificado A data e horaacuterio em que o grupo foi notificado que sua mesa estava pronta

ndash Quando NULL a recepcionista natildeo notificou essa pessoa (possivelmente chamoudiretamente pelo nome)

∙ Tempo na Espera Tempo que o grupo ficou ativo na fila de espera (em segundos)

∙ Status Qual a situaccedilatildeo da reserva do grupo Podendo assumir tais valores

0 Cancelado pela recepcionista

10 ESTUDOS PRELIMINARES 24

2 Sentado

3 Cancelado pelo proacuteprio Usuaacuterio

Para melhor entender estes paracircmetros o funcionamento do aplicativo deve ser expli-cado com maior detalhamento O processo de reserva funciona da seguinte forma o usuaacuterioreserva seu lugar atraveacutes do aplicativo ou vai ao restaurante e a recepcionista o adiciona agraveespera No primeiro caso o usuaacuterio tem um tempo de toleracircncia para chegar ao estabeleci-mento apoacutes receber a notificaccedilatildeo caso natildeo consiga chegar a tempo a reserva eacute cancelada Nosegundo caso quando o grupo a ser chamado estaacute proacuteximo da recepccedilatildeo a funcionalidade denotificaccedilatildeo natildeo precisa ser usada o responsaacutevel pode se direcionar diretamente aos clientes echamaacute-los pelo nome Mesmo nesse segundo caso o tempo de espera na fila ainda eacute guardadopois a recepccedilatildeo precisa ldquofecharrdquo a espera do grupo para chamar o proacuteximo

Poreacutem a utilizaccedilatildeo desses dados natildeo foi liberada pela empresa Get In para serem usadoscomo banco de dados do aplicativo somente foram fornecidos dados do mecircs de agosto esetembro de 2016 para que fossem utilizados nas anaacutelises feitas com os modelos estatiacutesticosPara obter dados que poderiam ser utilizados no banco de dados do aplicativo foi neces-saacuterio uma pesquisa presencial onde o grupo visitou alguns restaurantes da rede OutbackSteakhouse para obter informaccedilotildees sobre o tempo de espera nestes estabelecimentos

Foram visitados 5 restaurantes Outback Steakhouse Shopping Eldorado Outback Ste-akhouse Shopping Villa Lobos Outback Steakhouse Shopping Granja Vianna Outback Ste-akhouse Shopping Uniatildeo de Osasco e Outback Steakhouse Shopping Market Place ondequestionamos sobre o tempo de espera por tamanho de grupos (em nuacutemero de pessoas) epor horaacuterio e dia da semana

Ao analisar os dados coletados pela pesquisa presencial notamos que estes estavam sus-cetiacuteveis a erros por terem sido obtidos por meio de diferentes observaccedilotildees humanas Ummeacutetodo para obter dados mais precisos consistiria na realizaccedilatildeo de novas pesquisas no for-mato mediccedilatildeo onde cada integrante do grupo deveria coletar o tempo de espera de cadacliente atraveacutes de um cronocircmetro e calcular o tempo de espera meacutedio nesse horaacuterio Comoo grupo natildeo conseguiria aplicar este meacutetodo optou-se por melhorar a precisatildeo dos dadoscoletados usando como base o graacutefico de horaacuterios de pico disponibilizado pela Google paracada restaurante Essa melhora foi feita utilizando-se caacutelculos de proporccedilatildeo de valores

24 CAacuteLCULO DA PREVISAtildeO DO TEMPO DE ESPERA NA FILA 11

Primeiro meacutetodo Meacutedia por periacuteodo

Figura 26 Esquema do meacutetodo meacutedia por periacuteodo

Para que uma previsatildeo de espera possa ser fornecida ao usuaacuterio essa deve basear-seobrigatoriamente em alguma informaccedilatildeo preacutevia Contudo encontrar uma fonte para taisdados se mostrou uma tarefa muito complicada Para conseguir ainda assim apresentar umtempo de espera em fila meacutetodos de anaacutelise foram definidos de acordo com a quantidade dedados disponiacutevel para cada estabelecimento

De um modo geral neste modelo o caacutelculo do tempo de espera funcionaraacute da seguinteforma calcular-se-aacute a meacutedia de espera para o dia da semana e horaacuterio requeridos pelousuaacuterio sem diferenciar feriados de dias normais Dependendo de quatildeo longo eacute o histoacutericoniacuteveis de especificidade podem ser adicionados ou seja numa busca tempo de espera em 9de Dezembro (segunda-feira) agraves 19h no restaurante X a query selecionaraacute todos os registrosfeitos no dia 9 de dezembro entre as 19h e agraves 20h dos uacuteltimos anos no restaurante X e realizaraacuteessa meacutedia ou pode selecionar apenas linhas de todas as segundas-feiras do mecircs de Dezembrodeste mesmo periacuteodo

∙ Muitos dados neste caso um maior niacutevel de especificidade pode ser aplicado sem autilizaccedilatildeo de outras fontes para complementar o banco de dados

∙ Alguns dados o niacutevel de especificidade eacute bem menor apenas filtrando por dia dasemana e intervalo de hora sem mecircs ou dia especiacutefico no ano Em alguns casos aquantidade de dados eacute tatildeo pequena que deve-se recorrer a outras fontes A Googletem disponibilizado graacuteficos com a distribuiccedilatildeo dos clientes nos horaacuterios de funciona-mento de estabelecimentos Esses dados natildeo estatildeo disponiacuteveis em sua API ou seja natildeo

12 ESTUDOS PRELIMINARES 24

haacute uma forma automaacutetica para que o aproveitamento desses possa ser feito Poreacutemmesmo omitindo-se os valores do graacutefico o perfil da distribuiccedilatildeo e o horaacuterio de picosatildeo aproveitados manualmente para nosso sistema

∙ Poucos dados para este caso fizemos o balanceamento dos dados da Google comas informaccedilotildees retiradas das entrevistas Aleacutem do aproveitamento das informaccedilotildees daGoogle foram realizadas pesquisas com funcionaacuterios dos restaurantes

Segundo meacutetodo Teoria das filas

Filas podem ser vistas como um sistema dinacircmico no qual existe um conjunto de usuaacuteriosque satildeo atendidos por um conjunto de atendentes de acordo com a ordem de chegada dosusuaacuterios A teoria de filas busca utilizando anaacutelises matemaacuteticas estudar o comportamentodestas filas para estimar o tempo de espera com base em um conjunto inicial de dadospreviamente fornecido[30]

Um sistema de filas possui como caracteriacutesticas

∙ Modelo de chegada dos usuaacuterios Utiliza como base o tempo entre as chegadasdos usuaacuterios

∙ Modelo de serviccedilo (atendimento aos usuaacuterios) Utiliza como base o tempo gastono atendimento ao usuaacuterio No caso dos restaurantes equivale ao tempo que um grupopassa na mesa ateacute a sua saiacuteda

∙ Nuacutemero de servidores Eacute o nuacutemero de atendentes disponiacuteveis no sistema Para omodelo do restaurante este equivale agraves mesas disponiacuteveis no salatildeo

∙ Capacidade do sistema Eacute o nuacutemero de usuaacuterios que o sistema eacute capaz de atenderInclui o nuacutemero de usuaacuterios que estatildeo sendo atendidos somado com os que esperamna fila Se este paracircmetro natildeo for informado o sistema eacute considerado com capacidadeilimitada

∙ Tamanho da populaccedilatildeo nuacutemero potencial de clientes que podem chegar a umsistema Pode ser finito ou infinito

∙ Disciplina da fila A disciplina da fila pode ser FIFO (first in first out) - o primeiroa chegar eacute o primeiro a ser atendido LIFO (last in first out) - o uacuteltimo a chegar eacuteo primeiro a ser atendido ALEATOacuteRIO - os atendimentos satildeo feitos sem qualquerpreocupaccedilatildeo com a ordem de chegada COM PRIORIDADE - os atendimentos satildeofeitos de acordo com prioridades estabelecidas No caso dos restaurantes a disciplinaadotada eacute a FIFO poreacutem esta pode mudar de acordo com o atendente responsaacutevel

Os tempos mencionados nos modelos de chegada e de serviccedilo podem ser constantesquando os intervalos entre as chegadas dos usuaacuterios satildeo iguais ou variaacuteveis quando os valo-res desses intervalos variam Nesse uacuteltimo caso o intervalo de tempo segue uma distribuiccedilatildeode probabilidades Nesse modelo tambeacutem existe a taxa meacutedia de chegada dos usuaacuterios porunidade de tempo ou seja quantos usuaacuterios chegam em uma hora

As filas podem ser moldadas em trecircs situaccedilotildees baacutesicas como descrito por Azmat Nafees[30]

∙ Modelo de fila de canal uacutenico com fila uacutenica e atendimento uacutenico (Figura 27)

24 CAacuteLCULO DA PREVISAtildeO DO TEMPO DE ESPERA NA FILA 13

∙ Modelo de fila de canal uacutenico com fila uacutenica e muacuteltiplos atendimentos paralelos (Fi-gura 28)

∙ Modelo de fila de canal uacutenico com muacuteltiplas filas e muacuteltiplos atendimentos paralelos(Figura 29)

Figura 27 Modelo de fila de canal uacutenico com fila uacutenica e atendimento uacutenico

Figura 28 Modelo de fila de canal uacutenico com fila uacutenica e muacuteltiplos atendimentos paralelos

Figura 29 Modelo de fila de canal uacutenico com muacuteltiplas filas e muacuteltiplos atendimentos paralelos

Tambeacutem por Azmat Nafees nesses modelos trecircs subprocessos podem ser vistos

∙ Processo de chegada Eacute um processo contiacutenuo do evento ldquochegada de clientesrdquo ouseja quando o evento ocorre o processo aguarda a ocorrecircncia do proacuteximo evento Esseevento coloca um cliente na fila quando ele chega

14 ESTUDOS PRELIMINARES 24

∙ Processo de espera Eacute um processo que inclui o evento ldquocomece a servir o proacuteximocliente da filardquo que retira um cliente da fila o coloca no processo de atendimento eespera a conclusatildeo do evento ldquocliente servidordquo para recomeccedilar Nele se trabalha comtamanho e disciplina da fila

∙ Processo de atendimento Eacute um processo que inclui o evento ldquocliente servidordquo eespera a conclusatildeo do evento ldquocomece a servir o proacuteximo cliente da filardquo para recomeccedilarNele se trabalha com tipo taxa e tempo de atendimento

Dentre esses 3 modelos o que mais se encaixa na situaccedilatildeo de um restaurante eacute o segundomodelo canal uacutenico com fila uacutenica e muacuteltiplos atendimentos paralelos O processo de chegadade novos clientes na fila eacute tido como aleatoacuterio

Terceiro meacutetodo Rede Neural

Rede Neural eacute uma teacutecnica computacional inspirada no sistema nervoso que com o auxiacute-lio de um modelo matemaacutetico apresenta respostas para problemas de decisatildeo Esses modelosfuncionam da seguinte forma primeiro um conjunto de dados (conjunto de treinamento) eacuteapresentado ao sistema e este aprende com ele atraveacutes de reconhecimento de padratildeo entatildeocoloca-se o sistema para analisar os dados (conjunto de teste) para os quais deseja-se obteralgum resultado Este processo eacute chamado de aprendizagem de maacutequina Quanto melhor forseu treinamento mais precisas seratildeo as respostas para o segundo conjunto

Uma rede neural eacute formada por subestruturas chamadas neurocircnios Um neurocircnio tem oseguinte funcionamento ele recebe como entrada sinais cada sinal recebe um peso de acordocom a influecircncia dele na saiacuteda e uma soma eacute feita para produzir o niacutevel de atividade entatildeodependendo se o niacutevel de atividade exceder o limite dado pela funccedilatildeo de transferecircncia aresposta eacute produzida[27]

Software Multiple Back-Propagation

Para implementar a soluccedilatildeo baseada em redes neurais foi usado o Software MultipleBack-Propagation [1] Este eacute um software de faacutecil utilizaccedilatildeo que fornece uma rede a qualaprende atraveacutes do processo de propagaccedilatildeo inversa Esse meacutetodo baseia-se na comparaccedilatildeodos dados esperados (conjunto de teste) com os dados obtidos a partir do treinamento senecessaacuterio adaptaccedilotildees satildeo feitas a estrutura da rede para melhor aproximar aos dados doconjunto teste e isso eacute chamado de propagaccedilatildeo inversa

Por se tratar de um meacutetodo de aprendizagem de maacutequinas para se obter um resultadodeve-se treinar o algoritmo Primeiramente submete-se o conjunto de treinamento ao soft-ware para isso foi escolhido o mecircs de Agosto O criteacuterio de parada para o treino eacute o erroquadraacutetico meacutedio o qual teve seu valor atribuiacutedo para 001

Capiacutetulo 3

Tecnologias utilizadas

31 O sistema AndroidAndroid eacute um Sistema operacional open source (software de coacutedigo aberto o qual as

pessoas podem acessar e modificar para contribuir com o projeto [25]) e para dispositivosmoacuteveis desenvolvido pela Google baseado no Kernel do Linux e utilizado principalmente emdispositivos touchscreen Atualmente o Android eacute o sistema operacional que deteacutem a maiorparcela do mercado[17] com 836 dos dispositivos contra 134 do iOS da Apple

A Google tambeacutem oferece um ambiente de desenvolvimento para a plataforma Androidchamado Android Studio no qual os aplicativos satildeo criados e exportados para os dispositi-vos moacuteveis Aplicativos Android satildeo programados na linguagem Java com vaacuterias bibliotecasdisponibilizadas pela Google para suporte ao sistema operacional

A escolha da plataforma foi feita principalmente por conta de o sistema possuir a maiorparte dos usuaacuterios de Smartphones e tambeacutem pela ampla comunidade ativa de desenvolve-dores agrave qual se pode recorrer em casos de duacutevidas e problemas tornando suas resoluccedilotildeesmais raacutepidas e com muacuteltiplas alternativas Outros motivos que contribuiacuteram para a escolhado Android foram

∙ A disponibilidade do ambiente de desenvolvimento Android Studio que possui todosos recursos necessaacuterios para desenvolver um aplicativo funcional logo apoacutes a instalaccedilatildeosem a necessidade de utilizar outras dependecircncias as quais satildeo gerenciadas automati-camente pelo proacuteprio software

∙ O fato de no mercado brasileiro o sistema Android se encontrar em 918 dos dispo-sitivos segundo pesquisa da Kantar[18] e dado a pesquisa realizada para definiccedilatildeo depuacuteblico alvo onde foi possiacutevel perceber que 639 dos entrevistados utilizam smartpho-nes com sistema Android

∙ A utilizaccedilatildeo da linguagem de programaccedilatildeo Java para desenvolvimento que jaacute eraconhecida e fora utilizada anteriormente ao contraacuterio das linguagens Objective C eSwift linguagens utilizadas para desenvolver aplicativos para o sistema iOS Assimcomo a disponibilidade de dispositivos por parte do grupo que em sua maioria era decelulares com o sistema Android

15

16 TECNOLOGIAS UTILIZADAS 31

Figura 31 Parcela de mercado dos dispositivos no Brasil

311 Organizaccedilatildeo de uma aplicaccedilatildeo Android

Aplicativos Android satildeo divididos em componentes Haacute quatro tipos de componentespresentes Activities (ou atividades) Services (ou serviccedilos) Content providers (ou provedoresde conteuacutedo) Broadcast receivers (ou receptores de transmissatildeo)

∙ Activities Satildeo as telas e interfaces do usuaacuterio Cada tela de uma aplicaccedilatildeo eacute repre-sentada por uma activity e cada activity eacute independente de outras apesar de seremcomponentes de uma mesma aplicaccedilatildeo Isso se daacute pelo fato de haver a possibilidade deutilizar activities de aplicativos durante a execuccedilatildeo de outros Atividades satildeo iniciadase se comunicam entre si atraveacutes de objetos chamados Intent que transferem um pacotede dados que pode ser carregado no iniacutecio da nova atividade

∙ Services Sempre satildeo executados em segundo plano sem interferir na experiecircncia dousuaacuterio geralmente para realizar operaccedilotildees longas ou realizar operaccedilotildees de troca dedados enquanto o usuaacuterio estaacute utilizando outra aplicaccedilatildeo em primeiro plano

∙ Content Providers Satildeo gerenciadores de dados de aplicaccedilotildees Android utilizadospara ler e salvar dados compartilhados ou secretos dos aplicativos e do sistema

∙ Broadcast Receivers Satildeo componentes responsaacuteveis por obter eventos que aconte-ceram em outras aplicaccedilotildees ou no sistema e direcionar dados sobre esses eventos paraeventuais aplicaccedilotildees que necessitem destes dados alguns exemplos de eventos obtidospelos receptores de transmissatildeo satildeo tela desligada e bateria fraca

Aleacutem dos componentes uma parte importante de uma aplicaccedilatildeo Android eacute o ArquivoManifest que eacute uma declaraccedilatildeo de permissotildees serviccedilos e exigecircncias de hardware necessaacuterios

33 JSON 17

para o funcionamento do aplicativo Outra funccedilatildeo eacute possuir declaraccedilotildees de todos os compo-nentes utilizados no projeto nomes iacutecones entre outros

As interfaces de usuaacuterio do Android satildeo definidas em arquivos XML (eXtensible MarkupLanguage)[26] nos quais estatildeo declarados todos os layouts e configuraccedilotildees das telas Essesarquivos de layout satildeo depois inflados e satildeo gerados os componentes visuais da aplicaccedilatildeoEssa estrutura tem como objetivo facilitar o design da interface do usuaacuterio jaacute que arquivosxml satildeo de faacutecil compreensatildeo do desenvolvedor

32 JSONJSON ou Javascript Object Notation eacute um formato de dados amplamente utilizado para

troca de informaccedilotildees entre programas Possui uma notaccedilatildeo simples para grande parte dosprogramadores pois se assemelha a convenccedilotildees utilizadas em linguagens de programaccedilatildeomuito conhecidas como C C++ Python e Java O objetivo eacute que ele seja de faacutecil entendi-mento tanto para pessoas como para maacutequinas[11]

Um arquivo JSON eacute organizado como um objeto contendo pares nomevalorseparadospor viacutergulas e dentro de chaves(lsquolsquo rsquorsquo) ou como um array que eacute uma lista de valores separa-dos por viacutergulas e entre colchetes(lsquo[lsquo rsquo]rsquo) Um valor por sua vez pode ser um objeto ou umarray mas tambeacutem um nuacutemero inteiro ou uma String entre outros

Um exemplo de arquivo JSON eacute

1 2 Carros [3 4 Nome Scen ic 5 Marca Renault 6 Ano 20127 8 9 Nome Sentra

10 Marca Nissan 11 Ano 200912 13 ]14

33 Google APIsAPIs (Application Program Interfaces) satildeo interfaces para facilitar a troca de informa-

ccedilotildees entre aplicaccedilotildees utilizando comandos especiacuteficos[15]

Ao longo do desenvolvimento algumas APIs fornecidas pela Google foram utilizadascomo fonte de informaccedilotildees adicionais para o aplicativo

∙ Google Maps Distance Matrix API Esta API eacute utilizada para obter o tempo emsegundos de trajeto entre dois pontos (latlong) no mapa podem ser consultados ostempos de trajeto de carro bicicleta a peacute e utilizando transporte puacuteblico[28] Esta eacute

18 TECNOLOGIAS UTILIZADAS 35

uma API web logo utiliza-se um request http para realizar uma consulta

Por exemplo o request

httpsmapsgoogleapiscommapsapidistancematrixjsonorigins=Seattleampdestinations=Victoria+BCampkey=[user_key]

retorna o JSON

1 2 des t ina t i on_addre s s e s [ Vic tor ia BC Canada ] 3 o r i g in_addre s s e s [ Sea t t l e WA EUA ] 4 rows [5 6 e lements [7 8 d i s t anc e 9 text 172 km

10 value 17166811 12 durat ion 13 text 4 horas 40 minutos 14 value 1680915 16 s t a tu s OK17 18 ]19 20 ] 21 s t a tu s OK22

no qual eacute possiacutevel obter o tempo de trajeto em segundos

∙ Google Maps Android API Esta API eacute utilizada para habilitar o uso de mapasda Google integrados agrave aplicaccedilatildeo jaacute disponiacutevel com todas as funcionalidades de zoome arrastar presentes no aplicativo nativo permitindo tambeacutem a personalizaccedilatildeo comoa adiccedilatildeo de pontos definidos pelo usuaacuterio ao mapa

34 Localizaccedilatildeo do UsuaacuterioOutro serviccedilo que foi utilizado com o intuito de obter o tempo de trajeto e a lista ordenada

de forma personalizada de restaurantes foi a localizaccedilatildeo do usuaacuterio que eacute obtida atraveacutes doGPS presente nos smartphones Um objeto de localizaccedilatildeo eacute criado e realiza a comunicaccedilatildeocom o serviccedilo de localizaccedilatildeo do aparelho Ao obter a localizaccedilatildeo ele lanccedila um evento quepode ser acessado por outras partes da aplicaccedilatildeo obtendo a localizaccedilatildeo mais atualizada dodispositivo

36 CONTROLE DE VERSAtildeO 19

35 Controle de VersatildeoControle de versatildeo eacute uma praacutetica usada para manter a organizaccedilatildeo do coacutedigo e do seu de-

senvolvimento quando muitos desenvolvedores colaboram conjuntamente Existem softwaresque auxiliam essa organizaccedilatildeo registrando todas as mudanccedilas feitas ao longo do processo eque possui recursos que permitem que vaacuterios usuaacuterios trabalhem nos mesmos arquivos semperda de informaccedilotildees

No caso do Git [8] o projeto fica organizado em uma estrutura de aacutervore onde cadacommit (checkpoints criados pelos membros do grupo durante o processo) eacute marcado porum noacute para onde se pode retornar quando necessaacuterio Existem tambeacutem estruturas chama-das branches que satildeo bifurcaccedilotildees na estrutura para que partes do projeto sejam criadasseparadamente sem interferir com a linha principal As branches depois satildeo unidas agrave linhaprincipal atraveacutes do comando merge

Neste projeto o serviccedilo de controle de versatildeo utilizado foi o Bitbucket [2] (que eacute um ser-viccedilo web-based de controle de versatildeo que utiliza Git) com auxiacutelio do software SourceTree[19]que eacute uma interface graacutefica para os serviccedilos do Bitbucket onde eacute possiacutevel visualizar com maisfacilidade as fases do desenvolvimento do projeto e realizar os comandos mais intuitivamente

Figura 32 Interface do SourceTree que mostra o controle de versionamento do projeto

36 Banco de dadosCom o intuito de deixar o aplicativo mais completo guardando informaccedilotildees dos usuaacuterios

e dos estabelecimentos optou-se por utilizar-se um banco de dados Alguns exemplos de

20 TECNOLOGIAS UTILIZADAS 36

banco de dados aprendidos no curso Laboratoacuterio de Banco de Dados foram

∙ SQL (Structured Query Language - Linguagem de Consulta Estruturada)[20] umalinguagem para atualizar deletar e requisitar informaccedilotildees atraveacutes de consultas emtabelas que possuem relaccedilatildeo entre si

∙ noSQL[13] um banco de dados que armazena e recupera informaccedilotildees modeladas deuma forma onde natildeo satildeo usadas tabelas relacionais

Como este uacuteltimo natildeo foi o foco da disciplina por falta de tempo decidiu-se por utilizaacute-lopara que o grupo pudesse aprender melhor esse modelo

Outra decisatildeo tomada foi a hospedagem dos dados na nuvem ou seja colocaacute-los em umservidor que natildeo seja local e conseguir acessaacute-los atraveacutes de uma conexatildeo via internet Dessemodo os dados sempre estaratildeo disponiacuteveis para serem consultados

361 Firebase

Buscando-se atender as decisotildees tomadas sobre o banco de dados procuramos um serviccedilode banco de dados da Google por conter ampla integraccedilatildeo com a plataforma de desenvolvi-mento Android por ser conhecido bastante utilizado e por possuir uma ampla comunidadede desenvolvedores dispostos a oferecer auxiacutelio em foacuteruns de discussatildeo de coacutedigos

Para atender esses requisitos escolheu-se o Firebase Realtime Database[6] desenvolvido edisponibilizado pela Google que consiste em um banco de dados noSQL com armazenamentona nuvem Esse serviccedilo armazena os dados do usuaacuterio no servidor da Google em formatoJSON e a cada alteraccedilatildeo sincroniza em tempo real com todos os clientes conectados

O grupo pode observar as seguintes vantagens de se trabalhar com a ferramenta existea sincronizaccedilatildeo em tempo real dos dados de todos os clientes e sua disponibilidade mesmocom o aplicativo offline ou seja quando o aplicativo natildeo estiver conectado a internet osdados do dispositivo moacutevel seratildeo armazenados e sincronizados com o banco de dados assimque a conexatildeo estiver disponiacutevel novamente Aleacutem disso os desenvolvedores possuem acessoa um console online (figura 33) onde o JSON eacute mostrado numa interface interativa de umaforma mais amigaacutevel e no qual eacute permitido editaacute-lo facilmente

37 CROWDSOURCING 21

Figura 33 Console online do Firebase onde os dados satildeo mostrados de forma mais amigaacutevel eintuitiva

Outra observaccedilatildeo feita foi que o Firebase Realtime Database funciona como o esperadose ele guardar uma coacutepia local dos dados em um arquivo JSON no celular Poreacutem isso natildeofoi visto como um problema pois como essa coacutepia pode ser salva em um arquivo texto oespaccedilo utilizado diminui consideravelmente

Na primeira vez que os dados satildeo criados e todas as vezes em que os dados forem atua-lizados por algum dispositivo moacutevel eacute enviada uma atualizaccedilatildeo que seraacute recebida atraveacutes delisteners por todos os aparelhos que utilizam o aplicativo para que eles atualizem seus res-pectivos JSONs Listeners satildeo interfaces de comunicaccedilatildeo que executam uma seacuterie de accedilotildeesassim que um outro evento esperado acontece

37 CrowdsourcingO termo Crowdsourcing tem origem nas palavras da liacutengua inglesa Crowd (multidatildeo) e

Outsourcing (terceirizaccedilatildeo) e eacute definido pelo dicionaacuterio Merriam Webster como A praacuteticade obtenccedilatildeo de serviccedilos ideias ou conteuacutedo solicitando contribuiccedilotildees de grandes grupos depessoas e especialmente da comunidade online [3] Esta praacutetica eacute utilizada para que sejapossiacutevel agrave comunidade contribuir com dados para algum programa ou serviccedilo como no apli-cativo Waze do qual a principal fonte de dados de tracircnsito acidentes e radares eacute obtida pormeio dos proacuteprios usuaacuterios

Capiacutetulo 4

Desenvolvimento do Projeto

Este capiacutetulo aborda o processo de desenvolvimento do projeto iniciado com o preen-chimento do diagrama Canvas e uma pesquisa de mercado direcionada ao usuaacuterio A partirdas informaccedilotildees coletadas foi possiacutevel projetar um aplicativo que atendesse as necessidadesexpostas pela pesquisa e selecionar as tecnologias necessaacuterias Tambeacutem eacute abordada a aplica-ccedilatildeo dos diferentes meacutetodos de caacutelculo da previsatildeo de tempo de espera que foram estudadose explicados no Capiacutetulo 2 Por fim satildeo expostas as diferentes versotildees do aplicativo duranteo processo e seus detalhes

41 Pesquisa de MercadoAntes de iniciar-se o desenvolvimento praacutetico algumas questotildees foram levantadas se

um aplicativo com as funcionalidades escolhidas seria de alguma forma uacutetil para o usuaacuterioe se sim qual metodologia deveria ser usada para que este produto fosse entregue o maiscompleto possiacutevel ateacute o final do ano Para responder a primeira pergunta desenvolveu-seum questionaacuterio

411 Pesquisa com o usuaacuterio

O questionaacuterio foi desenvolvido para avaliar a viabilidade do aplicativo e suas funciona-lidades e foi criado utilizando-se o Google Forms [9] Essa eacute uma ferramenta desenvolvidapelo Google que possibilita a criaccedilatildeo de formulaacuterios contendo diversos formatos de pergun-tas tanto dissertativas quanto de muacuteltipla escolha

Seguindo os princiacutepios de desenvolvimento de questionaacuterios [4] o conjunto de perguntasfoi mantido curto simples e de faacutecil entendimento Tambeacutem variou-se o tipo de questotildeesentre estruturadas (questotildees com respostas em forma de alternativas) e desestruturadas(questotildees com respostas em formato texto) seguindo esses mesmos princiacutepios para captarmelhor as informaccedilotildees dos entrevistados e evitar erros de entendimento

Com as respostas do questionaacuterio tinha-se o intuito de traccedilar um possiacutevel puacuteblico alvoconhecer seu modo de uso de dispositivos moacuteveis e validar a aplicabilidade de diferentesfuncionalidades pretendidas inicialmente sendo essas engajamento do usuaacuterio atraveacutes denotificaccedilotildees do sistema aceitaccedilatildeo de sugestotildees de locais alternativos avaliaccedilatildeo da existecircnciado problema que queremos resolver (se este aplicativo supre uma necessidade real do usuaacute-rio) e aceitaccedilatildeo do aplicativo

23

24 DESENVOLVIMENTO DO PROJETO 41

Para a divulgaccedilatildeo redes sociais como Facebook [5] e sistemas de mensagem instantacircneascomo WhatsApp foram usados e o envio de respostas foi restrito ateacute trecircs semanas apoacutes suaprimeira postagem Neste periacuteodo foram obtidas 210 respostas as quais ajudaram a definiros aspectos do sistema a ser desenvolvido

O questionaacuterio foi dividido em duas subseccedilotildees perfil do usuaacuterio e funcionalidade Comelas obteve-se os seguintes resultados

41 PESQUISA DE MERCADO 25

Questatildeo 1

Figura 41 Graacutefico pizza da distribuiccedilatildeo das respostas em relaccedilatildeo a idade dos pesquisados

As faixas de idade apresentadas estatildeo desbalanceadas por natildeo terem a mesma quantidadede anos em cada uma poreacutem essa divisatildeo foi pensada levando-se em conta a fluecircncia comtecnologia que cada idade possui Com o resultado verificou-se que do puacuteblico alcanccediladocom a pesquisa a maioria estaacute na faixa de 18 a 25 anos de idade assumida como parcelacom maior conhecimento tecnoloacutegico

Questatildeo 2

Figura 42 Graacutefico pizza da distribuiccedilatildeo das respostas em relaccedilatildeo ao sistema operacional

Esta questatildeo foi pensada para medir a porcentagem de cada sistema operacional pre-sente nos celulares do puacuteblico Com ela descobriu-se que 639 das pessoas dentro desse

26 DESENVOLVIMENTO DO PROJETO 41

grupo possuem o sistema Android enquanto 234 possuem iOS e 38 Windows phoneEssa pergunta foi incluiacuteda para um melhor direcionamento do desenvolvimento do aplicativo

Uma questatildeo levantada ao aplicar esse questionaacuterio foi a dificuldade que algumas pessoasencontraram para identificar a versatildeo do proacuteprio aparelho Poreacutem para manter a consistecircnciadas respostas decidiu-se natildeo mudar nada nesta questatildeo para remediar isso

Questatildeo 3

Figura 43 Graacutefico em barras da distribuiccedilatildeo de frequecircncias mensais de cada local analisado

41 PESQUISA DE MERCADO 27

Questatildeo 4

Figura 44 Graacutefico em pizza da distribuiccedilatildeo de interesse do usuaacuterio no tempo de espera de cadalocal

A princiacutepio viu-se muitas possiacuteveis aplicaccedilotildees para a previsatildeo de tempo de espera Paraentender qual seria a prioridade do puacuteblico as questotildees acima foram incluiacutedas A primeiraverificou a frequecircncia de visitas em alguns locais e a segunda serviu para analisar qualestabelecimento despertava mais interesse nos entrevistados quanto ao quesito fila Nos doiscasos restaurantes se destacaram com o maior interesse

Questatildeo 5

Figura 45 Graacutefico em barras da distribuiccedilatildeo de interesse do usuaacuterio por cada item avaliado

Para acompanhar o dado de espera e fornecer mais informaccedilotildees relevantes ao usuaacuteriosem potencial perguntou-se quais outras informaccedilotildees eles acham interessante saber sobre umdeterminado estabelecimento Com isso descobriu-se que a faixa de preccedilo o trajeto ateacute olocal e o cardaacutepio seriam dados importantes de se obter juntamente com o tempo de espera

28 DESENVOLVIMENTO DO PROJETO 41

Questatildeo 6O que vocecirc costuma fazer para evitar filasNeste ponto testou-se se a soluccedilatildeo proposta atraveacutes do aplicativo resolveria o problema dousuaacuterio de uma forma melhor do que a soluccedilatildeo atualmente utilizada Para isso foi perguntadoo que as pessoas fazem para evitar filas e as principais respostas foram

∙ Evitar horaacuterios de pico

∙ Chegar cedo

∙ Ir em outro lugar caso uma fila seja encontrada

∙ Tentar realizar reservas antecipadamente

∙ Se distrair com livroscelular

Notou-se que as soluccedilotildees utilizadas atualmente natildeo suprem as necessidades dos entre-vistados pois mesmo em horaacuterios natildeo convencionais pode-se encontrar filas ou quandodecide-se esperar na fila muito tempo eacute perdido Concluiu-se que a soluccedilatildeo proposta a par-tir do aplicativo resolve de forma mais abrangente o problema pois ajuda o usuaacuterio a evitarhoraacuterios de pico inesperados

Questatildeo 7

Figura 46 Graacutefico em pizza da distribuiccedilatildeo do meio de transporte utilizado pelos usuaacuterios

Essa questatildeo foi formulada com o objetivo de verificar quais meios de transporte seriamincluiacutedos com previsatildeo de tempo de trajeto no aplicativo Foi verificado que a maioria dosentrevistados utilizam transporte puacuteblico seguido por carro

41 PESQUISA DE MERCADO 29

Questatildeo 8

Figura 47 Graacutefico em pizza da distribuiccedilatildeo do interesse do usuaacuterio pela informaccedilatildeo fornecida

Questatildeo 9

Figura 48 Graacutefico em pizza da distribuiccedilatildeo de quantidade de quilocircmetros que o usuaacuterio sedeslocaria para ir a um local com menos fila

Com essas questotildees foi verificado que algo importante para o usuaacuterio eacute saber de outrosestabelecimentos que possam oferecer tempos de espera menores nas redondezas de onde ousuaacuterio se encontra que eacute uma das funcionalidades que desejaacutevamos utilizar no sistema

30 DESENVOLVIMENTO DO PROJETO 41

Questatildeo 10

Figura 49 Graacutefico em barras da distribuiccedilatildeo de sentimento do usuaacuterio em relaccedilatildeo a notificaccedilatildeode aplicativos

Questatildeo 11

Figura 410 Graacutefico em pizza da distribuiccedilatildeo de opiniatildeo do usuaacuterio sobre desabilitar notificaccedilotildeesem celular

42 PESQUISA DE MERCADO 31

Questatildeo 12

Figura 411 Graacutefico em pizza da distribuiccedilatildeo de opiniatildeo do usuaacuterio sobre habilitar GPS emcelular

A ideia inicial era poder usar o GPS para verificar a localizaccedilatildeo do usuaacuterio e enviarnotificaccedilotildees quando este estivesse parado nas proximidades de algum dos estabelecimentoscadastrados Para que essa funcionalidade possa existir eacute necessaacuterio que o aplicativo tenhaacesso agrave localizaccedilatildeo precisa da pessoa atraveacutes do GPS ou internet ateacute mesmo quando natildeoestiver aberto Aleacutem disso tambeacutem eacute necessaacuterio que as notificaccedilotildees estejam habilitadas parafinalizar esta interaccedilatildeo Entatildeo as perguntas 10 11 e 12 foram incluiacutedas no questionaacuterio Ob-servando as respostas foi possiacutevel verificar que 295 das pessoas que responderam deixamambas as funcionalidades habilitadas (GPS e notificaccedilotildees) Com isso pudemos prosseguircom essa ideia e tambeacutem pensar em possiacuteveis alternativas de interaccedilatildeo e engajamento como usuaacuterio

Por conta dessa pesquisa ter sido compartilhada atraveacutes das contas das redes sociais ecomunicadores dos componentes deste grupo sabe-se que este pode apresentar um resultadoviesado mas que mesmo assim natildeo deve ser desconsiderado e que muito ajudou a sanar asduacutevidas iniciaisComo resultado traccedilamos o perfil do entrevistado

∙ Faixa etaacuteria predominante entre 18 e 30 anos

∙ Possui sistema operacional Android (versotildees 4 5 e 6)

∙ Vai a restaurantes com certa frequecircncia mensal resultando em interesses sobre infor-maccedilotildees relacionadas a esse estabelecimento

∙ Costuma chegar cedo ou evitar os horaacuterios de pico para evitar filas nos locais

∙ Carro e transporte coletivo satildeo os principais meios de transporte

∙ Se deslocaria para um estabelecimento semelhante que possui menos fila contanto queeste fique num raio de 2km de distacircncia

32 DESENVOLVIMENTO DO PROJETO 43

42 Projeto do AplicativoO grupo comeccedilou o projeto com o preenchimento do diagrama Canvas(figura 412) apre-

sentado na Seccedilatildeo 21 Desse modo foi adquirida uma ideia mais consistente e uma base paracomeccedilar a implementaccedilatildeo

Figura 412 Diagrama Canvas preenchido pelo grupo

Com o modelo de negoacutecios definido e com base no resultado da pesquisa com o usuaacuterioapresentada na seccedilatildeo seguinte foram aplicadas pequenas mudanccedilas no projeto para melhoradequar-se agraves necessidades e ao perfil do puacuteblico alvo

Para o desenvolvimento foi utilizado um meacutetodo aacutegil baseado no scrum com sprints de3 a 4 semanas devido agrave disponibilidade dos membros do grupo Os encontros natildeo eram diaacute-rios como recomendado para o meacutetodo scrum tambeacutem em razatildeo da disponibilidade Haviamstand ups (discussotildees raacutepidas no comeccedilo de cada encontro) e retrospectivas ao final de cadasprint A cada sprint eram selecionadas histoacuterias e tarefas para serem executadas e caso natildeofossem concluiacutedas ao final da iteraccedilatildeo eram inseridas ao backlog e feitas no sprint seguinte

43 Aplicaccedilatildeo dos meacutetodos de caacutelculo de espera

431 Aplicando a meacutedia por periacuteodo

Aplicando-se no trecho abaixo a teacutecnica desenvolvida na Seccedilatildeo 242 para uma queryrealizada no dia 19082016 no intervalo de 2040 - 2055 analisa-se a semana anterior quepossua tais intervalos Assim o saacutebado dia 06082016 seraacute selecionado

43 APLICACcedilAtildeO DOS MEacuteTODOS DE CAacuteLCULO DE ESPERA 33

Entrada Qtd Pessoas Notificado Espera

6816 2043 2 862016 2053 1606

6816 2044 2 862016 2055 674

6816 2048 2 862016 2056 528

6816 2048 2 862016 2057 520

6816 2051 2 862016 2107 1118

6816 2051 3 862016 2110 1305

6816 2052 2 862016 2110 1273

6816 2052 2 862016 2111 1179

6816 2053 2 862016 2112 1217

6816 2053 2 NULL 59

6816 2054 3 862016 2119 1541

6816 2055 2 862016 2117 1444

6816 2055 2 862016 2120 1570

6816 2055 2 862016 2122 1613

Tabela 41 Trecho do dia 06082016 entre os horaacuterios das 2043 agraves 2055 um intervalo de 12minutos retirado dos dados da empresa Get In

Com esses dados obteve-se a meacutedia de espera de 1080 segundos (18 minutos) a qualseria sugerida para o usuaacuterio com a busca e desvio padratildeo de 465144719 segundos (775 mi-nutos) Dentro desse intervalo tem-se como maacuteximo tempo de espera 1613 segundos (2688minutos) e como miacutenimo 59 segundos (1 minuto) Analisando-se os dados do dia 19082016no mesmo periacuteodo temos

34 DESENVOLVIMENTO DO PROJETO 43

Entrada Pessoas Notificado Espera Erro previsatildeo Erro p 2 pessoas

19816 2043 2 8192016 2051 544 -563 522

19816 2043 2 8192016 2052 605 -502 461

19816 2044 2 8192016 2056 723 -384 343

19816 2046 4 8192016 2119 1988 881 X

19816 2048 2 8192016 2102 919 188 147

19816 2051 2 8192016 2103 821 286 245

19816 2051 3 8192016 2108 1773 666 X

19816 2053 2 8192016 2110 1083 24 -17

19816 2053 2 8192016 2111 1105 2 -39

19816 2053 2 8192016 2112 1169 62 -103

19816 2055 2 8192016 2114 1447 340 -381

Tabela 42 Trecho do dia 19082016 entre os horaacuterios das 2043 agraves 2055um intervalo de 12minutos retirado dos dados da empresa Get In

Ou seja se um grupo chegasse dentro desse periacuteodo e a previsatildeo dada fosse a meacutediaobtida anteriormente o erro calculado pela diferenccedila entre o tempo sugerido e o real tempode espera estaria no intervalo de 15 minutos para menos ou 8 minutos para mais Sendoesse um valor aceitaacutevel

Um proacuteximo passo eacute a restriccedilatildeo dos registros a grupos com 2 integrantes Com tal restri-ccedilatildeo a previsatildeo de espera eacute de 1066 segundos (1776 minutos) Aplicando essa nova meacutedia aosregistros com 2 integrantes do dia 19082016 obteacutem-se um erro (Coluna 6 - erro previsatildeopara 2 pessoas) menor do que o anterior O intervalo do erro calculado neste caso seria de 522segundos (87 minutos) para mais e 381 segundos (635 minutos) para menos Este resultadoeacute ainda mais favoraacutevel mostrando que a inclusatildeo de mais filtros para o caacutelculo da previsatildeomelhorou o tempo previsto

432 Aplicando teoria das filas

A teoria das filas (Seccedilatildeo 242) eacute uma ferramenta muito completa que calcula muitos dadosuacuteteis para a previsatildeo de espera Contudo por conta da necessidade de informaccedilotildees sobreo tempo de atendimento a qual natildeo estaacute contida no banco utilizado esta teoria natildeo podeser aplicada neste caso Poreacutem esse dado pode ter um valor assumido para que a utilizaccedilatildeodessa teoria fosse possiacutevel entretanto a sua precisatildeo ficaria comprometida e imprevisiacutevel

433 Aplicando redes neurais

Para aplicar o que foi estudado na Seccedilatildeo 242 foi executado o software com o mecircs deAgosto como teste o mecircs de Setembro como treino e o limite do erro quadraacutetico como 001 eobteve-se a tabela presente no apecircndice B Na tabela podemos ver o tempo de fila esperadoou seja o tempo contido na tabela do mecircs de Setembro o tempo que o algoritmo deu comoresposta baseado no mecircs de Agosto e o erro entre eles respectivamente

44 DEFINICcedilAtildeO DA INTERFACE DO APLICATIVO 35

Figura 413 Software Multiple Back-Propagation com a configuraccedilatildeo escolhida para os dadosdisponiacuteveis

Mesmo o erro se mantendo em 0018 os dados obtidos possuem um erro padratildeo de 15minutos Se mais dados forem adicionados o criteacuterio de parada pode ser atingido e assimuma previsatildeo melhor pode ser alcanccedilada

434 Conclusatildeo sobre os meacutetodos estudados

Dentre todas as possibilidades estudadas visualizamos na meacutedia por periacuteodo a melhoropccedilatildeo assumindo os dados disponiacuteveis para teste Se mais paracircmetros fossem fornecidoscomo o tempo de atendimento a teoria das filas seria uma boa opccedilatildeo para fornecer a pre-visatildeo de espera E se mais dados estivessem disponiacuteveis as redes neurais conseguiriam umaaproximaccedilatildeo melhor e assim seria uma boa opccedilatildeo tambeacutem

44 Definiccedilatildeo da Interface do aplicativoComo um primeiro protoacutetipo foi desenvolvida uma interface simples que tinha como tela

de iniacutecio um mapa com um campo para buscas na parte superior

36 DESENVOLVIMENTO DO PROJETO 44

Figura 414 Fluxo de telas do primeiro protoacutetipo

Ao efetuar uma busca por algum estabelecimento uma tela mostrando o tempo de esperaaproximado da fila no local era exibida junto com bototildees que permitiam selecionar o meiode transporte visualizar outras opccedilotildees ou dar iniacutecio a rota ateacute o local desejado Tambeacutemhavia uma notificaccedilatildeo para quando a pessoa estivesse parada proacutexima a um restaurantecadastrado que direcionaria o usuaacuterio a uma tela com um cronocircmetro do tempo de esperana fila

Para testar essa visualizaccedilatildeo escolhemos algumas pessoas e realizamos um teste deusabilidade[22] este teste eacute feito da seguinte forma

44 DEFINICcedilAtildeO DA INTERFACE DO APLICATIVO 37

Uma contextualizaccedilatildeo eacute feita para o voluntaacuterio e entatildeo uma tarefa eacute passada para sercompletada Os integrantes do grupo observam dificuldades enfrentadas pelo entrevistado etomam notas Esse teste eacute repetido algumas vezes e seu resultado eacute coletado para avaliaccedilatildeoe modificaccedilatildeo das funcionalidades

Figura 415 Tela de detalhes de um restaurante(segunda versatildeo)

Notou-se que algumas funcionalidadespareceram confusas e natildeo intuitivas porexemplo natildeo ficou claro se o tempo mos-trado era de trajeto ou de espera na filanem qual era o meio de transporte utili-zado

Logo esse protoacutetipo foi reformuladocom o intuito de melhorar a experi-ecircncia do usuaacuterio com o nosso aplica-tivo

Foram colocados aleacutem do tempo deespera da fila o tempo que o usuaacuteriolevaria para chegar ateacute o local selecio-nado (conforme o tipo de transporte es-colhido) e a quantidade estimada de pes-soas na fila O tempo total (espera so-mado ao tempo de deslocamento) ga-nhou destaque entre as informaccedilotildees doestabelecimento e o botatildeo que direcionao usuaacuterio ao trajeto ficou mais especiacute-fico

Tambeacutem cogitou-se a possibilidade deadicionar login e um perfil de usuaacuteriojunto com uma lista de restaurantes favo-ritos

O fluxo das telas deste novo protoacutetipo ficou como mostra o esquema a seguir

38 DESENVOLVIMENTO DO PROJETO 44

Figura 416 Fluxo de telas do segundo protoacutetipo

44 DEFINICcedilAtildeO DA INTERFACE DO APLICATIVO 39

Figura 417 Tela de detalhes de um restaurante(terceira versatildeo)

Apoacutes outras avaliaccedilotildees mais algumaspequenas alteraccedilotildees foram realizadas nainterface Foi decidido que seria inviaacute-vel estimar o nuacutemero de pessoas nafila entatildeo essa funcionalidade foi remo-vida

Notificaccedilotildees foram adicionadas paraquando o usuaacuterio estiver parado na aacutereado restaurante para que ele possa con-tribuir com informaccedilotildees sobre a fila quepegou aleacutem de um botatildeo de contri-buiccedilatildeo ter sido inserido na tela ini-cial

40 DESENVOLVIMENTO DO PROJETO 45

O fluxo de telas do aplicativo atual ficou da seguinte forma

Figura 418 Fluxo de telas do terceiro protoacutetipo

46 EXPLICACcedilAtildeO DAS FUNCIONALIDADES 41

45 Explicaccedilatildeo das funcionalidadesEsta seccedilatildeo explica as funcionalidades do produto utilizando a figura 418

A tela inicial (3) exibe uma lista de restaurantes incluindo seus respectivos tempos detrajeto e tempo de espera na fila Ao clicar no botatildeo ldquo+rdquo uma caixa de diaacutelogo eacute aberta(4) onde eacute possiacutevel adicionar o tempo que o usuaacuterio esperou na fila Primeiro eacute escolhido orestaurante depois a data e hora que a pessoa chegou na fila e por fim o tempo de esperaem minutos Ao tocar em ldquoEnviar Feedback rdquo os dados satildeo incluiacutedos no banco de dados eatualizados para os outros usuaacuterios Assim eacute apicado o conceito de Crowdsourcing no apli-cativo

Ao tocar em um item da lista de restaurantes seraacute aberta a tela de detalhes de um res-taurante (5) na qual eacute possiacutevel ver com mais clareza os tempos de trajeto e espera o tempototal o endereccedilo do estabelecimento e um pequeno mapa centrado no local Pressionandoo botatildeo ldquoDireccedilotildeesrdquo o usuaacuterio seraacute redirecionado ao aplicativo de mapas de sua preferecircnciano caso do exemplo (8) o Google Maps jaacute traccedilando a rota da localizaccedilatildeo do usuaacuterio para oestabelecimento em questatildeo

Novamente na tela inicial tocando no iacutecone de lupa eacute possiacutevel realizar uma busca digi-tando o nome do estabelecimento na caixa de texto a qual exibe sugestotildees dependendo doque foi digitado Ao clicar em um dos resultados da busca o usuaacuterio eacute novamente direcionadopara a tela de detalhes do restaurante (5)

Tambeacutem eacute possiacutevel tocar no iacutecone de mapa na tela inicial onde seraacute mostrado um mapacentrado na localizaccedilatildeo do usuaacuterio

Ao ficar parado por um tempo em um mesmo local proacuteximo a um estabelecimentocadastrado o usuaacuterio eacute perguntado em uma notificaccedilatildeo quanto tempo ele permaneceu nafila Ao tocar na notificaccedilatildeo a caixa de diaacutelogo para feedback do usuaacuterio seraacute aberta (4) jaacutecom o restaurante preenchido e apoacutes o feedback a janela seraacute fechada e os dados enviadosao banco de dados

46 Implementaccedilatildeo do banco de dadosO banco de dados do aplicativo foi modelado e populado em forma de aacutervore (Fi-

gura 419) de forma a facilitar o acesso aos dados necessaacuterios ao aplicativo No primeironiacutevel estatildeo os ids dos restaurantes Cada id de restaurante guarda a localizaccedilatildeo (latitudelongitude) do restaurante o nome o endereccedilo e um objeto fila O objeto fila guarda todos osdias da semana (domingo a saacutebado) e cada dia da semana possui 24 campos um para cadahora do dia Cada hora possui o tempo meacutedio de espera da fila naquela hora e um peso paraesse tempo O peso eacute um valor que aumenta de acordo com o nuacutemero de feedbacks dadospara que o novo valor do tempo meacutedio seja calculado de forma consistente

Modelamos o banco de dados de uma forma que respeitasse uma hierarquia de dados

42 DESENVOLVIMENTO DO PROJETO 46

Figura 419 Aacutervore que ilustra a organizaccedilatildeo de um restaurante no banco de dados

Com o banco de dados jaacute populado o aplicativo faz consultas e atualizaccedilotildees de dadosConsultas satildeo feitas ao criar a tela de listagem de restaurantes e de detalhes de um restau-rante consultado As atualizaccedilotildees satildeo feitas quando o usuaacuterio manda o feedback de tempo deespera em um estabelecimento em determinado horaacuterio o aplicativo calcula a nova meacutedia eatualiza o campo do respectivo horaacuterio

Capiacutetulo 5

Conclusatildeo

Ao longo dos capiacutetulos deste trabalho pocircde-se acompanhar todo o processo de criaccedilatildeo edesenvolvimento do aplicativo que apoacutes finalizado foi batizado com o nome Queue

Comeccedilando com um problema para o qual o grupo almejava oferecer uma soluccedilatildeoacabou-se por adentrar-se um pouco no campo da Estatiacutestica e estudar diversas metodo-logias que poderiam ser uacuteteis para fornecer um caacutelculo de previsatildeo de espera meacutedia porperiacuteodo aplicaccedilatildeo da teoria das filas e utilizaccedilatildeo de redes neurais

Atraveacutes de uma parceria com a empresa GetIn obteve-se acesso a uma grande quantidadede dados e foi possiacutevel utilizaacute-los em anaacutelises feitas nas metodologias escolhidas conseguindoassim resultados relevantes Por meio destes foi feita a escolha de um dos meacutetodos para ocaacutelculo da previsatildeo de filas a meacutedia por periacuteodo

Aleacutem desses estudos ao longo do ano o grupo aprendeu a desenvolver para a plata-forma Android sobre a qual nenhum dos integrantes tinha conhecimento preacutevio Tambeacutemfoi possiacutevel aprender e utilizar a metodologia aacutegil com Scrum para guiar o processo de de-senvolvimento

Ao fim do ciclo de desenvolvimento conseguiu-se entregar um aplicativo em funciona-mento que fornece a previsatildeo de espera no instante da consulta de estabelecimentos cadas-trados no banco de dados armazenado na nuvem

Na versatildeo atual do aplicativo natildeo foi implementado um sistema para o cadastro de novosestabelecimentos Isso soacute eacute possiacutevel atraveacutes da inserccedilatildeo direta no banco de dados atraveacutes dainterface fornecida pelo console do Firebase Atualmente estatildeo cadastrados 5 restaurantesos quais foram visitados durante o desenvolvimento do projeto Para que o cadastro deestabelecimentos escale seria necessaacuterio a implementaccedilatildeo de uma funcionalidade que permitaao usuaacuterio adicionar novos estabelecimentos a partir de locais disponiacuteveis na API de locaisda Google

43

45

46 APEcircNDICE A

Apecircndice A

Dados coletados

Figura A1 Dados de tempo de espera para grupos de tamanhos variados para cada horaacuterio e emcada dia da semana obtidos em entrevista em restaurantes Outback Steakhouse Shopping Uniatildeo nomecircs de outubro

Referecircncias Bibliograacuteficas

[1] Backpropagation httpmbpsourceforgenet Accesso em Janeiro 2017 14

[2] Bitbucket httpsbitbucketorgproduct Accesso em Dezembro 2016 19

[3] Crowdsourcing httpswwwmerriam-webstercomdictionarycrowdsourcing Ac-cesso em Novembro 2016 21

[4] Designing a survey httpwwwsciencebuddiesorgscience-fair-projectsproject_ideasSoc_surveyshtml Accesso em Outubro 2016 4 23

[5] Facebook httpswwwfacebookcom Accesso em Novembro 2016 24

[6] Firebase httpsfirebasegooglecom Accesso em Agosto 2016 20

[7] Getin app httpswwwgetinappcombrhomesao-paulo Accesso em Novembro2016 9

[8] Git 11 primeiros passos - sobre controle de versatildeo httpsgit-scmcombookpt-brv1Primeiros-passos-Sobre-Controle-de-Vers Accesso em Novembro 2016 19

[9] Google forms httpsdocsgooglecomforms Accesso em Novembro 2016 23

[10] Guia definitivo do project model canvas Project Builder 3

[11] Jsonorg introducing json httpwwwjsonorg Accesso em Novembro 2016 17

[12] Manifesto para desenvolvimento Aacutegil de software httpagilemanifestoorgisoptbrmanifestohtml Accesso em Novembro 2016 5

[13] Nosql httpsenwikipediaorgwikiNoSQL Accesso em Novembro 2016 20

[14] Outback steakhouse httpswwwoutbackcombrhome Accesso em Novembro 20169

[15] Restful api development with lumen microframework httpsbelitsoftcomlaravel-development-servicesapi-development Accesso em Novembro 2016 17

[16] Scrum httpswwwatlassiancomagilescrum Accesso em Novembro 2016 5

[17] Smartphone os market share 2016 q2 httpwwwidccomprodservsmartphone-os-market-sharejsp Accesso em Novembro 2016 15

[18] Smartphone os sales market share kantar worldpanel comtech httpwwwkantarworldpanelcomsmartphone-os-market-share Accesso em Novembro 2016 15

[19] Sourcetree httpswwwsourcetreeappcom Accesso em Dezembro 2016 19

47

48 REFEREcircNCIAS BIBLIOGRAacuteFICAS

[20] Sql httpsptkhanacademyorgcomputingcomputer-programmingsql Accesso emDezembro 2016 20

[21] Trello httpstrellocom Accesso em Novembro 2016 6

[22] Usability test httpsenwikipediaorgwikiUsability_testing Accesso em Novembro2016 36

[23] Versionone 2012 agile dev survey httpswwwversiononecompdf7th-Annual-State-of-Agile-Development-Surveypdf Accesso em Novembro 2016 5

[24] Waze httpswwwwazecom Accesso em Novembro 2016 1

[25] What is an open source httpsopensourcecomresourceswhat-open-source Accessoem Novembro 2016 15

[26] Xml tutorial httpwwww3schoolscomxml Accesso em Novembro 2016 17

[27] Paulo F Cabral dos Anjos Jr Aron Ifanger Maciel Christopher Silva de Paacutedua Com-posiccedilatildeo de carteiras de accedilotildees utilizando modelo de redes neurais artificiais e modelo derisco e retorno de Markowitz 2012 14

[28] Google Distance matrix api documentation httpsdevelopersgooglecommapsdocumentationdistance-matrix Accesso em Novembro 2016 17

[29] Alan Klement Designing features using job stories httpsblogintercomcomusing-job-stories-design-features-ui-ux Accesso em Novembro 2016 6

[30] Azmat Nafees Queuing theory and its application analysis of the sales checkout opera-tion in ica supermarket httpwwwstatisticsduseessaysD07ENafeespdf Accessoem Novembro 2016 12

[31] Eric Ries A Startup Enxuta Lua de papel primeira ediccedilatildeo edition 2012 3

  • Introduccedilatildeo
    • Motivaccedilatildeo
    • Trabalho Proposto
    • Estrutura da monografia
      • Estudos Preliminares
        • Desenvolvimento de Startups
          • Desenvolvimento de Questionaacuterios
            • Metodologia Aacutegil
            • Jobs to be done
            • Caacutelculo da previsatildeo do tempo de espera na fila
              • Descriccedilatildeo do problema
              • Meacutetodos de caacutelculo da espera
                  • Tecnologias utilizadas
                    • O sistema Android
                      • Organizaccedilatildeo de uma aplicaccedilatildeo Android
                        • JSON
                        • Google APIs
                        • Localizaccedilatildeo do Usuaacuterio
                        • Controle de Versatildeo
                        • Banco de dados
                          • Firebase
                            • Crowdsourcing
                              • Desenvolvimento do Projeto
                                • Pesquisa de Mercado
                                  • Pesquisa com o usuaacuterio
                                    • Projeto do Aplicativo
                                    • Aplicaccedilatildeo dos meacutetodos de caacutelculo de espera
                                      • Aplicando a meacutedia por periacuteodo
                                      • Aplicando teoria das filas
                                      • Aplicando redes neurais
                                      • Conclusatildeo sobre os meacutetodos estudados
                                        • Definiccedilatildeo da Interface do aplicativo
                                        • Explicaccedilatildeo das funcionalidades
                                        • Implementaccedilatildeo do banco de dados
                                          • Conclusatildeo
                                          • Dados coletados
                                          • Referecircncias Bibliograacuteficas

Capiacutetulo 2

Estudos Preliminares

21 Desenvolvimento de StartupsO desenvolvimento do projeto foi baseado nos meacutetodos utilizados em Startups O grupo

seguiu os princiacutepios da Startup Enxuta [31] no qual um produto miacutenimo deve ser criado eentatildeo incrementado atraveacutes do estudo das necessidades do usuaacuterio A partir de uma pesquisacom o puacuteblico alvo a ideia inicial eacute lapidada e um produto com o miacutenimo de funcionalidadespossiacutevel eacute desenvolvido para entatildeo retornar aos usuaacuterios que iratildeo validaacute-lo Este processo eacuterepetido ateacute que um produto final seja completamente desenvolvido independente da ideiaque se tinha no iniacutecio O processo tem como foco economizar recursos e suprir a necessidadedo usuaacuterio de forma raacutepida e eficiente

De acordo com o livro A Startup Enxuta[31] esta metodologia prioriza o desenvolvi-mento iterativo com a participaccedilatildeo do cliente a cada etapa ao inveacutes de procuraacute-lo somentena entrega do produto final Nessa metodologia temos alguns princiacutepios que guiam o desen-volvimento de projetos

1 Mapeamento do negoacutecio atraveacutes do diagrama conhecido como ldquocanvas do modelo denegoacuteciosrdquo que nos mostra resumidamente uma visatildeo geral do projeto

2 Pesquisas feitas com os usuaacuterios no mercado para saber suas opiniotildees sobre o negoacutecioe posteriores mudanccedilas ou ajustes no projeto com base nos resultados

3 Desenvolvimento do produto utilizando algum meacutetodo aacutegil

Inicialmente deve-se traccedilar os primeiros objetivos do projeto utilizando o diagrama Can-vas [10] (figura 21) Esse diagrama eacute utilizado para auxiliar empresas a ter uma visatildeo macrodo projeto fornecendo uma forma de visualizar suas dependecircncias e permitindo planejartraccedilar e gerenciar um plano de desenvolvimento Ele possui perguntas que devem ser res-pondidas em seus quadros e no decorrer desse processo o projeto vai sendo adaptado deacordo com as limitaccedilotildees impedimentos e novas ideias que vatildeo surgindo

3

4 ESTUDOS PRELIMINARES 21

Figura 21 Modelo do Diagrama Canvas

Com o modelo de negoacutecios definido o proacuteximo passo eacute a realizaccedilatildeo de uma pesquisa como puacuteblico para validaacute-lo Essa fase do desenvolvimento pode ser refeita quantas vezes foremnecessaacuterias reescrevendo o Canvas conforme a interpretaccedilatildeo da necessidade do usuaacuterio

211 Desenvolvimento de Questionaacuterios

De acordo com o manual Designing a Survey [4] um questionaacuterio eacute criado para obterinformaccedilotildees para conduzir o desenvolvimento de um projeto de acordo com as preferecircnciasdo puacuteblico alvo Ele deve ser curto e conciso e deve capturar somente informaccedilotildees que sejamrelevantes para a pesquisa

Os passos para o desenvolvimento de um bom questionaacuterio satildeo

∙ Definir os dados necessaacuterios

∙ Desenvolver as questotildees

∙ Remover qualquer questatildeo que natildeo captura os dados definidos previamente

As questotildees podem ser moldadas de trecircs maneiras

∙ Estruturadas Questotildees que possuem resposta fixa Exemplo

Vocecirc usa transporte puacuteblico

( )Sim

( )Natildeo

22 METODOLOGIA AacuteGIL 5

∙ Natildeo Estruturadas Questotildees de resposta aberta Exemplo

O que vocecirc costuma fazer para evitar filas

∙ Parcialmente Estruturadas Questotildees mistas Exemplo

Qual meio de transporte vocecirc usa

( )Carro

( )Moto

( )Outros______

22 Metodologia AacutegilA metodologia aacutegil tem sido adotada pelas empresas hoje em dia por conta dos melhores

resultados obtidos em relaccedilatildeo agraves metodologias tradicionais[23] Essa eacute caracterizada pelavalorizaccedilatildeo de

∙ ldquoIndiviacuteduos e interaccedilotildees mais que processos e ferramentasrdquo

∙ ldquoSoftware em funcionamento mais que documentaccedilatildeo abrangenterdquo

∙ ldquoColaboraccedilatildeo com o cliente mais que negociaccedilatildeo de contratosrdquo

∙ ldquoResponder a mudanccedilas mais que seguir um planordquo [12]

Eacute uma metodologia que envolve trabalho em equipe encontros regulares com o clientedesenvolvimento iterativo e com menos foco em planejamento estrito e ideias definitivasdiferente de metodologias mais tradicionais que satildeo mais focadas em projetos bem docu-mentados com pouca possibilidade de mudanccedila ao final do processo Decidiu-se por utilizara metodologia aacutegil neste projeto pois natildeo haviam ideias completamente definidas inicial-mente e para o grupo a opiniatildeo do puacuteblico alvo sobre o produto era fundamental em cadaiteraccedilatildeo do processo podendo haver mudanccedilas inesperadas dependendo do feedback recebido

Dentre as opccedilotildees de metodologias aacutegeis O meacutetodo Scrum[16] eacute um que eacute definido comoum gerenciador e um processo de controle que foca em construir um software que conheceas necessidades do negoacutecio devolvendo incrementalmente um software

Com o Scrum o software eacute desenvolvido em iteraccedilotildees de tamanho fixo chamadas deSprints que tem duraccedilatildeo de tipicamente duas a quatro semanas Em cada Sprint um nuacutemerofixo de histoacuterias (que se traduzem em tarefas) satildeo selecionadas pelo grupo para seremutilizadas na sprint(figura 22) Haacute tambeacutem um sistema de motivaccedilatildeo para o time como osMilestones que satildeo objetivos menores distribuiacutedos por toda a sprint ajudando na mediccedilatildeode desemprenho da equipe e graacuteficos Burndown que mostram o progresso de cada iteraccedilatildeopara que o time sinta o progresso no desenvolvimento

6 ESTUDOS PRELIMINARES 23

Figura 22 Dinacircmica do Scrum

Para controle das iteraccedilotildees foi utilizado o software Trello [21] que eacute um gerenciador detarefas de projeto (figura 23)

Figura 23 Interface do Trello - durante o processo de desenvolvimento

23 Jobs to be donePara implementar o aplicativo buscou-se uma metodologia para guiar esse processo desde

sua criaccedilatildeo ateacute sua validaccedilatildeo Duas metodologias conhecidas pelo grupo foram analisadas eestudadas Jobs To Be Done e Personas and Use Cases

Segundo Alan Klement[29] Personas satildeo clientes imaginaacuterios descritos pela idade sexoraccedila e haacutebitos semanais O uso delas natildeo eacute adequado para responder perguntas como ldquoPorqueo cliente quer saber o tamanho da filardquo pois quando a resposta eacute ldquoEle estaacute com pressa paracomerrdquo natildeo fica claro quais satildeo as reais necessidades do usuaacuterio Essa descriccedilatildeo tambeacutem natildeoeacute uacutetil no desenvolvimento de uma boa interface pois natildeo ajuda na hora de responder se umcerto botatildeo realmente deixa claro sua funcionalidade

23 JOBS TO BE DONE 7

Tambeacutem segundo Alan Klement Use Cases possuem 3 grandes problemas usam perso-nas casam implementaccedilotildees motivaccedilotildees e resultado e ignoram contexto situaccedilotildees e ansie-dades

Se uma funcionalidade definida por uma Use Case falhar seraacute difiacutecil identificar o pro-blema pois por casar informaccedilotildees diferentes surgiraacute a dificuldade de saber o que estaacute erradoa implementaccedilatildeo as suposiccedilotildees sobre as motivaccedilotildees ou os resultados

Observando-se esses fatos optou-se pelo uso da metodologia Jobs to Be Done pois haacuteuma mudanccedila na forma de fazer histoacuterias a fim de evitar os problemas observados em Per-sonas e Use Cases(Figura 24) Nesse modelo as Personas satildeo pessoas reais e as histoacuterias satildeoescritas com a seguinte divisatildeo situaccedilatildeo motivaccedilatildeo e resultados esperados

Nessa metodologia criamos histoacuterias descrevendo tarefas para que os usuaacuterios se colo-quem na situaccedilatildeo descrita Observando-os eacute possiacutevel saber se a tarefa foi realizada de formabem sucedida e caso contraacuterio identificar onde e o que estaacute causando a falha no instanteda realizaccedilatildeo dela

Figura 24 Diferenccedila entre estruturas de histoacuterias

8 ESTUDOS PRELIMINARES 24

Algumas das histoacuterias criadas para os testes de interface do grupo foram

∙ Quando eu estiver na tela de lista de restaurantes eu quero acessar a tela de detalhesdo restaurante que eu desejo saber o tempo de espera entatildeo eu posso ver com clarezaas informaccedilotildees e posso traccedilar uma rota para o estabelecimento

∙ Quando eu estiver na tela principal eu quero enviar meu feedback sobre o tempo deespera no estabelecimento que estou entatildeo eu posso ajudar outros usuaacuterios por meiodo aplicativo

24 Caacutelculo da previsatildeo do tempo de espera na filaAtraveacutes de pesquisas em busca de meacutetodos estatiacutesticos para se estudar o comportamento

das filas foram encontradas as trecircs metodologias descritas nesta seccedilatildeo Este capiacutetulo conteacutema explicitaccedilatildeo do problema estudado e suas possiacuteveis soluccedilotildees

241 Descriccedilatildeo do problema

Para que se chegasse a uma soluccedilatildeo apropriada o problema de espera em fila precisouser estudado Esse problema pode ser descrito da seguinte forma dado um restaurante aentrada nesse eacute atraveacutes de uma fila Essa fila tem seu tamanho redefinido agrave medida quenovos clientes chegam e saem dela A saiacuteda dos clientes pode ser devido a desistecircncia ou aacomodaccedilatildeo deles nas mesas A entrada eacute definida pela disponibilizaccedilatildeo de lugares livres agravemedida em que os grupos que estavam alocados terminam seu atendimento

Figura 25 Esquema simplificado do funcionamento do processo em um restaurante

A fila de espera eacute influenciada por dois fatores a taxa de chegada do cliente e a taxa deatendimento nas mesas

∙ chegada em restaurantes a chegada de clientes eacute definida por uma taxa O clienteneste caso representa um grupo com tamanho variaacutevel A distribuiccedilatildeo do tamanho dogrupo nas chegadas eacute variaacutevel

∙ O atendimento a alocaccedilatildeo do grupo eacute organizada pela recepccedilatildeo O meacutetodo utilizadopor eles natildeo eacute padronizado e muitas vezes eacute completamente subjetivo Por exemplose acontecer de um grupo grande e vaacuterios casais chegarem ao mesmo tempo e nesse

24 CAacuteLCULO DA PREVISAtildeO DO TEMPO DE ESPERA NA FILA 9

momento existir um espaccedilo no salatildeo que acomode o grupo (juntando as mesas) outodos os casais (com as mesas separadas) dependendo de quem estaacute responsaacutevel poralocaacute-los cada um receberaacute uma prioridade diferente e essa decisatildeo natildeo eacute padronizada

∙ A disposiccedilatildeo das mesas a disposiccedilatildeo e quantidade de mesas natildeo satildeo padronizadasentre restaurantes de uma mesma rede muito menos entre restaurantes diferentesAleacutem disso a formataccedilatildeo do salatildeo pode ser remodelada de acordo com a necessidadede alocaccedilatildeo dos clientes haacute gerentes que evitam essa movimentaccedilatildeo ou ateacute mesmorestaurantes que natildeo tecircm essa possibilidade

242 Meacutetodos de caacutelculo da espera

Com o problema desenhado desta maneira esboccedilou-se trecircs possiacuteveis meacutetodos de resoluccedilatildeoe um desses foi aplicado na soluccedilatildeo final Os meacutetodos desenvolvidos satildeo meacutedia por periacuteodoaplicaccedilatildeo da teoria das filas e utilizaccedilatildeo de redes neurais Essas teacutecnicas precisam de dadospara serem desenvolvidas e aplicadas Por conta disso buscou-se fontes que suprissem essanecessidade

Captaccedilatildeo dos dados para a anaacutelise

Para que seja possiacutevel aplicar os meacutetodos estudados eacute necessaacuterio obter dados para aplicarna anaacutelise Estes foram obtidos de duas formas a partir de uma parceria com a empresa GetIn [7] desenvolvedora de um aplicativo de gerenciamento de filas de restaurantes e atraveacutesde pesquisas presenciais em restaurantes da rede Outback Steakhouse[14] selecionados para oestudo(Apecircndice A) O aplicativo da Get In possui uma funcionalidade principal realizaccedilatildeode uma reserva em um determinado restaurante O banco de dados manteacutem o registro detodos os usuaacuterios que entram na fila e esses dados satildeo organizados em uma tabela com osseguintes campos

∙ Origem Se a reserva foi realizada de forma remota ou presencial Assim

1 Reserva presencial (na entrada do restaurante incluiacuteda pela recepcionista)

2 Reserva remota (realizada atraveacutes do aplicativo)

∙ Entrada este consiste na data e hora que o usuaacuterio entrou na fila

∙ Qtd Pessoas tamanho do grupo para o qual a reserva foi feita

∙ Prioritaacuterio se este grupo requer atendimento prioritaacuterio

0 Natildeo

1 Sim

∙ Notificado A data e horaacuterio em que o grupo foi notificado que sua mesa estava pronta

ndash Quando NULL a recepcionista natildeo notificou essa pessoa (possivelmente chamoudiretamente pelo nome)

∙ Tempo na Espera Tempo que o grupo ficou ativo na fila de espera (em segundos)

∙ Status Qual a situaccedilatildeo da reserva do grupo Podendo assumir tais valores

0 Cancelado pela recepcionista

10 ESTUDOS PRELIMINARES 24

2 Sentado

3 Cancelado pelo proacuteprio Usuaacuterio

Para melhor entender estes paracircmetros o funcionamento do aplicativo deve ser expli-cado com maior detalhamento O processo de reserva funciona da seguinte forma o usuaacuterioreserva seu lugar atraveacutes do aplicativo ou vai ao restaurante e a recepcionista o adiciona agraveespera No primeiro caso o usuaacuterio tem um tempo de toleracircncia para chegar ao estabeleci-mento apoacutes receber a notificaccedilatildeo caso natildeo consiga chegar a tempo a reserva eacute cancelada Nosegundo caso quando o grupo a ser chamado estaacute proacuteximo da recepccedilatildeo a funcionalidade denotificaccedilatildeo natildeo precisa ser usada o responsaacutevel pode se direcionar diretamente aos clientes echamaacute-los pelo nome Mesmo nesse segundo caso o tempo de espera na fila ainda eacute guardadopois a recepccedilatildeo precisa ldquofecharrdquo a espera do grupo para chamar o proacuteximo

Poreacutem a utilizaccedilatildeo desses dados natildeo foi liberada pela empresa Get In para serem usadoscomo banco de dados do aplicativo somente foram fornecidos dados do mecircs de agosto esetembro de 2016 para que fossem utilizados nas anaacutelises feitas com os modelos estatiacutesticosPara obter dados que poderiam ser utilizados no banco de dados do aplicativo foi neces-saacuterio uma pesquisa presencial onde o grupo visitou alguns restaurantes da rede OutbackSteakhouse para obter informaccedilotildees sobre o tempo de espera nestes estabelecimentos

Foram visitados 5 restaurantes Outback Steakhouse Shopping Eldorado Outback Ste-akhouse Shopping Villa Lobos Outback Steakhouse Shopping Granja Vianna Outback Ste-akhouse Shopping Uniatildeo de Osasco e Outback Steakhouse Shopping Market Place ondequestionamos sobre o tempo de espera por tamanho de grupos (em nuacutemero de pessoas) epor horaacuterio e dia da semana

Ao analisar os dados coletados pela pesquisa presencial notamos que estes estavam sus-cetiacuteveis a erros por terem sido obtidos por meio de diferentes observaccedilotildees humanas Ummeacutetodo para obter dados mais precisos consistiria na realizaccedilatildeo de novas pesquisas no for-mato mediccedilatildeo onde cada integrante do grupo deveria coletar o tempo de espera de cadacliente atraveacutes de um cronocircmetro e calcular o tempo de espera meacutedio nesse horaacuterio Comoo grupo natildeo conseguiria aplicar este meacutetodo optou-se por melhorar a precisatildeo dos dadoscoletados usando como base o graacutefico de horaacuterios de pico disponibilizado pela Google paracada restaurante Essa melhora foi feita utilizando-se caacutelculos de proporccedilatildeo de valores

24 CAacuteLCULO DA PREVISAtildeO DO TEMPO DE ESPERA NA FILA 11

Primeiro meacutetodo Meacutedia por periacuteodo

Figura 26 Esquema do meacutetodo meacutedia por periacuteodo

Para que uma previsatildeo de espera possa ser fornecida ao usuaacuterio essa deve basear-seobrigatoriamente em alguma informaccedilatildeo preacutevia Contudo encontrar uma fonte para taisdados se mostrou uma tarefa muito complicada Para conseguir ainda assim apresentar umtempo de espera em fila meacutetodos de anaacutelise foram definidos de acordo com a quantidade dedados disponiacutevel para cada estabelecimento

De um modo geral neste modelo o caacutelculo do tempo de espera funcionaraacute da seguinteforma calcular-se-aacute a meacutedia de espera para o dia da semana e horaacuterio requeridos pelousuaacuterio sem diferenciar feriados de dias normais Dependendo de quatildeo longo eacute o histoacutericoniacuteveis de especificidade podem ser adicionados ou seja numa busca tempo de espera em 9de Dezembro (segunda-feira) agraves 19h no restaurante X a query selecionaraacute todos os registrosfeitos no dia 9 de dezembro entre as 19h e agraves 20h dos uacuteltimos anos no restaurante X e realizaraacuteessa meacutedia ou pode selecionar apenas linhas de todas as segundas-feiras do mecircs de Dezembrodeste mesmo periacuteodo

∙ Muitos dados neste caso um maior niacutevel de especificidade pode ser aplicado sem autilizaccedilatildeo de outras fontes para complementar o banco de dados

∙ Alguns dados o niacutevel de especificidade eacute bem menor apenas filtrando por dia dasemana e intervalo de hora sem mecircs ou dia especiacutefico no ano Em alguns casos aquantidade de dados eacute tatildeo pequena que deve-se recorrer a outras fontes A Googletem disponibilizado graacuteficos com a distribuiccedilatildeo dos clientes nos horaacuterios de funciona-mento de estabelecimentos Esses dados natildeo estatildeo disponiacuteveis em sua API ou seja natildeo

12 ESTUDOS PRELIMINARES 24

haacute uma forma automaacutetica para que o aproveitamento desses possa ser feito Poreacutemmesmo omitindo-se os valores do graacutefico o perfil da distribuiccedilatildeo e o horaacuterio de picosatildeo aproveitados manualmente para nosso sistema

∙ Poucos dados para este caso fizemos o balanceamento dos dados da Google comas informaccedilotildees retiradas das entrevistas Aleacutem do aproveitamento das informaccedilotildees daGoogle foram realizadas pesquisas com funcionaacuterios dos restaurantes

Segundo meacutetodo Teoria das filas

Filas podem ser vistas como um sistema dinacircmico no qual existe um conjunto de usuaacuteriosque satildeo atendidos por um conjunto de atendentes de acordo com a ordem de chegada dosusuaacuterios A teoria de filas busca utilizando anaacutelises matemaacuteticas estudar o comportamentodestas filas para estimar o tempo de espera com base em um conjunto inicial de dadospreviamente fornecido[30]

Um sistema de filas possui como caracteriacutesticas

∙ Modelo de chegada dos usuaacuterios Utiliza como base o tempo entre as chegadasdos usuaacuterios

∙ Modelo de serviccedilo (atendimento aos usuaacuterios) Utiliza como base o tempo gastono atendimento ao usuaacuterio No caso dos restaurantes equivale ao tempo que um grupopassa na mesa ateacute a sua saiacuteda

∙ Nuacutemero de servidores Eacute o nuacutemero de atendentes disponiacuteveis no sistema Para omodelo do restaurante este equivale agraves mesas disponiacuteveis no salatildeo

∙ Capacidade do sistema Eacute o nuacutemero de usuaacuterios que o sistema eacute capaz de atenderInclui o nuacutemero de usuaacuterios que estatildeo sendo atendidos somado com os que esperamna fila Se este paracircmetro natildeo for informado o sistema eacute considerado com capacidadeilimitada

∙ Tamanho da populaccedilatildeo nuacutemero potencial de clientes que podem chegar a umsistema Pode ser finito ou infinito

∙ Disciplina da fila A disciplina da fila pode ser FIFO (first in first out) - o primeiroa chegar eacute o primeiro a ser atendido LIFO (last in first out) - o uacuteltimo a chegar eacuteo primeiro a ser atendido ALEATOacuteRIO - os atendimentos satildeo feitos sem qualquerpreocupaccedilatildeo com a ordem de chegada COM PRIORIDADE - os atendimentos satildeofeitos de acordo com prioridades estabelecidas No caso dos restaurantes a disciplinaadotada eacute a FIFO poreacutem esta pode mudar de acordo com o atendente responsaacutevel

Os tempos mencionados nos modelos de chegada e de serviccedilo podem ser constantesquando os intervalos entre as chegadas dos usuaacuterios satildeo iguais ou variaacuteveis quando os valo-res desses intervalos variam Nesse uacuteltimo caso o intervalo de tempo segue uma distribuiccedilatildeode probabilidades Nesse modelo tambeacutem existe a taxa meacutedia de chegada dos usuaacuterios porunidade de tempo ou seja quantos usuaacuterios chegam em uma hora

As filas podem ser moldadas em trecircs situaccedilotildees baacutesicas como descrito por Azmat Nafees[30]

∙ Modelo de fila de canal uacutenico com fila uacutenica e atendimento uacutenico (Figura 27)

24 CAacuteLCULO DA PREVISAtildeO DO TEMPO DE ESPERA NA FILA 13

∙ Modelo de fila de canal uacutenico com fila uacutenica e muacuteltiplos atendimentos paralelos (Fi-gura 28)

∙ Modelo de fila de canal uacutenico com muacuteltiplas filas e muacuteltiplos atendimentos paralelos(Figura 29)

Figura 27 Modelo de fila de canal uacutenico com fila uacutenica e atendimento uacutenico

Figura 28 Modelo de fila de canal uacutenico com fila uacutenica e muacuteltiplos atendimentos paralelos

Figura 29 Modelo de fila de canal uacutenico com muacuteltiplas filas e muacuteltiplos atendimentos paralelos

Tambeacutem por Azmat Nafees nesses modelos trecircs subprocessos podem ser vistos

∙ Processo de chegada Eacute um processo contiacutenuo do evento ldquochegada de clientesrdquo ouseja quando o evento ocorre o processo aguarda a ocorrecircncia do proacuteximo evento Esseevento coloca um cliente na fila quando ele chega

14 ESTUDOS PRELIMINARES 24

∙ Processo de espera Eacute um processo que inclui o evento ldquocomece a servir o proacuteximocliente da filardquo que retira um cliente da fila o coloca no processo de atendimento eespera a conclusatildeo do evento ldquocliente servidordquo para recomeccedilar Nele se trabalha comtamanho e disciplina da fila

∙ Processo de atendimento Eacute um processo que inclui o evento ldquocliente servidordquo eespera a conclusatildeo do evento ldquocomece a servir o proacuteximo cliente da filardquo para recomeccedilarNele se trabalha com tipo taxa e tempo de atendimento

Dentre esses 3 modelos o que mais se encaixa na situaccedilatildeo de um restaurante eacute o segundomodelo canal uacutenico com fila uacutenica e muacuteltiplos atendimentos paralelos O processo de chegadade novos clientes na fila eacute tido como aleatoacuterio

Terceiro meacutetodo Rede Neural

Rede Neural eacute uma teacutecnica computacional inspirada no sistema nervoso que com o auxiacute-lio de um modelo matemaacutetico apresenta respostas para problemas de decisatildeo Esses modelosfuncionam da seguinte forma primeiro um conjunto de dados (conjunto de treinamento) eacuteapresentado ao sistema e este aprende com ele atraveacutes de reconhecimento de padratildeo entatildeocoloca-se o sistema para analisar os dados (conjunto de teste) para os quais deseja-se obteralgum resultado Este processo eacute chamado de aprendizagem de maacutequina Quanto melhor forseu treinamento mais precisas seratildeo as respostas para o segundo conjunto

Uma rede neural eacute formada por subestruturas chamadas neurocircnios Um neurocircnio tem oseguinte funcionamento ele recebe como entrada sinais cada sinal recebe um peso de acordocom a influecircncia dele na saiacuteda e uma soma eacute feita para produzir o niacutevel de atividade entatildeodependendo se o niacutevel de atividade exceder o limite dado pela funccedilatildeo de transferecircncia aresposta eacute produzida[27]

Software Multiple Back-Propagation

Para implementar a soluccedilatildeo baseada em redes neurais foi usado o Software MultipleBack-Propagation [1] Este eacute um software de faacutecil utilizaccedilatildeo que fornece uma rede a qualaprende atraveacutes do processo de propagaccedilatildeo inversa Esse meacutetodo baseia-se na comparaccedilatildeodos dados esperados (conjunto de teste) com os dados obtidos a partir do treinamento senecessaacuterio adaptaccedilotildees satildeo feitas a estrutura da rede para melhor aproximar aos dados doconjunto teste e isso eacute chamado de propagaccedilatildeo inversa

Por se tratar de um meacutetodo de aprendizagem de maacutequinas para se obter um resultadodeve-se treinar o algoritmo Primeiramente submete-se o conjunto de treinamento ao soft-ware para isso foi escolhido o mecircs de Agosto O criteacuterio de parada para o treino eacute o erroquadraacutetico meacutedio o qual teve seu valor atribuiacutedo para 001

Capiacutetulo 3

Tecnologias utilizadas

31 O sistema AndroidAndroid eacute um Sistema operacional open source (software de coacutedigo aberto o qual as

pessoas podem acessar e modificar para contribuir com o projeto [25]) e para dispositivosmoacuteveis desenvolvido pela Google baseado no Kernel do Linux e utilizado principalmente emdispositivos touchscreen Atualmente o Android eacute o sistema operacional que deteacutem a maiorparcela do mercado[17] com 836 dos dispositivos contra 134 do iOS da Apple

A Google tambeacutem oferece um ambiente de desenvolvimento para a plataforma Androidchamado Android Studio no qual os aplicativos satildeo criados e exportados para os dispositi-vos moacuteveis Aplicativos Android satildeo programados na linguagem Java com vaacuterias bibliotecasdisponibilizadas pela Google para suporte ao sistema operacional

A escolha da plataforma foi feita principalmente por conta de o sistema possuir a maiorparte dos usuaacuterios de Smartphones e tambeacutem pela ampla comunidade ativa de desenvolve-dores agrave qual se pode recorrer em casos de duacutevidas e problemas tornando suas resoluccedilotildeesmais raacutepidas e com muacuteltiplas alternativas Outros motivos que contribuiacuteram para a escolhado Android foram

∙ A disponibilidade do ambiente de desenvolvimento Android Studio que possui todosos recursos necessaacuterios para desenvolver um aplicativo funcional logo apoacutes a instalaccedilatildeosem a necessidade de utilizar outras dependecircncias as quais satildeo gerenciadas automati-camente pelo proacuteprio software

∙ O fato de no mercado brasileiro o sistema Android se encontrar em 918 dos dispo-sitivos segundo pesquisa da Kantar[18] e dado a pesquisa realizada para definiccedilatildeo depuacuteblico alvo onde foi possiacutevel perceber que 639 dos entrevistados utilizam smartpho-nes com sistema Android

∙ A utilizaccedilatildeo da linguagem de programaccedilatildeo Java para desenvolvimento que jaacute eraconhecida e fora utilizada anteriormente ao contraacuterio das linguagens Objective C eSwift linguagens utilizadas para desenvolver aplicativos para o sistema iOS Assimcomo a disponibilidade de dispositivos por parte do grupo que em sua maioria era decelulares com o sistema Android

15

16 TECNOLOGIAS UTILIZADAS 31

Figura 31 Parcela de mercado dos dispositivos no Brasil

311 Organizaccedilatildeo de uma aplicaccedilatildeo Android

Aplicativos Android satildeo divididos em componentes Haacute quatro tipos de componentespresentes Activities (ou atividades) Services (ou serviccedilos) Content providers (ou provedoresde conteuacutedo) Broadcast receivers (ou receptores de transmissatildeo)

∙ Activities Satildeo as telas e interfaces do usuaacuterio Cada tela de uma aplicaccedilatildeo eacute repre-sentada por uma activity e cada activity eacute independente de outras apesar de seremcomponentes de uma mesma aplicaccedilatildeo Isso se daacute pelo fato de haver a possibilidade deutilizar activities de aplicativos durante a execuccedilatildeo de outros Atividades satildeo iniciadase se comunicam entre si atraveacutes de objetos chamados Intent que transferem um pacotede dados que pode ser carregado no iniacutecio da nova atividade

∙ Services Sempre satildeo executados em segundo plano sem interferir na experiecircncia dousuaacuterio geralmente para realizar operaccedilotildees longas ou realizar operaccedilotildees de troca dedados enquanto o usuaacuterio estaacute utilizando outra aplicaccedilatildeo em primeiro plano

∙ Content Providers Satildeo gerenciadores de dados de aplicaccedilotildees Android utilizadospara ler e salvar dados compartilhados ou secretos dos aplicativos e do sistema

∙ Broadcast Receivers Satildeo componentes responsaacuteveis por obter eventos que aconte-ceram em outras aplicaccedilotildees ou no sistema e direcionar dados sobre esses eventos paraeventuais aplicaccedilotildees que necessitem destes dados alguns exemplos de eventos obtidospelos receptores de transmissatildeo satildeo tela desligada e bateria fraca

Aleacutem dos componentes uma parte importante de uma aplicaccedilatildeo Android eacute o ArquivoManifest que eacute uma declaraccedilatildeo de permissotildees serviccedilos e exigecircncias de hardware necessaacuterios

33 JSON 17

para o funcionamento do aplicativo Outra funccedilatildeo eacute possuir declaraccedilotildees de todos os compo-nentes utilizados no projeto nomes iacutecones entre outros

As interfaces de usuaacuterio do Android satildeo definidas em arquivos XML (eXtensible MarkupLanguage)[26] nos quais estatildeo declarados todos os layouts e configuraccedilotildees das telas Essesarquivos de layout satildeo depois inflados e satildeo gerados os componentes visuais da aplicaccedilatildeoEssa estrutura tem como objetivo facilitar o design da interface do usuaacuterio jaacute que arquivosxml satildeo de faacutecil compreensatildeo do desenvolvedor

32 JSONJSON ou Javascript Object Notation eacute um formato de dados amplamente utilizado para

troca de informaccedilotildees entre programas Possui uma notaccedilatildeo simples para grande parte dosprogramadores pois se assemelha a convenccedilotildees utilizadas em linguagens de programaccedilatildeomuito conhecidas como C C++ Python e Java O objetivo eacute que ele seja de faacutecil entendi-mento tanto para pessoas como para maacutequinas[11]

Um arquivo JSON eacute organizado como um objeto contendo pares nomevalorseparadospor viacutergulas e dentro de chaves(lsquolsquo rsquorsquo) ou como um array que eacute uma lista de valores separa-dos por viacutergulas e entre colchetes(lsquo[lsquo rsquo]rsquo) Um valor por sua vez pode ser um objeto ou umarray mas tambeacutem um nuacutemero inteiro ou uma String entre outros

Um exemplo de arquivo JSON eacute

1 2 Carros [3 4 Nome Scen ic 5 Marca Renault 6 Ano 20127 8 9 Nome Sentra

10 Marca Nissan 11 Ano 200912 13 ]14

33 Google APIsAPIs (Application Program Interfaces) satildeo interfaces para facilitar a troca de informa-

ccedilotildees entre aplicaccedilotildees utilizando comandos especiacuteficos[15]

Ao longo do desenvolvimento algumas APIs fornecidas pela Google foram utilizadascomo fonte de informaccedilotildees adicionais para o aplicativo

∙ Google Maps Distance Matrix API Esta API eacute utilizada para obter o tempo emsegundos de trajeto entre dois pontos (latlong) no mapa podem ser consultados ostempos de trajeto de carro bicicleta a peacute e utilizando transporte puacuteblico[28] Esta eacute

18 TECNOLOGIAS UTILIZADAS 35

uma API web logo utiliza-se um request http para realizar uma consulta

Por exemplo o request

httpsmapsgoogleapiscommapsapidistancematrixjsonorigins=Seattleampdestinations=Victoria+BCampkey=[user_key]

retorna o JSON

1 2 des t ina t i on_addre s s e s [ Vic tor ia BC Canada ] 3 o r i g in_addre s s e s [ Sea t t l e WA EUA ] 4 rows [5 6 e lements [7 8 d i s t anc e 9 text 172 km

10 value 17166811 12 durat ion 13 text 4 horas 40 minutos 14 value 1680915 16 s t a tu s OK17 18 ]19 20 ] 21 s t a tu s OK22

no qual eacute possiacutevel obter o tempo de trajeto em segundos

∙ Google Maps Android API Esta API eacute utilizada para habilitar o uso de mapasda Google integrados agrave aplicaccedilatildeo jaacute disponiacutevel com todas as funcionalidades de zoome arrastar presentes no aplicativo nativo permitindo tambeacutem a personalizaccedilatildeo comoa adiccedilatildeo de pontos definidos pelo usuaacuterio ao mapa

34 Localizaccedilatildeo do UsuaacuterioOutro serviccedilo que foi utilizado com o intuito de obter o tempo de trajeto e a lista ordenada

de forma personalizada de restaurantes foi a localizaccedilatildeo do usuaacuterio que eacute obtida atraveacutes doGPS presente nos smartphones Um objeto de localizaccedilatildeo eacute criado e realiza a comunicaccedilatildeocom o serviccedilo de localizaccedilatildeo do aparelho Ao obter a localizaccedilatildeo ele lanccedila um evento quepode ser acessado por outras partes da aplicaccedilatildeo obtendo a localizaccedilatildeo mais atualizada dodispositivo

36 CONTROLE DE VERSAtildeO 19

35 Controle de VersatildeoControle de versatildeo eacute uma praacutetica usada para manter a organizaccedilatildeo do coacutedigo e do seu de-

senvolvimento quando muitos desenvolvedores colaboram conjuntamente Existem softwaresque auxiliam essa organizaccedilatildeo registrando todas as mudanccedilas feitas ao longo do processo eque possui recursos que permitem que vaacuterios usuaacuterios trabalhem nos mesmos arquivos semperda de informaccedilotildees

No caso do Git [8] o projeto fica organizado em uma estrutura de aacutervore onde cadacommit (checkpoints criados pelos membros do grupo durante o processo) eacute marcado porum noacute para onde se pode retornar quando necessaacuterio Existem tambeacutem estruturas chama-das branches que satildeo bifurcaccedilotildees na estrutura para que partes do projeto sejam criadasseparadamente sem interferir com a linha principal As branches depois satildeo unidas agrave linhaprincipal atraveacutes do comando merge

Neste projeto o serviccedilo de controle de versatildeo utilizado foi o Bitbucket [2] (que eacute um ser-viccedilo web-based de controle de versatildeo que utiliza Git) com auxiacutelio do software SourceTree[19]que eacute uma interface graacutefica para os serviccedilos do Bitbucket onde eacute possiacutevel visualizar com maisfacilidade as fases do desenvolvimento do projeto e realizar os comandos mais intuitivamente

Figura 32 Interface do SourceTree que mostra o controle de versionamento do projeto

36 Banco de dadosCom o intuito de deixar o aplicativo mais completo guardando informaccedilotildees dos usuaacuterios

e dos estabelecimentos optou-se por utilizar-se um banco de dados Alguns exemplos de

20 TECNOLOGIAS UTILIZADAS 36

banco de dados aprendidos no curso Laboratoacuterio de Banco de Dados foram

∙ SQL (Structured Query Language - Linguagem de Consulta Estruturada)[20] umalinguagem para atualizar deletar e requisitar informaccedilotildees atraveacutes de consultas emtabelas que possuem relaccedilatildeo entre si

∙ noSQL[13] um banco de dados que armazena e recupera informaccedilotildees modeladas deuma forma onde natildeo satildeo usadas tabelas relacionais

Como este uacuteltimo natildeo foi o foco da disciplina por falta de tempo decidiu-se por utilizaacute-lopara que o grupo pudesse aprender melhor esse modelo

Outra decisatildeo tomada foi a hospedagem dos dados na nuvem ou seja colocaacute-los em umservidor que natildeo seja local e conseguir acessaacute-los atraveacutes de uma conexatildeo via internet Dessemodo os dados sempre estaratildeo disponiacuteveis para serem consultados

361 Firebase

Buscando-se atender as decisotildees tomadas sobre o banco de dados procuramos um serviccedilode banco de dados da Google por conter ampla integraccedilatildeo com a plataforma de desenvolvi-mento Android por ser conhecido bastante utilizado e por possuir uma ampla comunidadede desenvolvedores dispostos a oferecer auxiacutelio em foacuteruns de discussatildeo de coacutedigos

Para atender esses requisitos escolheu-se o Firebase Realtime Database[6] desenvolvido edisponibilizado pela Google que consiste em um banco de dados noSQL com armazenamentona nuvem Esse serviccedilo armazena os dados do usuaacuterio no servidor da Google em formatoJSON e a cada alteraccedilatildeo sincroniza em tempo real com todos os clientes conectados

O grupo pode observar as seguintes vantagens de se trabalhar com a ferramenta existea sincronizaccedilatildeo em tempo real dos dados de todos os clientes e sua disponibilidade mesmocom o aplicativo offline ou seja quando o aplicativo natildeo estiver conectado a internet osdados do dispositivo moacutevel seratildeo armazenados e sincronizados com o banco de dados assimque a conexatildeo estiver disponiacutevel novamente Aleacutem disso os desenvolvedores possuem acessoa um console online (figura 33) onde o JSON eacute mostrado numa interface interativa de umaforma mais amigaacutevel e no qual eacute permitido editaacute-lo facilmente

37 CROWDSOURCING 21

Figura 33 Console online do Firebase onde os dados satildeo mostrados de forma mais amigaacutevel eintuitiva

Outra observaccedilatildeo feita foi que o Firebase Realtime Database funciona como o esperadose ele guardar uma coacutepia local dos dados em um arquivo JSON no celular Poreacutem isso natildeofoi visto como um problema pois como essa coacutepia pode ser salva em um arquivo texto oespaccedilo utilizado diminui consideravelmente

Na primeira vez que os dados satildeo criados e todas as vezes em que os dados forem atua-lizados por algum dispositivo moacutevel eacute enviada uma atualizaccedilatildeo que seraacute recebida atraveacutes delisteners por todos os aparelhos que utilizam o aplicativo para que eles atualizem seus res-pectivos JSONs Listeners satildeo interfaces de comunicaccedilatildeo que executam uma seacuterie de accedilotildeesassim que um outro evento esperado acontece

37 CrowdsourcingO termo Crowdsourcing tem origem nas palavras da liacutengua inglesa Crowd (multidatildeo) e

Outsourcing (terceirizaccedilatildeo) e eacute definido pelo dicionaacuterio Merriam Webster como A praacuteticade obtenccedilatildeo de serviccedilos ideias ou conteuacutedo solicitando contribuiccedilotildees de grandes grupos depessoas e especialmente da comunidade online [3] Esta praacutetica eacute utilizada para que sejapossiacutevel agrave comunidade contribuir com dados para algum programa ou serviccedilo como no apli-cativo Waze do qual a principal fonte de dados de tracircnsito acidentes e radares eacute obtida pormeio dos proacuteprios usuaacuterios

Capiacutetulo 4

Desenvolvimento do Projeto

Este capiacutetulo aborda o processo de desenvolvimento do projeto iniciado com o preen-chimento do diagrama Canvas e uma pesquisa de mercado direcionada ao usuaacuterio A partirdas informaccedilotildees coletadas foi possiacutevel projetar um aplicativo que atendesse as necessidadesexpostas pela pesquisa e selecionar as tecnologias necessaacuterias Tambeacutem eacute abordada a aplica-ccedilatildeo dos diferentes meacutetodos de caacutelculo da previsatildeo de tempo de espera que foram estudadose explicados no Capiacutetulo 2 Por fim satildeo expostas as diferentes versotildees do aplicativo duranteo processo e seus detalhes

41 Pesquisa de MercadoAntes de iniciar-se o desenvolvimento praacutetico algumas questotildees foram levantadas se

um aplicativo com as funcionalidades escolhidas seria de alguma forma uacutetil para o usuaacuterioe se sim qual metodologia deveria ser usada para que este produto fosse entregue o maiscompleto possiacutevel ateacute o final do ano Para responder a primeira pergunta desenvolveu-seum questionaacuterio

411 Pesquisa com o usuaacuterio

O questionaacuterio foi desenvolvido para avaliar a viabilidade do aplicativo e suas funciona-lidades e foi criado utilizando-se o Google Forms [9] Essa eacute uma ferramenta desenvolvidapelo Google que possibilita a criaccedilatildeo de formulaacuterios contendo diversos formatos de pergun-tas tanto dissertativas quanto de muacuteltipla escolha

Seguindo os princiacutepios de desenvolvimento de questionaacuterios [4] o conjunto de perguntasfoi mantido curto simples e de faacutecil entendimento Tambeacutem variou-se o tipo de questotildeesentre estruturadas (questotildees com respostas em forma de alternativas) e desestruturadas(questotildees com respostas em formato texto) seguindo esses mesmos princiacutepios para captarmelhor as informaccedilotildees dos entrevistados e evitar erros de entendimento

Com as respostas do questionaacuterio tinha-se o intuito de traccedilar um possiacutevel puacuteblico alvoconhecer seu modo de uso de dispositivos moacuteveis e validar a aplicabilidade de diferentesfuncionalidades pretendidas inicialmente sendo essas engajamento do usuaacuterio atraveacutes denotificaccedilotildees do sistema aceitaccedilatildeo de sugestotildees de locais alternativos avaliaccedilatildeo da existecircnciado problema que queremos resolver (se este aplicativo supre uma necessidade real do usuaacute-rio) e aceitaccedilatildeo do aplicativo

23

24 DESENVOLVIMENTO DO PROJETO 41

Para a divulgaccedilatildeo redes sociais como Facebook [5] e sistemas de mensagem instantacircneascomo WhatsApp foram usados e o envio de respostas foi restrito ateacute trecircs semanas apoacutes suaprimeira postagem Neste periacuteodo foram obtidas 210 respostas as quais ajudaram a definiros aspectos do sistema a ser desenvolvido

O questionaacuterio foi dividido em duas subseccedilotildees perfil do usuaacuterio e funcionalidade Comelas obteve-se os seguintes resultados

41 PESQUISA DE MERCADO 25

Questatildeo 1

Figura 41 Graacutefico pizza da distribuiccedilatildeo das respostas em relaccedilatildeo a idade dos pesquisados

As faixas de idade apresentadas estatildeo desbalanceadas por natildeo terem a mesma quantidadede anos em cada uma poreacutem essa divisatildeo foi pensada levando-se em conta a fluecircncia comtecnologia que cada idade possui Com o resultado verificou-se que do puacuteblico alcanccediladocom a pesquisa a maioria estaacute na faixa de 18 a 25 anos de idade assumida como parcelacom maior conhecimento tecnoloacutegico

Questatildeo 2

Figura 42 Graacutefico pizza da distribuiccedilatildeo das respostas em relaccedilatildeo ao sistema operacional

Esta questatildeo foi pensada para medir a porcentagem de cada sistema operacional pre-sente nos celulares do puacuteblico Com ela descobriu-se que 639 das pessoas dentro desse

26 DESENVOLVIMENTO DO PROJETO 41

grupo possuem o sistema Android enquanto 234 possuem iOS e 38 Windows phoneEssa pergunta foi incluiacuteda para um melhor direcionamento do desenvolvimento do aplicativo

Uma questatildeo levantada ao aplicar esse questionaacuterio foi a dificuldade que algumas pessoasencontraram para identificar a versatildeo do proacuteprio aparelho Poreacutem para manter a consistecircnciadas respostas decidiu-se natildeo mudar nada nesta questatildeo para remediar isso

Questatildeo 3

Figura 43 Graacutefico em barras da distribuiccedilatildeo de frequecircncias mensais de cada local analisado

41 PESQUISA DE MERCADO 27

Questatildeo 4

Figura 44 Graacutefico em pizza da distribuiccedilatildeo de interesse do usuaacuterio no tempo de espera de cadalocal

A princiacutepio viu-se muitas possiacuteveis aplicaccedilotildees para a previsatildeo de tempo de espera Paraentender qual seria a prioridade do puacuteblico as questotildees acima foram incluiacutedas A primeiraverificou a frequecircncia de visitas em alguns locais e a segunda serviu para analisar qualestabelecimento despertava mais interesse nos entrevistados quanto ao quesito fila Nos doiscasos restaurantes se destacaram com o maior interesse

Questatildeo 5

Figura 45 Graacutefico em barras da distribuiccedilatildeo de interesse do usuaacuterio por cada item avaliado

Para acompanhar o dado de espera e fornecer mais informaccedilotildees relevantes ao usuaacuteriosem potencial perguntou-se quais outras informaccedilotildees eles acham interessante saber sobre umdeterminado estabelecimento Com isso descobriu-se que a faixa de preccedilo o trajeto ateacute olocal e o cardaacutepio seriam dados importantes de se obter juntamente com o tempo de espera

28 DESENVOLVIMENTO DO PROJETO 41

Questatildeo 6O que vocecirc costuma fazer para evitar filasNeste ponto testou-se se a soluccedilatildeo proposta atraveacutes do aplicativo resolveria o problema dousuaacuterio de uma forma melhor do que a soluccedilatildeo atualmente utilizada Para isso foi perguntadoo que as pessoas fazem para evitar filas e as principais respostas foram

∙ Evitar horaacuterios de pico

∙ Chegar cedo

∙ Ir em outro lugar caso uma fila seja encontrada

∙ Tentar realizar reservas antecipadamente

∙ Se distrair com livroscelular

Notou-se que as soluccedilotildees utilizadas atualmente natildeo suprem as necessidades dos entre-vistados pois mesmo em horaacuterios natildeo convencionais pode-se encontrar filas ou quandodecide-se esperar na fila muito tempo eacute perdido Concluiu-se que a soluccedilatildeo proposta a par-tir do aplicativo resolve de forma mais abrangente o problema pois ajuda o usuaacuterio a evitarhoraacuterios de pico inesperados

Questatildeo 7

Figura 46 Graacutefico em pizza da distribuiccedilatildeo do meio de transporte utilizado pelos usuaacuterios

Essa questatildeo foi formulada com o objetivo de verificar quais meios de transporte seriamincluiacutedos com previsatildeo de tempo de trajeto no aplicativo Foi verificado que a maioria dosentrevistados utilizam transporte puacuteblico seguido por carro

41 PESQUISA DE MERCADO 29

Questatildeo 8

Figura 47 Graacutefico em pizza da distribuiccedilatildeo do interesse do usuaacuterio pela informaccedilatildeo fornecida

Questatildeo 9

Figura 48 Graacutefico em pizza da distribuiccedilatildeo de quantidade de quilocircmetros que o usuaacuterio sedeslocaria para ir a um local com menos fila

Com essas questotildees foi verificado que algo importante para o usuaacuterio eacute saber de outrosestabelecimentos que possam oferecer tempos de espera menores nas redondezas de onde ousuaacuterio se encontra que eacute uma das funcionalidades que desejaacutevamos utilizar no sistema

30 DESENVOLVIMENTO DO PROJETO 41

Questatildeo 10

Figura 49 Graacutefico em barras da distribuiccedilatildeo de sentimento do usuaacuterio em relaccedilatildeo a notificaccedilatildeode aplicativos

Questatildeo 11

Figura 410 Graacutefico em pizza da distribuiccedilatildeo de opiniatildeo do usuaacuterio sobre desabilitar notificaccedilotildeesem celular

42 PESQUISA DE MERCADO 31

Questatildeo 12

Figura 411 Graacutefico em pizza da distribuiccedilatildeo de opiniatildeo do usuaacuterio sobre habilitar GPS emcelular

A ideia inicial era poder usar o GPS para verificar a localizaccedilatildeo do usuaacuterio e enviarnotificaccedilotildees quando este estivesse parado nas proximidades de algum dos estabelecimentoscadastrados Para que essa funcionalidade possa existir eacute necessaacuterio que o aplicativo tenhaacesso agrave localizaccedilatildeo precisa da pessoa atraveacutes do GPS ou internet ateacute mesmo quando natildeoestiver aberto Aleacutem disso tambeacutem eacute necessaacuterio que as notificaccedilotildees estejam habilitadas parafinalizar esta interaccedilatildeo Entatildeo as perguntas 10 11 e 12 foram incluiacutedas no questionaacuterio Ob-servando as respostas foi possiacutevel verificar que 295 das pessoas que responderam deixamambas as funcionalidades habilitadas (GPS e notificaccedilotildees) Com isso pudemos prosseguircom essa ideia e tambeacutem pensar em possiacuteveis alternativas de interaccedilatildeo e engajamento como usuaacuterio

Por conta dessa pesquisa ter sido compartilhada atraveacutes das contas das redes sociais ecomunicadores dos componentes deste grupo sabe-se que este pode apresentar um resultadoviesado mas que mesmo assim natildeo deve ser desconsiderado e que muito ajudou a sanar asduacutevidas iniciaisComo resultado traccedilamos o perfil do entrevistado

∙ Faixa etaacuteria predominante entre 18 e 30 anos

∙ Possui sistema operacional Android (versotildees 4 5 e 6)

∙ Vai a restaurantes com certa frequecircncia mensal resultando em interesses sobre infor-maccedilotildees relacionadas a esse estabelecimento

∙ Costuma chegar cedo ou evitar os horaacuterios de pico para evitar filas nos locais

∙ Carro e transporte coletivo satildeo os principais meios de transporte

∙ Se deslocaria para um estabelecimento semelhante que possui menos fila contanto queeste fique num raio de 2km de distacircncia

32 DESENVOLVIMENTO DO PROJETO 43

42 Projeto do AplicativoO grupo comeccedilou o projeto com o preenchimento do diagrama Canvas(figura 412) apre-

sentado na Seccedilatildeo 21 Desse modo foi adquirida uma ideia mais consistente e uma base paracomeccedilar a implementaccedilatildeo

Figura 412 Diagrama Canvas preenchido pelo grupo

Com o modelo de negoacutecios definido e com base no resultado da pesquisa com o usuaacuterioapresentada na seccedilatildeo seguinte foram aplicadas pequenas mudanccedilas no projeto para melhoradequar-se agraves necessidades e ao perfil do puacuteblico alvo

Para o desenvolvimento foi utilizado um meacutetodo aacutegil baseado no scrum com sprints de3 a 4 semanas devido agrave disponibilidade dos membros do grupo Os encontros natildeo eram diaacute-rios como recomendado para o meacutetodo scrum tambeacutem em razatildeo da disponibilidade Haviamstand ups (discussotildees raacutepidas no comeccedilo de cada encontro) e retrospectivas ao final de cadasprint A cada sprint eram selecionadas histoacuterias e tarefas para serem executadas e caso natildeofossem concluiacutedas ao final da iteraccedilatildeo eram inseridas ao backlog e feitas no sprint seguinte

43 Aplicaccedilatildeo dos meacutetodos de caacutelculo de espera

431 Aplicando a meacutedia por periacuteodo

Aplicando-se no trecho abaixo a teacutecnica desenvolvida na Seccedilatildeo 242 para uma queryrealizada no dia 19082016 no intervalo de 2040 - 2055 analisa-se a semana anterior quepossua tais intervalos Assim o saacutebado dia 06082016 seraacute selecionado

43 APLICACcedilAtildeO DOS MEacuteTODOS DE CAacuteLCULO DE ESPERA 33

Entrada Qtd Pessoas Notificado Espera

6816 2043 2 862016 2053 1606

6816 2044 2 862016 2055 674

6816 2048 2 862016 2056 528

6816 2048 2 862016 2057 520

6816 2051 2 862016 2107 1118

6816 2051 3 862016 2110 1305

6816 2052 2 862016 2110 1273

6816 2052 2 862016 2111 1179

6816 2053 2 862016 2112 1217

6816 2053 2 NULL 59

6816 2054 3 862016 2119 1541

6816 2055 2 862016 2117 1444

6816 2055 2 862016 2120 1570

6816 2055 2 862016 2122 1613

Tabela 41 Trecho do dia 06082016 entre os horaacuterios das 2043 agraves 2055 um intervalo de 12minutos retirado dos dados da empresa Get In

Com esses dados obteve-se a meacutedia de espera de 1080 segundos (18 minutos) a qualseria sugerida para o usuaacuterio com a busca e desvio padratildeo de 465144719 segundos (775 mi-nutos) Dentro desse intervalo tem-se como maacuteximo tempo de espera 1613 segundos (2688minutos) e como miacutenimo 59 segundos (1 minuto) Analisando-se os dados do dia 19082016no mesmo periacuteodo temos

34 DESENVOLVIMENTO DO PROJETO 43

Entrada Pessoas Notificado Espera Erro previsatildeo Erro p 2 pessoas

19816 2043 2 8192016 2051 544 -563 522

19816 2043 2 8192016 2052 605 -502 461

19816 2044 2 8192016 2056 723 -384 343

19816 2046 4 8192016 2119 1988 881 X

19816 2048 2 8192016 2102 919 188 147

19816 2051 2 8192016 2103 821 286 245

19816 2051 3 8192016 2108 1773 666 X

19816 2053 2 8192016 2110 1083 24 -17

19816 2053 2 8192016 2111 1105 2 -39

19816 2053 2 8192016 2112 1169 62 -103

19816 2055 2 8192016 2114 1447 340 -381

Tabela 42 Trecho do dia 19082016 entre os horaacuterios das 2043 agraves 2055um intervalo de 12minutos retirado dos dados da empresa Get In

Ou seja se um grupo chegasse dentro desse periacuteodo e a previsatildeo dada fosse a meacutediaobtida anteriormente o erro calculado pela diferenccedila entre o tempo sugerido e o real tempode espera estaria no intervalo de 15 minutos para menos ou 8 minutos para mais Sendoesse um valor aceitaacutevel

Um proacuteximo passo eacute a restriccedilatildeo dos registros a grupos com 2 integrantes Com tal restri-ccedilatildeo a previsatildeo de espera eacute de 1066 segundos (1776 minutos) Aplicando essa nova meacutedia aosregistros com 2 integrantes do dia 19082016 obteacutem-se um erro (Coluna 6 - erro previsatildeopara 2 pessoas) menor do que o anterior O intervalo do erro calculado neste caso seria de 522segundos (87 minutos) para mais e 381 segundos (635 minutos) para menos Este resultadoeacute ainda mais favoraacutevel mostrando que a inclusatildeo de mais filtros para o caacutelculo da previsatildeomelhorou o tempo previsto

432 Aplicando teoria das filas

A teoria das filas (Seccedilatildeo 242) eacute uma ferramenta muito completa que calcula muitos dadosuacuteteis para a previsatildeo de espera Contudo por conta da necessidade de informaccedilotildees sobreo tempo de atendimento a qual natildeo estaacute contida no banco utilizado esta teoria natildeo podeser aplicada neste caso Poreacutem esse dado pode ter um valor assumido para que a utilizaccedilatildeodessa teoria fosse possiacutevel entretanto a sua precisatildeo ficaria comprometida e imprevisiacutevel

433 Aplicando redes neurais

Para aplicar o que foi estudado na Seccedilatildeo 242 foi executado o software com o mecircs deAgosto como teste o mecircs de Setembro como treino e o limite do erro quadraacutetico como 001 eobteve-se a tabela presente no apecircndice B Na tabela podemos ver o tempo de fila esperadoou seja o tempo contido na tabela do mecircs de Setembro o tempo que o algoritmo deu comoresposta baseado no mecircs de Agosto e o erro entre eles respectivamente

44 DEFINICcedilAtildeO DA INTERFACE DO APLICATIVO 35

Figura 413 Software Multiple Back-Propagation com a configuraccedilatildeo escolhida para os dadosdisponiacuteveis

Mesmo o erro se mantendo em 0018 os dados obtidos possuem um erro padratildeo de 15minutos Se mais dados forem adicionados o criteacuterio de parada pode ser atingido e assimuma previsatildeo melhor pode ser alcanccedilada

434 Conclusatildeo sobre os meacutetodos estudados

Dentre todas as possibilidades estudadas visualizamos na meacutedia por periacuteodo a melhoropccedilatildeo assumindo os dados disponiacuteveis para teste Se mais paracircmetros fossem fornecidoscomo o tempo de atendimento a teoria das filas seria uma boa opccedilatildeo para fornecer a pre-visatildeo de espera E se mais dados estivessem disponiacuteveis as redes neurais conseguiriam umaaproximaccedilatildeo melhor e assim seria uma boa opccedilatildeo tambeacutem

44 Definiccedilatildeo da Interface do aplicativoComo um primeiro protoacutetipo foi desenvolvida uma interface simples que tinha como tela

de iniacutecio um mapa com um campo para buscas na parte superior

36 DESENVOLVIMENTO DO PROJETO 44

Figura 414 Fluxo de telas do primeiro protoacutetipo

Ao efetuar uma busca por algum estabelecimento uma tela mostrando o tempo de esperaaproximado da fila no local era exibida junto com bototildees que permitiam selecionar o meiode transporte visualizar outras opccedilotildees ou dar iniacutecio a rota ateacute o local desejado Tambeacutemhavia uma notificaccedilatildeo para quando a pessoa estivesse parada proacutexima a um restaurantecadastrado que direcionaria o usuaacuterio a uma tela com um cronocircmetro do tempo de esperana fila

Para testar essa visualizaccedilatildeo escolhemos algumas pessoas e realizamos um teste deusabilidade[22] este teste eacute feito da seguinte forma

44 DEFINICcedilAtildeO DA INTERFACE DO APLICATIVO 37

Uma contextualizaccedilatildeo eacute feita para o voluntaacuterio e entatildeo uma tarefa eacute passada para sercompletada Os integrantes do grupo observam dificuldades enfrentadas pelo entrevistado etomam notas Esse teste eacute repetido algumas vezes e seu resultado eacute coletado para avaliaccedilatildeoe modificaccedilatildeo das funcionalidades

Figura 415 Tela de detalhes de um restaurante(segunda versatildeo)

Notou-se que algumas funcionalidadespareceram confusas e natildeo intuitivas porexemplo natildeo ficou claro se o tempo mos-trado era de trajeto ou de espera na filanem qual era o meio de transporte utili-zado

Logo esse protoacutetipo foi reformuladocom o intuito de melhorar a experi-ecircncia do usuaacuterio com o nosso aplica-tivo

Foram colocados aleacutem do tempo deespera da fila o tempo que o usuaacuteriolevaria para chegar ateacute o local selecio-nado (conforme o tipo de transporte es-colhido) e a quantidade estimada de pes-soas na fila O tempo total (espera so-mado ao tempo de deslocamento) ga-nhou destaque entre as informaccedilotildees doestabelecimento e o botatildeo que direcionao usuaacuterio ao trajeto ficou mais especiacute-fico

Tambeacutem cogitou-se a possibilidade deadicionar login e um perfil de usuaacuteriojunto com uma lista de restaurantes favo-ritos

O fluxo das telas deste novo protoacutetipo ficou como mostra o esquema a seguir

38 DESENVOLVIMENTO DO PROJETO 44

Figura 416 Fluxo de telas do segundo protoacutetipo

44 DEFINICcedilAtildeO DA INTERFACE DO APLICATIVO 39

Figura 417 Tela de detalhes de um restaurante(terceira versatildeo)

Apoacutes outras avaliaccedilotildees mais algumaspequenas alteraccedilotildees foram realizadas nainterface Foi decidido que seria inviaacute-vel estimar o nuacutemero de pessoas nafila entatildeo essa funcionalidade foi remo-vida

Notificaccedilotildees foram adicionadas paraquando o usuaacuterio estiver parado na aacutereado restaurante para que ele possa con-tribuir com informaccedilotildees sobre a fila quepegou aleacutem de um botatildeo de contri-buiccedilatildeo ter sido inserido na tela ini-cial

40 DESENVOLVIMENTO DO PROJETO 45

O fluxo de telas do aplicativo atual ficou da seguinte forma

Figura 418 Fluxo de telas do terceiro protoacutetipo

46 EXPLICACcedilAtildeO DAS FUNCIONALIDADES 41

45 Explicaccedilatildeo das funcionalidadesEsta seccedilatildeo explica as funcionalidades do produto utilizando a figura 418

A tela inicial (3) exibe uma lista de restaurantes incluindo seus respectivos tempos detrajeto e tempo de espera na fila Ao clicar no botatildeo ldquo+rdquo uma caixa de diaacutelogo eacute aberta(4) onde eacute possiacutevel adicionar o tempo que o usuaacuterio esperou na fila Primeiro eacute escolhido orestaurante depois a data e hora que a pessoa chegou na fila e por fim o tempo de esperaem minutos Ao tocar em ldquoEnviar Feedback rdquo os dados satildeo incluiacutedos no banco de dados eatualizados para os outros usuaacuterios Assim eacute apicado o conceito de Crowdsourcing no apli-cativo

Ao tocar em um item da lista de restaurantes seraacute aberta a tela de detalhes de um res-taurante (5) na qual eacute possiacutevel ver com mais clareza os tempos de trajeto e espera o tempototal o endereccedilo do estabelecimento e um pequeno mapa centrado no local Pressionandoo botatildeo ldquoDireccedilotildeesrdquo o usuaacuterio seraacute redirecionado ao aplicativo de mapas de sua preferecircnciano caso do exemplo (8) o Google Maps jaacute traccedilando a rota da localizaccedilatildeo do usuaacuterio para oestabelecimento em questatildeo

Novamente na tela inicial tocando no iacutecone de lupa eacute possiacutevel realizar uma busca digi-tando o nome do estabelecimento na caixa de texto a qual exibe sugestotildees dependendo doque foi digitado Ao clicar em um dos resultados da busca o usuaacuterio eacute novamente direcionadopara a tela de detalhes do restaurante (5)

Tambeacutem eacute possiacutevel tocar no iacutecone de mapa na tela inicial onde seraacute mostrado um mapacentrado na localizaccedilatildeo do usuaacuterio

Ao ficar parado por um tempo em um mesmo local proacuteximo a um estabelecimentocadastrado o usuaacuterio eacute perguntado em uma notificaccedilatildeo quanto tempo ele permaneceu nafila Ao tocar na notificaccedilatildeo a caixa de diaacutelogo para feedback do usuaacuterio seraacute aberta (4) jaacutecom o restaurante preenchido e apoacutes o feedback a janela seraacute fechada e os dados enviadosao banco de dados

46 Implementaccedilatildeo do banco de dadosO banco de dados do aplicativo foi modelado e populado em forma de aacutervore (Fi-

gura 419) de forma a facilitar o acesso aos dados necessaacuterios ao aplicativo No primeironiacutevel estatildeo os ids dos restaurantes Cada id de restaurante guarda a localizaccedilatildeo (latitudelongitude) do restaurante o nome o endereccedilo e um objeto fila O objeto fila guarda todos osdias da semana (domingo a saacutebado) e cada dia da semana possui 24 campos um para cadahora do dia Cada hora possui o tempo meacutedio de espera da fila naquela hora e um peso paraesse tempo O peso eacute um valor que aumenta de acordo com o nuacutemero de feedbacks dadospara que o novo valor do tempo meacutedio seja calculado de forma consistente

Modelamos o banco de dados de uma forma que respeitasse uma hierarquia de dados

42 DESENVOLVIMENTO DO PROJETO 46

Figura 419 Aacutervore que ilustra a organizaccedilatildeo de um restaurante no banco de dados

Com o banco de dados jaacute populado o aplicativo faz consultas e atualizaccedilotildees de dadosConsultas satildeo feitas ao criar a tela de listagem de restaurantes e de detalhes de um restau-rante consultado As atualizaccedilotildees satildeo feitas quando o usuaacuterio manda o feedback de tempo deespera em um estabelecimento em determinado horaacuterio o aplicativo calcula a nova meacutedia eatualiza o campo do respectivo horaacuterio

Capiacutetulo 5

Conclusatildeo

Ao longo dos capiacutetulos deste trabalho pocircde-se acompanhar todo o processo de criaccedilatildeo edesenvolvimento do aplicativo que apoacutes finalizado foi batizado com o nome Queue

Comeccedilando com um problema para o qual o grupo almejava oferecer uma soluccedilatildeoacabou-se por adentrar-se um pouco no campo da Estatiacutestica e estudar diversas metodo-logias que poderiam ser uacuteteis para fornecer um caacutelculo de previsatildeo de espera meacutedia porperiacuteodo aplicaccedilatildeo da teoria das filas e utilizaccedilatildeo de redes neurais

Atraveacutes de uma parceria com a empresa GetIn obteve-se acesso a uma grande quantidadede dados e foi possiacutevel utilizaacute-los em anaacutelises feitas nas metodologias escolhidas conseguindoassim resultados relevantes Por meio destes foi feita a escolha de um dos meacutetodos para ocaacutelculo da previsatildeo de filas a meacutedia por periacuteodo

Aleacutem desses estudos ao longo do ano o grupo aprendeu a desenvolver para a plata-forma Android sobre a qual nenhum dos integrantes tinha conhecimento preacutevio Tambeacutemfoi possiacutevel aprender e utilizar a metodologia aacutegil com Scrum para guiar o processo de de-senvolvimento

Ao fim do ciclo de desenvolvimento conseguiu-se entregar um aplicativo em funciona-mento que fornece a previsatildeo de espera no instante da consulta de estabelecimentos cadas-trados no banco de dados armazenado na nuvem

Na versatildeo atual do aplicativo natildeo foi implementado um sistema para o cadastro de novosestabelecimentos Isso soacute eacute possiacutevel atraveacutes da inserccedilatildeo direta no banco de dados atraveacutes dainterface fornecida pelo console do Firebase Atualmente estatildeo cadastrados 5 restaurantesos quais foram visitados durante o desenvolvimento do projeto Para que o cadastro deestabelecimentos escale seria necessaacuterio a implementaccedilatildeo de uma funcionalidade que permitaao usuaacuterio adicionar novos estabelecimentos a partir de locais disponiacuteveis na API de locaisda Google

43

45

46 APEcircNDICE A

Apecircndice A

Dados coletados

Figura A1 Dados de tempo de espera para grupos de tamanhos variados para cada horaacuterio e emcada dia da semana obtidos em entrevista em restaurantes Outback Steakhouse Shopping Uniatildeo nomecircs de outubro

Referecircncias Bibliograacuteficas

[1] Backpropagation httpmbpsourceforgenet Accesso em Janeiro 2017 14

[2] Bitbucket httpsbitbucketorgproduct Accesso em Dezembro 2016 19

[3] Crowdsourcing httpswwwmerriam-webstercomdictionarycrowdsourcing Ac-cesso em Novembro 2016 21

[4] Designing a survey httpwwwsciencebuddiesorgscience-fair-projectsproject_ideasSoc_surveyshtml Accesso em Outubro 2016 4 23

[5] Facebook httpswwwfacebookcom Accesso em Novembro 2016 24

[6] Firebase httpsfirebasegooglecom Accesso em Agosto 2016 20

[7] Getin app httpswwwgetinappcombrhomesao-paulo Accesso em Novembro2016 9

[8] Git 11 primeiros passos - sobre controle de versatildeo httpsgit-scmcombookpt-brv1Primeiros-passos-Sobre-Controle-de-Vers Accesso em Novembro 2016 19

[9] Google forms httpsdocsgooglecomforms Accesso em Novembro 2016 23

[10] Guia definitivo do project model canvas Project Builder 3

[11] Jsonorg introducing json httpwwwjsonorg Accesso em Novembro 2016 17

[12] Manifesto para desenvolvimento Aacutegil de software httpagilemanifestoorgisoptbrmanifestohtml Accesso em Novembro 2016 5

[13] Nosql httpsenwikipediaorgwikiNoSQL Accesso em Novembro 2016 20

[14] Outback steakhouse httpswwwoutbackcombrhome Accesso em Novembro 20169

[15] Restful api development with lumen microframework httpsbelitsoftcomlaravel-development-servicesapi-development Accesso em Novembro 2016 17

[16] Scrum httpswwwatlassiancomagilescrum Accesso em Novembro 2016 5

[17] Smartphone os market share 2016 q2 httpwwwidccomprodservsmartphone-os-market-sharejsp Accesso em Novembro 2016 15

[18] Smartphone os sales market share kantar worldpanel comtech httpwwwkantarworldpanelcomsmartphone-os-market-share Accesso em Novembro 2016 15

[19] Sourcetree httpswwwsourcetreeappcom Accesso em Dezembro 2016 19

47

48 REFEREcircNCIAS BIBLIOGRAacuteFICAS

[20] Sql httpsptkhanacademyorgcomputingcomputer-programmingsql Accesso emDezembro 2016 20

[21] Trello httpstrellocom Accesso em Novembro 2016 6

[22] Usability test httpsenwikipediaorgwikiUsability_testing Accesso em Novembro2016 36

[23] Versionone 2012 agile dev survey httpswwwversiononecompdf7th-Annual-State-of-Agile-Development-Surveypdf Accesso em Novembro 2016 5

[24] Waze httpswwwwazecom Accesso em Novembro 2016 1

[25] What is an open source httpsopensourcecomresourceswhat-open-source Accessoem Novembro 2016 15

[26] Xml tutorial httpwwww3schoolscomxml Accesso em Novembro 2016 17

[27] Paulo F Cabral dos Anjos Jr Aron Ifanger Maciel Christopher Silva de Paacutedua Com-posiccedilatildeo de carteiras de accedilotildees utilizando modelo de redes neurais artificiais e modelo derisco e retorno de Markowitz 2012 14

[28] Google Distance matrix api documentation httpsdevelopersgooglecommapsdocumentationdistance-matrix Accesso em Novembro 2016 17

[29] Alan Klement Designing features using job stories httpsblogintercomcomusing-job-stories-design-features-ui-ux Accesso em Novembro 2016 6

[30] Azmat Nafees Queuing theory and its application analysis of the sales checkout opera-tion in ica supermarket httpwwwstatisticsduseessaysD07ENafeespdf Accessoem Novembro 2016 12

[31] Eric Ries A Startup Enxuta Lua de papel primeira ediccedilatildeo edition 2012 3

  • Introduccedilatildeo
    • Motivaccedilatildeo
    • Trabalho Proposto
    • Estrutura da monografia
      • Estudos Preliminares
        • Desenvolvimento de Startups
          • Desenvolvimento de Questionaacuterios
            • Metodologia Aacutegil
            • Jobs to be done
            • Caacutelculo da previsatildeo do tempo de espera na fila
              • Descriccedilatildeo do problema
              • Meacutetodos de caacutelculo da espera
                  • Tecnologias utilizadas
                    • O sistema Android
                      • Organizaccedilatildeo de uma aplicaccedilatildeo Android
                        • JSON
                        • Google APIs
                        • Localizaccedilatildeo do Usuaacuterio
                        • Controle de Versatildeo
                        • Banco de dados
                          • Firebase
                            • Crowdsourcing
                              • Desenvolvimento do Projeto
                                • Pesquisa de Mercado
                                  • Pesquisa com o usuaacuterio
                                    • Projeto do Aplicativo
                                    • Aplicaccedilatildeo dos meacutetodos de caacutelculo de espera
                                      • Aplicando a meacutedia por periacuteodo
                                      • Aplicando teoria das filas
                                      • Aplicando redes neurais
                                      • Conclusatildeo sobre os meacutetodos estudados
                                        • Definiccedilatildeo da Interface do aplicativo
                                        • Explicaccedilatildeo das funcionalidades
                                        • Implementaccedilatildeo do banco de dados
                                          • Conclusatildeo
                                          • Dados coletados
                                          • Referecircncias Bibliograacuteficas

4 ESTUDOS PRELIMINARES 21

Figura 21 Modelo do Diagrama Canvas

Com o modelo de negoacutecios definido o proacuteximo passo eacute a realizaccedilatildeo de uma pesquisa como puacuteblico para validaacute-lo Essa fase do desenvolvimento pode ser refeita quantas vezes foremnecessaacuterias reescrevendo o Canvas conforme a interpretaccedilatildeo da necessidade do usuaacuterio

211 Desenvolvimento de Questionaacuterios

De acordo com o manual Designing a Survey [4] um questionaacuterio eacute criado para obterinformaccedilotildees para conduzir o desenvolvimento de um projeto de acordo com as preferecircnciasdo puacuteblico alvo Ele deve ser curto e conciso e deve capturar somente informaccedilotildees que sejamrelevantes para a pesquisa

Os passos para o desenvolvimento de um bom questionaacuterio satildeo

∙ Definir os dados necessaacuterios

∙ Desenvolver as questotildees

∙ Remover qualquer questatildeo que natildeo captura os dados definidos previamente

As questotildees podem ser moldadas de trecircs maneiras

∙ Estruturadas Questotildees que possuem resposta fixa Exemplo

Vocecirc usa transporte puacuteblico

( )Sim

( )Natildeo

22 METODOLOGIA AacuteGIL 5

∙ Natildeo Estruturadas Questotildees de resposta aberta Exemplo

O que vocecirc costuma fazer para evitar filas

∙ Parcialmente Estruturadas Questotildees mistas Exemplo

Qual meio de transporte vocecirc usa

( )Carro

( )Moto

( )Outros______

22 Metodologia AacutegilA metodologia aacutegil tem sido adotada pelas empresas hoje em dia por conta dos melhores

resultados obtidos em relaccedilatildeo agraves metodologias tradicionais[23] Essa eacute caracterizada pelavalorizaccedilatildeo de

∙ ldquoIndiviacuteduos e interaccedilotildees mais que processos e ferramentasrdquo

∙ ldquoSoftware em funcionamento mais que documentaccedilatildeo abrangenterdquo

∙ ldquoColaboraccedilatildeo com o cliente mais que negociaccedilatildeo de contratosrdquo

∙ ldquoResponder a mudanccedilas mais que seguir um planordquo [12]

Eacute uma metodologia que envolve trabalho em equipe encontros regulares com o clientedesenvolvimento iterativo e com menos foco em planejamento estrito e ideias definitivasdiferente de metodologias mais tradicionais que satildeo mais focadas em projetos bem docu-mentados com pouca possibilidade de mudanccedila ao final do processo Decidiu-se por utilizara metodologia aacutegil neste projeto pois natildeo haviam ideias completamente definidas inicial-mente e para o grupo a opiniatildeo do puacuteblico alvo sobre o produto era fundamental em cadaiteraccedilatildeo do processo podendo haver mudanccedilas inesperadas dependendo do feedback recebido

Dentre as opccedilotildees de metodologias aacutegeis O meacutetodo Scrum[16] eacute um que eacute definido comoum gerenciador e um processo de controle que foca em construir um software que conheceas necessidades do negoacutecio devolvendo incrementalmente um software

Com o Scrum o software eacute desenvolvido em iteraccedilotildees de tamanho fixo chamadas deSprints que tem duraccedilatildeo de tipicamente duas a quatro semanas Em cada Sprint um nuacutemerofixo de histoacuterias (que se traduzem em tarefas) satildeo selecionadas pelo grupo para seremutilizadas na sprint(figura 22) Haacute tambeacutem um sistema de motivaccedilatildeo para o time como osMilestones que satildeo objetivos menores distribuiacutedos por toda a sprint ajudando na mediccedilatildeode desemprenho da equipe e graacuteficos Burndown que mostram o progresso de cada iteraccedilatildeopara que o time sinta o progresso no desenvolvimento

6 ESTUDOS PRELIMINARES 23

Figura 22 Dinacircmica do Scrum

Para controle das iteraccedilotildees foi utilizado o software Trello [21] que eacute um gerenciador detarefas de projeto (figura 23)

Figura 23 Interface do Trello - durante o processo de desenvolvimento

23 Jobs to be donePara implementar o aplicativo buscou-se uma metodologia para guiar esse processo desde

sua criaccedilatildeo ateacute sua validaccedilatildeo Duas metodologias conhecidas pelo grupo foram analisadas eestudadas Jobs To Be Done e Personas and Use Cases

Segundo Alan Klement[29] Personas satildeo clientes imaginaacuterios descritos pela idade sexoraccedila e haacutebitos semanais O uso delas natildeo eacute adequado para responder perguntas como ldquoPorqueo cliente quer saber o tamanho da filardquo pois quando a resposta eacute ldquoEle estaacute com pressa paracomerrdquo natildeo fica claro quais satildeo as reais necessidades do usuaacuterio Essa descriccedilatildeo tambeacutem natildeoeacute uacutetil no desenvolvimento de uma boa interface pois natildeo ajuda na hora de responder se umcerto botatildeo realmente deixa claro sua funcionalidade

23 JOBS TO BE DONE 7

Tambeacutem segundo Alan Klement Use Cases possuem 3 grandes problemas usam perso-nas casam implementaccedilotildees motivaccedilotildees e resultado e ignoram contexto situaccedilotildees e ansie-dades

Se uma funcionalidade definida por uma Use Case falhar seraacute difiacutecil identificar o pro-blema pois por casar informaccedilotildees diferentes surgiraacute a dificuldade de saber o que estaacute erradoa implementaccedilatildeo as suposiccedilotildees sobre as motivaccedilotildees ou os resultados

Observando-se esses fatos optou-se pelo uso da metodologia Jobs to Be Done pois haacuteuma mudanccedila na forma de fazer histoacuterias a fim de evitar os problemas observados em Per-sonas e Use Cases(Figura 24) Nesse modelo as Personas satildeo pessoas reais e as histoacuterias satildeoescritas com a seguinte divisatildeo situaccedilatildeo motivaccedilatildeo e resultados esperados

Nessa metodologia criamos histoacuterias descrevendo tarefas para que os usuaacuterios se colo-quem na situaccedilatildeo descrita Observando-os eacute possiacutevel saber se a tarefa foi realizada de formabem sucedida e caso contraacuterio identificar onde e o que estaacute causando a falha no instanteda realizaccedilatildeo dela

Figura 24 Diferenccedila entre estruturas de histoacuterias

8 ESTUDOS PRELIMINARES 24

Algumas das histoacuterias criadas para os testes de interface do grupo foram

∙ Quando eu estiver na tela de lista de restaurantes eu quero acessar a tela de detalhesdo restaurante que eu desejo saber o tempo de espera entatildeo eu posso ver com clarezaas informaccedilotildees e posso traccedilar uma rota para o estabelecimento

∙ Quando eu estiver na tela principal eu quero enviar meu feedback sobre o tempo deespera no estabelecimento que estou entatildeo eu posso ajudar outros usuaacuterios por meiodo aplicativo

24 Caacutelculo da previsatildeo do tempo de espera na filaAtraveacutes de pesquisas em busca de meacutetodos estatiacutesticos para se estudar o comportamento

das filas foram encontradas as trecircs metodologias descritas nesta seccedilatildeo Este capiacutetulo conteacutema explicitaccedilatildeo do problema estudado e suas possiacuteveis soluccedilotildees

241 Descriccedilatildeo do problema

Para que se chegasse a uma soluccedilatildeo apropriada o problema de espera em fila precisouser estudado Esse problema pode ser descrito da seguinte forma dado um restaurante aentrada nesse eacute atraveacutes de uma fila Essa fila tem seu tamanho redefinido agrave medida quenovos clientes chegam e saem dela A saiacuteda dos clientes pode ser devido a desistecircncia ou aacomodaccedilatildeo deles nas mesas A entrada eacute definida pela disponibilizaccedilatildeo de lugares livres agravemedida em que os grupos que estavam alocados terminam seu atendimento

Figura 25 Esquema simplificado do funcionamento do processo em um restaurante

A fila de espera eacute influenciada por dois fatores a taxa de chegada do cliente e a taxa deatendimento nas mesas

∙ chegada em restaurantes a chegada de clientes eacute definida por uma taxa O clienteneste caso representa um grupo com tamanho variaacutevel A distribuiccedilatildeo do tamanho dogrupo nas chegadas eacute variaacutevel

∙ O atendimento a alocaccedilatildeo do grupo eacute organizada pela recepccedilatildeo O meacutetodo utilizadopor eles natildeo eacute padronizado e muitas vezes eacute completamente subjetivo Por exemplose acontecer de um grupo grande e vaacuterios casais chegarem ao mesmo tempo e nesse

24 CAacuteLCULO DA PREVISAtildeO DO TEMPO DE ESPERA NA FILA 9

momento existir um espaccedilo no salatildeo que acomode o grupo (juntando as mesas) outodos os casais (com as mesas separadas) dependendo de quem estaacute responsaacutevel poralocaacute-los cada um receberaacute uma prioridade diferente e essa decisatildeo natildeo eacute padronizada

∙ A disposiccedilatildeo das mesas a disposiccedilatildeo e quantidade de mesas natildeo satildeo padronizadasentre restaurantes de uma mesma rede muito menos entre restaurantes diferentesAleacutem disso a formataccedilatildeo do salatildeo pode ser remodelada de acordo com a necessidadede alocaccedilatildeo dos clientes haacute gerentes que evitam essa movimentaccedilatildeo ou ateacute mesmorestaurantes que natildeo tecircm essa possibilidade

242 Meacutetodos de caacutelculo da espera

Com o problema desenhado desta maneira esboccedilou-se trecircs possiacuteveis meacutetodos de resoluccedilatildeoe um desses foi aplicado na soluccedilatildeo final Os meacutetodos desenvolvidos satildeo meacutedia por periacuteodoaplicaccedilatildeo da teoria das filas e utilizaccedilatildeo de redes neurais Essas teacutecnicas precisam de dadospara serem desenvolvidas e aplicadas Por conta disso buscou-se fontes que suprissem essanecessidade

Captaccedilatildeo dos dados para a anaacutelise

Para que seja possiacutevel aplicar os meacutetodos estudados eacute necessaacuterio obter dados para aplicarna anaacutelise Estes foram obtidos de duas formas a partir de uma parceria com a empresa GetIn [7] desenvolvedora de um aplicativo de gerenciamento de filas de restaurantes e atraveacutesde pesquisas presenciais em restaurantes da rede Outback Steakhouse[14] selecionados para oestudo(Apecircndice A) O aplicativo da Get In possui uma funcionalidade principal realizaccedilatildeode uma reserva em um determinado restaurante O banco de dados manteacutem o registro detodos os usuaacuterios que entram na fila e esses dados satildeo organizados em uma tabela com osseguintes campos

∙ Origem Se a reserva foi realizada de forma remota ou presencial Assim

1 Reserva presencial (na entrada do restaurante incluiacuteda pela recepcionista)

2 Reserva remota (realizada atraveacutes do aplicativo)

∙ Entrada este consiste na data e hora que o usuaacuterio entrou na fila

∙ Qtd Pessoas tamanho do grupo para o qual a reserva foi feita

∙ Prioritaacuterio se este grupo requer atendimento prioritaacuterio

0 Natildeo

1 Sim

∙ Notificado A data e horaacuterio em que o grupo foi notificado que sua mesa estava pronta

ndash Quando NULL a recepcionista natildeo notificou essa pessoa (possivelmente chamoudiretamente pelo nome)

∙ Tempo na Espera Tempo que o grupo ficou ativo na fila de espera (em segundos)

∙ Status Qual a situaccedilatildeo da reserva do grupo Podendo assumir tais valores

0 Cancelado pela recepcionista

10 ESTUDOS PRELIMINARES 24

2 Sentado

3 Cancelado pelo proacuteprio Usuaacuterio

Para melhor entender estes paracircmetros o funcionamento do aplicativo deve ser expli-cado com maior detalhamento O processo de reserva funciona da seguinte forma o usuaacuterioreserva seu lugar atraveacutes do aplicativo ou vai ao restaurante e a recepcionista o adiciona agraveespera No primeiro caso o usuaacuterio tem um tempo de toleracircncia para chegar ao estabeleci-mento apoacutes receber a notificaccedilatildeo caso natildeo consiga chegar a tempo a reserva eacute cancelada Nosegundo caso quando o grupo a ser chamado estaacute proacuteximo da recepccedilatildeo a funcionalidade denotificaccedilatildeo natildeo precisa ser usada o responsaacutevel pode se direcionar diretamente aos clientes echamaacute-los pelo nome Mesmo nesse segundo caso o tempo de espera na fila ainda eacute guardadopois a recepccedilatildeo precisa ldquofecharrdquo a espera do grupo para chamar o proacuteximo

Poreacutem a utilizaccedilatildeo desses dados natildeo foi liberada pela empresa Get In para serem usadoscomo banco de dados do aplicativo somente foram fornecidos dados do mecircs de agosto esetembro de 2016 para que fossem utilizados nas anaacutelises feitas com os modelos estatiacutesticosPara obter dados que poderiam ser utilizados no banco de dados do aplicativo foi neces-saacuterio uma pesquisa presencial onde o grupo visitou alguns restaurantes da rede OutbackSteakhouse para obter informaccedilotildees sobre o tempo de espera nestes estabelecimentos

Foram visitados 5 restaurantes Outback Steakhouse Shopping Eldorado Outback Ste-akhouse Shopping Villa Lobos Outback Steakhouse Shopping Granja Vianna Outback Ste-akhouse Shopping Uniatildeo de Osasco e Outback Steakhouse Shopping Market Place ondequestionamos sobre o tempo de espera por tamanho de grupos (em nuacutemero de pessoas) epor horaacuterio e dia da semana

Ao analisar os dados coletados pela pesquisa presencial notamos que estes estavam sus-cetiacuteveis a erros por terem sido obtidos por meio de diferentes observaccedilotildees humanas Ummeacutetodo para obter dados mais precisos consistiria na realizaccedilatildeo de novas pesquisas no for-mato mediccedilatildeo onde cada integrante do grupo deveria coletar o tempo de espera de cadacliente atraveacutes de um cronocircmetro e calcular o tempo de espera meacutedio nesse horaacuterio Comoo grupo natildeo conseguiria aplicar este meacutetodo optou-se por melhorar a precisatildeo dos dadoscoletados usando como base o graacutefico de horaacuterios de pico disponibilizado pela Google paracada restaurante Essa melhora foi feita utilizando-se caacutelculos de proporccedilatildeo de valores

24 CAacuteLCULO DA PREVISAtildeO DO TEMPO DE ESPERA NA FILA 11

Primeiro meacutetodo Meacutedia por periacuteodo

Figura 26 Esquema do meacutetodo meacutedia por periacuteodo

Para que uma previsatildeo de espera possa ser fornecida ao usuaacuterio essa deve basear-seobrigatoriamente em alguma informaccedilatildeo preacutevia Contudo encontrar uma fonte para taisdados se mostrou uma tarefa muito complicada Para conseguir ainda assim apresentar umtempo de espera em fila meacutetodos de anaacutelise foram definidos de acordo com a quantidade dedados disponiacutevel para cada estabelecimento

De um modo geral neste modelo o caacutelculo do tempo de espera funcionaraacute da seguinteforma calcular-se-aacute a meacutedia de espera para o dia da semana e horaacuterio requeridos pelousuaacuterio sem diferenciar feriados de dias normais Dependendo de quatildeo longo eacute o histoacutericoniacuteveis de especificidade podem ser adicionados ou seja numa busca tempo de espera em 9de Dezembro (segunda-feira) agraves 19h no restaurante X a query selecionaraacute todos os registrosfeitos no dia 9 de dezembro entre as 19h e agraves 20h dos uacuteltimos anos no restaurante X e realizaraacuteessa meacutedia ou pode selecionar apenas linhas de todas as segundas-feiras do mecircs de Dezembrodeste mesmo periacuteodo

∙ Muitos dados neste caso um maior niacutevel de especificidade pode ser aplicado sem autilizaccedilatildeo de outras fontes para complementar o banco de dados

∙ Alguns dados o niacutevel de especificidade eacute bem menor apenas filtrando por dia dasemana e intervalo de hora sem mecircs ou dia especiacutefico no ano Em alguns casos aquantidade de dados eacute tatildeo pequena que deve-se recorrer a outras fontes A Googletem disponibilizado graacuteficos com a distribuiccedilatildeo dos clientes nos horaacuterios de funciona-mento de estabelecimentos Esses dados natildeo estatildeo disponiacuteveis em sua API ou seja natildeo

12 ESTUDOS PRELIMINARES 24

haacute uma forma automaacutetica para que o aproveitamento desses possa ser feito Poreacutemmesmo omitindo-se os valores do graacutefico o perfil da distribuiccedilatildeo e o horaacuterio de picosatildeo aproveitados manualmente para nosso sistema

∙ Poucos dados para este caso fizemos o balanceamento dos dados da Google comas informaccedilotildees retiradas das entrevistas Aleacutem do aproveitamento das informaccedilotildees daGoogle foram realizadas pesquisas com funcionaacuterios dos restaurantes

Segundo meacutetodo Teoria das filas

Filas podem ser vistas como um sistema dinacircmico no qual existe um conjunto de usuaacuteriosque satildeo atendidos por um conjunto de atendentes de acordo com a ordem de chegada dosusuaacuterios A teoria de filas busca utilizando anaacutelises matemaacuteticas estudar o comportamentodestas filas para estimar o tempo de espera com base em um conjunto inicial de dadospreviamente fornecido[30]

Um sistema de filas possui como caracteriacutesticas

∙ Modelo de chegada dos usuaacuterios Utiliza como base o tempo entre as chegadasdos usuaacuterios

∙ Modelo de serviccedilo (atendimento aos usuaacuterios) Utiliza como base o tempo gastono atendimento ao usuaacuterio No caso dos restaurantes equivale ao tempo que um grupopassa na mesa ateacute a sua saiacuteda

∙ Nuacutemero de servidores Eacute o nuacutemero de atendentes disponiacuteveis no sistema Para omodelo do restaurante este equivale agraves mesas disponiacuteveis no salatildeo

∙ Capacidade do sistema Eacute o nuacutemero de usuaacuterios que o sistema eacute capaz de atenderInclui o nuacutemero de usuaacuterios que estatildeo sendo atendidos somado com os que esperamna fila Se este paracircmetro natildeo for informado o sistema eacute considerado com capacidadeilimitada

∙ Tamanho da populaccedilatildeo nuacutemero potencial de clientes que podem chegar a umsistema Pode ser finito ou infinito

∙ Disciplina da fila A disciplina da fila pode ser FIFO (first in first out) - o primeiroa chegar eacute o primeiro a ser atendido LIFO (last in first out) - o uacuteltimo a chegar eacuteo primeiro a ser atendido ALEATOacuteRIO - os atendimentos satildeo feitos sem qualquerpreocupaccedilatildeo com a ordem de chegada COM PRIORIDADE - os atendimentos satildeofeitos de acordo com prioridades estabelecidas No caso dos restaurantes a disciplinaadotada eacute a FIFO poreacutem esta pode mudar de acordo com o atendente responsaacutevel

Os tempos mencionados nos modelos de chegada e de serviccedilo podem ser constantesquando os intervalos entre as chegadas dos usuaacuterios satildeo iguais ou variaacuteveis quando os valo-res desses intervalos variam Nesse uacuteltimo caso o intervalo de tempo segue uma distribuiccedilatildeode probabilidades Nesse modelo tambeacutem existe a taxa meacutedia de chegada dos usuaacuterios porunidade de tempo ou seja quantos usuaacuterios chegam em uma hora

As filas podem ser moldadas em trecircs situaccedilotildees baacutesicas como descrito por Azmat Nafees[30]

∙ Modelo de fila de canal uacutenico com fila uacutenica e atendimento uacutenico (Figura 27)

24 CAacuteLCULO DA PREVISAtildeO DO TEMPO DE ESPERA NA FILA 13

∙ Modelo de fila de canal uacutenico com fila uacutenica e muacuteltiplos atendimentos paralelos (Fi-gura 28)

∙ Modelo de fila de canal uacutenico com muacuteltiplas filas e muacuteltiplos atendimentos paralelos(Figura 29)

Figura 27 Modelo de fila de canal uacutenico com fila uacutenica e atendimento uacutenico

Figura 28 Modelo de fila de canal uacutenico com fila uacutenica e muacuteltiplos atendimentos paralelos

Figura 29 Modelo de fila de canal uacutenico com muacuteltiplas filas e muacuteltiplos atendimentos paralelos

Tambeacutem por Azmat Nafees nesses modelos trecircs subprocessos podem ser vistos

∙ Processo de chegada Eacute um processo contiacutenuo do evento ldquochegada de clientesrdquo ouseja quando o evento ocorre o processo aguarda a ocorrecircncia do proacuteximo evento Esseevento coloca um cliente na fila quando ele chega

14 ESTUDOS PRELIMINARES 24

∙ Processo de espera Eacute um processo que inclui o evento ldquocomece a servir o proacuteximocliente da filardquo que retira um cliente da fila o coloca no processo de atendimento eespera a conclusatildeo do evento ldquocliente servidordquo para recomeccedilar Nele se trabalha comtamanho e disciplina da fila

∙ Processo de atendimento Eacute um processo que inclui o evento ldquocliente servidordquo eespera a conclusatildeo do evento ldquocomece a servir o proacuteximo cliente da filardquo para recomeccedilarNele se trabalha com tipo taxa e tempo de atendimento

Dentre esses 3 modelos o que mais se encaixa na situaccedilatildeo de um restaurante eacute o segundomodelo canal uacutenico com fila uacutenica e muacuteltiplos atendimentos paralelos O processo de chegadade novos clientes na fila eacute tido como aleatoacuterio

Terceiro meacutetodo Rede Neural

Rede Neural eacute uma teacutecnica computacional inspirada no sistema nervoso que com o auxiacute-lio de um modelo matemaacutetico apresenta respostas para problemas de decisatildeo Esses modelosfuncionam da seguinte forma primeiro um conjunto de dados (conjunto de treinamento) eacuteapresentado ao sistema e este aprende com ele atraveacutes de reconhecimento de padratildeo entatildeocoloca-se o sistema para analisar os dados (conjunto de teste) para os quais deseja-se obteralgum resultado Este processo eacute chamado de aprendizagem de maacutequina Quanto melhor forseu treinamento mais precisas seratildeo as respostas para o segundo conjunto

Uma rede neural eacute formada por subestruturas chamadas neurocircnios Um neurocircnio tem oseguinte funcionamento ele recebe como entrada sinais cada sinal recebe um peso de acordocom a influecircncia dele na saiacuteda e uma soma eacute feita para produzir o niacutevel de atividade entatildeodependendo se o niacutevel de atividade exceder o limite dado pela funccedilatildeo de transferecircncia aresposta eacute produzida[27]

Software Multiple Back-Propagation

Para implementar a soluccedilatildeo baseada em redes neurais foi usado o Software MultipleBack-Propagation [1] Este eacute um software de faacutecil utilizaccedilatildeo que fornece uma rede a qualaprende atraveacutes do processo de propagaccedilatildeo inversa Esse meacutetodo baseia-se na comparaccedilatildeodos dados esperados (conjunto de teste) com os dados obtidos a partir do treinamento senecessaacuterio adaptaccedilotildees satildeo feitas a estrutura da rede para melhor aproximar aos dados doconjunto teste e isso eacute chamado de propagaccedilatildeo inversa

Por se tratar de um meacutetodo de aprendizagem de maacutequinas para se obter um resultadodeve-se treinar o algoritmo Primeiramente submete-se o conjunto de treinamento ao soft-ware para isso foi escolhido o mecircs de Agosto O criteacuterio de parada para o treino eacute o erroquadraacutetico meacutedio o qual teve seu valor atribuiacutedo para 001

Capiacutetulo 3

Tecnologias utilizadas

31 O sistema AndroidAndroid eacute um Sistema operacional open source (software de coacutedigo aberto o qual as

pessoas podem acessar e modificar para contribuir com o projeto [25]) e para dispositivosmoacuteveis desenvolvido pela Google baseado no Kernel do Linux e utilizado principalmente emdispositivos touchscreen Atualmente o Android eacute o sistema operacional que deteacutem a maiorparcela do mercado[17] com 836 dos dispositivos contra 134 do iOS da Apple

A Google tambeacutem oferece um ambiente de desenvolvimento para a plataforma Androidchamado Android Studio no qual os aplicativos satildeo criados e exportados para os dispositi-vos moacuteveis Aplicativos Android satildeo programados na linguagem Java com vaacuterias bibliotecasdisponibilizadas pela Google para suporte ao sistema operacional

A escolha da plataforma foi feita principalmente por conta de o sistema possuir a maiorparte dos usuaacuterios de Smartphones e tambeacutem pela ampla comunidade ativa de desenvolve-dores agrave qual se pode recorrer em casos de duacutevidas e problemas tornando suas resoluccedilotildeesmais raacutepidas e com muacuteltiplas alternativas Outros motivos que contribuiacuteram para a escolhado Android foram

∙ A disponibilidade do ambiente de desenvolvimento Android Studio que possui todosos recursos necessaacuterios para desenvolver um aplicativo funcional logo apoacutes a instalaccedilatildeosem a necessidade de utilizar outras dependecircncias as quais satildeo gerenciadas automati-camente pelo proacuteprio software

∙ O fato de no mercado brasileiro o sistema Android se encontrar em 918 dos dispo-sitivos segundo pesquisa da Kantar[18] e dado a pesquisa realizada para definiccedilatildeo depuacuteblico alvo onde foi possiacutevel perceber que 639 dos entrevistados utilizam smartpho-nes com sistema Android

∙ A utilizaccedilatildeo da linguagem de programaccedilatildeo Java para desenvolvimento que jaacute eraconhecida e fora utilizada anteriormente ao contraacuterio das linguagens Objective C eSwift linguagens utilizadas para desenvolver aplicativos para o sistema iOS Assimcomo a disponibilidade de dispositivos por parte do grupo que em sua maioria era decelulares com o sistema Android

15

16 TECNOLOGIAS UTILIZADAS 31

Figura 31 Parcela de mercado dos dispositivos no Brasil

311 Organizaccedilatildeo de uma aplicaccedilatildeo Android

Aplicativos Android satildeo divididos em componentes Haacute quatro tipos de componentespresentes Activities (ou atividades) Services (ou serviccedilos) Content providers (ou provedoresde conteuacutedo) Broadcast receivers (ou receptores de transmissatildeo)

∙ Activities Satildeo as telas e interfaces do usuaacuterio Cada tela de uma aplicaccedilatildeo eacute repre-sentada por uma activity e cada activity eacute independente de outras apesar de seremcomponentes de uma mesma aplicaccedilatildeo Isso se daacute pelo fato de haver a possibilidade deutilizar activities de aplicativos durante a execuccedilatildeo de outros Atividades satildeo iniciadase se comunicam entre si atraveacutes de objetos chamados Intent que transferem um pacotede dados que pode ser carregado no iniacutecio da nova atividade

∙ Services Sempre satildeo executados em segundo plano sem interferir na experiecircncia dousuaacuterio geralmente para realizar operaccedilotildees longas ou realizar operaccedilotildees de troca dedados enquanto o usuaacuterio estaacute utilizando outra aplicaccedilatildeo em primeiro plano

∙ Content Providers Satildeo gerenciadores de dados de aplicaccedilotildees Android utilizadospara ler e salvar dados compartilhados ou secretos dos aplicativos e do sistema

∙ Broadcast Receivers Satildeo componentes responsaacuteveis por obter eventos que aconte-ceram em outras aplicaccedilotildees ou no sistema e direcionar dados sobre esses eventos paraeventuais aplicaccedilotildees que necessitem destes dados alguns exemplos de eventos obtidospelos receptores de transmissatildeo satildeo tela desligada e bateria fraca

Aleacutem dos componentes uma parte importante de uma aplicaccedilatildeo Android eacute o ArquivoManifest que eacute uma declaraccedilatildeo de permissotildees serviccedilos e exigecircncias de hardware necessaacuterios

33 JSON 17

para o funcionamento do aplicativo Outra funccedilatildeo eacute possuir declaraccedilotildees de todos os compo-nentes utilizados no projeto nomes iacutecones entre outros

As interfaces de usuaacuterio do Android satildeo definidas em arquivos XML (eXtensible MarkupLanguage)[26] nos quais estatildeo declarados todos os layouts e configuraccedilotildees das telas Essesarquivos de layout satildeo depois inflados e satildeo gerados os componentes visuais da aplicaccedilatildeoEssa estrutura tem como objetivo facilitar o design da interface do usuaacuterio jaacute que arquivosxml satildeo de faacutecil compreensatildeo do desenvolvedor

32 JSONJSON ou Javascript Object Notation eacute um formato de dados amplamente utilizado para

troca de informaccedilotildees entre programas Possui uma notaccedilatildeo simples para grande parte dosprogramadores pois se assemelha a convenccedilotildees utilizadas em linguagens de programaccedilatildeomuito conhecidas como C C++ Python e Java O objetivo eacute que ele seja de faacutecil entendi-mento tanto para pessoas como para maacutequinas[11]

Um arquivo JSON eacute organizado como um objeto contendo pares nomevalorseparadospor viacutergulas e dentro de chaves(lsquolsquo rsquorsquo) ou como um array que eacute uma lista de valores separa-dos por viacutergulas e entre colchetes(lsquo[lsquo rsquo]rsquo) Um valor por sua vez pode ser um objeto ou umarray mas tambeacutem um nuacutemero inteiro ou uma String entre outros

Um exemplo de arquivo JSON eacute

1 2 Carros [3 4 Nome Scen ic 5 Marca Renault 6 Ano 20127 8 9 Nome Sentra

10 Marca Nissan 11 Ano 200912 13 ]14

33 Google APIsAPIs (Application Program Interfaces) satildeo interfaces para facilitar a troca de informa-

ccedilotildees entre aplicaccedilotildees utilizando comandos especiacuteficos[15]

Ao longo do desenvolvimento algumas APIs fornecidas pela Google foram utilizadascomo fonte de informaccedilotildees adicionais para o aplicativo

∙ Google Maps Distance Matrix API Esta API eacute utilizada para obter o tempo emsegundos de trajeto entre dois pontos (latlong) no mapa podem ser consultados ostempos de trajeto de carro bicicleta a peacute e utilizando transporte puacuteblico[28] Esta eacute

18 TECNOLOGIAS UTILIZADAS 35

uma API web logo utiliza-se um request http para realizar uma consulta

Por exemplo o request

httpsmapsgoogleapiscommapsapidistancematrixjsonorigins=Seattleampdestinations=Victoria+BCampkey=[user_key]

retorna o JSON

1 2 des t ina t i on_addre s s e s [ Vic tor ia BC Canada ] 3 o r i g in_addre s s e s [ Sea t t l e WA EUA ] 4 rows [5 6 e lements [7 8 d i s t anc e 9 text 172 km

10 value 17166811 12 durat ion 13 text 4 horas 40 minutos 14 value 1680915 16 s t a tu s OK17 18 ]19 20 ] 21 s t a tu s OK22

no qual eacute possiacutevel obter o tempo de trajeto em segundos

∙ Google Maps Android API Esta API eacute utilizada para habilitar o uso de mapasda Google integrados agrave aplicaccedilatildeo jaacute disponiacutevel com todas as funcionalidades de zoome arrastar presentes no aplicativo nativo permitindo tambeacutem a personalizaccedilatildeo comoa adiccedilatildeo de pontos definidos pelo usuaacuterio ao mapa

34 Localizaccedilatildeo do UsuaacuterioOutro serviccedilo que foi utilizado com o intuito de obter o tempo de trajeto e a lista ordenada

de forma personalizada de restaurantes foi a localizaccedilatildeo do usuaacuterio que eacute obtida atraveacutes doGPS presente nos smartphones Um objeto de localizaccedilatildeo eacute criado e realiza a comunicaccedilatildeocom o serviccedilo de localizaccedilatildeo do aparelho Ao obter a localizaccedilatildeo ele lanccedila um evento quepode ser acessado por outras partes da aplicaccedilatildeo obtendo a localizaccedilatildeo mais atualizada dodispositivo

36 CONTROLE DE VERSAtildeO 19

35 Controle de VersatildeoControle de versatildeo eacute uma praacutetica usada para manter a organizaccedilatildeo do coacutedigo e do seu de-

senvolvimento quando muitos desenvolvedores colaboram conjuntamente Existem softwaresque auxiliam essa organizaccedilatildeo registrando todas as mudanccedilas feitas ao longo do processo eque possui recursos que permitem que vaacuterios usuaacuterios trabalhem nos mesmos arquivos semperda de informaccedilotildees

No caso do Git [8] o projeto fica organizado em uma estrutura de aacutervore onde cadacommit (checkpoints criados pelos membros do grupo durante o processo) eacute marcado porum noacute para onde se pode retornar quando necessaacuterio Existem tambeacutem estruturas chama-das branches que satildeo bifurcaccedilotildees na estrutura para que partes do projeto sejam criadasseparadamente sem interferir com a linha principal As branches depois satildeo unidas agrave linhaprincipal atraveacutes do comando merge

Neste projeto o serviccedilo de controle de versatildeo utilizado foi o Bitbucket [2] (que eacute um ser-viccedilo web-based de controle de versatildeo que utiliza Git) com auxiacutelio do software SourceTree[19]que eacute uma interface graacutefica para os serviccedilos do Bitbucket onde eacute possiacutevel visualizar com maisfacilidade as fases do desenvolvimento do projeto e realizar os comandos mais intuitivamente

Figura 32 Interface do SourceTree que mostra o controle de versionamento do projeto

36 Banco de dadosCom o intuito de deixar o aplicativo mais completo guardando informaccedilotildees dos usuaacuterios

e dos estabelecimentos optou-se por utilizar-se um banco de dados Alguns exemplos de

20 TECNOLOGIAS UTILIZADAS 36

banco de dados aprendidos no curso Laboratoacuterio de Banco de Dados foram

∙ SQL (Structured Query Language - Linguagem de Consulta Estruturada)[20] umalinguagem para atualizar deletar e requisitar informaccedilotildees atraveacutes de consultas emtabelas que possuem relaccedilatildeo entre si

∙ noSQL[13] um banco de dados que armazena e recupera informaccedilotildees modeladas deuma forma onde natildeo satildeo usadas tabelas relacionais

Como este uacuteltimo natildeo foi o foco da disciplina por falta de tempo decidiu-se por utilizaacute-lopara que o grupo pudesse aprender melhor esse modelo

Outra decisatildeo tomada foi a hospedagem dos dados na nuvem ou seja colocaacute-los em umservidor que natildeo seja local e conseguir acessaacute-los atraveacutes de uma conexatildeo via internet Dessemodo os dados sempre estaratildeo disponiacuteveis para serem consultados

361 Firebase

Buscando-se atender as decisotildees tomadas sobre o banco de dados procuramos um serviccedilode banco de dados da Google por conter ampla integraccedilatildeo com a plataforma de desenvolvi-mento Android por ser conhecido bastante utilizado e por possuir uma ampla comunidadede desenvolvedores dispostos a oferecer auxiacutelio em foacuteruns de discussatildeo de coacutedigos

Para atender esses requisitos escolheu-se o Firebase Realtime Database[6] desenvolvido edisponibilizado pela Google que consiste em um banco de dados noSQL com armazenamentona nuvem Esse serviccedilo armazena os dados do usuaacuterio no servidor da Google em formatoJSON e a cada alteraccedilatildeo sincroniza em tempo real com todos os clientes conectados

O grupo pode observar as seguintes vantagens de se trabalhar com a ferramenta existea sincronizaccedilatildeo em tempo real dos dados de todos os clientes e sua disponibilidade mesmocom o aplicativo offline ou seja quando o aplicativo natildeo estiver conectado a internet osdados do dispositivo moacutevel seratildeo armazenados e sincronizados com o banco de dados assimque a conexatildeo estiver disponiacutevel novamente Aleacutem disso os desenvolvedores possuem acessoa um console online (figura 33) onde o JSON eacute mostrado numa interface interativa de umaforma mais amigaacutevel e no qual eacute permitido editaacute-lo facilmente

37 CROWDSOURCING 21

Figura 33 Console online do Firebase onde os dados satildeo mostrados de forma mais amigaacutevel eintuitiva

Outra observaccedilatildeo feita foi que o Firebase Realtime Database funciona como o esperadose ele guardar uma coacutepia local dos dados em um arquivo JSON no celular Poreacutem isso natildeofoi visto como um problema pois como essa coacutepia pode ser salva em um arquivo texto oespaccedilo utilizado diminui consideravelmente

Na primeira vez que os dados satildeo criados e todas as vezes em que os dados forem atua-lizados por algum dispositivo moacutevel eacute enviada uma atualizaccedilatildeo que seraacute recebida atraveacutes delisteners por todos os aparelhos que utilizam o aplicativo para que eles atualizem seus res-pectivos JSONs Listeners satildeo interfaces de comunicaccedilatildeo que executam uma seacuterie de accedilotildeesassim que um outro evento esperado acontece

37 CrowdsourcingO termo Crowdsourcing tem origem nas palavras da liacutengua inglesa Crowd (multidatildeo) e

Outsourcing (terceirizaccedilatildeo) e eacute definido pelo dicionaacuterio Merriam Webster como A praacuteticade obtenccedilatildeo de serviccedilos ideias ou conteuacutedo solicitando contribuiccedilotildees de grandes grupos depessoas e especialmente da comunidade online [3] Esta praacutetica eacute utilizada para que sejapossiacutevel agrave comunidade contribuir com dados para algum programa ou serviccedilo como no apli-cativo Waze do qual a principal fonte de dados de tracircnsito acidentes e radares eacute obtida pormeio dos proacuteprios usuaacuterios

Capiacutetulo 4

Desenvolvimento do Projeto

Este capiacutetulo aborda o processo de desenvolvimento do projeto iniciado com o preen-chimento do diagrama Canvas e uma pesquisa de mercado direcionada ao usuaacuterio A partirdas informaccedilotildees coletadas foi possiacutevel projetar um aplicativo que atendesse as necessidadesexpostas pela pesquisa e selecionar as tecnologias necessaacuterias Tambeacutem eacute abordada a aplica-ccedilatildeo dos diferentes meacutetodos de caacutelculo da previsatildeo de tempo de espera que foram estudadose explicados no Capiacutetulo 2 Por fim satildeo expostas as diferentes versotildees do aplicativo duranteo processo e seus detalhes

41 Pesquisa de MercadoAntes de iniciar-se o desenvolvimento praacutetico algumas questotildees foram levantadas se

um aplicativo com as funcionalidades escolhidas seria de alguma forma uacutetil para o usuaacuterioe se sim qual metodologia deveria ser usada para que este produto fosse entregue o maiscompleto possiacutevel ateacute o final do ano Para responder a primeira pergunta desenvolveu-seum questionaacuterio

411 Pesquisa com o usuaacuterio

O questionaacuterio foi desenvolvido para avaliar a viabilidade do aplicativo e suas funciona-lidades e foi criado utilizando-se o Google Forms [9] Essa eacute uma ferramenta desenvolvidapelo Google que possibilita a criaccedilatildeo de formulaacuterios contendo diversos formatos de pergun-tas tanto dissertativas quanto de muacuteltipla escolha

Seguindo os princiacutepios de desenvolvimento de questionaacuterios [4] o conjunto de perguntasfoi mantido curto simples e de faacutecil entendimento Tambeacutem variou-se o tipo de questotildeesentre estruturadas (questotildees com respostas em forma de alternativas) e desestruturadas(questotildees com respostas em formato texto) seguindo esses mesmos princiacutepios para captarmelhor as informaccedilotildees dos entrevistados e evitar erros de entendimento

Com as respostas do questionaacuterio tinha-se o intuito de traccedilar um possiacutevel puacuteblico alvoconhecer seu modo de uso de dispositivos moacuteveis e validar a aplicabilidade de diferentesfuncionalidades pretendidas inicialmente sendo essas engajamento do usuaacuterio atraveacutes denotificaccedilotildees do sistema aceitaccedilatildeo de sugestotildees de locais alternativos avaliaccedilatildeo da existecircnciado problema que queremos resolver (se este aplicativo supre uma necessidade real do usuaacute-rio) e aceitaccedilatildeo do aplicativo

23

24 DESENVOLVIMENTO DO PROJETO 41

Para a divulgaccedilatildeo redes sociais como Facebook [5] e sistemas de mensagem instantacircneascomo WhatsApp foram usados e o envio de respostas foi restrito ateacute trecircs semanas apoacutes suaprimeira postagem Neste periacuteodo foram obtidas 210 respostas as quais ajudaram a definiros aspectos do sistema a ser desenvolvido

O questionaacuterio foi dividido em duas subseccedilotildees perfil do usuaacuterio e funcionalidade Comelas obteve-se os seguintes resultados

41 PESQUISA DE MERCADO 25

Questatildeo 1

Figura 41 Graacutefico pizza da distribuiccedilatildeo das respostas em relaccedilatildeo a idade dos pesquisados

As faixas de idade apresentadas estatildeo desbalanceadas por natildeo terem a mesma quantidadede anos em cada uma poreacutem essa divisatildeo foi pensada levando-se em conta a fluecircncia comtecnologia que cada idade possui Com o resultado verificou-se que do puacuteblico alcanccediladocom a pesquisa a maioria estaacute na faixa de 18 a 25 anos de idade assumida como parcelacom maior conhecimento tecnoloacutegico

Questatildeo 2

Figura 42 Graacutefico pizza da distribuiccedilatildeo das respostas em relaccedilatildeo ao sistema operacional

Esta questatildeo foi pensada para medir a porcentagem de cada sistema operacional pre-sente nos celulares do puacuteblico Com ela descobriu-se que 639 das pessoas dentro desse

26 DESENVOLVIMENTO DO PROJETO 41

grupo possuem o sistema Android enquanto 234 possuem iOS e 38 Windows phoneEssa pergunta foi incluiacuteda para um melhor direcionamento do desenvolvimento do aplicativo

Uma questatildeo levantada ao aplicar esse questionaacuterio foi a dificuldade que algumas pessoasencontraram para identificar a versatildeo do proacuteprio aparelho Poreacutem para manter a consistecircnciadas respostas decidiu-se natildeo mudar nada nesta questatildeo para remediar isso

Questatildeo 3

Figura 43 Graacutefico em barras da distribuiccedilatildeo de frequecircncias mensais de cada local analisado

41 PESQUISA DE MERCADO 27

Questatildeo 4

Figura 44 Graacutefico em pizza da distribuiccedilatildeo de interesse do usuaacuterio no tempo de espera de cadalocal

A princiacutepio viu-se muitas possiacuteveis aplicaccedilotildees para a previsatildeo de tempo de espera Paraentender qual seria a prioridade do puacuteblico as questotildees acima foram incluiacutedas A primeiraverificou a frequecircncia de visitas em alguns locais e a segunda serviu para analisar qualestabelecimento despertava mais interesse nos entrevistados quanto ao quesito fila Nos doiscasos restaurantes se destacaram com o maior interesse

Questatildeo 5

Figura 45 Graacutefico em barras da distribuiccedilatildeo de interesse do usuaacuterio por cada item avaliado

Para acompanhar o dado de espera e fornecer mais informaccedilotildees relevantes ao usuaacuteriosem potencial perguntou-se quais outras informaccedilotildees eles acham interessante saber sobre umdeterminado estabelecimento Com isso descobriu-se que a faixa de preccedilo o trajeto ateacute olocal e o cardaacutepio seriam dados importantes de se obter juntamente com o tempo de espera

28 DESENVOLVIMENTO DO PROJETO 41

Questatildeo 6O que vocecirc costuma fazer para evitar filasNeste ponto testou-se se a soluccedilatildeo proposta atraveacutes do aplicativo resolveria o problema dousuaacuterio de uma forma melhor do que a soluccedilatildeo atualmente utilizada Para isso foi perguntadoo que as pessoas fazem para evitar filas e as principais respostas foram

∙ Evitar horaacuterios de pico

∙ Chegar cedo

∙ Ir em outro lugar caso uma fila seja encontrada

∙ Tentar realizar reservas antecipadamente

∙ Se distrair com livroscelular

Notou-se que as soluccedilotildees utilizadas atualmente natildeo suprem as necessidades dos entre-vistados pois mesmo em horaacuterios natildeo convencionais pode-se encontrar filas ou quandodecide-se esperar na fila muito tempo eacute perdido Concluiu-se que a soluccedilatildeo proposta a par-tir do aplicativo resolve de forma mais abrangente o problema pois ajuda o usuaacuterio a evitarhoraacuterios de pico inesperados

Questatildeo 7

Figura 46 Graacutefico em pizza da distribuiccedilatildeo do meio de transporte utilizado pelos usuaacuterios

Essa questatildeo foi formulada com o objetivo de verificar quais meios de transporte seriamincluiacutedos com previsatildeo de tempo de trajeto no aplicativo Foi verificado que a maioria dosentrevistados utilizam transporte puacuteblico seguido por carro

41 PESQUISA DE MERCADO 29

Questatildeo 8

Figura 47 Graacutefico em pizza da distribuiccedilatildeo do interesse do usuaacuterio pela informaccedilatildeo fornecida

Questatildeo 9

Figura 48 Graacutefico em pizza da distribuiccedilatildeo de quantidade de quilocircmetros que o usuaacuterio sedeslocaria para ir a um local com menos fila

Com essas questotildees foi verificado que algo importante para o usuaacuterio eacute saber de outrosestabelecimentos que possam oferecer tempos de espera menores nas redondezas de onde ousuaacuterio se encontra que eacute uma das funcionalidades que desejaacutevamos utilizar no sistema

30 DESENVOLVIMENTO DO PROJETO 41

Questatildeo 10

Figura 49 Graacutefico em barras da distribuiccedilatildeo de sentimento do usuaacuterio em relaccedilatildeo a notificaccedilatildeode aplicativos

Questatildeo 11

Figura 410 Graacutefico em pizza da distribuiccedilatildeo de opiniatildeo do usuaacuterio sobre desabilitar notificaccedilotildeesem celular

42 PESQUISA DE MERCADO 31

Questatildeo 12

Figura 411 Graacutefico em pizza da distribuiccedilatildeo de opiniatildeo do usuaacuterio sobre habilitar GPS emcelular

A ideia inicial era poder usar o GPS para verificar a localizaccedilatildeo do usuaacuterio e enviarnotificaccedilotildees quando este estivesse parado nas proximidades de algum dos estabelecimentoscadastrados Para que essa funcionalidade possa existir eacute necessaacuterio que o aplicativo tenhaacesso agrave localizaccedilatildeo precisa da pessoa atraveacutes do GPS ou internet ateacute mesmo quando natildeoestiver aberto Aleacutem disso tambeacutem eacute necessaacuterio que as notificaccedilotildees estejam habilitadas parafinalizar esta interaccedilatildeo Entatildeo as perguntas 10 11 e 12 foram incluiacutedas no questionaacuterio Ob-servando as respostas foi possiacutevel verificar que 295 das pessoas que responderam deixamambas as funcionalidades habilitadas (GPS e notificaccedilotildees) Com isso pudemos prosseguircom essa ideia e tambeacutem pensar em possiacuteveis alternativas de interaccedilatildeo e engajamento como usuaacuterio

Por conta dessa pesquisa ter sido compartilhada atraveacutes das contas das redes sociais ecomunicadores dos componentes deste grupo sabe-se que este pode apresentar um resultadoviesado mas que mesmo assim natildeo deve ser desconsiderado e que muito ajudou a sanar asduacutevidas iniciaisComo resultado traccedilamos o perfil do entrevistado

∙ Faixa etaacuteria predominante entre 18 e 30 anos

∙ Possui sistema operacional Android (versotildees 4 5 e 6)

∙ Vai a restaurantes com certa frequecircncia mensal resultando em interesses sobre infor-maccedilotildees relacionadas a esse estabelecimento

∙ Costuma chegar cedo ou evitar os horaacuterios de pico para evitar filas nos locais

∙ Carro e transporte coletivo satildeo os principais meios de transporte

∙ Se deslocaria para um estabelecimento semelhante que possui menos fila contanto queeste fique num raio de 2km de distacircncia

32 DESENVOLVIMENTO DO PROJETO 43

42 Projeto do AplicativoO grupo comeccedilou o projeto com o preenchimento do diagrama Canvas(figura 412) apre-

sentado na Seccedilatildeo 21 Desse modo foi adquirida uma ideia mais consistente e uma base paracomeccedilar a implementaccedilatildeo

Figura 412 Diagrama Canvas preenchido pelo grupo

Com o modelo de negoacutecios definido e com base no resultado da pesquisa com o usuaacuterioapresentada na seccedilatildeo seguinte foram aplicadas pequenas mudanccedilas no projeto para melhoradequar-se agraves necessidades e ao perfil do puacuteblico alvo

Para o desenvolvimento foi utilizado um meacutetodo aacutegil baseado no scrum com sprints de3 a 4 semanas devido agrave disponibilidade dos membros do grupo Os encontros natildeo eram diaacute-rios como recomendado para o meacutetodo scrum tambeacutem em razatildeo da disponibilidade Haviamstand ups (discussotildees raacutepidas no comeccedilo de cada encontro) e retrospectivas ao final de cadasprint A cada sprint eram selecionadas histoacuterias e tarefas para serem executadas e caso natildeofossem concluiacutedas ao final da iteraccedilatildeo eram inseridas ao backlog e feitas no sprint seguinte

43 Aplicaccedilatildeo dos meacutetodos de caacutelculo de espera

431 Aplicando a meacutedia por periacuteodo

Aplicando-se no trecho abaixo a teacutecnica desenvolvida na Seccedilatildeo 242 para uma queryrealizada no dia 19082016 no intervalo de 2040 - 2055 analisa-se a semana anterior quepossua tais intervalos Assim o saacutebado dia 06082016 seraacute selecionado

43 APLICACcedilAtildeO DOS MEacuteTODOS DE CAacuteLCULO DE ESPERA 33

Entrada Qtd Pessoas Notificado Espera

6816 2043 2 862016 2053 1606

6816 2044 2 862016 2055 674

6816 2048 2 862016 2056 528

6816 2048 2 862016 2057 520

6816 2051 2 862016 2107 1118

6816 2051 3 862016 2110 1305

6816 2052 2 862016 2110 1273

6816 2052 2 862016 2111 1179

6816 2053 2 862016 2112 1217

6816 2053 2 NULL 59

6816 2054 3 862016 2119 1541

6816 2055 2 862016 2117 1444

6816 2055 2 862016 2120 1570

6816 2055 2 862016 2122 1613

Tabela 41 Trecho do dia 06082016 entre os horaacuterios das 2043 agraves 2055 um intervalo de 12minutos retirado dos dados da empresa Get In

Com esses dados obteve-se a meacutedia de espera de 1080 segundos (18 minutos) a qualseria sugerida para o usuaacuterio com a busca e desvio padratildeo de 465144719 segundos (775 mi-nutos) Dentro desse intervalo tem-se como maacuteximo tempo de espera 1613 segundos (2688minutos) e como miacutenimo 59 segundos (1 minuto) Analisando-se os dados do dia 19082016no mesmo periacuteodo temos

34 DESENVOLVIMENTO DO PROJETO 43

Entrada Pessoas Notificado Espera Erro previsatildeo Erro p 2 pessoas

19816 2043 2 8192016 2051 544 -563 522

19816 2043 2 8192016 2052 605 -502 461

19816 2044 2 8192016 2056 723 -384 343

19816 2046 4 8192016 2119 1988 881 X

19816 2048 2 8192016 2102 919 188 147

19816 2051 2 8192016 2103 821 286 245

19816 2051 3 8192016 2108 1773 666 X

19816 2053 2 8192016 2110 1083 24 -17

19816 2053 2 8192016 2111 1105 2 -39

19816 2053 2 8192016 2112 1169 62 -103

19816 2055 2 8192016 2114 1447 340 -381

Tabela 42 Trecho do dia 19082016 entre os horaacuterios das 2043 agraves 2055um intervalo de 12minutos retirado dos dados da empresa Get In

Ou seja se um grupo chegasse dentro desse periacuteodo e a previsatildeo dada fosse a meacutediaobtida anteriormente o erro calculado pela diferenccedila entre o tempo sugerido e o real tempode espera estaria no intervalo de 15 minutos para menos ou 8 minutos para mais Sendoesse um valor aceitaacutevel

Um proacuteximo passo eacute a restriccedilatildeo dos registros a grupos com 2 integrantes Com tal restri-ccedilatildeo a previsatildeo de espera eacute de 1066 segundos (1776 minutos) Aplicando essa nova meacutedia aosregistros com 2 integrantes do dia 19082016 obteacutem-se um erro (Coluna 6 - erro previsatildeopara 2 pessoas) menor do que o anterior O intervalo do erro calculado neste caso seria de 522segundos (87 minutos) para mais e 381 segundos (635 minutos) para menos Este resultadoeacute ainda mais favoraacutevel mostrando que a inclusatildeo de mais filtros para o caacutelculo da previsatildeomelhorou o tempo previsto

432 Aplicando teoria das filas

A teoria das filas (Seccedilatildeo 242) eacute uma ferramenta muito completa que calcula muitos dadosuacuteteis para a previsatildeo de espera Contudo por conta da necessidade de informaccedilotildees sobreo tempo de atendimento a qual natildeo estaacute contida no banco utilizado esta teoria natildeo podeser aplicada neste caso Poreacutem esse dado pode ter um valor assumido para que a utilizaccedilatildeodessa teoria fosse possiacutevel entretanto a sua precisatildeo ficaria comprometida e imprevisiacutevel

433 Aplicando redes neurais

Para aplicar o que foi estudado na Seccedilatildeo 242 foi executado o software com o mecircs deAgosto como teste o mecircs de Setembro como treino e o limite do erro quadraacutetico como 001 eobteve-se a tabela presente no apecircndice B Na tabela podemos ver o tempo de fila esperadoou seja o tempo contido na tabela do mecircs de Setembro o tempo que o algoritmo deu comoresposta baseado no mecircs de Agosto e o erro entre eles respectivamente

44 DEFINICcedilAtildeO DA INTERFACE DO APLICATIVO 35

Figura 413 Software Multiple Back-Propagation com a configuraccedilatildeo escolhida para os dadosdisponiacuteveis

Mesmo o erro se mantendo em 0018 os dados obtidos possuem um erro padratildeo de 15minutos Se mais dados forem adicionados o criteacuterio de parada pode ser atingido e assimuma previsatildeo melhor pode ser alcanccedilada

434 Conclusatildeo sobre os meacutetodos estudados

Dentre todas as possibilidades estudadas visualizamos na meacutedia por periacuteodo a melhoropccedilatildeo assumindo os dados disponiacuteveis para teste Se mais paracircmetros fossem fornecidoscomo o tempo de atendimento a teoria das filas seria uma boa opccedilatildeo para fornecer a pre-visatildeo de espera E se mais dados estivessem disponiacuteveis as redes neurais conseguiriam umaaproximaccedilatildeo melhor e assim seria uma boa opccedilatildeo tambeacutem

44 Definiccedilatildeo da Interface do aplicativoComo um primeiro protoacutetipo foi desenvolvida uma interface simples que tinha como tela

de iniacutecio um mapa com um campo para buscas na parte superior

36 DESENVOLVIMENTO DO PROJETO 44

Figura 414 Fluxo de telas do primeiro protoacutetipo

Ao efetuar uma busca por algum estabelecimento uma tela mostrando o tempo de esperaaproximado da fila no local era exibida junto com bototildees que permitiam selecionar o meiode transporte visualizar outras opccedilotildees ou dar iniacutecio a rota ateacute o local desejado Tambeacutemhavia uma notificaccedilatildeo para quando a pessoa estivesse parada proacutexima a um restaurantecadastrado que direcionaria o usuaacuterio a uma tela com um cronocircmetro do tempo de esperana fila

Para testar essa visualizaccedilatildeo escolhemos algumas pessoas e realizamos um teste deusabilidade[22] este teste eacute feito da seguinte forma

44 DEFINICcedilAtildeO DA INTERFACE DO APLICATIVO 37

Uma contextualizaccedilatildeo eacute feita para o voluntaacuterio e entatildeo uma tarefa eacute passada para sercompletada Os integrantes do grupo observam dificuldades enfrentadas pelo entrevistado etomam notas Esse teste eacute repetido algumas vezes e seu resultado eacute coletado para avaliaccedilatildeoe modificaccedilatildeo das funcionalidades

Figura 415 Tela de detalhes de um restaurante(segunda versatildeo)

Notou-se que algumas funcionalidadespareceram confusas e natildeo intuitivas porexemplo natildeo ficou claro se o tempo mos-trado era de trajeto ou de espera na filanem qual era o meio de transporte utili-zado

Logo esse protoacutetipo foi reformuladocom o intuito de melhorar a experi-ecircncia do usuaacuterio com o nosso aplica-tivo

Foram colocados aleacutem do tempo deespera da fila o tempo que o usuaacuteriolevaria para chegar ateacute o local selecio-nado (conforme o tipo de transporte es-colhido) e a quantidade estimada de pes-soas na fila O tempo total (espera so-mado ao tempo de deslocamento) ga-nhou destaque entre as informaccedilotildees doestabelecimento e o botatildeo que direcionao usuaacuterio ao trajeto ficou mais especiacute-fico

Tambeacutem cogitou-se a possibilidade deadicionar login e um perfil de usuaacuteriojunto com uma lista de restaurantes favo-ritos

O fluxo das telas deste novo protoacutetipo ficou como mostra o esquema a seguir

38 DESENVOLVIMENTO DO PROJETO 44

Figura 416 Fluxo de telas do segundo protoacutetipo

44 DEFINICcedilAtildeO DA INTERFACE DO APLICATIVO 39

Figura 417 Tela de detalhes de um restaurante(terceira versatildeo)

Apoacutes outras avaliaccedilotildees mais algumaspequenas alteraccedilotildees foram realizadas nainterface Foi decidido que seria inviaacute-vel estimar o nuacutemero de pessoas nafila entatildeo essa funcionalidade foi remo-vida

Notificaccedilotildees foram adicionadas paraquando o usuaacuterio estiver parado na aacutereado restaurante para que ele possa con-tribuir com informaccedilotildees sobre a fila quepegou aleacutem de um botatildeo de contri-buiccedilatildeo ter sido inserido na tela ini-cial

40 DESENVOLVIMENTO DO PROJETO 45

O fluxo de telas do aplicativo atual ficou da seguinte forma

Figura 418 Fluxo de telas do terceiro protoacutetipo

46 EXPLICACcedilAtildeO DAS FUNCIONALIDADES 41

45 Explicaccedilatildeo das funcionalidadesEsta seccedilatildeo explica as funcionalidades do produto utilizando a figura 418

A tela inicial (3) exibe uma lista de restaurantes incluindo seus respectivos tempos detrajeto e tempo de espera na fila Ao clicar no botatildeo ldquo+rdquo uma caixa de diaacutelogo eacute aberta(4) onde eacute possiacutevel adicionar o tempo que o usuaacuterio esperou na fila Primeiro eacute escolhido orestaurante depois a data e hora que a pessoa chegou na fila e por fim o tempo de esperaem minutos Ao tocar em ldquoEnviar Feedback rdquo os dados satildeo incluiacutedos no banco de dados eatualizados para os outros usuaacuterios Assim eacute apicado o conceito de Crowdsourcing no apli-cativo

Ao tocar em um item da lista de restaurantes seraacute aberta a tela de detalhes de um res-taurante (5) na qual eacute possiacutevel ver com mais clareza os tempos de trajeto e espera o tempototal o endereccedilo do estabelecimento e um pequeno mapa centrado no local Pressionandoo botatildeo ldquoDireccedilotildeesrdquo o usuaacuterio seraacute redirecionado ao aplicativo de mapas de sua preferecircnciano caso do exemplo (8) o Google Maps jaacute traccedilando a rota da localizaccedilatildeo do usuaacuterio para oestabelecimento em questatildeo

Novamente na tela inicial tocando no iacutecone de lupa eacute possiacutevel realizar uma busca digi-tando o nome do estabelecimento na caixa de texto a qual exibe sugestotildees dependendo doque foi digitado Ao clicar em um dos resultados da busca o usuaacuterio eacute novamente direcionadopara a tela de detalhes do restaurante (5)

Tambeacutem eacute possiacutevel tocar no iacutecone de mapa na tela inicial onde seraacute mostrado um mapacentrado na localizaccedilatildeo do usuaacuterio

Ao ficar parado por um tempo em um mesmo local proacuteximo a um estabelecimentocadastrado o usuaacuterio eacute perguntado em uma notificaccedilatildeo quanto tempo ele permaneceu nafila Ao tocar na notificaccedilatildeo a caixa de diaacutelogo para feedback do usuaacuterio seraacute aberta (4) jaacutecom o restaurante preenchido e apoacutes o feedback a janela seraacute fechada e os dados enviadosao banco de dados

46 Implementaccedilatildeo do banco de dadosO banco de dados do aplicativo foi modelado e populado em forma de aacutervore (Fi-

gura 419) de forma a facilitar o acesso aos dados necessaacuterios ao aplicativo No primeironiacutevel estatildeo os ids dos restaurantes Cada id de restaurante guarda a localizaccedilatildeo (latitudelongitude) do restaurante o nome o endereccedilo e um objeto fila O objeto fila guarda todos osdias da semana (domingo a saacutebado) e cada dia da semana possui 24 campos um para cadahora do dia Cada hora possui o tempo meacutedio de espera da fila naquela hora e um peso paraesse tempo O peso eacute um valor que aumenta de acordo com o nuacutemero de feedbacks dadospara que o novo valor do tempo meacutedio seja calculado de forma consistente

Modelamos o banco de dados de uma forma que respeitasse uma hierarquia de dados

42 DESENVOLVIMENTO DO PROJETO 46

Figura 419 Aacutervore que ilustra a organizaccedilatildeo de um restaurante no banco de dados

Com o banco de dados jaacute populado o aplicativo faz consultas e atualizaccedilotildees de dadosConsultas satildeo feitas ao criar a tela de listagem de restaurantes e de detalhes de um restau-rante consultado As atualizaccedilotildees satildeo feitas quando o usuaacuterio manda o feedback de tempo deespera em um estabelecimento em determinado horaacuterio o aplicativo calcula a nova meacutedia eatualiza o campo do respectivo horaacuterio

Capiacutetulo 5

Conclusatildeo

Ao longo dos capiacutetulos deste trabalho pocircde-se acompanhar todo o processo de criaccedilatildeo edesenvolvimento do aplicativo que apoacutes finalizado foi batizado com o nome Queue

Comeccedilando com um problema para o qual o grupo almejava oferecer uma soluccedilatildeoacabou-se por adentrar-se um pouco no campo da Estatiacutestica e estudar diversas metodo-logias que poderiam ser uacuteteis para fornecer um caacutelculo de previsatildeo de espera meacutedia porperiacuteodo aplicaccedilatildeo da teoria das filas e utilizaccedilatildeo de redes neurais

Atraveacutes de uma parceria com a empresa GetIn obteve-se acesso a uma grande quantidadede dados e foi possiacutevel utilizaacute-los em anaacutelises feitas nas metodologias escolhidas conseguindoassim resultados relevantes Por meio destes foi feita a escolha de um dos meacutetodos para ocaacutelculo da previsatildeo de filas a meacutedia por periacuteodo

Aleacutem desses estudos ao longo do ano o grupo aprendeu a desenvolver para a plata-forma Android sobre a qual nenhum dos integrantes tinha conhecimento preacutevio Tambeacutemfoi possiacutevel aprender e utilizar a metodologia aacutegil com Scrum para guiar o processo de de-senvolvimento

Ao fim do ciclo de desenvolvimento conseguiu-se entregar um aplicativo em funciona-mento que fornece a previsatildeo de espera no instante da consulta de estabelecimentos cadas-trados no banco de dados armazenado na nuvem

Na versatildeo atual do aplicativo natildeo foi implementado um sistema para o cadastro de novosestabelecimentos Isso soacute eacute possiacutevel atraveacutes da inserccedilatildeo direta no banco de dados atraveacutes dainterface fornecida pelo console do Firebase Atualmente estatildeo cadastrados 5 restaurantesos quais foram visitados durante o desenvolvimento do projeto Para que o cadastro deestabelecimentos escale seria necessaacuterio a implementaccedilatildeo de uma funcionalidade que permitaao usuaacuterio adicionar novos estabelecimentos a partir de locais disponiacuteveis na API de locaisda Google

43

45

46 APEcircNDICE A

Apecircndice A

Dados coletados

Figura A1 Dados de tempo de espera para grupos de tamanhos variados para cada horaacuterio e emcada dia da semana obtidos em entrevista em restaurantes Outback Steakhouse Shopping Uniatildeo nomecircs de outubro

Referecircncias Bibliograacuteficas

[1] Backpropagation httpmbpsourceforgenet Accesso em Janeiro 2017 14

[2] Bitbucket httpsbitbucketorgproduct Accesso em Dezembro 2016 19

[3] Crowdsourcing httpswwwmerriam-webstercomdictionarycrowdsourcing Ac-cesso em Novembro 2016 21

[4] Designing a survey httpwwwsciencebuddiesorgscience-fair-projectsproject_ideasSoc_surveyshtml Accesso em Outubro 2016 4 23

[5] Facebook httpswwwfacebookcom Accesso em Novembro 2016 24

[6] Firebase httpsfirebasegooglecom Accesso em Agosto 2016 20

[7] Getin app httpswwwgetinappcombrhomesao-paulo Accesso em Novembro2016 9

[8] Git 11 primeiros passos - sobre controle de versatildeo httpsgit-scmcombookpt-brv1Primeiros-passos-Sobre-Controle-de-Vers Accesso em Novembro 2016 19

[9] Google forms httpsdocsgooglecomforms Accesso em Novembro 2016 23

[10] Guia definitivo do project model canvas Project Builder 3

[11] Jsonorg introducing json httpwwwjsonorg Accesso em Novembro 2016 17

[12] Manifesto para desenvolvimento Aacutegil de software httpagilemanifestoorgisoptbrmanifestohtml Accesso em Novembro 2016 5

[13] Nosql httpsenwikipediaorgwikiNoSQL Accesso em Novembro 2016 20

[14] Outback steakhouse httpswwwoutbackcombrhome Accesso em Novembro 20169

[15] Restful api development with lumen microframework httpsbelitsoftcomlaravel-development-servicesapi-development Accesso em Novembro 2016 17

[16] Scrum httpswwwatlassiancomagilescrum Accesso em Novembro 2016 5

[17] Smartphone os market share 2016 q2 httpwwwidccomprodservsmartphone-os-market-sharejsp Accesso em Novembro 2016 15

[18] Smartphone os sales market share kantar worldpanel comtech httpwwwkantarworldpanelcomsmartphone-os-market-share Accesso em Novembro 2016 15

[19] Sourcetree httpswwwsourcetreeappcom Accesso em Dezembro 2016 19

47

48 REFEREcircNCIAS BIBLIOGRAacuteFICAS

[20] Sql httpsptkhanacademyorgcomputingcomputer-programmingsql Accesso emDezembro 2016 20

[21] Trello httpstrellocom Accesso em Novembro 2016 6

[22] Usability test httpsenwikipediaorgwikiUsability_testing Accesso em Novembro2016 36

[23] Versionone 2012 agile dev survey httpswwwversiononecompdf7th-Annual-State-of-Agile-Development-Surveypdf Accesso em Novembro 2016 5

[24] Waze httpswwwwazecom Accesso em Novembro 2016 1

[25] What is an open source httpsopensourcecomresourceswhat-open-source Accessoem Novembro 2016 15

[26] Xml tutorial httpwwww3schoolscomxml Accesso em Novembro 2016 17

[27] Paulo F Cabral dos Anjos Jr Aron Ifanger Maciel Christopher Silva de Paacutedua Com-posiccedilatildeo de carteiras de accedilotildees utilizando modelo de redes neurais artificiais e modelo derisco e retorno de Markowitz 2012 14

[28] Google Distance matrix api documentation httpsdevelopersgooglecommapsdocumentationdistance-matrix Accesso em Novembro 2016 17

[29] Alan Klement Designing features using job stories httpsblogintercomcomusing-job-stories-design-features-ui-ux Accesso em Novembro 2016 6

[30] Azmat Nafees Queuing theory and its application analysis of the sales checkout opera-tion in ica supermarket httpwwwstatisticsduseessaysD07ENafeespdf Accessoem Novembro 2016 12

[31] Eric Ries A Startup Enxuta Lua de papel primeira ediccedilatildeo edition 2012 3

  • Introduccedilatildeo
    • Motivaccedilatildeo
    • Trabalho Proposto
    • Estrutura da monografia
      • Estudos Preliminares
        • Desenvolvimento de Startups
          • Desenvolvimento de Questionaacuterios
            • Metodologia Aacutegil
            • Jobs to be done
            • Caacutelculo da previsatildeo do tempo de espera na fila
              • Descriccedilatildeo do problema
              • Meacutetodos de caacutelculo da espera
                  • Tecnologias utilizadas
                    • O sistema Android
                      • Organizaccedilatildeo de uma aplicaccedilatildeo Android
                        • JSON
                        • Google APIs
                        • Localizaccedilatildeo do Usuaacuterio
                        • Controle de Versatildeo
                        • Banco de dados
                          • Firebase
                            • Crowdsourcing
                              • Desenvolvimento do Projeto
                                • Pesquisa de Mercado
                                  • Pesquisa com o usuaacuterio
                                    • Projeto do Aplicativo
                                    • Aplicaccedilatildeo dos meacutetodos de caacutelculo de espera
                                      • Aplicando a meacutedia por periacuteodo
                                      • Aplicando teoria das filas
                                      • Aplicando redes neurais
                                      • Conclusatildeo sobre os meacutetodos estudados
                                        • Definiccedilatildeo da Interface do aplicativo
                                        • Explicaccedilatildeo das funcionalidades
                                        • Implementaccedilatildeo do banco de dados
                                          • Conclusatildeo
                                          • Dados coletados
                                          • Referecircncias Bibliograacuteficas

22 METODOLOGIA AacuteGIL 5

∙ Natildeo Estruturadas Questotildees de resposta aberta Exemplo

O que vocecirc costuma fazer para evitar filas

∙ Parcialmente Estruturadas Questotildees mistas Exemplo

Qual meio de transporte vocecirc usa

( )Carro

( )Moto

( )Outros______

22 Metodologia AacutegilA metodologia aacutegil tem sido adotada pelas empresas hoje em dia por conta dos melhores

resultados obtidos em relaccedilatildeo agraves metodologias tradicionais[23] Essa eacute caracterizada pelavalorizaccedilatildeo de

∙ ldquoIndiviacuteduos e interaccedilotildees mais que processos e ferramentasrdquo

∙ ldquoSoftware em funcionamento mais que documentaccedilatildeo abrangenterdquo

∙ ldquoColaboraccedilatildeo com o cliente mais que negociaccedilatildeo de contratosrdquo

∙ ldquoResponder a mudanccedilas mais que seguir um planordquo [12]

Eacute uma metodologia que envolve trabalho em equipe encontros regulares com o clientedesenvolvimento iterativo e com menos foco em planejamento estrito e ideias definitivasdiferente de metodologias mais tradicionais que satildeo mais focadas em projetos bem docu-mentados com pouca possibilidade de mudanccedila ao final do processo Decidiu-se por utilizara metodologia aacutegil neste projeto pois natildeo haviam ideias completamente definidas inicial-mente e para o grupo a opiniatildeo do puacuteblico alvo sobre o produto era fundamental em cadaiteraccedilatildeo do processo podendo haver mudanccedilas inesperadas dependendo do feedback recebido

Dentre as opccedilotildees de metodologias aacutegeis O meacutetodo Scrum[16] eacute um que eacute definido comoum gerenciador e um processo de controle que foca em construir um software que conheceas necessidades do negoacutecio devolvendo incrementalmente um software

Com o Scrum o software eacute desenvolvido em iteraccedilotildees de tamanho fixo chamadas deSprints que tem duraccedilatildeo de tipicamente duas a quatro semanas Em cada Sprint um nuacutemerofixo de histoacuterias (que se traduzem em tarefas) satildeo selecionadas pelo grupo para seremutilizadas na sprint(figura 22) Haacute tambeacutem um sistema de motivaccedilatildeo para o time como osMilestones que satildeo objetivos menores distribuiacutedos por toda a sprint ajudando na mediccedilatildeode desemprenho da equipe e graacuteficos Burndown que mostram o progresso de cada iteraccedilatildeopara que o time sinta o progresso no desenvolvimento

6 ESTUDOS PRELIMINARES 23

Figura 22 Dinacircmica do Scrum

Para controle das iteraccedilotildees foi utilizado o software Trello [21] que eacute um gerenciador detarefas de projeto (figura 23)

Figura 23 Interface do Trello - durante o processo de desenvolvimento

23 Jobs to be donePara implementar o aplicativo buscou-se uma metodologia para guiar esse processo desde

sua criaccedilatildeo ateacute sua validaccedilatildeo Duas metodologias conhecidas pelo grupo foram analisadas eestudadas Jobs To Be Done e Personas and Use Cases

Segundo Alan Klement[29] Personas satildeo clientes imaginaacuterios descritos pela idade sexoraccedila e haacutebitos semanais O uso delas natildeo eacute adequado para responder perguntas como ldquoPorqueo cliente quer saber o tamanho da filardquo pois quando a resposta eacute ldquoEle estaacute com pressa paracomerrdquo natildeo fica claro quais satildeo as reais necessidades do usuaacuterio Essa descriccedilatildeo tambeacutem natildeoeacute uacutetil no desenvolvimento de uma boa interface pois natildeo ajuda na hora de responder se umcerto botatildeo realmente deixa claro sua funcionalidade

23 JOBS TO BE DONE 7

Tambeacutem segundo Alan Klement Use Cases possuem 3 grandes problemas usam perso-nas casam implementaccedilotildees motivaccedilotildees e resultado e ignoram contexto situaccedilotildees e ansie-dades

Se uma funcionalidade definida por uma Use Case falhar seraacute difiacutecil identificar o pro-blema pois por casar informaccedilotildees diferentes surgiraacute a dificuldade de saber o que estaacute erradoa implementaccedilatildeo as suposiccedilotildees sobre as motivaccedilotildees ou os resultados

Observando-se esses fatos optou-se pelo uso da metodologia Jobs to Be Done pois haacuteuma mudanccedila na forma de fazer histoacuterias a fim de evitar os problemas observados em Per-sonas e Use Cases(Figura 24) Nesse modelo as Personas satildeo pessoas reais e as histoacuterias satildeoescritas com a seguinte divisatildeo situaccedilatildeo motivaccedilatildeo e resultados esperados

Nessa metodologia criamos histoacuterias descrevendo tarefas para que os usuaacuterios se colo-quem na situaccedilatildeo descrita Observando-os eacute possiacutevel saber se a tarefa foi realizada de formabem sucedida e caso contraacuterio identificar onde e o que estaacute causando a falha no instanteda realizaccedilatildeo dela

Figura 24 Diferenccedila entre estruturas de histoacuterias

8 ESTUDOS PRELIMINARES 24

Algumas das histoacuterias criadas para os testes de interface do grupo foram

∙ Quando eu estiver na tela de lista de restaurantes eu quero acessar a tela de detalhesdo restaurante que eu desejo saber o tempo de espera entatildeo eu posso ver com clarezaas informaccedilotildees e posso traccedilar uma rota para o estabelecimento

∙ Quando eu estiver na tela principal eu quero enviar meu feedback sobre o tempo deespera no estabelecimento que estou entatildeo eu posso ajudar outros usuaacuterios por meiodo aplicativo

24 Caacutelculo da previsatildeo do tempo de espera na filaAtraveacutes de pesquisas em busca de meacutetodos estatiacutesticos para se estudar o comportamento

das filas foram encontradas as trecircs metodologias descritas nesta seccedilatildeo Este capiacutetulo conteacutema explicitaccedilatildeo do problema estudado e suas possiacuteveis soluccedilotildees

241 Descriccedilatildeo do problema

Para que se chegasse a uma soluccedilatildeo apropriada o problema de espera em fila precisouser estudado Esse problema pode ser descrito da seguinte forma dado um restaurante aentrada nesse eacute atraveacutes de uma fila Essa fila tem seu tamanho redefinido agrave medida quenovos clientes chegam e saem dela A saiacuteda dos clientes pode ser devido a desistecircncia ou aacomodaccedilatildeo deles nas mesas A entrada eacute definida pela disponibilizaccedilatildeo de lugares livres agravemedida em que os grupos que estavam alocados terminam seu atendimento

Figura 25 Esquema simplificado do funcionamento do processo em um restaurante

A fila de espera eacute influenciada por dois fatores a taxa de chegada do cliente e a taxa deatendimento nas mesas

∙ chegada em restaurantes a chegada de clientes eacute definida por uma taxa O clienteneste caso representa um grupo com tamanho variaacutevel A distribuiccedilatildeo do tamanho dogrupo nas chegadas eacute variaacutevel

∙ O atendimento a alocaccedilatildeo do grupo eacute organizada pela recepccedilatildeo O meacutetodo utilizadopor eles natildeo eacute padronizado e muitas vezes eacute completamente subjetivo Por exemplose acontecer de um grupo grande e vaacuterios casais chegarem ao mesmo tempo e nesse

24 CAacuteLCULO DA PREVISAtildeO DO TEMPO DE ESPERA NA FILA 9

momento existir um espaccedilo no salatildeo que acomode o grupo (juntando as mesas) outodos os casais (com as mesas separadas) dependendo de quem estaacute responsaacutevel poralocaacute-los cada um receberaacute uma prioridade diferente e essa decisatildeo natildeo eacute padronizada

∙ A disposiccedilatildeo das mesas a disposiccedilatildeo e quantidade de mesas natildeo satildeo padronizadasentre restaurantes de uma mesma rede muito menos entre restaurantes diferentesAleacutem disso a formataccedilatildeo do salatildeo pode ser remodelada de acordo com a necessidadede alocaccedilatildeo dos clientes haacute gerentes que evitam essa movimentaccedilatildeo ou ateacute mesmorestaurantes que natildeo tecircm essa possibilidade

242 Meacutetodos de caacutelculo da espera

Com o problema desenhado desta maneira esboccedilou-se trecircs possiacuteveis meacutetodos de resoluccedilatildeoe um desses foi aplicado na soluccedilatildeo final Os meacutetodos desenvolvidos satildeo meacutedia por periacuteodoaplicaccedilatildeo da teoria das filas e utilizaccedilatildeo de redes neurais Essas teacutecnicas precisam de dadospara serem desenvolvidas e aplicadas Por conta disso buscou-se fontes que suprissem essanecessidade

Captaccedilatildeo dos dados para a anaacutelise

Para que seja possiacutevel aplicar os meacutetodos estudados eacute necessaacuterio obter dados para aplicarna anaacutelise Estes foram obtidos de duas formas a partir de uma parceria com a empresa GetIn [7] desenvolvedora de um aplicativo de gerenciamento de filas de restaurantes e atraveacutesde pesquisas presenciais em restaurantes da rede Outback Steakhouse[14] selecionados para oestudo(Apecircndice A) O aplicativo da Get In possui uma funcionalidade principal realizaccedilatildeode uma reserva em um determinado restaurante O banco de dados manteacutem o registro detodos os usuaacuterios que entram na fila e esses dados satildeo organizados em uma tabela com osseguintes campos

∙ Origem Se a reserva foi realizada de forma remota ou presencial Assim

1 Reserva presencial (na entrada do restaurante incluiacuteda pela recepcionista)

2 Reserva remota (realizada atraveacutes do aplicativo)

∙ Entrada este consiste na data e hora que o usuaacuterio entrou na fila

∙ Qtd Pessoas tamanho do grupo para o qual a reserva foi feita

∙ Prioritaacuterio se este grupo requer atendimento prioritaacuterio

0 Natildeo

1 Sim

∙ Notificado A data e horaacuterio em que o grupo foi notificado que sua mesa estava pronta

ndash Quando NULL a recepcionista natildeo notificou essa pessoa (possivelmente chamoudiretamente pelo nome)

∙ Tempo na Espera Tempo que o grupo ficou ativo na fila de espera (em segundos)

∙ Status Qual a situaccedilatildeo da reserva do grupo Podendo assumir tais valores

0 Cancelado pela recepcionista

10 ESTUDOS PRELIMINARES 24

2 Sentado

3 Cancelado pelo proacuteprio Usuaacuterio

Para melhor entender estes paracircmetros o funcionamento do aplicativo deve ser expli-cado com maior detalhamento O processo de reserva funciona da seguinte forma o usuaacuterioreserva seu lugar atraveacutes do aplicativo ou vai ao restaurante e a recepcionista o adiciona agraveespera No primeiro caso o usuaacuterio tem um tempo de toleracircncia para chegar ao estabeleci-mento apoacutes receber a notificaccedilatildeo caso natildeo consiga chegar a tempo a reserva eacute cancelada Nosegundo caso quando o grupo a ser chamado estaacute proacuteximo da recepccedilatildeo a funcionalidade denotificaccedilatildeo natildeo precisa ser usada o responsaacutevel pode se direcionar diretamente aos clientes echamaacute-los pelo nome Mesmo nesse segundo caso o tempo de espera na fila ainda eacute guardadopois a recepccedilatildeo precisa ldquofecharrdquo a espera do grupo para chamar o proacuteximo

Poreacutem a utilizaccedilatildeo desses dados natildeo foi liberada pela empresa Get In para serem usadoscomo banco de dados do aplicativo somente foram fornecidos dados do mecircs de agosto esetembro de 2016 para que fossem utilizados nas anaacutelises feitas com os modelos estatiacutesticosPara obter dados que poderiam ser utilizados no banco de dados do aplicativo foi neces-saacuterio uma pesquisa presencial onde o grupo visitou alguns restaurantes da rede OutbackSteakhouse para obter informaccedilotildees sobre o tempo de espera nestes estabelecimentos

Foram visitados 5 restaurantes Outback Steakhouse Shopping Eldorado Outback Ste-akhouse Shopping Villa Lobos Outback Steakhouse Shopping Granja Vianna Outback Ste-akhouse Shopping Uniatildeo de Osasco e Outback Steakhouse Shopping Market Place ondequestionamos sobre o tempo de espera por tamanho de grupos (em nuacutemero de pessoas) epor horaacuterio e dia da semana

Ao analisar os dados coletados pela pesquisa presencial notamos que estes estavam sus-cetiacuteveis a erros por terem sido obtidos por meio de diferentes observaccedilotildees humanas Ummeacutetodo para obter dados mais precisos consistiria na realizaccedilatildeo de novas pesquisas no for-mato mediccedilatildeo onde cada integrante do grupo deveria coletar o tempo de espera de cadacliente atraveacutes de um cronocircmetro e calcular o tempo de espera meacutedio nesse horaacuterio Comoo grupo natildeo conseguiria aplicar este meacutetodo optou-se por melhorar a precisatildeo dos dadoscoletados usando como base o graacutefico de horaacuterios de pico disponibilizado pela Google paracada restaurante Essa melhora foi feita utilizando-se caacutelculos de proporccedilatildeo de valores

24 CAacuteLCULO DA PREVISAtildeO DO TEMPO DE ESPERA NA FILA 11

Primeiro meacutetodo Meacutedia por periacuteodo

Figura 26 Esquema do meacutetodo meacutedia por periacuteodo

Para que uma previsatildeo de espera possa ser fornecida ao usuaacuterio essa deve basear-seobrigatoriamente em alguma informaccedilatildeo preacutevia Contudo encontrar uma fonte para taisdados se mostrou uma tarefa muito complicada Para conseguir ainda assim apresentar umtempo de espera em fila meacutetodos de anaacutelise foram definidos de acordo com a quantidade dedados disponiacutevel para cada estabelecimento

De um modo geral neste modelo o caacutelculo do tempo de espera funcionaraacute da seguinteforma calcular-se-aacute a meacutedia de espera para o dia da semana e horaacuterio requeridos pelousuaacuterio sem diferenciar feriados de dias normais Dependendo de quatildeo longo eacute o histoacutericoniacuteveis de especificidade podem ser adicionados ou seja numa busca tempo de espera em 9de Dezembro (segunda-feira) agraves 19h no restaurante X a query selecionaraacute todos os registrosfeitos no dia 9 de dezembro entre as 19h e agraves 20h dos uacuteltimos anos no restaurante X e realizaraacuteessa meacutedia ou pode selecionar apenas linhas de todas as segundas-feiras do mecircs de Dezembrodeste mesmo periacuteodo

∙ Muitos dados neste caso um maior niacutevel de especificidade pode ser aplicado sem autilizaccedilatildeo de outras fontes para complementar o banco de dados

∙ Alguns dados o niacutevel de especificidade eacute bem menor apenas filtrando por dia dasemana e intervalo de hora sem mecircs ou dia especiacutefico no ano Em alguns casos aquantidade de dados eacute tatildeo pequena que deve-se recorrer a outras fontes A Googletem disponibilizado graacuteficos com a distribuiccedilatildeo dos clientes nos horaacuterios de funciona-mento de estabelecimentos Esses dados natildeo estatildeo disponiacuteveis em sua API ou seja natildeo

12 ESTUDOS PRELIMINARES 24

haacute uma forma automaacutetica para que o aproveitamento desses possa ser feito Poreacutemmesmo omitindo-se os valores do graacutefico o perfil da distribuiccedilatildeo e o horaacuterio de picosatildeo aproveitados manualmente para nosso sistema

∙ Poucos dados para este caso fizemos o balanceamento dos dados da Google comas informaccedilotildees retiradas das entrevistas Aleacutem do aproveitamento das informaccedilotildees daGoogle foram realizadas pesquisas com funcionaacuterios dos restaurantes

Segundo meacutetodo Teoria das filas

Filas podem ser vistas como um sistema dinacircmico no qual existe um conjunto de usuaacuteriosque satildeo atendidos por um conjunto de atendentes de acordo com a ordem de chegada dosusuaacuterios A teoria de filas busca utilizando anaacutelises matemaacuteticas estudar o comportamentodestas filas para estimar o tempo de espera com base em um conjunto inicial de dadospreviamente fornecido[30]

Um sistema de filas possui como caracteriacutesticas

∙ Modelo de chegada dos usuaacuterios Utiliza como base o tempo entre as chegadasdos usuaacuterios

∙ Modelo de serviccedilo (atendimento aos usuaacuterios) Utiliza como base o tempo gastono atendimento ao usuaacuterio No caso dos restaurantes equivale ao tempo que um grupopassa na mesa ateacute a sua saiacuteda

∙ Nuacutemero de servidores Eacute o nuacutemero de atendentes disponiacuteveis no sistema Para omodelo do restaurante este equivale agraves mesas disponiacuteveis no salatildeo

∙ Capacidade do sistema Eacute o nuacutemero de usuaacuterios que o sistema eacute capaz de atenderInclui o nuacutemero de usuaacuterios que estatildeo sendo atendidos somado com os que esperamna fila Se este paracircmetro natildeo for informado o sistema eacute considerado com capacidadeilimitada

∙ Tamanho da populaccedilatildeo nuacutemero potencial de clientes que podem chegar a umsistema Pode ser finito ou infinito

∙ Disciplina da fila A disciplina da fila pode ser FIFO (first in first out) - o primeiroa chegar eacute o primeiro a ser atendido LIFO (last in first out) - o uacuteltimo a chegar eacuteo primeiro a ser atendido ALEATOacuteRIO - os atendimentos satildeo feitos sem qualquerpreocupaccedilatildeo com a ordem de chegada COM PRIORIDADE - os atendimentos satildeofeitos de acordo com prioridades estabelecidas No caso dos restaurantes a disciplinaadotada eacute a FIFO poreacutem esta pode mudar de acordo com o atendente responsaacutevel

Os tempos mencionados nos modelos de chegada e de serviccedilo podem ser constantesquando os intervalos entre as chegadas dos usuaacuterios satildeo iguais ou variaacuteveis quando os valo-res desses intervalos variam Nesse uacuteltimo caso o intervalo de tempo segue uma distribuiccedilatildeode probabilidades Nesse modelo tambeacutem existe a taxa meacutedia de chegada dos usuaacuterios porunidade de tempo ou seja quantos usuaacuterios chegam em uma hora

As filas podem ser moldadas em trecircs situaccedilotildees baacutesicas como descrito por Azmat Nafees[30]

∙ Modelo de fila de canal uacutenico com fila uacutenica e atendimento uacutenico (Figura 27)

24 CAacuteLCULO DA PREVISAtildeO DO TEMPO DE ESPERA NA FILA 13

∙ Modelo de fila de canal uacutenico com fila uacutenica e muacuteltiplos atendimentos paralelos (Fi-gura 28)

∙ Modelo de fila de canal uacutenico com muacuteltiplas filas e muacuteltiplos atendimentos paralelos(Figura 29)

Figura 27 Modelo de fila de canal uacutenico com fila uacutenica e atendimento uacutenico

Figura 28 Modelo de fila de canal uacutenico com fila uacutenica e muacuteltiplos atendimentos paralelos

Figura 29 Modelo de fila de canal uacutenico com muacuteltiplas filas e muacuteltiplos atendimentos paralelos

Tambeacutem por Azmat Nafees nesses modelos trecircs subprocessos podem ser vistos

∙ Processo de chegada Eacute um processo contiacutenuo do evento ldquochegada de clientesrdquo ouseja quando o evento ocorre o processo aguarda a ocorrecircncia do proacuteximo evento Esseevento coloca um cliente na fila quando ele chega

14 ESTUDOS PRELIMINARES 24

∙ Processo de espera Eacute um processo que inclui o evento ldquocomece a servir o proacuteximocliente da filardquo que retira um cliente da fila o coloca no processo de atendimento eespera a conclusatildeo do evento ldquocliente servidordquo para recomeccedilar Nele se trabalha comtamanho e disciplina da fila

∙ Processo de atendimento Eacute um processo que inclui o evento ldquocliente servidordquo eespera a conclusatildeo do evento ldquocomece a servir o proacuteximo cliente da filardquo para recomeccedilarNele se trabalha com tipo taxa e tempo de atendimento

Dentre esses 3 modelos o que mais se encaixa na situaccedilatildeo de um restaurante eacute o segundomodelo canal uacutenico com fila uacutenica e muacuteltiplos atendimentos paralelos O processo de chegadade novos clientes na fila eacute tido como aleatoacuterio

Terceiro meacutetodo Rede Neural

Rede Neural eacute uma teacutecnica computacional inspirada no sistema nervoso que com o auxiacute-lio de um modelo matemaacutetico apresenta respostas para problemas de decisatildeo Esses modelosfuncionam da seguinte forma primeiro um conjunto de dados (conjunto de treinamento) eacuteapresentado ao sistema e este aprende com ele atraveacutes de reconhecimento de padratildeo entatildeocoloca-se o sistema para analisar os dados (conjunto de teste) para os quais deseja-se obteralgum resultado Este processo eacute chamado de aprendizagem de maacutequina Quanto melhor forseu treinamento mais precisas seratildeo as respostas para o segundo conjunto

Uma rede neural eacute formada por subestruturas chamadas neurocircnios Um neurocircnio tem oseguinte funcionamento ele recebe como entrada sinais cada sinal recebe um peso de acordocom a influecircncia dele na saiacuteda e uma soma eacute feita para produzir o niacutevel de atividade entatildeodependendo se o niacutevel de atividade exceder o limite dado pela funccedilatildeo de transferecircncia aresposta eacute produzida[27]

Software Multiple Back-Propagation

Para implementar a soluccedilatildeo baseada em redes neurais foi usado o Software MultipleBack-Propagation [1] Este eacute um software de faacutecil utilizaccedilatildeo que fornece uma rede a qualaprende atraveacutes do processo de propagaccedilatildeo inversa Esse meacutetodo baseia-se na comparaccedilatildeodos dados esperados (conjunto de teste) com os dados obtidos a partir do treinamento senecessaacuterio adaptaccedilotildees satildeo feitas a estrutura da rede para melhor aproximar aos dados doconjunto teste e isso eacute chamado de propagaccedilatildeo inversa

Por se tratar de um meacutetodo de aprendizagem de maacutequinas para se obter um resultadodeve-se treinar o algoritmo Primeiramente submete-se o conjunto de treinamento ao soft-ware para isso foi escolhido o mecircs de Agosto O criteacuterio de parada para o treino eacute o erroquadraacutetico meacutedio o qual teve seu valor atribuiacutedo para 001

Capiacutetulo 3

Tecnologias utilizadas

31 O sistema AndroidAndroid eacute um Sistema operacional open source (software de coacutedigo aberto o qual as

pessoas podem acessar e modificar para contribuir com o projeto [25]) e para dispositivosmoacuteveis desenvolvido pela Google baseado no Kernel do Linux e utilizado principalmente emdispositivos touchscreen Atualmente o Android eacute o sistema operacional que deteacutem a maiorparcela do mercado[17] com 836 dos dispositivos contra 134 do iOS da Apple

A Google tambeacutem oferece um ambiente de desenvolvimento para a plataforma Androidchamado Android Studio no qual os aplicativos satildeo criados e exportados para os dispositi-vos moacuteveis Aplicativos Android satildeo programados na linguagem Java com vaacuterias bibliotecasdisponibilizadas pela Google para suporte ao sistema operacional

A escolha da plataforma foi feita principalmente por conta de o sistema possuir a maiorparte dos usuaacuterios de Smartphones e tambeacutem pela ampla comunidade ativa de desenvolve-dores agrave qual se pode recorrer em casos de duacutevidas e problemas tornando suas resoluccedilotildeesmais raacutepidas e com muacuteltiplas alternativas Outros motivos que contribuiacuteram para a escolhado Android foram

∙ A disponibilidade do ambiente de desenvolvimento Android Studio que possui todosos recursos necessaacuterios para desenvolver um aplicativo funcional logo apoacutes a instalaccedilatildeosem a necessidade de utilizar outras dependecircncias as quais satildeo gerenciadas automati-camente pelo proacuteprio software

∙ O fato de no mercado brasileiro o sistema Android se encontrar em 918 dos dispo-sitivos segundo pesquisa da Kantar[18] e dado a pesquisa realizada para definiccedilatildeo depuacuteblico alvo onde foi possiacutevel perceber que 639 dos entrevistados utilizam smartpho-nes com sistema Android

∙ A utilizaccedilatildeo da linguagem de programaccedilatildeo Java para desenvolvimento que jaacute eraconhecida e fora utilizada anteriormente ao contraacuterio das linguagens Objective C eSwift linguagens utilizadas para desenvolver aplicativos para o sistema iOS Assimcomo a disponibilidade de dispositivos por parte do grupo que em sua maioria era decelulares com o sistema Android

15

16 TECNOLOGIAS UTILIZADAS 31

Figura 31 Parcela de mercado dos dispositivos no Brasil

311 Organizaccedilatildeo de uma aplicaccedilatildeo Android

Aplicativos Android satildeo divididos em componentes Haacute quatro tipos de componentespresentes Activities (ou atividades) Services (ou serviccedilos) Content providers (ou provedoresde conteuacutedo) Broadcast receivers (ou receptores de transmissatildeo)

∙ Activities Satildeo as telas e interfaces do usuaacuterio Cada tela de uma aplicaccedilatildeo eacute repre-sentada por uma activity e cada activity eacute independente de outras apesar de seremcomponentes de uma mesma aplicaccedilatildeo Isso se daacute pelo fato de haver a possibilidade deutilizar activities de aplicativos durante a execuccedilatildeo de outros Atividades satildeo iniciadase se comunicam entre si atraveacutes de objetos chamados Intent que transferem um pacotede dados que pode ser carregado no iniacutecio da nova atividade

∙ Services Sempre satildeo executados em segundo plano sem interferir na experiecircncia dousuaacuterio geralmente para realizar operaccedilotildees longas ou realizar operaccedilotildees de troca dedados enquanto o usuaacuterio estaacute utilizando outra aplicaccedilatildeo em primeiro plano

∙ Content Providers Satildeo gerenciadores de dados de aplicaccedilotildees Android utilizadospara ler e salvar dados compartilhados ou secretos dos aplicativos e do sistema

∙ Broadcast Receivers Satildeo componentes responsaacuteveis por obter eventos que aconte-ceram em outras aplicaccedilotildees ou no sistema e direcionar dados sobre esses eventos paraeventuais aplicaccedilotildees que necessitem destes dados alguns exemplos de eventos obtidospelos receptores de transmissatildeo satildeo tela desligada e bateria fraca

Aleacutem dos componentes uma parte importante de uma aplicaccedilatildeo Android eacute o ArquivoManifest que eacute uma declaraccedilatildeo de permissotildees serviccedilos e exigecircncias de hardware necessaacuterios

33 JSON 17

para o funcionamento do aplicativo Outra funccedilatildeo eacute possuir declaraccedilotildees de todos os compo-nentes utilizados no projeto nomes iacutecones entre outros

As interfaces de usuaacuterio do Android satildeo definidas em arquivos XML (eXtensible MarkupLanguage)[26] nos quais estatildeo declarados todos os layouts e configuraccedilotildees das telas Essesarquivos de layout satildeo depois inflados e satildeo gerados os componentes visuais da aplicaccedilatildeoEssa estrutura tem como objetivo facilitar o design da interface do usuaacuterio jaacute que arquivosxml satildeo de faacutecil compreensatildeo do desenvolvedor

32 JSONJSON ou Javascript Object Notation eacute um formato de dados amplamente utilizado para

troca de informaccedilotildees entre programas Possui uma notaccedilatildeo simples para grande parte dosprogramadores pois se assemelha a convenccedilotildees utilizadas em linguagens de programaccedilatildeomuito conhecidas como C C++ Python e Java O objetivo eacute que ele seja de faacutecil entendi-mento tanto para pessoas como para maacutequinas[11]

Um arquivo JSON eacute organizado como um objeto contendo pares nomevalorseparadospor viacutergulas e dentro de chaves(lsquolsquo rsquorsquo) ou como um array que eacute uma lista de valores separa-dos por viacutergulas e entre colchetes(lsquo[lsquo rsquo]rsquo) Um valor por sua vez pode ser um objeto ou umarray mas tambeacutem um nuacutemero inteiro ou uma String entre outros

Um exemplo de arquivo JSON eacute

1 2 Carros [3 4 Nome Scen ic 5 Marca Renault 6 Ano 20127 8 9 Nome Sentra

10 Marca Nissan 11 Ano 200912 13 ]14

33 Google APIsAPIs (Application Program Interfaces) satildeo interfaces para facilitar a troca de informa-

ccedilotildees entre aplicaccedilotildees utilizando comandos especiacuteficos[15]

Ao longo do desenvolvimento algumas APIs fornecidas pela Google foram utilizadascomo fonte de informaccedilotildees adicionais para o aplicativo

∙ Google Maps Distance Matrix API Esta API eacute utilizada para obter o tempo emsegundos de trajeto entre dois pontos (latlong) no mapa podem ser consultados ostempos de trajeto de carro bicicleta a peacute e utilizando transporte puacuteblico[28] Esta eacute

18 TECNOLOGIAS UTILIZADAS 35

uma API web logo utiliza-se um request http para realizar uma consulta

Por exemplo o request

httpsmapsgoogleapiscommapsapidistancematrixjsonorigins=Seattleampdestinations=Victoria+BCampkey=[user_key]

retorna o JSON

1 2 des t ina t i on_addre s s e s [ Vic tor ia BC Canada ] 3 o r i g in_addre s s e s [ Sea t t l e WA EUA ] 4 rows [5 6 e lements [7 8 d i s t anc e 9 text 172 km

10 value 17166811 12 durat ion 13 text 4 horas 40 minutos 14 value 1680915 16 s t a tu s OK17 18 ]19 20 ] 21 s t a tu s OK22

no qual eacute possiacutevel obter o tempo de trajeto em segundos

∙ Google Maps Android API Esta API eacute utilizada para habilitar o uso de mapasda Google integrados agrave aplicaccedilatildeo jaacute disponiacutevel com todas as funcionalidades de zoome arrastar presentes no aplicativo nativo permitindo tambeacutem a personalizaccedilatildeo comoa adiccedilatildeo de pontos definidos pelo usuaacuterio ao mapa

34 Localizaccedilatildeo do UsuaacuterioOutro serviccedilo que foi utilizado com o intuito de obter o tempo de trajeto e a lista ordenada

de forma personalizada de restaurantes foi a localizaccedilatildeo do usuaacuterio que eacute obtida atraveacutes doGPS presente nos smartphones Um objeto de localizaccedilatildeo eacute criado e realiza a comunicaccedilatildeocom o serviccedilo de localizaccedilatildeo do aparelho Ao obter a localizaccedilatildeo ele lanccedila um evento quepode ser acessado por outras partes da aplicaccedilatildeo obtendo a localizaccedilatildeo mais atualizada dodispositivo

36 CONTROLE DE VERSAtildeO 19

35 Controle de VersatildeoControle de versatildeo eacute uma praacutetica usada para manter a organizaccedilatildeo do coacutedigo e do seu de-

senvolvimento quando muitos desenvolvedores colaboram conjuntamente Existem softwaresque auxiliam essa organizaccedilatildeo registrando todas as mudanccedilas feitas ao longo do processo eque possui recursos que permitem que vaacuterios usuaacuterios trabalhem nos mesmos arquivos semperda de informaccedilotildees

No caso do Git [8] o projeto fica organizado em uma estrutura de aacutervore onde cadacommit (checkpoints criados pelos membros do grupo durante o processo) eacute marcado porum noacute para onde se pode retornar quando necessaacuterio Existem tambeacutem estruturas chama-das branches que satildeo bifurcaccedilotildees na estrutura para que partes do projeto sejam criadasseparadamente sem interferir com a linha principal As branches depois satildeo unidas agrave linhaprincipal atraveacutes do comando merge

Neste projeto o serviccedilo de controle de versatildeo utilizado foi o Bitbucket [2] (que eacute um ser-viccedilo web-based de controle de versatildeo que utiliza Git) com auxiacutelio do software SourceTree[19]que eacute uma interface graacutefica para os serviccedilos do Bitbucket onde eacute possiacutevel visualizar com maisfacilidade as fases do desenvolvimento do projeto e realizar os comandos mais intuitivamente

Figura 32 Interface do SourceTree que mostra o controle de versionamento do projeto

36 Banco de dadosCom o intuito de deixar o aplicativo mais completo guardando informaccedilotildees dos usuaacuterios

e dos estabelecimentos optou-se por utilizar-se um banco de dados Alguns exemplos de

20 TECNOLOGIAS UTILIZADAS 36

banco de dados aprendidos no curso Laboratoacuterio de Banco de Dados foram

∙ SQL (Structured Query Language - Linguagem de Consulta Estruturada)[20] umalinguagem para atualizar deletar e requisitar informaccedilotildees atraveacutes de consultas emtabelas que possuem relaccedilatildeo entre si

∙ noSQL[13] um banco de dados que armazena e recupera informaccedilotildees modeladas deuma forma onde natildeo satildeo usadas tabelas relacionais

Como este uacuteltimo natildeo foi o foco da disciplina por falta de tempo decidiu-se por utilizaacute-lopara que o grupo pudesse aprender melhor esse modelo

Outra decisatildeo tomada foi a hospedagem dos dados na nuvem ou seja colocaacute-los em umservidor que natildeo seja local e conseguir acessaacute-los atraveacutes de uma conexatildeo via internet Dessemodo os dados sempre estaratildeo disponiacuteveis para serem consultados

361 Firebase

Buscando-se atender as decisotildees tomadas sobre o banco de dados procuramos um serviccedilode banco de dados da Google por conter ampla integraccedilatildeo com a plataforma de desenvolvi-mento Android por ser conhecido bastante utilizado e por possuir uma ampla comunidadede desenvolvedores dispostos a oferecer auxiacutelio em foacuteruns de discussatildeo de coacutedigos

Para atender esses requisitos escolheu-se o Firebase Realtime Database[6] desenvolvido edisponibilizado pela Google que consiste em um banco de dados noSQL com armazenamentona nuvem Esse serviccedilo armazena os dados do usuaacuterio no servidor da Google em formatoJSON e a cada alteraccedilatildeo sincroniza em tempo real com todos os clientes conectados

O grupo pode observar as seguintes vantagens de se trabalhar com a ferramenta existea sincronizaccedilatildeo em tempo real dos dados de todos os clientes e sua disponibilidade mesmocom o aplicativo offline ou seja quando o aplicativo natildeo estiver conectado a internet osdados do dispositivo moacutevel seratildeo armazenados e sincronizados com o banco de dados assimque a conexatildeo estiver disponiacutevel novamente Aleacutem disso os desenvolvedores possuem acessoa um console online (figura 33) onde o JSON eacute mostrado numa interface interativa de umaforma mais amigaacutevel e no qual eacute permitido editaacute-lo facilmente

37 CROWDSOURCING 21

Figura 33 Console online do Firebase onde os dados satildeo mostrados de forma mais amigaacutevel eintuitiva

Outra observaccedilatildeo feita foi que o Firebase Realtime Database funciona como o esperadose ele guardar uma coacutepia local dos dados em um arquivo JSON no celular Poreacutem isso natildeofoi visto como um problema pois como essa coacutepia pode ser salva em um arquivo texto oespaccedilo utilizado diminui consideravelmente

Na primeira vez que os dados satildeo criados e todas as vezes em que os dados forem atua-lizados por algum dispositivo moacutevel eacute enviada uma atualizaccedilatildeo que seraacute recebida atraveacutes delisteners por todos os aparelhos que utilizam o aplicativo para que eles atualizem seus res-pectivos JSONs Listeners satildeo interfaces de comunicaccedilatildeo que executam uma seacuterie de accedilotildeesassim que um outro evento esperado acontece

37 CrowdsourcingO termo Crowdsourcing tem origem nas palavras da liacutengua inglesa Crowd (multidatildeo) e

Outsourcing (terceirizaccedilatildeo) e eacute definido pelo dicionaacuterio Merriam Webster como A praacuteticade obtenccedilatildeo de serviccedilos ideias ou conteuacutedo solicitando contribuiccedilotildees de grandes grupos depessoas e especialmente da comunidade online [3] Esta praacutetica eacute utilizada para que sejapossiacutevel agrave comunidade contribuir com dados para algum programa ou serviccedilo como no apli-cativo Waze do qual a principal fonte de dados de tracircnsito acidentes e radares eacute obtida pormeio dos proacuteprios usuaacuterios

Capiacutetulo 4

Desenvolvimento do Projeto

Este capiacutetulo aborda o processo de desenvolvimento do projeto iniciado com o preen-chimento do diagrama Canvas e uma pesquisa de mercado direcionada ao usuaacuterio A partirdas informaccedilotildees coletadas foi possiacutevel projetar um aplicativo que atendesse as necessidadesexpostas pela pesquisa e selecionar as tecnologias necessaacuterias Tambeacutem eacute abordada a aplica-ccedilatildeo dos diferentes meacutetodos de caacutelculo da previsatildeo de tempo de espera que foram estudadose explicados no Capiacutetulo 2 Por fim satildeo expostas as diferentes versotildees do aplicativo duranteo processo e seus detalhes

41 Pesquisa de MercadoAntes de iniciar-se o desenvolvimento praacutetico algumas questotildees foram levantadas se

um aplicativo com as funcionalidades escolhidas seria de alguma forma uacutetil para o usuaacuterioe se sim qual metodologia deveria ser usada para que este produto fosse entregue o maiscompleto possiacutevel ateacute o final do ano Para responder a primeira pergunta desenvolveu-seum questionaacuterio

411 Pesquisa com o usuaacuterio

O questionaacuterio foi desenvolvido para avaliar a viabilidade do aplicativo e suas funciona-lidades e foi criado utilizando-se o Google Forms [9] Essa eacute uma ferramenta desenvolvidapelo Google que possibilita a criaccedilatildeo de formulaacuterios contendo diversos formatos de pergun-tas tanto dissertativas quanto de muacuteltipla escolha

Seguindo os princiacutepios de desenvolvimento de questionaacuterios [4] o conjunto de perguntasfoi mantido curto simples e de faacutecil entendimento Tambeacutem variou-se o tipo de questotildeesentre estruturadas (questotildees com respostas em forma de alternativas) e desestruturadas(questotildees com respostas em formato texto) seguindo esses mesmos princiacutepios para captarmelhor as informaccedilotildees dos entrevistados e evitar erros de entendimento

Com as respostas do questionaacuterio tinha-se o intuito de traccedilar um possiacutevel puacuteblico alvoconhecer seu modo de uso de dispositivos moacuteveis e validar a aplicabilidade de diferentesfuncionalidades pretendidas inicialmente sendo essas engajamento do usuaacuterio atraveacutes denotificaccedilotildees do sistema aceitaccedilatildeo de sugestotildees de locais alternativos avaliaccedilatildeo da existecircnciado problema que queremos resolver (se este aplicativo supre uma necessidade real do usuaacute-rio) e aceitaccedilatildeo do aplicativo

23

24 DESENVOLVIMENTO DO PROJETO 41

Para a divulgaccedilatildeo redes sociais como Facebook [5] e sistemas de mensagem instantacircneascomo WhatsApp foram usados e o envio de respostas foi restrito ateacute trecircs semanas apoacutes suaprimeira postagem Neste periacuteodo foram obtidas 210 respostas as quais ajudaram a definiros aspectos do sistema a ser desenvolvido

O questionaacuterio foi dividido em duas subseccedilotildees perfil do usuaacuterio e funcionalidade Comelas obteve-se os seguintes resultados

41 PESQUISA DE MERCADO 25

Questatildeo 1

Figura 41 Graacutefico pizza da distribuiccedilatildeo das respostas em relaccedilatildeo a idade dos pesquisados

As faixas de idade apresentadas estatildeo desbalanceadas por natildeo terem a mesma quantidadede anos em cada uma poreacutem essa divisatildeo foi pensada levando-se em conta a fluecircncia comtecnologia que cada idade possui Com o resultado verificou-se que do puacuteblico alcanccediladocom a pesquisa a maioria estaacute na faixa de 18 a 25 anos de idade assumida como parcelacom maior conhecimento tecnoloacutegico

Questatildeo 2

Figura 42 Graacutefico pizza da distribuiccedilatildeo das respostas em relaccedilatildeo ao sistema operacional

Esta questatildeo foi pensada para medir a porcentagem de cada sistema operacional pre-sente nos celulares do puacuteblico Com ela descobriu-se que 639 das pessoas dentro desse

26 DESENVOLVIMENTO DO PROJETO 41

grupo possuem o sistema Android enquanto 234 possuem iOS e 38 Windows phoneEssa pergunta foi incluiacuteda para um melhor direcionamento do desenvolvimento do aplicativo

Uma questatildeo levantada ao aplicar esse questionaacuterio foi a dificuldade que algumas pessoasencontraram para identificar a versatildeo do proacuteprio aparelho Poreacutem para manter a consistecircnciadas respostas decidiu-se natildeo mudar nada nesta questatildeo para remediar isso

Questatildeo 3

Figura 43 Graacutefico em barras da distribuiccedilatildeo de frequecircncias mensais de cada local analisado

41 PESQUISA DE MERCADO 27

Questatildeo 4

Figura 44 Graacutefico em pizza da distribuiccedilatildeo de interesse do usuaacuterio no tempo de espera de cadalocal

A princiacutepio viu-se muitas possiacuteveis aplicaccedilotildees para a previsatildeo de tempo de espera Paraentender qual seria a prioridade do puacuteblico as questotildees acima foram incluiacutedas A primeiraverificou a frequecircncia de visitas em alguns locais e a segunda serviu para analisar qualestabelecimento despertava mais interesse nos entrevistados quanto ao quesito fila Nos doiscasos restaurantes se destacaram com o maior interesse

Questatildeo 5

Figura 45 Graacutefico em barras da distribuiccedilatildeo de interesse do usuaacuterio por cada item avaliado

Para acompanhar o dado de espera e fornecer mais informaccedilotildees relevantes ao usuaacuteriosem potencial perguntou-se quais outras informaccedilotildees eles acham interessante saber sobre umdeterminado estabelecimento Com isso descobriu-se que a faixa de preccedilo o trajeto ateacute olocal e o cardaacutepio seriam dados importantes de se obter juntamente com o tempo de espera

28 DESENVOLVIMENTO DO PROJETO 41

Questatildeo 6O que vocecirc costuma fazer para evitar filasNeste ponto testou-se se a soluccedilatildeo proposta atraveacutes do aplicativo resolveria o problema dousuaacuterio de uma forma melhor do que a soluccedilatildeo atualmente utilizada Para isso foi perguntadoo que as pessoas fazem para evitar filas e as principais respostas foram

∙ Evitar horaacuterios de pico

∙ Chegar cedo

∙ Ir em outro lugar caso uma fila seja encontrada

∙ Tentar realizar reservas antecipadamente

∙ Se distrair com livroscelular

Notou-se que as soluccedilotildees utilizadas atualmente natildeo suprem as necessidades dos entre-vistados pois mesmo em horaacuterios natildeo convencionais pode-se encontrar filas ou quandodecide-se esperar na fila muito tempo eacute perdido Concluiu-se que a soluccedilatildeo proposta a par-tir do aplicativo resolve de forma mais abrangente o problema pois ajuda o usuaacuterio a evitarhoraacuterios de pico inesperados

Questatildeo 7

Figura 46 Graacutefico em pizza da distribuiccedilatildeo do meio de transporte utilizado pelos usuaacuterios

Essa questatildeo foi formulada com o objetivo de verificar quais meios de transporte seriamincluiacutedos com previsatildeo de tempo de trajeto no aplicativo Foi verificado que a maioria dosentrevistados utilizam transporte puacuteblico seguido por carro

41 PESQUISA DE MERCADO 29

Questatildeo 8

Figura 47 Graacutefico em pizza da distribuiccedilatildeo do interesse do usuaacuterio pela informaccedilatildeo fornecida

Questatildeo 9

Figura 48 Graacutefico em pizza da distribuiccedilatildeo de quantidade de quilocircmetros que o usuaacuterio sedeslocaria para ir a um local com menos fila

Com essas questotildees foi verificado que algo importante para o usuaacuterio eacute saber de outrosestabelecimentos que possam oferecer tempos de espera menores nas redondezas de onde ousuaacuterio se encontra que eacute uma das funcionalidades que desejaacutevamos utilizar no sistema

30 DESENVOLVIMENTO DO PROJETO 41

Questatildeo 10

Figura 49 Graacutefico em barras da distribuiccedilatildeo de sentimento do usuaacuterio em relaccedilatildeo a notificaccedilatildeode aplicativos

Questatildeo 11

Figura 410 Graacutefico em pizza da distribuiccedilatildeo de opiniatildeo do usuaacuterio sobre desabilitar notificaccedilotildeesem celular

42 PESQUISA DE MERCADO 31

Questatildeo 12

Figura 411 Graacutefico em pizza da distribuiccedilatildeo de opiniatildeo do usuaacuterio sobre habilitar GPS emcelular

A ideia inicial era poder usar o GPS para verificar a localizaccedilatildeo do usuaacuterio e enviarnotificaccedilotildees quando este estivesse parado nas proximidades de algum dos estabelecimentoscadastrados Para que essa funcionalidade possa existir eacute necessaacuterio que o aplicativo tenhaacesso agrave localizaccedilatildeo precisa da pessoa atraveacutes do GPS ou internet ateacute mesmo quando natildeoestiver aberto Aleacutem disso tambeacutem eacute necessaacuterio que as notificaccedilotildees estejam habilitadas parafinalizar esta interaccedilatildeo Entatildeo as perguntas 10 11 e 12 foram incluiacutedas no questionaacuterio Ob-servando as respostas foi possiacutevel verificar que 295 das pessoas que responderam deixamambas as funcionalidades habilitadas (GPS e notificaccedilotildees) Com isso pudemos prosseguircom essa ideia e tambeacutem pensar em possiacuteveis alternativas de interaccedilatildeo e engajamento como usuaacuterio

Por conta dessa pesquisa ter sido compartilhada atraveacutes das contas das redes sociais ecomunicadores dos componentes deste grupo sabe-se que este pode apresentar um resultadoviesado mas que mesmo assim natildeo deve ser desconsiderado e que muito ajudou a sanar asduacutevidas iniciaisComo resultado traccedilamos o perfil do entrevistado

∙ Faixa etaacuteria predominante entre 18 e 30 anos

∙ Possui sistema operacional Android (versotildees 4 5 e 6)

∙ Vai a restaurantes com certa frequecircncia mensal resultando em interesses sobre infor-maccedilotildees relacionadas a esse estabelecimento

∙ Costuma chegar cedo ou evitar os horaacuterios de pico para evitar filas nos locais

∙ Carro e transporte coletivo satildeo os principais meios de transporte

∙ Se deslocaria para um estabelecimento semelhante que possui menos fila contanto queeste fique num raio de 2km de distacircncia

32 DESENVOLVIMENTO DO PROJETO 43

42 Projeto do AplicativoO grupo comeccedilou o projeto com o preenchimento do diagrama Canvas(figura 412) apre-

sentado na Seccedilatildeo 21 Desse modo foi adquirida uma ideia mais consistente e uma base paracomeccedilar a implementaccedilatildeo

Figura 412 Diagrama Canvas preenchido pelo grupo

Com o modelo de negoacutecios definido e com base no resultado da pesquisa com o usuaacuterioapresentada na seccedilatildeo seguinte foram aplicadas pequenas mudanccedilas no projeto para melhoradequar-se agraves necessidades e ao perfil do puacuteblico alvo

Para o desenvolvimento foi utilizado um meacutetodo aacutegil baseado no scrum com sprints de3 a 4 semanas devido agrave disponibilidade dos membros do grupo Os encontros natildeo eram diaacute-rios como recomendado para o meacutetodo scrum tambeacutem em razatildeo da disponibilidade Haviamstand ups (discussotildees raacutepidas no comeccedilo de cada encontro) e retrospectivas ao final de cadasprint A cada sprint eram selecionadas histoacuterias e tarefas para serem executadas e caso natildeofossem concluiacutedas ao final da iteraccedilatildeo eram inseridas ao backlog e feitas no sprint seguinte

43 Aplicaccedilatildeo dos meacutetodos de caacutelculo de espera

431 Aplicando a meacutedia por periacuteodo

Aplicando-se no trecho abaixo a teacutecnica desenvolvida na Seccedilatildeo 242 para uma queryrealizada no dia 19082016 no intervalo de 2040 - 2055 analisa-se a semana anterior quepossua tais intervalos Assim o saacutebado dia 06082016 seraacute selecionado

43 APLICACcedilAtildeO DOS MEacuteTODOS DE CAacuteLCULO DE ESPERA 33

Entrada Qtd Pessoas Notificado Espera

6816 2043 2 862016 2053 1606

6816 2044 2 862016 2055 674

6816 2048 2 862016 2056 528

6816 2048 2 862016 2057 520

6816 2051 2 862016 2107 1118

6816 2051 3 862016 2110 1305

6816 2052 2 862016 2110 1273

6816 2052 2 862016 2111 1179

6816 2053 2 862016 2112 1217

6816 2053 2 NULL 59

6816 2054 3 862016 2119 1541

6816 2055 2 862016 2117 1444

6816 2055 2 862016 2120 1570

6816 2055 2 862016 2122 1613

Tabela 41 Trecho do dia 06082016 entre os horaacuterios das 2043 agraves 2055 um intervalo de 12minutos retirado dos dados da empresa Get In

Com esses dados obteve-se a meacutedia de espera de 1080 segundos (18 minutos) a qualseria sugerida para o usuaacuterio com a busca e desvio padratildeo de 465144719 segundos (775 mi-nutos) Dentro desse intervalo tem-se como maacuteximo tempo de espera 1613 segundos (2688minutos) e como miacutenimo 59 segundos (1 minuto) Analisando-se os dados do dia 19082016no mesmo periacuteodo temos

34 DESENVOLVIMENTO DO PROJETO 43

Entrada Pessoas Notificado Espera Erro previsatildeo Erro p 2 pessoas

19816 2043 2 8192016 2051 544 -563 522

19816 2043 2 8192016 2052 605 -502 461

19816 2044 2 8192016 2056 723 -384 343

19816 2046 4 8192016 2119 1988 881 X

19816 2048 2 8192016 2102 919 188 147

19816 2051 2 8192016 2103 821 286 245

19816 2051 3 8192016 2108 1773 666 X

19816 2053 2 8192016 2110 1083 24 -17

19816 2053 2 8192016 2111 1105 2 -39

19816 2053 2 8192016 2112 1169 62 -103

19816 2055 2 8192016 2114 1447 340 -381

Tabela 42 Trecho do dia 19082016 entre os horaacuterios das 2043 agraves 2055um intervalo de 12minutos retirado dos dados da empresa Get In

Ou seja se um grupo chegasse dentro desse periacuteodo e a previsatildeo dada fosse a meacutediaobtida anteriormente o erro calculado pela diferenccedila entre o tempo sugerido e o real tempode espera estaria no intervalo de 15 minutos para menos ou 8 minutos para mais Sendoesse um valor aceitaacutevel

Um proacuteximo passo eacute a restriccedilatildeo dos registros a grupos com 2 integrantes Com tal restri-ccedilatildeo a previsatildeo de espera eacute de 1066 segundos (1776 minutos) Aplicando essa nova meacutedia aosregistros com 2 integrantes do dia 19082016 obteacutem-se um erro (Coluna 6 - erro previsatildeopara 2 pessoas) menor do que o anterior O intervalo do erro calculado neste caso seria de 522segundos (87 minutos) para mais e 381 segundos (635 minutos) para menos Este resultadoeacute ainda mais favoraacutevel mostrando que a inclusatildeo de mais filtros para o caacutelculo da previsatildeomelhorou o tempo previsto

432 Aplicando teoria das filas

A teoria das filas (Seccedilatildeo 242) eacute uma ferramenta muito completa que calcula muitos dadosuacuteteis para a previsatildeo de espera Contudo por conta da necessidade de informaccedilotildees sobreo tempo de atendimento a qual natildeo estaacute contida no banco utilizado esta teoria natildeo podeser aplicada neste caso Poreacutem esse dado pode ter um valor assumido para que a utilizaccedilatildeodessa teoria fosse possiacutevel entretanto a sua precisatildeo ficaria comprometida e imprevisiacutevel

433 Aplicando redes neurais

Para aplicar o que foi estudado na Seccedilatildeo 242 foi executado o software com o mecircs deAgosto como teste o mecircs de Setembro como treino e o limite do erro quadraacutetico como 001 eobteve-se a tabela presente no apecircndice B Na tabela podemos ver o tempo de fila esperadoou seja o tempo contido na tabela do mecircs de Setembro o tempo que o algoritmo deu comoresposta baseado no mecircs de Agosto e o erro entre eles respectivamente

44 DEFINICcedilAtildeO DA INTERFACE DO APLICATIVO 35

Figura 413 Software Multiple Back-Propagation com a configuraccedilatildeo escolhida para os dadosdisponiacuteveis

Mesmo o erro se mantendo em 0018 os dados obtidos possuem um erro padratildeo de 15minutos Se mais dados forem adicionados o criteacuterio de parada pode ser atingido e assimuma previsatildeo melhor pode ser alcanccedilada

434 Conclusatildeo sobre os meacutetodos estudados

Dentre todas as possibilidades estudadas visualizamos na meacutedia por periacuteodo a melhoropccedilatildeo assumindo os dados disponiacuteveis para teste Se mais paracircmetros fossem fornecidoscomo o tempo de atendimento a teoria das filas seria uma boa opccedilatildeo para fornecer a pre-visatildeo de espera E se mais dados estivessem disponiacuteveis as redes neurais conseguiriam umaaproximaccedilatildeo melhor e assim seria uma boa opccedilatildeo tambeacutem

44 Definiccedilatildeo da Interface do aplicativoComo um primeiro protoacutetipo foi desenvolvida uma interface simples que tinha como tela

de iniacutecio um mapa com um campo para buscas na parte superior

36 DESENVOLVIMENTO DO PROJETO 44

Figura 414 Fluxo de telas do primeiro protoacutetipo

Ao efetuar uma busca por algum estabelecimento uma tela mostrando o tempo de esperaaproximado da fila no local era exibida junto com bototildees que permitiam selecionar o meiode transporte visualizar outras opccedilotildees ou dar iniacutecio a rota ateacute o local desejado Tambeacutemhavia uma notificaccedilatildeo para quando a pessoa estivesse parada proacutexima a um restaurantecadastrado que direcionaria o usuaacuterio a uma tela com um cronocircmetro do tempo de esperana fila

Para testar essa visualizaccedilatildeo escolhemos algumas pessoas e realizamos um teste deusabilidade[22] este teste eacute feito da seguinte forma

44 DEFINICcedilAtildeO DA INTERFACE DO APLICATIVO 37

Uma contextualizaccedilatildeo eacute feita para o voluntaacuterio e entatildeo uma tarefa eacute passada para sercompletada Os integrantes do grupo observam dificuldades enfrentadas pelo entrevistado etomam notas Esse teste eacute repetido algumas vezes e seu resultado eacute coletado para avaliaccedilatildeoe modificaccedilatildeo das funcionalidades

Figura 415 Tela de detalhes de um restaurante(segunda versatildeo)

Notou-se que algumas funcionalidadespareceram confusas e natildeo intuitivas porexemplo natildeo ficou claro se o tempo mos-trado era de trajeto ou de espera na filanem qual era o meio de transporte utili-zado

Logo esse protoacutetipo foi reformuladocom o intuito de melhorar a experi-ecircncia do usuaacuterio com o nosso aplica-tivo

Foram colocados aleacutem do tempo deespera da fila o tempo que o usuaacuteriolevaria para chegar ateacute o local selecio-nado (conforme o tipo de transporte es-colhido) e a quantidade estimada de pes-soas na fila O tempo total (espera so-mado ao tempo de deslocamento) ga-nhou destaque entre as informaccedilotildees doestabelecimento e o botatildeo que direcionao usuaacuterio ao trajeto ficou mais especiacute-fico

Tambeacutem cogitou-se a possibilidade deadicionar login e um perfil de usuaacuteriojunto com uma lista de restaurantes favo-ritos

O fluxo das telas deste novo protoacutetipo ficou como mostra o esquema a seguir

38 DESENVOLVIMENTO DO PROJETO 44

Figura 416 Fluxo de telas do segundo protoacutetipo

44 DEFINICcedilAtildeO DA INTERFACE DO APLICATIVO 39

Figura 417 Tela de detalhes de um restaurante(terceira versatildeo)

Apoacutes outras avaliaccedilotildees mais algumaspequenas alteraccedilotildees foram realizadas nainterface Foi decidido que seria inviaacute-vel estimar o nuacutemero de pessoas nafila entatildeo essa funcionalidade foi remo-vida

Notificaccedilotildees foram adicionadas paraquando o usuaacuterio estiver parado na aacutereado restaurante para que ele possa con-tribuir com informaccedilotildees sobre a fila quepegou aleacutem de um botatildeo de contri-buiccedilatildeo ter sido inserido na tela ini-cial

40 DESENVOLVIMENTO DO PROJETO 45

O fluxo de telas do aplicativo atual ficou da seguinte forma

Figura 418 Fluxo de telas do terceiro protoacutetipo

46 EXPLICACcedilAtildeO DAS FUNCIONALIDADES 41

45 Explicaccedilatildeo das funcionalidadesEsta seccedilatildeo explica as funcionalidades do produto utilizando a figura 418

A tela inicial (3) exibe uma lista de restaurantes incluindo seus respectivos tempos detrajeto e tempo de espera na fila Ao clicar no botatildeo ldquo+rdquo uma caixa de diaacutelogo eacute aberta(4) onde eacute possiacutevel adicionar o tempo que o usuaacuterio esperou na fila Primeiro eacute escolhido orestaurante depois a data e hora que a pessoa chegou na fila e por fim o tempo de esperaem minutos Ao tocar em ldquoEnviar Feedback rdquo os dados satildeo incluiacutedos no banco de dados eatualizados para os outros usuaacuterios Assim eacute apicado o conceito de Crowdsourcing no apli-cativo

Ao tocar em um item da lista de restaurantes seraacute aberta a tela de detalhes de um res-taurante (5) na qual eacute possiacutevel ver com mais clareza os tempos de trajeto e espera o tempototal o endereccedilo do estabelecimento e um pequeno mapa centrado no local Pressionandoo botatildeo ldquoDireccedilotildeesrdquo o usuaacuterio seraacute redirecionado ao aplicativo de mapas de sua preferecircnciano caso do exemplo (8) o Google Maps jaacute traccedilando a rota da localizaccedilatildeo do usuaacuterio para oestabelecimento em questatildeo

Novamente na tela inicial tocando no iacutecone de lupa eacute possiacutevel realizar uma busca digi-tando o nome do estabelecimento na caixa de texto a qual exibe sugestotildees dependendo doque foi digitado Ao clicar em um dos resultados da busca o usuaacuterio eacute novamente direcionadopara a tela de detalhes do restaurante (5)

Tambeacutem eacute possiacutevel tocar no iacutecone de mapa na tela inicial onde seraacute mostrado um mapacentrado na localizaccedilatildeo do usuaacuterio

Ao ficar parado por um tempo em um mesmo local proacuteximo a um estabelecimentocadastrado o usuaacuterio eacute perguntado em uma notificaccedilatildeo quanto tempo ele permaneceu nafila Ao tocar na notificaccedilatildeo a caixa de diaacutelogo para feedback do usuaacuterio seraacute aberta (4) jaacutecom o restaurante preenchido e apoacutes o feedback a janela seraacute fechada e os dados enviadosao banco de dados

46 Implementaccedilatildeo do banco de dadosO banco de dados do aplicativo foi modelado e populado em forma de aacutervore (Fi-

gura 419) de forma a facilitar o acesso aos dados necessaacuterios ao aplicativo No primeironiacutevel estatildeo os ids dos restaurantes Cada id de restaurante guarda a localizaccedilatildeo (latitudelongitude) do restaurante o nome o endereccedilo e um objeto fila O objeto fila guarda todos osdias da semana (domingo a saacutebado) e cada dia da semana possui 24 campos um para cadahora do dia Cada hora possui o tempo meacutedio de espera da fila naquela hora e um peso paraesse tempo O peso eacute um valor que aumenta de acordo com o nuacutemero de feedbacks dadospara que o novo valor do tempo meacutedio seja calculado de forma consistente

Modelamos o banco de dados de uma forma que respeitasse uma hierarquia de dados

42 DESENVOLVIMENTO DO PROJETO 46

Figura 419 Aacutervore que ilustra a organizaccedilatildeo de um restaurante no banco de dados

Com o banco de dados jaacute populado o aplicativo faz consultas e atualizaccedilotildees de dadosConsultas satildeo feitas ao criar a tela de listagem de restaurantes e de detalhes de um restau-rante consultado As atualizaccedilotildees satildeo feitas quando o usuaacuterio manda o feedback de tempo deespera em um estabelecimento em determinado horaacuterio o aplicativo calcula a nova meacutedia eatualiza o campo do respectivo horaacuterio

Capiacutetulo 5

Conclusatildeo

Ao longo dos capiacutetulos deste trabalho pocircde-se acompanhar todo o processo de criaccedilatildeo edesenvolvimento do aplicativo que apoacutes finalizado foi batizado com o nome Queue

Comeccedilando com um problema para o qual o grupo almejava oferecer uma soluccedilatildeoacabou-se por adentrar-se um pouco no campo da Estatiacutestica e estudar diversas metodo-logias que poderiam ser uacuteteis para fornecer um caacutelculo de previsatildeo de espera meacutedia porperiacuteodo aplicaccedilatildeo da teoria das filas e utilizaccedilatildeo de redes neurais

Atraveacutes de uma parceria com a empresa GetIn obteve-se acesso a uma grande quantidadede dados e foi possiacutevel utilizaacute-los em anaacutelises feitas nas metodologias escolhidas conseguindoassim resultados relevantes Por meio destes foi feita a escolha de um dos meacutetodos para ocaacutelculo da previsatildeo de filas a meacutedia por periacuteodo

Aleacutem desses estudos ao longo do ano o grupo aprendeu a desenvolver para a plata-forma Android sobre a qual nenhum dos integrantes tinha conhecimento preacutevio Tambeacutemfoi possiacutevel aprender e utilizar a metodologia aacutegil com Scrum para guiar o processo de de-senvolvimento

Ao fim do ciclo de desenvolvimento conseguiu-se entregar um aplicativo em funciona-mento que fornece a previsatildeo de espera no instante da consulta de estabelecimentos cadas-trados no banco de dados armazenado na nuvem

Na versatildeo atual do aplicativo natildeo foi implementado um sistema para o cadastro de novosestabelecimentos Isso soacute eacute possiacutevel atraveacutes da inserccedilatildeo direta no banco de dados atraveacutes dainterface fornecida pelo console do Firebase Atualmente estatildeo cadastrados 5 restaurantesos quais foram visitados durante o desenvolvimento do projeto Para que o cadastro deestabelecimentos escale seria necessaacuterio a implementaccedilatildeo de uma funcionalidade que permitaao usuaacuterio adicionar novos estabelecimentos a partir de locais disponiacuteveis na API de locaisda Google

43

45

46 APEcircNDICE A

Apecircndice A

Dados coletados

Figura A1 Dados de tempo de espera para grupos de tamanhos variados para cada horaacuterio e emcada dia da semana obtidos em entrevista em restaurantes Outback Steakhouse Shopping Uniatildeo nomecircs de outubro

Referecircncias Bibliograacuteficas

[1] Backpropagation httpmbpsourceforgenet Accesso em Janeiro 2017 14

[2] Bitbucket httpsbitbucketorgproduct Accesso em Dezembro 2016 19

[3] Crowdsourcing httpswwwmerriam-webstercomdictionarycrowdsourcing Ac-cesso em Novembro 2016 21

[4] Designing a survey httpwwwsciencebuddiesorgscience-fair-projectsproject_ideasSoc_surveyshtml Accesso em Outubro 2016 4 23

[5] Facebook httpswwwfacebookcom Accesso em Novembro 2016 24

[6] Firebase httpsfirebasegooglecom Accesso em Agosto 2016 20

[7] Getin app httpswwwgetinappcombrhomesao-paulo Accesso em Novembro2016 9

[8] Git 11 primeiros passos - sobre controle de versatildeo httpsgit-scmcombookpt-brv1Primeiros-passos-Sobre-Controle-de-Vers Accesso em Novembro 2016 19

[9] Google forms httpsdocsgooglecomforms Accesso em Novembro 2016 23

[10] Guia definitivo do project model canvas Project Builder 3

[11] Jsonorg introducing json httpwwwjsonorg Accesso em Novembro 2016 17

[12] Manifesto para desenvolvimento Aacutegil de software httpagilemanifestoorgisoptbrmanifestohtml Accesso em Novembro 2016 5

[13] Nosql httpsenwikipediaorgwikiNoSQL Accesso em Novembro 2016 20

[14] Outback steakhouse httpswwwoutbackcombrhome Accesso em Novembro 20169

[15] Restful api development with lumen microframework httpsbelitsoftcomlaravel-development-servicesapi-development Accesso em Novembro 2016 17

[16] Scrum httpswwwatlassiancomagilescrum Accesso em Novembro 2016 5

[17] Smartphone os market share 2016 q2 httpwwwidccomprodservsmartphone-os-market-sharejsp Accesso em Novembro 2016 15

[18] Smartphone os sales market share kantar worldpanel comtech httpwwwkantarworldpanelcomsmartphone-os-market-share Accesso em Novembro 2016 15

[19] Sourcetree httpswwwsourcetreeappcom Accesso em Dezembro 2016 19

47

48 REFEREcircNCIAS BIBLIOGRAacuteFICAS

[20] Sql httpsptkhanacademyorgcomputingcomputer-programmingsql Accesso emDezembro 2016 20

[21] Trello httpstrellocom Accesso em Novembro 2016 6

[22] Usability test httpsenwikipediaorgwikiUsability_testing Accesso em Novembro2016 36

[23] Versionone 2012 agile dev survey httpswwwversiononecompdf7th-Annual-State-of-Agile-Development-Surveypdf Accesso em Novembro 2016 5

[24] Waze httpswwwwazecom Accesso em Novembro 2016 1

[25] What is an open source httpsopensourcecomresourceswhat-open-source Accessoem Novembro 2016 15

[26] Xml tutorial httpwwww3schoolscomxml Accesso em Novembro 2016 17

[27] Paulo F Cabral dos Anjos Jr Aron Ifanger Maciel Christopher Silva de Paacutedua Com-posiccedilatildeo de carteiras de accedilotildees utilizando modelo de redes neurais artificiais e modelo derisco e retorno de Markowitz 2012 14

[28] Google Distance matrix api documentation httpsdevelopersgooglecommapsdocumentationdistance-matrix Accesso em Novembro 2016 17

[29] Alan Klement Designing features using job stories httpsblogintercomcomusing-job-stories-design-features-ui-ux Accesso em Novembro 2016 6

[30] Azmat Nafees Queuing theory and its application analysis of the sales checkout opera-tion in ica supermarket httpwwwstatisticsduseessaysD07ENafeespdf Accessoem Novembro 2016 12

[31] Eric Ries A Startup Enxuta Lua de papel primeira ediccedilatildeo edition 2012 3

  • Introduccedilatildeo
    • Motivaccedilatildeo
    • Trabalho Proposto
    • Estrutura da monografia
      • Estudos Preliminares
        • Desenvolvimento de Startups
          • Desenvolvimento de Questionaacuterios
            • Metodologia Aacutegil
            • Jobs to be done
            • Caacutelculo da previsatildeo do tempo de espera na fila
              • Descriccedilatildeo do problema
              • Meacutetodos de caacutelculo da espera
                  • Tecnologias utilizadas
                    • O sistema Android
                      • Organizaccedilatildeo de uma aplicaccedilatildeo Android
                        • JSON
                        • Google APIs
                        • Localizaccedilatildeo do Usuaacuterio
                        • Controle de Versatildeo
                        • Banco de dados
                          • Firebase
                            • Crowdsourcing
                              • Desenvolvimento do Projeto
                                • Pesquisa de Mercado
                                  • Pesquisa com o usuaacuterio
                                    • Projeto do Aplicativo
                                    • Aplicaccedilatildeo dos meacutetodos de caacutelculo de espera
                                      • Aplicando a meacutedia por periacuteodo
                                      • Aplicando teoria das filas
                                      • Aplicando redes neurais
                                      • Conclusatildeo sobre os meacutetodos estudados
                                        • Definiccedilatildeo da Interface do aplicativo
                                        • Explicaccedilatildeo das funcionalidades
                                        • Implementaccedilatildeo do banco de dados
                                          • Conclusatildeo
                                          • Dados coletados
                                          • Referecircncias Bibliograacuteficas

6 ESTUDOS PRELIMINARES 23

Figura 22 Dinacircmica do Scrum

Para controle das iteraccedilotildees foi utilizado o software Trello [21] que eacute um gerenciador detarefas de projeto (figura 23)

Figura 23 Interface do Trello - durante o processo de desenvolvimento

23 Jobs to be donePara implementar o aplicativo buscou-se uma metodologia para guiar esse processo desde

sua criaccedilatildeo ateacute sua validaccedilatildeo Duas metodologias conhecidas pelo grupo foram analisadas eestudadas Jobs To Be Done e Personas and Use Cases

Segundo Alan Klement[29] Personas satildeo clientes imaginaacuterios descritos pela idade sexoraccedila e haacutebitos semanais O uso delas natildeo eacute adequado para responder perguntas como ldquoPorqueo cliente quer saber o tamanho da filardquo pois quando a resposta eacute ldquoEle estaacute com pressa paracomerrdquo natildeo fica claro quais satildeo as reais necessidades do usuaacuterio Essa descriccedilatildeo tambeacutem natildeoeacute uacutetil no desenvolvimento de uma boa interface pois natildeo ajuda na hora de responder se umcerto botatildeo realmente deixa claro sua funcionalidade

23 JOBS TO BE DONE 7

Tambeacutem segundo Alan Klement Use Cases possuem 3 grandes problemas usam perso-nas casam implementaccedilotildees motivaccedilotildees e resultado e ignoram contexto situaccedilotildees e ansie-dades

Se uma funcionalidade definida por uma Use Case falhar seraacute difiacutecil identificar o pro-blema pois por casar informaccedilotildees diferentes surgiraacute a dificuldade de saber o que estaacute erradoa implementaccedilatildeo as suposiccedilotildees sobre as motivaccedilotildees ou os resultados

Observando-se esses fatos optou-se pelo uso da metodologia Jobs to Be Done pois haacuteuma mudanccedila na forma de fazer histoacuterias a fim de evitar os problemas observados em Per-sonas e Use Cases(Figura 24) Nesse modelo as Personas satildeo pessoas reais e as histoacuterias satildeoescritas com a seguinte divisatildeo situaccedilatildeo motivaccedilatildeo e resultados esperados

Nessa metodologia criamos histoacuterias descrevendo tarefas para que os usuaacuterios se colo-quem na situaccedilatildeo descrita Observando-os eacute possiacutevel saber se a tarefa foi realizada de formabem sucedida e caso contraacuterio identificar onde e o que estaacute causando a falha no instanteda realizaccedilatildeo dela

Figura 24 Diferenccedila entre estruturas de histoacuterias

8 ESTUDOS PRELIMINARES 24

Algumas das histoacuterias criadas para os testes de interface do grupo foram

∙ Quando eu estiver na tela de lista de restaurantes eu quero acessar a tela de detalhesdo restaurante que eu desejo saber o tempo de espera entatildeo eu posso ver com clarezaas informaccedilotildees e posso traccedilar uma rota para o estabelecimento

∙ Quando eu estiver na tela principal eu quero enviar meu feedback sobre o tempo deespera no estabelecimento que estou entatildeo eu posso ajudar outros usuaacuterios por meiodo aplicativo

24 Caacutelculo da previsatildeo do tempo de espera na filaAtraveacutes de pesquisas em busca de meacutetodos estatiacutesticos para se estudar o comportamento

das filas foram encontradas as trecircs metodologias descritas nesta seccedilatildeo Este capiacutetulo conteacutema explicitaccedilatildeo do problema estudado e suas possiacuteveis soluccedilotildees

241 Descriccedilatildeo do problema

Para que se chegasse a uma soluccedilatildeo apropriada o problema de espera em fila precisouser estudado Esse problema pode ser descrito da seguinte forma dado um restaurante aentrada nesse eacute atraveacutes de uma fila Essa fila tem seu tamanho redefinido agrave medida quenovos clientes chegam e saem dela A saiacuteda dos clientes pode ser devido a desistecircncia ou aacomodaccedilatildeo deles nas mesas A entrada eacute definida pela disponibilizaccedilatildeo de lugares livres agravemedida em que os grupos que estavam alocados terminam seu atendimento

Figura 25 Esquema simplificado do funcionamento do processo em um restaurante

A fila de espera eacute influenciada por dois fatores a taxa de chegada do cliente e a taxa deatendimento nas mesas

∙ chegada em restaurantes a chegada de clientes eacute definida por uma taxa O clienteneste caso representa um grupo com tamanho variaacutevel A distribuiccedilatildeo do tamanho dogrupo nas chegadas eacute variaacutevel

∙ O atendimento a alocaccedilatildeo do grupo eacute organizada pela recepccedilatildeo O meacutetodo utilizadopor eles natildeo eacute padronizado e muitas vezes eacute completamente subjetivo Por exemplose acontecer de um grupo grande e vaacuterios casais chegarem ao mesmo tempo e nesse

24 CAacuteLCULO DA PREVISAtildeO DO TEMPO DE ESPERA NA FILA 9

momento existir um espaccedilo no salatildeo que acomode o grupo (juntando as mesas) outodos os casais (com as mesas separadas) dependendo de quem estaacute responsaacutevel poralocaacute-los cada um receberaacute uma prioridade diferente e essa decisatildeo natildeo eacute padronizada

∙ A disposiccedilatildeo das mesas a disposiccedilatildeo e quantidade de mesas natildeo satildeo padronizadasentre restaurantes de uma mesma rede muito menos entre restaurantes diferentesAleacutem disso a formataccedilatildeo do salatildeo pode ser remodelada de acordo com a necessidadede alocaccedilatildeo dos clientes haacute gerentes que evitam essa movimentaccedilatildeo ou ateacute mesmorestaurantes que natildeo tecircm essa possibilidade

242 Meacutetodos de caacutelculo da espera

Com o problema desenhado desta maneira esboccedilou-se trecircs possiacuteveis meacutetodos de resoluccedilatildeoe um desses foi aplicado na soluccedilatildeo final Os meacutetodos desenvolvidos satildeo meacutedia por periacuteodoaplicaccedilatildeo da teoria das filas e utilizaccedilatildeo de redes neurais Essas teacutecnicas precisam de dadospara serem desenvolvidas e aplicadas Por conta disso buscou-se fontes que suprissem essanecessidade

Captaccedilatildeo dos dados para a anaacutelise

Para que seja possiacutevel aplicar os meacutetodos estudados eacute necessaacuterio obter dados para aplicarna anaacutelise Estes foram obtidos de duas formas a partir de uma parceria com a empresa GetIn [7] desenvolvedora de um aplicativo de gerenciamento de filas de restaurantes e atraveacutesde pesquisas presenciais em restaurantes da rede Outback Steakhouse[14] selecionados para oestudo(Apecircndice A) O aplicativo da Get In possui uma funcionalidade principal realizaccedilatildeode uma reserva em um determinado restaurante O banco de dados manteacutem o registro detodos os usuaacuterios que entram na fila e esses dados satildeo organizados em uma tabela com osseguintes campos

∙ Origem Se a reserva foi realizada de forma remota ou presencial Assim

1 Reserva presencial (na entrada do restaurante incluiacuteda pela recepcionista)

2 Reserva remota (realizada atraveacutes do aplicativo)

∙ Entrada este consiste na data e hora que o usuaacuterio entrou na fila

∙ Qtd Pessoas tamanho do grupo para o qual a reserva foi feita

∙ Prioritaacuterio se este grupo requer atendimento prioritaacuterio

0 Natildeo

1 Sim

∙ Notificado A data e horaacuterio em que o grupo foi notificado que sua mesa estava pronta

ndash Quando NULL a recepcionista natildeo notificou essa pessoa (possivelmente chamoudiretamente pelo nome)

∙ Tempo na Espera Tempo que o grupo ficou ativo na fila de espera (em segundos)

∙ Status Qual a situaccedilatildeo da reserva do grupo Podendo assumir tais valores

0 Cancelado pela recepcionista

10 ESTUDOS PRELIMINARES 24

2 Sentado

3 Cancelado pelo proacuteprio Usuaacuterio

Para melhor entender estes paracircmetros o funcionamento do aplicativo deve ser expli-cado com maior detalhamento O processo de reserva funciona da seguinte forma o usuaacuterioreserva seu lugar atraveacutes do aplicativo ou vai ao restaurante e a recepcionista o adiciona agraveespera No primeiro caso o usuaacuterio tem um tempo de toleracircncia para chegar ao estabeleci-mento apoacutes receber a notificaccedilatildeo caso natildeo consiga chegar a tempo a reserva eacute cancelada Nosegundo caso quando o grupo a ser chamado estaacute proacuteximo da recepccedilatildeo a funcionalidade denotificaccedilatildeo natildeo precisa ser usada o responsaacutevel pode se direcionar diretamente aos clientes echamaacute-los pelo nome Mesmo nesse segundo caso o tempo de espera na fila ainda eacute guardadopois a recepccedilatildeo precisa ldquofecharrdquo a espera do grupo para chamar o proacuteximo

Poreacutem a utilizaccedilatildeo desses dados natildeo foi liberada pela empresa Get In para serem usadoscomo banco de dados do aplicativo somente foram fornecidos dados do mecircs de agosto esetembro de 2016 para que fossem utilizados nas anaacutelises feitas com os modelos estatiacutesticosPara obter dados que poderiam ser utilizados no banco de dados do aplicativo foi neces-saacuterio uma pesquisa presencial onde o grupo visitou alguns restaurantes da rede OutbackSteakhouse para obter informaccedilotildees sobre o tempo de espera nestes estabelecimentos

Foram visitados 5 restaurantes Outback Steakhouse Shopping Eldorado Outback Ste-akhouse Shopping Villa Lobos Outback Steakhouse Shopping Granja Vianna Outback Ste-akhouse Shopping Uniatildeo de Osasco e Outback Steakhouse Shopping Market Place ondequestionamos sobre o tempo de espera por tamanho de grupos (em nuacutemero de pessoas) epor horaacuterio e dia da semana

Ao analisar os dados coletados pela pesquisa presencial notamos que estes estavam sus-cetiacuteveis a erros por terem sido obtidos por meio de diferentes observaccedilotildees humanas Ummeacutetodo para obter dados mais precisos consistiria na realizaccedilatildeo de novas pesquisas no for-mato mediccedilatildeo onde cada integrante do grupo deveria coletar o tempo de espera de cadacliente atraveacutes de um cronocircmetro e calcular o tempo de espera meacutedio nesse horaacuterio Comoo grupo natildeo conseguiria aplicar este meacutetodo optou-se por melhorar a precisatildeo dos dadoscoletados usando como base o graacutefico de horaacuterios de pico disponibilizado pela Google paracada restaurante Essa melhora foi feita utilizando-se caacutelculos de proporccedilatildeo de valores

24 CAacuteLCULO DA PREVISAtildeO DO TEMPO DE ESPERA NA FILA 11

Primeiro meacutetodo Meacutedia por periacuteodo

Figura 26 Esquema do meacutetodo meacutedia por periacuteodo

Para que uma previsatildeo de espera possa ser fornecida ao usuaacuterio essa deve basear-seobrigatoriamente em alguma informaccedilatildeo preacutevia Contudo encontrar uma fonte para taisdados se mostrou uma tarefa muito complicada Para conseguir ainda assim apresentar umtempo de espera em fila meacutetodos de anaacutelise foram definidos de acordo com a quantidade dedados disponiacutevel para cada estabelecimento

De um modo geral neste modelo o caacutelculo do tempo de espera funcionaraacute da seguinteforma calcular-se-aacute a meacutedia de espera para o dia da semana e horaacuterio requeridos pelousuaacuterio sem diferenciar feriados de dias normais Dependendo de quatildeo longo eacute o histoacutericoniacuteveis de especificidade podem ser adicionados ou seja numa busca tempo de espera em 9de Dezembro (segunda-feira) agraves 19h no restaurante X a query selecionaraacute todos os registrosfeitos no dia 9 de dezembro entre as 19h e agraves 20h dos uacuteltimos anos no restaurante X e realizaraacuteessa meacutedia ou pode selecionar apenas linhas de todas as segundas-feiras do mecircs de Dezembrodeste mesmo periacuteodo

∙ Muitos dados neste caso um maior niacutevel de especificidade pode ser aplicado sem autilizaccedilatildeo de outras fontes para complementar o banco de dados

∙ Alguns dados o niacutevel de especificidade eacute bem menor apenas filtrando por dia dasemana e intervalo de hora sem mecircs ou dia especiacutefico no ano Em alguns casos aquantidade de dados eacute tatildeo pequena que deve-se recorrer a outras fontes A Googletem disponibilizado graacuteficos com a distribuiccedilatildeo dos clientes nos horaacuterios de funciona-mento de estabelecimentos Esses dados natildeo estatildeo disponiacuteveis em sua API ou seja natildeo

12 ESTUDOS PRELIMINARES 24

haacute uma forma automaacutetica para que o aproveitamento desses possa ser feito Poreacutemmesmo omitindo-se os valores do graacutefico o perfil da distribuiccedilatildeo e o horaacuterio de picosatildeo aproveitados manualmente para nosso sistema

∙ Poucos dados para este caso fizemos o balanceamento dos dados da Google comas informaccedilotildees retiradas das entrevistas Aleacutem do aproveitamento das informaccedilotildees daGoogle foram realizadas pesquisas com funcionaacuterios dos restaurantes

Segundo meacutetodo Teoria das filas

Filas podem ser vistas como um sistema dinacircmico no qual existe um conjunto de usuaacuteriosque satildeo atendidos por um conjunto de atendentes de acordo com a ordem de chegada dosusuaacuterios A teoria de filas busca utilizando anaacutelises matemaacuteticas estudar o comportamentodestas filas para estimar o tempo de espera com base em um conjunto inicial de dadospreviamente fornecido[30]

Um sistema de filas possui como caracteriacutesticas

∙ Modelo de chegada dos usuaacuterios Utiliza como base o tempo entre as chegadasdos usuaacuterios

∙ Modelo de serviccedilo (atendimento aos usuaacuterios) Utiliza como base o tempo gastono atendimento ao usuaacuterio No caso dos restaurantes equivale ao tempo que um grupopassa na mesa ateacute a sua saiacuteda

∙ Nuacutemero de servidores Eacute o nuacutemero de atendentes disponiacuteveis no sistema Para omodelo do restaurante este equivale agraves mesas disponiacuteveis no salatildeo

∙ Capacidade do sistema Eacute o nuacutemero de usuaacuterios que o sistema eacute capaz de atenderInclui o nuacutemero de usuaacuterios que estatildeo sendo atendidos somado com os que esperamna fila Se este paracircmetro natildeo for informado o sistema eacute considerado com capacidadeilimitada

∙ Tamanho da populaccedilatildeo nuacutemero potencial de clientes que podem chegar a umsistema Pode ser finito ou infinito

∙ Disciplina da fila A disciplina da fila pode ser FIFO (first in first out) - o primeiroa chegar eacute o primeiro a ser atendido LIFO (last in first out) - o uacuteltimo a chegar eacuteo primeiro a ser atendido ALEATOacuteRIO - os atendimentos satildeo feitos sem qualquerpreocupaccedilatildeo com a ordem de chegada COM PRIORIDADE - os atendimentos satildeofeitos de acordo com prioridades estabelecidas No caso dos restaurantes a disciplinaadotada eacute a FIFO poreacutem esta pode mudar de acordo com o atendente responsaacutevel

Os tempos mencionados nos modelos de chegada e de serviccedilo podem ser constantesquando os intervalos entre as chegadas dos usuaacuterios satildeo iguais ou variaacuteveis quando os valo-res desses intervalos variam Nesse uacuteltimo caso o intervalo de tempo segue uma distribuiccedilatildeode probabilidades Nesse modelo tambeacutem existe a taxa meacutedia de chegada dos usuaacuterios porunidade de tempo ou seja quantos usuaacuterios chegam em uma hora

As filas podem ser moldadas em trecircs situaccedilotildees baacutesicas como descrito por Azmat Nafees[30]

∙ Modelo de fila de canal uacutenico com fila uacutenica e atendimento uacutenico (Figura 27)

24 CAacuteLCULO DA PREVISAtildeO DO TEMPO DE ESPERA NA FILA 13

∙ Modelo de fila de canal uacutenico com fila uacutenica e muacuteltiplos atendimentos paralelos (Fi-gura 28)

∙ Modelo de fila de canal uacutenico com muacuteltiplas filas e muacuteltiplos atendimentos paralelos(Figura 29)

Figura 27 Modelo de fila de canal uacutenico com fila uacutenica e atendimento uacutenico

Figura 28 Modelo de fila de canal uacutenico com fila uacutenica e muacuteltiplos atendimentos paralelos

Figura 29 Modelo de fila de canal uacutenico com muacuteltiplas filas e muacuteltiplos atendimentos paralelos

Tambeacutem por Azmat Nafees nesses modelos trecircs subprocessos podem ser vistos

∙ Processo de chegada Eacute um processo contiacutenuo do evento ldquochegada de clientesrdquo ouseja quando o evento ocorre o processo aguarda a ocorrecircncia do proacuteximo evento Esseevento coloca um cliente na fila quando ele chega

14 ESTUDOS PRELIMINARES 24

∙ Processo de espera Eacute um processo que inclui o evento ldquocomece a servir o proacuteximocliente da filardquo que retira um cliente da fila o coloca no processo de atendimento eespera a conclusatildeo do evento ldquocliente servidordquo para recomeccedilar Nele se trabalha comtamanho e disciplina da fila

∙ Processo de atendimento Eacute um processo que inclui o evento ldquocliente servidordquo eespera a conclusatildeo do evento ldquocomece a servir o proacuteximo cliente da filardquo para recomeccedilarNele se trabalha com tipo taxa e tempo de atendimento

Dentre esses 3 modelos o que mais se encaixa na situaccedilatildeo de um restaurante eacute o segundomodelo canal uacutenico com fila uacutenica e muacuteltiplos atendimentos paralelos O processo de chegadade novos clientes na fila eacute tido como aleatoacuterio

Terceiro meacutetodo Rede Neural

Rede Neural eacute uma teacutecnica computacional inspirada no sistema nervoso que com o auxiacute-lio de um modelo matemaacutetico apresenta respostas para problemas de decisatildeo Esses modelosfuncionam da seguinte forma primeiro um conjunto de dados (conjunto de treinamento) eacuteapresentado ao sistema e este aprende com ele atraveacutes de reconhecimento de padratildeo entatildeocoloca-se o sistema para analisar os dados (conjunto de teste) para os quais deseja-se obteralgum resultado Este processo eacute chamado de aprendizagem de maacutequina Quanto melhor forseu treinamento mais precisas seratildeo as respostas para o segundo conjunto

Uma rede neural eacute formada por subestruturas chamadas neurocircnios Um neurocircnio tem oseguinte funcionamento ele recebe como entrada sinais cada sinal recebe um peso de acordocom a influecircncia dele na saiacuteda e uma soma eacute feita para produzir o niacutevel de atividade entatildeodependendo se o niacutevel de atividade exceder o limite dado pela funccedilatildeo de transferecircncia aresposta eacute produzida[27]

Software Multiple Back-Propagation

Para implementar a soluccedilatildeo baseada em redes neurais foi usado o Software MultipleBack-Propagation [1] Este eacute um software de faacutecil utilizaccedilatildeo que fornece uma rede a qualaprende atraveacutes do processo de propagaccedilatildeo inversa Esse meacutetodo baseia-se na comparaccedilatildeodos dados esperados (conjunto de teste) com os dados obtidos a partir do treinamento senecessaacuterio adaptaccedilotildees satildeo feitas a estrutura da rede para melhor aproximar aos dados doconjunto teste e isso eacute chamado de propagaccedilatildeo inversa

Por se tratar de um meacutetodo de aprendizagem de maacutequinas para se obter um resultadodeve-se treinar o algoritmo Primeiramente submete-se o conjunto de treinamento ao soft-ware para isso foi escolhido o mecircs de Agosto O criteacuterio de parada para o treino eacute o erroquadraacutetico meacutedio o qual teve seu valor atribuiacutedo para 001

Capiacutetulo 3

Tecnologias utilizadas

31 O sistema AndroidAndroid eacute um Sistema operacional open source (software de coacutedigo aberto o qual as

pessoas podem acessar e modificar para contribuir com o projeto [25]) e para dispositivosmoacuteveis desenvolvido pela Google baseado no Kernel do Linux e utilizado principalmente emdispositivos touchscreen Atualmente o Android eacute o sistema operacional que deteacutem a maiorparcela do mercado[17] com 836 dos dispositivos contra 134 do iOS da Apple

A Google tambeacutem oferece um ambiente de desenvolvimento para a plataforma Androidchamado Android Studio no qual os aplicativos satildeo criados e exportados para os dispositi-vos moacuteveis Aplicativos Android satildeo programados na linguagem Java com vaacuterias bibliotecasdisponibilizadas pela Google para suporte ao sistema operacional

A escolha da plataforma foi feita principalmente por conta de o sistema possuir a maiorparte dos usuaacuterios de Smartphones e tambeacutem pela ampla comunidade ativa de desenvolve-dores agrave qual se pode recorrer em casos de duacutevidas e problemas tornando suas resoluccedilotildeesmais raacutepidas e com muacuteltiplas alternativas Outros motivos que contribuiacuteram para a escolhado Android foram

∙ A disponibilidade do ambiente de desenvolvimento Android Studio que possui todosos recursos necessaacuterios para desenvolver um aplicativo funcional logo apoacutes a instalaccedilatildeosem a necessidade de utilizar outras dependecircncias as quais satildeo gerenciadas automati-camente pelo proacuteprio software

∙ O fato de no mercado brasileiro o sistema Android se encontrar em 918 dos dispo-sitivos segundo pesquisa da Kantar[18] e dado a pesquisa realizada para definiccedilatildeo depuacuteblico alvo onde foi possiacutevel perceber que 639 dos entrevistados utilizam smartpho-nes com sistema Android

∙ A utilizaccedilatildeo da linguagem de programaccedilatildeo Java para desenvolvimento que jaacute eraconhecida e fora utilizada anteriormente ao contraacuterio das linguagens Objective C eSwift linguagens utilizadas para desenvolver aplicativos para o sistema iOS Assimcomo a disponibilidade de dispositivos por parte do grupo que em sua maioria era decelulares com o sistema Android

15

16 TECNOLOGIAS UTILIZADAS 31

Figura 31 Parcela de mercado dos dispositivos no Brasil

311 Organizaccedilatildeo de uma aplicaccedilatildeo Android

Aplicativos Android satildeo divididos em componentes Haacute quatro tipos de componentespresentes Activities (ou atividades) Services (ou serviccedilos) Content providers (ou provedoresde conteuacutedo) Broadcast receivers (ou receptores de transmissatildeo)

∙ Activities Satildeo as telas e interfaces do usuaacuterio Cada tela de uma aplicaccedilatildeo eacute repre-sentada por uma activity e cada activity eacute independente de outras apesar de seremcomponentes de uma mesma aplicaccedilatildeo Isso se daacute pelo fato de haver a possibilidade deutilizar activities de aplicativos durante a execuccedilatildeo de outros Atividades satildeo iniciadase se comunicam entre si atraveacutes de objetos chamados Intent que transferem um pacotede dados que pode ser carregado no iniacutecio da nova atividade

∙ Services Sempre satildeo executados em segundo plano sem interferir na experiecircncia dousuaacuterio geralmente para realizar operaccedilotildees longas ou realizar operaccedilotildees de troca dedados enquanto o usuaacuterio estaacute utilizando outra aplicaccedilatildeo em primeiro plano

∙ Content Providers Satildeo gerenciadores de dados de aplicaccedilotildees Android utilizadospara ler e salvar dados compartilhados ou secretos dos aplicativos e do sistema

∙ Broadcast Receivers Satildeo componentes responsaacuteveis por obter eventos que aconte-ceram em outras aplicaccedilotildees ou no sistema e direcionar dados sobre esses eventos paraeventuais aplicaccedilotildees que necessitem destes dados alguns exemplos de eventos obtidospelos receptores de transmissatildeo satildeo tela desligada e bateria fraca

Aleacutem dos componentes uma parte importante de uma aplicaccedilatildeo Android eacute o ArquivoManifest que eacute uma declaraccedilatildeo de permissotildees serviccedilos e exigecircncias de hardware necessaacuterios

33 JSON 17

para o funcionamento do aplicativo Outra funccedilatildeo eacute possuir declaraccedilotildees de todos os compo-nentes utilizados no projeto nomes iacutecones entre outros

As interfaces de usuaacuterio do Android satildeo definidas em arquivos XML (eXtensible MarkupLanguage)[26] nos quais estatildeo declarados todos os layouts e configuraccedilotildees das telas Essesarquivos de layout satildeo depois inflados e satildeo gerados os componentes visuais da aplicaccedilatildeoEssa estrutura tem como objetivo facilitar o design da interface do usuaacuterio jaacute que arquivosxml satildeo de faacutecil compreensatildeo do desenvolvedor

32 JSONJSON ou Javascript Object Notation eacute um formato de dados amplamente utilizado para

troca de informaccedilotildees entre programas Possui uma notaccedilatildeo simples para grande parte dosprogramadores pois se assemelha a convenccedilotildees utilizadas em linguagens de programaccedilatildeomuito conhecidas como C C++ Python e Java O objetivo eacute que ele seja de faacutecil entendi-mento tanto para pessoas como para maacutequinas[11]

Um arquivo JSON eacute organizado como um objeto contendo pares nomevalorseparadospor viacutergulas e dentro de chaves(lsquolsquo rsquorsquo) ou como um array que eacute uma lista de valores separa-dos por viacutergulas e entre colchetes(lsquo[lsquo rsquo]rsquo) Um valor por sua vez pode ser um objeto ou umarray mas tambeacutem um nuacutemero inteiro ou uma String entre outros

Um exemplo de arquivo JSON eacute

1 2 Carros [3 4 Nome Scen ic 5 Marca Renault 6 Ano 20127 8 9 Nome Sentra

10 Marca Nissan 11 Ano 200912 13 ]14

33 Google APIsAPIs (Application Program Interfaces) satildeo interfaces para facilitar a troca de informa-

ccedilotildees entre aplicaccedilotildees utilizando comandos especiacuteficos[15]

Ao longo do desenvolvimento algumas APIs fornecidas pela Google foram utilizadascomo fonte de informaccedilotildees adicionais para o aplicativo

∙ Google Maps Distance Matrix API Esta API eacute utilizada para obter o tempo emsegundos de trajeto entre dois pontos (latlong) no mapa podem ser consultados ostempos de trajeto de carro bicicleta a peacute e utilizando transporte puacuteblico[28] Esta eacute

18 TECNOLOGIAS UTILIZADAS 35

uma API web logo utiliza-se um request http para realizar uma consulta

Por exemplo o request

httpsmapsgoogleapiscommapsapidistancematrixjsonorigins=Seattleampdestinations=Victoria+BCampkey=[user_key]

retorna o JSON

1 2 des t ina t i on_addre s s e s [ Vic tor ia BC Canada ] 3 o r i g in_addre s s e s [ Sea t t l e WA EUA ] 4 rows [5 6 e lements [7 8 d i s t anc e 9 text 172 km

10 value 17166811 12 durat ion 13 text 4 horas 40 minutos 14 value 1680915 16 s t a tu s OK17 18 ]19 20 ] 21 s t a tu s OK22

no qual eacute possiacutevel obter o tempo de trajeto em segundos

∙ Google Maps Android API Esta API eacute utilizada para habilitar o uso de mapasda Google integrados agrave aplicaccedilatildeo jaacute disponiacutevel com todas as funcionalidades de zoome arrastar presentes no aplicativo nativo permitindo tambeacutem a personalizaccedilatildeo comoa adiccedilatildeo de pontos definidos pelo usuaacuterio ao mapa

34 Localizaccedilatildeo do UsuaacuterioOutro serviccedilo que foi utilizado com o intuito de obter o tempo de trajeto e a lista ordenada

de forma personalizada de restaurantes foi a localizaccedilatildeo do usuaacuterio que eacute obtida atraveacutes doGPS presente nos smartphones Um objeto de localizaccedilatildeo eacute criado e realiza a comunicaccedilatildeocom o serviccedilo de localizaccedilatildeo do aparelho Ao obter a localizaccedilatildeo ele lanccedila um evento quepode ser acessado por outras partes da aplicaccedilatildeo obtendo a localizaccedilatildeo mais atualizada dodispositivo

36 CONTROLE DE VERSAtildeO 19

35 Controle de VersatildeoControle de versatildeo eacute uma praacutetica usada para manter a organizaccedilatildeo do coacutedigo e do seu de-

senvolvimento quando muitos desenvolvedores colaboram conjuntamente Existem softwaresque auxiliam essa organizaccedilatildeo registrando todas as mudanccedilas feitas ao longo do processo eque possui recursos que permitem que vaacuterios usuaacuterios trabalhem nos mesmos arquivos semperda de informaccedilotildees

No caso do Git [8] o projeto fica organizado em uma estrutura de aacutervore onde cadacommit (checkpoints criados pelos membros do grupo durante o processo) eacute marcado porum noacute para onde se pode retornar quando necessaacuterio Existem tambeacutem estruturas chama-das branches que satildeo bifurcaccedilotildees na estrutura para que partes do projeto sejam criadasseparadamente sem interferir com a linha principal As branches depois satildeo unidas agrave linhaprincipal atraveacutes do comando merge

Neste projeto o serviccedilo de controle de versatildeo utilizado foi o Bitbucket [2] (que eacute um ser-viccedilo web-based de controle de versatildeo que utiliza Git) com auxiacutelio do software SourceTree[19]que eacute uma interface graacutefica para os serviccedilos do Bitbucket onde eacute possiacutevel visualizar com maisfacilidade as fases do desenvolvimento do projeto e realizar os comandos mais intuitivamente

Figura 32 Interface do SourceTree que mostra o controle de versionamento do projeto

36 Banco de dadosCom o intuito de deixar o aplicativo mais completo guardando informaccedilotildees dos usuaacuterios

e dos estabelecimentos optou-se por utilizar-se um banco de dados Alguns exemplos de

20 TECNOLOGIAS UTILIZADAS 36

banco de dados aprendidos no curso Laboratoacuterio de Banco de Dados foram

∙ SQL (Structured Query Language - Linguagem de Consulta Estruturada)[20] umalinguagem para atualizar deletar e requisitar informaccedilotildees atraveacutes de consultas emtabelas que possuem relaccedilatildeo entre si

∙ noSQL[13] um banco de dados que armazena e recupera informaccedilotildees modeladas deuma forma onde natildeo satildeo usadas tabelas relacionais

Como este uacuteltimo natildeo foi o foco da disciplina por falta de tempo decidiu-se por utilizaacute-lopara que o grupo pudesse aprender melhor esse modelo

Outra decisatildeo tomada foi a hospedagem dos dados na nuvem ou seja colocaacute-los em umservidor que natildeo seja local e conseguir acessaacute-los atraveacutes de uma conexatildeo via internet Dessemodo os dados sempre estaratildeo disponiacuteveis para serem consultados

361 Firebase

Buscando-se atender as decisotildees tomadas sobre o banco de dados procuramos um serviccedilode banco de dados da Google por conter ampla integraccedilatildeo com a plataforma de desenvolvi-mento Android por ser conhecido bastante utilizado e por possuir uma ampla comunidadede desenvolvedores dispostos a oferecer auxiacutelio em foacuteruns de discussatildeo de coacutedigos

Para atender esses requisitos escolheu-se o Firebase Realtime Database[6] desenvolvido edisponibilizado pela Google que consiste em um banco de dados noSQL com armazenamentona nuvem Esse serviccedilo armazena os dados do usuaacuterio no servidor da Google em formatoJSON e a cada alteraccedilatildeo sincroniza em tempo real com todos os clientes conectados

O grupo pode observar as seguintes vantagens de se trabalhar com a ferramenta existea sincronizaccedilatildeo em tempo real dos dados de todos os clientes e sua disponibilidade mesmocom o aplicativo offline ou seja quando o aplicativo natildeo estiver conectado a internet osdados do dispositivo moacutevel seratildeo armazenados e sincronizados com o banco de dados assimque a conexatildeo estiver disponiacutevel novamente Aleacutem disso os desenvolvedores possuem acessoa um console online (figura 33) onde o JSON eacute mostrado numa interface interativa de umaforma mais amigaacutevel e no qual eacute permitido editaacute-lo facilmente

37 CROWDSOURCING 21

Figura 33 Console online do Firebase onde os dados satildeo mostrados de forma mais amigaacutevel eintuitiva

Outra observaccedilatildeo feita foi que o Firebase Realtime Database funciona como o esperadose ele guardar uma coacutepia local dos dados em um arquivo JSON no celular Poreacutem isso natildeofoi visto como um problema pois como essa coacutepia pode ser salva em um arquivo texto oespaccedilo utilizado diminui consideravelmente

Na primeira vez que os dados satildeo criados e todas as vezes em que os dados forem atua-lizados por algum dispositivo moacutevel eacute enviada uma atualizaccedilatildeo que seraacute recebida atraveacutes delisteners por todos os aparelhos que utilizam o aplicativo para que eles atualizem seus res-pectivos JSONs Listeners satildeo interfaces de comunicaccedilatildeo que executam uma seacuterie de accedilotildeesassim que um outro evento esperado acontece

37 CrowdsourcingO termo Crowdsourcing tem origem nas palavras da liacutengua inglesa Crowd (multidatildeo) e

Outsourcing (terceirizaccedilatildeo) e eacute definido pelo dicionaacuterio Merriam Webster como A praacuteticade obtenccedilatildeo de serviccedilos ideias ou conteuacutedo solicitando contribuiccedilotildees de grandes grupos depessoas e especialmente da comunidade online [3] Esta praacutetica eacute utilizada para que sejapossiacutevel agrave comunidade contribuir com dados para algum programa ou serviccedilo como no apli-cativo Waze do qual a principal fonte de dados de tracircnsito acidentes e radares eacute obtida pormeio dos proacuteprios usuaacuterios

Capiacutetulo 4

Desenvolvimento do Projeto

Este capiacutetulo aborda o processo de desenvolvimento do projeto iniciado com o preen-chimento do diagrama Canvas e uma pesquisa de mercado direcionada ao usuaacuterio A partirdas informaccedilotildees coletadas foi possiacutevel projetar um aplicativo que atendesse as necessidadesexpostas pela pesquisa e selecionar as tecnologias necessaacuterias Tambeacutem eacute abordada a aplica-ccedilatildeo dos diferentes meacutetodos de caacutelculo da previsatildeo de tempo de espera que foram estudadose explicados no Capiacutetulo 2 Por fim satildeo expostas as diferentes versotildees do aplicativo duranteo processo e seus detalhes

41 Pesquisa de MercadoAntes de iniciar-se o desenvolvimento praacutetico algumas questotildees foram levantadas se

um aplicativo com as funcionalidades escolhidas seria de alguma forma uacutetil para o usuaacuterioe se sim qual metodologia deveria ser usada para que este produto fosse entregue o maiscompleto possiacutevel ateacute o final do ano Para responder a primeira pergunta desenvolveu-seum questionaacuterio

411 Pesquisa com o usuaacuterio

O questionaacuterio foi desenvolvido para avaliar a viabilidade do aplicativo e suas funciona-lidades e foi criado utilizando-se o Google Forms [9] Essa eacute uma ferramenta desenvolvidapelo Google que possibilita a criaccedilatildeo de formulaacuterios contendo diversos formatos de pergun-tas tanto dissertativas quanto de muacuteltipla escolha

Seguindo os princiacutepios de desenvolvimento de questionaacuterios [4] o conjunto de perguntasfoi mantido curto simples e de faacutecil entendimento Tambeacutem variou-se o tipo de questotildeesentre estruturadas (questotildees com respostas em forma de alternativas) e desestruturadas(questotildees com respostas em formato texto) seguindo esses mesmos princiacutepios para captarmelhor as informaccedilotildees dos entrevistados e evitar erros de entendimento

Com as respostas do questionaacuterio tinha-se o intuito de traccedilar um possiacutevel puacuteblico alvoconhecer seu modo de uso de dispositivos moacuteveis e validar a aplicabilidade de diferentesfuncionalidades pretendidas inicialmente sendo essas engajamento do usuaacuterio atraveacutes denotificaccedilotildees do sistema aceitaccedilatildeo de sugestotildees de locais alternativos avaliaccedilatildeo da existecircnciado problema que queremos resolver (se este aplicativo supre uma necessidade real do usuaacute-rio) e aceitaccedilatildeo do aplicativo

23

24 DESENVOLVIMENTO DO PROJETO 41

Para a divulgaccedilatildeo redes sociais como Facebook [5] e sistemas de mensagem instantacircneascomo WhatsApp foram usados e o envio de respostas foi restrito ateacute trecircs semanas apoacutes suaprimeira postagem Neste periacuteodo foram obtidas 210 respostas as quais ajudaram a definiros aspectos do sistema a ser desenvolvido

O questionaacuterio foi dividido em duas subseccedilotildees perfil do usuaacuterio e funcionalidade Comelas obteve-se os seguintes resultados

41 PESQUISA DE MERCADO 25

Questatildeo 1

Figura 41 Graacutefico pizza da distribuiccedilatildeo das respostas em relaccedilatildeo a idade dos pesquisados

As faixas de idade apresentadas estatildeo desbalanceadas por natildeo terem a mesma quantidadede anos em cada uma poreacutem essa divisatildeo foi pensada levando-se em conta a fluecircncia comtecnologia que cada idade possui Com o resultado verificou-se que do puacuteblico alcanccediladocom a pesquisa a maioria estaacute na faixa de 18 a 25 anos de idade assumida como parcelacom maior conhecimento tecnoloacutegico

Questatildeo 2

Figura 42 Graacutefico pizza da distribuiccedilatildeo das respostas em relaccedilatildeo ao sistema operacional

Esta questatildeo foi pensada para medir a porcentagem de cada sistema operacional pre-sente nos celulares do puacuteblico Com ela descobriu-se que 639 das pessoas dentro desse

26 DESENVOLVIMENTO DO PROJETO 41

grupo possuem o sistema Android enquanto 234 possuem iOS e 38 Windows phoneEssa pergunta foi incluiacuteda para um melhor direcionamento do desenvolvimento do aplicativo

Uma questatildeo levantada ao aplicar esse questionaacuterio foi a dificuldade que algumas pessoasencontraram para identificar a versatildeo do proacuteprio aparelho Poreacutem para manter a consistecircnciadas respostas decidiu-se natildeo mudar nada nesta questatildeo para remediar isso

Questatildeo 3

Figura 43 Graacutefico em barras da distribuiccedilatildeo de frequecircncias mensais de cada local analisado

41 PESQUISA DE MERCADO 27

Questatildeo 4

Figura 44 Graacutefico em pizza da distribuiccedilatildeo de interesse do usuaacuterio no tempo de espera de cadalocal

A princiacutepio viu-se muitas possiacuteveis aplicaccedilotildees para a previsatildeo de tempo de espera Paraentender qual seria a prioridade do puacuteblico as questotildees acima foram incluiacutedas A primeiraverificou a frequecircncia de visitas em alguns locais e a segunda serviu para analisar qualestabelecimento despertava mais interesse nos entrevistados quanto ao quesito fila Nos doiscasos restaurantes se destacaram com o maior interesse

Questatildeo 5

Figura 45 Graacutefico em barras da distribuiccedilatildeo de interesse do usuaacuterio por cada item avaliado

Para acompanhar o dado de espera e fornecer mais informaccedilotildees relevantes ao usuaacuteriosem potencial perguntou-se quais outras informaccedilotildees eles acham interessante saber sobre umdeterminado estabelecimento Com isso descobriu-se que a faixa de preccedilo o trajeto ateacute olocal e o cardaacutepio seriam dados importantes de se obter juntamente com o tempo de espera

28 DESENVOLVIMENTO DO PROJETO 41

Questatildeo 6O que vocecirc costuma fazer para evitar filasNeste ponto testou-se se a soluccedilatildeo proposta atraveacutes do aplicativo resolveria o problema dousuaacuterio de uma forma melhor do que a soluccedilatildeo atualmente utilizada Para isso foi perguntadoo que as pessoas fazem para evitar filas e as principais respostas foram

∙ Evitar horaacuterios de pico

∙ Chegar cedo

∙ Ir em outro lugar caso uma fila seja encontrada

∙ Tentar realizar reservas antecipadamente

∙ Se distrair com livroscelular

Notou-se que as soluccedilotildees utilizadas atualmente natildeo suprem as necessidades dos entre-vistados pois mesmo em horaacuterios natildeo convencionais pode-se encontrar filas ou quandodecide-se esperar na fila muito tempo eacute perdido Concluiu-se que a soluccedilatildeo proposta a par-tir do aplicativo resolve de forma mais abrangente o problema pois ajuda o usuaacuterio a evitarhoraacuterios de pico inesperados

Questatildeo 7

Figura 46 Graacutefico em pizza da distribuiccedilatildeo do meio de transporte utilizado pelos usuaacuterios

Essa questatildeo foi formulada com o objetivo de verificar quais meios de transporte seriamincluiacutedos com previsatildeo de tempo de trajeto no aplicativo Foi verificado que a maioria dosentrevistados utilizam transporte puacuteblico seguido por carro

41 PESQUISA DE MERCADO 29

Questatildeo 8

Figura 47 Graacutefico em pizza da distribuiccedilatildeo do interesse do usuaacuterio pela informaccedilatildeo fornecida

Questatildeo 9

Figura 48 Graacutefico em pizza da distribuiccedilatildeo de quantidade de quilocircmetros que o usuaacuterio sedeslocaria para ir a um local com menos fila

Com essas questotildees foi verificado que algo importante para o usuaacuterio eacute saber de outrosestabelecimentos que possam oferecer tempos de espera menores nas redondezas de onde ousuaacuterio se encontra que eacute uma das funcionalidades que desejaacutevamos utilizar no sistema

30 DESENVOLVIMENTO DO PROJETO 41

Questatildeo 10

Figura 49 Graacutefico em barras da distribuiccedilatildeo de sentimento do usuaacuterio em relaccedilatildeo a notificaccedilatildeode aplicativos

Questatildeo 11

Figura 410 Graacutefico em pizza da distribuiccedilatildeo de opiniatildeo do usuaacuterio sobre desabilitar notificaccedilotildeesem celular

42 PESQUISA DE MERCADO 31

Questatildeo 12

Figura 411 Graacutefico em pizza da distribuiccedilatildeo de opiniatildeo do usuaacuterio sobre habilitar GPS emcelular

A ideia inicial era poder usar o GPS para verificar a localizaccedilatildeo do usuaacuterio e enviarnotificaccedilotildees quando este estivesse parado nas proximidades de algum dos estabelecimentoscadastrados Para que essa funcionalidade possa existir eacute necessaacuterio que o aplicativo tenhaacesso agrave localizaccedilatildeo precisa da pessoa atraveacutes do GPS ou internet ateacute mesmo quando natildeoestiver aberto Aleacutem disso tambeacutem eacute necessaacuterio que as notificaccedilotildees estejam habilitadas parafinalizar esta interaccedilatildeo Entatildeo as perguntas 10 11 e 12 foram incluiacutedas no questionaacuterio Ob-servando as respostas foi possiacutevel verificar que 295 das pessoas que responderam deixamambas as funcionalidades habilitadas (GPS e notificaccedilotildees) Com isso pudemos prosseguircom essa ideia e tambeacutem pensar em possiacuteveis alternativas de interaccedilatildeo e engajamento como usuaacuterio

Por conta dessa pesquisa ter sido compartilhada atraveacutes das contas das redes sociais ecomunicadores dos componentes deste grupo sabe-se que este pode apresentar um resultadoviesado mas que mesmo assim natildeo deve ser desconsiderado e que muito ajudou a sanar asduacutevidas iniciaisComo resultado traccedilamos o perfil do entrevistado

∙ Faixa etaacuteria predominante entre 18 e 30 anos

∙ Possui sistema operacional Android (versotildees 4 5 e 6)

∙ Vai a restaurantes com certa frequecircncia mensal resultando em interesses sobre infor-maccedilotildees relacionadas a esse estabelecimento

∙ Costuma chegar cedo ou evitar os horaacuterios de pico para evitar filas nos locais

∙ Carro e transporte coletivo satildeo os principais meios de transporte

∙ Se deslocaria para um estabelecimento semelhante que possui menos fila contanto queeste fique num raio de 2km de distacircncia

32 DESENVOLVIMENTO DO PROJETO 43

42 Projeto do AplicativoO grupo comeccedilou o projeto com o preenchimento do diagrama Canvas(figura 412) apre-

sentado na Seccedilatildeo 21 Desse modo foi adquirida uma ideia mais consistente e uma base paracomeccedilar a implementaccedilatildeo

Figura 412 Diagrama Canvas preenchido pelo grupo

Com o modelo de negoacutecios definido e com base no resultado da pesquisa com o usuaacuterioapresentada na seccedilatildeo seguinte foram aplicadas pequenas mudanccedilas no projeto para melhoradequar-se agraves necessidades e ao perfil do puacuteblico alvo

Para o desenvolvimento foi utilizado um meacutetodo aacutegil baseado no scrum com sprints de3 a 4 semanas devido agrave disponibilidade dos membros do grupo Os encontros natildeo eram diaacute-rios como recomendado para o meacutetodo scrum tambeacutem em razatildeo da disponibilidade Haviamstand ups (discussotildees raacutepidas no comeccedilo de cada encontro) e retrospectivas ao final de cadasprint A cada sprint eram selecionadas histoacuterias e tarefas para serem executadas e caso natildeofossem concluiacutedas ao final da iteraccedilatildeo eram inseridas ao backlog e feitas no sprint seguinte

43 Aplicaccedilatildeo dos meacutetodos de caacutelculo de espera

431 Aplicando a meacutedia por periacuteodo

Aplicando-se no trecho abaixo a teacutecnica desenvolvida na Seccedilatildeo 242 para uma queryrealizada no dia 19082016 no intervalo de 2040 - 2055 analisa-se a semana anterior quepossua tais intervalos Assim o saacutebado dia 06082016 seraacute selecionado

43 APLICACcedilAtildeO DOS MEacuteTODOS DE CAacuteLCULO DE ESPERA 33

Entrada Qtd Pessoas Notificado Espera

6816 2043 2 862016 2053 1606

6816 2044 2 862016 2055 674

6816 2048 2 862016 2056 528

6816 2048 2 862016 2057 520

6816 2051 2 862016 2107 1118

6816 2051 3 862016 2110 1305

6816 2052 2 862016 2110 1273

6816 2052 2 862016 2111 1179

6816 2053 2 862016 2112 1217

6816 2053 2 NULL 59

6816 2054 3 862016 2119 1541

6816 2055 2 862016 2117 1444

6816 2055 2 862016 2120 1570

6816 2055 2 862016 2122 1613

Tabela 41 Trecho do dia 06082016 entre os horaacuterios das 2043 agraves 2055 um intervalo de 12minutos retirado dos dados da empresa Get In

Com esses dados obteve-se a meacutedia de espera de 1080 segundos (18 minutos) a qualseria sugerida para o usuaacuterio com a busca e desvio padratildeo de 465144719 segundos (775 mi-nutos) Dentro desse intervalo tem-se como maacuteximo tempo de espera 1613 segundos (2688minutos) e como miacutenimo 59 segundos (1 minuto) Analisando-se os dados do dia 19082016no mesmo periacuteodo temos

34 DESENVOLVIMENTO DO PROJETO 43

Entrada Pessoas Notificado Espera Erro previsatildeo Erro p 2 pessoas

19816 2043 2 8192016 2051 544 -563 522

19816 2043 2 8192016 2052 605 -502 461

19816 2044 2 8192016 2056 723 -384 343

19816 2046 4 8192016 2119 1988 881 X

19816 2048 2 8192016 2102 919 188 147

19816 2051 2 8192016 2103 821 286 245

19816 2051 3 8192016 2108 1773 666 X

19816 2053 2 8192016 2110 1083 24 -17

19816 2053 2 8192016 2111 1105 2 -39

19816 2053 2 8192016 2112 1169 62 -103

19816 2055 2 8192016 2114 1447 340 -381

Tabela 42 Trecho do dia 19082016 entre os horaacuterios das 2043 agraves 2055um intervalo de 12minutos retirado dos dados da empresa Get In

Ou seja se um grupo chegasse dentro desse periacuteodo e a previsatildeo dada fosse a meacutediaobtida anteriormente o erro calculado pela diferenccedila entre o tempo sugerido e o real tempode espera estaria no intervalo de 15 minutos para menos ou 8 minutos para mais Sendoesse um valor aceitaacutevel

Um proacuteximo passo eacute a restriccedilatildeo dos registros a grupos com 2 integrantes Com tal restri-ccedilatildeo a previsatildeo de espera eacute de 1066 segundos (1776 minutos) Aplicando essa nova meacutedia aosregistros com 2 integrantes do dia 19082016 obteacutem-se um erro (Coluna 6 - erro previsatildeopara 2 pessoas) menor do que o anterior O intervalo do erro calculado neste caso seria de 522segundos (87 minutos) para mais e 381 segundos (635 minutos) para menos Este resultadoeacute ainda mais favoraacutevel mostrando que a inclusatildeo de mais filtros para o caacutelculo da previsatildeomelhorou o tempo previsto

432 Aplicando teoria das filas

A teoria das filas (Seccedilatildeo 242) eacute uma ferramenta muito completa que calcula muitos dadosuacuteteis para a previsatildeo de espera Contudo por conta da necessidade de informaccedilotildees sobreo tempo de atendimento a qual natildeo estaacute contida no banco utilizado esta teoria natildeo podeser aplicada neste caso Poreacutem esse dado pode ter um valor assumido para que a utilizaccedilatildeodessa teoria fosse possiacutevel entretanto a sua precisatildeo ficaria comprometida e imprevisiacutevel

433 Aplicando redes neurais

Para aplicar o que foi estudado na Seccedilatildeo 242 foi executado o software com o mecircs deAgosto como teste o mecircs de Setembro como treino e o limite do erro quadraacutetico como 001 eobteve-se a tabela presente no apecircndice B Na tabela podemos ver o tempo de fila esperadoou seja o tempo contido na tabela do mecircs de Setembro o tempo que o algoritmo deu comoresposta baseado no mecircs de Agosto e o erro entre eles respectivamente

44 DEFINICcedilAtildeO DA INTERFACE DO APLICATIVO 35

Figura 413 Software Multiple Back-Propagation com a configuraccedilatildeo escolhida para os dadosdisponiacuteveis

Mesmo o erro se mantendo em 0018 os dados obtidos possuem um erro padratildeo de 15minutos Se mais dados forem adicionados o criteacuterio de parada pode ser atingido e assimuma previsatildeo melhor pode ser alcanccedilada

434 Conclusatildeo sobre os meacutetodos estudados

Dentre todas as possibilidades estudadas visualizamos na meacutedia por periacuteodo a melhoropccedilatildeo assumindo os dados disponiacuteveis para teste Se mais paracircmetros fossem fornecidoscomo o tempo de atendimento a teoria das filas seria uma boa opccedilatildeo para fornecer a pre-visatildeo de espera E se mais dados estivessem disponiacuteveis as redes neurais conseguiriam umaaproximaccedilatildeo melhor e assim seria uma boa opccedilatildeo tambeacutem

44 Definiccedilatildeo da Interface do aplicativoComo um primeiro protoacutetipo foi desenvolvida uma interface simples que tinha como tela

de iniacutecio um mapa com um campo para buscas na parte superior

36 DESENVOLVIMENTO DO PROJETO 44

Figura 414 Fluxo de telas do primeiro protoacutetipo

Ao efetuar uma busca por algum estabelecimento uma tela mostrando o tempo de esperaaproximado da fila no local era exibida junto com bototildees que permitiam selecionar o meiode transporte visualizar outras opccedilotildees ou dar iniacutecio a rota ateacute o local desejado Tambeacutemhavia uma notificaccedilatildeo para quando a pessoa estivesse parada proacutexima a um restaurantecadastrado que direcionaria o usuaacuterio a uma tela com um cronocircmetro do tempo de esperana fila

Para testar essa visualizaccedilatildeo escolhemos algumas pessoas e realizamos um teste deusabilidade[22] este teste eacute feito da seguinte forma

44 DEFINICcedilAtildeO DA INTERFACE DO APLICATIVO 37

Uma contextualizaccedilatildeo eacute feita para o voluntaacuterio e entatildeo uma tarefa eacute passada para sercompletada Os integrantes do grupo observam dificuldades enfrentadas pelo entrevistado etomam notas Esse teste eacute repetido algumas vezes e seu resultado eacute coletado para avaliaccedilatildeoe modificaccedilatildeo das funcionalidades

Figura 415 Tela de detalhes de um restaurante(segunda versatildeo)

Notou-se que algumas funcionalidadespareceram confusas e natildeo intuitivas porexemplo natildeo ficou claro se o tempo mos-trado era de trajeto ou de espera na filanem qual era o meio de transporte utili-zado

Logo esse protoacutetipo foi reformuladocom o intuito de melhorar a experi-ecircncia do usuaacuterio com o nosso aplica-tivo

Foram colocados aleacutem do tempo deespera da fila o tempo que o usuaacuteriolevaria para chegar ateacute o local selecio-nado (conforme o tipo de transporte es-colhido) e a quantidade estimada de pes-soas na fila O tempo total (espera so-mado ao tempo de deslocamento) ga-nhou destaque entre as informaccedilotildees doestabelecimento e o botatildeo que direcionao usuaacuterio ao trajeto ficou mais especiacute-fico

Tambeacutem cogitou-se a possibilidade deadicionar login e um perfil de usuaacuteriojunto com uma lista de restaurantes favo-ritos

O fluxo das telas deste novo protoacutetipo ficou como mostra o esquema a seguir

38 DESENVOLVIMENTO DO PROJETO 44

Figura 416 Fluxo de telas do segundo protoacutetipo

44 DEFINICcedilAtildeO DA INTERFACE DO APLICATIVO 39

Figura 417 Tela de detalhes de um restaurante(terceira versatildeo)

Apoacutes outras avaliaccedilotildees mais algumaspequenas alteraccedilotildees foram realizadas nainterface Foi decidido que seria inviaacute-vel estimar o nuacutemero de pessoas nafila entatildeo essa funcionalidade foi remo-vida

Notificaccedilotildees foram adicionadas paraquando o usuaacuterio estiver parado na aacutereado restaurante para que ele possa con-tribuir com informaccedilotildees sobre a fila quepegou aleacutem de um botatildeo de contri-buiccedilatildeo ter sido inserido na tela ini-cial

40 DESENVOLVIMENTO DO PROJETO 45

O fluxo de telas do aplicativo atual ficou da seguinte forma

Figura 418 Fluxo de telas do terceiro protoacutetipo

46 EXPLICACcedilAtildeO DAS FUNCIONALIDADES 41

45 Explicaccedilatildeo das funcionalidadesEsta seccedilatildeo explica as funcionalidades do produto utilizando a figura 418

A tela inicial (3) exibe uma lista de restaurantes incluindo seus respectivos tempos detrajeto e tempo de espera na fila Ao clicar no botatildeo ldquo+rdquo uma caixa de diaacutelogo eacute aberta(4) onde eacute possiacutevel adicionar o tempo que o usuaacuterio esperou na fila Primeiro eacute escolhido orestaurante depois a data e hora que a pessoa chegou na fila e por fim o tempo de esperaem minutos Ao tocar em ldquoEnviar Feedback rdquo os dados satildeo incluiacutedos no banco de dados eatualizados para os outros usuaacuterios Assim eacute apicado o conceito de Crowdsourcing no apli-cativo

Ao tocar em um item da lista de restaurantes seraacute aberta a tela de detalhes de um res-taurante (5) na qual eacute possiacutevel ver com mais clareza os tempos de trajeto e espera o tempototal o endereccedilo do estabelecimento e um pequeno mapa centrado no local Pressionandoo botatildeo ldquoDireccedilotildeesrdquo o usuaacuterio seraacute redirecionado ao aplicativo de mapas de sua preferecircnciano caso do exemplo (8) o Google Maps jaacute traccedilando a rota da localizaccedilatildeo do usuaacuterio para oestabelecimento em questatildeo

Novamente na tela inicial tocando no iacutecone de lupa eacute possiacutevel realizar uma busca digi-tando o nome do estabelecimento na caixa de texto a qual exibe sugestotildees dependendo doque foi digitado Ao clicar em um dos resultados da busca o usuaacuterio eacute novamente direcionadopara a tela de detalhes do restaurante (5)

Tambeacutem eacute possiacutevel tocar no iacutecone de mapa na tela inicial onde seraacute mostrado um mapacentrado na localizaccedilatildeo do usuaacuterio

Ao ficar parado por um tempo em um mesmo local proacuteximo a um estabelecimentocadastrado o usuaacuterio eacute perguntado em uma notificaccedilatildeo quanto tempo ele permaneceu nafila Ao tocar na notificaccedilatildeo a caixa de diaacutelogo para feedback do usuaacuterio seraacute aberta (4) jaacutecom o restaurante preenchido e apoacutes o feedback a janela seraacute fechada e os dados enviadosao banco de dados

46 Implementaccedilatildeo do banco de dadosO banco de dados do aplicativo foi modelado e populado em forma de aacutervore (Fi-

gura 419) de forma a facilitar o acesso aos dados necessaacuterios ao aplicativo No primeironiacutevel estatildeo os ids dos restaurantes Cada id de restaurante guarda a localizaccedilatildeo (latitudelongitude) do restaurante o nome o endereccedilo e um objeto fila O objeto fila guarda todos osdias da semana (domingo a saacutebado) e cada dia da semana possui 24 campos um para cadahora do dia Cada hora possui o tempo meacutedio de espera da fila naquela hora e um peso paraesse tempo O peso eacute um valor que aumenta de acordo com o nuacutemero de feedbacks dadospara que o novo valor do tempo meacutedio seja calculado de forma consistente

Modelamos o banco de dados de uma forma que respeitasse uma hierarquia de dados

42 DESENVOLVIMENTO DO PROJETO 46

Figura 419 Aacutervore que ilustra a organizaccedilatildeo de um restaurante no banco de dados

Com o banco de dados jaacute populado o aplicativo faz consultas e atualizaccedilotildees de dadosConsultas satildeo feitas ao criar a tela de listagem de restaurantes e de detalhes de um restau-rante consultado As atualizaccedilotildees satildeo feitas quando o usuaacuterio manda o feedback de tempo deespera em um estabelecimento em determinado horaacuterio o aplicativo calcula a nova meacutedia eatualiza o campo do respectivo horaacuterio

Capiacutetulo 5

Conclusatildeo

Ao longo dos capiacutetulos deste trabalho pocircde-se acompanhar todo o processo de criaccedilatildeo edesenvolvimento do aplicativo que apoacutes finalizado foi batizado com o nome Queue

Comeccedilando com um problema para o qual o grupo almejava oferecer uma soluccedilatildeoacabou-se por adentrar-se um pouco no campo da Estatiacutestica e estudar diversas metodo-logias que poderiam ser uacuteteis para fornecer um caacutelculo de previsatildeo de espera meacutedia porperiacuteodo aplicaccedilatildeo da teoria das filas e utilizaccedilatildeo de redes neurais

Atraveacutes de uma parceria com a empresa GetIn obteve-se acesso a uma grande quantidadede dados e foi possiacutevel utilizaacute-los em anaacutelises feitas nas metodologias escolhidas conseguindoassim resultados relevantes Por meio destes foi feita a escolha de um dos meacutetodos para ocaacutelculo da previsatildeo de filas a meacutedia por periacuteodo

Aleacutem desses estudos ao longo do ano o grupo aprendeu a desenvolver para a plata-forma Android sobre a qual nenhum dos integrantes tinha conhecimento preacutevio Tambeacutemfoi possiacutevel aprender e utilizar a metodologia aacutegil com Scrum para guiar o processo de de-senvolvimento

Ao fim do ciclo de desenvolvimento conseguiu-se entregar um aplicativo em funciona-mento que fornece a previsatildeo de espera no instante da consulta de estabelecimentos cadas-trados no banco de dados armazenado na nuvem

Na versatildeo atual do aplicativo natildeo foi implementado um sistema para o cadastro de novosestabelecimentos Isso soacute eacute possiacutevel atraveacutes da inserccedilatildeo direta no banco de dados atraveacutes dainterface fornecida pelo console do Firebase Atualmente estatildeo cadastrados 5 restaurantesos quais foram visitados durante o desenvolvimento do projeto Para que o cadastro deestabelecimentos escale seria necessaacuterio a implementaccedilatildeo de uma funcionalidade que permitaao usuaacuterio adicionar novos estabelecimentos a partir de locais disponiacuteveis na API de locaisda Google

43

45

46 APEcircNDICE A

Apecircndice A

Dados coletados

Figura A1 Dados de tempo de espera para grupos de tamanhos variados para cada horaacuterio e emcada dia da semana obtidos em entrevista em restaurantes Outback Steakhouse Shopping Uniatildeo nomecircs de outubro

Referecircncias Bibliograacuteficas

[1] Backpropagation httpmbpsourceforgenet Accesso em Janeiro 2017 14

[2] Bitbucket httpsbitbucketorgproduct Accesso em Dezembro 2016 19

[3] Crowdsourcing httpswwwmerriam-webstercomdictionarycrowdsourcing Ac-cesso em Novembro 2016 21

[4] Designing a survey httpwwwsciencebuddiesorgscience-fair-projectsproject_ideasSoc_surveyshtml Accesso em Outubro 2016 4 23

[5] Facebook httpswwwfacebookcom Accesso em Novembro 2016 24

[6] Firebase httpsfirebasegooglecom Accesso em Agosto 2016 20

[7] Getin app httpswwwgetinappcombrhomesao-paulo Accesso em Novembro2016 9

[8] Git 11 primeiros passos - sobre controle de versatildeo httpsgit-scmcombookpt-brv1Primeiros-passos-Sobre-Controle-de-Vers Accesso em Novembro 2016 19

[9] Google forms httpsdocsgooglecomforms Accesso em Novembro 2016 23

[10] Guia definitivo do project model canvas Project Builder 3

[11] Jsonorg introducing json httpwwwjsonorg Accesso em Novembro 2016 17

[12] Manifesto para desenvolvimento Aacutegil de software httpagilemanifestoorgisoptbrmanifestohtml Accesso em Novembro 2016 5

[13] Nosql httpsenwikipediaorgwikiNoSQL Accesso em Novembro 2016 20

[14] Outback steakhouse httpswwwoutbackcombrhome Accesso em Novembro 20169

[15] Restful api development with lumen microframework httpsbelitsoftcomlaravel-development-servicesapi-development Accesso em Novembro 2016 17

[16] Scrum httpswwwatlassiancomagilescrum Accesso em Novembro 2016 5

[17] Smartphone os market share 2016 q2 httpwwwidccomprodservsmartphone-os-market-sharejsp Accesso em Novembro 2016 15

[18] Smartphone os sales market share kantar worldpanel comtech httpwwwkantarworldpanelcomsmartphone-os-market-share Accesso em Novembro 2016 15

[19] Sourcetree httpswwwsourcetreeappcom Accesso em Dezembro 2016 19

47

48 REFEREcircNCIAS BIBLIOGRAacuteFICAS

[20] Sql httpsptkhanacademyorgcomputingcomputer-programmingsql Accesso emDezembro 2016 20

[21] Trello httpstrellocom Accesso em Novembro 2016 6

[22] Usability test httpsenwikipediaorgwikiUsability_testing Accesso em Novembro2016 36

[23] Versionone 2012 agile dev survey httpswwwversiononecompdf7th-Annual-State-of-Agile-Development-Surveypdf Accesso em Novembro 2016 5

[24] Waze httpswwwwazecom Accesso em Novembro 2016 1

[25] What is an open source httpsopensourcecomresourceswhat-open-source Accessoem Novembro 2016 15

[26] Xml tutorial httpwwww3schoolscomxml Accesso em Novembro 2016 17

[27] Paulo F Cabral dos Anjos Jr Aron Ifanger Maciel Christopher Silva de Paacutedua Com-posiccedilatildeo de carteiras de accedilotildees utilizando modelo de redes neurais artificiais e modelo derisco e retorno de Markowitz 2012 14

[28] Google Distance matrix api documentation httpsdevelopersgooglecommapsdocumentationdistance-matrix Accesso em Novembro 2016 17

[29] Alan Klement Designing features using job stories httpsblogintercomcomusing-job-stories-design-features-ui-ux Accesso em Novembro 2016 6

[30] Azmat Nafees Queuing theory and its application analysis of the sales checkout opera-tion in ica supermarket httpwwwstatisticsduseessaysD07ENafeespdf Accessoem Novembro 2016 12

[31] Eric Ries A Startup Enxuta Lua de papel primeira ediccedilatildeo edition 2012 3

  • Introduccedilatildeo
    • Motivaccedilatildeo
    • Trabalho Proposto
    • Estrutura da monografia
      • Estudos Preliminares
        • Desenvolvimento de Startups
          • Desenvolvimento de Questionaacuterios
            • Metodologia Aacutegil
            • Jobs to be done
            • Caacutelculo da previsatildeo do tempo de espera na fila
              • Descriccedilatildeo do problema
              • Meacutetodos de caacutelculo da espera
                  • Tecnologias utilizadas
                    • O sistema Android
                      • Organizaccedilatildeo de uma aplicaccedilatildeo Android
                        • JSON
                        • Google APIs
                        • Localizaccedilatildeo do Usuaacuterio
                        • Controle de Versatildeo
                        • Banco de dados
                          • Firebase
                            • Crowdsourcing
                              • Desenvolvimento do Projeto
                                • Pesquisa de Mercado
                                  • Pesquisa com o usuaacuterio
                                    • Projeto do Aplicativo
                                    • Aplicaccedilatildeo dos meacutetodos de caacutelculo de espera
                                      • Aplicando a meacutedia por periacuteodo
                                      • Aplicando teoria das filas
                                      • Aplicando redes neurais
                                      • Conclusatildeo sobre os meacutetodos estudados
                                        • Definiccedilatildeo da Interface do aplicativo
                                        • Explicaccedilatildeo das funcionalidades
                                        • Implementaccedilatildeo do banco de dados
                                          • Conclusatildeo
                                          • Dados coletados
                                          • Referecircncias Bibliograacuteficas

23 JOBS TO BE DONE 7

Tambeacutem segundo Alan Klement Use Cases possuem 3 grandes problemas usam perso-nas casam implementaccedilotildees motivaccedilotildees e resultado e ignoram contexto situaccedilotildees e ansie-dades

Se uma funcionalidade definida por uma Use Case falhar seraacute difiacutecil identificar o pro-blema pois por casar informaccedilotildees diferentes surgiraacute a dificuldade de saber o que estaacute erradoa implementaccedilatildeo as suposiccedilotildees sobre as motivaccedilotildees ou os resultados

Observando-se esses fatos optou-se pelo uso da metodologia Jobs to Be Done pois haacuteuma mudanccedila na forma de fazer histoacuterias a fim de evitar os problemas observados em Per-sonas e Use Cases(Figura 24) Nesse modelo as Personas satildeo pessoas reais e as histoacuterias satildeoescritas com a seguinte divisatildeo situaccedilatildeo motivaccedilatildeo e resultados esperados

Nessa metodologia criamos histoacuterias descrevendo tarefas para que os usuaacuterios se colo-quem na situaccedilatildeo descrita Observando-os eacute possiacutevel saber se a tarefa foi realizada de formabem sucedida e caso contraacuterio identificar onde e o que estaacute causando a falha no instanteda realizaccedilatildeo dela

Figura 24 Diferenccedila entre estruturas de histoacuterias

8 ESTUDOS PRELIMINARES 24

Algumas das histoacuterias criadas para os testes de interface do grupo foram

∙ Quando eu estiver na tela de lista de restaurantes eu quero acessar a tela de detalhesdo restaurante que eu desejo saber o tempo de espera entatildeo eu posso ver com clarezaas informaccedilotildees e posso traccedilar uma rota para o estabelecimento

∙ Quando eu estiver na tela principal eu quero enviar meu feedback sobre o tempo deespera no estabelecimento que estou entatildeo eu posso ajudar outros usuaacuterios por meiodo aplicativo

24 Caacutelculo da previsatildeo do tempo de espera na filaAtraveacutes de pesquisas em busca de meacutetodos estatiacutesticos para se estudar o comportamento

das filas foram encontradas as trecircs metodologias descritas nesta seccedilatildeo Este capiacutetulo conteacutema explicitaccedilatildeo do problema estudado e suas possiacuteveis soluccedilotildees

241 Descriccedilatildeo do problema

Para que se chegasse a uma soluccedilatildeo apropriada o problema de espera em fila precisouser estudado Esse problema pode ser descrito da seguinte forma dado um restaurante aentrada nesse eacute atraveacutes de uma fila Essa fila tem seu tamanho redefinido agrave medida quenovos clientes chegam e saem dela A saiacuteda dos clientes pode ser devido a desistecircncia ou aacomodaccedilatildeo deles nas mesas A entrada eacute definida pela disponibilizaccedilatildeo de lugares livres agravemedida em que os grupos que estavam alocados terminam seu atendimento

Figura 25 Esquema simplificado do funcionamento do processo em um restaurante

A fila de espera eacute influenciada por dois fatores a taxa de chegada do cliente e a taxa deatendimento nas mesas

∙ chegada em restaurantes a chegada de clientes eacute definida por uma taxa O clienteneste caso representa um grupo com tamanho variaacutevel A distribuiccedilatildeo do tamanho dogrupo nas chegadas eacute variaacutevel

∙ O atendimento a alocaccedilatildeo do grupo eacute organizada pela recepccedilatildeo O meacutetodo utilizadopor eles natildeo eacute padronizado e muitas vezes eacute completamente subjetivo Por exemplose acontecer de um grupo grande e vaacuterios casais chegarem ao mesmo tempo e nesse

24 CAacuteLCULO DA PREVISAtildeO DO TEMPO DE ESPERA NA FILA 9

momento existir um espaccedilo no salatildeo que acomode o grupo (juntando as mesas) outodos os casais (com as mesas separadas) dependendo de quem estaacute responsaacutevel poralocaacute-los cada um receberaacute uma prioridade diferente e essa decisatildeo natildeo eacute padronizada

∙ A disposiccedilatildeo das mesas a disposiccedilatildeo e quantidade de mesas natildeo satildeo padronizadasentre restaurantes de uma mesma rede muito menos entre restaurantes diferentesAleacutem disso a formataccedilatildeo do salatildeo pode ser remodelada de acordo com a necessidadede alocaccedilatildeo dos clientes haacute gerentes que evitam essa movimentaccedilatildeo ou ateacute mesmorestaurantes que natildeo tecircm essa possibilidade

242 Meacutetodos de caacutelculo da espera

Com o problema desenhado desta maneira esboccedilou-se trecircs possiacuteveis meacutetodos de resoluccedilatildeoe um desses foi aplicado na soluccedilatildeo final Os meacutetodos desenvolvidos satildeo meacutedia por periacuteodoaplicaccedilatildeo da teoria das filas e utilizaccedilatildeo de redes neurais Essas teacutecnicas precisam de dadospara serem desenvolvidas e aplicadas Por conta disso buscou-se fontes que suprissem essanecessidade

Captaccedilatildeo dos dados para a anaacutelise

Para que seja possiacutevel aplicar os meacutetodos estudados eacute necessaacuterio obter dados para aplicarna anaacutelise Estes foram obtidos de duas formas a partir de uma parceria com a empresa GetIn [7] desenvolvedora de um aplicativo de gerenciamento de filas de restaurantes e atraveacutesde pesquisas presenciais em restaurantes da rede Outback Steakhouse[14] selecionados para oestudo(Apecircndice A) O aplicativo da Get In possui uma funcionalidade principal realizaccedilatildeode uma reserva em um determinado restaurante O banco de dados manteacutem o registro detodos os usuaacuterios que entram na fila e esses dados satildeo organizados em uma tabela com osseguintes campos

∙ Origem Se a reserva foi realizada de forma remota ou presencial Assim

1 Reserva presencial (na entrada do restaurante incluiacuteda pela recepcionista)

2 Reserva remota (realizada atraveacutes do aplicativo)

∙ Entrada este consiste na data e hora que o usuaacuterio entrou na fila

∙ Qtd Pessoas tamanho do grupo para o qual a reserva foi feita

∙ Prioritaacuterio se este grupo requer atendimento prioritaacuterio

0 Natildeo

1 Sim

∙ Notificado A data e horaacuterio em que o grupo foi notificado que sua mesa estava pronta

ndash Quando NULL a recepcionista natildeo notificou essa pessoa (possivelmente chamoudiretamente pelo nome)

∙ Tempo na Espera Tempo que o grupo ficou ativo na fila de espera (em segundos)

∙ Status Qual a situaccedilatildeo da reserva do grupo Podendo assumir tais valores

0 Cancelado pela recepcionista

10 ESTUDOS PRELIMINARES 24

2 Sentado

3 Cancelado pelo proacuteprio Usuaacuterio

Para melhor entender estes paracircmetros o funcionamento do aplicativo deve ser expli-cado com maior detalhamento O processo de reserva funciona da seguinte forma o usuaacuterioreserva seu lugar atraveacutes do aplicativo ou vai ao restaurante e a recepcionista o adiciona agraveespera No primeiro caso o usuaacuterio tem um tempo de toleracircncia para chegar ao estabeleci-mento apoacutes receber a notificaccedilatildeo caso natildeo consiga chegar a tempo a reserva eacute cancelada Nosegundo caso quando o grupo a ser chamado estaacute proacuteximo da recepccedilatildeo a funcionalidade denotificaccedilatildeo natildeo precisa ser usada o responsaacutevel pode se direcionar diretamente aos clientes echamaacute-los pelo nome Mesmo nesse segundo caso o tempo de espera na fila ainda eacute guardadopois a recepccedilatildeo precisa ldquofecharrdquo a espera do grupo para chamar o proacuteximo

Poreacutem a utilizaccedilatildeo desses dados natildeo foi liberada pela empresa Get In para serem usadoscomo banco de dados do aplicativo somente foram fornecidos dados do mecircs de agosto esetembro de 2016 para que fossem utilizados nas anaacutelises feitas com os modelos estatiacutesticosPara obter dados que poderiam ser utilizados no banco de dados do aplicativo foi neces-saacuterio uma pesquisa presencial onde o grupo visitou alguns restaurantes da rede OutbackSteakhouse para obter informaccedilotildees sobre o tempo de espera nestes estabelecimentos

Foram visitados 5 restaurantes Outback Steakhouse Shopping Eldorado Outback Ste-akhouse Shopping Villa Lobos Outback Steakhouse Shopping Granja Vianna Outback Ste-akhouse Shopping Uniatildeo de Osasco e Outback Steakhouse Shopping Market Place ondequestionamos sobre o tempo de espera por tamanho de grupos (em nuacutemero de pessoas) epor horaacuterio e dia da semana

Ao analisar os dados coletados pela pesquisa presencial notamos que estes estavam sus-cetiacuteveis a erros por terem sido obtidos por meio de diferentes observaccedilotildees humanas Ummeacutetodo para obter dados mais precisos consistiria na realizaccedilatildeo de novas pesquisas no for-mato mediccedilatildeo onde cada integrante do grupo deveria coletar o tempo de espera de cadacliente atraveacutes de um cronocircmetro e calcular o tempo de espera meacutedio nesse horaacuterio Comoo grupo natildeo conseguiria aplicar este meacutetodo optou-se por melhorar a precisatildeo dos dadoscoletados usando como base o graacutefico de horaacuterios de pico disponibilizado pela Google paracada restaurante Essa melhora foi feita utilizando-se caacutelculos de proporccedilatildeo de valores

24 CAacuteLCULO DA PREVISAtildeO DO TEMPO DE ESPERA NA FILA 11

Primeiro meacutetodo Meacutedia por periacuteodo

Figura 26 Esquema do meacutetodo meacutedia por periacuteodo

Para que uma previsatildeo de espera possa ser fornecida ao usuaacuterio essa deve basear-seobrigatoriamente em alguma informaccedilatildeo preacutevia Contudo encontrar uma fonte para taisdados se mostrou uma tarefa muito complicada Para conseguir ainda assim apresentar umtempo de espera em fila meacutetodos de anaacutelise foram definidos de acordo com a quantidade dedados disponiacutevel para cada estabelecimento

De um modo geral neste modelo o caacutelculo do tempo de espera funcionaraacute da seguinteforma calcular-se-aacute a meacutedia de espera para o dia da semana e horaacuterio requeridos pelousuaacuterio sem diferenciar feriados de dias normais Dependendo de quatildeo longo eacute o histoacutericoniacuteveis de especificidade podem ser adicionados ou seja numa busca tempo de espera em 9de Dezembro (segunda-feira) agraves 19h no restaurante X a query selecionaraacute todos os registrosfeitos no dia 9 de dezembro entre as 19h e agraves 20h dos uacuteltimos anos no restaurante X e realizaraacuteessa meacutedia ou pode selecionar apenas linhas de todas as segundas-feiras do mecircs de Dezembrodeste mesmo periacuteodo

∙ Muitos dados neste caso um maior niacutevel de especificidade pode ser aplicado sem autilizaccedilatildeo de outras fontes para complementar o banco de dados

∙ Alguns dados o niacutevel de especificidade eacute bem menor apenas filtrando por dia dasemana e intervalo de hora sem mecircs ou dia especiacutefico no ano Em alguns casos aquantidade de dados eacute tatildeo pequena que deve-se recorrer a outras fontes A Googletem disponibilizado graacuteficos com a distribuiccedilatildeo dos clientes nos horaacuterios de funciona-mento de estabelecimentos Esses dados natildeo estatildeo disponiacuteveis em sua API ou seja natildeo

12 ESTUDOS PRELIMINARES 24

haacute uma forma automaacutetica para que o aproveitamento desses possa ser feito Poreacutemmesmo omitindo-se os valores do graacutefico o perfil da distribuiccedilatildeo e o horaacuterio de picosatildeo aproveitados manualmente para nosso sistema

∙ Poucos dados para este caso fizemos o balanceamento dos dados da Google comas informaccedilotildees retiradas das entrevistas Aleacutem do aproveitamento das informaccedilotildees daGoogle foram realizadas pesquisas com funcionaacuterios dos restaurantes

Segundo meacutetodo Teoria das filas

Filas podem ser vistas como um sistema dinacircmico no qual existe um conjunto de usuaacuteriosque satildeo atendidos por um conjunto de atendentes de acordo com a ordem de chegada dosusuaacuterios A teoria de filas busca utilizando anaacutelises matemaacuteticas estudar o comportamentodestas filas para estimar o tempo de espera com base em um conjunto inicial de dadospreviamente fornecido[30]

Um sistema de filas possui como caracteriacutesticas

∙ Modelo de chegada dos usuaacuterios Utiliza como base o tempo entre as chegadasdos usuaacuterios

∙ Modelo de serviccedilo (atendimento aos usuaacuterios) Utiliza como base o tempo gastono atendimento ao usuaacuterio No caso dos restaurantes equivale ao tempo que um grupopassa na mesa ateacute a sua saiacuteda

∙ Nuacutemero de servidores Eacute o nuacutemero de atendentes disponiacuteveis no sistema Para omodelo do restaurante este equivale agraves mesas disponiacuteveis no salatildeo

∙ Capacidade do sistema Eacute o nuacutemero de usuaacuterios que o sistema eacute capaz de atenderInclui o nuacutemero de usuaacuterios que estatildeo sendo atendidos somado com os que esperamna fila Se este paracircmetro natildeo for informado o sistema eacute considerado com capacidadeilimitada

∙ Tamanho da populaccedilatildeo nuacutemero potencial de clientes que podem chegar a umsistema Pode ser finito ou infinito

∙ Disciplina da fila A disciplina da fila pode ser FIFO (first in first out) - o primeiroa chegar eacute o primeiro a ser atendido LIFO (last in first out) - o uacuteltimo a chegar eacuteo primeiro a ser atendido ALEATOacuteRIO - os atendimentos satildeo feitos sem qualquerpreocupaccedilatildeo com a ordem de chegada COM PRIORIDADE - os atendimentos satildeofeitos de acordo com prioridades estabelecidas No caso dos restaurantes a disciplinaadotada eacute a FIFO poreacutem esta pode mudar de acordo com o atendente responsaacutevel

Os tempos mencionados nos modelos de chegada e de serviccedilo podem ser constantesquando os intervalos entre as chegadas dos usuaacuterios satildeo iguais ou variaacuteveis quando os valo-res desses intervalos variam Nesse uacuteltimo caso o intervalo de tempo segue uma distribuiccedilatildeode probabilidades Nesse modelo tambeacutem existe a taxa meacutedia de chegada dos usuaacuterios porunidade de tempo ou seja quantos usuaacuterios chegam em uma hora

As filas podem ser moldadas em trecircs situaccedilotildees baacutesicas como descrito por Azmat Nafees[30]

∙ Modelo de fila de canal uacutenico com fila uacutenica e atendimento uacutenico (Figura 27)

24 CAacuteLCULO DA PREVISAtildeO DO TEMPO DE ESPERA NA FILA 13

∙ Modelo de fila de canal uacutenico com fila uacutenica e muacuteltiplos atendimentos paralelos (Fi-gura 28)

∙ Modelo de fila de canal uacutenico com muacuteltiplas filas e muacuteltiplos atendimentos paralelos(Figura 29)

Figura 27 Modelo de fila de canal uacutenico com fila uacutenica e atendimento uacutenico

Figura 28 Modelo de fila de canal uacutenico com fila uacutenica e muacuteltiplos atendimentos paralelos

Figura 29 Modelo de fila de canal uacutenico com muacuteltiplas filas e muacuteltiplos atendimentos paralelos

Tambeacutem por Azmat Nafees nesses modelos trecircs subprocessos podem ser vistos

∙ Processo de chegada Eacute um processo contiacutenuo do evento ldquochegada de clientesrdquo ouseja quando o evento ocorre o processo aguarda a ocorrecircncia do proacuteximo evento Esseevento coloca um cliente na fila quando ele chega

14 ESTUDOS PRELIMINARES 24

∙ Processo de espera Eacute um processo que inclui o evento ldquocomece a servir o proacuteximocliente da filardquo que retira um cliente da fila o coloca no processo de atendimento eespera a conclusatildeo do evento ldquocliente servidordquo para recomeccedilar Nele se trabalha comtamanho e disciplina da fila

∙ Processo de atendimento Eacute um processo que inclui o evento ldquocliente servidordquo eespera a conclusatildeo do evento ldquocomece a servir o proacuteximo cliente da filardquo para recomeccedilarNele se trabalha com tipo taxa e tempo de atendimento

Dentre esses 3 modelos o que mais se encaixa na situaccedilatildeo de um restaurante eacute o segundomodelo canal uacutenico com fila uacutenica e muacuteltiplos atendimentos paralelos O processo de chegadade novos clientes na fila eacute tido como aleatoacuterio

Terceiro meacutetodo Rede Neural

Rede Neural eacute uma teacutecnica computacional inspirada no sistema nervoso que com o auxiacute-lio de um modelo matemaacutetico apresenta respostas para problemas de decisatildeo Esses modelosfuncionam da seguinte forma primeiro um conjunto de dados (conjunto de treinamento) eacuteapresentado ao sistema e este aprende com ele atraveacutes de reconhecimento de padratildeo entatildeocoloca-se o sistema para analisar os dados (conjunto de teste) para os quais deseja-se obteralgum resultado Este processo eacute chamado de aprendizagem de maacutequina Quanto melhor forseu treinamento mais precisas seratildeo as respostas para o segundo conjunto

Uma rede neural eacute formada por subestruturas chamadas neurocircnios Um neurocircnio tem oseguinte funcionamento ele recebe como entrada sinais cada sinal recebe um peso de acordocom a influecircncia dele na saiacuteda e uma soma eacute feita para produzir o niacutevel de atividade entatildeodependendo se o niacutevel de atividade exceder o limite dado pela funccedilatildeo de transferecircncia aresposta eacute produzida[27]

Software Multiple Back-Propagation

Para implementar a soluccedilatildeo baseada em redes neurais foi usado o Software MultipleBack-Propagation [1] Este eacute um software de faacutecil utilizaccedilatildeo que fornece uma rede a qualaprende atraveacutes do processo de propagaccedilatildeo inversa Esse meacutetodo baseia-se na comparaccedilatildeodos dados esperados (conjunto de teste) com os dados obtidos a partir do treinamento senecessaacuterio adaptaccedilotildees satildeo feitas a estrutura da rede para melhor aproximar aos dados doconjunto teste e isso eacute chamado de propagaccedilatildeo inversa

Por se tratar de um meacutetodo de aprendizagem de maacutequinas para se obter um resultadodeve-se treinar o algoritmo Primeiramente submete-se o conjunto de treinamento ao soft-ware para isso foi escolhido o mecircs de Agosto O criteacuterio de parada para o treino eacute o erroquadraacutetico meacutedio o qual teve seu valor atribuiacutedo para 001

Capiacutetulo 3

Tecnologias utilizadas

31 O sistema AndroidAndroid eacute um Sistema operacional open source (software de coacutedigo aberto o qual as

pessoas podem acessar e modificar para contribuir com o projeto [25]) e para dispositivosmoacuteveis desenvolvido pela Google baseado no Kernel do Linux e utilizado principalmente emdispositivos touchscreen Atualmente o Android eacute o sistema operacional que deteacutem a maiorparcela do mercado[17] com 836 dos dispositivos contra 134 do iOS da Apple

A Google tambeacutem oferece um ambiente de desenvolvimento para a plataforma Androidchamado Android Studio no qual os aplicativos satildeo criados e exportados para os dispositi-vos moacuteveis Aplicativos Android satildeo programados na linguagem Java com vaacuterias bibliotecasdisponibilizadas pela Google para suporte ao sistema operacional

A escolha da plataforma foi feita principalmente por conta de o sistema possuir a maiorparte dos usuaacuterios de Smartphones e tambeacutem pela ampla comunidade ativa de desenvolve-dores agrave qual se pode recorrer em casos de duacutevidas e problemas tornando suas resoluccedilotildeesmais raacutepidas e com muacuteltiplas alternativas Outros motivos que contribuiacuteram para a escolhado Android foram

∙ A disponibilidade do ambiente de desenvolvimento Android Studio que possui todosos recursos necessaacuterios para desenvolver um aplicativo funcional logo apoacutes a instalaccedilatildeosem a necessidade de utilizar outras dependecircncias as quais satildeo gerenciadas automati-camente pelo proacuteprio software

∙ O fato de no mercado brasileiro o sistema Android se encontrar em 918 dos dispo-sitivos segundo pesquisa da Kantar[18] e dado a pesquisa realizada para definiccedilatildeo depuacuteblico alvo onde foi possiacutevel perceber que 639 dos entrevistados utilizam smartpho-nes com sistema Android

∙ A utilizaccedilatildeo da linguagem de programaccedilatildeo Java para desenvolvimento que jaacute eraconhecida e fora utilizada anteriormente ao contraacuterio das linguagens Objective C eSwift linguagens utilizadas para desenvolver aplicativos para o sistema iOS Assimcomo a disponibilidade de dispositivos por parte do grupo que em sua maioria era decelulares com o sistema Android

15

16 TECNOLOGIAS UTILIZADAS 31

Figura 31 Parcela de mercado dos dispositivos no Brasil

311 Organizaccedilatildeo de uma aplicaccedilatildeo Android

Aplicativos Android satildeo divididos em componentes Haacute quatro tipos de componentespresentes Activities (ou atividades) Services (ou serviccedilos) Content providers (ou provedoresde conteuacutedo) Broadcast receivers (ou receptores de transmissatildeo)

∙ Activities Satildeo as telas e interfaces do usuaacuterio Cada tela de uma aplicaccedilatildeo eacute repre-sentada por uma activity e cada activity eacute independente de outras apesar de seremcomponentes de uma mesma aplicaccedilatildeo Isso se daacute pelo fato de haver a possibilidade deutilizar activities de aplicativos durante a execuccedilatildeo de outros Atividades satildeo iniciadase se comunicam entre si atraveacutes de objetos chamados Intent que transferem um pacotede dados que pode ser carregado no iniacutecio da nova atividade

∙ Services Sempre satildeo executados em segundo plano sem interferir na experiecircncia dousuaacuterio geralmente para realizar operaccedilotildees longas ou realizar operaccedilotildees de troca dedados enquanto o usuaacuterio estaacute utilizando outra aplicaccedilatildeo em primeiro plano

∙ Content Providers Satildeo gerenciadores de dados de aplicaccedilotildees Android utilizadospara ler e salvar dados compartilhados ou secretos dos aplicativos e do sistema

∙ Broadcast Receivers Satildeo componentes responsaacuteveis por obter eventos que aconte-ceram em outras aplicaccedilotildees ou no sistema e direcionar dados sobre esses eventos paraeventuais aplicaccedilotildees que necessitem destes dados alguns exemplos de eventos obtidospelos receptores de transmissatildeo satildeo tela desligada e bateria fraca

Aleacutem dos componentes uma parte importante de uma aplicaccedilatildeo Android eacute o ArquivoManifest que eacute uma declaraccedilatildeo de permissotildees serviccedilos e exigecircncias de hardware necessaacuterios

33 JSON 17

para o funcionamento do aplicativo Outra funccedilatildeo eacute possuir declaraccedilotildees de todos os compo-nentes utilizados no projeto nomes iacutecones entre outros

As interfaces de usuaacuterio do Android satildeo definidas em arquivos XML (eXtensible MarkupLanguage)[26] nos quais estatildeo declarados todos os layouts e configuraccedilotildees das telas Essesarquivos de layout satildeo depois inflados e satildeo gerados os componentes visuais da aplicaccedilatildeoEssa estrutura tem como objetivo facilitar o design da interface do usuaacuterio jaacute que arquivosxml satildeo de faacutecil compreensatildeo do desenvolvedor

32 JSONJSON ou Javascript Object Notation eacute um formato de dados amplamente utilizado para

troca de informaccedilotildees entre programas Possui uma notaccedilatildeo simples para grande parte dosprogramadores pois se assemelha a convenccedilotildees utilizadas em linguagens de programaccedilatildeomuito conhecidas como C C++ Python e Java O objetivo eacute que ele seja de faacutecil entendi-mento tanto para pessoas como para maacutequinas[11]

Um arquivo JSON eacute organizado como um objeto contendo pares nomevalorseparadospor viacutergulas e dentro de chaves(lsquolsquo rsquorsquo) ou como um array que eacute uma lista de valores separa-dos por viacutergulas e entre colchetes(lsquo[lsquo rsquo]rsquo) Um valor por sua vez pode ser um objeto ou umarray mas tambeacutem um nuacutemero inteiro ou uma String entre outros

Um exemplo de arquivo JSON eacute

1 2 Carros [3 4 Nome Scen ic 5 Marca Renault 6 Ano 20127 8 9 Nome Sentra

10 Marca Nissan 11 Ano 200912 13 ]14

33 Google APIsAPIs (Application Program Interfaces) satildeo interfaces para facilitar a troca de informa-

ccedilotildees entre aplicaccedilotildees utilizando comandos especiacuteficos[15]

Ao longo do desenvolvimento algumas APIs fornecidas pela Google foram utilizadascomo fonte de informaccedilotildees adicionais para o aplicativo

∙ Google Maps Distance Matrix API Esta API eacute utilizada para obter o tempo emsegundos de trajeto entre dois pontos (latlong) no mapa podem ser consultados ostempos de trajeto de carro bicicleta a peacute e utilizando transporte puacuteblico[28] Esta eacute

18 TECNOLOGIAS UTILIZADAS 35

uma API web logo utiliza-se um request http para realizar uma consulta

Por exemplo o request

httpsmapsgoogleapiscommapsapidistancematrixjsonorigins=Seattleampdestinations=Victoria+BCampkey=[user_key]

retorna o JSON

1 2 des t ina t i on_addre s s e s [ Vic tor ia BC Canada ] 3 o r i g in_addre s s e s [ Sea t t l e WA EUA ] 4 rows [5 6 e lements [7 8 d i s t anc e 9 text 172 km

10 value 17166811 12 durat ion 13 text 4 horas 40 minutos 14 value 1680915 16 s t a tu s OK17 18 ]19 20 ] 21 s t a tu s OK22

no qual eacute possiacutevel obter o tempo de trajeto em segundos

∙ Google Maps Android API Esta API eacute utilizada para habilitar o uso de mapasda Google integrados agrave aplicaccedilatildeo jaacute disponiacutevel com todas as funcionalidades de zoome arrastar presentes no aplicativo nativo permitindo tambeacutem a personalizaccedilatildeo comoa adiccedilatildeo de pontos definidos pelo usuaacuterio ao mapa

34 Localizaccedilatildeo do UsuaacuterioOutro serviccedilo que foi utilizado com o intuito de obter o tempo de trajeto e a lista ordenada

de forma personalizada de restaurantes foi a localizaccedilatildeo do usuaacuterio que eacute obtida atraveacutes doGPS presente nos smartphones Um objeto de localizaccedilatildeo eacute criado e realiza a comunicaccedilatildeocom o serviccedilo de localizaccedilatildeo do aparelho Ao obter a localizaccedilatildeo ele lanccedila um evento quepode ser acessado por outras partes da aplicaccedilatildeo obtendo a localizaccedilatildeo mais atualizada dodispositivo

36 CONTROLE DE VERSAtildeO 19

35 Controle de VersatildeoControle de versatildeo eacute uma praacutetica usada para manter a organizaccedilatildeo do coacutedigo e do seu de-

senvolvimento quando muitos desenvolvedores colaboram conjuntamente Existem softwaresque auxiliam essa organizaccedilatildeo registrando todas as mudanccedilas feitas ao longo do processo eque possui recursos que permitem que vaacuterios usuaacuterios trabalhem nos mesmos arquivos semperda de informaccedilotildees

No caso do Git [8] o projeto fica organizado em uma estrutura de aacutervore onde cadacommit (checkpoints criados pelos membros do grupo durante o processo) eacute marcado porum noacute para onde se pode retornar quando necessaacuterio Existem tambeacutem estruturas chama-das branches que satildeo bifurcaccedilotildees na estrutura para que partes do projeto sejam criadasseparadamente sem interferir com a linha principal As branches depois satildeo unidas agrave linhaprincipal atraveacutes do comando merge

Neste projeto o serviccedilo de controle de versatildeo utilizado foi o Bitbucket [2] (que eacute um ser-viccedilo web-based de controle de versatildeo que utiliza Git) com auxiacutelio do software SourceTree[19]que eacute uma interface graacutefica para os serviccedilos do Bitbucket onde eacute possiacutevel visualizar com maisfacilidade as fases do desenvolvimento do projeto e realizar os comandos mais intuitivamente

Figura 32 Interface do SourceTree que mostra o controle de versionamento do projeto

36 Banco de dadosCom o intuito de deixar o aplicativo mais completo guardando informaccedilotildees dos usuaacuterios

e dos estabelecimentos optou-se por utilizar-se um banco de dados Alguns exemplos de

20 TECNOLOGIAS UTILIZADAS 36

banco de dados aprendidos no curso Laboratoacuterio de Banco de Dados foram

∙ SQL (Structured Query Language - Linguagem de Consulta Estruturada)[20] umalinguagem para atualizar deletar e requisitar informaccedilotildees atraveacutes de consultas emtabelas que possuem relaccedilatildeo entre si

∙ noSQL[13] um banco de dados que armazena e recupera informaccedilotildees modeladas deuma forma onde natildeo satildeo usadas tabelas relacionais

Como este uacuteltimo natildeo foi o foco da disciplina por falta de tempo decidiu-se por utilizaacute-lopara que o grupo pudesse aprender melhor esse modelo

Outra decisatildeo tomada foi a hospedagem dos dados na nuvem ou seja colocaacute-los em umservidor que natildeo seja local e conseguir acessaacute-los atraveacutes de uma conexatildeo via internet Dessemodo os dados sempre estaratildeo disponiacuteveis para serem consultados

361 Firebase

Buscando-se atender as decisotildees tomadas sobre o banco de dados procuramos um serviccedilode banco de dados da Google por conter ampla integraccedilatildeo com a plataforma de desenvolvi-mento Android por ser conhecido bastante utilizado e por possuir uma ampla comunidadede desenvolvedores dispostos a oferecer auxiacutelio em foacuteruns de discussatildeo de coacutedigos

Para atender esses requisitos escolheu-se o Firebase Realtime Database[6] desenvolvido edisponibilizado pela Google que consiste em um banco de dados noSQL com armazenamentona nuvem Esse serviccedilo armazena os dados do usuaacuterio no servidor da Google em formatoJSON e a cada alteraccedilatildeo sincroniza em tempo real com todos os clientes conectados

O grupo pode observar as seguintes vantagens de se trabalhar com a ferramenta existea sincronizaccedilatildeo em tempo real dos dados de todos os clientes e sua disponibilidade mesmocom o aplicativo offline ou seja quando o aplicativo natildeo estiver conectado a internet osdados do dispositivo moacutevel seratildeo armazenados e sincronizados com o banco de dados assimque a conexatildeo estiver disponiacutevel novamente Aleacutem disso os desenvolvedores possuem acessoa um console online (figura 33) onde o JSON eacute mostrado numa interface interativa de umaforma mais amigaacutevel e no qual eacute permitido editaacute-lo facilmente

37 CROWDSOURCING 21

Figura 33 Console online do Firebase onde os dados satildeo mostrados de forma mais amigaacutevel eintuitiva

Outra observaccedilatildeo feita foi que o Firebase Realtime Database funciona como o esperadose ele guardar uma coacutepia local dos dados em um arquivo JSON no celular Poreacutem isso natildeofoi visto como um problema pois como essa coacutepia pode ser salva em um arquivo texto oespaccedilo utilizado diminui consideravelmente

Na primeira vez que os dados satildeo criados e todas as vezes em que os dados forem atua-lizados por algum dispositivo moacutevel eacute enviada uma atualizaccedilatildeo que seraacute recebida atraveacutes delisteners por todos os aparelhos que utilizam o aplicativo para que eles atualizem seus res-pectivos JSONs Listeners satildeo interfaces de comunicaccedilatildeo que executam uma seacuterie de accedilotildeesassim que um outro evento esperado acontece

37 CrowdsourcingO termo Crowdsourcing tem origem nas palavras da liacutengua inglesa Crowd (multidatildeo) e

Outsourcing (terceirizaccedilatildeo) e eacute definido pelo dicionaacuterio Merriam Webster como A praacuteticade obtenccedilatildeo de serviccedilos ideias ou conteuacutedo solicitando contribuiccedilotildees de grandes grupos depessoas e especialmente da comunidade online [3] Esta praacutetica eacute utilizada para que sejapossiacutevel agrave comunidade contribuir com dados para algum programa ou serviccedilo como no apli-cativo Waze do qual a principal fonte de dados de tracircnsito acidentes e radares eacute obtida pormeio dos proacuteprios usuaacuterios

Capiacutetulo 4

Desenvolvimento do Projeto

Este capiacutetulo aborda o processo de desenvolvimento do projeto iniciado com o preen-chimento do diagrama Canvas e uma pesquisa de mercado direcionada ao usuaacuterio A partirdas informaccedilotildees coletadas foi possiacutevel projetar um aplicativo que atendesse as necessidadesexpostas pela pesquisa e selecionar as tecnologias necessaacuterias Tambeacutem eacute abordada a aplica-ccedilatildeo dos diferentes meacutetodos de caacutelculo da previsatildeo de tempo de espera que foram estudadose explicados no Capiacutetulo 2 Por fim satildeo expostas as diferentes versotildees do aplicativo duranteo processo e seus detalhes

41 Pesquisa de MercadoAntes de iniciar-se o desenvolvimento praacutetico algumas questotildees foram levantadas se

um aplicativo com as funcionalidades escolhidas seria de alguma forma uacutetil para o usuaacuterioe se sim qual metodologia deveria ser usada para que este produto fosse entregue o maiscompleto possiacutevel ateacute o final do ano Para responder a primeira pergunta desenvolveu-seum questionaacuterio

411 Pesquisa com o usuaacuterio

O questionaacuterio foi desenvolvido para avaliar a viabilidade do aplicativo e suas funciona-lidades e foi criado utilizando-se o Google Forms [9] Essa eacute uma ferramenta desenvolvidapelo Google que possibilita a criaccedilatildeo de formulaacuterios contendo diversos formatos de pergun-tas tanto dissertativas quanto de muacuteltipla escolha

Seguindo os princiacutepios de desenvolvimento de questionaacuterios [4] o conjunto de perguntasfoi mantido curto simples e de faacutecil entendimento Tambeacutem variou-se o tipo de questotildeesentre estruturadas (questotildees com respostas em forma de alternativas) e desestruturadas(questotildees com respostas em formato texto) seguindo esses mesmos princiacutepios para captarmelhor as informaccedilotildees dos entrevistados e evitar erros de entendimento

Com as respostas do questionaacuterio tinha-se o intuito de traccedilar um possiacutevel puacuteblico alvoconhecer seu modo de uso de dispositivos moacuteveis e validar a aplicabilidade de diferentesfuncionalidades pretendidas inicialmente sendo essas engajamento do usuaacuterio atraveacutes denotificaccedilotildees do sistema aceitaccedilatildeo de sugestotildees de locais alternativos avaliaccedilatildeo da existecircnciado problema que queremos resolver (se este aplicativo supre uma necessidade real do usuaacute-rio) e aceitaccedilatildeo do aplicativo

23

24 DESENVOLVIMENTO DO PROJETO 41

Para a divulgaccedilatildeo redes sociais como Facebook [5] e sistemas de mensagem instantacircneascomo WhatsApp foram usados e o envio de respostas foi restrito ateacute trecircs semanas apoacutes suaprimeira postagem Neste periacuteodo foram obtidas 210 respostas as quais ajudaram a definiros aspectos do sistema a ser desenvolvido

O questionaacuterio foi dividido em duas subseccedilotildees perfil do usuaacuterio e funcionalidade Comelas obteve-se os seguintes resultados

41 PESQUISA DE MERCADO 25

Questatildeo 1

Figura 41 Graacutefico pizza da distribuiccedilatildeo das respostas em relaccedilatildeo a idade dos pesquisados

As faixas de idade apresentadas estatildeo desbalanceadas por natildeo terem a mesma quantidadede anos em cada uma poreacutem essa divisatildeo foi pensada levando-se em conta a fluecircncia comtecnologia que cada idade possui Com o resultado verificou-se que do puacuteblico alcanccediladocom a pesquisa a maioria estaacute na faixa de 18 a 25 anos de idade assumida como parcelacom maior conhecimento tecnoloacutegico

Questatildeo 2

Figura 42 Graacutefico pizza da distribuiccedilatildeo das respostas em relaccedilatildeo ao sistema operacional

Esta questatildeo foi pensada para medir a porcentagem de cada sistema operacional pre-sente nos celulares do puacuteblico Com ela descobriu-se que 639 das pessoas dentro desse

26 DESENVOLVIMENTO DO PROJETO 41

grupo possuem o sistema Android enquanto 234 possuem iOS e 38 Windows phoneEssa pergunta foi incluiacuteda para um melhor direcionamento do desenvolvimento do aplicativo

Uma questatildeo levantada ao aplicar esse questionaacuterio foi a dificuldade que algumas pessoasencontraram para identificar a versatildeo do proacuteprio aparelho Poreacutem para manter a consistecircnciadas respostas decidiu-se natildeo mudar nada nesta questatildeo para remediar isso

Questatildeo 3

Figura 43 Graacutefico em barras da distribuiccedilatildeo de frequecircncias mensais de cada local analisado

41 PESQUISA DE MERCADO 27

Questatildeo 4

Figura 44 Graacutefico em pizza da distribuiccedilatildeo de interesse do usuaacuterio no tempo de espera de cadalocal

A princiacutepio viu-se muitas possiacuteveis aplicaccedilotildees para a previsatildeo de tempo de espera Paraentender qual seria a prioridade do puacuteblico as questotildees acima foram incluiacutedas A primeiraverificou a frequecircncia de visitas em alguns locais e a segunda serviu para analisar qualestabelecimento despertava mais interesse nos entrevistados quanto ao quesito fila Nos doiscasos restaurantes se destacaram com o maior interesse

Questatildeo 5

Figura 45 Graacutefico em barras da distribuiccedilatildeo de interesse do usuaacuterio por cada item avaliado

Para acompanhar o dado de espera e fornecer mais informaccedilotildees relevantes ao usuaacuteriosem potencial perguntou-se quais outras informaccedilotildees eles acham interessante saber sobre umdeterminado estabelecimento Com isso descobriu-se que a faixa de preccedilo o trajeto ateacute olocal e o cardaacutepio seriam dados importantes de se obter juntamente com o tempo de espera

28 DESENVOLVIMENTO DO PROJETO 41

Questatildeo 6O que vocecirc costuma fazer para evitar filasNeste ponto testou-se se a soluccedilatildeo proposta atraveacutes do aplicativo resolveria o problema dousuaacuterio de uma forma melhor do que a soluccedilatildeo atualmente utilizada Para isso foi perguntadoo que as pessoas fazem para evitar filas e as principais respostas foram

∙ Evitar horaacuterios de pico

∙ Chegar cedo

∙ Ir em outro lugar caso uma fila seja encontrada

∙ Tentar realizar reservas antecipadamente

∙ Se distrair com livroscelular

Notou-se que as soluccedilotildees utilizadas atualmente natildeo suprem as necessidades dos entre-vistados pois mesmo em horaacuterios natildeo convencionais pode-se encontrar filas ou quandodecide-se esperar na fila muito tempo eacute perdido Concluiu-se que a soluccedilatildeo proposta a par-tir do aplicativo resolve de forma mais abrangente o problema pois ajuda o usuaacuterio a evitarhoraacuterios de pico inesperados

Questatildeo 7

Figura 46 Graacutefico em pizza da distribuiccedilatildeo do meio de transporte utilizado pelos usuaacuterios

Essa questatildeo foi formulada com o objetivo de verificar quais meios de transporte seriamincluiacutedos com previsatildeo de tempo de trajeto no aplicativo Foi verificado que a maioria dosentrevistados utilizam transporte puacuteblico seguido por carro

41 PESQUISA DE MERCADO 29

Questatildeo 8

Figura 47 Graacutefico em pizza da distribuiccedilatildeo do interesse do usuaacuterio pela informaccedilatildeo fornecida

Questatildeo 9

Figura 48 Graacutefico em pizza da distribuiccedilatildeo de quantidade de quilocircmetros que o usuaacuterio sedeslocaria para ir a um local com menos fila

Com essas questotildees foi verificado que algo importante para o usuaacuterio eacute saber de outrosestabelecimentos que possam oferecer tempos de espera menores nas redondezas de onde ousuaacuterio se encontra que eacute uma das funcionalidades que desejaacutevamos utilizar no sistema

30 DESENVOLVIMENTO DO PROJETO 41

Questatildeo 10

Figura 49 Graacutefico em barras da distribuiccedilatildeo de sentimento do usuaacuterio em relaccedilatildeo a notificaccedilatildeode aplicativos

Questatildeo 11

Figura 410 Graacutefico em pizza da distribuiccedilatildeo de opiniatildeo do usuaacuterio sobre desabilitar notificaccedilotildeesem celular

42 PESQUISA DE MERCADO 31

Questatildeo 12

Figura 411 Graacutefico em pizza da distribuiccedilatildeo de opiniatildeo do usuaacuterio sobre habilitar GPS emcelular

A ideia inicial era poder usar o GPS para verificar a localizaccedilatildeo do usuaacuterio e enviarnotificaccedilotildees quando este estivesse parado nas proximidades de algum dos estabelecimentoscadastrados Para que essa funcionalidade possa existir eacute necessaacuterio que o aplicativo tenhaacesso agrave localizaccedilatildeo precisa da pessoa atraveacutes do GPS ou internet ateacute mesmo quando natildeoestiver aberto Aleacutem disso tambeacutem eacute necessaacuterio que as notificaccedilotildees estejam habilitadas parafinalizar esta interaccedilatildeo Entatildeo as perguntas 10 11 e 12 foram incluiacutedas no questionaacuterio Ob-servando as respostas foi possiacutevel verificar que 295 das pessoas que responderam deixamambas as funcionalidades habilitadas (GPS e notificaccedilotildees) Com isso pudemos prosseguircom essa ideia e tambeacutem pensar em possiacuteveis alternativas de interaccedilatildeo e engajamento como usuaacuterio

Por conta dessa pesquisa ter sido compartilhada atraveacutes das contas das redes sociais ecomunicadores dos componentes deste grupo sabe-se que este pode apresentar um resultadoviesado mas que mesmo assim natildeo deve ser desconsiderado e que muito ajudou a sanar asduacutevidas iniciaisComo resultado traccedilamos o perfil do entrevistado

∙ Faixa etaacuteria predominante entre 18 e 30 anos

∙ Possui sistema operacional Android (versotildees 4 5 e 6)

∙ Vai a restaurantes com certa frequecircncia mensal resultando em interesses sobre infor-maccedilotildees relacionadas a esse estabelecimento

∙ Costuma chegar cedo ou evitar os horaacuterios de pico para evitar filas nos locais

∙ Carro e transporte coletivo satildeo os principais meios de transporte

∙ Se deslocaria para um estabelecimento semelhante que possui menos fila contanto queeste fique num raio de 2km de distacircncia

32 DESENVOLVIMENTO DO PROJETO 43

42 Projeto do AplicativoO grupo comeccedilou o projeto com o preenchimento do diagrama Canvas(figura 412) apre-

sentado na Seccedilatildeo 21 Desse modo foi adquirida uma ideia mais consistente e uma base paracomeccedilar a implementaccedilatildeo

Figura 412 Diagrama Canvas preenchido pelo grupo

Com o modelo de negoacutecios definido e com base no resultado da pesquisa com o usuaacuterioapresentada na seccedilatildeo seguinte foram aplicadas pequenas mudanccedilas no projeto para melhoradequar-se agraves necessidades e ao perfil do puacuteblico alvo

Para o desenvolvimento foi utilizado um meacutetodo aacutegil baseado no scrum com sprints de3 a 4 semanas devido agrave disponibilidade dos membros do grupo Os encontros natildeo eram diaacute-rios como recomendado para o meacutetodo scrum tambeacutem em razatildeo da disponibilidade Haviamstand ups (discussotildees raacutepidas no comeccedilo de cada encontro) e retrospectivas ao final de cadasprint A cada sprint eram selecionadas histoacuterias e tarefas para serem executadas e caso natildeofossem concluiacutedas ao final da iteraccedilatildeo eram inseridas ao backlog e feitas no sprint seguinte

43 Aplicaccedilatildeo dos meacutetodos de caacutelculo de espera

431 Aplicando a meacutedia por periacuteodo

Aplicando-se no trecho abaixo a teacutecnica desenvolvida na Seccedilatildeo 242 para uma queryrealizada no dia 19082016 no intervalo de 2040 - 2055 analisa-se a semana anterior quepossua tais intervalos Assim o saacutebado dia 06082016 seraacute selecionado

43 APLICACcedilAtildeO DOS MEacuteTODOS DE CAacuteLCULO DE ESPERA 33

Entrada Qtd Pessoas Notificado Espera

6816 2043 2 862016 2053 1606

6816 2044 2 862016 2055 674

6816 2048 2 862016 2056 528

6816 2048 2 862016 2057 520

6816 2051 2 862016 2107 1118

6816 2051 3 862016 2110 1305

6816 2052 2 862016 2110 1273

6816 2052 2 862016 2111 1179

6816 2053 2 862016 2112 1217

6816 2053 2 NULL 59

6816 2054 3 862016 2119 1541

6816 2055 2 862016 2117 1444

6816 2055 2 862016 2120 1570

6816 2055 2 862016 2122 1613

Tabela 41 Trecho do dia 06082016 entre os horaacuterios das 2043 agraves 2055 um intervalo de 12minutos retirado dos dados da empresa Get In

Com esses dados obteve-se a meacutedia de espera de 1080 segundos (18 minutos) a qualseria sugerida para o usuaacuterio com a busca e desvio padratildeo de 465144719 segundos (775 mi-nutos) Dentro desse intervalo tem-se como maacuteximo tempo de espera 1613 segundos (2688minutos) e como miacutenimo 59 segundos (1 minuto) Analisando-se os dados do dia 19082016no mesmo periacuteodo temos

34 DESENVOLVIMENTO DO PROJETO 43

Entrada Pessoas Notificado Espera Erro previsatildeo Erro p 2 pessoas

19816 2043 2 8192016 2051 544 -563 522

19816 2043 2 8192016 2052 605 -502 461

19816 2044 2 8192016 2056 723 -384 343

19816 2046 4 8192016 2119 1988 881 X

19816 2048 2 8192016 2102 919 188 147

19816 2051 2 8192016 2103 821 286 245

19816 2051 3 8192016 2108 1773 666 X

19816 2053 2 8192016 2110 1083 24 -17

19816 2053 2 8192016 2111 1105 2 -39

19816 2053 2 8192016 2112 1169 62 -103

19816 2055 2 8192016 2114 1447 340 -381

Tabela 42 Trecho do dia 19082016 entre os horaacuterios das 2043 agraves 2055um intervalo de 12minutos retirado dos dados da empresa Get In

Ou seja se um grupo chegasse dentro desse periacuteodo e a previsatildeo dada fosse a meacutediaobtida anteriormente o erro calculado pela diferenccedila entre o tempo sugerido e o real tempode espera estaria no intervalo de 15 minutos para menos ou 8 minutos para mais Sendoesse um valor aceitaacutevel

Um proacuteximo passo eacute a restriccedilatildeo dos registros a grupos com 2 integrantes Com tal restri-ccedilatildeo a previsatildeo de espera eacute de 1066 segundos (1776 minutos) Aplicando essa nova meacutedia aosregistros com 2 integrantes do dia 19082016 obteacutem-se um erro (Coluna 6 - erro previsatildeopara 2 pessoas) menor do que o anterior O intervalo do erro calculado neste caso seria de 522segundos (87 minutos) para mais e 381 segundos (635 minutos) para menos Este resultadoeacute ainda mais favoraacutevel mostrando que a inclusatildeo de mais filtros para o caacutelculo da previsatildeomelhorou o tempo previsto

432 Aplicando teoria das filas

A teoria das filas (Seccedilatildeo 242) eacute uma ferramenta muito completa que calcula muitos dadosuacuteteis para a previsatildeo de espera Contudo por conta da necessidade de informaccedilotildees sobreo tempo de atendimento a qual natildeo estaacute contida no banco utilizado esta teoria natildeo podeser aplicada neste caso Poreacutem esse dado pode ter um valor assumido para que a utilizaccedilatildeodessa teoria fosse possiacutevel entretanto a sua precisatildeo ficaria comprometida e imprevisiacutevel

433 Aplicando redes neurais

Para aplicar o que foi estudado na Seccedilatildeo 242 foi executado o software com o mecircs deAgosto como teste o mecircs de Setembro como treino e o limite do erro quadraacutetico como 001 eobteve-se a tabela presente no apecircndice B Na tabela podemos ver o tempo de fila esperadoou seja o tempo contido na tabela do mecircs de Setembro o tempo que o algoritmo deu comoresposta baseado no mecircs de Agosto e o erro entre eles respectivamente

44 DEFINICcedilAtildeO DA INTERFACE DO APLICATIVO 35

Figura 413 Software Multiple Back-Propagation com a configuraccedilatildeo escolhida para os dadosdisponiacuteveis

Mesmo o erro se mantendo em 0018 os dados obtidos possuem um erro padratildeo de 15minutos Se mais dados forem adicionados o criteacuterio de parada pode ser atingido e assimuma previsatildeo melhor pode ser alcanccedilada

434 Conclusatildeo sobre os meacutetodos estudados

Dentre todas as possibilidades estudadas visualizamos na meacutedia por periacuteodo a melhoropccedilatildeo assumindo os dados disponiacuteveis para teste Se mais paracircmetros fossem fornecidoscomo o tempo de atendimento a teoria das filas seria uma boa opccedilatildeo para fornecer a pre-visatildeo de espera E se mais dados estivessem disponiacuteveis as redes neurais conseguiriam umaaproximaccedilatildeo melhor e assim seria uma boa opccedilatildeo tambeacutem

44 Definiccedilatildeo da Interface do aplicativoComo um primeiro protoacutetipo foi desenvolvida uma interface simples que tinha como tela

de iniacutecio um mapa com um campo para buscas na parte superior

36 DESENVOLVIMENTO DO PROJETO 44

Figura 414 Fluxo de telas do primeiro protoacutetipo

Ao efetuar uma busca por algum estabelecimento uma tela mostrando o tempo de esperaaproximado da fila no local era exibida junto com bototildees que permitiam selecionar o meiode transporte visualizar outras opccedilotildees ou dar iniacutecio a rota ateacute o local desejado Tambeacutemhavia uma notificaccedilatildeo para quando a pessoa estivesse parada proacutexima a um restaurantecadastrado que direcionaria o usuaacuterio a uma tela com um cronocircmetro do tempo de esperana fila

Para testar essa visualizaccedilatildeo escolhemos algumas pessoas e realizamos um teste deusabilidade[22] este teste eacute feito da seguinte forma

44 DEFINICcedilAtildeO DA INTERFACE DO APLICATIVO 37

Uma contextualizaccedilatildeo eacute feita para o voluntaacuterio e entatildeo uma tarefa eacute passada para sercompletada Os integrantes do grupo observam dificuldades enfrentadas pelo entrevistado etomam notas Esse teste eacute repetido algumas vezes e seu resultado eacute coletado para avaliaccedilatildeoe modificaccedilatildeo das funcionalidades

Figura 415 Tela de detalhes de um restaurante(segunda versatildeo)

Notou-se que algumas funcionalidadespareceram confusas e natildeo intuitivas porexemplo natildeo ficou claro se o tempo mos-trado era de trajeto ou de espera na filanem qual era o meio de transporte utili-zado

Logo esse protoacutetipo foi reformuladocom o intuito de melhorar a experi-ecircncia do usuaacuterio com o nosso aplica-tivo

Foram colocados aleacutem do tempo deespera da fila o tempo que o usuaacuteriolevaria para chegar ateacute o local selecio-nado (conforme o tipo de transporte es-colhido) e a quantidade estimada de pes-soas na fila O tempo total (espera so-mado ao tempo de deslocamento) ga-nhou destaque entre as informaccedilotildees doestabelecimento e o botatildeo que direcionao usuaacuterio ao trajeto ficou mais especiacute-fico

Tambeacutem cogitou-se a possibilidade deadicionar login e um perfil de usuaacuteriojunto com uma lista de restaurantes favo-ritos

O fluxo das telas deste novo protoacutetipo ficou como mostra o esquema a seguir

38 DESENVOLVIMENTO DO PROJETO 44

Figura 416 Fluxo de telas do segundo protoacutetipo

44 DEFINICcedilAtildeO DA INTERFACE DO APLICATIVO 39

Figura 417 Tela de detalhes de um restaurante(terceira versatildeo)

Apoacutes outras avaliaccedilotildees mais algumaspequenas alteraccedilotildees foram realizadas nainterface Foi decidido que seria inviaacute-vel estimar o nuacutemero de pessoas nafila entatildeo essa funcionalidade foi remo-vida

Notificaccedilotildees foram adicionadas paraquando o usuaacuterio estiver parado na aacutereado restaurante para que ele possa con-tribuir com informaccedilotildees sobre a fila quepegou aleacutem de um botatildeo de contri-buiccedilatildeo ter sido inserido na tela ini-cial

40 DESENVOLVIMENTO DO PROJETO 45

O fluxo de telas do aplicativo atual ficou da seguinte forma

Figura 418 Fluxo de telas do terceiro protoacutetipo

46 EXPLICACcedilAtildeO DAS FUNCIONALIDADES 41

45 Explicaccedilatildeo das funcionalidadesEsta seccedilatildeo explica as funcionalidades do produto utilizando a figura 418

A tela inicial (3) exibe uma lista de restaurantes incluindo seus respectivos tempos detrajeto e tempo de espera na fila Ao clicar no botatildeo ldquo+rdquo uma caixa de diaacutelogo eacute aberta(4) onde eacute possiacutevel adicionar o tempo que o usuaacuterio esperou na fila Primeiro eacute escolhido orestaurante depois a data e hora que a pessoa chegou na fila e por fim o tempo de esperaem minutos Ao tocar em ldquoEnviar Feedback rdquo os dados satildeo incluiacutedos no banco de dados eatualizados para os outros usuaacuterios Assim eacute apicado o conceito de Crowdsourcing no apli-cativo

Ao tocar em um item da lista de restaurantes seraacute aberta a tela de detalhes de um res-taurante (5) na qual eacute possiacutevel ver com mais clareza os tempos de trajeto e espera o tempototal o endereccedilo do estabelecimento e um pequeno mapa centrado no local Pressionandoo botatildeo ldquoDireccedilotildeesrdquo o usuaacuterio seraacute redirecionado ao aplicativo de mapas de sua preferecircnciano caso do exemplo (8) o Google Maps jaacute traccedilando a rota da localizaccedilatildeo do usuaacuterio para oestabelecimento em questatildeo

Novamente na tela inicial tocando no iacutecone de lupa eacute possiacutevel realizar uma busca digi-tando o nome do estabelecimento na caixa de texto a qual exibe sugestotildees dependendo doque foi digitado Ao clicar em um dos resultados da busca o usuaacuterio eacute novamente direcionadopara a tela de detalhes do restaurante (5)

Tambeacutem eacute possiacutevel tocar no iacutecone de mapa na tela inicial onde seraacute mostrado um mapacentrado na localizaccedilatildeo do usuaacuterio

Ao ficar parado por um tempo em um mesmo local proacuteximo a um estabelecimentocadastrado o usuaacuterio eacute perguntado em uma notificaccedilatildeo quanto tempo ele permaneceu nafila Ao tocar na notificaccedilatildeo a caixa de diaacutelogo para feedback do usuaacuterio seraacute aberta (4) jaacutecom o restaurante preenchido e apoacutes o feedback a janela seraacute fechada e os dados enviadosao banco de dados

46 Implementaccedilatildeo do banco de dadosO banco de dados do aplicativo foi modelado e populado em forma de aacutervore (Fi-

gura 419) de forma a facilitar o acesso aos dados necessaacuterios ao aplicativo No primeironiacutevel estatildeo os ids dos restaurantes Cada id de restaurante guarda a localizaccedilatildeo (latitudelongitude) do restaurante o nome o endereccedilo e um objeto fila O objeto fila guarda todos osdias da semana (domingo a saacutebado) e cada dia da semana possui 24 campos um para cadahora do dia Cada hora possui o tempo meacutedio de espera da fila naquela hora e um peso paraesse tempo O peso eacute um valor que aumenta de acordo com o nuacutemero de feedbacks dadospara que o novo valor do tempo meacutedio seja calculado de forma consistente

Modelamos o banco de dados de uma forma que respeitasse uma hierarquia de dados

42 DESENVOLVIMENTO DO PROJETO 46

Figura 419 Aacutervore que ilustra a organizaccedilatildeo de um restaurante no banco de dados

Com o banco de dados jaacute populado o aplicativo faz consultas e atualizaccedilotildees de dadosConsultas satildeo feitas ao criar a tela de listagem de restaurantes e de detalhes de um restau-rante consultado As atualizaccedilotildees satildeo feitas quando o usuaacuterio manda o feedback de tempo deespera em um estabelecimento em determinado horaacuterio o aplicativo calcula a nova meacutedia eatualiza o campo do respectivo horaacuterio

Capiacutetulo 5

Conclusatildeo

Ao longo dos capiacutetulos deste trabalho pocircde-se acompanhar todo o processo de criaccedilatildeo edesenvolvimento do aplicativo que apoacutes finalizado foi batizado com o nome Queue

Comeccedilando com um problema para o qual o grupo almejava oferecer uma soluccedilatildeoacabou-se por adentrar-se um pouco no campo da Estatiacutestica e estudar diversas metodo-logias que poderiam ser uacuteteis para fornecer um caacutelculo de previsatildeo de espera meacutedia porperiacuteodo aplicaccedilatildeo da teoria das filas e utilizaccedilatildeo de redes neurais

Atraveacutes de uma parceria com a empresa GetIn obteve-se acesso a uma grande quantidadede dados e foi possiacutevel utilizaacute-los em anaacutelises feitas nas metodologias escolhidas conseguindoassim resultados relevantes Por meio destes foi feita a escolha de um dos meacutetodos para ocaacutelculo da previsatildeo de filas a meacutedia por periacuteodo

Aleacutem desses estudos ao longo do ano o grupo aprendeu a desenvolver para a plata-forma Android sobre a qual nenhum dos integrantes tinha conhecimento preacutevio Tambeacutemfoi possiacutevel aprender e utilizar a metodologia aacutegil com Scrum para guiar o processo de de-senvolvimento

Ao fim do ciclo de desenvolvimento conseguiu-se entregar um aplicativo em funciona-mento que fornece a previsatildeo de espera no instante da consulta de estabelecimentos cadas-trados no banco de dados armazenado na nuvem

Na versatildeo atual do aplicativo natildeo foi implementado um sistema para o cadastro de novosestabelecimentos Isso soacute eacute possiacutevel atraveacutes da inserccedilatildeo direta no banco de dados atraveacutes dainterface fornecida pelo console do Firebase Atualmente estatildeo cadastrados 5 restaurantesos quais foram visitados durante o desenvolvimento do projeto Para que o cadastro deestabelecimentos escale seria necessaacuterio a implementaccedilatildeo de uma funcionalidade que permitaao usuaacuterio adicionar novos estabelecimentos a partir de locais disponiacuteveis na API de locaisda Google

43

45

46 APEcircNDICE A

Apecircndice A

Dados coletados

Figura A1 Dados de tempo de espera para grupos de tamanhos variados para cada horaacuterio e emcada dia da semana obtidos em entrevista em restaurantes Outback Steakhouse Shopping Uniatildeo nomecircs de outubro

Referecircncias Bibliograacuteficas

[1] Backpropagation httpmbpsourceforgenet Accesso em Janeiro 2017 14

[2] Bitbucket httpsbitbucketorgproduct Accesso em Dezembro 2016 19

[3] Crowdsourcing httpswwwmerriam-webstercomdictionarycrowdsourcing Ac-cesso em Novembro 2016 21

[4] Designing a survey httpwwwsciencebuddiesorgscience-fair-projectsproject_ideasSoc_surveyshtml Accesso em Outubro 2016 4 23

[5] Facebook httpswwwfacebookcom Accesso em Novembro 2016 24

[6] Firebase httpsfirebasegooglecom Accesso em Agosto 2016 20

[7] Getin app httpswwwgetinappcombrhomesao-paulo Accesso em Novembro2016 9

[8] Git 11 primeiros passos - sobre controle de versatildeo httpsgit-scmcombookpt-brv1Primeiros-passos-Sobre-Controle-de-Vers Accesso em Novembro 2016 19

[9] Google forms httpsdocsgooglecomforms Accesso em Novembro 2016 23

[10] Guia definitivo do project model canvas Project Builder 3

[11] Jsonorg introducing json httpwwwjsonorg Accesso em Novembro 2016 17

[12] Manifesto para desenvolvimento Aacutegil de software httpagilemanifestoorgisoptbrmanifestohtml Accesso em Novembro 2016 5

[13] Nosql httpsenwikipediaorgwikiNoSQL Accesso em Novembro 2016 20

[14] Outback steakhouse httpswwwoutbackcombrhome Accesso em Novembro 20169

[15] Restful api development with lumen microframework httpsbelitsoftcomlaravel-development-servicesapi-development Accesso em Novembro 2016 17

[16] Scrum httpswwwatlassiancomagilescrum Accesso em Novembro 2016 5

[17] Smartphone os market share 2016 q2 httpwwwidccomprodservsmartphone-os-market-sharejsp Accesso em Novembro 2016 15

[18] Smartphone os sales market share kantar worldpanel comtech httpwwwkantarworldpanelcomsmartphone-os-market-share Accesso em Novembro 2016 15

[19] Sourcetree httpswwwsourcetreeappcom Accesso em Dezembro 2016 19

47

48 REFEREcircNCIAS BIBLIOGRAacuteFICAS

[20] Sql httpsptkhanacademyorgcomputingcomputer-programmingsql Accesso emDezembro 2016 20

[21] Trello httpstrellocom Accesso em Novembro 2016 6

[22] Usability test httpsenwikipediaorgwikiUsability_testing Accesso em Novembro2016 36

[23] Versionone 2012 agile dev survey httpswwwversiononecompdf7th-Annual-State-of-Agile-Development-Surveypdf Accesso em Novembro 2016 5

[24] Waze httpswwwwazecom Accesso em Novembro 2016 1

[25] What is an open source httpsopensourcecomresourceswhat-open-source Accessoem Novembro 2016 15

[26] Xml tutorial httpwwww3schoolscomxml Accesso em Novembro 2016 17

[27] Paulo F Cabral dos Anjos Jr Aron Ifanger Maciel Christopher Silva de Paacutedua Com-posiccedilatildeo de carteiras de accedilotildees utilizando modelo de redes neurais artificiais e modelo derisco e retorno de Markowitz 2012 14

[28] Google Distance matrix api documentation httpsdevelopersgooglecommapsdocumentationdistance-matrix Accesso em Novembro 2016 17

[29] Alan Klement Designing features using job stories httpsblogintercomcomusing-job-stories-design-features-ui-ux Accesso em Novembro 2016 6

[30] Azmat Nafees Queuing theory and its application analysis of the sales checkout opera-tion in ica supermarket httpwwwstatisticsduseessaysD07ENafeespdf Accessoem Novembro 2016 12

[31] Eric Ries A Startup Enxuta Lua de papel primeira ediccedilatildeo edition 2012 3

  • Introduccedilatildeo
    • Motivaccedilatildeo
    • Trabalho Proposto
    • Estrutura da monografia
      • Estudos Preliminares
        • Desenvolvimento de Startups
          • Desenvolvimento de Questionaacuterios
            • Metodologia Aacutegil
            • Jobs to be done
            • Caacutelculo da previsatildeo do tempo de espera na fila
              • Descriccedilatildeo do problema
              • Meacutetodos de caacutelculo da espera
                  • Tecnologias utilizadas
                    • O sistema Android
                      • Organizaccedilatildeo de uma aplicaccedilatildeo Android
                        • JSON
                        • Google APIs
                        • Localizaccedilatildeo do Usuaacuterio
                        • Controle de Versatildeo
                        • Banco de dados
                          • Firebase
                            • Crowdsourcing
                              • Desenvolvimento do Projeto
                                • Pesquisa de Mercado
                                  • Pesquisa com o usuaacuterio
                                    • Projeto do Aplicativo
                                    • Aplicaccedilatildeo dos meacutetodos de caacutelculo de espera
                                      • Aplicando a meacutedia por periacuteodo
                                      • Aplicando teoria das filas
                                      • Aplicando redes neurais
                                      • Conclusatildeo sobre os meacutetodos estudados
                                        • Definiccedilatildeo da Interface do aplicativo
                                        • Explicaccedilatildeo das funcionalidades
                                        • Implementaccedilatildeo do banco de dados
                                          • Conclusatildeo
                                          • Dados coletados
                                          • Referecircncias Bibliograacuteficas

8 ESTUDOS PRELIMINARES 24

Algumas das histoacuterias criadas para os testes de interface do grupo foram

∙ Quando eu estiver na tela de lista de restaurantes eu quero acessar a tela de detalhesdo restaurante que eu desejo saber o tempo de espera entatildeo eu posso ver com clarezaas informaccedilotildees e posso traccedilar uma rota para o estabelecimento

∙ Quando eu estiver na tela principal eu quero enviar meu feedback sobre o tempo deespera no estabelecimento que estou entatildeo eu posso ajudar outros usuaacuterios por meiodo aplicativo

24 Caacutelculo da previsatildeo do tempo de espera na filaAtraveacutes de pesquisas em busca de meacutetodos estatiacutesticos para se estudar o comportamento

das filas foram encontradas as trecircs metodologias descritas nesta seccedilatildeo Este capiacutetulo conteacutema explicitaccedilatildeo do problema estudado e suas possiacuteveis soluccedilotildees

241 Descriccedilatildeo do problema

Para que se chegasse a uma soluccedilatildeo apropriada o problema de espera em fila precisouser estudado Esse problema pode ser descrito da seguinte forma dado um restaurante aentrada nesse eacute atraveacutes de uma fila Essa fila tem seu tamanho redefinido agrave medida quenovos clientes chegam e saem dela A saiacuteda dos clientes pode ser devido a desistecircncia ou aacomodaccedilatildeo deles nas mesas A entrada eacute definida pela disponibilizaccedilatildeo de lugares livres agravemedida em que os grupos que estavam alocados terminam seu atendimento

Figura 25 Esquema simplificado do funcionamento do processo em um restaurante

A fila de espera eacute influenciada por dois fatores a taxa de chegada do cliente e a taxa deatendimento nas mesas

∙ chegada em restaurantes a chegada de clientes eacute definida por uma taxa O clienteneste caso representa um grupo com tamanho variaacutevel A distribuiccedilatildeo do tamanho dogrupo nas chegadas eacute variaacutevel

∙ O atendimento a alocaccedilatildeo do grupo eacute organizada pela recepccedilatildeo O meacutetodo utilizadopor eles natildeo eacute padronizado e muitas vezes eacute completamente subjetivo Por exemplose acontecer de um grupo grande e vaacuterios casais chegarem ao mesmo tempo e nesse

24 CAacuteLCULO DA PREVISAtildeO DO TEMPO DE ESPERA NA FILA 9

momento existir um espaccedilo no salatildeo que acomode o grupo (juntando as mesas) outodos os casais (com as mesas separadas) dependendo de quem estaacute responsaacutevel poralocaacute-los cada um receberaacute uma prioridade diferente e essa decisatildeo natildeo eacute padronizada

∙ A disposiccedilatildeo das mesas a disposiccedilatildeo e quantidade de mesas natildeo satildeo padronizadasentre restaurantes de uma mesma rede muito menos entre restaurantes diferentesAleacutem disso a formataccedilatildeo do salatildeo pode ser remodelada de acordo com a necessidadede alocaccedilatildeo dos clientes haacute gerentes que evitam essa movimentaccedilatildeo ou ateacute mesmorestaurantes que natildeo tecircm essa possibilidade

242 Meacutetodos de caacutelculo da espera

Com o problema desenhado desta maneira esboccedilou-se trecircs possiacuteveis meacutetodos de resoluccedilatildeoe um desses foi aplicado na soluccedilatildeo final Os meacutetodos desenvolvidos satildeo meacutedia por periacuteodoaplicaccedilatildeo da teoria das filas e utilizaccedilatildeo de redes neurais Essas teacutecnicas precisam de dadospara serem desenvolvidas e aplicadas Por conta disso buscou-se fontes que suprissem essanecessidade

Captaccedilatildeo dos dados para a anaacutelise

Para que seja possiacutevel aplicar os meacutetodos estudados eacute necessaacuterio obter dados para aplicarna anaacutelise Estes foram obtidos de duas formas a partir de uma parceria com a empresa GetIn [7] desenvolvedora de um aplicativo de gerenciamento de filas de restaurantes e atraveacutesde pesquisas presenciais em restaurantes da rede Outback Steakhouse[14] selecionados para oestudo(Apecircndice A) O aplicativo da Get In possui uma funcionalidade principal realizaccedilatildeode uma reserva em um determinado restaurante O banco de dados manteacutem o registro detodos os usuaacuterios que entram na fila e esses dados satildeo organizados em uma tabela com osseguintes campos

∙ Origem Se a reserva foi realizada de forma remota ou presencial Assim

1 Reserva presencial (na entrada do restaurante incluiacuteda pela recepcionista)

2 Reserva remota (realizada atraveacutes do aplicativo)

∙ Entrada este consiste na data e hora que o usuaacuterio entrou na fila

∙ Qtd Pessoas tamanho do grupo para o qual a reserva foi feita

∙ Prioritaacuterio se este grupo requer atendimento prioritaacuterio

0 Natildeo

1 Sim

∙ Notificado A data e horaacuterio em que o grupo foi notificado que sua mesa estava pronta

ndash Quando NULL a recepcionista natildeo notificou essa pessoa (possivelmente chamoudiretamente pelo nome)

∙ Tempo na Espera Tempo que o grupo ficou ativo na fila de espera (em segundos)

∙ Status Qual a situaccedilatildeo da reserva do grupo Podendo assumir tais valores

0 Cancelado pela recepcionista

10 ESTUDOS PRELIMINARES 24

2 Sentado

3 Cancelado pelo proacuteprio Usuaacuterio

Para melhor entender estes paracircmetros o funcionamento do aplicativo deve ser expli-cado com maior detalhamento O processo de reserva funciona da seguinte forma o usuaacuterioreserva seu lugar atraveacutes do aplicativo ou vai ao restaurante e a recepcionista o adiciona agraveespera No primeiro caso o usuaacuterio tem um tempo de toleracircncia para chegar ao estabeleci-mento apoacutes receber a notificaccedilatildeo caso natildeo consiga chegar a tempo a reserva eacute cancelada Nosegundo caso quando o grupo a ser chamado estaacute proacuteximo da recepccedilatildeo a funcionalidade denotificaccedilatildeo natildeo precisa ser usada o responsaacutevel pode se direcionar diretamente aos clientes echamaacute-los pelo nome Mesmo nesse segundo caso o tempo de espera na fila ainda eacute guardadopois a recepccedilatildeo precisa ldquofecharrdquo a espera do grupo para chamar o proacuteximo

Poreacutem a utilizaccedilatildeo desses dados natildeo foi liberada pela empresa Get In para serem usadoscomo banco de dados do aplicativo somente foram fornecidos dados do mecircs de agosto esetembro de 2016 para que fossem utilizados nas anaacutelises feitas com os modelos estatiacutesticosPara obter dados que poderiam ser utilizados no banco de dados do aplicativo foi neces-saacuterio uma pesquisa presencial onde o grupo visitou alguns restaurantes da rede OutbackSteakhouse para obter informaccedilotildees sobre o tempo de espera nestes estabelecimentos

Foram visitados 5 restaurantes Outback Steakhouse Shopping Eldorado Outback Ste-akhouse Shopping Villa Lobos Outback Steakhouse Shopping Granja Vianna Outback Ste-akhouse Shopping Uniatildeo de Osasco e Outback Steakhouse Shopping Market Place ondequestionamos sobre o tempo de espera por tamanho de grupos (em nuacutemero de pessoas) epor horaacuterio e dia da semana

Ao analisar os dados coletados pela pesquisa presencial notamos que estes estavam sus-cetiacuteveis a erros por terem sido obtidos por meio de diferentes observaccedilotildees humanas Ummeacutetodo para obter dados mais precisos consistiria na realizaccedilatildeo de novas pesquisas no for-mato mediccedilatildeo onde cada integrante do grupo deveria coletar o tempo de espera de cadacliente atraveacutes de um cronocircmetro e calcular o tempo de espera meacutedio nesse horaacuterio Comoo grupo natildeo conseguiria aplicar este meacutetodo optou-se por melhorar a precisatildeo dos dadoscoletados usando como base o graacutefico de horaacuterios de pico disponibilizado pela Google paracada restaurante Essa melhora foi feita utilizando-se caacutelculos de proporccedilatildeo de valores

24 CAacuteLCULO DA PREVISAtildeO DO TEMPO DE ESPERA NA FILA 11

Primeiro meacutetodo Meacutedia por periacuteodo

Figura 26 Esquema do meacutetodo meacutedia por periacuteodo

Para que uma previsatildeo de espera possa ser fornecida ao usuaacuterio essa deve basear-seobrigatoriamente em alguma informaccedilatildeo preacutevia Contudo encontrar uma fonte para taisdados se mostrou uma tarefa muito complicada Para conseguir ainda assim apresentar umtempo de espera em fila meacutetodos de anaacutelise foram definidos de acordo com a quantidade dedados disponiacutevel para cada estabelecimento

De um modo geral neste modelo o caacutelculo do tempo de espera funcionaraacute da seguinteforma calcular-se-aacute a meacutedia de espera para o dia da semana e horaacuterio requeridos pelousuaacuterio sem diferenciar feriados de dias normais Dependendo de quatildeo longo eacute o histoacutericoniacuteveis de especificidade podem ser adicionados ou seja numa busca tempo de espera em 9de Dezembro (segunda-feira) agraves 19h no restaurante X a query selecionaraacute todos os registrosfeitos no dia 9 de dezembro entre as 19h e agraves 20h dos uacuteltimos anos no restaurante X e realizaraacuteessa meacutedia ou pode selecionar apenas linhas de todas as segundas-feiras do mecircs de Dezembrodeste mesmo periacuteodo

∙ Muitos dados neste caso um maior niacutevel de especificidade pode ser aplicado sem autilizaccedilatildeo de outras fontes para complementar o banco de dados

∙ Alguns dados o niacutevel de especificidade eacute bem menor apenas filtrando por dia dasemana e intervalo de hora sem mecircs ou dia especiacutefico no ano Em alguns casos aquantidade de dados eacute tatildeo pequena que deve-se recorrer a outras fontes A Googletem disponibilizado graacuteficos com a distribuiccedilatildeo dos clientes nos horaacuterios de funciona-mento de estabelecimentos Esses dados natildeo estatildeo disponiacuteveis em sua API ou seja natildeo

12 ESTUDOS PRELIMINARES 24

haacute uma forma automaacutetica para que o aproveitamento desses possa ser feito Poreacutemmesmo omitindo-se os valores do graacutefico o perfil da distribuiccedilatildeo e o horaacuterio de picosatildeo aproveitados manualmente para nosso sistema

∙ Poucos dados para este caso fizemos o balanceamento dos dados da Google comas informaccedilotildees retiradas das entrevistas Aleacutem do aproveitamento das informaccedilotildees daGoogle foram realizadas pesquisas com funcionaacuterios dos restaurantes

Segundo meacutetodo Teoria das filas

Filas podem ser vistas como um sistema dinacircmico no qual existe um conjunto de usuaacuteriosque satildeo atendidos por um conjunto de atendentes de acordo com a ordem de chegada dosusuaacuterios A teoria de filas busca utilizando anaacutelises matemaacuteticas estudar o comportamentodestas filas para estimar o tempo de espera com base em um conjunto inicial de dadospreviamente fornecido[30]

Um sistema de filas possui como caracteriacutesticas

∙ Modelo de chegada dos usuaacuterios Utiliza como base o tempo entre as chegadasdos usuaacuterios

∙ Modelo de serviccedilo (atendimento aos usuaacuterios) Utiliza como base o tempo gastono atendimento ao usuaacuterio No caso dos restaurantes equivale ao tempo que um grupopassa na mesa ateacute a sua saiacuteda

∙ Nuacutemero de servidores Eacute o nuacutemero de atendentes disponiacuteveis no sistema Para omodelo do restaurante este equivale agraves mesas disponiacuteveis no salatildeo

∙ Capacidade do sistema Eacute o nuacutemero de usuaacuterios que o sistema eacute capaz de atenderInclui o nuacutemero de usuaacuterios que estatildeo sendo atendidos somado com os que esperamna fila Se este paracircmetro natildeo for informado o sistema eacute considerado com capacidadeilimitada

∙ Tamanho da populaccedilatildeo nuacutemero potencial de clientes que podem chegar a umsistema Pode ser finito ou infinito

∙ Disciplina da fila A disciplina da fila pode ser FIFO (first in first out) - o primeiroa chegar eacute o primeiro a ser atendido LIFO (last in first out) - o uacuteltimo a chegar eacuteo primeiro a ser atendido ALEATOacuteRIO - os atendimentos satildeo feitos sem qualquerpreocupaccedilatildeo com a ordem de chegada COM PRIORIDADE - os atendimentos satildeofeitos de acordo com prioridades estabelecidas No caso dos restaurantes a disciplinaadotada eacute a FIFO poreacutem esta pode mudar de acordo com o atendente responsaacutevel

Os tempos mencionados nos modelos de chegada e de serviccedilo podem ser constantesquando os intervalos entre as chegadas dos usuaacuterios satildeo iguais ou variaacuteveis quando os valo-res desses intervalos variam Nesse uacuteltimo caso o intervalo de tempo segue uma distribuiccedilatildeode probabilidades Nesse modelo tambeacutem existe a taxa meacutedia de chegada dos usuaacuterios porunidade de tempo ou seja quantos usuaacuterios chegam em uma hora

As filas podem ser moldadas em trecircs situaccedilotildees baacutesicas como descrito por Azmat Nafees[30]

∙ Modelo de fila de canal uacutenico com fila uacutenica e atendimento uacutenico (Figura 27)

24 CAacuteLCULO DA PREVISAtildeO DO TEMPO DE ESPERA NA FILA 13

∙ Modelo de fila de canal uacutenico com fila uacutenica e muacuteltiplos atendimentos paralelos (Fi-gura 28)

∙ Modelo de fila de canal uacutenico com muacuteltiplas filas e muacuteltiplos atendimentos paralelos(Figura 29)

Figura 27 Modelo de fila de canal uacutenico com fila uacutenica e atendimento uacutenico

Figura 28 Modelo de fila de canal uacutenico com fila uacutenica e muacuteltiplos atendimentos paralelos

Figura 29 Modelo de fila de canal uacutenico com muacuteltiplas filas e muacuteltiplos atendimentos paralelos

Tambeacutem por Azmat Nafees nesses modelos trecircs subprocessos podem ser vistos

∙ Processo de chegada Eacute um processo contiacutenuo do evento ldquochegada de clientesrdquo ouseja quando o evento ocorre o processo aguarda a ocorrecircncia do proacuteximo evento Esseevento coloca um cliente na fila quando ele chega

14 ESTUDOS PRELIMINARES 24

∙ Processo de espera Eacute um processo que inclui o evento ldquocomece a servir o proacuteximocliente da filardquo que retira um cliente da fila o coloca no processo de atendimento eespera a conclusatildeo do evento ldquocliente servidordquo para recomeccedilar Nele se trabalha comtamanho e disciplina da fila

∙ Processo de atendimento Eacute um processo que inclui o evento ldquocliente servidordquo eespera a conclusatildeo do evento ldquocomece a servir o proacuteximo cliente da filardquo para recomeccedilarNele se trabalha com tipo taxa e tempo de atendimento

Dentre esses 3 modelos o que mais se encaixa na situaccedilatildeo de um restaurante eacute o segundomodelo canal uacutenico com fila uacutenica e muacuteltiplos atendimentos paralelos O processo de chegadade novos clientes na fila eacute tido como aleatoacuterio

Terceiro meacutetodo Rede Neural

Rede Neural eacute uma teacutecnica computacional inspirada no sistema nervoso que com o auxiacute-lio de um modelo matemaacutetico apresenta respostas para problemas de decisatildeo Esses modelosfuncionam da seguinte forma primeiro um conjunto de dados (conjunto de treinamento) eacuteapresentado ao sistema e este aprende com ele atraveacutes de reconhecimento de padratildeo entatildeocoloca-se o sistema para analisar os dados (conjunto de teste) para os quais deseja-se obteralgum resultado Este processo eacute chamado de aprendizagem de maacutequina Quanto melhor forseu treinamento mais precisas seratildeo as respostas para o segundo conjunto

Uma rede neural eacute formada por subestruturas chamadas neurocircnios Um neurocircnio tem oseguinte funcionamento ele recebe como entrada sinais cada sinal recebe um peso de acordocom a influecircncia dele na saiacuteda e uma soma eacute feita para produzir o niacutevel de atividade entatildeodependendo se o niacutevel de atividade exceder o limite dado pela funccedilatildeo de transferecircncia aresposta eacute produzida[27]

Software Multiple Back-Propagation

Para implementar a soluccedilatildeo baseada em redes neurais foi usado o Software MultipleBack-Propagation [1] Este eacute um software de faacutecil utilizaccedilatildeo que fornece uma rede a qualaprende atraveacutes do processo de propagaccedilatildeo inversa Esse meacutetodo baseia-se na comparaccedilatildeodos dados esperados (conjunto de teste) com os dados obtidos a partir do treinamento senecessaacuterio adaptaccedilotildees satildeo feitas a estrutura da rede para melhor aproximar aos dados doconjunto teste e isso eacute chamado de propagaccedilatildeo inversa

Por se tratar de um meacutetodo de aprendizagem de maacutequinas para se obter um resultadodeve-se treinar o algoritmo Primeiramente submete-se o conjunto de treinamento ao soft-ware para isso foi escolhido o mecircs de Agosto O criteacuterio de parada para o treino eacute o erroquadraacutetico meacutedio o qual teve seu valor atribuiacutedo para 001

Capiacutetulo 3

Tecnologias utilizadas

31 O sistema AndroidAndroid eacute um Sistema operacional open source (software de coacutedigo aberto o qual as

pessoas podem acessar e modificar para contribuir com o projeto [25]) e para dispositivosmoacuteveis desenvolvido pela Google baseado no Kernel do Linux e utilizado principalmente emdispositivos touchscreen Atualmente o Android eacute o sistema operacional que deteacutem a maiorparcela do mercado[17] com 836 dos dispositivos contra 134 do iOS da Apple

A Google tambeacutem oferece um ambiente de desenvolvimento para a plataforma Androidchamado Android Studio no qual os aplicativos satildeo criados e exportados para os dispositi-vos moacuteveis Aplicativos Android satildeo programados na linguagem Java com vaacuterias bibliotecasdisponibilizadas pela Google para suporte ao sistema operacional

A escolha da plataforma foi feita principalmente por conta de o sistema possuir a maiorparte dos usuaacuterios de Smartphones e tambeacutem pela ampla comunidade ativa de desenvolve-dores agrave qual se pode recorrer em casos de duacutevidas e problemas tornando suas resoluccedilotildeesmais raacutepidas e com muacuteltiplas alternativas Outros motivos que contribuiacuteram para a escolhado Android foram

∙ A disponibilidade do ambiente de desenvolvimento Android Studio que possui todosos recursos necessaacuterios para desenvolver um aplicativo funcional logo apoacutes a instalaccedilatildeosem a necessidade de utilizar outras dependecircncias as quais satildeo gerenciadas automati-camente pelo proacuteprio software

∙ O fato de no mercado brasileiro o sistema Android se encontrar em 918 dos dispo-sitivos segundo pesquisa da Kantar[18] e dado a pesquisa realizada para definiccedilatildeo depuacuteblico alvo onde foi possiacutevel perceber que 639 dos entrevistados utilizam smartpho-nes com sistema Android

∙ A utilizaccedilatildeo da linguagem de programaccedilatildeo Java para desenvolvimento que jaacute eraconhecida e fora utilizada anteriormente ao contraacuterio das linguagens Objective C eSwift linguagens utilizadas para desenvolver aplicativos para o sistema iOS Assimcomo a disponibilidade de dispositivos por parte do grupo que em sua maioria era decelulares com o sistema Android

15

16 TECNOLOGIAS UTILIZADAS 31

Figura 31 Parcela de mercado dos dispositivos no Brasil

311 Organizaccedilatildeo de uma aplicaccedilatildeo Android

Aplicativos Android satildeo divididos em componentes Haacute quatro tipos de componentespresentes Activities (ou atividades) Services (ou serviccedilos) Content providers (ou provedoresde conteuacutedo) Broadcast receivers (ou receptores de transmissatildeo)

∙ Activities Satildeo as telas e interfaces do usuaacuterio Cada tela de uma aplicaccedilatildeo eacute repre-sentada por uma activity e cada activity eacute independente de outras apesar de seremcomponentes de uma mesma aplicaccedilatildeo Isso se daacute pelo fato de haver a possibilidade deutilizar activities de aplicativos durante a execuccedilatildeo de outros Atividades satildeo iniciadase se comunicam entre si atraveacutes de objetos chamados Intent que transferem um pacotede dados que pode ser carregado no iniacutecio da nova atividade

∙ Services Sempre satildeo executados em segundo plano sem interferir na experiecircncia dousuaacuterio geralmente para realizar operaccedilotildees longas ou realizar operaccedilotildees de troca dedados enquanto o usuaacuterio estaacute utilizando outra aplicaccedilatildeo em primeiro plano

∙ Content Providers Satildeo gerenciadores de dados de aplicaccedilotildees Android utilizadospara ler e salvar dados compartilhados ou secretos dos aplicativos e do sistema

∙ Broadcast Receivers Satildeo componentes responsaacuteveis por obter eventos que aconte-ceram em outras aplicaccedilotildees ou no sistema e direcionar dados sobre esses eventos paraeventuais aplicaccedilotildees que necessitem destes dados alguns exemplos de eventos obtidospelos receptores de transmissatildeo satildeo tela desligada e bateria fraca

Aleacutem dos componentes uma parte importante de uma aplicaccedilatildeo Android eacute o ArquivoManifest que eacute uma declaraccedilatildeo de permissotildees serviccedilos e exigecircncias de hardware necessaacuterios

33 JSON 17

para o funcionamento do aplicativo Outra funccedilatildeo eacute possuir declaraccedilotildees de todos os compo-nentes utilizados no projeto nomes iacutecones entre outros

As interfaces de usuaacuterio do Android satildeo definidas em arquivos XML (eXtensible MarkupLanguage)[26] nos quais estatildeo declarados todos os layouts e configuraccedilotildees das telas Essesarquivos de layout satildeo depois inflados e satildeo gerados os componentes visuais da aplicaccedilatildeoEssa estrutura tem como objetivo facilitar o design da interface do usuaacuterio jaacute que arquivosxml satildeo de faacutecil compreensatildeo do desenvolvedor

32 JSONJSON ou Javascript Object Notation eacute um formato de dados amplamente utilizado para

troca de informaccedilotildees entre programas Possui uma notaccedilatildeo simples para grande parte dosprogramadores pois se assemelha a convenccedilotildees utilizadas em linguagens de programaccedilatildeomuito conhecidas como C C++ Python e Java O objetivo eacute que ele seja de faacutecil entendi-mento tanto para pessoas como para maacutequinas[11]

Um arquivo JSON eacute organizado como um objeto contendo pares nomevalorseparadospor viacutergulas e dentro de chaves(lsquolsquo rsquorsquo) ou como um array que eacute uma lista de valores separa-dos por viacutergulas e entre colchetes(lsquo[lsquo rsquo]rsquo) Um valor por sua vez pode ser um objeto ou umarray mas tambeacutem um nuacutemero inteiro ou uma String entre outros

Um exemplo de arquivo JSON eacute

1 2 Carros [3 4 Nome Scen ic 5 Marca Renault 6 Ano 20127 8 9 Nome Sentra

10 Marca Nissan 11 Ano 200912 13 ]14

33 Google APIsAPIs (Application Program Interfaces) satildeo interfaces para facilitar a troca de informa-

ccedilotildees entre aplicaccedilotildees utilizando comandos especiacuteficos[15]

Ao longo do desenvolvimento algumas APIs fornecidas pela Google foram utilizadascomo fonte de informaccedilotildees adicionais para o aplicativo

∙ Google Maps Distance Matrix API Esta API eacute utilizada para obter o tempo emsegundos de trajeto entre dois pontos (latlong) no mapa podem ser consultados ostempos de trajeto de carro bicicleta a peacute e utilizando transporte puacuteblico[28] Esta eacute

18 TECNOLOGIAS UTILIZADAS 35

uma API web logo utiliza-se um request http para realizar uma consulta

Por exemplo o request

httpsmapsgoogleapiscommapsapidistancematrixjsonorigins=Seattleampdestinations=Victoria+BCampkey=[user_key]

retorna o JSON

1 2 des t ina t i on_addre s s e s [ Vic tor ia BC Canada ] 3 o r i g in_addre s s e s [ Sea t t l e WA EUA ] 4 rows [5 6 e lements [7 8 d i s t anc e 9 text 172 km

10 value 17166811 12 durat ion 13 text 4 horas 40 minutos 14 value 1680915 16 s t a tu s OK17 18 ]19 20 ] 21 s t a tu s OK22

no qual eacute possiacutevel obter o tempo de trajeto em segundos

∙ Google Maps Android API Esta API eacute utilizada para habilitar o uso de mapasda Google integrados agrave aplicaccedilatildeo jaacute disponiacutevel com todas as funcionalidades de zoome arrastar presentes no aplicativo nativo permitindo tambeacutem a personalizaccedilatildeo comoa adiccedilatildeo de pontos definidos pelo usuaacuterio ao mapa

34 Localizaccedilatildeo do UsuaacuterioOutro serviccedilo que foi utilizado com o intuito de obter o tempo de trajeto e a lista ordenada

de forma personalizada de restaurantes foi a localizaccedilatildeo do usuaacuterio que eacute obtida atraveacutes doGPS presente nos smartphones Um objeto de localizaccedilatildeo eacute criado e realiza a comunicaccedilatildeocom o serviccedilo de localizaccedilatildeo do aparelho Ao obter a localizaccedilatildeo ele lanccedila um evento quepode ser acessado por outras partes da aplicaccedilatildeo obtendo a localizaccedilatildeo mais atualizada dodispositivo

36 CONTROLE DE VERSAtildeO 19

35 Controle de VersatildeoControle de versatildeo eacute uma praacutetica usada para manter a organizaccedilatildeo do coacutedigo e do seu de-

senvolvimento quando muitos desenvolvedores colaboram conjuntamente Existem softwaresque auxiliam essa organizaccedilatildeo registrando todas as mudanccedilas feitas ao longo do processo eque possui recursos que permitem que vaacuterios usuaacuterios trabalhem nos mesmos arquivos semperda de informaccedilotildees

No caso do Git [8] o projeto fica organizado em uma estrutura de aacutervore onde cadacommit (checkpoints criados pelos membros do grupo durante o processo) eacute marcado porum noacute para onde se pode retornar quando necessaacuterio Existem tambeacutem estruturas chama-das branches que satildeo bifurcaccedilotildees na estrutura para que partes do projeto sejam criadasseparadamente sem interferir com a linha principal As branches depois satildeo unidas agrave linhaprincipal atraveacutes do comando merge

Neste projeto o serviccedilo de controle de versatildeo utilizado foi o Bitbucket [2] (que eacute um ser-viccedilo web-based de controle de versatildeo que utiliza Git) com auxiacutelio do software SourceTree[19]que eacute uma interface graacutefica para os serviccedilos do Bitbucket onde eacute possiacutevel visualizar com maisfacilidade as fases do desenvolvimento do projeto e realizar os comandos mais intuitivamente

Figura 32 Interface do SourceTree que mostra o controle de versionamento do projeto

36 Banco de dadosCom o intuito de deixar o aplicativo mais completo guardando informaccedilotildees dos usuaacuterios

e dos estabelecimentos optou-se por utilizar-se um banco de dados Alguns exemplos de

20 TECNOLOGIAS UTILIZADAS 36

banco de dados aprendidos no curso Laboratoacuterio de Banco de Dados foram

∙ SQL (Structured Query Language - Linguagem de Consulta Estruturada)[20] umalinguagem para atualizar deletar e requisitar informaccedilotildees atraveacutes de consultas emtabelas que possuem relaccedilatildeo entre si

∙ noSQL[13] um banco de dados que armazena e recupera informaccedilotildees modeladas deuma forma onde natildeo satildeo usadas tabelas relacionais

Como este uacuteltimo natildeo foi o foco da disciplina por falta de tempo decidiu-se por utilizaacute-lopara que o grupo pudesse aprender melhor esse modelo

Outra decisatildeo tomada foi a hospedagem dos dados na nuvem ou seja colocaacute-los em umservidor que natildeo seja local e conseguir acessaacute-los atraveacutes de uma conexatildeo via internet Dessemodo os dados sempre estaratildeo disponiacuteveis para serem consultados

361 Firebase

Buscando-se atender as decisotildees tomadas sobre o banco de dados procuramos um serviccedilode banco de dados da Google por conter ampla integraccedilatildeo com a plataforma de desenvolvi-mento Android por ser conhecido bastante utilizado e por possuir uma ampla comunidadede desenvolvedores dispostos a oferecer auxiacutelio em foacuteruns de discussatildeo de coacutedigos

Para atender esses requisitos escolheu-se o Firebase Realtime Database[6] desenvolvido edisponibilizado pela Google que consiste em um banco de dados noSQL com armazenamentona nuvem Esse serviccedilo armazena os dados do usuaacuterio no servidor da Google em formatoJSON e a cada alteraccedilatildeo sincroniza em tempo real com todos os clientes conectados

O grupo pode observar as seguintes vantagens de se trabalhar com a ferramenta existea sincronizaccedilatildeo em tempo real dos dados de todos os clientes e sua disponibilidade mesmocom o aplicativo offline ou seja quando o aplicativo natildeo estiver conectado a internet osdados do dispositivo moacutevel seratildeo armazenados e sincronizados com o banco de dados assimque a conexatildeo estiver disponiacutevel novamente Aleacutem disso os desenvolvedores possuem acessoa um console online (figura 33) onde o JSON eacute mostrado numa interface interativa de umaforma mais amigaacutevel e no qual eacute permitido editaacute-lo facilmente

37 CROWDSOURCING 21

Figura 33 Console online do Firebase onde os dados satildeo mostrados de forma mais amigaacutevel eintuitiva

Outra observaccedilatildeo feita foi que o Firebase Realtime Database funciona como o esperadose ele guardar uma coacutepia local dos dados em um arquivo JSON no celular Poreacutem isso natildeofoi visto como um problema pois como essa coacutepia pode ser salva em um arquivo texto oespaccedilo utilizado diminui consideravelmente

Na primeira vez que os dados satildeo criados e todas as vezes em que os dados forem atua-lizados por algum dispositivo moacutevel eacute enviada uma atualizaccedilatildeo que seraacute recebida atraveacutes delisteners por todos os aparelhos que utilizam o aplicativo para que eles atualizem seus res-pectivos JSONs Listeners satildeo interfaces de comunicaccedilatildeo que executam uma seacuterie de accedilotildeesassim que um outro evento esperado acontece

37 CrowdsourcingO termo Crowdsourcing tem origem nas palavras da liacutengua inglesa Crowd (multidatildeo) e

Outsourcing (terceirizaccedilatildeo) e eacute definido pelo dicionaacuterio Merriam Webster como A praacuteticade obtenccedilatildeo de serviccedilos ideias ou conteuacutedo solicitando contribuiccedilotildees de grandes grupos depessoas e especialmente da comunidade online [3] Esta praacutetica eacute utilizada para que sejapossiacutevel agrave comunidade contribuir com dados para algum programa ou serviccedilo como no apli-cativo Waze do qual a principal fonte de dados de tracircnsito acidentes e radares eacute obtida pormeio dos proacuteprios usuaacuterios

Capiacutetulo 4

Desenvolvimento do Projeto

Este capiacutetulo aborda o processo de desenvolvimento do projeto iniciado com o preen-chimento do diagrama Canvas e uma pesquisa de mercado direcionada ao usuaacuterio A partirdas informaccedilotildees coletadas foi possiacutevel projetar um aplicativo que atendesse as necessidadesexpostas pela pesquisa e selecionar as tecnologias necessaacuterias Tambeacutem eacute abordada a aplica-ccedilatildeo dos diferentes meacutetodos de caacutelculo da previsatildeo de tempo de espera que foram estudadose explicados no Capiacutetulo 2 Por fim satildeo expostas as diferentes versotildees do aplicativo duranteo processo e seus detalhes

41 Pesquisa de MercadoAntes de iniciar-se o desenvolvimento praacutetico algumas questotildees foram levantadas se

um aplicativo com as funcionalidades escolhidas seria de alguma forma uacutetil para o usuaacuterioe se sim qual metodologia deveria ser usada para que este produto fosse entregue o maiscompleto possiacutevel ateacute o final do ano Para responder a primeira pergunta desenvolveu-seum questionaacuterio

411 Pesquisa com o usuaacuterio

O questionaacuterio foi desenvolvido para avaliar a viabilidade do aplicativo e suas funciona-lidades e foi criado utilizando-se o Google Forms [9] Essa eacute uma ferramenta desenvolvidapelo Google que possibilita a criaccedilatildeo de formulaacuterios contendo diversos formatos de pergun-tas tanto dissertativas quanto de muacuteltipla escolha

Seguindo os princiacutepios de desenvolvimento de questionaacuterios [4] o conjunto de perguntasfoi mantido curto simples e de faacutecil entendimento Tambeacutem variou-se o tipo de questotildeesentre estruturadas (questotildees com respostas em forma de alternativas) e desestruturadas(questotildees com respostas em formato texto) seguindo esses mesmos princiacutepios para captarmelhor as informaccedilotildees dos entrevistados e evitar erros de entendimento

Com as respostas do questionaacuterio tinha-se o intuito de traccedilar um possiacutevel puacuteblico alvoconhecer seu modo de uso de dispositivos moacuteveis e validar a aplicabilidade de diferentesfuncionalidades pretendidas inicialmente sendo essas engajamento do usuaacuterio atraveacutes denotificaccedilotildees do sistema aceitaccedilatildeo de sugestotildees de locais alternativos avaliaccedilatildeo da existecircnciado problema que queremos resolver (se este aplicativo supre uma necessidade real do usuaacute-rio) e aceitaccedilatildeo do aplicativo

23

24 DESENVOLVIMENTO DO PROJETO 41

Para a divulgaccedilatildeo redes sociais como Facebook [5] e sistemas de mensagem instantacircneascomo WhatsApp foram usados e o envio de respostas foi restrito ateacute trecircs semanas apoacutes suaprimeira postagem Neste periacuteodo foram obtidas 210 respostas as quais ajudaram a definiros aspectos do sistema a ser desenvolvido

O questionaacuterio foi dividido em duas subseccedilotildees perfil do usuaacuterio e funcionalidade Comelas obteve-se os seguintes resultados

41 PESQUISA DE MERCADO 25

Questatildeo 1

Figura 41 Graacutefico pizza da distribuiccedilatildeo das respostas em relaccedilatildeo a idade dos pesquisados

As faixas de idade apresentadas estatildeo desbalanceadas por natildeo terem a mesma quantidadede anos em cada uma poreacutem essa divisatildeo foi pensada levando-se em conta a fluecircncia comtecnologia que cada idade possui Com o resultado verificou-se que do puacuteblico alcanccediladocom a pesquisa a maioria estaacute na faixa de 18 a 25 anos de idade assumida como parcelacom maior conhecimento tecnoloacutegico

Questatildeo 2

Figura 42 Graacutefico pizza da distribuiccedilatildeo das respostas em relaccedilatildeo ao sistema operacional

Esta questatildeo foi pensada para medir a porcentagem de cada sistema operacional pre-sente nos celulares do puacuteblico Com ela descobriu-se que 639 das pessoas dentro desse

26 DESENVOLVIMENTO DO PROJETO 41

grupo possuem o sistema Android enquanto 234 possuem iOS e 38 Windows phoneEssa pergunta foi incluiacuteda para um melhor direcionamento do desenvolvimento do aplicativo

Uma questatildeo levantada ao aplicar esse questionaacuterio foi a dificuldade que algumas pessoasencontraram para identificar a versatildeo do proacuteprio aparelho Poreacutem para manter a consistecircnciadas respostas decidiu-se natildeo mudar nada nesta questatildeo para remediar isso

Questatildeo 3

Figura 43 Graacutefico em barras da distribuiccedilatildeo de frequecircncias mensais de cada local analisado

41 PESQUISA DE MERCADO 27

Questatildeo 4

Figura 44 Graacutefico em pizza da distribuiccedilatildeo de interesse do usuaacuterio no tempo de espera de cadalocal

A princiacutepio viu-se muitas possiacuteveis aplicaccedilotildees para a previsatildeo de tempo de espera Paraentender qual seria a prioridade do puacuteblico as questotildees acima foram incluiacutedas A primeiraverificou a frequecircncia de visitas em alguns locais e a segunda serviu para analisar qualestabelecimento despertava mais interesse nos entrevistados quanto ao quesito fila Nos doiscasos restaurantes se destacaram com o maior interesse

Questatildeo 5

Figura 45 Graacutefico em barras da distribuiccedilatildeo de interesse do usuaacuterio por cada item avaliado

Para acompanhar o dado de espera e fornecer mais informaccedilotildees relevantes ao usuaacuteriosem potencial perguntou-se quais outras informaccedilotildees eles acham interessante saber sobre umdeterminado estabelecimento Com isso descobriu-se que a faixa de preccedilo o trajeto ateacute olocal e o cardaacutepio seriam dados importantes de se obter juntamente com o tempo de espera

28 DESENVOLVIMENTO DO PROJETO 41

Questatildeo 6O que vocecirc costuma fazer para evitar filasNeste ponto testou-se se a soluccedilatildeo proposta atraveacutes do aplicativo resolveria o problema dousuaacuterio de uma forma melhor do que a soluccedilatildeo atualmente utilizada Para isso foi perguntadoo que as pessoas fazem para evitar filas e as principais respostas foram

∙ Evitar horaacuterios de pico

∙ Chegar cedo

∙ Ir em outro lugar caso uma fila seja encontrada

∙ Tentar realizar reservas antecipadamente

∙ Se distrair com livroscelular

Notou-se que as soluccedilotildees utilizadas atualmente natildeo suprem as necessidades dos entre-vistados pois mesmo em horaacuterios natildeo convencionais pode-se encontrar filas ou quandodecide-se esperar na fila muito tempo eacute perdido Concluiu-se que a soluccedilatildeo proposta a par-tir do aplicativo resolve de forma mais abrangente o problema pois ajuda o usuaacuterio a evitarhoraacuterios de pico inesperados

Questatildeo 7

Figura 46 Graacutefico em pizza da distribuiccedilatildeo do meio de transporte utilizado pelos usuaacuterios

Essa questatildeo foi formulada com o objetivo de verificar quais meios de transporte seriamincluiacutedos com previsatildeo de tempo de trajeto no aplicativo Foi verificado que a maioria dosentrevistados utilizam transporte puacuteblico seguido por carro

41 PESQUISA DE MERCADO 29

Questatildeo 8

Figura 47 Graacutefico em pizza da distribuiccedilatildeo do interesse do usuaacuterio pela informaccedilatildeo fornecida

Questatildeo 9

Figura 48 Graacutefico em pizza da distribuiccedilatildeo de quantidade de quilocircmetros que o usuaacuterio sedeslocaria para ir a um local com menos fila

Com essas questotildees foi verificado que algo importante para o usuaacuterio eacute saber de outrosestabelecimentos que possam oferecer tempos de espera menores nas redondezas de onde ousuaacuterio se encontra que eacute uma das funcionalidades que desejaacutevamos utilizar no sistema

30 DESENVOLVIMENTO DO PROJETO 41

Questatildeo 10

Figura 49 Graacutefico em barras da distribuiccedilatildeo de sentimento do usuaacuterio em relaccedilatildeo a notificaccedilatildeode aplicativos

Questatildeo 11

Figura 410 Graacutefico em pizza da distribuiccedilatildeo de opiniatildeo do usuaacuterio sobre desabilitar notificaccedilotildeesem celular

42 PESQUISA DE MERCADO 31

Questatildeo 12

Figura 411 Graacutefico em pizza da distribuiccedilatildeo de opiniatildeo do usuaacuterio sobre habilitar GPS emcelular

A ideia inicial era poder usar o GPS para verificar a localizaccedilatildeo do usuaacuterio e enviarnotificaccedilotildees quando este estivesse parado nas proximidades de algum dos estabelecimentoscadastrados Para que essa funcionalidade possa existir eacute necessaacuterio que o aplicativo tenhaacesso agrave localizaccedilatildeo precisa da pessoa atraveacutes do GPS ou internet ateacute mesmo quando natildeoestiver aberto Aleacutem disso tambeacutem eacute necessaacuterio que as notificaccedilotildees estejam habilitadas parafinalizar esta interaccedilatildeo Entatildeo as perguntas 10 11 e 12 foram incluiacutedas no questionaacuterio Ob-servando as respostas foi possiacutevel verificar que 295 das pessoas que responderam deixamambas as funcionalidades habilitadas (GPS e notificaccedilotildees) Com isso pudemos prosseguircom essa ideia e tambeacutem pensar em possiacuteveis alternativas de interaccedilatildeo e engajamento como usuaacuterio

Por conta dessa pesquisa ter sido compartilhada atraveacutes das contas das redes sociais ecomunicadores dos componentes deste grupo sabe-se que este pode apresentar um resultadoviesado mas que mesmo assim natildeo deve ser desconsiderado e que muito ajudou a sanar asduacutevidas iniciaisComo resultado traccedilamos o perfil do entrevistado

∙ Faixa etaacuteria predominante entre 18 e 30 anos

∙ Possui sistema operacional Android (versotildees 4 5 e 6)

∙ Vai a restaurantes com certa frequecircncia mensal resultando em interesses sobre infor-maccedilotildees relacionadas a esse estabelecimento

∙ Costuma chegar cedo ou evitar os horaacuterios de pico para evitar filas nos locais

∙ Carro e transporte coletivo satildeo os principais meios de transporte

∙ Se deslocaria para um estabelecimento semelhante que possui menos fila contanto queeste fique num raio de 2km de distacircncia

32 DESENVOLVIMENTO DO PROJETO 43

42 Projeto do AplicativoO grupo comeccedilou o projeto com o preenchimento do diagrama Canvas(figura 412) apre-

sentado na Seccedilatildeo 21 Desse modo foi adquirida uma ideia mais consistente e uma base paracomeccedilar a implementaccedilatildeo

Figura 412 Diagrama Canvas preenchido pelo grupo

Com o modelo de negoacutecios definido e com base no resultado da pesquisa com o usuaacuterioapresentada na seccedilatildeo seguinte foram aplicadas pequenas mudanccedilas no projeto para melhoradequar-se agraves necessidades e ao perfil do puacuteblico alvo

Para o desenvolvimento foi utilizado um meacutetodo aacutegil baseado no scrum com sprints de3 a 4 semanas devido agrave disponibilidade dos membros do grupo Os encontros natildeo eram diaacute-rios como recomendado para o meacutetodo scrum tambeacutem em razatildeo da disponibilidade Haviamstand ups (discussotildees raacutepidas no comeccedilo de cada encontro) e retrospectivas ao final de cadasprint A cada sprint eram selecionadas histoacuterias e tarefas para serem executadas e caso natildeofossem concluiacutedas ao final da iteraccedilatildeo eram inseridas ao backlog e feitas no sprint seguinte

43 Aplicaccedilatildeo dos meacutetodos de caacutelculo de espera

431 Aplicando a meacutedia por periacuteodo

Aplicando-se no trecho abaixo a teacutecnica desenvolvida na Seccedilatildeo 242 para uma queryrealizada no dia 19082016 no intervalo de 2040 - 2055 analisa-se a semana anterior quepossua tais intervalos Assim o saacutebado dia 06082016 seraacute selecionado

43 APLICACcedilAtildeO DOS MEacuteTODOS DE CAacuteLCULO DE ESPERA 33

Entrada Qtd Pessoas Notificado Espera

6816 2043 2 862016 2053 1606

6816 2044 2 862016 2055 674

6816 2048 2 862016 2056 528

6816 2048 2 862016 2057 520

6816 2051 2 862016 2107 1118

6816 2051 3 862016 2110 1305

6816 2052 2 862016 2110 1273

6816 2052 2 862016 2111 1179

6816 2053 2 862016 2112 1217

6816 2053 2 NULL 59

6816 2054 3 862016 2119 1541

6816 2055 2 862016 2117 1444

6816 2055 2 862016 2120 1570

6816 2055 2 862016 2122 1613

Tabela 41 Trecho do dia 06082016 entre os horaacuterios das 2043 agraves 2055 um intervalo de 12minutos retirado dos dados da empresa Get In

Com esses dados obteve-se a meacutedia de espera de 1080 segundos (18 minutos) a qualseria sugerida para o usuaacuterio com a busca e desvio padratildeo de 465144719 segundos (775 mi-nutos) Dentro desse intervalo tem-se como maacuteximo tempo de espera 1613 segundos (2688minutos) e como miacutenimo 59 segundos (1 minuto) Analisando-se os dados do dia 19082016no mesmo periacuteodo temos

34 DESENVOLVIMENTO DO PROJETO 43

Entrada Pessoas Notificado Espera Erro previsatildeo Erro p 2 pessoas

19816 2043 2 8192016 2051 544 -563 522

19816 2043 2 8192016 2052 605 -502 461

19816 2044 2 8192016 2056 723 -384 343

19816 2046 4 8192016 2119 1988 881 X

19816 2048 2 8192016 2102 919 188 147

19816 2051 2 8192016 2103 821 286 245

19816 2051 3 8192016 2108 1773 666 X

19816 2053 2 8192016 2110 1083 24 -17

19816 2053 2 8192016 2111 1105 2 -39

19816 2053 2 8192016 2112 1169 62 -103

19816 2055 2 8192016 2114 1447 340 -381

Tabela 42 Trecho do dia 19082016 entre os horaacuterios das 2043 agraves 2055um intervalo de 12minutos retirado dos dados da empresa Get In

Ou seja se um grupo chegasse dentro desse periacuteodo e a previsatildeo dada fosse a meacutediaobtida anteriormente o erro calculado pela diferenccedila entre o tempo sugerido e o real tempode espera estaria no intervalo de 15 minutos para menos ou 8 minutos para mais Sendoesse um valor aceitaacutevel

Um proacuteximo passo eacute a restriccedilatildeo dos registros a grupos com 2 integrantes Com tal restri-ccedilatildeo a previsatildeo de espera eacute de 1066 segundos (1776 minutos) Aplicando essa nova meacutedia aosregistros com 2 integrantes do dia 19082016 obteacutem-se um erro (Coluna 6 - erro previsatildeopara 2 pessoas) menor do que o anterior O intervalo do erro calculado neste caso seria de 522segundos (87 minutos) para mais e 381 segundos (635 minutos) para menos Este resultadoeacute ainda mais favoraacutevel mostrando que a inclusatildeo de mais filtros para o caacutelculo da previsatildeomelhorou o tempo previsto

432 Aplicando teoria das filas

A teoria das filas (Seccedilatildeo 242) eacute uma ferramenta muito completa que calcula muitos dadosuacuteteis para a previsatildeo de espera Contudo por conta da necessidade de informaccedilotildees sobreo tempo de atendimento a qual natildeo estaacute contida no banco utilizado esta teoria natildeo podeser aplicada neste caso Poreacutem esse dado pode ter um valor assumido para que a utilizaccedilatildeodessa teoria fosse possiacutevel entretanto a sua precisatildeo ficaria comprometida e imprevisiacutevel

433 Aplicando redes neurais

Para aplicar o que foi estudado na Seccedilatildeo 242 foi executado o software com o mecircs deAgosto como teste o mecircs de Setembro como treino e o limite do erro quadraacutetico como 001 eobteve-se a tabela presente no apecircndice B Na tabela podemos ver o tempo de fila esperadoou seja o tempo contido na tabela do mecircs de Setembro o tempo que o algoritmo deu comoresposta baseado no mecircs de Agosto e o erro entre eles respectivamente

44 DEFINICcedilAtildeO DA INTERFACE DO APLICATIVO 35

Figura 413 Software Multiple Back-Propagation com a configuraccedilatildeo escolhida para os dadosdisponiacuteveis

Mesmo o erro se mantendo em 0018 os dados obtidos possuem um erro padratildeo de 15minutos Se mais dados forem adicionados o criteacuterio de parada pode ser atingido e assimuma previsatildeo melhor pode ser alcanccedilada

434 Conclusatildeo sobre os meacutetodos estudados

Dentre todas as possibilidades estudadas visualizamos na meacutedia por periacuteodo a melhoropccedilatildeo assumindo os dados disponiacuteveis para teste Se mais paracircmetros fossem fornecidoscomo o tempo de atendimento a teoria das filas seria uma boa opccedilatildeo para fornecer a pre-visatildeo de espera E se mais dados estivessem disponiacuteveis as redes neurais conseguiriam umaaproximaccedilatildeo melhor e assim seria uma boa opccedilatildeo tambeacutem

44 Definiccedilatildeo da Interface do aplicativoComo um primeiro protoacutetipo foi desenvolvida uma interface simples que tinha como tela

de iniacutecio um mapa com um campo para buscas na parte superior

36 DESENVOLVIMENTO DO PROJETO 44

Figura 414 Fluxo de telas do primeiro protoacutetipo

Ao efetuar uma busca por algum estabelecimento uma tela mostrando o tempo de esperaaproximado da fila no local era exibida junto com bototildees que permitiam selecionar o meiode transporte visualizar outras opccedilotildees ou dar iniacutecio a rota ateacute o local desejado Tambeacutemhavia uma notificaccedilatildeo para quando a pessoa estivesse parada proacutexima a um restaurantecadastrado que direcionaria o usuaacuterio a uma tela com um cronocircmetro do tempo de esperana fila

Para testar essa visualizaccedilatildeo escolhemos algumas pessoas e realizamos um teste deusabilidade[22] este teste eacute feito da seguinte forma

44 DEFINICcedilAtildeO DA INTERFACE DO APLICATIVO 37

Uma contextualizaccedilatildeo eacute feita para o voluntaacuterio e entatildeo uma tarefa eacute passada para sercompletada Os integrantes do grupo observam dificuldades enfrentadas pelo entrevistado etomam notas Esse teste eacute repetido algumas vezes e seu resultado eacute coletado para avaliaccedilatildeoe modificaccedilatildeo das funcionalidades

Figura 415 Tela de detalhes de um restaurante(segunda versatildeo)

Notou-se que algumas funcionalidadespareceram confusas e natildeo intuitivas porexemplo natildeo ficou claro se o tempo mos-trado era de trajeto ou de espera na filanem qual era o meio de transporte utili-zado

Logo esse protoacutetipo foi reformuladocom o intuito de melhorar a experi-ecircncia do usuaacuterio com o nosso aplica-tivo

Foram colocados aleacutem do tempo deespera da fila o tempo que o usuaacuteriolevaria para chegar ateacute o local selecio-nado (conforme o tipo de transporte es-colhido) e a quantidade estimada de pes-soas na fila O tempo total (espera so-mado ao tempo de deslocamento) ga-nhou destaque entre as informaccedilotildees doestabelecimento e o botatildeo que direcionao usuaacuterio ao trajeto ficou mais especiacute-fico

Tambeacutem cogitou-se a possibilidade deadicionar login e um perfil de usuaacuteriojunto com uma lista de restaurantes favo-ritos

O fluxo das telas deste novo protoacutetipo ficou como mostra o esquema a seguir

38 DESENVOLVIMENTO DO PROJETO 44

Figura 416 Fluxo de telas do segundo protoacutetipo

44 DEFINICcedilAtildeO DA INTERFACE DO APLICATIVO 39

Figura 417 Tela de detalhes de um restaurante(terceira versatildeo)

Apoacutes outras avaliaccedilotildees mais algumaspequenas alteraccedilotildees foram realizadas nainterface Foi decidido que seria inviaacute-vel estimar o nuacutemero de pessoas nafila entatildeo essa funcionalidade foi remo-vida

Notificaccedilotildees foram adicionadas paraquando o usuaacuterio estiver parado na aacutereado restaurante para que ele possa con-tribuir com informaccedilotildees sobre a fila quepegou aleacutem de um botatildeo de contri-buiccedilatildeo ter sido inserido na tela ini-cial

40 DESENVOLVIMENTO DO PROJETO 45

O fluxo de telas do aplicativo atual ficou da seguinte forma

Figura 418 Fluxo de telas do terceiro protoacutetipo

46 EXPLICACcedilAtildeO DAS FUNCIONALIDADES 41

45 Explicaccedilatildeo das funcionalidadesEsta seccedilatildeo explica as funcionalidades do produto utilizando a figura 418

A tela inicial (3) exibe uma lista de restaurantes incluindo seus respectivos tempos detrajeto e tempo de espera na fila Ao clicar no botatildeo ldquo+rdquo uma caixa de diaacutelogo eacute aberta(4) onde eacute possiacutevel adicionar o tempo que o usuaacuterio esperou na fila Primeiro eacute escolhido orestaurante depois a data e hora que a pessoa chegou na fila e por fim o tempo de esperaem minutos Ao tocar em ldquoEnviar Feedback rdquo os dados satildeo incluiacutedos no banco de dados eatualizados para os outros usuaacuterios Assim eacute apicado o conceito de Crowdsourcing no apli-cativo

Ao tocar em um item da lista de restaurantes seraacute aberta a tela de detalhes de um res-taurante (5) na qual eacute possiacutevel ver com mais clareza os tempos de trajeto e espera o tempototal o endereccedilo do estabelecimento e um pequeno mapa centrado no local Pressionandoo botatildeo ldquoDireccedilotildeesrdquo o usuaacuterio seraacute redirecionado ao aplicativo de mapas de sua preferecircnciano caso do exemplo (8) o Google Maps jaacute traccedilando a rota da localizaccedilatildeo do usuaacuterio para oestabelecimento em questatildeo

Novamente na tela inicial tocando no iacutecone de lupa eacute possiacutevel realizar uma busca digi-tando o nome do estabelecimento na caixa de texto a qual exibe sugestotildees dependendo doque foi digitado Ao clicar em um dos resultados da busca o usuaacuterio eacute novamente direcionadopara a tela de detalhes do restaurante (5)

Tambeacutem eacute possiacutevel tocar no iacutecone de mapa na tela inicial onde seraacute mostrado um mapacentrado na localizaccedilatildeo do usuaacuterio

Ao ficar parado por um tempo em um mesmo local proacuteximo a um estabelecimentocadastrado o usuaacuterio eacute perguntado em uma notificaccedilatildeo quanto tempo ele permaneceu nafila Ao tocar na notificaccedilatildeo a caixa de diaacutelogo para feedback do usuaacuterio seraacute aberta (4) jaacutecom o restaurante preenchido e apoacutes o feedback a janela seraacute fechada e os dados enviadosao banco de dados

46 Implementaccedilatildeo do banco de dadosO banco de dados do aplicativo foi modelado e populado em forma de aacutervore (Fi-

gura 419) de forma a facilitar o acesso aos dados necessaacuterios ao aplicativo No primeironiacutevel estatildeo os ids dos restaurantes Cada id de restaurante guarda a localizaccedilatildeo (latitudelongitude) do restaurante o nome o endereccedilo e um objeto fila O objeto fila guarda todos osdias da semana (domingo a saacutebado) e cada dia da semana possui 24 campos um para cadahora do dia Cada hora possui o tempo meacutedio de espera da fila naquela hora e um peso paraesse tempo O peso eacute um valor que aumenta de acordo com o nuacutemero de feedbacks dadospara que o novo valor do tempo meacutedio seja calculado de forma consistente

Modelamos o banco de dados de uma forma que respeitasse uma hierarquia de dados

42 DESENVOLVIMENTO DO PROJETO 46

Figura 419 Aacutervore que ilustra a organizaccedilatildeo de um restaurante no banco de dados

Com o banco de dados jaacute populado o aplicativo faz consultas e atualizaccedilotildees de dadosConsultas satildeo feitas ao criar a tela de listagem de restaurantes e de detalhes de um restau-rante consultado As atualizaccedilotildees satildeo feitas quando o usuaacuterio manda o feedback de tempo deespera em um estabelecimento em determinado horaacuterio o aplicativo calcula a nova meacutedia eatualiza o campo do respectivo horaacuterio

Capiacutetulo 5

Conclusatildeo

Ao longo dos capiacutetulos deste trabalho pocircde-se acompanhar todo o processo de criaccedilatildeo edesenvolvimento do aplicativo que apoacutes finalizado foi batizado com o nome Queue

Comeccedilando com um problema para o qual o grupo almejava oferecer uma soluccedilatildeoacabou-se por adentrar-se um pouco no campo da Estatiacutestica e estudar diversas metodo-logias que poderiam ser uacuteteis para fornecer um caacutelculo de previsatildeo de espera meacutedia porperiacuteodo aplicaccedilatildeo da teoria das filas e utilizaccedilatildeo de redes neurais

Atraveacutes de uma parceria com a empresa GetIn obteve-se acesso a uma grande quantidadede dados e foi possiacutevel utilizaacute-los em anaacutelises feitas nas metodologias escolhidas conseguindoassim resultados relevantes Por meio destes foi feita a escolha de um dos meacutetodos para ocaacutelculo da previsatildeo de filas a meacutedia por periacuteodo

Aleacutem desses estudos ao longo do ano o grupo aprendeu a desenvolver para a plata-forma Android sobre a qual nenhum dos integrantes tinha conhecimento preacutevio Tambeacutemfoi possiacutevel aprender e utilizar a metodologia aacutegil com Scrum para guiar o processo de de-senvolvimento

Ao fim do ciclo de desenvolvimento conseguiu-se entregar um aplicativo em funciona-mento que fornece a previsatildeo de espera no instante da consulta de estabelecimentos cadas-trados no banco de dados armazenado na nuvem

Na versatildeo atual do aplicativo natildeo foi implementado um sistema para o cadastro de novosestabelecimentos Isso soacute eacute possiacutevel atraveacutes da inserccedilatildeo direta no banco de dados atraveacutes dainterface fornecida pelo console do Firebase Atualmente estatildeo cadastrados 5 restaurantesos quais foram visitados durante o desenvolvimento do projeto Para que o cadastro deestabelecimentos escale seria necessaacuterio a implementaccedilatildeo de uma funcionalidade que permitaao usuaacuterio adicionar novos estabelecimentos a partir de locais disponiacuteveis na API de locaisda Google

43

45

46 APEcircNDICE A

Apecircndice A

Dados coletados

Figura A1 Dados de tempo de espera para grupos de tamanhos variados para cada horaacuterio e emcada dia da semana obtidos em entrevista em restaurantes Outback Steakhouse Shopping Uniatildeo nomecircs de outubro

Referecircncias Bibliograacuteficas

[1] Backpropagation httpmbpsourceforgenet Accesso em Janeiro 2017 14

[2] Bitbucket httpsbitbucketorgproduct Accesso em Dezembro 2016 19

[3] Crowdsourcing httpswwwmerriam-webstercomdictionarycrowdsourcing Ac-cesso em Novembro 2016 21

[4] Designing a survey httpwwwsciencebuddiesorgscience-fair-projectsproject_ideasSoc_surveyshtml Accesso em Outubro 2016 4 23

[5] Facebook httpswwwfacebookcom Accesso em Novembro 2016 24

[6] Firebase httpsfirebasegooglecom Accesso em Agosto 2016 20

[7] Getin app httpswwwgetinappcombrhomesao-paulo Accesso em Novembro2016 9

[8] Git 11 primeiros passos - sobre controle de versatildeo httpsgit-scmcombookpt-brv1Primeiros-passos-Sobre-Controle-de-Vers Accesso em Novembro 2016 19

[9] Google forms httpsdocsgooglecomforms Accesso em Novembro 2016 23

[10] Guia definitivo do project model canvas Project Builder 3

[11] Jsonorg introducing json httpwwwjsonorg Accesso em Novembro 2016 17

[12] Manifesto para desenvolvimento Aacutegil de software httpagilemanifestoorgisoptbrmanifestohtml Accesso em Novembro 2016 5

[13] Nosql httpsenwikipediaorgwikiNoSQL Accesso em Novembro 2016 20

[14] Outback steakhouse httpswwwoutbackcombrhome Accesso em Novembro 20169

[15] Restful api development with lumen microframework httpsbelitsoftcomlaravel-development-servicesapi-development Accesso em Novembro 2016 17

[16] Scrum httpswwwatlassiancomagilescrum Accesso em Novembro 2016 5

[17] Smartphone os market share 2016 q2 httpwwwidccomprodservsmartphone-os-market-sharejsp Accesso em Novembro 2016 15

[18] Smartphone os sales market share kantar worldpanel comtech httpwwwkantarworldpanelcomsmartphone-os-market-share Accesso em Novembro 2016 15

[19] Sourcetree httpswwwsourcetreeappcom Accesso em Dezembro 2016 19

47

48 REFEREcircNCIAS BIBLIOGRAacuteFICAS

[20] Sql httpsptkhanacademyorgcomputingcomputer-programmingsql Accesso emDezembro 2016 20

[21] Trello httpstrellocom Accesso em Novembro 2016 6

[22] Usability test httpsenwikipediaorgwikiUsability_testing Accesso em Novembro2016 36

[23] Versionone 2012 agile dev survey httpswwwversiononecompdf7th-Annual-State-of-Agile-Development-Surveypdf Accesso em Novembro 2016 5

[24] Waze httpswwwwazecom Accesso em Novembro 2016 1

[25] What is an open source httpsopensourcecomresourceswhat-open-source Accessoem Novembro 2016 15

[26] Xml tutorial httpwwww3schoolscomxml Accesso em Novembro 2016 17

[27] Paulo F Cabral dos Anjos Jr Aron Ifanger Maciel Christopher Silva de Paacutedua Com-posiccedilatildeo de carteiras de accedilotildees utilizando modelo de redes neurais artificiais e modelo derisco e retorno de Markowitz 2012 14

[28] Google Distance matrix api documentation httpsdevelopersgooglecommapsdocumentationdistance-matrix Accesso em Novembro 2016 17

[29] Alan Klement Designing features using job stories httpsblogintercomcomusing-job-stories-design-features-ui-ux Accesso em Novembro 2016 6

[30] Azmat Nafees Queuing theory and its application analysis of the sales checkout opera-tion in ica supermarket httpwwwstatisticsduseessaysD07ENafeespdf Accessoem Novembro 2016 12

[31] Eric Ries A Startup Enxuta Lua de papel primeira ediccedilatildeo edition 2012 3

  • Introduccedilatildeo
    • Motivaccedilatildeo
    • Trabalho Proposto
    • Estrutura da monografia
      • Estudos Preliminares
        • Desenvolvimento de Startups
          • Desenvolvimento de Questionaacuterios
            • Metodologia Aacutegil
            • Jobs to be done
            • Caacutelculo da previsatildeo do tempo de espera na fila
              • Descriccedilatildeo do problema
              • Meacutetodos de caacutelculo da espera
                  • Tecnologias utilizadas
                    • O sistema Android
                      • Organizaccedilatildeo de uma aplicaccedilatildeo Android
                        • JSON
                        • Google APIs
                        • Localizaccedilatildeo do Usuaacuterio
                        • Controle de Versatildeo
                        • Banco de dados
                          • Firebase
                            • Crowdsourcing
                              • Desenvolvimento do Projeto
                                • Pesquisa de Mercado
                                  • Pesquisa com o usuaacuterio
                                    • Projeto do Aplicativo
                                    • Aplicaccedilatildeo dos meacutetodos de caacutelculo de espera
                                      • Aplicando a meacutedia por periacuteodo
                                      • Aplicando teoria das filas
                                      • Aplicando redes neurais
                                      • Conclusatildeo sobre os meacutetodos estudados
                                        • Definiccedilatildeo da Interface do aplicativo
                                        • Explicaccedilatildeo das funcionalidades
                                        • Implementaccedilatildeo do banco de dados
                                          • Conclusatildeo
                                          • Dados coletados
                                          • Referecircncias Bibliograacuteficas

24 CAacuteLCULO DA PREVISAtildeO DO TEMPO DE ESPERA NA FILA 9

momento existir um espaccedilo no salatildeo que acomode o grupo (juntando as mesas) outodos os casais (com as mesas separadas) dependendo de quem estaacute responsaacutevel poralocaacute-los cada um receberaacute uma prioridade diferente e essa decisatildeo natildeo eacute padronizada

∙ A disposiccedilatildeo das mesas a disposiccedilatildeo e quantidade de mesas natildeo satildeo padronizadasentre restaurantes de uma mesma rede muito menos entre restaurantes diferentesAleacutem disso a formataccedilatildeo do salatildeo pode ser remodelada de acordo com a necessidadede alocaccedilatildeo dos clientes haacute gerentes que evitam essa movimentaccedilatildeo ou ateacute mesmorestaurantes que natildeo tecircm essa possibilidade

242 Meacutetodos de caacutelculo da espera

Com o problema desenhado desta maneira esboccedilou-se trecircs possiacuteveis meacutetodos de resoluccedilatildeoe um desses foi aplicado na soluccedilatildeo final Os meacutetodos desenvolvidos satildeo meacutedia por periacuteodoaplicaccedilatildeo da teoria das filas e utilizaccedilatildeo de redes neurais Essas teacutecnicas precisam de dadospara serem desenvolvidas e aplicadas Por conta disso buscou-se fontes que suprissem essanecessidade

Captaccedilatildeo dos dados para a anaacutelise

Para que seja possiacutevel aplicar os meacutetodos estudados eacute necessaacuterio obter dados para aplicarna anaacutelise Estes foram obtidos de duas formas a partir de uma parceria com a empresa GetIn [7] desenvolvedora de um aplicativo de gerenciamento de filas de restaurantes e atraveacutesde pesquisas presenciais em restaurantes da rede Outback Steakhouse[14] selecionados para oestudo(Apecircndice A) O aplicativo da Get In possui uma funcionalidade principal realizaccedilatildeode uma reserva em um determinado restaurante O banco de dados manteacutem o registro detodos os usuaacuterios que entram na fila e esses dados satildeo organizados em uma tabela com osseguintes campos

∙ Origem Se a reserva foi realizada de forma remota ou presencial Assim

1 Reserva presencial (na entrada do restaurante incluiacuteda pela recepcionista)

2 Reserva remota (realizada atraveacutes do aplicativo)

∙ Entrada este consiste na data e hora que o usuaacuterio entrou na fila

∙ Qtd Pessoas tamanho do grupo para o qual a reserva foi feita

∙ Prioritaacuterio se este grupo requer atendimento prioritaacuterio

0 Natildeo

1 Sim

∙ Notificado A data e horaacuterio em que o grupo foi notificado que sua mesa estava pronta

ndash Quando NULL a recepcionista natildeo notificou essa pessoa (possivelmente chamoudiretamente pelo nome)

∙ Tempo na Espera Tempo que o grupo ficou ativo na fila de espera (em segundos)

∙ Status Qual a situaccedilatildeo da reserva do grupo Podendo assumir tais valores

0 Cancelado pela recepcionista

10 ESTUDOS PRELIMINARES 24

2 Sentado

3 Cancelado pelo proacuteprio Usuaacuterio

Para melhor entender estes paracircmetros o funcionamento do aplicativo deve ser expli-cado com maior detalhamento O processo de reserva funciona da seguinte forma o usuaacuterioreserva seu lugar atraveacutes do aplicativo ou vai ao restaurante e a recepcionista o adiciona agraveespera No primeiro caso o usuaacuterio tem um tempo de toleracircncia para chegar ao estabeleci-mento apoacutes receber a notificaccedilatildeo caso natildeo consiga chegar a tempo a reserva eacute cancelada Nosegundo caso quando o grupo a ser chamado estaacute proacuteximo da recepccedilatildeo a funcionalidade denotificaccedilatildeo natildeo precisa ser usada o responsaacutevel pode se direcionar diretamente aos clientes echamaacute-los pelo nome Mesmo nesse segundo caso o tempo de espera na fila ainda eacute guardadopois a recepccedilatildeo precisa ldquofecharrdquo a espera do grupo para chamar o proacuteximo

Poreacutem a utilizaccedilatildeo desses dados natildeo foi liberada pela empresa Get In para serem usadoscomo banco de dados do aplicativo somente foram fornecidos dados do mecircs de agosto esetembro de 2016 para que fossem utilizados nas anaacutelises feitas com os modelos estatiacutesticosPara obter dados que poderiam ser utilizados no banco de dados do aplicativo foi neces-saacuterio uma pesquisa presencial onde o grupo visitou alguns restaurantes da rede OutbackSteakhouse para obter informaccedilotildees sobre o tempo de espera nestes estabelecimentos

Foram visitados 5 restaurantes Outback Steakhouse Shopping Eldorado Outback Ste-akhouse Shopping Villa Lobos Outback Steakhouse Shopping Granja Vianna Outback Ste-akhouse Shopping Uniatildeo de Osasco e Outback Steakhouse Shopping Market Place ondequestionamos sobre o tempo de espera por tamanho de grupos (em nuacutemero de pessoas) epor horaacuterio e dia da semana

Ao analisar os dados coletados pela pesquisa presencial notamos que estes estavam sus-cetiacuteveis a erros por terem sido obtidos por meio de diferentes observaccedilotildees humanas Ummeacutetodo para obter dados mais precisos consistiria na realizaccedilatildeo de novas pesquisas no for-mato mediccedilatildeo onde cada integrante do grupo deveria coletar o tempo de espera de cadacliente atraveacutes de um cronocircmetro e calcular o tempo de espera meacutedio nesse horaacuterio Comoo grupo natildeo conseguiria aplicar este meacutetodo optou-se por melhorar a precisatildeo dos dadoscoletados usando como base o graacutefico de horaacuterios de pico disponibilizado pela Google paracada restaurante Essa melhora foi feita utilizando-se caacutelculos de proporccedilatildeo de valores

24 CAacuteLCULO DA PREVISAtildeO DO TEMPO DE ESPERA NA FILA 11

Primeiro meacutetodo Meacutedia por periacuteodo

Figura 26 Esquema do meacutetodo meacutedia por periacuteodo

Para que uma previsatildeo de espera possa ser fornecida ao usuaacuterio essa deve basear-seobrigatoriamente em alguma informaccedilatildeo preacutevia Contudo encontrar uma fonte para taisdados se mostrou uma tarefa muito complicada Para conseguir ainda assim apresentar umtempo de espera em fila meacutetodos de anaacutelise foram definidos de acordo com a quantidade dedados disponiacutevel para cada estabelecimento

De um modo geral neste modelo o caacutelculo do tempo de espera funcionaraacute da seguinteforma calcular-se-aacute a meacutedia de espera para o dia da semana e horaacuterio requeridos pelousuaacuterio sem diferenciar feriados de dias normais Dependendo de quatildeo longo eacute o histoacutericoniacuteveis de especificidade podem ser adicionados ou seja numa busca tempo de espera em 9de Dezembro (segunda-feira) agraves 19h no restaurante X a query selecionaraacute todos os registrosfeitos no dia 9 de dezembro entre as 19h e agraves 20h dos uacuteltimos anos no restaurante X e realizaraacuteessa meacutedia ou pode selecionar apenas linhas de todas as segundas-feiras do mecircs de Dezembrodeste mesmo periacuteodo

∙ Muitos dados neste caso um maior niacutevel de especificidade pode ser aplicado sem autilizaccedilatildeo de outras fontes para complementar o banco de dados

∙ Alguns dados o niacutevel de especificidade eacute bem menor apenas filtrando por dia dasemana e intervalo de hora sem mecircs ou dia especiacutefico no ano Em alguns casos aquantidade de dados eacute tatildeo pequena que deve-se recorrer a outras fontes A Googletem disponibilizado graacuteficos com a distribuiccedilatildeo dos clientes nos horaacuterios de funciona-mento de estabelecimentos Esses dados natildeo estatildeo disponiacuteveis em sua API ou seja natildeo

12 ESTUDOS PRELIMINARES 24

haacute uma forma automaacutetica para que o aproveitamento desses possa ser feito Poreacutemmesmo omitindo-se os valores do graacutefico o perfil da distribuiccedilatildeo e o horaacuterio de picosatildeo aproveitados manualmente para nosso sistema

∙ Poucos dados para este caso fizemos o balanceamento dos dados da Google comas informaccedilotildees retiradas das entrevistas Aleacutem do aproveitamento das informaccedilotildees daGoogle foram realizadas pesquisas com funcionaacuterios dos restaurantes

Segundo meacutetodo Teoria das filas

Filas podem ser vistas como um sistema dinacircmico no qual existe um conjunto de usuaacuteriosque satildeo atendidos por um conjunto de atendentes de acordo com a ordem de chegada dosusuaacuterios A teoria de filas busca utilizando anaacutelises matemaacuteticas estudar o comportamentodestas filas para estimar o tempo de espera com base em um conjunto inicial de dadospreviamente fornecido[30]

Um sistema de filas possui como caracteriacutesticas

∙ Modelo de chegada dos usuaacuterios Utiliza como base o tempo entre as chegadasdos usuaacuterios

∙ Modelo de serviccedilo (atendimento aos usuaacuterios) Utiliza como base o tempo gastono atendimento ao usuaacuterio No caso dos restaurantes equivale ao tempo que um grupopassa na mesa ateacute a sua saiacuteda

∙ Nuacutemero de servidores Eacute o nuacutemero de atendentes disponiacuteveis no sistema Para omodelo do restaurante este equivale agraves mesas disponiacuteveis no salatildeo

∙ Capacidade do sistema Eacute o nuacutemero de usuaacuterios que o sistema eacute capaz de atenderInclui o nuacutemero de usuaacuterios que estatildeo sendo atendidos somado com os que esperamna fila Se este paracircmetro natildeo for informado o sistema eacute considerado com capacidadeilimitada

∙ Tamanho da populaccedilatildeo nuacutemero potencial de clientes que podem chegar a umsistema Pode ser finito ou infinito

∙ Disciplina da fila A disciplina da fila pode ser FIFO (first in first out) - o primeiroa chegar eacute o primeiro a ser atendido LIFO (last in first out) - o uacuteltimo a chegar eacuteo primeiro a ser atendido ALEATOacuteRIO - os atendimentos satildeo feitos sem qualquerpreocupaccedilatildeo com a ordem de chegada COM PRIORIDADE - os atendimentos satildeofeitos de acordo com prioridades estabelecidas No caso dos restaurantes a disciplinaadotada eacute a FIFO poreacutem esta pode mudar de acordo com o atendente responsaacutevel

Os tempos mencionados nos modelos de chegada e de serviccedilo podem ser constantesquando os intervalos entre as chegadas dos usuaacuterios satildeo iguais ou variaacuteveis quando os valo-res desses intervalos variam Nesse uacuteltimo caso o intervalo de tempo segue uma distribuiccedilatildeode probabilidades Nesse modelo tambeacutem existe a taxa meacutedia de chegada dos usuaacuterios porunidade de tempo ou seja quantos usuaacuterios chegam em uma hora

As filas podem ser moldadas em trecircs situaccedilotildees baacutesicas como descrito por Azmat Nafees[30]

∙ Modelo de fila de canal uacutenico com fila uacutenica e atendimento uacutenico (Figura 27)

24 CAacuteLCULO DA PREVISAtildeO DO TEMPO DE ESPERA NA FILA 13

∙ Modelo de fila de canal uacutenico com fila uacutenica e muacuteltiplos atendimentos paralelos (Fi-gura 28)

∙ Modelo de fila de canal uacutenico com muacuteltiplas filas e muacuteltiplos atendimentos paralelos(Figura 29)

Figura 27 Modelo de fila de canal uacutenico com fila uacutenica e atendimento uacutenico

Figura 28 Modelo de fila de canal uacutenico com fila uacutenica e muacuteltiplos atendimentos paralelos

Figura 29 Modelo de fila de canal uacutenico com muacuteltiplas filas e muacuteltiplos atendimentos paralelos

Tambeacutem por Azmat Nafees nesses modelos trecircs subprocessos podem ser vistos

∙ Processo de chegada Eacute um processo contiacutenuo do evento ldquochegada de clientesrdquo ouseja quando o evento ocorre o processo aguarda a ocorrecircncia do proacuteximo evento Esseevento coloca um cliente na fila quando ele chega

14 ESTUDOS PRELIMINARES 24

∙ Processo de espera Eacute um processo que inclui o evento ldquocomece a servir o proacuteximocliente da filardquo que retira um cliente da fila o coloca no processo de atendimento eespera a conclusatildeo do evento ldquocliente servidordquo para recomeccedilar Nele se trabalha comtamanho e disciplina da fila

∙ Processo de atendimento Eacute um processo que inclui o evento ldquocliente servidordquo eespera a conclusatildeo do evento ldquocomece a servir o proacuteximo cliente da filardquo para recomeccedilarNele se trabalha com tipo taxa e tempo de atendimento

Dentre esses 3 modelos o que mais se encaixa na situaccedilatildeo de um restaurante eacute o segundomodelo canal uacutenico com fila uacutenica e muacuteltiplos atendimentos paralelos O processo de chegadade novos clientes na fila eacute tido como aleatoacuterio

Terceiro meacutetodo Rede Neural

Rede Neural eacute uma teacutecnica computacional inspirada no sistema nervoso que com o auxiacute-lio de um modelo matemaacutetico apresenta respostas para problemas de decisatildeo Esses modelosfuncionam da seguinte forma primeiro um conjunto de dados (conjunto de treinamento) eacuteapresentado ao sistema e este aprende com ele atraveacutes de reconhecimento de padratildeo entatildeocoloca-se o sistema para analisar os dados (conjunto de teste) para os quais deseja-se obteralgum resultado Este processo eacute chamado de aprendizagem de maacutequina Quanto melhor forseu treinamento mais precisas seratildeo as respostas para o segundo conjunto

Uma rede neural eacute formada por subestruturas chamadas neurocircnios Um neurocircnio tem oseguinte funcionamento ele recebe como entrada sinais cada sinal recebe um peso de acordocom a influecircncia dele na saiacuteda e uma soma eacute feita para produzir o niacutevel de atividade entatildeodependendo se o niacutevel de atividade exceder o limite dado pela funccedilatildeo de transferecircncia aresposta eacute produzida[27]

Software Multiple Back-Propagation

Para implementar a soluccedilatildeo baseada em redes neurais foi usado o Software MultipleBack-Propagation [1] Este eacute um software de faacutecil utilizaccedilatildeo que fornece uma rede a qualaprende atraveacutes do processo de propagaccedilatildeo inversa Esse meacutetodo baseia-se na comparaccedilatildeodos dados esperados (conjunto de teste) com os dados obtidos a partir do treinamento senecessaacuterio adaptaccedilotildees satildeo feitas a estrutura da rede para melhor aproximar aos dados doconjunto teste e isso eacute chamado de propagaccedilatildeo inversa

Por se tratar de um meacutetodo de aprendizagem de maacutequinas para se obter um resultadodeve-se treinar o algoritmo Primeiramente submete-se o conjunto de treinamento ao soft-ware para isso foi escolhido o mecircs de Agosto O criteacuterio de parada para o treino eacute o erroquadraacutetico meacutedio o qual teve seu valor atribuiacutedo para 001

Capiacutetulo 3

Tecnologias utilizadas

31 O sistema AndroidAndroid eacute um Sistema operacional open source (software de coacutedigo aberto o qual as

pessoas podem acessar e modificar para contribuir com o projeto [25]) e para dispositivosmoacuteveis desenvolvido pela Google baseado no Kernel do Linux e utilizado principalmente emdispositivos touchscreen Atualmente o Android eacute o sistema operacional que deteacutem a maiorparcela do mercado[17] com 836 dos dispositivos contra 134 do iOS da Apple

A Google tambeacutem oferece um ambiente de desenvolvimento para a plataforma Androidchamado Android Studio no qual os aplicativos satildeo criados e exportados para os dispositi-vos moacuteveis Aplicativos Android satildeo programados na linguagem Java com vaacuterias bibliotecasdisponibilizadas pela Google para suporte ao sistema operacional

A escolha da plataforma foi feita principalmente por conta de o sistema possuir a maiorparte dos usuaacuterios de Smartphones e tambeacutem pela ampla comunidade ativa de desenvolve-dores agrave qual se pode recorrer em casos de duacutevidas e problemas tornando suas resoluccedilotildeesmais raacutepidas e com muacuteltiplas alternativas Outros motivos que contribuiacuteram para a escolhado Android foram

∙ A disponibilidade do ambiente de desenvolvimento Android Studio que possui todosos recursos necessaacuterios para desenvolver um aplicativo funcional logo apoacutes a instalaccedilatildeosem a necessidade de utilizar outras dependecircncias as quais satildeo gerenciadas automati-camente pelo proacuteprio software

∙ O fato de no mercado brasileiro o sistema Android se encontrar em 918 dos dispo-sitivos segundo pesquisa da Kantar[18] e dado a pesquisa realizada para definiccedilatildeo depuacuteblico alvo onde foi possiacutevel perceber que 639 dos entrevistados utilizam smartpho-nes com sistema Android

∙ A utilizaccedilatildeo da linguagem de programaccedilatildeo Java para desenvolvimento que jaacute eraconhecida e fora utilizada anteriormente ao contraacuterio das linguagens Objective C eSwift linguagens utilizadas para desenvolver aplicativos para o sistema iOS Assimcomo a disponibilidade de dispositivos por parte do grupo que em sua maioria era decelulares com o sistema Android

15

16 TECNOLOGIAS UTILIZADAS 31

Figura 31 Parcela de mercado dos dispositivos no Brasil

311 Organizaccedilatildeo de uma aplicaccedilatildeo Android

Aplicativos Android satildeo divididos em componentes Haacute quatro tipos de componentespresentes Activities (ou atividades) Services (ou serviccedilos) Content providers (ou provedoresde conteuacutedo) Broadcast receivers (ou receptores de transmissatildeo)

∙ Activities Satildeo as telas e interfaces do usuaacuterio Cada tela de uma aplicaccedilatildeo eacute repre-sentada por uma activity e cada activity eacute independente de outras apesar de seremcomponentes de uma mesma aplicaccedilatildeo Isso se daacute pelo fato de haver a possibilidade deutilizar activities de aplicativos durante a execuccedilatildeo de outros Atividades satildeo iniciadase se comunicam entre si atraveacutes de objetos chamados Intent que transferem um pacotede dados que pode ser carregado no iniacutecio da nova atividade

∙ Services Sempre satildeo executados em segundo plano sem interferir na experiecircncia dousuaacuterio geralmente para realizar operaccedilotildees longas ou realizar operaccedilotildees de troca dedados enquanto o usuaacuterio estaacute utilizando outra aplicaccedilatildeo em primeiro plano

∙ Content Providers Satildeo gerenciadores de dados de aplicaccedilotildees Android utilizadospara ler e salvar dados compartilhados ou secretos dos aplicativos e do sistema

∙ Broadcast Receivers Satildeo componentes responsaacuteveis por obter eventos que aconte-ceram em outras aplicaccedilotildees ou no sistema e direcionar dados sobre esses eventos paraeventuais aplicaccedilotildees que necessitem destes dados alguns exemplos de eventos obtidospelos receptores de transmissatildeo satildeo tela desligada e bateria fraca

Aleacutem dos componentes uma parte importante de uma aplicaccedilatildeo Android eacute o ArquivoManifest que eacute uma declaraccedilatildeo de permissotildees serviccedilos e exigecircncias de hardware necessaacuterios

33 JSON 17

para o funcionamento do aplicativo Outra funccedilatildeo eacute possuir declaraccedilotildees de todos os compo-nentes utilizados no projeto nomes iacutecones entre outros

As interfaces de usuaacuterio do Android satildeo definidas em arquivos XML (eXtensible MarkupLanguage)[26] nos quais estatildeo declarados todos os layouts e configuraccedilotildees das telas Essesarquivos de layout satildeo depois inflados e satildeo gerados os componentes visuais da aplicaccedilatildeoEssa estrutura tem como objetivo facilitar o design da interface do usuaacuterio jaacute que arquivosxml satildeo de faacutecil compreensatildeo do desenvolvedor

32 JSONJSON ou Javascript Object Notation eacute um formato de dados amplamente utilizado para

troca de informaccedilotildees entre programas Possui uma notaccedilatildeo simples para grande parte dosprogramadores pois se assemelha a convenccedilotildees utilizadas em linguagens de programaccedilatildeomuito conhecidas como C C++ Python e Java O objetivo eacute que ele seja de faacutecil entendi-mento tanto para pessoas como para maacutequinas[11]

Um arquivo JSON eacute organizado como um objeto contendo pares nomevalorseparadospor viacutergulas e dentro de chaves(lsquolsquo rsquorsquo) ou como um array que eacute uma lista de valores separa-dos por viacutergulas e entre colchetes(lsquo[lsquo rsquo]rsquo) Um valor por sua vez pode ser um objeto ou umarray mas tambeacutem um nuacutemero inteiro ou uma String entre outros

Um exemplo de arquivo JSON eacute

1 2 Carros [3 4 Nome Scen ic 5 Marca Renault 6 Ano 20127 8 9 Nome Sentra

10 Marca Nissan 11 Ano 200912 13 ]14

33 Google APIsAPIs (Application Program Interfaces) satildeo interfaces para facilitar a troca de informa-

ccedilotildees entre aplicaccedilotildees utilizando comandos especiacuteficos[15]

Ao longo do desenvolvimento algumas APIs fornecidas pela Google foram utilizadascomo fonte de informaccedilotildees adicionais para o aplicativo

∙ Google Maps Distance Matrix API Esta API eacute utilizada para obter o tempo emsegundos de trajeto entre dois pontos (latlong) no mapa podem ser consultados ostempos de trajeto de carro bicicleta a peacute e utilizando transporte puacuteblico[28] Esta eacute

18 TECNOLOGIAS UTILIZADAS 35

uma API web logo utiliza-se um request http para realizar uma consulta

Por exemplo o request

httpsmapsgoogleapiscommapsapidistancematrixjsonorigins=Seattleampdestinations=Victoria+BCampkey=[user_key]

retorna o JSON

1 2 des t ina t i on_addre s s e s [ Vic tor ia BC Canada ] 3 o r i g in_addre s s e s [ Sea t t l e WA EUA ] 4 rows [5 6 e lements [7 8 d i s t anc e 9 text 172 km

10 value 17166811 12 durat ion 13 text 4 horas 40 minutos 14 value 1680915 16 s t a tu s OK17 18 ]19 20 ] 21 s t a tu s OK22

no qual eacute possiacutevel obter o tempo de trajeto em segundos

∙ Google Maps Android API Esta API eacute utilizada para habilitar o uso de mapasda Google integrados agrave aplicaccedilatildeo jaacute disponiacutevel com todas as funcionalidades de zoome arrastar presentes no aplicativo nativo permitindo tambeacutem a personalizaccedilatildeo comoa adiccedilatildeo de pontos definidos pelo usuaacuterio ao mapa

34 Localizaccedilatildeo do UsuaacuterioOutro serviccedilo que foi utilizado com o intuito de obter o tempo de trajeto e a lista ordenada

de forma personalizada de restaurantes foi a localizaccedilatildeo do usuaacuterio que eacute obtida atraveacutes doGPS presente nos smartphones Um objeto de localizaccedilatildeo eacute criado e realiza a comunicaccedilatildeocom o serviccedilo de localizaccedilatildeo do aparelho Ao obter a localizaccedilatildeo ele lanccedila um evento quepode ser acessado por outras partes da aplicaccedilatildeo obtendo a localizaccedilatildeo mais atualizada dodispositivo

36 CONTROLE DE VERSAtildeO 19

35 Controle de VersatildeoControle de versatildeo eacute uma praacutetica usada para manter a organizaccedilatildeo do coacutedigo e do seu de-

senvolvimento quando muitos desenvolvedores colaboram conjuntamente Existem softwaresque auxiliam essa organizaccedilatildeo registrando todas as mudanccedilas feitas ao longo do processo eque possui recursos que permitem que vaacuterios usuaacuterios trabalhem nos mesmos arquivos semperda de informaccedilotildees

No caso do Git [8] o projeto fica organizado em uma estrutura de aacutervore onde cadacommit (checkpoints criados pelos membros do grupo durante o processo) eacute marcado porum noacute para onde se pode retornar quando necessaacuterio Existem tambeacutem estruturas chama-das branches que satildeo bifurcaccedilotildees na estrutura para que partes do projeto sejam criadasseparadamente sem interferir com a linha principal As branches depois satildeo unidas agrave linhaprincipal atraveacutes do comando merge

Neste projeto o serviccedilo de controle de versatildeo utilizado foi o Bitbucket [2] (que eacute um ser-viccedilo web-based de controle de versatildeo que utiliza Git) com auxiacutelio do software SourceTree[19]que eacute uma interface graacutefica para os serviccedilos do Bitbucket onde eacute possiacutevel visualizar com maisfacilidade as fases do desenvolvimento do projeto e realizar os comandos mais intuitivamente

Figura 32 Interface do SourceTree que mostra o controle de versionamento do projeto

36 Banco de dadosCom o intuito de deixar o aplicativo mais completo guardando informaccedilotildees dos usuaacuterios

e dos estabelecimentos optou-se por utilizar-se um banco de dados Alguns exemplos de

20 TECNOLOGIAS UTILIZADAS 36

banco de dados aprendidos no curso Laboratoacuterio de Banco de Dados foram

∙ SQL (Structured Query Language - Linguagem de Consulta Estruturada)[20] umalinguagem para atualizar deletar e requisitar informaccedilotildees atraveacutes de consultas emtabelas que possuem relaccedilatildeo entre si

∙ noSQL[13] um banco de dados que armazena e recupera informaccedilotildees modeladas deuma forma onde natildeo satildeo usadas tabelas relacionais

Como este uacuteltimo natildeo foi o foco da disciplina por falta de tempo decidiu-se por utilizaacute-lopara que o grupo pudesse aprender melhor esse modelo

Outra decisatildeo tomada foi a hospedagem dos dados na nuvem ou seja colocaacute-los em umservidor que natildeo seja local e conseguir acessaacute-los atraveacutes de uma conexatildeo via internet Dessemodo os dados sempre estaratildeo disponiacuteveis para serem consultados

361 Firebase

Buscando-se atender as decisotildees tomadas sobre o banco de dados procuramos um serviccedilode banco de dados da Google por conter ampla integraccedilatildeo com a plataforma de desenvolvi-mento Android por ser conhecido bastante utilizado e por possuir uma ampla comunidadede desenvolvedores dispostos a oferecer auxiacutelio em foacuteruns de discussatildeo de coacutedigos

Para atender esses requisitos escolheu-se o Firebase Realtime Database[6] desenvolvido edisponibilizado pela Google que consiste em um banco de dados noSQL com armazenamentona nuvem Esse serviccedilo armazena os dados do usuaacuterio no servidor da Google em formatoJSON e a cada alteraccedilatildeo sincroniza em tempo real com todos os clientes conectados

O grupo pode observar as seguintes vantagens de se trabalhar com a ferramenta existea sincronizaccedilatildeo em tempo real dos dados de todos os clientes e sua disponibilidade mesmocom o aplicativo offline ou seja quando o aplicativo natildeo estiver conectado a internet osdados do dispositivo moacutevel seratildeo armazenados e sincronizados com o banco de dados assimque a conexatildeo estiver disponiacutevel novamente Aleacutem disso os desenvolvedores possuem acessoa um console online (figura 33) onde o JSON eacute mostrado numa interface interativa de umaforma mais amigaacutevel e no qual eacute permitido editaacute-lo facilmente

37 CROWDSOURCING 21

Figura 33 Console online do Firebase onde os dados satildeo mostrados de forma mais amigaacutevel eintuitiva

Outra observaccedilatildeo feita foi que o Firebase Realtime Database funciona como o esperadose ele guardar uma coacutepia local dos dados em um arquivo JSON no celular Poreacutem isso natildeofoi visto como um problema pois como essa coacutepia pode ser salva em um arquivo texto oespaccedilo utilizado diminui consideravelmente

Na primeira vez que os dados satildeo criados e todas as vezes em que os dados forem atua-lizados por algum dispositivo moacutevel eacute enviada uma atualizaccedilatildeo que seraacute recebida atraveacutes delisteners por todos os aparelhos que utilizam o aplicativo para que eles atualizem seus res-pectivos JSONs Listeners satildeo interfaces de comunicaccedilatildeo que executam uma seacuterie de accedilotildeesassim que um outro evento esperado acontece

37 CrowdsourcingO termo Crowdsourcing tem origem nas palavras da liacutengua inglesa Crowd (multidatildeo) e

Outsourcing (terceirizaccedilatildeo) e eacute definido pelo dicionaacuterio Merriam Webster como A praacuteticade obtenccedilatildeo de serviccedilos ideias ou conteuacutedo solicitando contribuiccedilotildees de grandes grupos depessoas e especialmente da comunidade online [3] Esta praacutetica eacute utilizada para que sejapossiacutevel agrave comunidade contribuir com dados para algum programa ou serviccedilo como no apli-cativo Waze do qual a principal fonte de dados de tracircnsito acidentes e radares eacute obtida pormeio dos proacuteprios usuaacuterios

Capiacutetulo 4

Desenvolvimento do Projeto

Este capiacutetulo aborda o processo de desenvolvimento do projeto iniciado com o preen-chimento do diagrama Canvas e uma pesquisa de mercado direcionada ao usuaacuterio A partirdas informaccedilotildees coletadas foi possiacutevel projetar um aplicativo que atendesse as necessidadesexpostas pela pesquisa e selecionar as tecnologias necessaacuterias Tambeacutem eacute abordada a aplica-ccedilatildeo dos diferentes meacutetodos de caacutelculo da previsatildeo de tempo de espera que foram estudadose explicados no Capiacutetulo 2 Por fim satildeo expostas as diferentes versotildees do aplicativo duranteo processo e seus detalhes

41 Pesquisa de MercadoAntes de iniciar-se o desenvolvimento praacutetico algumas questotildees foram levantadas se

um aplicativo com as funcionalidades escolhidas seria de alguma forma uacutetil para o usuaacuterioe se sim qual metodologia deveria ser usada para que este produto fosse entregue o maiscompleto possiacutevel ateacute o final do ano Para responder a primeira pergunta desenvolveu-seum questionaacuterio

411 Pesquisa com o usuaacuterio

O questionaacuterio foi desenvolvido para avaliar a viabilidade do aplicativo e suas funciona-lidades e foi criado utilizando-se o Google Forms [9] Essa eacute uma ferramenta desenvolvidapelo Google que possibilita a criaccedilatildeo de formulaacuterios contendo diversos formatos de pergun-tas tanto dissertativas quanto de muacuteltipla escolha

Seguindo os princiacutepios de desenvolvimento de questionaacuterios [4] o conjunto de perguntasfoi mantido curto simples e de faacutecil entendimento Tambeacutem variou-se o tipo de questotildeesentre estruturadas (questotildees com respostas em forma de alternativas) e desestruturadas(questotildees com respostas em formato texto) seguindo esses mesmos princiacutepios para captarmelhor as informaccedilotildees dos entrevistados e evitar erros de entendimento

Com as respostas do questionaacuterio tinha-se o intuito de traccedilar um possiacutevel puacuteblico alvoconhecer seu modo de uso de dispositivos moacuteveis e validar a aplicabilidade de diferentesfuncionalidades pretendidas inicialmente sendo essas engajamento do usuaacuterio atraveacutes denotificaccedilotildees do sistema aceitaccedilatildeo de sugestotildees de locais alternativos avaliaccedilatildeo da existecircnciado problema que queremos resolver (se este aplicativo supre uma necessidade real do usuaacute-rio) e aceitaccedilatildeo do aplicativo

23

24 DESENVOLVIMENTO DO PROJETO 41

Para a divulgaccedilatildeo redes sociais como Facebook [5] e sistemas de mensagem instantacircneascomo WhatsApp foram usados e o envio de respostas foi restrito ateacute trecircs semanas apoacutes suaprimeira postagem Neste periacuteodo foram obtidas 210 respostas as quais ajudaram a definiros aspectos do sistema a ser desenvolvido

O questionaacuterio foi dividido em duas subseccedilotildees perfil do usuaacuterio e funcionalidade Comelas obteve-se os seguintes resultados

41 PESQUISA DE MERCADO 25

Questatildeo 1

Figura 41 Graacutefico pizza da distribuiccedilatildeo das respostas em relaccedilatildeo a idade dos pesquisados

As faixas de idade apresentadas estatildeo desbalanceadas por natildeo terem a mesma quantidadede anos em cada uma poreacutem essa divisatildeo foi pensada levando-se em conta a fluecircncia comtecnologia que cada idade possui Com o resultado verificou-se que do puacuteblico alcanccediladocom a pesquisa a maioria estaacute na faixa de 18 a 25 anos de idade assumida como parcelacom maior conhecimento tecnoloacutegico

Questatildeo 2

Figura 42 Graacutefico pizza da distribuiccedilatildeo das respostas em relaccedilatildeo ao sistema operacional

Esta questatildeo foi pensada para medir a porcentagem de cada sistema operacional pre-sente nos celulares do puacuteblico Com ela descobriu-se que 639 das pessoas dentro desse

26 DESENVOLVIMENTO DO PROJETO 41

grupo possuem o sistema Android enquanto 234 possuem iOS e 38 Windows phoneEssa pergunta foi incluiacuteda para um melhor direcionamento do desenvolvimento do aplicativo

Uma questatildeo levantada ao aplicar esse questionaacuterio foi a dificuldade que algumas pessoasencontraram para identificar a versatildeo do proacuteprio aparelho Poreacutem para manter a consistecircnciadas respostas decidiu-se natildeo mudar nada nesta questatildeo para remediar isso

Questatildeo 3

Figura 43 Graacutefico em barras da distribuiccedilatildeo de frequecircncias mensais de cada local analisado

41 PESQUISA DE MERCADO 27

Questatildeo 4

Figura 44 Graacutefico em pizza da distribuiccedilatildeo de interesse do usuaacuterio no tempo de espera de cadalocal

A princiacutepio viu-se muitas possiacuteveis aplicaccedilotildees para a previsatildeo de tempo de espera Paraentender qual seria a prioridade do puacuteblico as questotildees acima foram incluiacutedas A primeiraverificou a frequecircncia de visitas em alguns locais e a segunda serviu para analisar qualestabelecimento despertava mais interesse nos entrevistados quanto ao quesito fila Nos doiscasos restaurantes se destacaram com o maior interesse

Questatildeo 5

Figura 45 Graacutefico em barras da distribuiccedilatildeo de interesse do usuaacuterio por cada item avaliado

Para acompanhar o dado de espera e fornecer mais informaccedilotildees relevantes ao usuaacuteriosem potencial perguntou-se quais outras informaccedilotildees eles acham interessante saber sobre umdeterminado estabelecimento Com isso descobriu-se que a faixa de preccedilo o trajeto ateacute olocal e o cardaacutepio seriam dados importantes de se obter juntamente com o tempo de espera

28 DESENVOLVIMENTO DO PROJETO 41

Questatildeo 6O que vocecirc costuma fazer para evitar filasNeste ponto testou-se se a soluccedilatildeo proposta atraveacutes do aplicativo resolveria o problema dousuaacuterio de uma forma melhor do que a soluccedilatildeo atualmente utilizada Para isso foi perguntadoo que as pessoas fazem para evitar filas e as principais respostas foram

∙ Evitar horaacuterios de pico

∙ Chegar cedo

∙ Ir em outro lugar caso uma fila seja encontrada

∙ Tentar realizar reservas antecipadamente

∙ Se distrair com livroscelular

Notou-se que as soluccedilotildees utilizadas atualmente natildeo suprem as necessidades dos entre-vistados pois mesmo em horaacuterios natildeo convencionais pode-se encontrar filas ou quandodecide-se esperar na fila muito tempo eacute perdido Concluiu-se que a soluccedilatildeo proposta a par-tir do aplicativo resolve de forma mais abrangente o problema pois ajuda o usuaacuterio a evitarhoraacuterios de pico inesperados

Questatildeo 7

Figura 46 Graacutefico em pizza da distribuiccedilatildeo do meio de transporte utilizado pelos usuaacuterios

Essa questatildeo foi formulada com o objetivo de verificar quais meios de transporte seriamincluiacutedos com previsatildeo de tempo de trajeto no aplicativo Foi verificado que a maioria dosentrevistados utilizam transporte puacuteblico seguido por carro

41 PESQUISA DE MERCADO 29

Questatildeo 8

Figura 47 Graacutefico em pizza da distribuiccedilatildeo do interesse do usuaacuterio pela informaccedilatildeo fornecida

Questatildeo 9

Figura 48 Graacutefico em pizza da distribuiccedilatildeo de quantidade de quilocircmetros que o usuaacuterio sedeslocaria para ir a um local com menos fila

Com essas questotildees foi verificado que algo importante para o usuaacuterio eacute saber de outrosestabelecimentos que possam oferecer tempos de espera menores nas redondezas de onde ousuaacuterio se encontra que eacute uma das funcionalidades que desejaacutevamos utilizar no sistema

30 DESENVOLVIMENTO DO PROJETO 41

Questatildeo 10

Figura 49 Graacutefico em barras da distribuiccedilatildeo de sentimento do usuaacuterio em relaccedilatildeo a notificaccedilatildeode aplicativos

Questatildeo 11

Figura 410 Graacutefico em pizza da distribuiccedilatildeo de opiniatildeo do usuaacuterio sobre desabilitar notificaccedilotildeesem celular

42 PESQUISA DE MERCADO 31

Questatildeo 12

Figura 411 Graacutefico em pizza da distribuiccedilatildeo de opiniatildeo do usuaacuterio sobre habilitar GPS emcelular

A ideia inicial era poder usar o GPS para verificar a localizaccedilatildeo do usuaacuterio e enviarnotificaccedilotildees quando este estivesse parado nas proximidades de algum dos estabelecimentoscadastrados Para que essa funcionalidade possa existir eacute necessaacuterio que o aplicativo tenhaacesso agrave localizaccedilatildeo precisa da pessoa atraveacutes do GPS ou internet ateacute mesmo quando natildeoestiver aberto Aleacutem disso tambeacutem eacute necessaacuterio que as notificaccedilotildees estejam habilitadas parafinalizar esta interaccedilatildeo Entatildeo as perguntas 10 11 e 12 foram incluiacutedas no questionaacuterio Ob-servando as respostas foi possiacutevel verificar que 295 das pessoas que responderam deixamambas as funcionalidades habilitadas (GPS e notificaccedilotildees) Com isso pudemos prosseguircom essa ideia e tambeacutem pensar em possiacuteveis alternativas de interaccedilatildeo e engajamento como usuaacuterio

Por conta dessa pesquisa ter sido compartilhada atraveacutes das contas das redes sociais ecomunicadores dos componentes deste grupo sabe-se que este pode apresentar um resultadoviesado mas que mesmo assim natildeo deve ser desconsiderado e que muito ajudou a sanar asduacutevidas iniciaisComo resultado traccedilamos o perfil do entrevistado

∙ Faixa etaacuteria predominante entre 18 e 30 anos

∙ Possui sistema operacional Android (versotildees 4 5 e 6)

∙ Vai a restaurantes com certa frequecircncia mensal resultando em interesses sobre infor-maccedilotildees relacionadas a esse estabelecimento

∙ Costuma chegar cedo ou evitar os horaacuterios de pico para evitar filas nos locais

∙ Carro e transporte coletivo satildeo os principais meios de transporte

∙ Se deslocaria para um estabelecimento semelhante que possui menos fila contanto queeste fique num raio de 2km de distacircncia

32 DESENVOLVIMENTO DO PROJETO 43

42 Projeto do AplicativoO grupo comeccedilou o projeto com o preenchimento do diagrama Canvas(figura 412) apre-

sentado na Seccedilatildeo 21 Desse modo foi adquirida uma ideia mais consistente e uma base paracomeccedilar a implementaccedilatildeo

Figura 412 Diagrama Canvas preenchido pelo grupo

Com o modelo de negoacutecios definido e com base no resultado da pesquisa com o usuaacuterioapresentada na seccedilatildeo seguinte foram aplicadas pequenas mudanccedilas no projeto para melhoradequar-se agraves necessidades e ao perfil do puacuteblico alvo

Para o desenvolvimento foi utilizado um meacutetodo aacutegil baseado no scrum com sprints de3 a 4 semanas devido agrave disponibilidade dos membros do grupo Os encontros natildeo eram diaacute-rios como recomendado para o meacutetodo scrum tambeacutem em razatildeo da disponibilidade Haviamstand ups (discussotildees raacutepidas no comeccedilo de cada encontro) e retrospectivas ao final de cadasprint A cada sprint eram selecionadas histoacuterias e tarefas para serem executadas e caso natildeofossem concluiacutedas ao final da iteraccedilatildeo eram inseridas ao backlog e feitas no sprint seguinte

43 Aplicaccedilatildeo dos meacutetodos de caacutelculo de espera

431 Aplicando a meacutedia por periacuteodo

Aplicando-se no trecho abaixo a teacutecnica desenvolvida na Seccedilatildeo 242 para uma queryrealizada no dia 19082016 no intervalo de 2040 - 2055 analisa-se a semana anterior quepossua tais intervalos Assim o saacutebado dia 06082016 seraacute selecionado

43 APLICACcedilAtildeO DOS MEacuteTODOS DE CAacuteLCULO DE ESPERA 33

Entrada Qtd Pessoas Notificado Espera

6816 2043 2 862016 2053 1606

6816 2044 2 862016 2055 674

6816 2048 2 862016 2056 528

6816 2048 2 862016 2057 520

6816 2051 2 862016 2107 1118

6816 2051 3 862016 2110 1305

6816 2052 2 862016 2110 1273

6816 2052 2 862016 2111 1179

6816 2053 2 862016 2112 1217

6816 2053 2 NULL 59

6816 2054 3 862016 2119 1541

6816 2055 2 862016 2117 1444

6816 2055 2 862016 2120 1570

6816 2055 2 862016 2122 1613

Tabela 41 Trecho do dia 06082016 entre os horaacuterios das 2043 agraves 2055 um intervalo de 12minutos retirado dos dados da empresa Get In

Com esses dados obteve-se a meacutedia de espera de 1080 segundos (18 minutos) a qualseria sugerida para o usuaacuterio com a busca e desvio padratildeo de 465144719 segundos (775 mi-nutos) Dentro desse intervalo tem-se como maacuteximo tempo de espera 1613 segundos (2688minutos) e como miacutenimo 59 segundos (1 minuto) Analisando-se os dados do dia 19082016no mesmo periacuteodo temos

34 DESENVOLVIMENTO DO PROJETO 43

Entrada Pessoas Notificado Espera Erro previsatildeo Erro p 2 pessoas

19816 2043 2 8192016 2051 544 -563 522

19816 2043 2 8192016 2052 605 -502 461

19816 2044 2 8192016 2056 723 -384 343

19816 2046 4 8192016 2119 1988 881 X

19816 2048 2 8192016 2102 919 188 147

19816 2051 2 8192016 2103 821 286 245

19816 2051 3 8192016 2108 1773 666 X

19816 2053 2 8192016 2110 1083 24 -17

19816 2053 2 8192016 2111 1105 2 -39

19816 2053 2 8192016 2112 1169 62 -103

19816 2055 2 8192016 2114 1447 340 -381

Tabela 42 Trecho do dia 19082016 entre os horaacuterios das 2043 agraves 2055um intervalo de 12minutos retirado dos dados da empresa Get In

Ou seja se um grupo chegasse dentro desse periacuteodo e a previsatildeo dada fosse a meacutediaobtida anteriormente o erro calculado pela diferenccedila entre o tempo sugerido e o real tempode espera estaria no intervalo de 15 minutos para menos ou 8 minutos para mais Sendoesse um valor aceitaacutevel

Um proacuteximo passo eacute a restriccedilatildeo dos registros a grupos com 2 integrantes Com tal restri-ccedilatildeo a previsatildeo de espera eacute de 1066 segundos (1776 minutos) Aplicando essa nova meacutedia aosregistros com 2 integrantes do dia 19082016 obteacutem-se um erro (Coluna 6 - erro previsatildeopara 2 pessoas) menor do que o anterior O intervalo do erro calculado neste caso seria de 522segundos (87 minutos) para mais e 381 segundos (635 minutos) para menos Este resultadoeacute ainda mais favoraacutevel mostrando que a inclusatildeo de mais filtros para o caacutelculo da previsatildeomelhorou o tempo previsto

432 Aplicando teoria das filas

A teoria das filas (Seccedilatildeo 242) eacute uma ferramenta muito completa que calcula muitos dadosuacuteteis para a previsatildeo de espera Contudo por conta da necessidade de informaccedilotildees sobreo tempo de atendimento a qual natildeo estaacute contida no banco utilizado esta teoria natildeo podeser aplicada neste caso Poreacutem esse dado pode ter um valor assumido para que a utilizaccedilatildeodessa teoria fosse possiacutevel entretanto a sua precisatildeo ficaria comprometida e imprevisiacutevel

433 Aplicando redes neurais

Para aplicar o que foi estudado na Seccedilatildeo 242 foi executado o software com o mecircs deAgosto como teste o mecircs de Setembro como treino e o limite do erro quadraacutetico como 001 eobteve-se a tabela presente no apecircndice B Na tabela podemos ver o tempo de fila esperadoou seja o tempo contido na tabela do mecircs de Setembro o tempo que o algoritmo deu comoresposta baseado no mecircs de Agosto e o erro entre eles respectivamente

44 DEFINICcedilAtildeO DA INTERFACE DO APLICATIVO 35

Figura 413 Software Multiple Back-Propagation com a configuraccedilatildeo escolhida para os dadosdisponiacuteveis

Mesmo o erro se mantendo em 0018 os dados obtidos possuem um erro padratildeo de 15minutos Se mais dados forem adicionados o criteacuterio de parada pode ser atingido e assimuma previsatildeo melhor pode ser alcanccedilada

434 Conclusatildeo sobre os meacutetodos estudados

Dentre todas as possibilidades estudadas visualizamos na meacutedia por periacuteodo a melhoropccedilatildeo assumindo os dados disponiacuteveis para teste Se mais paracircmetros fossem fornecidoscomo o tempo de atendimento a teoria das filas seria uma boa opccedilatildeo para fornecer a pre-visatildeo de espera E se mais dados estivessem disponiacuteveis as redes neurais conseguiriam umaaproximaccedilatildeo melhor e assim seria uma boa opccedilatildeo tambeacutem

44 Definiccedilatildeo da Interface do aplicativoComo um primeiro protoacutetipo foi desenvolvida uma interface simples que tinha como tela

de iniacutecio um mapa com um campo para buscas na parte superior

36 DESENVOLVIMENTO DO PROJETO 44

Figura 414 Fluxo de telas do primeiro protoacutetipo

Ao efetuar uma busca por algum estabelecimento uma tela mostrando o tempo de esperaaproximado da fila no local era exibida junto com bototildees que permitiam selecionar o meiode transporte visualizar outras opccedilotildees ou dar iniacutecio a rota ateacute o local desejado Tambeacutemhavia uma notificaccedilatildeo para quando a pessoa estivesse parada proacutexima a um restaurantecadastrado que direcionaria o usuaacuterio a uma tela com um cronocircmetro do tempo de esperana fila

Para testar essa visualizaccedilatildeo escolhemos algumas pessoas e realizamos um teste deusabilidade[22] este teste eacute feito da seguinte forma

44 DEFINICcedilAtildeO DA INTERFACE DO APLICATIVO 37

Uma contextualizaccedilatildeo eacute feita para o voluntaacuterio e entatildeo uma tarefa eacute passada para sercompletada Os integrantes do grupo observam dificuldades enfrentadas pelo entrevistado etomam notas Esse teste eacute repetido algumas vezes e seu resultado eacute coletado para avaliaccedilatildeoe modificaccedilatildeo das funcionalidades

Figura 415 Tela de detalhes de um restaurante(segunda versatildeo)

Notou-se que algumas funcionalidadespareceram confusas e natildeo intuitivas porexemplo natildeo ficou claro se o tempo mos-trado era de trajeto ou de espera na filanem qual era o meio de transporte utili-zado

Logo esse protoacutetipo foi reformuladocom o intuito de melhorar a experi-ecircncia do usuaacuterio com o nosso aplica-tivo

Foram colocados aleacutem do tempo deespera da fila o tempo que o usuaacuteriolevaria para chegar ateacute o local selecio-nado (conforme o tipo de transporte es-colhido) e a quantidade estimada de pes-soas na fila O tempo total (espera so-mado ao tempo de deslocamento) ga-nhou destaque entre as informaccedilotildees doestabelecimento e o botatildeo que direcionao usuaacuterio ao trajeto ficou mais especiacute-fico

Tambeacutem cogitou-se a possibilidade deadicionar login e um perfil de usuaacuteriojunto com uma lista de restaurantes favo-ritos

O fluxo das telas deste novo protoacutetipo ficou como mostra o esquema a seguir

38 DESENVOLVIMENTO DO PROJETO 44

Figura 416 Fluxo de telas do segundo protoacutetipo

44 DEFINICcedilAtildeO DA INTERFACE DO APLICATIVO 39

Figura 417 Tela de detalhes de um restaurante(terceira versatildeo)

Apoacutes outras avaliaccedilotildees mais algumaspequenas alteraccedilotildees foram realizadas nainterface Foi decidido que seria inviaacute-vel estimar o nuacutemero de pessoas nafila entatildeo essa funcionalidade foi remo-vida

Notificaccedilotildees foram adicionadas paraquando o usuaacuterio estiver parado na aacutereado restaurante para que ele possa con-tribuir com informaccedilotildees sobre a fila quepegou aleacutem de um botatildeo de contri-buiccedilatildeo ter sido inserido na tela ini-cial

40 DESENVOLVIMENTO DO PROJETO 45

O fluxo de telas do aplicativo atual ficou da seguinte forma

Figura 418 Fluxo de telas do terceiro protoacutetipo

46 EXPLICACcedilAtildeO DAS FUNCIONALIDADES 41

45 Explicaccedilatildeo das funcionalidadesEsta seccedilatildeo explica as funcionalidades do produto utilizando a figura 418

A tela inicial (3) exibe uma lista de restaurantes incluindo seus respectivos tempos detrajeto e tempo de espera na fila Ao clicar no botatildeo ldquo+rdquo uma caixa de diaacutelogo eacute aberta(4) onde eacute possiacutevel adicionar o tempo que o usuaacuterio esperou na fila Primeiro eacute escolhido orestaurante depois a data e hora que a pessoa chegou na fila e por fim o tempo de esperaem minutos Ao tocar em ldquoEnviar Feedback rdquo os dados satildeo incluiacutedos no banco de dados eatualizados para os outros usuaacuterios Assim eacute apicado o conceito de Crowdsourcing no apli-cativo

Ao tocar em um item da lista de restaurantes seraacute aberta a tela de detalhes de um res-taurante (5) na qual eacute possiacutevel ver com mais clareza os tempos de trajeto e espera o tempototal o endereccedilo do estabelecimento e um pequeno mapa centrado no local Pressionandoo botatildeo ldquoDireccedilotildeesrdquo o usuaacuterio seraacute redirecionado ao aplicativo de mapas de sua preferecircnciano caso do exemplo (8) o Google Maps jaacute traccedilando a rota da localizaccedilatildeo do usuaacuterio para oestabelecimento em questatildeo

Novamente na tela inicial tocando no iacutecone de lupa eacute possiacutevel realizar uma busca digi-tando o nome do estabelecimento na caixa de texto a qual exibe sugestotildees dependendo doque foi digitado Ao clicar em um dos resultados da busca o usuaacuterio eacute novamente direcionadopara a tela de detalhes do restaurante (5)

Tambeacutem eacute possiacutevel tocar no iacutecone de mapa na tela inicial onde seraacute mostrado um mapacentrado na localizaccedilatildeo do usuaacuterio

Ao ficar parado por um tempo em um mesmo local proacuteximo a um estabelecimentocadastrado o usuaacuterio eacute perguntado em uma notificaccedilatildeo quanto tempo ele permaneceu nafila Ao tocar na notificaccedilatildeo a caixa de diaacutelogo para feedback do usuaacuterio seraacute aberta (4) jaacutecom o restaurante preenchido e apoacutes o feedback a janela seraacute fechada e os dados enviadosao banco de dados

46 Implementaccedilatildeo do banco de dadosO banco de dados do aplicativo foi modelado e populado em forma de aacutervore (Fi-

gura 419) de forma a facilitar o acesso aos dados necessaacuterios ao aplicativo No primeironiacutevel estatildeo os ids dos restaurantes Cada id de restaurante guarda a localizaccedilatildeo (latitudelongitude) do restaurante o nome o endereccedilo e um objeto fila O objeto fila guarda todos osdias da semana (domingo a saacutebado) e cada dia da semana possui 24 campos um para cadahora do dia Cada hora possui o tempo meacutedio de espera da fila naquela hora e um peso paraesse tempo O peso eacute um valor que aumenta de acordo com o nuacutemero de feedbacks dadospara que o novo valor do tempo meacutedio seja calculado de forma consistente

Modelamos o banco de dados de uma forma que respeitasse uma hierarquia de dados

42 DESENVOLVIMENTO DO PROJETO 46

Figura 419 Aacutervore que ilustra a organizaccedilatildeo de um restaurante no banco de dados

Com o banco de dados jaacute populado o aplicativo faz consultas e atualizaccedilotildees de dadosConsultas satildeo feitas ao criar a tela de listagem de restaurantes e de detalhes de um restau-rante consultado As atualizaccedilotildees satildeo feitas quando o usuaacuterio manda o feedback de tempo deespera em um estabelecimento em determinado horaacuterio o aplicativo calcula a nova meacutedia eatualiza o campo do respectivo horaacuterio

Capiacutetulo 5

Conclusatildeo

Ao longo dos capiacutetulos deste trabalho pocircde-se acompanhar todo o processo de criaccedilatildeo edesenvolvimento do aplicativo que apoacutes finalizado foi batizado com o nome Queue

Comeccedilando com um problema para o qual o grupo almejava oferecer uma soluccedilatildeoacabou-se por adentrar-se um pouco no campo da Estatiacutestica e estudar diversas metodo-logias que poderiam ser uacuteteis para fornecer um caacutelculo de previsatildeo de espera meacutedia porperiacuteodo aplicaccedilatildeo da teoria das filas e utilizaccedilatildeo de redes neurais

Atraveacutes de uma parceria com a empresa GetIn obteve-se acesso a uma grande quantidadede dados e foi possiacutevel utilizaacute-los em anaacutelises feitas nas metodologias escolhidas conseguindoassim resultados relevantes Por meio destes foi feita a escolha de um dos meacutetodos para ocaacutelculo da previsatildeo de filas a meacutedia por periacuteodo

Aleacutem desses estudos ao longo do ano o grupo aprendeu a desenvolver para a plata-forma Android sobre a qual nenhum dos integrantes tinha conhecimento preacutevio Tambeacutemfoi possiacutevel aprender e utilizar a metodologia aacutegil com Scrum para guiar o processo de de-senvolvimento

Ao fim do ciclo de desenvolvimento conseguiu-se entregar um aplicativo em funciona-mento que fornece a previsatildeo de espera no instante da consulta de estabelecimentos cadas-trados no banco de dados armazenado na nuvem

Na versatildeo atual do aplicativo natildeo foi implementado um sistema para o cadastro de novosestabelecimentos Isso soacute eacute possiacutevel atraveacutes da inserccedilatildeo direta no banco de dados atraveacutes dainterface fornecida pelo console do Firebase Atualmente estatildeo cadastrados 5 restaurantesos quais foram visitados durante o desenvolvimento do projeto Para que o cadastro deestabelecimentos escale seria necessaacuterio a implementaccedilatildeo de uma funcionalidade que permitaao usuaacuterio adicionar novos estabelecimentos a partir de locais disponiacuteveis na API de locaisda Google

43

45

46 APEcircNDICE A

Apecircndice A

Dados coletados

Figura A1 Dados de tempo de espera para grupos de tamanhos variados para cada horaacuterio e emcada dia da semana obtidos em entrevista em restaurantes Outback Steakhouse Shopping Uniatildeo nomecircs de outubro

Referecircncias Bibliograacuteficas

[1] Backpropagation httpmbpsourceforgenet Accesso em Janeiro 2017 14

[2] Bitbucket httpsbitbucketorgproduct Accesso em Dezembro 2016 19

[3] Crowdsourcing httpswwwmerriam-webstercomdictionarycrowdsourcing Ac-cesso em Novembro 2016 21

[4] Designing a survey httpwwwsciencebuddiesorgscience-fair-projectsproject_ideasSoc_surveyshtml Accesso em Outubro 2016 4 23

[5] Facebook httpswwwfacebookcom Accesso em Novembro 2016 24

[6] Firebase httpsfirebasegooglecom Accesso em Agosto 2016 20

[7] Getin app httpswwwgetinappcombrhomesao-paulo Accesso em Novembro2016 9

[8] Git 11 primeiros passos - sobre controle de versatildeo httpsgit-scmcombookpt-brv1Primeiros-passos-Sobre-Controle-de-Vers Accesso em Novembro 2016 19

[9] Google forms httpsdocsgooglecomforms Accesso em Novembro 2016 23

[10] Guia definitivo do project model canvas Project Builder 3

[11] Jsonorg introducing json httpwwwjsonorg Accesso em Novembro 2016 17

[12] Manifesto para desenvolvimento Aacutegil de software httpagilemanifestoorgisoptbrmanifestohtml Accesso em Novembro 2016 5

[13] Nosql httpsenwikipediaorgwikiNoSQL Accesso em Novembro 2016 20

[14] Outback steakhouse httpswwwoutbackcombrhome Accesso em Novembro 20169

[15] Restful api development with lumen microframework httpsbelitsoftcomlaravel-development-servicesapi-development Accesso em Novembro 2016 17

[16] Scrum httpswwwatlassiancomagilescrum Accesso em Novembro 2016 5

[17] Smartphone os market share 2016 q2 httpwwwidccomprodservsmartphone-os-market-sharejsp Accesso em Novembro 2016 15

[18] Smartphone os sales market share kantar worldpanel comtech httpwwwkantarworldpanelcomsmartphone-os-market-share Accesso em Novembro 2016 15

[19] Sourcetree httpswwwsourcetreeappcom Accesso em Dezembro 2016 19

47

48 REFEREcircNCIAS BIBLIOGRAacuteFICAS

[20] Sql httpsptkhanacademyorgcomputingcomputer-programmingsql Accesso emDezembro 2016 20

[21] Trello httpstrellocom Accesso em Novembro 2016 6

[22] Usability test httpsenwikipediaorgwikiUsability_testing Accesso em Novembro2016 36

[23] Versionone 2012 agile dev survey httpswwwversiononecompdf7th-Annual-State-of-Agile-Development-Surveypdf Accesso em Novembro 2016 5

[24] Waze httpswwwwazecom Accesso em Novembro 2016 1

[25] What is an open source httpsopensourcecomresourceswhat-open-source Accessoem Novembro 2016 15

[26] Xml tutorial httpwwww3schoolscomxml Accesso em Novembro 2016 17

[27] Paulo F Cabral dos Anjos Jr Aron Ifanger Maciel Christopher Silva de Paacutedua Com-posiccedilatildeo de carteiras de accedilotildees utilizando modelo de redes neurais artificiais e modelo derisco e retorno de Markowitz 2012 14

[28] Google Distance matrix api documentation httpsdevelopersgooglecommapsdocumentationdistance-matrix Accesso em Novembro 2016 17

[29] Alan Klement Designing features using job stories httpsblogintercomcomusing-job-stories-design-features-ui-ux Accesso em Novembro 2016 6

[30] Azmat Nafees Queuing theory and its application analysis of the sales checkout opera-tion in ica supermarket httpwwwstatisticsduseessaysD07ENafeespdf Accessoem Novembro 2016 12

[31] Eric Ries A Startup Enxuta Lua de papel primeira ediccedilatildeo edition 2012 3

  • Introduccedilatildeo
    • Motivaccedilatildeo
    • Trabalho Proposto
    • Estrutura da monografia
      • Estudos Preliminares
        • Desenvolvimento de Startups
          • Desenvolvimento de Questionaacuterios
            • Metodologia Aacutegil
            • Jobs to be done
            • Caacutelculo da previsatildeo do tempo de espera na fila
              • Descriccedilatildeo do problema
              • Meacutetodos de caacutelculo da espera
                  • Tecnologias utilizadas
                    • O sistema Android
                      • Organizaccedilatildeo de uma aplicaccedilatildeo Android
                        • JSON
                        • Google APIs
                        • Localizaccedilatildeo do Usuaacuterio
                        • Controle de Versatildeo
                        • Banco de dados
                          • Firebase
                            • Crowdsourcing
                              • Desenvolvimento do Projeto
                                • Pesquisa de Mercado
                                  • Pesquisa com o usuaacuterio
                                    • Projeto do Aplicativo
                                    • Aplicaccedilatildeo dos meacutetodos de caacutelculo de espera
                                      • Aplicando a meacutedia por periacuteodo
                                      • Aplicando teoria das filas
                                      • Aplicando redes neurais
                                      • Conclusatildeo sobre os meacutetodos estudados
                                        • Definiccedilatildeo da Interface do aplicativo
                                        • Explicaccedilatildeo das funcionalidades
                                        • Implementaccedilatildeo do banco de dados
                                          • Conclusatildeo
                                          • Dados coletados
                                          • Referecircncias Bibliograacuteficas

10 ESTUDOS PRELIMINARES 24

2 Sentado

3 Cancelado pelo proacuteprio Usuaacuterio

Para melhor entender estes paracircmetros o funcionamento do aplicativo deve ser expli-cado com maior detalhamento O processo de reserva funciona da seguinte forma o usuaacuterioreserva seu lugar atraveacutes do aplicativo ou vai ao restaurante e a recepcionista o adiciona agraveespera No primeiro caso o usuaacuterio tem um tempo de toleracircncia para chegar ao estabeleci-mento apoacutes receber a notificaccedilatildeo caso natildeo consiga chegar a tempo a reserva eacute cancelada Nosegundo caso quando o grupo a ser chamado estaacute proacuteximo da recepccedilatildeo a funcionalidade denotificaccedilatildeo natildeo precisa ser usada o responsaacutevel pode se direcionar diretamente aos clientes echamaacute-los pelo nome Mesmo nesse segundo caso o tempo de espera na fila ainda eacute guardadopois a recepccedilatildeo precisa ldquofecharrdquo a espera do grupo para chamar o proacuteximo

Poreacutem a utilizaccedilatildeo desses dados natildeo foi liberada pela empresa Get In para serem usadoscomo banco de dados do aplicativo somente foram fornecidos dados do mecircs de agosto esetembro de 2016 para que fossem utilizados nas anaacutelises feitas com os modelos estatiacutesticosPara obter dados que poderiam ser utilizados no banco de dados do aplicativo foi neces-saacuterio uma pesquisa presencial onde o grupo visitou alguns restaurantes da rede OutbackSteakhouse para obter informaccedilotildees sobre o tempo de espera nestes estabelecimentos

Foram visitados 5 restaurantes Outback Steakhouse Shopping Eldorado Outback Ste-akhouse Shopping Villa Lobos Outback Steakhouse Shopping Granja Vianna Outback Ste-akhouse Shopping Uniatildeo de Osasco e Outback Steakhouse Shopping Market Place ondequestionamos sobre o tempo de espera por tamanho de grupos (em nuacutemero de pessoas) epor horaacuterio e dia da semana

Ao analisar os dados coletados pela pesquisa presencial notamos que estes estavam sus-cetiacuteveis a erros por terem sido obtidos por meio de diferentes observaccedilotildees humanas Ummeacutetodo para obter dados mais precisos consistiria na realizaccedilatildeo de novas pesquisas no for-mato mediccedilatildeo onde cada integrante do grupo deveria coletar o tempo de espera de cadacliente atraveacutes de um cronocircmetro e calcular o tempo de espera meacutedio nesse horaacuterio Comoo grupo natildeo conseguiria aplicar este meacutetodo optou-se por melhorar a precisatildeo dos dadoscoletados usando como base o graacutefico de horaacuterios de pico disponibilizado pela Google paracada restaurante Essa melhora foi feita utilizando-se caacutelculos de proporccedilatildeo de valores

24 CAacuteLCULO DA PREVISAtildeO DO TEMPO DE ESPERA NA FILA 11

Primeiro meacutetodo Meacutedia por periacuteodo

Figura 26 Esquema do meacutetodo meacutedia por periacuteodo

Para que uma previsatildeo de espera possa ser fornecida ao usuaacuterio essa deve basear-seobrigatoriamente em alguma informaccedilatildeo preacutevia Contudo encontrar uma fonte para taisdados se mostrou uma tarefa muito complicada Para conseguir ainda assim apresentar umtempo de espera em fila meacutetodos de anaacutelise foram definidos de acordo com a quantidade dedados disponiacutevel para cada estabelecimento

De um modo geral neste modelo o caacutelculo do tempo de espera funcionaraacute da seguinteforma calcular-se-aacute a meacutedia de espera para o dia da semana e horaacuterio requeridos pelousuaacuterio sem diferenciar feriados de dias normais Dependendo de quatildeo longo eacute o histoacutericoniacuteveis de especificidade podem ser adicionados ou seja numa busca tempo de espera em 9de Dezembro (segunda-feira) agraves 19h no restaurante X a query selecionaraacute todos os registrosfeitos no dia 9 de dezembro entre as 19h e agraves 20h dos uacuteltimos anos no restaurante X e realizaraacuteessa meacutedia ou pode selecionar apenas linhas de todas as segundas-feiras do mecircs de Dezembrodeste mesmo periacuteodo

∙ Muitos dados neste caso um maior niacutevel de especificidade pode ser aplicado sem autilizaccedilatildeo de outras fontes para complementar o banco de dados

∙ Alguns dados o niacutevel de especificidade eacute bem menor apenas filtrando por dia dasemana e intervalo de hora sem mecircs ou dia especiacutefico no ano Em alguns casos aquantidade de dados eacute tatildeo pequena que deve-se recorrer a outras fontes A Googletem disponibilizado graacuteficos com a distribuiccedilatildeo dos clientes nos horaacuterios de funciona-mento de estabelecimentos Esses dados natildeo estatildeo disponiacuteveis em sua API ou seja natildeo

12 ESTUDOS PRELIMINARES 24

haacute uma forma automaacutetica para que o aproveitamento desses possa ser feito Poreacutemmesmo omitindo-se os valores do graacutefico o perfil da distribuiccedilatildeo e o horaacuterio de picosatildeo aproveitados manualmente para nosso sistema

∙ Poucos dados para este caso fizemos o balanceamento dos dados da Google comas informaccedilotildees retiradas das entrevistas Aleacutem do aproveitamento das informaccedilotildees daGoogle foram realizadas pesquisas com funcionaacuterios dos restaurantes

Segundo meacutetodo Teoria das filas

Filas podem ser vistas como um sistema dinacircmico no qual existe um conjunto de usuaacuteriosque satildeo atendidos por um conjunto de atendentes de acordo com a ordem de chegada dosusuaacuterios A teoria de filas busca utilizando anaacutelises matemaacuteticas estudar o comportamentodestas filas para estimar o tempo de espera com base em um conjunto inicial de dadospreviamente fornecido[30]

Um sistema de filas possui como caracteriacutesticas

∙ Modelo de chegada dos usuaacuterios Utiliza como base o tempo entre as chegadasdos usuaacuterios

∙ Modelo de serviccedilo (atendimento aos usuaacuterios) Utiliza como base o tempo gastono atendimento ao usuaacuterio No caso dos restaurantes equivale ao tempo que um grupopassa na mesa ateacute a sua saiacuteda

∙ Nuacutemero de servidores Eacute o nuacutemero de atendentes disponiacuteveis no sistema Para omodelo do restaurante este equivale agraves mesas disponiacuteveis no salatildeo

∙ Capacidade do sistema Eacute o nuacutemero de usuaacuterios que o sistema eacute capaz de atenderInclui o nuacutemero de usuaacuterios que estatildeo sendo atendidos somado com os que esperamna fila Se este paracircmetro natildeo for informado o sistema eacute considerado com capacidadeilimitada

∙ Tamanho da populaccedilatildeo nuacutemero potencial de clientes que podem chegar a umsistema Pode ser finito ou infinito

∙ Disciplina da fila A disciplina da fila pode ser FIFO (first in first out) - o primeiroa chegar eacute o primeiro a ser atendido LIFO (last in first out) - o uacuteltimo a chegar eacuteo primeiro a ser atendido ALEATOacuteRIO - os atendimentos satildeo feitos sem qualquerpreocupaccedilatildeo com a ordem de chegada COM PRIORIDADE - os atendimentos satildeofeitos de acordo com prioridades estabelecidas No caso dos restaurantes a disciplinaadotada eacute a FIFO poreacutem esta pode mudar de acordo com o atendente responsaacutevel

Os tempos mencionados nos modelos de chegada e de serviccedilo podem ser constantesquando os intervalos entre as chegadas dos usuaacuterios satildeo iguais ou variaacuteveis quando os valo-res desses intervalos variam Nesse uacuteltimo caso o intervalo de tempo segue uma distribuiccedilatildeode probabilidades Nesse modelo tambeacutem existe a taxa meacutedia de chegada dos usuaacuterios porunidade de tempo ou seja quantos usuaacuterios chegam em uma hora

As filas podem ser moldadas em trecircs situaccedilotildees baacutesicas como descrito por Azmat Nafees[30]

∙ Modelo de fila de canal uacutenico com fila uacutenica e atendimento uacutenico (Figura 27)

24 CAacuteLCULO DA PREVISAtildeO DO TEMPO DE ESPERA NA FILA 13

∙ Modelo de fila de canal uacutenico com fila uacutenica e muacuteltiplos atendimentos paralelos (Fi-gura 28)

∙ Modelo de fila de canal uacutenico com muacuteltiplas filas e muacuteltiplos atendimentos paralelos(Figura 29)

Figura 27 Modelo de fila de canal uacutenico com fila uacutenica e atendimento uacutenico

Figura 28 Modelo de fila de canal uacutenico com fila uacutenica e muacuteltiplos atendimentos paralelos

Figura 29 Modelo de fila de canal uacutenico com muacuteltiplas filas e muacuteltiplos atendimentos paralelos

Tambeacutem por Azmat Nafees nesses modelos trecircs subprocessos podem ser vistos

∙ Processo de chegada Eacute um processo contiacutenuo do evento ldquochegada de clientesrdquo ouseja quando o evento ocorre o processo aguarda a ocorrecircncia do proacuteximo evento Esseevento coloca um cliente na fila quando ele chega

14 ESTUDOS PRELIMINARES 24

∙ Processo de espera Eacute um processo que inclui o evento ldquocomece a servir o proacuteximocliente da filardquo que retira um cliente da fila o coloca no processo de atendimento eespera a conclusatildeo do evento ldquocliente servidordquo para recomeccedilar Nele se trabalha comtamanho e disciplina da fila

∙ Processo de atendimento Eacute um processo que inclui o evento ldquocliente servidordquo eespera a conclusatildeo do evento ldquocomece a servir o proacuteximo cliente da filardquo para recomeccedilarNele se trabalha com tipo taxa e tempo de atendimento

Dentre esses 3 modelos o que mais se encaixa na situaccedilatildeo de um restaurante eacute o segundomodelo canal uacutenico com fila uacutenica e muacuteltiplos atendimentos paralelos O processo de chegadade novos clientes na fila eacute tido como aleatoacuterio

Terceiro meacutetodo Rede Neural

Rede Neural eacute uma teacutecnica computacional inspirada no sistema nervoso que com o auxiacute-lio de um modelo matemaacutetico apresenta respostas para problemas de decisatildeo Esses modelosfuncionam da seguinte forma primeiro um conjunto de dados (conjunto de treinamento) eacuteapresentado ao sistema e este aprende com ele atraveacutes de reconhecimento de padratildeo entatildeocoloca-se o sistema para analisar os dados (conjunto de teste) para os quais deseja-se obteralgum resultado Este processo eacute chamado de aprendizagem de maacutequina Quanto melhor forseu treinamento mais precisas seratildeo as respostas para o segundo conjunto

Uma rede neural eacute formada por subestruturas chamadas neurocircnios Um neurocircnio tem oseguinte funcionamento ele recebe como entrada sinais cada sinal recebe um peso de acordocom a influecircncia dele na saiacuteda e uma soma eacute feita para produzir o niacutevel de atividade entatildeodependendo se o niacutevel de atividade exceder o limite dado pela funccedilatildeo de transferecircncia aresposta eacute produzida[27]

Software Multiple Back-Propagation

Para implementar a soluccedilatildeo baseada em redes neurais foi usado o Software MultipleBack-Propagation [1] Este eacute um software de faacutecil utilizaccedilatildeo que fornece uma rede a qualaprende atraveacutes do processo de propagaccedilatildeo inversa Esse meacutetodo baseia-se na comparaccedilatildeodos dados esperados (conjunto de teste) com os dados obtidos a partir do treinamento senecessaacuterio adaptaccedilotildees satildeo feitas a estrutura da rede para melhor aproximar aos dados doconjunto teste e isso eacute chamado de propagaccedilatildeo inversa

Por se tratar de um meacutetodo de aprendizagem de maacutequinas para se obter um resultadodeve-se treinar o algoritmo Primeiramente submete-se o conjunto de treinamento ao soft-ware para isso foi escolhido o mecircs de Agosto O criteacuterio de parada para o treino eacute o erroquadraacutetico meacutedio o qual teve seu valor atribuiacutedo para 001

Capiacutetulo 3

Tecnologias utilizadas

31 O sistema AndroidAndroid eacute um Sistema operacional open source (software de coacutedigo aberto o qual as

pessoas podem acessar e modificar para contribuir com o projeto [25]) e para dispositivosmoacuteveis desenvolvido pela Google baseado no Kernel do Linux e utilizado principalmente emdispositivos touchscreen Atualmente o Android eacute o sistema operacional que deteacutem a maiorparcela do mercado[17] com 836 dos dispositivos contra 134 do iOS da Apple

A Google tambeacutem oferece um ambiente de desenvolvimento para a plataforma Androidchamado Android Studio no qual os aplicativos satildeo criados e exportados para os dispositi-vos moacuteveis Aplicativos Android satildeo programados na linguagem Java com vaacuterias bibliotecasdisponibilizadas pela Google para suporte ao sistema operacional

A escolha da plataforma foi feita principalmente por conta de o sistema possuir a maiorparte dos usuaacuterios de Smartphones e tambeacutem pela ampla comunidade ativa de desenvolve-dores agrave qual se pode recorrer em casos de duacutevidas e problemas tornando suas resoluccedilotildeesmais raacutepidas e com muacuteltiplas alternativas Outros motivos que contribuiacuteram para a escolhado Android foram

∙ A disponibilidade do ambiente de desenvolvimento Android Studio que possui todosos recursos necessaacuterios para desenvolver um aplicativo funcional logo apoacutes a instalaccedilatildeosem a necessidade de utilizar outras dependecircncias as quais satildeo gerenciadas automati-camente pelo proacuteprio software

∙ O fato de no mercado brasileiro o sistema Android se encontrar em 918 dos dispo-sitivos segundo pesquisa da Kantar[18] e dado a pesquisa realizada para definiccedilatildeo depuacuteblico alvo onde foi possiacutevel perceber que 639 dos entrevistados utilizam smartpho-nes com sistema Android

∙ A utilizaccedilatildeo da linguagem de programaccedilatildeo Java para desenvolvimento que jaacute eraconhecida e fora utilizada anteriormente ao contraacuterio das linguagens Objective C eSwift linguagens utilizadas para desenvolver aplicativos para o sistema iOS Assimcomo a disponibilidade de dispositivos por parte do grupo que em sua maioria era decelulares com o sistema Android

15

16 TECNOLOGIAS UTILIZADAS 31

Figura 31 Parcela de mercado dos dispositivos no Brasil

311 Organizaccedilatildeo de uma aplicaccedilatildeo Android

Aplicativos Android satildeo divididos em componentes Haacute quatro tipos de componentespresentes Activities (ou atividades) Services (ou serviccedilos) Content providers (ou provedoresde conteuacutedo) Broadcast receivers (ou receptores de transmissatildeo)

∙ Activities Satildeo as telas e interfaces do usuaacuterio Cada tela de uma aplicaccedilatildeo eacute repre-sentada por uma activity e cada activity eacute independente de outras apesar de seremcomponentes de uma mesma aplicaccedilatildeo Isso se daacute pelo fato de haver a possibilidade deutilizar activities de aplicativos durante a execuccedilatildeo de outros Atividades satildeo iniciadase se comunicam entre si atraveacutes de objetos chamados Intent que transferem um pacotede dados que pode ser carregado no iniacutecio da nova atividade

∙ Services Sempre satildeo executados em segundo plano sem interferir na experiecircncia dousuaacuterio geralmente para realizar operaccedilotildees longas ou realizar operaccedilotildees de troca dedados enquanto o usuaacuterio estaacute utilizando outra aplicaccedilatildeo em primeiro plano

∙ Content Providers Satildeo gerenciadores de dados de aplicaccedilotildees Android utilizadospara ler e salvar dados compartilhados ou secretos dos aplicativos e do sistema

∙ Broadcast Receivers Satildeo componentes responsaacuteveis por obter eventos que aconte-ceram em outras aplicaccedilotildees ou no sistema e direcionar dados sobre esses eventos paraeventuais aplicaccedilotildees que necessitem destes dados alguns exemplos de eventos obtidospelos receptores de transmissatildeo satildeo tela desligada e bateria fraca

Aleacutem dos componentes uma parte importante de uma aplicaccedilatildeo Android eacute o ArquivoManifest que eacute uma declaraccedilatildeo de permissotildees serviccedilos e exigecircncias de hardware necessaacuterios

33 JSON 17

para o funcionamento do aplicativo Outra funccedilatildeo eacute possuir declaraccedilotildees de todos os compo-nentes utilizados no projeto nomes iacutecones entre outros

As interfaces de usuaacuterio do Android satildeo definidas em arquivos XML (eXtensible MarkupLanguage)[26] nos quais estatildeo declarados todos os layouts e configuraccedilotildees das telas Essesarquivos de layout satildeo depois inflados e satildeo gerados os componentes visuais da aplicaccedilatildeoEssa estrutura tem como objetivo facilitar o design da interface do usuaacuterio jaacute que arquivosxml satildeo de faacutecil compreensatildeo do desenvolvedor

32 JSONJSON ou Javascript Object Notation eacute um formato de dados amplamente utilizado para

troca de informaccedilotildees entre programas Possui uma notaccedilatildeo simples para grande parte dosprogramadores pois se assemelha a convenccedilotildees utilizadas em linguagens de programaccedilatildeomuito conhecidas como C C++ Python e Java O objetivo eacute que ele seja de faacutecil entendi-mento tanto para pessoas como para maacutequinas[11]

Um arquivo JSON eacute organizado como um objeto contendo pares nomevalorseparadospor viacutergulas e dentro de chaves(lsquolsquo rsquorsquo) ou como um array que eacute uma lista de valores separa-dos por viacutergulas e entre colchetes(lsquo[lsquo rsquo]rsquo) Um valor por sua vez pode ser um objeto ou umarray mas tambeacutem um nuacutemero inteiro ou uma String entre outros

Um exemplo de arquivo JSON eacute

1 2 Carros [3 4 Nome Scen ic 5 Marca Renault 6 Ano 20127 8 9 Nome Sentra

10 Marca Nissan 11 Ano 200912 13 ]14

33 Google APIsAPIs (Application Program Interfaces) satildeo interfaces para facilitar a troca de informa-

ccedilotildees entre aplicaccedilotildees utilizando comandos especiacuteficos[15]

Ao longo do desenvolvimento algumas APIs fornecidas pela Google foram utilizadascomo fonte de informaccedilotildees adicionais para o aplicativo

∙ Google Maps Distance Matrix API Esta API eacute utilizada para obter o tempo emsegundos de trajeto entre dois pontos (latlong) no mapa podem ser consultados ostempos de trajeto de carro bicicleta a peacute e utilizando transporte puacuteblico[28] Esta eacute

18 TECNOLOGIAS UTILIZADAS 35

uma API web logo utiliza-se um request http para realizar uma consulta

Por exemplo o request

httpsmapsgoogleapiscommapsapidistancematrixjsonorigins=Seattleampdestinations=Victoria+BCampkey=[user_key]

retorna o JSON

1 2 des t ina t i on_addre s s e s [ Vic tor ia BC Canada ] 3 o r i g in_addre s s e s [ Sea t t l e WA EUA ] 4 rows [5 6 e lements [7 8 d i s t anc e 9 text 172 km

10 value 17166811 12 durat ion 13 text 4 horas 40 minutos 14 value 1680915 16 s t a tu s OK17 18 ]19 20 ] 21 s t a tu s OK22

no qual eacute possiacutevel obter o tempo de trajeto em segundos

∙ Google Maps Android API Esta API eacute utilizada para habilitar o uso de mapasda Google integrados agrave aplicaccedilatildeo jaacute disponiacutevel com todas as funcionalidades de zoome arrastar presentes no aplicativo nativo permitindo tambeacutem a personalizaccedilatildeo comoa adiccedilatildeo de pontos definidos pelo usuaacuterio ao mapa

34 Localizaccedilatildeo do UsuaacuterioOutro serviccedilo que foi utilizado com o intuito de obter o tempo de trajeto e a lista ordenada

de forma personalizada de restaurantes foi a localizaccedilatildeo do usuaacuterio que eacute obtida atraveacutes doGPS presente nos smartphones Um objeto de localizaccedilatildeo eacute criado e realiza a comunicaccedilatildeocom o serviccedilo de localizaccedilatildeo do aparelho Ao obter a localizaccedilatildeo ele lanccedila um evento quepode ser acessado por outras partes da aplicaccedilatildeo obtendo a localizaccedilatildeo mais atualizada dodispositivo

36 CONTROLE DE VERSAtildeO 19

35 Controle de VersatildeoControle de versatildeo eacute uma praacutetica usada para manter a organizaccedilatildeo do coacutedigo e do seu de-

senvolvimento quando muitos desenvolvedores colaboram conjuntamente Existem softwaresque auxiliam essa organizaccedilatildeo registrando todas as mudanccedilas feitas ao longo do processo eque possui recursos que permitem que vaacuterios usuaacuterios trabalhem nos mesmos arquivos semperda de informaccedilotildees

No caso do Git [8] o projeto fica organizado em uma estrutura de aacutervore onde cadacommit (checkpoints criados pelos membros do grupo durante o processo) eacute marcado porum noacute para onde se pode retornar quando necessaacuterio Existem tambeacutem estruturas chama-das branches que satildeo bifurcaccedilotildees na estrutura para que partes do projeto sejam criadasseparadamente sem interferir com a linha principal As branches depois satildeo unidas agrave linhaprincipal atraveacutes do comando merge

Neste projeto o serviccedilo de controle de versatildeo utilizado foi o Bitbucket [2] (que eacute um ser-viccedilo web-based de controle de versatildeo que utiliza Git) com auxiacutelio do software SourceTree[19]que eacute uma interface graacutefica para os serviccedilos do Bitbucket onde eacute possiacutevel visualizar com maisfacilidade as fases do desenvolvimento do projeto e realizar os comandos mais intuitivamente

Figura 32 Interface do SourceTree que mostra o controle de versionamento do projeto

36 Banco de dadosCom o intuito de deixar o aplicativo mais completo guardando informaccedilotildees dos usuaacuterios

e dos estabelecimentos optou-se por utilizar-se um banco de dados Alguns exemplos de

20 TECNOLOGIAS UTILIZADAS 36

banco de dados aprendidos no curso Laboratoacuterio de Banco de Dados foram

∙ SQL (Structured Query Language - Linguagem de Consulta Estruturada)[20] umalinguagem para atualizar deletar e requisitar informaccedilotildees atraveacutes de consultas emtabelas que possuem relaccedilatildeo entre si

∙ noSQL[13] um banco de dados que armazena e recupera informaccedilotildees modeladas deuma forma onde natildeo satildeo usadas tabelas relacionais

Como este uacuteltimo natildeo foi o foco da disciplina por falta de tempo decidiu-se por utilizaacute-lopara que o grupo pudesse aprender melhor esse modelo

Outra decisatildeo tomada foi a hospedagem dos dados na nuvem ou seja colocaacute-los em umservidor que natildeo seja local e conseguir acessaacute-los atraveacutes de uma conexatildeo via internet Dessemodo os dados sempre estaratildeo disponiacuteveis para serem consultados

361 Firebase

Buscando-se atender as decisotildees tomadas sobre o banco de dados procuramos um serviccedilode banco de dados da Google por conter ampla integraccedilatildeo com a plataforma de desenvolvi-mento Android por ser conhecido bastante utilizado e por possuir uma ampla comunidadede desenvolvedores dispostos a oferecer auxiacutelio em foacuteruns de discussatildeo de coacutedigos

Para atender esses requisitos escolheu-se o Firebase Realtime Database[6] desenvolvido edisponibilizado pela Google que consiste em um banco de dados noSQL com armazenamentona nuvem Esse serviccedilo armazena os dados do usuaacuterio no servidor da Google em formatoJSON e a cada alteraccedilatildeo sincroniza em tempo real com todos os clientes conectados

O grupo pode observar as seguintes vantagens de se trabalhar com a ferramenta existea sincronizaccedilatildeo em tempo real dos dados de todos os clientes e sua disponibilidade mesmocom o aplicativo offline ou seja quando o aplicativo natildeo estiver conectado a internet osdados do dispositivo moacutevel seratildeo armazenados e sincronizados com o banco de dados assimque a conexatildeo estiver disponiacutevel novamente Aleacutem disso os desenvolvedores possuem acessoa um console online (figura 33) onde o JSON eacute mostrado numa interface interativa de umaforma mais amigaacutevel e no qual eacute permitido editaacute-lo facilmente

37 CROWDSOURCING 21

Figura 33 Console online do Firebase onde os dados satildeo mostrados de forma mais amigaacutevel eintuitiva

Outra observaccedilatildeo feita foi que o Firebase Realtime Database funciona como o esperadose ele guardar uma coacutepia local dos dados em um arquivo JSON no celular Poreacutem isso natildeofoi visto como um problema pois como essa coacutepia pode ser salva em um arquivo texto oespaccedilo utilizado diminui consideravelmente

Na primeira vez que os dados satildeo criados e todas as vezes em que os dados forem atua-lizados por algum dispositivo moacutevel eacute enviada uma atualizaccedilatildeo que seraacute recebida atraveacutes delisteners por todos os aparelhos que utilizam o aplicativo para que eles atualizem seus res-pectivos JSONs Listeners satildeo interfaces de comunicaccedilatildeo que executam uma seacuterie de accedilotildeesassim que um outro evento esperado acontece

37 CrowdsourcingO termo Crowdsourcing tem origem nas palavras da liacutengua inglesa Crowd (multidatildeo) e

Outsourcing (terceirizaccedilatildeo) e eacute definido pelo dicionaacuterio Merriam Webster como A praacuteticade obtenccedilatildeo de serviccedilos ideias ou conteuacutedo solicitando contribuiccedilotildees de grandes grupos depessoas e especialmente da comunidade online [3] Esta praacutetica eacute utilizada para que sejapossiacutevel agrave comunidade contribuir com dados para algum programa ou serviccedilo como no apli-cativo Waze do qual a principal fonte de dados de tracircnsito acidentes e radares eacute obtida pormeio dos proacuteprios usuaacuterios

Capiacutetulo 4

Desenvolvimento do Projeto

Este capiacutetulo aborda o processo de desenvolvimento do projeto iniciado com o preen-chimento do diagrama Canvas e uma pesquisa de mercado direcionada ao usuaacuterio A partirdas informaccedilotildees coletadas foi possiacutevel projetar um aplicativo que atendesse as necessidadesexpostas pela pesquisa e selecionar as tecnologias necessaacuterias Tambeacutem eacute abordada a aplica-ccedilatildeo dos diferentes meacutetodos de caacutelculo da previsatildeo de tempo de espera que foram estudadose explicados no Capiacutetulo 2 Por fim satildeo expostas as diferentes versotildees do aplicativo duranteo processo e seus detalhes

41 Pesquisa de MercadoAntes de iniciar-se o desenvolvimento praacutetico algumas questotildees foram levantadas se

um aplicativo com as funcionalidades escolhidas seria de alguma forma uacutetil para o usuaacuterioe se sim qual metodologia deveria ser usada para que este produto fosse entregue o maiscompleto possiacutevel ateacute o final do ano Para responder a primeira pergunta desenvolveu-seum questionaacuterio

411 Pesquisa com o usuaacuterio

O questionaacuterio foi desenvolvido para avaliar a viabilidade do aplicativo e suas funciona-lidades e foi criado utilizando-se o Google Forms [9] Essa eacute uma ferramenta desenvolvidapelo Google que possibilita a criaccedilatildeo de formulaacuterios contendo diversos formatos de pergun-tas tanto dissertativas quanto de muacuteltipla escolha

Seguindo os princiacutepios de desenvolvimento de questionaacuterios [4] o conjunto de perguntasfoi mantido curto simples e de faacutecil entendimento Tambeacutem variou-se o tipo de questotildeesentre estruturadas (questotildees com respostas em forma de alternativas) e desestruturadas(questotildees com respostas em formato texto) seguindo esses mesmos princiacutepios para captarmelhor as informaccedilotildees dos entrevistados e evitar erros de entendimento

Com as respostas do questionaacuterio tinha-se o intuito de traccedilar um possiacutevel puacuteblico alvoconhecer seu modo de uso de dispositivos moacuteveis e validar a aplicabilidade de diferentesfuncionalidades pretendidas inicialmente sendo essas engajamento do usuaacuterio atraveacutes denotificaccedilotildees do sistema aceitaccedilatildeo de sugestotildees de locais alternativos avaliaccedilatildeo da existecircnciado problema que queremos resolver (se este aplicativo supre uma necessidade real do usuaacute-rio) e aceitaccedilatildeo do aplicativo

23

24 DESENVOLVIMENTO DO PROJETO 41

Para a divulgaccedilatildeo redes sociais como Facebook [5] e sistemas de mensagem instantacircneascomo WhatsApp foram usados e o envio de respostas foi restrito ateacute trecircs semanas apoacutes suaprimeira postagem Neste periacuteodo foram obtidas 210 respostas as quais ajudaram a definiros aspectos do sistema a ser desenvolvido

O questionaacuterio foi dividido em duas subseccedilotildees perfil do usuaacuterio e funcionalidade Comelas obteve-se os seguintes resultados

41 PESQUISA DE MERCADO 25

Questatildeo 1

Figura 41 Graacutefico pizza da distribuiccedilatildeo das respostas em relaccedilatildeo a idade dos pesquisados

As faixas de idade apresentadas estatildeo desbalanceadas por natildeo terem a mesma quantidadede anos em cada uma poreacutem essa divisatildeo foi pensada levando-se em conta a fluecircncia comtecnologia que cada idade possui Com o resultado verificou-se que do puacuteblico alcanccediladocom a pesquisa a maioria estaacute na faixa de 18 a 25 anos de idade assumida como parcelacom maior conhecimento tecnoloacutegico

Questatildeo 2

Figura 42 Graacutefico pizza da distribuiccedilatildeo das respostas em relaccedilatildeo ao sistema operacional

Esta questatildeo foi pensada para medir a porcentagem de cada sistema operacional pre-sente nos celulares do puacuteblico Com ela descobriu-se que 639 das pessoas dentro desse

26 DESENVOLVIMENTO DO PROJETO 41

grupo possuem o sistema Android enquanto 234 possuem iOS e 38 Windows phoneEssa pergunta foi incluiacuteda para um melhor direcionamento do desenvolvimento do aplicativo

Uma questatildeo levantada ao aplicar esse questionaacuterio foi a dificuldade que algumas pessoasencontraram para identificar a versatildeo do proacuteprio aparelho Poreacutem para manter a consistecircnciadas respostas decidiu-se natildeo mudar nada nesta questatildeo para remediar isso

Questatildeo 3

Figura 43 Graacutefico em barras da distribuiccedilatildeo de frequecircncias mensais de cada local analisado

41 PESQUISA DE MERCADO 27

Questatildeo 4

Figura 44 Graacutefico em pizza da distribuiccedilatildeo de interesse do usuaacuterio no tempo de espera de cadalocal

A princiacutepio viu-se muitas possiacuteveis aplicaccedilotildees para a previsatildeo de tempo de espera Paraentender qual seria a prioridade do puacuteblico as questotildees acima foram incluiacutedas A primeiraverificou a frequecircncia de visitas em alguns locais e a segunda serviu para analisar qualestabelecimento despertava mais interesse nos entrevistados quanto ao quesito fila Nos doiscasos restaurantes se destacaram com o maior interesse

Questatildeo 5

Figura 45 Graacutefico em barras da distribuiccedilatildeo de interesse do usuaacuterio por cada item avaliado

Para acompanhar o dado de espera e fornecer mais informaccedilotildees relevantes ao usuaacuteriosem potencial perguntou-se quais outras informaccedilotildees eles acham interessante saber sobre umdeterminado estabelecimento Com isso descobriu-se que a faixa de preccedilo o trajeto ateacute olocal e o cardaacutepio seriam dados importantes de se obter juntamente com o tempo de espera

28 DESENVOLVIMENTO DO PROJETO 41

Questatildeo 6O que vocecirc costuma fazer para evitar filasNeste ponto testou-se se a soluccedilatildeo proposta atraveacutes do aplicativo resolveria o problema dousuaacuterio de uma forma melhor do que a soluccedilatildeo atualmente utilizada Para isso foi perguntadoo que as pessoas fazem para evitar filas e as principais respostas foram

∙ Evitar horaacuterios de pico

∙ Chegar cedo

∙ Ir em outro lugar caso uma fila seja encontrada

∙ Tentar realizar reservas antecipadamente

∙ Se distrair com livroscelular

Notou-se que as soluccedilotildees utilizadas atualmente natildeo suprem as necessidades dos entre-vistados pois mesmo em horaacuterios natildeo convencionais pode-se encontrar filas ou quandodecide-se esperar na fila muito tempo eacute perdido Concluiu-se que a soluccedilatildeo proposta a par-tir do aplicativo resolve de forma mais abrangente o problema pois ajuda o usuaacuterio a evitarhoraacuterios de pico inesperados

Questatildeo 7

Figura 46 Graacutefico em pizza da distribuiccedilatildeo do meio de transporte utilizado pelos usuaacuterios

Essa questatildeo foi formulada com o objetivo de verificar quais meios de transporte seriamincluiacutedos com previsatildeo de tempo de trajeto no aplicativo Foi verificado que a maioria dosentrevistados utilizam transporte puacuteblico seguido por carro

41 PESQUISA DE MERCADO 29

Questatildeo 8

Figura 47 Graacutefico em pizza da distribuiccedilatildeo do interesse do usuaacuterio pela informaccedilatildeo fornecida

Questatildeo 9

Figura 48 Graacutefico em pizza da distribuiccedilatildeo de quantidade de quilocircmetros que o usuaacuterio sedeslocaria para ir a um local com menos fila

Com essas questotildees foi verificado que algo importante para o usuaacuterio eacute saber de outrosestabelecimentos que possam oferecer tempos de espera menores nas redondezas de onde ousuaacuterio se encontra que eacute uma das funcionalidades que desejaacutevamos utilizar no sistema

30 DESENVOLVIMENTO DO PROJETO 41

Questatildeo 10

Figura 49 Graacutefico em barras da distribuiccedilatildeo de sentimento do usuaacuterio em relaccedilatildeo a notificaccedilatildeode aplicativos

Questatildeo 11

Figura 410 Graacutefico em pizza da distribuiccedilatildeo de opiniatildeo do usuaacuterio sobre desabilitar notificaccedilotildeesem celular

42 PESQUISA DE MERCADO 31

Questatildeo 12

Figura 411 Graacutefico em pizza da distribuiccedilatildeo de opiniatildeo do usuaacuterio sobre habilitar GPS emcelular

A ideia inicial era poder usar o GPS para verificar a localizaccedilatildeo do usuaacuterio e enviarnotificaccedilotildees quando este estivesse parado nas proximidades de algum dos estabelecimentoscadastrados Para que essa funcionalidade possa existir eacute necessaacuterio que o aplicativo tenhaacesso agrave localizaccedilatildeo precisa da pessoa atraveacutes do GPS ou internet ateacute mesmo quando natildeoestiver aberto Aleacutem disso tambeacutem eacute necessaacuterio que as notificaccedilotildees estejam habilitadas parafinalizar esta interaccedilatildeo Entatildeo as perguntas 10 11 e 12 foram incluiacutedas no questionaacuterio Ob-servando as respostas foi possiacutevel verificar que 295 das pessoas que responderam deixamambas as funcionalidades habilitadas (GPS e notificaccedilotildees) Com isso pudemos prosseguircom essa ideia e tambeacutem pensar em possiacuteveis alternativas de interaccedilatildeo e engajamento como usuaacuterio

Por conta dessa pesquisa ter sido compartilhada atraveacutes das contas das redes sociais ecomunicadores dos componentes deste grupo sabe-se que este pode apresentar um resultadoviesado mas que mesmo assim natildeo deve ser desconsiderado e que muito ajudou a sanar asduacutevidas iniciaisComo resultado traccedilamos o perfil do entrevistado

∙ Faixa etaacuteria predominante entre 18 e 30 anos

∙ Possui sistema operacional Android (versotildees 4 5 e 6)

∙ Vai a restaurantes com certa frequecircncia mensal resultando em interesses sobre infor-maccedilotildees relacionadas a esse estabelecimento

∙ Costuma chegar cedo ou evitar os horaacuterios de pico para evitar filas nos locais

∙ Carro e transporte coletivo satildeo os principais meios de transporte

∙ Se deslocaria para um estabelecimento semelhante que possui menos fila contanto queeste fique num raio de 2km de distacircncia

32 DESENVOLVIMENTO DO PROJETO 43

42 Projeto do AplicativoO grupo comeccedilou o projeto com o preenchimento do diagrama Canvas(figura 412) apre-

sentado na Seccedilatildeo 21 Desse modo foi adquirida uma ideia mais consistente e uma base paracomeccedilar a implementaccedilatildeo

Figura 412 Diagrama Canvas preenchido pelo grupo

Com o modelo de negoacutecios definido e com base no resultado da pesquisa com o usuaacuterioapresentada na seccedilatildeo seguinte foram aplicadas pequenas mudanccedilas no projeto para melhoradequar-se agraves necessidades e ao perfil do puacuteblico alvo

Para o desenvolvimento foi utilizado um meacutetodo aacutegil baseado no scrum com sprints de3 a 4 semanas devido agrave disponibilidade dos membros do grupo Os encontros natildeo eram diaacute-rios como recomendado para o meacutetodo scrum tambeacutem em razatildeo da disponibilidade Haviamstand ups (discussotildees raacutepidas no comeccedilo de cada encontro) e retrospectivas ao final de cadasprint A cada sprint eram selecionadas histoacuterias e tarefas para serem executadas e caso natildeofossem concluiacutedas ao final da iteraccedilatildeo eram inseridas ao backlog e feitas no sprint seguinte

43 Aplicaccedilatildeo dos meacutetodos de caacutelculo de espera

431 Aplicando a meacutedia por periacuteodo

Aplicando-se no trecho abaixo a teacutecnica desenvolvida na Seccedilatildeo 242 para uma queryrealizada no dia 19082016 no intervalo de 2040 - 2055 analisa-se a semana anterior quepossua tais intervalos Assim o saacutebado dia 06082016 seraacute selecionado

43 APLICACcedilAtildeO DOS MEacuteTODOS DE CAacuteLCULO DE ESPERA 33

Entrada Qtd Pessoas Notificado Espera

6816 2043 2 862016 2053 1606

6816 2044 2 862016 2055 674

6816 2048 2 862016 2056 528

6816 2048 2 862016 2057 520

6816 2051 2 862016 2107 1118

6816 2051 3 862016 2110 1305

6816 2052 2 862016 2110 1273

6816 2052 2 862016 2111 1179

6816 2053 2 862016 2112 1217

6816 2053 2 NULL 59

6816 2054 3 862016 2119 1541

6816 2055 2 862016 2117 1444

6816 2055 2 862016 2120 1570

6816 2055 2 862016 2122 1613

Tabela 41 Trecho do dia 06082016 entre os horaacuterios das 2043 agraves 2055 um intervalo de 12minutos retirado dos dados da empresa Get In

Com esses dados obteve-se a meacutedia de espera de 1080 segundos (18 minutos) a qualseria sugerida para o usuaacuterio com a busca e desvio padratildeo de 465144719 segundos (775 mi-nutos) Dentro desse intervalo tem-se como maacuteximo tempo de espera 1613 segundos (2688minutos) e como miacutenimo 59 segundos (1 minuto) Analisando-se os dados do dia 19082016no mesmo periacuteodo temos

34 DESENVOLVIMENTO DO PROJETO 43

Entrada Pessoas Notificado Espera Erro previsatildeo Erro p 2 pessoas

19816 2043 2 8192016 2051 544 -563 522

19816 2043 2 8192016 2052 605 -502 461

19816 2044 2 8192016 2056 723 -384 343

19816 2046 4 8192016 2119 1988 881 X

19816 2048 2 8192016 2102 919 188 147

19816 2051 2 8192016 2103 821 286 245

19816 2051 3 8192016 2108 1773 666 X

19816 2053 2 8192016 2110 1083 24 -17

19816 2053 2 8192016 2111 1105 2 -39

19816 2053 2 8192016 2112 1169 62 -103

19816 2055 2 8192016 2114 1447 340 -381

Tabela 42 Trecho do dia 19082016 entre os horaacuterios das 2043 agraves 2055um intervalo de 12minutos retirado dos dados da empresa Get In

Ou seja se um grupo chegasse dentro desse periacuteodo e a previsatildeo dada fosse a meacutediaobtida anteriormente o erro calculado pela diferenccedila entre o tempo sugerido e o real tempode espera estaria no intervalo de 15 minutos para menos ou 8 minutos para mais Sendoesse um valor aceitaacutevel

Um proacuteximo passo eacute a restriccedilatildeo dos registros a grupos com 2 integrantes Com tal restri-ccedilatildeo a previsatildeo de espera eacute de 1066 segundos (1776 minutos) Aplicando essa nova meacutedia aosregistros com 2 integrantes do dia 19082016 obteacutem-se um erro (Coluna 6 - erro previsatildeopara 2 pessoas) menor do que o anterior O intervalo do erro calculado neste caso seria de 522segundos (87 minutos) para mais e 381 segundos (635 minutos) para menos Este resultadoeacute ainda mais favoraacutevel mostrando que a inclusatildeo de mais filtros para o caacutelculo da previsatildeomelhorou o tempo previsto

432 Aplicando teoria das filas

A teoria das filas (Seccedilatildeo 242) eacute uma ferramenta muito completa que calcula muitos dadosuacuteteis para a previsatildeo de espera Contudo por conta da necessidade de informaccedilotildees sobreo tempo de atendimento a qual natildeo estaacute contida no banco utilizado esta teoria natildeo podeser aplicada neste caso Poreacutem esse dado pode ter um valor assumido para que a utilizaccedilatildeodessa teoria fosse possiacutevel entretanto a sua precisatildeo ficaria comprometida e imprevisiacutevel

433 Aplicando redes neurais

Para aplicar o que foi estudado na Seccedilatildeo 242 foi executado o software com o mecircs deAgosto como teste o mecircs de Setembro como treino e o limite do erro quadraacutetico como 001 eobteve-se a tabela presente no apecircndice B Na tabela podemos ver o tempo de fila esperadoou seja o tempo contido na tabela do mecircs de Setembro o tempo que o algoritmo deu comoresposta baseado no mecircs de Agosto e o erro entre eles respectivamente

44 DEFINICcedilAtildeO DA INTERFACE DO APLICATIVO 35

Figura 413 Software Multiple Back-Propagation com a configuraccedilatildeo escolhida para os dadosdisponiacuteveis

Mesmo o erro se mantendo em 0018 os dados obtidos possuem um erro padratildeo de 15minutos Se mais dados forem adicionados o criteacuterio de parada pode ser atingido e assimuma previsatildeo melhor pode ser alcanccedilada

434 Conclusatildeo sobre os meacutetodos estudados

Dentre todas as possibilidades estudadas visualizamos na meacutedia por periacuteodo a melhoropccedilatildeo assumindo os dados disponiacuteveis para teste Se mais paracircmetros fossem fornecidoscomo o tempo de atendimento a teoria das filas seria uma boa opccedilatildeo para fornecer a pre-visatildeo de espera E se mais dados estivessem disponiacuteveis as redes neurais conseguiriam umaaproximaccedilatildeo melhor e assim seria uma boa opccedilatildeo tambeacutem

44 Definiccedilatildeo da Interface do aplicativoComo um primeiro protoacutetipo foi desenvolvida uma interface simples que tinha como tela

de iniacutecio um mapa com um campo para buscas na parte superior

36 DESENVOLVIMENTO DO PROJETO 44

Figura 414 Fluxo de telas do primeiro protoacutetipo

Ao efetuar uma busca por algum estabelecimento uma tela mostrando o tempo de esperaaproximado da fila no local era exibida junto com bototildees que permitiam selecionar o meiode transporte visualizar outras opccedilotildees ou dar iniacutecio a rota ateacute o local desejado Tambeacutemhavia uma notificaccedilatildeo para quando a pessoa estivesse parada proacutexima a um restaurantecadastrado que direcionaria o usuaacuterio a uma tela com um cronocircmetro do tempo de esperana fila

Para testar essa visualizaccedilatildeo escolhemos algumas pessoas e realizamos um teste deusabilidade[22] este teste eacute feito da seguinte forma

44 DEFINICcedilAtildeO DA INTERFACE DO APLICATIVO 37

Uma contextualizaccedilatildeo eacute feita para o voluntaacuterio e entatildeo uma tarefa eacute passada para sercompletada Os integrantes do grupo observam dificuldades enfrentadas pelo entrevistado etomam notas Esse teste eacute repetido algumas vezes e seu resultado eacute coletado para avaliaccedilatildeoe modificaccedilatildeo das funcionalidades

Figura 415 Tela de detalhes de um restaurante(segunda versatildeo)

Notou-se que algumas funcionalidadespareceram confusas e natildeo intuitivas porexemplo natildeo ficou claro se o tempo mos-trado era de trajeto ou de espera na filanem qual era o meio de transporte utili-zado

Logo esse protoacutetipo foi reformuladocom o intuito de melhorar a experi-ecircncia do usuaacuterio com o nosso aplica-tivo

Foram colocados aleacutem do tempo deespera da fila o tempo que o usuaacuteriolevaria para chegar ateacute o local selecio-nado (conforme o tipo de transporte es-colhido) e a quantidade estimada de pes-soas na fila O tempo total (espera so-mado ao tempo de deslocamento) ga-nhou destaque entre as informaccedilotildees doestabelecimento e o botatildeo que direcionao usuaacuterio ao trajeto ficou mais especiacute-fico

Tambeacutem cogitou-se a possibilidade deadicionar login e um perfil de usuaacuteriojunto com uma lista de restaurantes favo-ritos

O fluxo das telas deste novo protoacutetipo ficou como mostra o esquema a seguir

38 DESENVOLVIMENTO DO PROJETO 44

Figura 416 Fluxo de telas do segundo protoacutetipo

44 DEFINICcedilAtildeO DA INTERFACE DO APLICATIVO 39

Figura 417 Tela de detalhes de um restaurante(terceira versatildeo)

Apoacutes outras avaliaccedilotildees mais algumaspequenas alteraccedilotildees foram realizadas nainterface Foi decidido que seria inviaacute-vel estimar o nuacutemero de pessoas nafila entatildeo essa funcionalidade foi remo-vida

Notificaccedilotildees foram adicionadas paraquando o usuaacuterio estiver parado na aacutereado restaurante para que ele possa con-tribuir com informaccedilotildees sobre a fila quepegou aleacutem de um botatildeo de contri-buiccedilatildeo ter sido inserido na tela ini-cial

40 DESENVOLVIMENTO DO PROJETO 45

O fluxo de telas do aplicativo atual ficou da seguinte forma

Figura 418 Fluxo de telas do terceiro protoacutetipo

46 EXPLICACcedilAtildeO DAS FUNCIONALIDADES 41

45 Explicaccedilatildeo das funcionalidadesEsta seccedilatildeo explica as funcionalidades do produto utilizando a figura 418

A tela inicial (3) exibe uma lista de restaurantes incluindo seus respectivos tempos detrajeto e tempo de espera na fila Ao clicar no botatildeo ldquo+rdquo uma caixa de diaacutelogo eacute aberta(4) onde eacute possiacutevel adicionar o tempo que o usuaacuterio esperou na fila Primeiro eacute escolhido orestaurante depois a data e hora que a pessoa chegou na fila e por fim o tempo de esperaem minutos Ao tocar em ldquoEnviar Feedback rdquo os dados satildeo incluiacutedos no banco de dados eatualizados para os outros usuaacuterios Assim eacute apicado o conceito de Crowdsourcing no apli-cativo

Ao tocar em um item da lista de restaurantes seraacute aberta a tela de detalhes de um res-taurante (5) na qual eacute possiacutevel ver com mais clareza os tempos de trajeto e espera o tempototal o endereccedilo do estabelecimento e um pequeno mapa centrado no local Pressionandoo botatildeo ldquoDireccedilotildeesrdquo o usuaacuterio seraacute redirecionado ao aplicativo de mapas de sua preferecircnciano caso do exemplo (8) o Google Maps jaacute traccedilando a rota da localizaccedilatildeo do usuaacuterio para oestabelecimento em questatildeo

Novamente na tela inicial tocando no iacutecone de lupa eacute possiacutevel realizar uma busca digi-tando o nome do estabelecimento na caixa de texto a qual exibe sugestotildees dependendo doque foi digitado Ao clicar em um dos resultados da busca o usuaacuterio eacute novamente direcionadopara a tela de detalhes do restaurante (5)

Tambeacutem eacute possiacutevel tocar no iacutecone de mapa na tela inicial onde seraacute mostrado um mapacentrado na localizaccedilatildeo do usuaacuterio

Ao ficar parado por um tempo em um mesmo local proacuteximo a um estabelecimentocadastrado o usuaacuterio eacute perguntado em uma notificaccedilatildeo quanto tempo ele permaneceu nafila Ao tocar na notificaccedilatildeo a caixa de diaacutelogo para feedback do usuaacuterio seraacute aberta (4) jaacutecom o restaurante preenchido e apoacutes o feedback a janela seraacute fechada e os dados enviadosao banco de dados

46 Implementaccedilatildeo do banco de dadosO banco de dados do aplicativo foi modelado e populado em forma de aacutervore (Fi-

gura 419) de forma a facilitar o acesso aos dados necessaacuterios ao aplicativo No primeironiacutevel estatildeo os ids dos restaurantes Cada id de restaurante guarda a localizaccedilatildeo (latitudelongitude) do restaurante o nome o endereccedilo e um objeto fila O objeto fila guarda todos osdias da semana (domingo a saacutebado) e cada dia da semana possui 24 campos um para cadahora do dia Cada hora possui o tempo meacutedio de espera da fila naquela hora e um peso paraesse tempo O peso eacute um valor que aumenta de acordo com o nuacutemero de feedbacks dadospara que o novo valor do tempo meacutedio seja calculado de forma consistente

Modelamos o banco de dados de uma forma que respeitasse uma hierarquia de dados

42 DESENVOLVIMENTO DO PROJETO 46

Figura 419 Aacutervore que ilustra a organizaccedilatildeo de um restaurante no banco de dados

Com o banco de dados jaacute populado o aplicativo faz consultas e atualizaccedilotildees de dadosConsultas satildeo feitas ao criar a tela de listagem de restaurantes e de detalhes de um restau-rante consultado As atualizaccedilotildees satildeo feitas quando o usuaacuterio manda o feedback de tempo deespera em um estabelecimento em determinado horaacuterio o aplicativo calcula a nova meacutedia eatualiza o campo do respectivo horaacuterio

Capiacutetulo 5

Conclusatildeo

Ao longo dos capiacutetulos deste trabalho pocircde-se acompanhar todo o processo de criaccedilatildeo edesenvolvimento do aplicativo que apoacutes finalizado foi batizado com o nome Queue

Comeccedilando com um problema para o qual o grupo almejava oferecer uma soluccedilatildeoacabou-se por adentrar-se um pouco no campo da Estatiacutestica e estudar diversas metodo-logias que poderiam ser uacuteteis para fornecer um caacutelculo de previsatildeo de espera meacutedia porperiacuteodo aplicaccedilatildeo da teoria das filas e utilizaccedilatildeo de redes neurais

Atraveacutes de uma parceria com a empresa GetIn obteve-se acesso a uma grande quantidadede dados e foi possiacutevel utilizaacute-los em anaacutelises feitas nas metodologias escolhidas conseguindoassim resultados relevantes Por meio destes foi feita a escolha de um dos meacutetodos para ocaacutelculo da previsatildeo de filas a meacutedia por periacuteodo

Aleacutem desses estudos ao longo do ano o grupo aprendeu a desenvolver para a plata-forma Android sobre a qual nenhum dos integrantes tinha conhecimento preacutevio Tambeacutemfoi possiacutevel aprender e utilizar a metodologia aacutegil com Scrum para guiar o processo de de-senvolvimento

Ao fim do ciclo de desenvolvimento conseguiu-se entregar um aplicativo em funciona-mento que fornece a previsatildeo de espera no instante da consulta de estabelecimentos cadas-trados no banco de dados armazenado na nuvem

Na versatildeo atual do aplicativo natildeo foi implementado um sistema para o cadastro de novosestabelecimentos Isso soacute eacute possiacutevel atraveacutes da inserccedilatildeo direta no banco de dados atraveacutes dainterface fornecida pelo console do Firebase Atualmente estatildeo cadastrados 5 restaurantesos quais foram visitados durante o desenvolvimento do projeto Para que o cadastro deestabelecimentos escale seria necessaacuterio a implementaccedilatildeo de uma funcionalidade que permitaao usuaacuterio adicionar novos estabelecimentos a partir de locais disponiacuteveis na API de locaisda Google

43

45

46 APEcircNDICE A

Apecircndice A

Dados coletados

Figura A1 Dados de tempo de espera para grupos de tamanhos variados para cada horaacuterio e emcada dia da semana obtidos em entrevista em restaurantes Outback Steakhouse Shopping Uniatildeo nomecircs de outubro

Referecircncias Bibliograacuteficas

[1] Backpropagation httpmbpsourceforgenet Accesso em Janeiro 2017 14

[2] Bitbucket httpsbitbucketorgproduct Accesso em Dezembro 2016 19

[3] Crowdsourcing httpswwwmerriam-webstercomdictionarycrowdsourcing Ac-cesso em Novembro 2016 21

[4] Designing a survey httpwwwsciencebuddiesorgscience-fair-projectsproject_ideasSoc_surveyshtml Accesso em Outubro 2016 4 23

[5] Facebook httpswwwfacebookcom Accesso em Novembro 2016 24

[6] Firebase httpsfirebasegooglecom Accesso em Agosto 2016 20

[7] Getin app httpswwwgetinappcombrhomesao-paulo Accesso em Novembro2016 9

[8] Git 11 primeiros passos - sobre controle de versatildeo httpsgit-scmcombookpt-brv1Primeiros-passos-Sobre-Controle-de-Vers Accesso em Novembro 2016 19

[9] Google forms httpsdocsgooglecomforms Accesso em Novembro 2016 23

[10] Guia definitivo do project model canvas Project Builder 3

[11] Jsonorg introducing json httpwwwjsonorg Accesso em Novembro 2016 17

[12] Manifesto para desenvolvimento Aacutegil de software httpagilemanifestoorgisoptbrmanifestohtml Accesso em Novembro 2016 5

[13] Nosql httpsenwikipediaorgwikiNoSQL Accesso em Novembro 2016 20

[14] Outback steakhouse httpswwwoutbackcombrhome Accesso em Novembro 20169

[15] Restful api development with lumen microframework httpsbelitsoftcomlaravel-development-servicesapi-development Accesso em Novembro 2016 17

[16] Scrum httpswwwatlassiancomagilescrum Accesso em Novembro 2016 5

[17] Smartphone os market share 2016 q2 httpwwwidccomprodservsmartphone-os-market-sharejsp Accesso em Novembro 2016 15

[18] Smartphone os sales market share kantar worldpanel comtech httpwwwkantarworldpanelcomsmartphone-os-market-share Accesso em Novembro 2016 15

[19] Sourcetree httpswwwsourcetreeappcom Accesso em Dezembro 2016 19

47

48 REFEREcircNCIAS BIBLIOGRAacuteFICAS

[20] Sql httpsptkhanacademyorgcomputingcomputer-programmingsql Accesso emDezembro 2016 20

[21] Trello httpstrellocom Accesso em Novembro 2016 6

[22] Usability test httpsenwikipediaorgwikiUsability_testing Accesso em Novembro2016 36

[23] Versionone 2012 agile dev survey httpswwwversiononecompdf7th-Annual-State-of-Agile-Development-Surveypdf Accesso em Novembro 2016 5

[24] Waze httpswwwwazecom Accesso em Novembro 2016 1

[25] What is an open source httpsopensourcecomresourceswhat-open-source Accessoem Novembro 2016 15

[26] Xml tutorial httpwwww3schoolscomxml Accesso em Novembro 2016 17

[27] Paulo F Cabral dos Anjos Jr Aron Ifanger Maciel Christopher Silva de Paacutedua Com-posiccedilatildeo de carteiras de accedilotildees utilizando modelo de redes neurais artificiais e modelo derisco e retorno de Markowitz 2012 14

[28] Google Distance matrix api documentation httpsdevelopersgooglecommapsdocumentationdistance-matrix Accesso em Novembro 2016 17

[29] Alan Klement Designing features using job stories httpsblogintercomcomusing-job-stories-design-features-ui-ux Accesso em Novembro 2016 6

[30] Azmat Nafees Queuing theory and its application analysis of the sales checkout opera-tion in ica supermarket httpwwwstatisticsduseessaysD07ENafeespdf Accessoem Novembro 2016 12

[31] Eric Ries A Startup Enxuta Lua de papel primeira ediccedilatildeo edition 2012 3

  • Introduccedilatildeo
    • Motivaccedilatildeo
    • Trabalho Proposto
    • Estrutura da monografia
      • Estudos Preliminares
        • Desenvolvimento de Startups
          • Desenvolvimento de Questionaacuterios
            • Metodologia Aacutegil
            • Jobs to be done
            • Caacutelculo da previsatildeo do tempo de espera na fila
              • Descriccedilatildeo do problema
              • Meacutetodos de caacutelculo da espera
                  • Tecnologias utilizadas
                    • O sistema Android
                      • Organizaccedilatildeo de uma aplicaccedilatildeo Android
                        • JSON
                        • Google APIs
                        • Localizaccedilatildeo do Usuaacuterio
                        • Controle de Versatildeo
                        • Banco de dados
                          • Firebase
                            • Crowdsourcing
                              • Desenvolvimento do Projeto
                                • Pesquisa de Mercado
                                  • Pesquisa com o usuaacuterio
                                    • Projeto do Aplicativo
                                    • Aplicaccedilatildeo dos meacutetodos de caacutelculo de espera
                                      • Aplicando a meacutedia por periacuteodo
                                      • Aplicando teoria das filas
                                      • Aplicando redes neurais
                                      • Conclusatildeo sobre os meacutetodos estudados
                                        • Definiccedilatildeo da Interface do aplicativo
                                        • Explicaccedilatildeo das funcionalidades
                                        • Implementaccedilatildeo do banco de dados
                                          • Conclusatildeo
                                          • Dados coletados
                                          • Referecircncias Bibliograacuteficas

24 CAacuteLCULO DA PREVISAtildeO DO TEMPO DE ESPERA NA FILA 11

Primeiro meacutetodo Meacutedia por periacuteodo

Figura 26 Esquema do meacutetodo meacutedia por periacuteodo

Para que uma previsatildeo de espera possa ser fornecida ao usuaacuterio essa deve basear-seobrigatoriamente em alguma informaccedilatildeo preacutevia Contudo encontrar uma fonte para taisdados se mostrou uma tarefa muito complicada Para conseguir ainda assim apresentar umtempo de espera em fila meacutetodos de anaacutelise foram definidos de acordo com a quantidade dedados disponiacutevel para cada estabelecimento

De um modo geral neste modelo o caacutelculo do tempo de espera funcionaraacute da seguinteforma calcular-se-aacute a meacutedia de espera para o dia da semana e horaacuterio requeridos pelousuaacuterio sem diferenciar feriados de dias normais Dependendo de quatildeo longo eacute o histoacutericoniacuteveis de especificidade podem ser adicionados ou seja numa busca tempo de espera em 9de Dezembro (segunda-feira) agraves 19h no restaurante X a query selecionaraacute todos os registrosfeitos no dia 9 de dezembro entre as 19h e agraves 20h dos uacuteltimos anos no restaurante X e realizaraacuteessa meacutedia ou pode selecionar apenas linhas de todas as segundas-feiras do mecircs de Dezembrodeste mesmo periacuteodo

∙ Muitos dados neste caso um maior niacutevel de especificidade pode ser aplicado sem autilizaccedilatildeo de outras fontes para complementar o banco de dados

∙ Alguns dados o niacutevel de especificidade eacute bem menor apenas filtrando por dia dasemana e intervalo de hora sem mecircs ou dia especiacutefico no ano Em alguns casos aquantidade de dados eacute tatildeo pequena que deve-se recorrer a outras fontes A Googletem disponibilizado graacuteficos com a distribuiccedilatildeo dos clientes nos horaacuterios de funciona-mento de estabelecimentos Esses dados natildeo estatildeo disponiacuteveis em sua API ou seja natildeo

12 ESTUDOS PRELIMINARES 24

haacute uma forma automaacutetica para que o aproveitamento desses possa ser feito Poreacutemmesmo omitindo-se os valores do graacutefico o perfil da distribuiccedilatildeo e o horaacuterio de picosatildeo aproveitados manualmente para nosso sistema

∙ Poucos dados para este caso fizemos o balanceamento dos dados da Google comas informaccedilotildees retiradas das entrevistas Aleacutem do aproveitamento das informaccedilotildees daGoogle foram realizadas pesquisas com funcionaacuterios dos restaurantes

Segundo meacutetodo Teoria das filas

Filas podem ser vistas como um sistema dinacircmico no qual existe um conjunto de usuaacuteriosque satildeo atendidos por um conjunto de atendentes de acordo com a ordem de chegada dosusuaacuterios A teoria de filas busca utilizando anaacutelises matemaacuteticas estudar o comportamentodestas filas para estimar o tempo de espera com base em um conjunto inicial de dadospreviamente fornecido[30]

Um sistema de filas possui como caracteriacutesticas

∙ Modelo de chegada dos usuaacuterios Utiliza como base o tempo entre as chegadasdos usuaacuterios

∙ Modelo de serviccedilo (atendimento aos usuaacuterios) Utiliza como base o tempo gastono atendimento ao usuaacuterio No caso dos restaurantes equivale ao tempo que um grupopassa na mesa ateacute a sua saiacuteda

∙ Nuacutemero de servidores Eacute o nuacutemero de atendentes disponiacuteveis no sistema Para omodelo do restaurante este equivale agraves mesas disponiacuteveis no salatildeo

∙ Capacidade do sistema Eacute o nuacutemero de usuaacuterios que o sistema eacute capaz de atenderInclui o nuacutemero de usuaacuterios que estatildeo sendo atendidos somado com os que esperamna fila Se este paracircmetro natildeo for informado o sistema eacute considerado com capacidadeilimitada

∙ Tamanho da populaccedilatildeo nuacutemero potencial de clientes que podem chegar a umsistema Pode ser finito ou infinito

∙ Disciplina da fila A disciplina da fila pode ser FIFO (first in first out) - o primeiroa chegar eacute o primeiro a ser atendido LIFO (last in first out) - o uacuteltimo a chegar eacuteo primeiro a ser atendido ALEATOacuteRIO - os atendimentos satildeo feitos sem qualquerpreocupaccedilatildeo com a ordem de chegada COM PRIORIDADE - os atendimentos satildeofeitos de acordo com prioridades estabelecidas No caso dos restaurantes a disciplinaadotada eacute a FIFO poreacutem esta pode mudar de acordo com o atendente responsaacutevel

Os tempos mencionados nos modelos de chegada e de serviccedilo podem ser constantesquando os intervalos entre as chegadas dos usuaacuterios satildeo iguais ou variaacuteveis quando os valo-res desses intervalos variam Nesse uacuteltimo caso o intervalo de tempo segue uma distribuiccedilatildeode probabilidades Nesse modelo tambeacutem existe a taxa meacutedia de chegada dos usuaacuterios porunidade de tempo ou seja quantos usuaacuterios chegam em uma hora

As filas podem ser moldadas em trecircs situaccedilotildees baacutesicas como descrito por Azmat Nafees[30]

∙ Modelo de fila de canal uacutenico com fila uacutenica e atendimento uacutenico (Figura 27)

24 CAacuteLCULO DA PREVISAtildeO DO TEMPO DE ESPERA NA FILA 13

∙ Modelo de fila de canal uacutenico com fila uacutenica e muacuteltiplos atendimentos paralelos (Fi-gura 28)

∙ Modelo de fila de canal uacutenico com muacuteltiplas filas e muacuteltiplos atendimentos paralelos(Figura 29)

Figura 27 Modelo de fila de canal uacutenico com fila uacutenica e atendimento uacutenico

Figura 28 Modelo de fila de canal uacutenico com fila uacutenica e muacuteltiplos atendimentos paralelos

Figura 29 Modelo de fila de canal uacutenico com muacuteltiplas filas e muacuteltiplos atendimentos paralelos

Tambeacutem por Azmat Nafees nesses modelos trecircs subprocessos podem ser vistos

∙ Processo de chegada Eacute um processo contiacutenuo do evento ldquochegada de clientesrdquo ouseja quando o evento ocorre o processo aguarda a ocorrecircncia do proacuteximo evento Esseevento coloca um cliente na fila quando ele chega

14 ESTUDOS PRELIMINARES 24

∙ Processo de espera Eacute um processo que inclui o evento ldquocomece a servir o proacuteximocliente da filardquo que retira um cliente da fila o coloca no processo de atendimento eespera a conclusatildeo do evento ldquocliente servidordquo para recomeccedilar Nele se trabalha comtamanho e disciplina da fila

∙ Processo de atendimento Eacute um processo que inclui o evento ldquocliente servidordquo eespera a conclusatildeo do evento ldquocomece a servir o proacuteximo cliente da filardquo para recomeccedilarNele se trabalha com tipo taxa e tempo de atendimento

Dentre esses 3 modelos o que mais se encaixa na situaccedilatildeo de um restaurante eacute o segundomodelo canal uacutenico com fila uacutenica e muacuteltiplos atendimentos paralelos O processo de chegadade novos clientes na fila eacute tido como aleatoacuterio

Terceiro meacutetodo Rede Neural

Rede Neural eacute uma teacutecnica computacional inspirada no sistema nervoso que com o auxiacute-lio de um modelo matemaacutetico apresenta respostas para problemas de decisatildeo Esses modelosfuncionam da seguinte forma primeiro um conjunto de dados (conjunto de treinamento) eacuteapresentado ao sistema e este aprende com ele atraveacutes de reconhecimento de padratildeo entatildeocoloca-se o sistema para analisar os dados (conjunto de teste) para os quais deseja-se obteralgum resultado Este processo eacute chamado de aprendizagem de maacutequina Quanto melhor forseu treinamento mais precisas seratildeo as respostas para o segundo conjunto

Uma rede neural eacute formada por subestruturas chamadas neurocircnios Um neurocircnio tem oseguinte funcionamento ele recebe como entrada sinais cada sinal recebe um peso de acordocom a influecircncia dele na saiacuteda e uma soma eacute feita para produzir o niacutevel de atividade entatildeodependendo se o niacutevel de atividade exceder o limite dado pela funccedilatildeo de transferecircncia aresposta eacute produzida[27]

Software Multiple Back-Propagation

Para implementar a soluccedilatildeo baseada em redes neurais foi usado o Software MultipleBack-Propagation [1] Este eacute um software de faacutecil utilizaccedilatildeo que fornece uma rede a qualaprende atraveacutes do processo de propagaccedilatildeo inversa Esse meacutetodo baseia-se na comparaccedilatildeodos dados esperados (conjunto de teste) com os dados obtidos a partir do treinamento senecessaacuterio adaptaccedilotildees satildeo feitas a estrutura da rede para melhor aproximar aos dados doconjunto teste e isso eacute chamado de propagaccedilatildeo inversa

Por se tratar de um meacutetodo de aprendizagem de maacutequinas para se obter um resultadodeve-se treinar o algoritmo Primeiramente submete-se o conjunto de treinamento ao soft-ware para isso foi escolhido o mecircs de Agosto O criteacuterio de parada para o treino eacute o erroquadraacutetico meacutedio o qual teve seu valor atribuiacutedo para 001

Capiacutetulo 3

Tecnologias utilizadas

31 O sistema AndroidAndroid eacute um Sistema operacional open source (software de coacutedigo aberto o qual as

pessoas podem acessar e modificar para contribuir com o projeto [25]) e para dispositivosmoacuteveis desenvolvido pela Google baseado no Kernel do Linux e utilizado principalmente emdispositivos touchscreen Atualmente o Android eacute o sistema operacional que deteacutem a maiorparcela do mercado[17] com 836 dos dispositivos contra 134 do iOS da Apple

A Google tambeacutem oferece um ambiente de desenvolvimento para a plataforma Androidchamado Android Studio no qual os aplicativos satildeo criados e exportados para os dispositi-vos moacuteveis Aplicativos Android satildeo programados na linguagem Java com vaacuterias bibliotecasdisponibilizadas pela Google para suporte ao sistema operacional

A escolha da plataforma foi feita principalmente por conta de o sistema possuir a maiorparte dos usuaacuterios de Smartphones e tambeacutem pela ampla comunidade ativa de desenvolve-dores agrave qual se pode recorrer em casos de duacutevidas e problemas tornando suas resoluccedilotildeesmais raacutepidas e com muacuteltiplas alternativas Outros motivos que contribuiacuteram para a escolhado Android foram

∙ A disponibilidade do ambiente de desenvolvimento Android Studio que possui todosos recursos necessaacuterios para desenvolver um aplicativo funcional logo apoacutes a instalaccedilatildeosem a necessidade de utilizar outras dependecircncias as quais satildeo gerenciadas automati-camente pelo proacuteprio software

∙ O fato de no mercado brasileiro o sistema Android se encontrar em 918 dos dispo-sitivos segundo pesquisa da Kantar[18] e dado a pesquisa realizada para definiccedilatildeo depuacuteblico alvo onde foi possiacutevel perceber que 639 dos entrevistados utilizam smartpho-nes com sistema Android

∙ A utilizaccedilatildeo da linguagem de programaccedilatildeo Java para desenvolvimento que jaacute eraconhecida e fora utilizada anteriormente ao contraacuterio das linguagens Objective C eSwift linguagens utilizadas para desenvolver aplicativos para o sistema iOS Assimcomo a disponibilidade de dispositivos por parte do grupo que em sua maioria era decelulares com o sistema Android

15

16 TECNOLOGIAS UTILIZADAS 31

Figura 31 Parcela de mercado dos dispositivos no Brasil

311 Organizaccedilatildeo de uma aplicaccedilatildeo Android

Aplicativos Android satildeo divididos em componentes Haacute quatro tipos de componentespresentes Activities (ou atividades) Services (ou serviccedilos) Content providers (ou provedoresde conteuacutedo) Broadcast receivers (ou receptores de transmissatildeo)

∙ Activities Satildeo as telas e interfaces do usuaacuterio Cada tela de uma aplicaccedilatildeo eacute repre-sentada por uma activity e cada activity eacute independente de outras apesar de seremcomponentes de uma mesma aplicaccedilatildeo Isso se daacute pelo fato de haver a possibilidade deutilizar activities de aplicativos durante a execuccedilatildeo de outros Atividades satildeo iniciadase se comunicam entre si atraveacutes de objetos chamados Intent que transferem um pacotede dados que pode ser carregado no iniacutecio da nova atividade

∙ Services Sempre satildeo executados em segundo plano sem interferir na experiecircncia dousuaacuterio geralmente para realizar operaccedilotildees longas ou realizar operaccedilotildees de troca dedados enquanto o usuaacuterio estaacute utilizando outra aplicaccedilatildeo em primeiro plano

∙ Content Providers Satildeo gerenciadores de dados de aplicaccedilotildees Android utilizadospara ler e salvar dados compartilhados ou secretos dos aplicativos e do sistema

∙ Broadcast Receivers Satildeo componentes responsaacuteveis por obter eventos que aconte-ceram em outras aplicaccedilotildees ou no sistema e direcionar dados sobre esses eventos paraeventuais aplicaccedilotildees que necessitem destes dados alguns exemplos de eventos obtidospelos receptores de transmissatildeo satildeo tela desligada e bateria fraca

Aleacutem dos componentes uma parte importante de uma aplicaccedilatildeo Android eacute o ArquivoManifest que eacute uma declaraccedilatildeo de permissotildees serviccedilos e exigecircncias de hardware necessaacuterios

33 JSON 17

para o funcionamento do aplicativo Outra funccedilatildeo eacute possuir declaraccedilotildees de todos os compo-nentes utilizados no projeto nomes iacutecones entre outros

As interfaces de usuaacuterio do Android satildeo definidas em arquivos XML (eXtensible MarkupLanguage)[26] nos quais estatildeo declarados todos os layouts e configuraccedilotildees das telas Essesarquivos de layout satildeo depois inflados e satildeo gerados os componentes visuais da aplicaccedilatildeoEssa estrutura tem como objetivo facilitar o design da interface do usuaacuterio jaacute que arquivosxml satildeo de faacutecil compreensatildeo do desenvolvedor

32 JSONJSON ou Javascript Object Notation eacute um formato de dados amplamente utilizado para

troca de informaccedilotildees entre programas Possui uma notaccedilatildeo simples para grande parte dosprogramadores pois se assemelha a convenccedilotildees utilizadas em linguagens de programaccedilatildeomuito conhecidas como C C++ Python e Java O objetivo eacute que ele seja de faacutecil entendi-mento tanto para pessoas como para maacutequinas[11]

Um arquivo JSON eacute organizado como um objeto contendo pares nomevalorseparadospor viacutergulas e dentro de chaves(lsquolsquo rsquorsquo) ou como um array que eacute uma lista de valores separa-dos por viacutergulas e entre colchetes(lsquo[lsquo rsquo]rsquo) Um valor por sua vez pode ser um objeto ou umarray mas tambeacutem um nuacutemero inteiro ou uma String entre outros

Um exemplo de arquivo JSON eacute

1 2 Carros [3 4 Nome Scen ic 5 Marca Renault 6 Ano 20127 8 9 Nome Sentra

10 Marca Nissan 11 Ano 200912 13 ]14

33 Google APIsAPIs (Application Program Interfaces) satildeo interfaces para facilitar a troca de informa-

ccedilotildees entre aplicaccedilotildees utilizando comandos especiacuteficos[15]

Ao longo do desenvolvimento algumas APIs fornecidas pela Google foram utilizadascomo fonte de informaccedilotildees adicionais para o aplicativo

∙ Google Maps Distance Matrix API Esta API eacute utilizada para obter o tempo emsegundos de trajeto entre dois pontos (latlong) no mapa podem ser consultados ostempos de trajeto de carro bicicleta a peacute e utilizando transporte puacuteblico[28] Esta eacute

18 TECNOLOGIAS UTILIZADAS 35

uma API web logo utiliza-se um request http para realizar uma consulta

Por exemplo o request

httpsmapsgoogleapiscommapsapidistancematrixjsonorigins=Seattleampdestinations=Victoria+BCampkey=[user_key]

retorna o JSON

1 2 des t ina t i on_addre s s e s [ Vic tor ia BC Canada ] 3 o r i g in_addre s s e s [ Sea t t l e WA EUA ] 4 rows [5 6 e lements [7 8 d i s t anc e 9 text 172 km

10 value 17166811 12 durat ion 13 text 4 horas 40 minutos 14 value 1680915 16 s t a tu s OK17 18 ]19 20 ] 21 s t a tu s OK22

no qual eacute possiacutevel obter o tempo de trajeto em segundos

∙ Google Maps Android API Esta API eacute utilizada para habilitar o uso de mapasda Google integrados agrave aplicaccedilatildeo jaacute disponiacutevel com todas as funcionalidades de zoome arrastar presentes no aplicativo nativo permitindo tambeacutem a personalizaccedilatildeo comoa adiccedilatildeo de pontos definidos pelo usuaacuterio ao mapa

34 Localizaccedilatildeo do UsuaacuterioOutro serviccedilo que foi utilizado com o intuito de obter o tempo de trajeto e a lista ordenada

de forma personalizada de restaurantes foi a localizaccedilatildeo do usuaacuterio que eacute obtida atraveacutes doGPS presente nos smartphones Um objeto de localizaccedilatildeo eacute criado e realiza a comunicaccedilatildeocom o serviccedilo de localizaccedilatildeo do aparelho Ao obter a localizaccedilatildeo ele lanccedila um evento quepode ser acessado por outras partes da aplicaccedilatildeo obtendo a localizaccedilatildeo mais atualizada dodispositivo

36 CONTROLE DE VERSAtildeO 19

35 Controle de VersatildeoControle de versatildeo eacute uma praacutetica usada para manter a organizaccedilatildeo do coacutedigo e do seu de-

senvolvimento quando muitos desenvolvedores colaboram conjuntamente Existem softwaresque auxiliam essa organizaccedilatildeo registrando todas as mudanccedilas feitas ao longo do processo eque possui recursos que permitem que vaacuterios usuaacuterios trabalhem nos mesmos arquivos semperda de informaccedilotildees

No caso do Git [8] o projeto fica organizado em uma estrutura de aacutervore onde cadacommit (checkpoints criados pelos membros do grupo durante o processo) eacute marcado porum noacute para onde se pode retornar quando necessaacuterio Existem tambeacutem estruturas chama-das branches que satildeo bifurcaccedilotildees na estrutura para que partes do projeto sejam criadasseparadamente sem interferir com a linha principal As branches depois satildeo unidas agrave linhaprincipal atraveacutes do comando merge

Neste projeto o serviccedilo de controle de versatildeo utilizado foi o Bitbucket [2] (que eacute um ser-viccedilo web-based de controle de versatildeo que utiliza Git) com auxiacutelio do software SourceTree[19]que eacute uma interface graacutefica para os serviccedilos do Bitbucket onde eacute possiacutevel visualizar com maisfacilidade as fases do desenvolvimento do projeto e realizar os comandos mais intuitivamente

Figura 32 Interface do SourceTree que mostra o controle de versionamento do projeto

36 Banco de dadosCom o intuito de deixar o aplicativo mais completo guardando informaccedilotildees dos usuaacuterios

e dos estabelecimentos optou-se por utilizar-se um banco de dados Alguns exemplos de

20 TECNOLOGIAS UTILIZADAS 36

banco de dados aprendidos no curso Laboratoacuterio de Banco de Dados foram

∙ SQL (Structured Query Language - Linguagem de Consulta Estruturada)[20] umalinguagem para atualizar deletar e requisitar informaccedilotildees atraveacutes de consultas emtabelas que possuem relaccedilatildeo entre si

∙ noSQL[13] um banco de dados que armazena e recupera informaccedilotildees modeladas deuma forma onde natildeo satildeo usadas tabelas relacionais

Como este uacuteltimo natildeo foi o foco da disciplina por falta de tempo decidiu-se por utilizaacute-lopara que o grupo pudesse aprender melhor esse modelo

Outra decisatildeo tomada foi a hospedagem dos dados na nuvem ou seja colocaacute-los em umservidor que natildeo seja local e conseguir acessaacute-los atraveacutes de uma conexatildeo via internet Dessemodo os dados sempre estaratildeo disponiacuteveis para serem consultados

361 Firebase

Buscando-se atender as decisotildees tomadas sobre o banco de dados procuramos um serviccedilode banco de dados da Google por conter ampla integraccedilatildeo com a plataforma de desenvolvi-mento Android por ser conhecido bastante utilizado e por possuir uma ampla comunidadede desenvolvedores dispostos a oferecer auxiacutelio em foacuteruns de discussatildeo de coacutedigos

Para atender esses requisitos escolheu-se o Firebase Realtime Database[6] desenvolvido edisponibilizado pela Google que consiste em um banco de dados noSQL com armazenamentona nuvem Esse serviccedilo armazena os dados do usuaacuterio no servidor da Google em formatoJSON e a cada alteraccedilatildeo sincroniza em tempo real com todos os clientes conectados

O grupo pode observar as seguintes vantagens de se trabalhar com a ferramenta existea sincronizaccedilatildeo em tempo real dos dados de todos os clientes e sua disponibilidade mesmocom o aplicativo offline ou seja quando o aplicativo natildeo estiver conectado a internet osdados do dispositivo moacutevel seratildeo armazenados e sincronizados com o banco de dados assimque a conexatildeo estiver disponiacutevel novamente Aleacutem disso os desenvolvedores possuem acessoa um console online (figura 33) onde o JSON eacute mostrado numa interface interativa de umaforma mais amigaacutevel e no qual eacute permitido editaacute-lo facilmente

37 CROWDSOURCING 21

Figura 33 Console online do Firebase onde os dados satildeo mostrados de forma mais amigaacutevel eintuitiva

Outra observaccedilatildeo feita foi que o Firebase Realtime Database funciona como o esperadose ele guardar uma coacutepia local dos dados em um arquivo JSON no celular Poreacutem isso natildeofoi visto como um problema pois como essa coacutepia pode ser salva em um arquivo texto oespaccedilo utilizado diminui consideravelmente

Na primeira vez que os dados satildeo criados e todas as vezes em que os dados forem atua-lizados por algum dispositivo moacutevel eacute enviada uma atualizaccedilatildeo que seraacute recebida atraveacutes delisteners por todos os aparelhos que utilizam o aplicativo para que eles atualizem seus res-pectivos JSONs Listeners satildeo interfaces de comunicaccedilatildeo que executam uma seacuterie de accedilotildeesassim que um outro evento esperado acontece

37 CrowdsourcingO termo Crowdsourcing tem origem nas palavras da liacutengua inglesa Crowd (multidatildeo) e

Outsourcing (terceirizaccedilatildeo) e eacute definido pelo dicionaacuterio Merriam Webster como A praacuteticade obtenccedilatildeo de serviccedilos ideias ou conteuacutedo solicitando contribuiccedilotildees de grandes grupos depessoas e especialmente da comunidade online [3] Esta praacutetica eacute utilizada para que sejapossiacutevel agrave comunidade contribuir com dados para algum programa ou serviccedilo como no apli-cativo Waze do qual a principal fonte de dados de tracircnsito acidentes e radares eacute obtida pormeio dos proacuteprios usuaacuterios

Capiacutetulo 4

Desenvolvimento do Projeto

Este capiacutetulo aborda o processo de desenvolvimento do projeto iniciado com o preen-chimento do diagrama Canvas e uma pesquisa de mercado direcionada ao usuaacuterio A partirdas informaccedilotildees coletadas foi possiacutevel projetar um aplicativo que atendesse as necessidadesexpostas pela pesquisa e selecionar as tecnologias necessaacuterias Tambeacutem eacute abordada a aplica-ccedilatildeo dos diferentes meacutetodos de caacutelculo da previsatildeo de tempo de espera que foram estudadose explicados no Capiacutetulo 2 Por fim satildeo expostas as diferentes versotildees do aplicativo duranteo processo e seus detalhes

41 Pesquisa de MercadoAntes de iniciar-se o desenvolvimento praacutetico algumas questotildees foram levantadas se

um aplicativo com as funcionalidades escolhidas seria de alguma forma uacutetil para o usuaacuterioe se sim qual metodologia deveria ser usada para que este produto fosse entregue o maiscompleto possiacutevel ateacute o final do ano Para responder a primeira pergunta desenvolveu-seum questionaacuterio

411 Pesquisa com o usuaacuterio

O questionaacuterio foi desenvolvido para avaliar a viabilidade do aplicativo e suas funciona-lidades e foi criado utilizando-se o Google Forms [9] Essa eacute uma ferramenta desenvolvidapelo Google que possibilita a criaccedilatildeo de formulaacuterios contendo diversos formatos de pergun-tas tanto dissertativas quanto de muacuteltipla escolha

Seguindo os princiacutepios de desenvolvimento de questionaacuterios [4] o conjunto de perguntasfoi mantido curto simples e de faacutecil entendimento Tambeacutem variou-se o tipo de questotildeesentre estruturadas (questotildees com respostas em forma de alternativas) e desestruturadas(questotildees com respostas em formato texto) seguindo esses mesmos princiacutepios para captarmelhor as informaccedilotildees dos entrevistados e evitar erros de entendimento

Com as respostas do questionaacuterio tinha-se o intuito de traccedilar um possiacutevel puacuteblico alvoconhecer seu modo de uso de dispositivos moacuteveis e validar a aplicabilidade de diferentesfuncionalidades pretendidas inicialmente sendo essas engajamento do usuaacuterio atraveacutes denotificaccedilotildees do sistema aceitaccedilatildeo de sugestotildees de locais alternativos avaliaccedilatildeo da existecircnciado problema que queremos resolver (se este aplicativo supre uma necessidade real do usuaacute-rio) e aceitaccedilatildeo do aplicativo

23

24 DESENVOLVIMENTO DO PROJETO 41

Para a divulgaccedilatildeo redes sociais como Facebook [5] e sistemas de mensagem instantacircneascomo WhatsApp foram usados e o envio de respostas foi restrito ateacute trecircs semanas apoacutes suaprimeira postagem Neste periacuteodo foram obtidas 210 respostas as quais ajudaram a definiros aspectos do sistema a ser desenvolvido

O questionaacuterio foi dividido em duas subseccedilotildees perfil do usuaacuterio e funcionalidade Comelas obteve-se os seguintes resultados

41 PESQUISA DE MERCADO 25

Questatildeo 1

Figura 41 Graacutefico pizza da distribuiccedilatildeo das respostas em relaccedilatildeo a idade dos pesquisados

As faixas de idade apresentadas estatildeo desbalanceadas por natildeo terem a mesma quantidadede anos em cada uma poreacutem essa divisatildeo foi pensada levando-se em conta a fluecircncia comtecnologia que cada idade possui Com o resultado verificou-se que do puacuteblico alcanccediladocom a pesquisa a maioria estaacute na faixa de 18 a 25 anos de idade assumida como parcelacom maior conhecimento tecnoloacutegico

Questatildeo 2

Figura 42 Graacutefico pizza da distribuiccedilatildeo das respostas em relaccedilatildeo ao sistema operacional

Esta questatildeo foi pensada para medir a porcentagem de cada sistema operacional pre-sente nos celulares do puacuteblico Com ela descobriu-se que 639 das pessoas dentro desse

26 DESENVOLVIMENTO DO PROJETO 41

grupo possuem o sistema Android enquanto 234 possuem iOS e 38 Windows phoneEssa pergunta foi incluiacuteda para um melhor direcionamento do desenvolvimento do aplicativo

Uma questatildeo levantada ao aplicar esse questionaacuterio foi a dificuldade que algumas pessoasencontraram para identificar a versatildeo do proacuteprio aparelho Poreacutem para manter a consistecircnciadas respostas decidiu-se natildeo mudar nada nesta questatildeo para remediar isso

Questatildeo 3

Figura 43 Graacutefico em barras da distribuiccedilatildeo de frequecircncias mensais de cada local analisado

41 PESQUISA DE MERCADO 27

Questatildeo 4

Figura 44 Graacutefico em pizza da distribuiccedilatildeo de interesse do usuaacuterio no tempo de espera de cadalocal

A princiacutepio viu-se muitas possiacuteveis aplicaccedilotildees para a previsatildeo de tempo de espera Paraentender qual seria a prioridade do puacuteblico as questotildees acima foram incluiacutedas A primeiraverificou a frequecircncia de visitas em alguns locais e a segunda serviu para analisar qualestabelecimento despertava mais interesse nos entrevistados quanto ao quesito fila Nos doiscasos restaurantes se destacaram com o maior interesse

Questatildeo 5

Figura 45 Graacutefico em barras da distribuiccedilatildeo de interesse do usuaacuterio por cada item avaliado

Para acompanhar o dado de espera e fornecer mais informaccedilotildees relevantes ao usuaacuteriosem potencial perguntou-se quais outras informaccedilotildees eles acham interessante saber sobre umdeterminado estabelecimento Com isso descobriu-se que a faixa de preccedilo o trajeto ateacute olocal e o cardaacutepio seriam dados importantes de se obter juntamente com o tempo de espera

28 DESENVOLVIMENTO DO PROJETO 41

Questatildeo 6O que vocecirc costuma fazer para evitar filasNeste ponto testou-se se a soluccedilatildeo proposta atraveacutes do aplicativo resolveria o problema dousuaacuterio de uma forma melhor do que a soluccedilatildeo atualmente utilizada Para isso foi perguntadoo que as pessoas fazem para evitar filas e as principais respostas foram

∙ Evitar horaacuterios de pico

∙ Chegar cedo

∙ Ir em outro lugar caso uma fila seja encontrada

∙ Tentar realizar reservas antecipadamente

∙ Se distrair com livroscelular

Notou-se que as soluccedilotildees utilizadas atualmente natildeo suprem as necessidades dos entre-vistados pois mesmo em horaacuterios natildeo convencionais pode-se encontrar filas ou quandodecide-se esperar na fila muito tempo eacute perdido Concluiu-se que a soluccedilatildeo proposta a par-tir do aplicativo resolve de forma mais abrangente o problema pois ajuda o usuaacuterio a evitarhoraacuterios de pico inesperados

Questatildeo 7

Figura 46 Graacutefico em pizza da distribuiccedilatildeo do meio de transporte utilizado pelos usuaacuterios

Essa questatildeo foi formulada com o objetivo de verificar quais meios de transporte seriamincluiacutedos com previsatildeo de tempo de trajeto no aplicativo Foi verificado que a maioria dosentrevistados utilizam transporte puacuteblico seguido por carro

41 PESQUISA DE MERCADO 29

Questatildeo 8

Figura 47 Graacutefico em pizza da distribuiccedilatildeo do interesse do usuaacuterio pela informaccedilatildeo fornecida

Questatildeo 9

Figura 48 Graacutefico em pizza da distribuiccedilatildeo de quantidade de quilocircmetros que o usuaacuterio sedeslocaria para ir a um local com menos fila

Com essas questotildees foi verificado que algo importante para o usuaacuterio eacute saber de outrosestabelecimentos que possam oferecer tempos de espera menores nas redondezas de onde ousuaacuterio se encontra que eacute uma das funcionalidades que desejaacutevamos utilizar no sistema

30 DESENVOLVIMENTO DO PROJETO 41

Questatildeo 10

Figura 49 Graacutefico em barras da distribuiccedilatildeo de sentimento do usuaacuterio em relaccedilatildeo a notificaccedilatildeode aplicativos

Questatildeo 11

Figura 410 Graacutefico em pizza da distribuiccedilatildeo de opiniatildeo do usuaacuterio sobre desabilitar notificaccedilotildeesem celular

42 PESQUISA DE MERCADO 31

Questatildeo 12

Figura 411 Graacutefico em pizza da distribuiccedilatildeo de opiniatildeo do usuaacuterio sobre habilitar GPS emcelular

A ideia inicial era poder usar o GPS para verificar a localizaccedilatildeo do usuaacuterio e enviarnotificaccedilotildees quando este estivesse parado nas proximidades de algum dos estabelecimentoscadastrados Para que essa funcionalidade possa existir eacute necessaacuterio que o aplicativo tenhaacesso agrave localizaccedilatildeo precisa da pessoa atraveacutes do GPS ou internet ateacute mesmo quando natildeoestiver aberto Aleacutem disso tambeacutem eacute necessaacuterio que as notificaccedilotildees estejam habilitadas parafinalizar esta interaccedilatildeo Entatildeo as perguntas 10 11 e 12 foram incluiacutedas no questionaacuterio Ob-servando as respostas foi possiacutevel verificar que 295 das pessoas que responderam deixamambas as funcionalidades habilitadas (GPS e notificaccedilotildees) Com isso pudemos prosseguircom essa ideia e tambeacutem pensar em possiacuteveis alternativas de interaccedilatildeo e engajamento como usuaacuterio

Por conta dessa pesquisa ter sido compartilhada atraveacutes das contas das redes sociais ecomunicadores dos componentes deste grupo sabe-se que este pode apresentar um resultadoviesado mas que mesmo assim natildeo deve ser desconsiderado e que muito ajudou a sanar asduacutevidas iniciaisComo resultado traccedilamos o perfil do entrevistado

∙ Faixa etaacuteria predominante entre 18 e 30 anos

∙ Possui sistema operacional Android (versotildees 4 5 e 6)

∙ Vai a restaurantes com certa frequecircncia mensal resultando em interesses sobre infor-maccedilotildees relacionadas a esse estabelecimento

∙ Costuma chegar cedo ou evitar os horaacuterios de pico para evitar filas nos locais

∙ Carro e transporte coletivo satildeo os principais meios de transporte

∙ Se deslocaria para um estabelecimento semelhante que possui menos fila contanto queeste fique num raio de 2km de distacircncia

32 DESENVOLVIMENTO DO PROJETO 43

42 Projeto do AplicativoO grupo comeccedilou o projeto com o preenchimento do diagrama Canvas(figura 412) apre-

sentado na Seccedilatildeo 21 Desse modo foi adquirida uma ideia mais consistente e uma base paracomeccedilar a implementaccedilatildeo

Figura 412 Diagrama Canvas preenchido pelo grupo

Com o modelo de negoacutecios definido e com base no resultado da pesquisa com o usuaacuterioapresentada na seccedilatildeo seguinte foram aplicadas pequenas mudanccedilas no projeto para melhoradequar-se agraves necessidades e ao perfil do puacuteblico alvo

Para o desenvolvimento foi utilizado um meacutetodo aacutegil baseado no scrum com sprints de3 a 4 semanas devido agrave disponibilidade dos membros do grupo Os encontros natildeo eram diaacute-rios como recomendado para o meacutetodo scrum tambeacutem em razatildeo da disponibilidade Haviamstand ups (discussotildees raacutepidas no comeccedilo de cada encontro) e retrospectivas ao final de cadasprint A cada sprint eram selecionadas histoacuterias e tarefas para serem executadas e caso natildeofossem concluiacutedas ao final da iteraccedilatildeo eram inseridas ao backlog e feitas no sprint seguinte

43 Aplicaccedilatildeo dos meacutetodos de caacutelculo de espera

431 Aplicando a meacutedia por periacuteodo

Aplicando-se no trecho abaixo a teacutecnica desenvolvida na Seccedilatildeo 242 para uma queryrealizada no dia 19082016 no intervalo de 2040 - 2055 analisa-se a semana anterior quepossua tais intervalos Assim o saacutebado dia 06082016 seraacute selecionado

43 APLICACcedilAtildeO DOS MEacuteTODOS DE CAacuteLCULO DE ESPERA 33

Entrada Qtd Pessoas Notificado Espera

6816 2043 2 862016 2053 1606

6816 2044 2 862016 2055 674

6816 2048 2 862016 2056 528

6816 2048 2 862016 2057 520

6816 2051 2 862016 2107 1118

6816 2051 3 862016 2110 1305

6816 2052 2 862016 2110 1273

6816 2052 2 862016 2111 1179

6816 2053 2 862016 2112 1217

6816 2053 2 NULL 59

6816 2054 3 862016 2119 1541

6816 2055 2 862016 2117 1444

6816 2055 2 862016 2120 1570

6816 2055 2 862016 2122 1613

Tabela 41 Trecho do dia 06082016 entre os horaacuterios das 2043 agraves 2055 um intervalo de 12minutos retirado dos dados da empresa Get In

Com esses dados obteve-se a meacutedia de espera de 1080 segundos (18 minutos) a qualseria sugerida para o usuaacuterio com a busca e desvio padratildeo de 465144719 segundos (775 mi-nutos) Dentro desse intervalo tem-se como maacuteximo tempo de espera 1613 segundos (2688minutos) e como miacutenimo 59 segundos (1 minuto) Analisando-se os dados do dia 19082016no mesmo periacuteodo temos

34 DESENVOLVIMENTO DO PROJETO 43

Entrada Pessoas Notificado Espera Erro previsatildeo Erro p 2 pessoas

19816 2043 2 8192016 2051 544 -563 522

19816 2043 2 8192016 2052 605 -502 461

19816 2044 2 8192016 2056 723 -384 343

19816 2046 4 8192016 2119 1988 881 X

19816 2048 2 8192016 2102 919 188 147

19816 2051 2 8192016 2103 821 286 245

19816 2051 3 8192016 2108 1773 666 X

19816 2053 2 8192016 2110 1083 24 -17

19816 2053 2 8192016 2111 1105 2 -39

19816 2053 2 8192016 2112 1169 62 -103

19816 2055 2 8192016 2114 1447 340 -381

Tabela 42 Trecho do dia 19082016 entre os horaacuterios das 2043 agraves 2055um intervalo de 12minutos retirado dos dados da empresa Get In

Ou seja se um grupo chegasse dentro desse periacuteodo e a previsatildeo dada fosse a meacutediaobtida anteriormente o erro calculado pela diferenccedila entre o tempo sugerido e o real tempode espera estaria no intervalo de 15 minutos para menos ou 8 minutos para mais Sendoesse um valor aceitaacutevel

Um proacuteximo passo eacute a restriccedilatildeo dos registros a grupos com 2 integrantes Com tal restri-ccedilatildeo a previsatildeo de espera eacute de 1066 segundos (1776 minutos) Aplicando essa nova meacutedia aosregistros com 2 integrantes do dia 19082016 obteacutem-se um erro (Coluna 6 - erro previsatildeopara 2 pessoas) menor do que o anterior O intervalo do erro calculado neste caso seria de 522segundos (87 minutos) para mais e 381 segundos (635 minutos) para menos Este resultadoeacute ainda mais favoraacutevel mostrando que a inclusatildeo de mais filtros para o caacutelculo da previsatildeomelhorou o tempo previsto

432 Aplicando teoria das filas

A teoria das filas (Seccedilatildeo 242) eacute uma ferramenta muito completa que calcula muitos dadosuacuteteis para a previsatildeo de espera Contudo por conta da necessidade de informaccedilotildees sobreo tempo de atendimento a qual natildeo estaacute contida no banco utilizado esta teoria natildeo podeser aplicada neste caso Poreacutem esse dado pode ter um valor assumido para que a utilizaccedilatildeodessa teoria fosse possiacutevel entretanto a sua precisatildeo ficaria comprometida e imprevisiacutevel

433 Aplicando redes neurais

Para aplicar o que foi estudado na Seccedilatildeo 242 foi executado o software com o mecircs deAgosto como teste o mecircs de Setembro como treino e o limite do erro quadraacutetico como 001 eobteve-se a tabela presente no apecircndice B Na tabela podemos ver o tempo de fila esperadoou seja o tempo contido na tabela do mecircs de Setembro o tempo que o algoritmo deu comoresposta baseado no mecircs de Agosto e o erro entre eles respectivamente

44 DEFINICcedilAtildeO DA INTERFACE DO APLICATIVO 35

Figura 413 Software Multiple Back-Propagation com a configuraccedilatildeo escolhida para os dadosdisponiacuteveis

Mesmo o erro se mantendo em 0018 os dados obtidos possuem um erro padratildeo de 15minutos Se mais dados forem adicionados o criteacuterio de parada pode ser atingido e assimuma previsatildeo melhor pode ser alcanccedilada

434 Conclusatildeo sobre os meacutetodos estudados

Dentre todas as possibilidades estudadas visualizamos na meacutedia por periacuteodo a melhoropccedilatildeo assumindo os dados disponiacuteveis para teste Se mais paracircmetros fossem fornecidoscomo o tempo de atendimento a teoria das filas seria uma boa opccedilatildeo para fornecer a pre-visatildeo de espera E se mais dados estivessem disponiacuteveis as redes neurais conseguiriam umaaproximaccedilatildeo melhor e assim seria uma boa opccedilatildeo tambeacutem

44 Definiccedilatildeo da Interface do aplicativoComo um primeiro protoacutetipo foi desenvolvida uma interface simples que tinha como tela

de iniacutecio um mapa com um campo para buscas na parte superior

36 DESENVOLVIMENTO DO PROJETO 44

Figura 414 Fluxo de telas do primeiro protoacutetipo

Ao efetuar uma busca por algum estabelecimento uma tela mostrando o tempo de esperaaproximado da fila no local era exibida junto com bototildees que permitiam selecionar o meiode transporte visualizar outras opccedilotildees ou dar iniacutecio a rota ateacute o local desejado Tambeacutemhavia uma notificaccedilatildeo para quando a pessoa estivesse parada proacutexima a um restaurantecadastrado que direcionaria o usuaacuterio a uma tela com um cronocircmetro do tempo de esperana fila

Para testar essa visualizaccedilatildeo escolhemos algumas pessoas e realizamos um teste deusabilidade[22] este teste eacute feito da seguinte forma

44 DEFINICcedilAtildeO DA INTERFACE DO APLICATIVO 37

Uma contextualizaccedilatildeo eacute feita para o voluntaacuterio e entatildeo uma tarefa eacute passada para sercompletada Os integrantes do grupo observam dificuldades enfrentadas pelo entrevistado etomam notas Esse teste eacute repetido algumas vezes e seu resultado eacute coletado para avaliaccedilatildeoe modificaccedilatildeo das funcionalidades

Figura 415 Tela de detalhes de um restaurante(segunda versatildeo)

Notou-se que algumas funcionalidadespareceram confusas e natildeo intuitivas porexemplo natildeo ficou claro se o tempo mos-trado era de trajeto ou de espera na filanem qual era o meio de transporte utili-zado

Logo esse protoacutetipo foi reformuladocom o intuito de melhorar a experi-ecircncia do usuaacuterio com o nosso aplica-tivo

Foram colocados aleacutem do tempo deespera da fila o tempo que o usuaacuteriolevaria para chegar ateacute o local selecio-nado (conforme o tipo de transporte es-colhido) e a quantidade estimada de pes-soas na fila O tempo total (espera so-mado ao tempo de deslocamento) ga-nhou destaque entre as informaccedilotildees doestabelecimento e o botatildeo que direcionao usuaacuterio ao trajeto ficou mais especiacute-fico

Tambeacutem cogitou-se a possibilidade deadicionar login e um perfil de usuaacuteriojunto com uma lista de restaurantes favo-ritos

O fluxo das telas deste novo protoacutetipo ficou como mostra o esquema a seguir

38 DESENVOLVIMENTO DO PROJETO 44

Figura 416 Fluxo de telas do segundo protoacutetipo

44 DEFINICcedilAtildeO DA INTERFACE DO APLICATIVO 39

Figura 417 Tela de detalhes de um restaurante(terceira versatildeo)

Apoacutes outras avaliaccedilotildees mais algumaspequenas alteraccedilotildees foram realizadas nainterface Foi decidido que seria inviaacute-vel estimar o nuacutemero de pessoas nafila entatildeo essa funcionalidade foi remo-vida

Notificaccedilotildees foram adicionadas paraquando o usuaacuterio estiver parado na aacutereado restaurante para que ele possa con-tribuir com informaccedilotildees sobre a fila quepegou aleacutem de um botatildeo de contri-buiccedilatildeo ter sido inserido na tela ini-cial

40 DESENVOLVIMENTO DO PROJETO 45

O fluxo de telas do aplicativo atual ficou da seguinte forma

Figura 418 Fluxo de telas do terceiro protoacutetipo

46 EXPLICACcedilAtildeO DAS FUNCIONALIDADES 41

45 Explicaccedilatildeo das funcionalidadesEsta seccedilatildeo explica as funcionalidades do produto utilizando a figura 418

A tela inicial (3) exibe uma lista de restaurantes incluindo seus respectivos tempos detrajeto e tempo de espera na fila Ao clicar no botatildeo ldquo+rdquo uma caixa de diaacutelogo eacute aberta(4) onde eacute possiacutevel adicionar o tempo que o usuaacuterio esperou na fila Primeiro eacute escolhido orestaurante depois a data e hora que a pessoa chegou na fila e por fim o tempo de esperaem minutos Ao tocar em ldquoEnviar Feedback rdquo os dados satildeo incluiacutedos no banco de dados eatualizados para os outros usuaacuterios Assim eacute apicado o conceito de Crowdsourcing no apli-cativo

Ao tocar em um item da lista de restaurantes seraacute aberta a tela de detalhes de um res-taurante (5) na qual eacute possiacutevel ver com mais clareza os tempos de trajeto e espera o tempototal o endereccedilo do estabelecimento e um pequeno mapa centrado no local Pressionandoo botatildeo ldquoDireccedilotildeesrdquo o usuaacuterio seraacute redirecionado ao aplicativo de mapas de sua preferecircnciano caso do exemplo (8) o Google Maps jaacute traccedilando a rota da localizaccedilatildeo do usuaacuterio para oestabelecimento em questatildeo

Novamente na tela inicial tocando no iacutecone de lupa eacute possiacutevel realizar uma busca digi-tando o nome do estabelecimento na caixa de texto a qual exibe sugestotildees dependendo doque foi digitado Ao clicar em um dos resultados da busca o usuaacuterio eacute novamente direcionadopara a tela de detalhes do restaurante (5)

Tambeacutem eacute possiacutevel tocar no iacutecone de mapa na tela inicial onde seraacute mostrado um mapacentrado na localizaccedilatildeo do usuaacuterio

Ao ficar parado por um tempo em um mesmo local proacuteximo a um estabelecimentocadastrado o usuaacuterio eacute perguntado em uma notificaccedilatildeo quanto tempo ele permaneceu nafila Ao tocar na notificaccedilatildeo a caixa de diaacutelogo para feedback do usuaacuterio seraacute aberta (4) jaacutecom o restaurante preenchido e apoacutes o feedback a janela seraacute fechada e os dados enviadosao banco de dados

46 Implementaccedilatildeo do banco de dadosO banco de dados do aplicativo foi modelado e populado em forma de aacutervore (Fi-

gura 419) de forma a facilitar o acesso aos dados necessaacuterios ao aplicativo No primeironiacutevel estatildeo os ids dos restaurantes Cada id de restaurante guarda a localizaccedilatildeo (latitudelongitude) do restaurante o nome o endereccedilo e um objeto fila O objeto fila guarda todos osdias da semana (domingo a saacutebado) e cada dia da semana possui 24 campos um para cadahora do dia Cada hora possui o tempo meacutedio de espera da fila naquela hora e um peso paraesse tempo O peso eacute um valor que aumenta de acordo com o nuacutemero de feedbacks dadospara que o novo valor do tempo meacutedio seja calculado de forma consistente

Modelamos o banco de dados de uma forma que respeitasse uma hierarquia de dados

42 DESENVOLVIMENTO DO PROJETO 46

Figura 419 Aacutervore que ilustra a organizaccedilatildeo de um restaurante no banco de dados

Com o banco de dados jaacute populado o aplicativo faz consultas e atualizaccedilotildees de dadosConsultas satildeo feitas ao criar a tela de listagem de restaurantes e de detalhes de um restau-rante consultado As atualizaccedilotildees satildeo feitas quando o usuaacuterio manda o feedback de tempo deespera em um estabelecimento em determinado horaacuterio o aplicativo calcula a nova meacutedia eatualiza o campo do respectivo horaacuterio

Capiacutetulo 5

Conclusatildeo

Ao longo dos capiacutetulos deste trabalho pocircde-se acompanhar todo o processo de criaccedilatildeo edesenvolvimento do aplicativo que apoacutes finalizado foi batizado com o nome Queue

Comeccedilando com um problema para o qual o grupo almejava oferecer uma soluccedilatildeoacabou-se por adentrar-se um pouco no campo da Estatiacutestica e estudar diversas metodo-logias que poderiam ser uacuteteis para fornecer um caacutelculo de previsatildeo de espera meacutedia porperiacuteodo aplicaccedilatildeo da teoria das filas e utilizaccedilatildeo de redes neurais

Atraveacutes de uma parceria com a empresa GetIn obteve-se acesso a uma grande quantidadede dados e foi possiacutevel utilizaacute-los em anaacutelises feitas nas metodologias escolhidas conseguindoassim resultados relevantes Por meio destes foi feita a escolha de um dos meacutetodos para ocaacutelculo da previsatildeo de filas a meacutedia por periacuteodo

Aleacutem desses estudos ao longo do ano o grupo aprendeu a desenvolver para a plata-forma Android sobre a qual nenhum dos integrantes tinha conhecimento preacutevio Tambeacutemfoi possiacutevel aprender e utilizar a metodologia aacutegil com Scrum para guiar o processo de de-senvolvimento

Ao fim do ciclo de desenvolvimento conseguiu-se entregar um aplicativo em funciona-mento que fornece a previsatildeo de espera no instante da consulta de estabelecimentos cadas-trados no banco de dados armazenado na nuvem

Na versatildeo atual do aplicativo natildeo foi implementado um sistema para o cadastro de novosestabelecimentos Isso soacute eacute possiacutevel atraveacutes da inserccedilatildeo direta no banco de dados atraveacutes dainterface fornecida pelo console do Firebase Atualmente estatildeo cadastrados 5 restaurantesos quais foram visitados durante o desenvolvimento do projeto Para que o cadastro deestabelecimentos escale seria necessaacuterio a implementaccedilatildeo de uma funcionalidade que permitaao usuaacuterio adicionar novos estabelecimentos a partir de locais disponiacuteveis na API de locaisda Google

43

45

46 APEcircNDICE A

Apecircndice A

Dados coletados

Figura A1 Dados de tempo de espera para grupos de tamanhos variados para cada horaacuterio e emcada dia da semana obtidos em entrevista em restaurantes Outback Steakhouse Shopping Uniatildeo nomecircs de outubro

Referecircncias Bibliograacuteficas

[1] Backpropagation httpmbpsourceforgenet Accesso em Janeiro 2017 14

[2] Bitbucket httpsbitbucketorgproduct Accesso em Dezembro 2016 19

[3] Crowdsourcing httpswwwmerriam-webstercomdictionarycrowdsourcing Ac-cesso em Novembro 2016 21

[4] Designing a survey httpwwwsciencebuddiesorgscience-fair-projectsproject_ideasSoc_surveyshtml Accesso em Outubro 2016 4 23

[5] Facebook httpswwwfacebookcom Accesso em Novembro 2016 24

[6] Firebase httpsfirebasegooglecom Accesso em Agosto 2016 20

[7] Getin app httpswwwgetinappcombrhomesao-paulo Accesso em Novembro2016 9

[8] Git 11 primeiros passos - sobre controle de versatildeo httpsgit-scmcombookpt-brv1Primeiros-passos-Sobre-Controle-de-Vers Accesso em Novembro 2016 19

[9] Google forms httpsdocsgooglecomforms Accesso em Novembro 2016 23

[10] Guia definitivo do project model canvas Project Builder 3

[11] Jsonorg introducing json httpwwwjsonorg Accesso em Novembro 2016 17

[12] Manifesto para desenvolvimento Aacutegil de software httpagilemanifestoorgisoptbrmanifestohtml Accesso em Novembro 2016 5

[13] Nosql httpsenwikipediaorgwikiNoSQL Accesso em Novembro 2016 20

[14] Outback steakhouse httpswwwoutbackcombrhome Accesso em Novembro 20169

[15] Restful api development with lumen microframework httpsbelitsoftcomlaravel-development-servicesapi-development Accesso em Novembro 2016 17

[16] Scrum httpswwwatlassiancomagilescrum Accesso em Novembro 2016 5

[17] Smartphone os market share 2016 q2 httpwwwidccomprodservsmartphone-os-market-sharejsp Accesso em Novembro 2016 15

[18] Smartphone os sales market share kantar worldpanel comtech httpwwwkantarworldpanelcomsmartphone-os-market-share Accesso em Novembro 2016 15

[19] Sourcetree httpswwwsourcetreeappcom Accesso em Dezembro 2016 19

47

48 REFEREcircNCIAS BIBLIOGRAacuteFICAS

[20] Sql httpsptkhanacademyorgcomputingcomputer-programmingsql Accesso emDezembro 2016 20

[21] Trello httpstrellocom Accesso em Novembro 2016 6

[22] Usability test httpsenwikipediaorgwikiUsability_testing Accesso em Novembro2016 36

[23] Versionone 2012 agile dev survey httpswwwversiononecompdf7th-Annual-State-of-Agile-Development-Surveypdf Accesso em Novembro 2016 5

[24] Waze httpswwwwazecom Accesso em Novembro 2016 1

[25] What is an open source httpsopensourcecomresourceswhat-open-source Accessoem Novembro 2016 15

[26] Xml tutorial httpwwww3schoolscomxml Accesso em Novembro 2016 17

[27] Paulo F Cabral dos Anjos Jr Aron Ifanger Maciel Christopher Silva de Paacutedua Com-posiccedilatildeo de carteiras de accedilotildees utilizando modelo de redes neurais artificiais e modelo derisco e retorno de Markowitz 2012 14

[28] Google Distance matrix api documentation httpsdevelopersgooglecommapsdocumentationdistance-matrix Accesso em Novembro 2016 17

[29] Alan Klement Designing features using job stories httpsblogintercomcomusing-job-stories-design-features-ui-ux Accesso em Novembro 2016 6

[30] Azmat Nafees Queuing theory and its application analysis of the sales checkout opera-tion in ica supermarket httpwwwstatisticsduseessaysD07ENafeespdf Accessoem Novembro 2016 12

[31] Eric Ries A Startup Enxuta Lua de papel primeira ediccedilatildeo edition 2012 3

  • Introduccedilatildeo
    • Motivaccedilatildeo
    • Trabalho Proposto
    • Estrutura da monografia
      • Estudos Preliminares
        • Desenvolvimento de Startups
          • Desenvolvimento de Questionaacuterios
            • Metodologia Aacutegil
            • Jobs to be done
            • Caacutelculo da previsatildeo do tempo de espera na fila
              • Descriccedilatildeo do problema
              • Meacutetodos de caacutelculo da espera
                  • Tecnologias utilizadas
                    • O sistema Android
                      • Organizaccedilatildeo de uma aplicaccedilatildeo Android
                        • JSON
                        • Google APIs
                        • Localizaccedilatildeo do Usuaacuterio
                        • Controle de Versatildeo
                        • Banco de dados
                          • Firebase
                            • Crowdsourcing
                              • Desenvolvimento do Projeto
                                • Pesquisa de Mercado
                                  • Pesquisa com o usuaacuterio
                                    • Projeto do Aplicativo
                                    • Aplicaccedilatildeo dos meacutetodos de caacutelculo de espera
                                      • Aplicando a meacutedia por periacuteodo
                                      • Aplicando teoria das filas
                                      • Aplicando redes neurais
                                      • Conclusatildeo sobre os meacutetodos estudados
                                        • Definiccedilatildeo da Interface do aplicativo
                                        • Explicaccedilatildeo das funcionalidades
                                        • Implementaccedilatildeo do banco de dados
                                          • Conclusatildeo
                                          • Dados coletados
                                          • Referecircncias Bibliograacuteficas

12 ESTUDOS PRELIMINARES 24

haacute uma forma automaacutetica para que o aproveitamento desses possa ser feito Poreacutemmesmo omitindo-se os valores do graacutefico o perfil da distribuiccedilatildeo e o horaacuterio de picosatildeo aproveitados manualmente para nosso sistema

∙ Poucos dados para este caso fizemos o balanceamento dos dados da Google comas informaccedilotildees retiradas das entrevistas Aleacutem do aproveitamento das informaccedilotildees daGoogle foram realizadas pesquisas com funcionaacuterios dos restaurantes

Segundo meacutetodo Teoria das filas

Filas podem ser vistas como um sistema dinacircmico no qual existe um conjunto de usuaacuteriosque satildeo atendidos por um conjunto de atendentes de acordo com a ordem de chegada dosusuaacuterios A teoria de filas busca utilizando anaacutelises matemaacuteticas estudar o comportamentodestas filas para estimar o tempo de espera com base em um conjunto inicial de dadospreviamente fornecido[30]

Um sistema de filas possui como caracteriacutesticas

∙ Modelo de chegada dos usuaacuterios Utiliza como base o tempo entre as chegadasdos usuaacuterios

∙ Modelo de serviccedilo (atendimento aos usuaacuterios) Utiliza como base o tempo gastono atendimento ao usuaacuterio No caso dos restaurantes equivale ao tempo que um grupopassa na mesa ateacute a sua saiacuteda

∙ Nuacutemero de servidores Eacute o nuacutemero de atendentes disponiacuteveis no sistema Para omodelo do restaurante este equivale agraves mesas disponiacuteveis no salatildeo

∙ Capacidade do sistema Eacute o nuacutemero de usuaacuterios que o sistema eacute capaz de atenderInclui o nuacutemero de usuaacuterios que estatildeo sendo atendidos somado com os que esperamna fila Se este paracircmetro natildeo for informado o sistema eacute considerado com capacidadeilimitada

∙ Tamanho da populaccedilatildeo nuacutemero potencial de clientes que podem chegar a umsistema Pode ser finito ou infinito

∙ Disciplina da fila A disciplina da fila pode ser FIFO (first in first out) - o primeiroa chegar eacute o primeiro a ser atendido LIFO (last in first out) - o uacuteltimo a chegar eacuteo primeiro a ser atendido ALEATOacuteRIO - os atendimentos satildeo feitos sem qualquerpreocupaccedilatildeo com a ordem de chegada COM PRIORIDADE - os atendimentos satildeofeitos de acordo com prioridades estabelecidas No caso dos restaurantes a disciplinaadotada eacute a FIFO poreacutem esta pode mudar de acordo com o atendente responsaacutevel

Os tempos mencionados nos modelos de chegada e de serviccedilo podem ser constantesquando os intervalos entre as chegadas dos usuaacuterios satildeo iguais ou variaacuteveis quando os valo-res desses intervalos variam Nesse uacuteltimo caso o intervalo de tempo segue uma distribuiccedilatildeode probabilidades Nesse modelo tambeacutem existe a taxa meacutedia de chegada dos usuaacuterios porunidade de tempo ou seja quantos usuaacuterios chegam em uma hora

As filas podem ser moldadas em trecircs situaccedilotildees baacutesicas como descrito por Azmat Nafees[30]

∙ Modelo de fila de canal uacutenico com fila uacutenica e atendimento uacutenico (Figura 27)

24 CAacuteLCULO DA PREVISAtildeO DO TEMPO DE ESPERA NA FILA 13

∙ Modelo de fila de canal uacutenico com fila uacutenica e muacuteltiplos atendimentos paralelos (Fi-gura 28)

∙ Modelo de fila de canal uacutenico com muacuteltiplas filas e muacuteltiplos atendimentos paralelos(Figura 29)

Figura 27 Modelo de fila de canal uacutenico com fila uacutenica e atendimento uacutenico

Figura 28 Modelo de fila de canal uacutenico com fila uacutenica e muacuteltiplos atendimentos paralelos

Figura 29 Modelo de fila de canal uacutenico com muacuteltiplas filas e muacuteltiplos atendimentos paralelos

Tambeacutem por Azmat Nafees nesses modelos trecircs subprocessos podem ser vistos

∙ Processo de chegada Eacute um processo contiacutenuo do evento ldquochegada de clientesrdquo ouseja quando o evento ocorre o processo aguarda a ocorrecircncia do proacuteximo evento Esseevento coloca um cliente na fila quando ele chega

14 ESTUDOS PRELIMINARES 24

∙ Processo de espera Eacute um processo que inclui o evento ldquocomece a servir o proacuteximocliente da filardquo que retira um cliente da fila o coloca no processo de atendimento eespera a conclusatildeo do evento ldquocliente servidordquo para recomeccedilar Nele se trabalha comtamanho e disciplina da fila

∙ Processo de atendimento Eacute um processo que inclui o evento ldquocliente servidordquo eespera a conclusatildeo do evento ldquocomece a servir o proacuteximo cliente da filardquo para recomeccedilarNele se trabalha com tipo taxa e tempo de atendimento

Dentre esses 3 modelos o que mais se encaixa na situaccedilatildeo de um restaurante eacute o segundomodelo canal uacutenico com fila uacutenica e muacuteltiplos atendimentos paralelos O processo de chegadade novos clientes na fila eacute tido como aleatoacuterio

Terceiro meacutetodo Rede Neural

Rede Neural eacute uma teacutecnica computacional inspirada no sistema nervoso que com o auxiacute-lio de um modelo matemaacutetico apresenta respostas para problemas de decisatildeo Esses modelosfuncionam da seguinte forma primeiro um conjunto de dados (conjunto de treinamento) eacuteapresentado ao sistema e este aprende com ele atraveacutes de reconhecimento de padratildeo entatildeocoloca-se o sistema para analisar os dados (conjunto de teste) para os quais deseja-se obteralgum resultado Este processo eacute chamado de aprendizagem de maacutequina Quanto melhor forseu treinamento mais precisas seratildeo as respostas para o segundo conjunto

Uma rede neural eacute formada por subestruturas chamadas neurocircnios Um neurocircnio tem oseguinte funcionamento ele recebe como entrada sinais cada sinal recebe um peso de acordocom a influecircncia dele na saiacuteda e uma soma eacute feita para produzir o niacutevel de atividade entatildeodependendo se o niacutevel de atividade exceder o limite dado pela funccedilatildeo de transferecircncia aresposta eacute produzida[27]

Software Multiple Back-Propagation

Para implementar a soluccedilatildeo baseada em redes neurais foi usado o Software MultipleBack-Propagation [1] Este eacute um software de faacutecil utilizaccedilatildeo que fornece uma rede a qualaprende atraveacutes do processo de propagaccedilatildeo inversa Esse meacutetodo baseia-se na comparaccedilatildeodos dados esperados (conjunto de teste) com os dados obtidos a partir do treinamento senecessaacuterio adaptaccedilotildees satildeo feitas a estrutura da rede para melhor aproximar aos dados doconjunto teste e isso eacute chamado de propagaccedilatildeo inversa

Por se tratar de um meacutetodo de aprendizagem de maacutequinas para se obter um resultadodeve-se treinar o algoritmo Primeiramente submete-se o conjunto de treinamento ao soft-ware para isso foi escolhido o mecircs de Agosto O criteacuterio de parada para o treino eacute o erroquadraacutetico meacutedio o qual teve seu valor atribuiacutedo para 001

Capiacutetulo 3

Tecnologias utilizadas

31 O sistema AndroidAndroid eacute um Sistema operacional open source (software de coacutedigo aberto o qual as

pessoas podem acessar e modificar para contribuir com o projeto [25]) e para dispositivosmoacuteveis desenvolvido pela Google baseado no Kernel do Linux e utilizado principalmente emdispositivos touchscreen Atualmente o Android eacute o sistema operacional que deteacutem a maiorparcela do mercado[17] com 836 dos dispositivos contra 134 do iOS da Apple

A Google tambeacutem oferece um ambiente de desenvolvimento para a plataforma Androidchamado Android Studio no qual os aplicativos satildeo criados e exportados para os dispositi-vos moacuteveis Aplicativos Android satildeo programados na linguagem Java com vaacuterias bibliotecasdisponibilizadas pela Google para suporte ao sistema operacional

A escolha da plataforma foi feita principalmente por conta de o sistema possuir a maiorparte dos usuaacuterios de Smartphones e tambeacutem pela ampla comunidade ativa de desenvolve-dores agrave qual se pode recorrer em casos de duacutevidas e problemas tornando suas resoluccedilotildeesmais raacutepidas e com muacuteltiplas alternativas Outros motivos que contribuiacuteram para a escolhado Android foram

∙ A disponibilidade do ambiente de desenvolvimento Android Studio que possui todosos recursos necessaacuterios para desenvolver um aplicativo funcional logo apoacutes a instalaccedilatildeosem a necessidade de utilizar outras dependecircncias as quais satildeo gerenciadas automati-camente pelo proacuteprio software

∙ O fato de no mercado brasileiro o sistema Android se encontrar em 918 dos dispo-sitivos segundo pesquisa da Kantar[18] e dado a pesquisa realizada para definiccedilatildeo depuacuteblico alvo onde foi possiacutevel perceber que 639 dos entrevistados utilizam smartpho-nes com sistema Android

∙ A utilizaccedilatildeo da linguagem de programaccedilatildeo Java para desenvolvimento que jaacute eraconhecida e fora utilizada anteriormente ao contraacuterio das linguagens Objective C eSwift linguagens utilizadas para desenvolver aplicativos para o sistema iOS Assimcomo a disponibilidade de dispositivos por parte do grupo que em sua maioria era decelulares com o sistema Android

15

16 TECNOLOGIAS UTILIZADAS 31

Figura 31 Parcela de mercado dos dispositivos no Brasil

311 Organizaccedilatildeo de uma aplicaccedilatildeo Android

Aplicativos Android satildeo divididos em componentes Haacute quatro tipos de componentespresentes Activities (ou atividades) Services (ou serviccedilos) Content providers (ou provedoresde conteuacutedo) Broadcast receivers (ou receptores de transmissatildeo)

∙ Activities Satildeo as telas e interfaces do usuaacuterio Cada tela de uma aplicaccedilatildeo eacute repre-sentada por uma activity e cada activity eacute independente de outras apesar de seremcomponentes de uma mesma aplicaccedilatildeo Isso se daacute pelo fato de haver a possibilidade deutilizar activities de aplicativos durante a execuccedilatildeo de outros Atividades satildeo iniciadase se comunicam entre si atraveacutes de objetos chamados Intent que transferem um pacotede dados que pode ser carregado no iniacutecio da nova atividade

∙ Services Sempre satildeo executados em segundo plano sem interferir na experiecircncia dousuaacuterio geralmente para realizar operaccedilotildees longas ou realizar operaccedilotildees de troca dedados enquanto o usuaacuterio estaacute utilizando outra aplicaccedilatildeo em primeiro plano

∙ Content Providers Satildeo gerenciadores de dados de aplicaccedilotildees Android utilizadospara ler e salvar dados compartilhados ou secretos dos aplicativos e do sistema

∙ Broadcast Receivers Satildeo componentes responsaacuteveis por obter eventos que aconte-ceram em outras aplicaccedilotildees ou no sistema e direcionar dados sobre esses eventos paraeventuais aplicaccedilotildees que necessitem destes dados alguns exemplos de eventos obtidospelos receptores de transmissatildeo satildeo tela desligada e bateria fraca

Aleacutem dos componentes uma parte importante de uma aplicaccedilatildeo Android eacute o ArquivoManifest que eacute uma declaraccedilatildeo de permissotildees serviccedilos e exigecircncias de hardware necessaacuterios

33 JSON 17

para o funcionamento do aplicativo Outra funccedilatildeo eacute possuir declaraccedilotildees de todos os compo-nentes utilizados no projeto nomes iacutecones entre outros

As interfaces de usuaacuterio do Android satildeo definidas em arquivos XML (eXtensible MarkupLanguage)[26] nos quais estatildeo declarados todos os layouts e configuraccedilotildees das telas Essesarquivos de layout satildeo depois inflados e satildeo gerados os componentes visuais da aplicaccedilatildeoEssa estrutura tem como objetivo facilitar o design da interface do usuaacuterio jaacute que arquivosxml satildeo de faacutecil compreensatildeo do desenvolvedor

32 JSONJSON ou Javascript Object Notation eacute um formato de dados amplamente utilizado para

troca de informaccedilotildees entre programas Possui uma notaccedilatildeo simples para grande parte dosprogramadores pois se assemelha a convenccedilotildees utilizadas em linguagens de programaccedilatildeomuito conhecidas como C C++ Python e Java O objetivo eacute que ele seja de faacutecil entendi-mento tanto para pessoas como para maacutequinas[11]

Um arquivo JSON eacute organizado como um objeto contendo pares nomevalorseparadospor viacutergulas e dentro de chaves(lsquolsquo rsquorsquo) ou como um array que eacute uma lista de valores separa-dos por viacutergulas e entre colchetes(lsquo[lsquo rsquo]rsquo) Um valor por sua vez pode ser um objeto ou umarray mas tambeacutem um nuacutemero inteiro ou uma String entre outros

Um exemplo de arquivo JSON eacute

1 2 Carros [3 4 Nome Scen ic 5 Marca Renault 6 Ano 20127 8 9 Nome Sentra

10 Marca Nissan 11 Ano 200912 13 ]14

33 Google APIsAPIs (Application Program Interfaces) satildeo interfaces para facilitar a troca de informa-

ccedilotildees entre aplicaccedilotildees utilizando comandos especiacuteficos[15]

Ao longo do desenvolvimento algumas APIs fornecidas pela Google foram utilizadascomo fonte de informaccedilotildees adicionais para o aplicativo

∙ Google Maps Distance Matrix API Esta API eacute utilizada para obter o tempo emsegundos de trajeto entre dois pontos (latlong) no mapa podem ser consultados ostempos de trajeto de carro bicicleta a peacute e utilizando transporte puacuteblico[28] Esta eacute

18 TECNOLOGIAS UTILIZADAS 35

uma API web logo utiliza-se um request http para realizar uma consulta

Por exemplo o request

httpsmapsgoogleapiscommapsapidistancematrixjsonorigins=Seattleampdestinations=Victoria+BCampkey=[user_key]

retorna o JSON

1 2 des t ina t i on_addre s s e s [ Vic tor ia BC Canada ] 3 o r i g in_addre s s e s [ Sea t t l e WA EUA ] 4 rows [5 6 e lements [7 8 d i s t anc e 9 text 172 km

10 value 17166811 12 durat ion 13 text 4 horas 40 minutos 14 value 1680915 16 s t a tu s OK17 18 ]19 20 ] 21 s t a tu s OK22

no qual eacute possiacutevel obter o tempo de trajeto em segundos

∙ Google Maps Android API Esta API eacute utilizada para habilitar o uso de mapasda Google integrados agrave aplicaccedilatildeo jaacute disponiacutevel com todas as funcionalidades de zoome arrastar presentes no aplicativo nativo permitindo tambeacutem a personalizaccedilatildeo comoa adiccedilatildeo de pontos definidos pelo usuaacuterio ao mapa

34 Localizaccedilatildeo do UsuaacuterioOutro serviccedilo que foi utilizado com o intuito de obter o tempo de trajeto e a lista ordenada

de forma personalizada de restaurantes foi a localizaccedilatildeo do usuaacuterio que eacute obtida atraveacutes doGPS presente nos smartphones Um objeto de localizaccedilatildeo eacute criado e realiza a comunicaccedilatildeocom o serviccedilo de localizaccedilatildeo do aparelho Ao obter a localizaccedilatildeo ele lanccedila um evento quepode ser acessado por outras partes da aplicaccedilatildeo obtendo a localizaccedilatildeo mais atualizada dodispositivo

36 CONTROLE DE VERSAtildeO 19

35 Controle de VersatildeoControle de versatildeo eacute uma praacutetica usada para manter a organizaccedilatildeo do coacutedigo e do seu de-

senvolvimento quando muitos desenvolvedores colaboram conjuntamente Existem softwaresque auxiliam essa organizaccedilatildeo registrando todas as mudanccedilas feitas ao longo do processo eque possui recursos que permitem que vaacuterios usuaacuterios trabalhem nos mesmos arquivos semperda de informaccedilotildees

No caso do Git [8] o projeto fica organizado em uma estrutura de aacutervore onde cadacommit (checkpoints criados pelos membros do grupo durante o processo) eacute marcado porum noacute para onde se pode retornar quando necessaacuterio Existem tambeacutem estruturas chama-das branches que satildeo bifurcaccedilotildees na estrutura para que partes do projeto sejam criadasseparadamente sem interferir com a linha principal As branches depois satildeo unidas agrave linhaprincipal atraveacutes do comando merge

Neste projeto o serviccedilo de controle de versatildeo utilizado foi o Bitbucket [2] (que eacute um ser-viccedilo web-based de controle de versatildeo que utiliza Git) com auxiacutelio do software SourceTree[19]que eacute uma interface graacutefica para os serviccedilos do Bitbucket onde eacute possiacutevel visualizar com maisfacilidade as fases do desenvolvimento do projeto e realizar os comandos mais intuitivamente

Figura 32 Interface do SourceTree que mostra o controle de versionamento do projeto

36 Banco de dadosCom o intuito de deixar o aplicativo mais completo guardando informaccedilotildees dos usuaacuterios

e dos estabelecimentos optou-se por utilizar-se um banco de dados Alguns exemplos de

20 TECNOLOGIAS UTILIZADAS 36

banco de dados aprendidos no curso Laboratoacuterio de Banco de Dados foram

∙ SQL (Structured Query Language - Linguagem de Consulta Estruturada)[20] umalinguagem para atualizar deletar e requisitar informaccedilotildees atraveacutes de consultas emtabelas que possuem relaccedilatildeo entre si

∙ noSQL[13] um banco de dados que armazena e recupera informaccedilotildees modeladas deuma forma onde natildeo satildeo usadas tabelas relacionais

Como este uacuteltimo natildeo foi o foco da disciplina por falta de tempo decidiu-se por utilizaacute-lopara que o grupo pudesse aprender melhor esse modelo

Outra decisatildeo tomada foi a hospedagem dos dados na nuvem ou seja colocaacute-los em umservidor que natildeo seja local e conseguir acessaacute-los atraveacutes de uma conexatildeo via internet Dessemodo os dados sempre estaratildeo disponiacuteveis para serem consultados

361 Firebase

Buscando-se atender as decisotildees tomadas sobre o banco de dados procuramos um serviccedilode banco de dados da Google por conter ampla integraccedilatildeo com a plataforma de desenvolvi-mento Android por ser conhecido bastante utilizado e por possuir uma ampla comunidadede desenvolvedores dispostos a oferecer auxiacutelio em foacuteruns de discussatildeo de coacutedigos

Para atender esses requisitos escolheu-se o Firebase Realtime Database[6] desenvolvido edisponibilizado pela Google que consiste em um banco de dados noSQL com armazenamentona nuvem Esse serviccedilo armazena os dados do usuaacuterio no servidor da Google em formatoJSON e a cada alteraccedilatildeo sincroniza em tempo real com todos os clientes conectados

O grupo pode observar as seguintes vantagens de se trabalhar com a ferramenta existea sincronizaccedilatildeo em tempo real dos dados de todos os clientes e sua disponibilidade mesmocom o aplicativo offline ou seja quando o aplicativo natildeo estiver conectado a internet osdados do dispositivo moacutevel seratildeo armazenados e sincronizados com o banco de dados assimque a conexatildeo estiver disponiacutevel novamente Aleacutem disso os desenvolvedores possuem acessoa um console online (figura 33) onde o JSON eacute mostrado numa interface interativa de umaforma mais amigaacutevel e no qual eacute permitido editaacute-lo facilmente

37 CROWDSOURCING 21

Figura 33 Console online do Firebase onde os dados satildeo mostrados de forma mais amigaacutevel eintuitiva

Outra observaccedilatildeo feita foi que o Firebase Realtime Database funciona como o esperadose ele guardar uma coacutepia local dos dados em um arquivo JSON no celular Poreacutem isso natildeofoi visto como um problema pois como essa coacutepia pode ser salva em um arquivo texto oespaccedilo utilizado diminui consideravelmente

Na primeira vez que os dados satildeo criados e todas as vezes em que os dados forem atua-lizados por algum dispositivo moacutevel eacute enviada uma atualizaccedilatildeo que seraacute recebida atraveacutes delisteners por todos os aparelhos que utilizam o aplicativo para que eles atualizem seus res-pectivos JSONs Listeners satildeo interfaces de comunicaccedilatildeo que executam uma seacuterie de accedilotildeesassim que um outro evento esperado acontece

37 CrowdsourcingO termo Crowdsourcing tem origem nas palavras da liacutengua inglesa Crowd (multidatildeo) e

Outsourcing (terceirizaccedilatildeo) e eacute definido pelo dicionaacuterio Merriam Webster como A praacuteticade obtenccedilatildeo de serviccedilos ideias ou conteuacutedo solicitando contribuiccedilotildees de grandes grupos depessoas e especialmente da comunidade online [3] Esta praacutetica eacute utilizada para que sejapossiacutevel agrave comunidade contribuir com dados para algum programa ou serviccedilo como no apli-cativo Waze do qual a principal fonte de dados de tracircnsito acidentes e radares eacute obtida pormeio dos proacuteprios usuaacuterios

Capiacutetulo 4

Desenvolvimento do Projeto

Este capiacutetulo aborda o processo de desenvolvimento do projeto iniciado com o preen-chimento do diagrama Canvas e uma pesquisa de mercado direcionada ao usuaacuterio A partirdas informaccedilotildees coletadas foi possiacutevel projetar um aplicativo que atendesse as necessidadesexpostas pela pesquisa e selecionar as tecnologias necessaacuterias Tambeacutem eacute abordada a aplica-ccedilatildeo dos diferentes meacutetodos de caacutelculo da previsatildeo de tempo de espera que foram estudadose explicados no Capiacutetulo 2 Por fim satildeo expostas as diferentes versotildees do aplicativo duranteo processo e seus detalhes

41 Pesquisa de MercadoAntes de iniciar-se o desenvolvimento praacutetico algumas questotildees foram levantadas se

um aplicativo com as funcionalidades escolhidas seria de alguma forma uacutetil para o usuaacuterioe se sim qual metodologia deveria ser usada para que este produto fosse entregue o maiscompleto possiacutevel ateacute o final do ano Para responder a primeira pergunta desenvolveu-seum questionaacuterio

411 Pesquisa com o usuaacuterio

O questionaacuterio foi desenvolvido para avaliar a viabilidade do aplicativo e suas funciona-lidades e foi criado utilizando-se o Google Forms [9] Essa eacute uma ferramenta desenvolvidapelo Google que possibilita a criaccedilatildeo de formulaacuterios contendo diversos formatos de pergun-tas tanto dissertativas quanto de muacuteltipla escolha

Seguindo os princiacutepios de desenvolvimento de questionaacuterios [4] o conjunto de perguntasfoi mantido curto simples e de faacutecil entendimento Tambeacutem variou-se o tipo de questotildeesentre estruturadas (questotildees com respostas em forma de alternativas) e desestruturadas(questotildees com respostas em formato texto) seguindo esses mesmos princiacutepios para captarmelhor as informaccedilotildees dos entrevistados e evitar erros de entendimento

Com as respostas do questionaacuterio tinha-se o intuito de traccedilar um possiacutevel puacuteblico alvoconhecer seu modo de uso de dispositivos moacuteveis e validar a aplicabilidade de diferentesfuncionalidades pretendidas inicialmente sendo essas engajamento do usuaacuterio atraveacutes denotificaccedilotildees do sistema aceitaccedilatildeo de sugestotildees de locais alternativos avaliaccedilatildeo da existecircnciado problema que queremos resolver (se este aplicativo supre uma necessidade real do usuaacute-rio) e aceitaccedilatildeo do aplicativo

23

24 DESENVOLVIMENTO DO PROJETO 41

Para a divulgaccedilatildeo redes sociais como Facebook [5] e sistemas de mensagem instantacircneascomo WhatsApp foram usados e o envio de respostas foi restrito ateacute trecircs semanas apoacutes suaprimeira postagem Neste periacuteodo foram obtidas 210 respostas as quais ajudaram a definiros aspectos do sistema a ser desenvolvido

O questionaacuterio foi dividido em duas subseccedilotildees perfil do usuaacuterio e funcionalidade Comelas obteve-se os seguintes resultados

41 PESQUISA DE MERCADO 25

Questatildeo 1

Figura 41 Graacutefico pizza da distribuiccedilatildeo das respostas em relaccedilatildeo a idade dos pesquisados

As faixas de idade apresentadas estatildeo desbalanceadas por natildeo terem a mesma quantidadede anos em cada uma poreacutem essa divisatildeo foi pensada levando-se em conta a fluecircncia comtecnologia que cada idade possui Com o resultado verificou-se que do puacuteblico alcanccediladocom a pesquisa a maioria estaacute na faixa de 18 a 25 anos de idade assumida como parcelacom maior conhecimento tecnoloacutegico

Questatildeo 2

Figura 42 Graacutefico pizza da distribuiccedilatildeo das respostas em relaccedilatildeo ao sistema operacional

Esta questatildeo foi pensada para medir a porcentagem de cada sistema operacional pre-sente nos celulares do puacuteblico Com ela descobriu-se que 639 das pessoas dentro desse

26 DESENVOLVIMENTO DO PROJETO 41

grupo possuem o sistema Android enquanto 234 possuem iOS e 38 Windows phoneEssa pergunta foi incluiacuteda para um melhor direcionamento do desenvolvimento do aplicativo

Uma questatildeo levantada ao aplicar esse questionaacuterio foi a dificuldade que algumas pessoasencontraram para identificar a versatildeo do proacuteprio aparelho Poreacutem para manter a consistecircnciadas respostas decidiu-se natildeo mudar nada nesta questatildeo para remediar isso

Questatildeo 3

Figura 43 Graacutefico em barras da distribuiccedilatildeo de frequecircncias mensais de cada local analisado

41 PESQUISA DE MERCADO 27

Questatildeo 4

Figura 44 Graacutefico em pizza da distribuiccedilatildeo de interesse do usuaacuterio no tempo de espera de cadalocal

A princiacutepio viu-se muitas possiacuteveis aplicaccedilotildees para a previsatildeo de tempo de espera Paraentender qual seria a prioridade do puacuteblico as questotildees acima foram incluiacutedas A primeiraverificou a frequecircncia de visitas em alguns locais e a segunda serviu para analisar qualestabelecimento despertava mais interesse nos entrevistados quanto ao quesito fila Nos doiscasos restaurantes se destacaram com o maior interesse

Questatildeo 5

Figura 45 Graacutefico em barras da distribuiccedilatildeo de interesse do usuaacuterio por cada item avaliado

Para acompanhar o dado de espera e fornecer mais informaccedilotildees relevantes ao usuaacuteriosem potencial perguntou-se quais outras informaccedilotildees eles acham interessante saber sobre umdeterminado estabelecimento Com isso descobriu-se que a faixa de preccedilo o trajeto ateacute olocal e o cardaacutepio seriam dados importantes de se obter juntamente com o tempo de espera

28 DESENVOLVIMENTO DO PROJETO 41

Questatildeo 6O que vocecirc costuma fazer para evitar filasNeste ponto testou-se se a soluccedilatildeo proposta atraveacutes do aplicativo resolveria o problema dousuaacuterio de uma forma melhor do que a soluccedilatildeo atualmente utilizada Para isso foi perguntadoo que as pessoas fazem para evitar filas e as principais respostas foram

∙ Evitar horaacuterios de pico

∙ Chegar cedo

∙ Ir em outro lugar caso uma fila seja encontrada

∙ Tentar realizar reservas antecipadamente

∙ Se distrair com livroscelular

Notou-se que as soluccedilotildees utilizadas atualmente natildeo suprem as necessidades dos entre-vistados pois mesmo em horaacuterios natildeo convencionais pode-se encontrar filas ou quandodecide-se esperar na fila muito tempo eacute perdido Concluiu-se que a soluccedilatildeo proposta a par-tir do aplicativo resolve de forma mais abrangente o problema pois ajuda o usuaacuterio a evitarhoraacuterios de pico inesperados

Questatildeo 7

Figura 46 Graacutefico em pizza da distribuiccedilatildeo do meio de transporte utilizado pelos usuaacuterios

Essa questatildeo foi formulada com o objetivo de verificar quais meios de transporte seriamincluiacutedos com previsatildeo de tempo de trajeto no aplicativo Foi verificado que a maioria dosentrevistados utilizam transporte puacuteblico seguido por carro

41 PESQUISA DE MERCADO 29

Questatildeo 8

Figura 47 Graacutefico em pizza da distribuiccedilatildeo do interesse do usuaacuterio pela informaccedilatildeo fornecida

Questatildeo 9

Figura 48 Graacutefico em pizza da distribuiccedilatildeo de quantidade de quilocircmetros que o usuaacuterio sedeslocaria para ir a um local com menos fila

Com essas questotildees foi verificado que algo importante para o usuaacuterio eacute saber de outrosestabelecimentos que possam oferecer tempos de espera menores nas redondezas de onde ousuaacuterio se encontra que eacute uma das funcionalidades que desejaacutevamos utilizar no sistema

30 DESENVOLVIMENTO DO PROJETO 41

Questatildeo 10

Figura 49 Graacutefico em barras da distribuiccedilatildeo de sentimento do usuaacuterio em relaccedilatildeo a notificaccedilatildeode aplicativos

Questatildeo 11

Figura 410 Graacutefico em pizza da distribuiccedilatildeo de opiniatildeo do usuaacuterio sobre desabilitar notificaccedilotildeesem celular

42 PESQUISA DE MERCADO 31

Questatildeo 12

Figura 411 Graacutefico em pizza da distribuiccedilatildeo de opiniatildeo do usuaacuterio sobre habilitar GPS emcelular

A ideia inicial era poder usar o GPS para verificar a localizaccedilatildeo do usuaacuterio e enviarnotificaccedilotildees quando este estivesse parado nas proximidades de algum dos estabelecimentoscadastrados Para que essa funcionalidade possa existir eacute necessaacuterio que o aplicativo tenhaacesso agrave localizaccedilatildeo precisa da pessoa atraveacutes do GPS ou internet ateacute mesmo quando natildeoestiver aberto Aleacutem disso tambeacutem eacute necessaacuterio que as notificaccedilotildees estejam habilitadas parafinalizar esta interaccedilatildeo Entatildeo as perguntas 10 11 e 12 foram incluiacutedas no questionaacuterio Ob-servando as respostas foi possiacutevel verificar que 295 das pessoas que responderam deixamambas as funcionalidades habilitadas (GPS e notificaccedilotildees) Com isso pudemos prosseguircom essa ideia e tambeacutem pensar em possiacuteveis alternativas de interaccedilatildeo e engajamento como usuaacuterio

Por conta dessa pesquisa ter sido compartilhada atraveacutes das contas das redes sociais ecomunicadores dos componentes deste grupo sabe-se que este pode apresentar um resultadoviesado mas que mesmo assim natildeo deve ser desconsiderado e que muito ajudou a sanar asduacutevidas iniciaisComo resultado traccedilamos o perfil do entrevistado

∙ Faixa etaacuteria predominante entre 18 e 30 anos

∙ Possui sistema operacional Android (versotildees 4 5 e 6)

∙ Vai a restaurantes com certa frequecircncia mensal resultando em interesses sobre infor-maccedilotildees relacionadas a esse estabelecimento

∙ Costuma chegar cedo ou evitar os horaacuterios de pico para evitar filas nos locais

∙ Carro e transporte coletivo satildeo os principais meios de transporte

∙ Se deslocaria para um estabelecimento semelhante que possui menos fila contanto queeste fique num raio de 2km de distacircncia

32 DESENVOLVIMENTO DO PROJETO 43

42 Projeto do AplicativoO grupo comeccedilou o projeto com o preenchimento do diagrama Canvas(figura 412) apre-

sentado na Seccedilatildeo 21 Desse modo foi adquirida uma ideia mais consistente e uma base paracomeccedilar a implementaccedilatildeo

Figura 412 Diagrama Canvas preenchido pelo grupo

Com o modelo de negoacutecios definido e com base no resultado da pesquisa com o usuaacuterioapresentada na seccedilatildeo seguinte foram aplicadas pequenas mudanccedilas no projeto para melhoradequar-se agraves necessidades e ao perfil do puacuteblico alvo

Para o desenvolvimento foi utilizado um meacutetodo aacutegil baseado no scrum com sprints de3 a 4 semanas devido agrave disponibilidade dos membros do grupo Os encontros natildeo eram diaacute-rios como recomendado para o meacutetodo scrum tambeacutem em razatildeo da disponibilidade Haviamstand ups (discussotildees raacutepidas no comeccedilo de cada encontro) e retrospectivas ao final de cadasprint A cada sprint eram selecionadas histoacuterias e tarefas para serem executadas e caso natildeofossem concluiacutedas ao final da iteraccedilatildeo eram inseridas ao backlog e feitas no sprint seguinte

43 Aplicaccedilatildeo dos meacutetodos de caacutelculo de espera

431 Aplicando a meacutedia por periacuteodo

Aplicando-se no trecho abaixo a teacutecnica desenvolvida na Seccedilatildeo 242 para uma queryrealizada no dia 19082016 no intervalo de 2040 - 2055 analisa-se a semana anterior quepossua tais intervalos Assim o saacutebado dia 06082016 seraacute selecionado

43 APLICACcedilAtildeO DOS MEacuteTODOS DE CAacuteLCULO DE ESPERA 33

Entrada Qtd Pessoas Notificado Espera

6816 2043 2 862016 2053 1606

6816 2044 2 862016 2055 674

6816 2048 2 862016 2056 528

6816 2048 2 862016 2057 520

6816 2051 2 862016 2107 1118

6816 2051 3 862016 2110 1305

6816 2052 2 862016 2110 1273

6816 2052 2 862016 2111 1179

6816 2053 2 862016 2112 1217

6816 2053 2 NULL 59

6816 2054 3 862016 2119 1541

6816 2055 2 862016 2117 1444

6816 2055 2 862016 2120 1570

6816 2055 2 862016 2122 1613

Tabela 41 Trecho do dia 06082016 entre os horaacuterios das 2043 agraves 2055 um intervalo de 12minutos retirado dos dados da empresa Get In

Com esses dados obteve-se a meacutedia de espera de 1080 segundos (18 minutos) a qualseria sugerida para o usuaacuterio com a busca e desvio padratildeo de 465144719 segundos (775 mi-nutos) Dentro desse intervalo tem-se como maacuteximo tempo de espera 1613 segundos (2688minutos) e como miacutenimo 59 segundos (1 minuto) Analisando-se os dados do dia 19082016no mesmo periacuteodo temos

34 DESENVOLVIMENTO DO PROJETO 43

Entrada Pessoas Notificado Espera Erro previsatildeo Erro p 2 pessoas

19816 2043 2 8192016 2051 544 -563 522

19816 2043 2 8192016 2052 605 -502 461

19816 2044 2 8192016 2056 723 -384 343

19816 2046 4 8192016 2119 1988 881 X

19816 2048 2 8192016 2102 919 188 147

19816 2051 2 8192016 2103 821 286 245

19816 2051 3 8192016 2108 1773 666 X

19816 2053 2 8192016 2110 1083 24 -17

19816 2053 2 8192016 2111 1105 2 -39

19816 2053 2 8192016 2112 1169 62 -103

19816 2055 2 8192016 2114 1447 340 -381

Tabela 42 Trecho do dia 19082016 entre os horaacuterios das 2043 agraves 2055um intervalo de 12minutos retirado dos dados da empresa Get In

Ou seja se um grupo chegasse dentro desse periacuteodo e a previsatildeo dada fosse a meacutediaobtida anteriormente o erro calculado pela diferenccedila entre o tempo sugerido e o real tempode espera estaria no intervalo de 15 minutos para menos ou 8 minutos para mais Sendoesse um valor aceitaacutevel

Um proacuteximo passo eacute a restriccedilatildeo dos registros a grupos com 2 integrantes Com tal restri-ccedilatildeo a previsatildeo de espera eacute de 1066 segundos (1776 minutos) Aplicando essa nova meacutedia aosregistros com 2 integrantes do dia 19082016 obteacutem-se um erro (Coluna 6 - erro previsatildeopara 2 pessoas) menor do que o anterior O intervalo do erro calculado neste caso seria de 522segundos (87 minutos) para mais e 381 segundos (635 minutos) para menos Este resultadoeacute ainda mais favoraacutevel mostrando que a inclusatildeo de mais filtros para o caacutelculo da previsatildeomelhorou o tempo previsto

432 Aplicando teoria das filas

A teoria das filas (Seccedilatildeo 242) eacute uma ferramenta muito completa que calcula muitos dadosuacuteteis para a previsatildeo de espera Contudo por conta da necessidade de informaccedilotildees sobreo tempo de atendimento a qual natildeo estaacute contida no banco utilizado esta teoria natildeo podeser aplicada neste caso Poreacutem esse dado pode ter um valor assumido para que a utilizaccedilatildeodessa teoria fosse possiacutevel entretanto a sua precisatildeo ficaria comprometida e imprevisiacutevel

433 Aplicando redes neurais

Para aplicar o que foi estudado na Seccedilatildeo 242 foi executado o software com o mecircs deAgosto como teste o mecircs de Setembro como treino e o limite do erro quadraacutetico como 001 eobteve-se a tabela presente no apecircndice B Na tabela podemos ver o tempo de fila esperadoou seja o tempo contido na tabela do mecircs de Setembro o tempo que o algoritmo deu comoresposta baseado no mecircs de Agosto e o erro entre eles respectivamente

44 DEFINICcedilAtildeO DA INTERFACE DO APLICATIVO 35

Figura 413 Software Multiple Back-Propagation com a configuraccedilatildeo escolhida para os dadosdisponiacuteveis

Mesmo o erro se mantendo em 0018 os dados obtidos possuem um erro padratildeo de 15minutos Se mais dados forem adicionados o criteacuterio de parada pode ser atingido e assimuma previsatildeo melhor pode ser alcanccedilada

434 Conclusatildeo sobre os meacutetodos estudados

Dentre todas as possibilidades estudadas visualizamos na meacutedia por periacuteodo a melhoropccedilatildeo assumindo os dados disponiacuteveis para teste Se mais paracircmetros fossem fornecidoscomo o tempo de atendimento a teoria das filas seria uma boa opccedilatildeo para fornecer a pre-visatildeo de espera E se mais dados estivessem disponiacuteveis as redes neurais conseguiriam umaaproximaccedilatildeo melhor e assim seria uma boa opccedilatildeo tambeacutem

44 Definiccedilatildeo da Interface do aplicativoComo um primeiro protoacutetipo foi desenvolvida uma interface simples que tinha como tela

de iniacutecio um mapa com um campo para buscas na parte superior

36 DESENVOLVIMENTO DO PROJETO 44

Figura 414 Fluxo de telas do primeiro protoacutetipo

Ao efetuar uma busca por algum estabelecimento uma tela mostrando o tempo de esperaaproximado da fila no local era exibida junto com bototildees que permitiam selecionar o meiode transporte visualizar outras opccedilotildees ou dar iniacutecio a rota ateacute o local desejado Tambeacutemhavia uma notificaccedilatildeo para quando a pessoa estivesse parada proacutexima a um restaurantecadastrado que direcionaria o usuaacuterio a uma tela com um cronocircmetro do tempo de esperana fila

Para testar essa visualizaccedilatildeo escolhemos algumas pessoas e realizamos um teste deusabilidade[22] este teste eacute feito da seguinte forma

44 DEFINICcedilAtildeO DA INTERFACE DO APLICATIVO 37

Uma contextualizaccedilatildeo eacute feita para o voluntaacuterio e entatildeo uma tarefa eacute passada para sercompletada Os integrantes do grupo observam dificuldades enfrentadas pelo entrevistado etomam notas Esse teste eacute repetido algumas vezes e seu resultado eacute coletado para avaliaccedilatildeoe modificaccedilatildeo das funcionalidades

Figura 415 Tela de detalhes de um restaurante(segunda versatildeo)

Notou-se que algumas funcionalidadespareceram confusas e natildeo intuitivas porexemplo natildeo ficou claro se o tempo mos-trado era de trajeto ou de espera na filanem qual era o meio de transporte utili-zado

Logo esse protoacutetipo foi reformuladocom o intuito de melhorar a experi-ecircncia do usuaacuterio com o nosso aplica-tivo

Foram colocados aleacutem do tempo deespera da fila o tempo que o usuaacuteriolevaria para chegar ateacute o local selecio-nado (conforme o tipo de transporte es-colhido) e a quantidade estimada de pes-soas na fila O tempo total (espera so-mado ao tempo de deslocamento) ga-nhou destaque entre as informaccedilotildees doestabelecimento e o botatildeo que direcionao usuaacuterio ao trajeto ficou mais especiacute-fico

Tambeacutem cogitou-se a possibilidade deadicionar login e um perfil de usuaacuteriojunto com uma lista de restaurantes favo-ritos

O fluxo das telas deste novo protoacutetipo ficou como mostra o esquema a seguir

38 DESENVOLVIMENTO DO PROJETO 44

Figura 416 Fluxo de telas do segundo protoacutetipo

44 DEFINICcedilAtildeO DA INTERFACE DO APLICATIVO 39

Figura 417 Tela de detalhes de um restaurante(terceira versatildeo)

Apoacutes outras avaliaccedilotildees mais algumaspequenas alteraccedilotildees foram realizadas nainterface Foi decidido que seria inviaacute-vel estimar o nuacutemero de pessoas nafila entatildeo essa funcionalidade foi remo-vida

Notificaccedilotildees foram adicionadas paraquando o usuaacuterio estiver parado na aacutereado restaurante para que ele possa con-tribuir com informaccedilotildees sobre a fila quepegou aleacutem de um botatildeo de contri-buiccedilatildeo ter sido inserido na tela ini-cial

40 DESENVOLVIMENTO DO PROJETO 45

O fluxo de telas do aplicativo atual ficou da seguinte forma

Figura 418 Fluxo de telas do terceiro protoacutetipo

46 EXPLICACcedilAtildeO DAS FUNCIONALIDADES 41

45 Explicaccedilatildeo das funcionalidadesEsta seccedilatildeo explica as funcionalidades do produto utilizando a figura 418

A tela inicial (3) exibe uma lista de restaurantes incluindo seus respectivos tempos detrajeto e tempo de espera na fila Ao clicar no botatildeo ldquo+rdquo uma caixa de diaacutelogo eacute aberta(4) onde eacute possiacutevel adicionar o tempo que o usuaacuterio esperou na fila Primeiro eacute escolhido orestaurante depois a data e hora que a pessoa chegou na fila e por fim o tempo de esperaem minutos Ao tocar em ldquoEnviar Feedback rdquo os dados satildeo incluiacutedos no banco de dados eatualizados para os outros usuaacuterios Assim eacute apicado o conceito de Crowdsourcing no apli-cativo

Ao tocar em um item da lista de restaurantes seraacute aberta a tela de detalhes de um res-taurante (5) na qual eacute possiacutevel ver com mais clareza os tempos de trajeto e espera o tempototal o endereccedilo do estabelecimento e um pequeno mapa centrado no local Pressionandoo botatildeo ldquoDireccedilotildeesrdquo o usuaacuterio seraacute redirecionado ao aplicativo de mapas de sua preferecircnciano caso do exemplo (8) o Google Maps jaacute traccedilando a rota da localizaccedilatildeo do usuaacuterio para oestabelecimento em questatildeo

Novamente na tela inicial tocando no iacutecone de lupa eacute possiacutevel realizar uma busca digi-tando o nome do estabelecimento na caixa de texto a qual exibe sugestotildees dependendo doque foi digitado Ao clicar em um dos resultados da busca o usuaacuterio eacute novamente direcionadopara a tela de detalhes do restaurante (5)

Tambeacutem eacute possiacutevel tocar no iacutecone de mapa na tela inicial onde seraacute mostrado um mapacentrado na localizaccedilatildeo do usuaacuterio

Ao ficar parado por um tempo em um mesmo local proacuteximo a um estabelecimentocadastrado o usuaacuterio eacute perguntado em uma notificaccedilatildeo quanto tempo ele permaneceu nafila Ao tocar na notificaccedilatildeo a caixa de diaacutelogo para feedback do usuaacuterio seraacute aberta (4) jaacutecom o restaurante preenchido e apoacutes o feedback a janela seraacute fechada e os dados enviadosao banco de dados

46 Implementaccedilatildeo do banco de dadosO banco de dados do aplicativo foi modelado e populado em forma de aacutervore (Fi-

gura 419) de forma a facilitar o acesso aos dados necessaacuterios ao aplicativo No primeironiacutevel estatildeo os ids dos restaurantes Cada id de restaurante guarda a localizaccedilatildeo (latitudelongitude) do restaurante o nome o endereccedilo e um objeto fila O objeto fila guarda todos osdias da semana (domingo a saacutebado) e cada dia da semana possui 24 campos um para cadahora do dia Cada hora possui o tempo meacutedio de espera da fila naquela hora e um peso paraesse tempo O peso eacute um valor que aumenta de acordo com o nuacutemero de feedbacks dadospara que o novo valor do tempo meacutedio seja calculado de forma consistente

Modelamos o banco de dados de uma forma que respeitasse uma hierarquia de dados

42 DESENVOLVIMENTO DO PROJETO 46

Figura 419 Aacutervore que ilustra a organizaccedilatildeo de um restaurante no banco de dados

Com o banco de dados jaacute populado o aplicativo faz consultas e atualizaccedilotildees de dadosConsultas satildeo feitas ao criar a tela de listagem de restaurantes e de detalhes de um restau-rante consultado As atualizaccedilotildees satildeo feitas quando o usuaacuterio manda o feedback de tempo deespera em um estabelecimento em determinado horaacuterio o aplicativo calcula a nova meacutedia eatualiza o campo do respectivo horaacuterio

Capiacutetulo 5

Conclusatildeo

Ao longo dos capiacutetulos deste trabalho pocircde-se acompanhar todo o processo de criaccedilatildeo edesenvolvimento do aplicativo que apoacutes finalizado foi batizado com o nome Queue

Comeccedilando com um problema para o qual o grupo almejava oferecer uma soluccedilatildeoacabou-se por adentrar-se um pouco no campo da Estatiacutestica e estudar diversas metodo-logias que poderiam ser uacuteteis para fornecer um caacutelculo de previsatildeo de espera meacutedia porperiacuteodo aplicaccedilatildeo da teoria das filas e utilizaccedilatildeo de redes neurais

Atraveacutes de uma parceria com a empresa GetIn obteve-se acesso a uma grande quantidadede dados e foi possiacutevel utilizaacute-los em anaacutelises feitas nas metodologias escolhidas conseguindoassim resultados relevantes Por meio destes foi feita a escolha de um dos meacutetodos para ocaacutelculo da previsatildeo de filas a meacutedia por periacuteodo

Aleacutem desses estudos ao longo do ano o grupo aprendeu a desenvolver para a plata-forma Android sobre a qual nenhum dos integrantes tinha conhecimento preacutevio Tambeacutemfoi possiacutevel aprender e utilizar a metodologia aacutegil com Scrum para guiar o processo de de-senvolvimento

Ao fim do ciclo de desenvolvimento conseguiu-se entregar um aplicativo em funciona-mento que fornece a previsatildeo de espera no instante da consulta de estabelecimentos cadas-trados no banco de dados armazenado na nuvem

Na versatildeo atual do aplicativo natildeo foi implementado um sistema para o cadastro de novosestabelecimentos Isso soacute eacute possiacutevel atraveacutes da inserccedilatildeo direta no banco de dados atraveacutes dainterface fornecida pelo console do Firebase Atualmente estatildeo cadastrados 5 restaurantesos quais foram visitados durante o desenvolvimento do projeto Para que o cadastro deestabelecimentos escale seria necessaacuterio a implementaccedilatildeo de uma funcionalidade que permitaao usuaacuterio adicionar novos estabelecimentos a partir de locais disponiacuteveis na API de locaisda Google

43

45

46 APEcircNDICE A

Apecircndice A

Dados coletados

Figura A1 Dados de tempo de espera para grupos de tamanhos variados para cada horaacuterio e emcada dia da semana obtidos em entrevista em restaurantes Outback Steakhouse Shopping Uniatildeo nomecircs de outubro

Referecircncias Bibliograacuteficas

[1] Backpropagation httpmbpsourceforgenet Accesso em Janeiro 2017 14

[2] Bitbucket httpsbitbucketorgproduct Accesso em Dezembro 2016 19

[3] Crowdsourcing httpswwwmerriam-webstercomdictionarycrowdsourcing Ac-cesso em Novembro 2016 21

[4] Designing a survey httpwwwsciencebuddiesorgscience-fair-projectsproject_ideasSoc_surveyshtml Accesso em Outubro 2016 4 23

[5] Facebook httpswwwfacebookcom Accesso em Novembro 2016 24

[6] Firebase httpsfirebasegooglecom Accesso em Agosto 2016 20

[7] Getin app httpswwwgetinappcombrhomesao-paulo Accesso em Novembro2016 9

[8] Git 11 primeiros passos - sobre controle de versatildeo httpsgit-scmcombookpt-brv1Primeiros-passos-Sobre-Controle-de-Vers Accesso em Novembro 2016 19

[9] Google forms httpsdocsgooglecomforms Accesso em Novembro 2016 23

[10] Guia definitivo do project model canvas Project Builder 3

[11] Jsonorg introducing json httpwwwjsonorg Accesso em Novembro 2016 17

[12] Manifesto para desenvolvimento Aacutegil de software httpagilemanifestoorgisoptbrmanifestohtml Accesso em Novembro 2016 5

[13] Nosql httpsenwikipediaorgwikiNoSQL Accesso em Novembro 2016 20

[14] Outback steakhouse httpswwwoutbackcombrhome Accesso em Novembro 20169

[15] Restful api development with lumen microframework httpsbelitsoftcomlaravel-development-servicesapi-development Accesso em Novembro 2016 17

[16] Scrum httpswwwatlassiancomagilescrum Accesso em Novembro 2016 5

[17] Smartphone os market share 2016 q2 httpwwwidccomprodservsmartphone-os-market-sharejsp Accesso em Novembro 2016 15

[18] Smartphone os sales market share kantar worldpanel comtech httpwwwkantarworldpanelcomsmartphone-os-market-share Accesso em Novembro 2016 15

[19] Sourcetree httpswwwsourcetreeappcom Accesso em Dezembro 2016 19

47

48 REFEREcircNCIAS BIBLIOGRAacuteFICAS

[20] Sql httpsptkhanacademyorgcomputingcomputer-programmingsql Accesso emDezembro 2016 20

[21] Trello httpstrellocom Accesso em Novembro 2016 6

[22] Usability test httpsenwikipediaorgwikiUsability_testing Accesso em Novembro2016 36

[23] Versionone 2012 agile dev survey httpswwwversiononecompdf7th-Annual-State-of-Agile-Development-Surveypdf Accesso em Novembro 2016 5

[24] Waze httpswwwwazecom Accesso em Novembro 2016 1

[25] What is an open source httpsopensourcecomresourceswhat-open-source Accessoem Novembro 2016 15

[26] Xml tutorial httpwwww3schoolscomxml Accesso em Novembro 2016 17

[27] Paulo F Cabral dos Anjos Jr Aron Ifanger Maciel Christopher Silva de Paacutedua Com-posiccedilatildeo de carteiras de accedilotildees utilizando modelo de redes neurais artificiais e modelo derisco e retorno de Markowitz 2012 14

[28] Google Distance matrix api documentation httpsdevelopersgooglecommapsdocumentationdistance-matrix Accesso em Novembro 2016 17

[29] Alan Klement Designing features using job stories httpsblogintercomcomusing-job-stories-design-features-ui-ux Accesso em Novembro 2016 6

[30] Azmat Nafees Queuing theory and its application analysis of the sales checkout opera-tion in ica supermarket httpwwwstatisticsduseessaysD07ENafeespdf Accessoem Novembro 2016 12

[31] Eric Ries A Startup Enxuta Lua de papel primeira ediccedilatildeo edition 2012 3

  • Introduccedilatildeo
    • Motivaccedilatildeo
    • Trabalho Proposto
    • Estrutura da monografia
      • Estudos Preliminares
        • Desenvolvimento de Startups
          • Desenvolvimento de Questionaacuterios
            • Metodologia Aacutegil
            • Jobs to be done
            • Caacutelculo da previsatildeo do tempo de espera na fila
              • Descriccedilatildeo do problema
              • Meacutetodos de caacutelculo da espera
                  • Tecnologias utilizadas
                    • O sistema Android
                      • Organizaccedilatildeo de uma aplicaccedilatildeo Android
                        • JSON
                        • Google APIs
                        • Localizaccedilatildeo do Usuaacuterio
                        • Controle de Versatildeo
                        • Banco de dados
                          • Firebase
                            • Crowdsourcing
                              • Desenvolvimento do Projeto
                                • Pesquisa de Mercado
                                  • Pesquisa com o usuaacuterio
                                    • Projeto do Aplicativo
                                    • Aplicaccedilatildeo dos meacutetodos de caacutelculo de espera
                                      • Aplicando a meacutedia por periacuteodo
                                      • Aplicando teoria das filas
                                      • Aplicando redes neurais
                                      • Conclusatildeo sobre os meacutetodos estudados
                                        • Definiccedilatildeo da Interface do aplicativo
                                        • Explicaccedilatildeo das funcionalidades
                                        • Implementaccedilatildeo do banco de dados
                                          • Conclusatildeo
                                          • Dados coletados
                                          • Referecircncias Bibliograacuteficas

24 CAacuteLCULO DA PREVISAtildeO DO TEMPO DE ESPERA NA FILA 13

∙ Modelo de fila de canal uacutenico com fila uacutenica e muacuteltiplos atendimentos paralelos (Fi-gura 28)

∙ Modelo de fila de canal uacutenico com muacuteltiplas filas e muacuteltiplos atendimentos paralelos(Figura 29)

Figura 27 Modelo de fila de canal uacutenico com fila uacutenica e atendimento uacutenico

Figura 28 Modelo de fila de canal uacutenico com fila uacutenica e muacuteltiplos atendimentos paralelos

Figura 29 Modelo de fila de canal uacutenico com muacuteltiplas filas e muacuteltiplos atendimentos paralelos

Tambeacutem por Azmat Nafees nesses modelos trecircs subprocessos podem ser vistos

∙ Processo de chegada Eacute um processo contiacutenuo do evento ldquochegada de clientesrdquo ouseja quando o evento ocorre o processo aguarda a ocorrecircncia do proacuteximo evento Esseevento coloca um cliente na fila quando ele chega

14 ESTUDOS PRELIMINARES 24

∙ Processo de espera Eacute um processo que inclui o evento ldquocomece a servir o proacuteximocliente da filardquo que retira um cliente da fila o coloca no processo de atendimento eespera a conclusatildeo do evento ldquocliente servidordquo para recomeccedilar Nele se trabalha comtamanho e disciplina da fila

∙ Processo de atendimento Eacute um processo que inclui o evento ldquocliente servidordquo eespera a conclusatildeo do evento ldquocomece a servir o proacuteximo cliente da filardquo para recomeccedilarNele se trabalha com tipo taxa e tempo de atendimento

Dentre esses 3 modelos o que mais se encaixa na situaccedilatildeo de um restaurante eacute o segundomodelo canal uacutenico com fila uacutenica e muacuteltiplos atendimentos paralelos O processo de chegadade novos clientes na fila eacute tido como aleatoacuterio

Terceiro meacutetodo Rede Neural

Rede Neural eacute uma teacutecnica computacional inspirada no sistema nervoso que com o auxiacute-lio de um modelo matemaacutetico apresenta respostas para problemas de decisatildeo Esses modelosfuncionam da seguinte forma primeiro um conjunto de dados (conjunto de treinamento) eacuteapresentado ao sistema e este aprende com ele atraveacutes de reconhecimento de padratildeo entatildeocoloca-se o sistema para analisar os dados (conjunto de teste) para os quais deseja-se obteralgum resultado Este processo eacute chamado de aprendizagem de maacutequina Quanto melhor forseu treinamento mais precisas seratildeo as respostas para o segundo conjunto

Uma rede neural eacute formada por subestruturas chamadas neurocircnios Um neurocircnio tem oseguinte funcionamento ele recebe como entrada sinais cada sinal recebe um peso de acordocom a influecircncia dele na saiacuteda e uma soma eacute feita para produzir o niacutevel de atividade entatildeodependendo se o niacutevel de atividade exceder o limite dado pela funccedilatildeo de transferecircncia aresposta eacute produzida[27]

Software Multiple Back-Propagation

Para implementar a soluccedilatildeo baseada em redes neurais foi usado o Software MultipleBack-Propagation [1] Este eacute um software de faacutecil utilizaccedilatildeo que fornece uma rede a qualaprende atraveacutes do processo de propagaccedilatildeo inversa Esse meacutetodo baseia-se na comparaccedilatildeodos dados esperados (conjunto de teste) com os dados obtidos a partir do treinamento senecessaacuterio adaptaccedilotildees satildeo feitas a estrutura da rede para melhor aproximar aos dados doconjunto teste e isso eacute chamado de propagaccedilatildeo inversa

Por se tratar de um meacutetodo de aprendizagem de maacutequinas para se obter um resultadodeve-se treinar o algoritmo Primeiramente submete-se o conjunto de treinamento ao soft-ware para isso foi escolhido o mecircs de Agosto O criteacuterio de parada para o treino eacute o erroquadraacutetico meacutedio o qual teve seu valor atribuiacutedo para 001

Capiacutetulo 3

Tecnologias utilizadas

31 O sistema AndroidAndroid eacute um Sistema operacional open source (software de coacutedigo aberto o qual as

pessoas podem acessar e modificar para contribuir com o projeto [25]) e para dispositivosmoacuteveis desenvolvido pela Google baseado no Kernel do Linux e utilizado principalmente emdispositivos touchscreen Atualmente o Android eacute o sistema operacional que deteacutem a maiorparcela do mercado[17] com 836 dos dispositivos contra 134 do iOS da Apple

A Google tambeacutem oferece um ambiente de desenvolvimento para a plataforma Androidchamado Android Studio no qual os aplicativos satildeo criados e exportados para os dispositi-vos moacuteveis Aplicativos Android satildeo programados na linguagem Java com vaacuterias bibliotecasdisponibilizadas pela Google para suporte ao sistema operacional

A escolha da plataforma foi feita principalmente por conta de o sistema possuir a maiorparte dos usuaacuterios de Smartphones e tambeacutem pela ampla comunidade ativa de desenvolve-dores agrave qual se pode recorrer em casos de duacutevidas e problemas tornando suas resoluccedilotildeesmais raacutepidas e com muacuteltiplas alternativas Outros motivos que contribuiacuteram para a escolhado Android foram

∙ A disponibilidade do ambiente de desenvolvimento Android Studio que possui todosos recursos necessaacuterios para desenvolver um aplicativo funcional logo apoacutes a instalaccedilatildeosem a necessidade de utilizar outras dependecircncias as quais satildeo gerenciadas automati-camente pelo proacuteprio software

∙ O fato de no mercado brasileiro o sistema Android se encontrar em 918 dos dispo-sitivos segundo pesquisa da Kantar[18] e dado a pesquisa realizada para definiccedilatildeo depuacuteblico alvo onde foi possiacutevel perceber que 639 dos entrevistados utilizam smartpho-nes com sistema Android

∙ A utilizaccedilatildeo da linguagem de programaccedilatildeo Java para desenvolvimento que jaacute eraconhecida e fora utilizada anteriormente ao contraacuterio das linguagens Objective C eSwift linguagens utilizadas para desenvolver aplicativos para o sistema iOS Assimcomo a disponibilidade de dispositivos por parte do grupo que em sua maioria era decelulares com o sistema Android

15

16 TECNOLOGIAS UTILIZADAS 31

Figura 31 Parcela de mercado dos dispositivos no Brasil

311 Organizaccedilatildeo de uma aplicaccedilatildeo Android

Aplicativos Android satildeo divididos em componentes Haacute quatro tipos de componentespresentes Activities (ou atividades) Services (ou serviccedilos) Content providers (ou provedoresde conteuacutedo) Broadcast receivers (ou receptores de transmissatildeo)

∙ Activities Satildeo as telas e interfaces do usuaacuterio Cada tela de uma aplicaccedilatildeo eacute repre-sentada por uma activity e cada activity eacute independente de outras apesar de seremcomponentes de uma mesma aplicaccedilatildeo Isso se daacute pelo fato de haver a possibilidade deutilizar activities de aplicativos durante a execuccedilatildeo de outros Atividades satildeo iniciadase se comunicam entre si atraveacutes de objetos chamados Intent que transferem um pacotede dados que pode ser carregado no iniacutecio da nova atividade

∙ Services Sempre satildeo executados em segundo plano sem interferir na experiecircncia dousuaacuterio geralmente para realizar operaccedilotildees longas ou realizar operaccedilotildees de troca dedados enquanto o usuaacuterio estaacute utilizando outra aplicaccedilatildeo em primeiro plano

∙ Content Providers Satildeo gerenciadores de dados de aplicaccedilotildees Android utilizadospara ler e salvar dados compartilhados ou secretos dos aplicativos e do sistema

∙ Broadcast Receivers Satildeo componentes responsaacuteveis por obter eventos que aconte-ceram em outras aplicaccedilotildees ou no sistema e direcionar dados sobre esses eventos paraeventuais aplicaccedilotildees que necessitem destes dados alguns exemplos de eventos obtidospelos receptores de transmissatildeo satildeo tela desligada e bateria fraca

Aleacutem dos componentes uma parte importante de uma aplicaccedilatildeo Android eacute o ArquivoManifest que eacute uma declaraccedilatildeo de permissotildees serviccedilos e exigecircncias de hardware necessaacuterios

33 JSON 17

para o funcionamento do aplicativo Outra funccedilatildeo eacute possuir declaraccedilotildees de todos os compo-nentes utilizados no projeto nomes iacutecones entre outros

As interfaces de usuaacuterio do Android satildeo definidas em arquivos XML (eXtensible MarkupLanguage)[26] nos quais estatildeo declarados todos os layouts e configuraccedilotildees das telas Essesarquivos de layout satildeo depois inflados e satildeo gerados os componentes visuais da aplicaccedilatildeoEssa estrutura tem como objetivo facilitar o design da interface do usuaacuterio jaacute que arquivosxml satildeo de faacutecil compreensatildeo do desenvolvedor

32 JSONJSON ou Javascript Object Notation eacute um formato de dados amplamente utilizado para

troca de informaccedilotildees entre programas Possui uma notaccedilatildeo simples para grande parte dosprogramadores pois se assemelha a convenccedilotildees utilizadas em linguagens de programaccedilatildeomuito conhecidas como C C++ Python e Java O objetivo eacute que ele seja de faacutecil entendi-mento tanto para pessoas como para maacutequinas[11]

Um arquivo JSON eacute organizado como um objeto contendo pares nomevalorseparadospor viacutergulas e dentro de chaves(lsquolsquo rsquorsquo) ou como um array que eacute uma lista de valores separa-dos por viacutergulas e entre colchetes(lsquo[lsquo rsquo]rsquo) Um valor por sua vez pode ser um objeto ou umarray mas tambeacutem um nuacutemero inteiro ou uma String entre outros

Um exemplo de arquivo JSON eacute

1 2 Carros [3 4 Nome Scen ic 5 Marca Renault 6 Ano 20127 8 9 Nome Sentra

10 Marca Nissan 11 Ano 200912 13 ]14

33 Google APIsAPIs (Application Program Interfaces) satildeo interfaces para facilitar a troca de informa-

ccedilotildees entre aplicaccedilotildees utilizando comandos especiacuteficos[15]

Ao longo do desenvolvimento algumas APIs fornecidas pela Google foram utilizadascomo fonte de informaccedilotildees adicionais para o aplicativo

∙ Google Maps Distance Matrix API Esta API eacute utilizada para obter o tempo emsegundos de trajeto entre dois pontos (latlong) no mapa podem ser consultados ostempos de trajeto de carro bicicleta a peacute e utilizando transporte puacuteblico[28] Esta eacute

18 TECNOLOGIAS UTILIZADAS 35

uma API web logo utiliza-se um request http para realizar uma consulta

Por exemplo o request

httpsmapsgoogleapiscommapsapidistancematrixjsonorigins=Seattleampdestinations=Victoria+BCampkey=[user_key]

retorna o JSON

1 2 des t ina t i on_addre s s e s [ Vic tor ia BC Canada ] 3 o r i g in_addre s s e s [ Sea t t l e WA EUA ] 4 rows [5 6 e lements [7 8 d i s t anc e 9 text 172 km

10 value 17166811 12 durat ion 13 text 4 horas 40 minutos 14 value 1680915 16 s t a tu s OK17 18 ]19 20 ] 21 s t a tu s OK22

no qual eacute possiacutevel obter o tempo de trajeto em segundos

∙ Google Maps Android API Esta API eacute utilizada para habilitar o uso de mapasda Google integrados agrave aplicaccedilatildeo jaacute disponiacutevel com todas as funcionalidades de zoome arrastar presentes no aplicativo nativo permitindo tambeacutem a personalizaccedilatildeo comoa adiccedilatildeo de pontos definidos pelo usuaacuterio ao mapa

34 Localizaccedilatildeo do UsuaacuterioOutro serviccedilo que foi utilizado com o intuito de obter o tempo de trajeto e a lista ordenada

de forma personalizada de restaurantes foi a localizaccedilatildeo do usuaacuterio que eacute obtida atraveacutes doGPS presente nos smartphones Um objeto de localizaccedilatildeo eacute criado e realiza a comunicaccedilatildeocom o serviccedilo de localizaccedilatildeo do aparelho Ao obter a localizaccedilatildeo ele lanccedila um evento quepode ser acessado por outras partes da aplicaccedilatildeo obtendo a localizaccedilatildeo mais atualizada dodispositivo

36 CONTROLE DE VERSAtildeO 19

35 Controle de VersatildeoControle de versatildeo eacute uma praacutetica usada para manter a organizaccedilatildeo do coacutedigo e do seu de-

senvolvimento quando muitos desenvolvedores colaboram conjuntamente Existem softwaresque auxiliam essa organizaccedilatildeo registrando todas as mudanccedilas feitas ao longo do processo eque possui recursos que permitem que vaacuterios usuaacuterios trabalhem nos mesmos arquivos semperda de informaccedilotildees

No caso do Git [8] o projeto fica organizado em uma estrutura de aacutervore onde cadacommit (checkpoints criados pelos membros do grupo durante o processo) eacute marcado porum noacute para onde se pode retornar quando necessaacuterio Existem tambeacutem estruturas chama-das branches que satildeo bifurcaccedilotildees na estrutura para que partes do projeto sejam criadasseparadamente sem interferir com a linha principal As branches depois satildeo unidas agrave linhaprincipal atraveacutes do comando merge

Neste projeto o serviccedilo de controle de versatildeo utilizado foi o Bitbucket [2] (que eacute um ser-viccedilo web-based de controle de versatildeo que utiliza Git) com auxiacutelio do software SourceTree[19]que eacute uma interface graacutefica para os serviccedilos do Bitbucket onde eacute possiacutevel visualizar com maisfacilidade as fases do desenvolvimento do projeto e realizar os comandos mais intuitivamente

Figura 32 Interface do SourceTree que mostra o controle de versionamento do projeto

36 Banco de dadosCom o intuito de deixar o aplicativo mais completo guardando informaccedilotildees dos usuaacuterios

e dos estabelecimentos optou-se por utilizar-se um banco de dados Alguns exemplos de

20 TECNOLOGIAS UTILIZADAS 36

banco de dados aprendidos no curso Laboratoacuterio de Banco de Dados foram

∙ SQL (Structured Query Language - Linguagem de Consulta Estruturada)[20] umalinguagem para atualizar deletar e requisitar informaccedilotildees atraveacutes de consultas emtabelas que possuem relaccedilatildeo entre si

∙ noSQL[13] um banco de dados que armazena e recupera informaccedilotildees modeladas deuma forma onde natildeo satildeo usadas tabelas relacionais

Como este uacuteltimo natildeo foi o foco da disciplina por falta de tempo decidiu-se por utilizaacute-lopara que o grupo pudesse aprender melhor esse modelo

Outra decisatildeo tomada foi a hospedagem dos dados na nuvem ou seja colocaacute-los em umservidor que natildeo seja local e conseguir acessaacute-los atraveacutes de uma conexatildeo via internet Dessemodo os dados sempre estaratildeo disponiacuteveis para serem consultados

361 Firebase

Buscando-se atender as decisotildees tomadas sobre o banco de dados procuramos um serviccedilode banco de dados da Google por conter ampla integraccedilatildeo com a plataforma de desenvolvi-mento Android por ser conhecido bastante utilizado e por possuir uma ampla comunidadede desenvolvedores dispostos a oferecer auxiacutelio em foacuteruns de discussatildeo de coacutedigos

Para atender esses requisitos escolheu-se o Firebase Realtime Database[6] desenvolvido edisponibilizado pela Google que consiste em um banco de dados noSQL com armazenamentona nuvem Esse serviccedilo armazena os dados do usuaacuterio no servidor da Google em formatoJSON e a cada alteraccedilatildeo sincroniza em tempo real com todos os clientes conectados

O grupo pode observar as seguintes vantagens de se trabalhar com a ferramenta existea sincronizaccedilatildeo em tempo real dos dados de todos os clientes e sua disponibilidade mesmocom o aplicativo offline ou seja quando o aplicativo natildeo estiver conectado a internet osdados do dispositivo moacutevel seratildeo armazenados e sincronizados com o banco de dados assimque a conexatildeo estiver disponiacutevel novamente Aleacutem disso os desenvolvedores possuem acessoa um console online (figura 33) onde o JSON eacute mostrado numa interface interativa de umaforma mais amigaacutevel e no qual eacute permitido editaacute-lo facilmente

37 CROWDSOURCING 21

Figura 33 Console online do Firebase onde os dados satildeo mostrados de forma mais amigaacutevel eintuitiva

Outra observaccedilatildeo feita foi que o Firebase Realtime Database funciona como o esperadose ele guardar uma coacutepia local dos dados em um arquivo JSON no celular Poreacutem isso natildeofoi visto como um problema pois como essa coacutepia pode ser salva em um arquivo texto oespaccedilo utilizado diminui consideravelmente

Na primeira vez que os dados satildeo criados e todas as vezes em que os dados forem atua-lizados por algum dispositivo moacutevel eacute enviada uma atualizaccedilatildeo que seraacute recebida atraveacutes delisteners por todos os aparelhos que utilizam o aplicativo para que eles atualizem seus res-pectivos JSONs Listeners satildeo interfaces de comunicaccedilatildeo que executam uma seacuterie de accedilotildeesassim que um outro evento esperado acontece

37 CrowdsourcingO termo Crowdsourcing tem origem nas palavras da liacutengua inglesa Crowd (multidatildeo) e

Outsourcing (terceirizaccedilatildeo) e eacute definido pelo dicionaacuterio Merriam Webster como A praacuteticade obtenccedilatildeo de serviccedilos ideias ou conteuacutedo solicitando contribuiccedilotildees de grandes grupos depessoas e especialmente da comunidade online [3] Esta praacutetica eacute utilizada para que sejapossiacutevel agrave comunidade contribuir com dados para algum programa ou serviccedilo como no apli-cativo Waze do qual a principal fonte de dados de tracircnsito acidentes e radares eacute obtida pormeio dos proacuteprios usuaacuterios

Capiacutetulo 4

Desenvolvimento do Projeto

Este capiacutetulo aborda o processo de desenvolvimento do projeto iniciado com o preen-chimento do diagrama Canvas e uma pesquisa de mercado direcionada ao usuaacuterio A partirdas informaccedilotildees coletadas foi possiacutevel projetar um aplicativo que atendesse as necessidadesexpostas pela pesquisa e selecionar as tecnologias necessaacuterias Tambeacutem eacute abordada a aplica-ccedilatildeo dos diferentes meacutetodos de caacutelculo da previsatildeo de tempo de espera que foram estudadose explicados no Capiacutetulo 2 Por fim satildeo expostas as diferentes versotildees do aplicativo duranteo processo e seus detalhes

41 Pesquisa de MercadoAntes de iniciar-se o desenvolvimento praacutetico algumas questotildees foram levantadas se

um aplicativo com as funcionalidades escolhidas seria de alguma forma uacutetil para o usuaacuterioe se sim qual metodologia deveria ser usada para que este produto fosse entregue o maiscompleto possiacutevel ateacute o final do ano Para responder a primeira pergunta desenvolveu-seum questionaacuterio

411 Pesquisa com o usuaacuterio

O questionaacuterio foi desenvolvido para avaliar a viabilidade do aplicativo e suas funciona-lidades e foi criado utilizando-se o Google Forms [9] Essa eacute uma ferramenta desenvolvidapelo Google que possibilita a criaccedilatildeo de formulaacuterios contendo diversos formatos de pergun-tas tanto dissertativas quanto de muacuteltipla escolha

Seguindo os princiacutepios de desenvolvimento de questionaacuterios [4] o conjunto de perguntasfoi mantido curto simples e de faacutecil entendimento Tambeacutem variou-se o tipo de questotildeesentre estruturadas (questotildees com respostas em forma de alternativas) e desestruturadas(questotildees com respostas em formato texto) seguindo esses mesmos princiacutepios para captarmelhor as informaccedilotildees dos entrevistados e evitar erros de entendimento

Com as respostas do questionaacuterio tinha-se o intuito de traccedilar um possiacutevel puacuteblico alvoconhecer seu modo de uso de dispositivos moacuteveis e validar a aplicabilidade de diferentesfuncionalidades pretendidas inicialmente sendo essas engajamento do usuaacuterio atraveacutes denotificaccedilotildees do sistema aceitaccedilatildeo de sugestotildees de locais alternativos avaliaccedilatildeo da existecircnciado problema que queremos resolver (se este aplicativo supre uma necessidade real do usuaacute-rio) e aceitaccedilatildeo do aplicativo

23

24 DESENVOLVIMENTO DO PROJETO 41

Para a divulgaccedilatildeo redes sociais como Facebook [5] e sistemas de mensagem instantacircneascomo WhatsApp foram usados e o envio de respostas foi restrito ateacute trecircs semanas apoacutes suaprimeira postagem Neste periacuteodo foram obtidas 210 respostas as quais ajudaram a definiros aspectos do sistema a ser desenvolvido

O questionaacuterio foi dividido em duas subseccedilotildees perfil do usuaacuterio e funcionalidade Comelas obteve-se os seguintes resultados

41 PESQUISA DE MERCADO 25

Questatildeo 1

Figura 41 Graacutefico pizza da distribuiccedilatildeo das respostas em relaccedilatildeo a idade dos pesquisados

As faixas de idade apresentadas estatildeo desbalanceadas por natildeo terem a mesma quantidadede anos em cada uma poreacutem essa divisatildeo foi pensada levando-se em conta a fluecircncia comtecnologia que cada idade possui Com o resultado verificou-se que do puacuteblico alcanccediladocom a pesquisa a maioria estaacute na faixa de 18 a 25 anos de idade assumida como parcelacom maior conhecimento tecnoloacutegico

Questatildeo 2

Figura 42 Graacutefico pizza da distribuiccedilatildeo das respostas em relaccedilatildeo ao sistema operacional

Esta questatildeo foi pensada para medir a porcentagem de cada sistema operacional pre-sente nos celulares do puacuteblico Com ela descobriu-se que 639 das pessoas dentro desse

26 DESENVOLVIMENTO DO PROJETO 41

grupo possuem o sistema Android enquanto 234 possuem iOS e 38 Windows phoneEssa pergunta foi incluiacuteda para um melhor direcionamento do desenvolvimento do aplicativo

Uma questatildeo levantada ao aplicar esse questionaacuterio foi a dificuldade que algumas pessoasencontraram para identificar a versatildeo do proacuteprio aparelho Poreacutem para manter a consistecircnciadas respostas decidiu-se natildeo mudar nada nesta questatildeo para remediar isso

Questatildeo 3

Figura 43 Graacutefico em barras da distribuiccedilatildeo de frequecircncias mensais de cada local analisado

41 PESQUISA DE MERCADO 27

Questatildeo 4

Figura 44 Graacutefico em pizza da distribuiccedilatildeo de interesse do usuaacuterio no tempo de espera de cadalocal

A princiacutepio viu-se muitas possiacuteveis aplicaccedilotildees para a previsatildeo de tempo de espera Paraentender qual seria a prioridade do puacuteblico as questotildees acima foram incluiacutedas A primeiraverificou a frequecircncia de visitas em alguns locais e a segunda serviu para analisar qualestabelecimento despertava mais interesse nos entrevistados quanto ao quesito fila Nos doiscasos restaurantes se destacaram com o maior interesse

Questatildeo 5

Figura 45 Graacutefico em barras da distribuiccedilatildeo de interesse do usuaacuterio por cada item avaliado

Para acompanhar o dado de espera e fornecer mais informaccedilotildees relevantes ao usuaacuteriosem potencial perguntou-se quais outras informaccedilotildees eles acham interessante saber sobre umdeterminado estabelecimento Com isso descobriu-se que a faixa de preccedilo o trajeto ateacute olocal e o cardaacutepio seriam dados importantes de se obter juntamente com o tempo de espera

28 DESENVOLVIMENTO DO PROJETO 41

Questatildeo 6O que vocecirc costuma fazer para evitar filasNeste ponto testou-se se a soluccedilatildeo proposta atraveacutes do aplicativo resolveria o problema dousuaacuterio de uma forma melhor do que a soluccedilatildeo atualmente utilizada Para isso foi perguntadoo que as pessoas fazem para evitar filas e as principais respostas foram

∙ Evitar horaacuterios de pico

∙ Chegar cedo

∙ Ir em outro lugar caso uma fila seja encontrada

∙ Tentar realizar reservas antecipadamente

∙ Se distrair com livroscelular

Notou-se que as soluccedilotildees utilizadas atualmente natildeo suprem as necessidades dos entre-vistados pois mesmo em horaacuterios natildeo convencionais pode-se encontrar filas ou quandodecide-se esperar na fila muito tempo eacute perdido Concluiu-se que a soluccedilatildeo proposta a par-tir do aplicativo resolve de forma mais abrangente o problema pois ajuda o usuaacuterio a evitarhoraacuterios de pico inesperados

Questatildeo 7

Figura 46 Graacutefico em pizza da distribuiccedilatildeo do meio de transporte utilizado pelos usuaacuterios

Essa questatildeo foi formulada com o objetivo de verificar quais meios de transporte seriamincluiacutedos com previsatildeo de tempo de trajeto no aplicativo Foi verificado que a maioria dosentrevistados utilizam transporte puacuteblico seguido por carro

41 PESQUISA DE MERCADO 29

Questatildeo 8

Figura 47 Graacutefico em pizza da distribuiccedilatildeo do interesse do usuaacuterio pela informaccedilatildeo fornecida

Questatildeo 9

Figura 48 Graacutefico em pizza da distribuiccedilatildeo de quantidade de quilocircmetros que o usuaacuterio sedeslocaria para ir a um local com menos fila

Com essas questotildees foi verificado que algo importante para o usuaacuterio eacute saber de outrosestabelecimentos que possam oferecer tempos de espera menores nas redondezas de onde ousuaacuterio se encontra que eacute uma das funcionalidades que desejaacutevamos utilizar no sistema

30 DESENVOLVIMENTO DO PROJETO 41

Questatildeo 10

Figura 49 Graacutefico em barras da distribuiccedilatildeo de sentimento do usuaacuterio em relaccedilatildeo a notificaccedilatildeode aplicativos

Questatildeo 11

Figura 410 Graacutefico em pizza da distribuiccedilatildeo de opiniatildeo do usuaacuterio sobre desabilitar notificaccedilotildeesem celular

42 PESQUISA DE MERCADO 31

Questatildeo 12

Figura 411 Graacutefico em pizza da distribuiccedilatildeo de opiniatildeo do usuaacuterio sobre habilitar GPS emcelular

A ideia inicial era poder usar o GPS para verificar a localizaccedilatildeo do usuaacuterio e enviarnotificaccedilotildees quando este estivesse parado nas proximidades de algum dos estabelecimentoscadastrados Para que essa funcionalidade possa existir eacute necessaacuterio que o aplicativo tenhaacesso agrave localizaccedilatildeo precisa da pessoa atraveacutes do GPS ou internet ateacute mesmo quando natildeoestiver aberto Aleacutem disso tambeacutem eacute necessaacuterio que as notificaccedilotildees estejam habilitadas parafinalizar esta interaccedilatildeo Entatildeo as perguntas 10 11 e 12 foram incluiacutedas no questionaacuterio Ob-servando as respostas foi possiacutevel verificar que 295 das pessoas que responderam deixamambas as funcionalidades habilitadas (GPS e notificaccedilotildees) Com isso pudemos prosseguircom essa ideia e tambeacutem pensar em possiacuteveis alternativas de interaccedilatildeo e engajamento como usuaacuterio

Por conta dessa pesquisa ter sido compartilhada atraveacutes das contas das redes sociais ecomunicadores dos componentes deste grupo sabe-se que este pode apresentar um resultadoviesado mas que mesmo assim natildeo deve ser desconsiderado e que muito ajudou a sanar asduacutevidas iniciaisComo resultado traccedilamos o perfil do entrevistado

∙ Faixa etaacuteria predominante entre 18 e 30 anos

∙ Possui sistema operacional Android (versotildees 4 5 e 6)

∙ Vai a restaurantes com certa frequecircncia mensal resultando em interesses sobre infor-maccedilotildees relacionadas a esse estabelecimento

∙ Costuma chegar cedo ou evitar os horaacuterios de pico para evitar filas nos locais

∙ Carro e transporte coletivo satildeo os principais meios de transporte

∙ Se deslocaria para um estabelecimento semelhante que possui menos fila contanto queeste fique num raio de 2km de distacircncia

32 DESENVOLVIMENTO DO PROJETO 43

42 Projeto do AplicativoO grupo comeccedilou o projeto com o preenchimento do diagrama Canvas(figura 412) apre-

sentado na Seccedilatildeo 21 Desse modo foi adquirida uma ideia mais consistente e uma base paracomeccedilar a implementaccedilatildeo

Figura 412 Diagrama Canvas preenchido pelo grupo

Com o modelo de negoacutecios definido e com base no resultado da pesquisa com o usuaacuterioapresentada na seccedilatildeo seguinte foram aplicadas pequenas mudanccedilas no projeto para melhoradequar-se agraves necessidades e ao perfil do puacuteblico alvo

Para o desenvolvimento foi utilizado um meacutetodo aacutegil baseado no scrum com sprints de3 a 4 semanas devido agrave disponibilidade dos membros do grupo Os encontros natildeo eram diaacute-rios como recomendado para o meacutetodo scrum tambeacutem em razatildeo da disponibilidade Haviamstand ups (discussotildees raacutepidas no comeccedilo de cada encontro) e retrospectivas ao final de cadasprint A cada sprint eram selecionadas histoacuterias e tarefas para serem executadas e caso natildeofossem concluiacutedas ao final da iteraccedilatildeo eram inseridas ao backlog e feitas no sprint seguinte

43 Aplicaccedilatildeo dos meacutetodos de caacutelculo de espera

431 Aplicando a meacutedia por periacuteodo

Aplicando-se no trecho abaixo a teacutecnica desenvolvida na Seccedilatildeo 242 para uma queryrealizada no dia 19082016 no intervalo de 2040 - 2055 analisa-se a semana anterior quepossua tais intervalos Assim o saacutebado dia 06082016 seraacute selecionado

43 APLICACcedilAtildeO DOS MEacuteTODOS DE CAacuteLCULO DE ESPERA 33

Entrada Qtd Pessoas Notificado Espera

6816 2043 2 862016 2053 1606

6816 2044 2 862016 2055 674

6816 2048 2 862016 2056 528

6816 2048 2 862016 2057 520

6816 2051 2 862016 2107 1118

6816 2051 3 862016 2110 1305

6816 2052 2 862016 2110 1273

6816 2052 2 862016 2111 1179

6816 2053 2 862016 2112 1217

6816 2053 2 NULL 59

6816 2054 3 862016 2119 1541

6816 2055 2 862016 2117 1444

6816 2055 2 862016 2120 1570

6816 2055 2 862016 2122 1613

Tabela 41 Trecho do dia 06082016 entre os horaacuterios das 2043 agraves 2055 um intervalo de 12minutos retirado dos dados da empresa Get In

Com esses dados obteve-se a meacutedia de espera de 1080 segundos (18 minutos) a qualseria sugerida para o usuaacuterio com a busca e desvio padratildeo de 465144719 segundos (775 mi-nutos) Dentro desse intervalo tem-se como maacuteximo tempo de espera 1613 segundos (2688minutos) e como miacutenimo 59 segundos (1 minuto) Analisando-se os dados do dia 19082016no mesmo periacuteodo temos

34 DESENVOLVIMENTO DO PROJETO 43

Entrada Pessoas Notificado Espera Erro previsatildeo Erro p 2 pessoas

19816 2043 2 8192016 2051 544 -563 522

19816 2043 2 8192016 2052 605 -502 461

19816 2044 2 8192016 2056 723 -384 343

19816 2046 4 8192016 2119 1988 881 X

19816 2048 2 8192016 2102 919 188 147

19816 2051 2 8192016 2103 821 286 245

19816 2051 3 8192016 2108 1773 666 X

19816 2053 2 8192016 2110 1083 24 -17

19816 2053 2 8192016 2111 1105 2 -39

19816 2053 2 8192016 2112 1169 62 -103

19816 2055 2 8192016 2114 1447 340 -381

Tabela 42 Trecho do dia 19082016 entre os horaacuterios das 2043 agraves 2055um intervalo de 12minutos retirado dos dados da empresa Get In

Ou seja se um grupo chegasse dentro desse periacuteodo e a previsatildeo dada fosse a meacutediaobtida anteriormente o erro calculado pela diferenccedila entre o tempo sugerido e o real tempode espera estaria no intervalo de 15 minutos para menos ou 8 minutos para mais Sendoesse um valor aceitaacutevel

Um proacuteximo passo eacute a restriccedilatildeo dos registros a grupos com 2 integrantes Com tal restri-ccedilatildeo a previsatildeo de espera eacute de 1066 segundos (1776 minutos) Aplicando essa nova meacutedia aosregistros com 2 integrantes do dia 19082016 obteacutem-se um erro (Coluna 6 - erro previsatildeopara 2 pessoas) menor do que o anterior O intervalo do erro calculado neste caso seria de 522segundos (87 minutos) para mais e 381 segundos (635 minutos) para menos Este resultadoeacute ainda mais favoraacutevel mostrando que a inclusatildeo de mais filtros para o caacutelculo da previsatildeomelhorou o tempo previsto

432 Aplicando teoria das filas

A teoria das filas (Seccedilatildeo 242) eacute uma ferramenta muito completa que calcula muitos dadosuacuteteis para a previsatildeo de espera Contudo por conta da necessidade de informaccedilotildees sobreo tempo de atendimento a qual natildeo estaacute contida no banco utilizado esta teoria natildeo podeser aplicada neste caso Poreacutem esse dado pode ter um valor assumido para que a utilizaccedilatildeodessa teoria fosse possiacutevel entretanto a sua precisatildeo ficaria comprometida e imprevisiacutevel

433 Aplicando redes neurais

Para aplicar o que foi estudado na Seccedilatildeo 242 foi executado o software com o mecircs deAgosto como teste o mecircs de Setembro como treino e o limite do erro quadraacutetico como 001 eobteve-se a tabela presente no apecircndice B Na tabela podemos ver o tempo de fila esperadoou seja o tempo contido na tabela do mecircs de Setembro o tempo que o algoritmo deu comoresposta baseado no mecircs de Agosto e o erro entre eles respectivamente

44 DEFINICcedilAtildeO DA INTERFACE DO APLICATIVO 35

Figura 413 Software Multiple Back-Propagation com a configuraccedilatildeo escolhida para os dadosdisponiacuteveis

Mesmo o erro se mantendo em 0018 os dados obtidos possuem um erro padratildeo de 15minutos Se mais dados forem adicionados o criteacuterio de parada pode ser atingido e assimuma previsatildeo melhor pode ser alcanccedilada

434 Conclusatildeo sobre os meacutetodos estudados

Dentre todas as possibilidades estudadas visualizamos na meacutedia por periacuteodo a melhoropccedilatildeo assumindo os dados disponiacuteveis para teste Se mais paracircmetros fossem fornecidoscomo o tempo de atendimento a teoria das filas seria uma boa opccedilatildeo para fornecer a pre-visatildeo de espera E se mais dados estivessem disponiacuteveis as redes neurais conseguiriam umaaproximaccedilatildeo melhor e assim seria uma boa opccedilatildeo tambeacutem

44 Definiccedilatildeo da Interface do aplicativoComo um primeiro protoacutetipo foi desenvolvida uma interface simples que tinha como tela

de iniacutecio um mapa com um campo para buscas na parte superior

36 DESENVOLVIMENTO DO PROJETO 44

Figura 414 Fluxo de telas do primeiro protoacutetipo

Ao efetuar uma busca por algum estabelecimento uma tela mostrando o tempo de esperaaproximado da fila no local era exibida junto com bototildees que permitiam selecionar o meiode transporte visualizar outras opccedilotildees ou dar iniacutecio a rota ateacute o local desejado Tambeacutemhavia uma notificaccedilatildeo para quando a pessoa estivesse parada proacutexima a um restaurantecadastrado que direcionaria o usuaacuterio a uma tela com um cronocircmetro do tempo de esperana fila

Para testar essa visualizaccedilatildeo escolhemos algumas pessoas e realizamos um teste deusabilidade[22] este teste eacute feito da seguinte forma

44 DEFINICcedilAtildeO DA INTERFACE DO APLICATIVO 37

Uma contextualizaccedilatildeo eacute feita para o voluntaacuterio e entatildeo uma tarefa eacute passada para sercompletada Os integrantes do grupo observam dificuldades enfrentadas pelo entrevistado etomam notas Esse teste eacute repetido algumas vezes e seu resultado eacute coletado para avaliaccedilatildeoe modificaccedilatildeo das funcionalidades

Figura 415 Tela de detalhes de um restaurante(segunda versatildeo)

Notou-se que algumas funcionalidadespareceram confusas e natildeo intuitivas porexemplo natildeo ficou claro se o tempo mos-trado era de trajeto ou de espera na filanem qual era o meio de transporte utili-zado

Logo esse protoacutetipo foi reformuladocom o intuito de melhorar a experi-ecircncia do usuaacuterio com o nosso aplica-tivo

Foram colocados aleacutem do tempo deespera da fila o tempo que o usuaacuteriolevaria para chegar ateacute o local selecio-nado (conforme o tipo de transporte es-colhido) e a quantidade estimada de pes-soas na fila O tempo total (espera so-mado ao tempo de deslocamento) ga-nhou destaque entre as informaccedilotildees doestabelecimento e o botatildeo que direcionao usuaacuterio ao trajeto ficou mais especiacute-fico

Tambeacutem cogitou-se a possibilidade deadicionar login e um perfil de usuaacuteriojunto com uma lista de restaurantes favo-ritos

O fluxo das telas deste novo protoacutetipo ficou como mostra o esquema a seguir

38 DESENVOLVIMENTO DO PROJETO 44

Figura 416 Fluxo de telas do segundo protoacutetipo

44 DEFINICcedilAtildeO DA INTERFACE DO APLICATIVO 39

Figura 417 Tela de detalhes de um restaurante(terceira versatildeo)

Apoacutes outras avaliaccedilotildees mais algumaspequenas alteraccedilotildees foram realizadas nainterface Foi decidido que seria inviaacute-vel estimar o nuacutemero de pessoas nafila entatildeo essa funcionalidade foi remo-vida

Notificaccedilotildees foram adicionadas paraquando o usuaacuterio estiver parado na aacutereado restaurante para que ele possa con-tribuir com informaccedilotildees sobre a fila quepegou aleacutem de um botatildeo de contri-buiccedilatildeo ter sido inserido na tela ini-cial

40 DESENVOLVIMENTO DO PROJETO 45

O fluxo de telas do aplicativo atual ficou da seguinte forma

Figura 418 Fluxo de telas do terceiro protoacutetipo

46 EXPLICACcedilAtildeO DAS FUNCIONALIDADES 41

45 Explicaccedilatildeo das funcionalidadesEsta seccedilatildeo explica as funcionalidades do produto utilizando a figura 418

A tela inicial (3) exibe uma lista de restaurantes incluindo seus respectivos tempos detrajeto e tempo de espera na fila Ao clicar no botatildeo ldquo+rdquo uma caixa de diaacutelogo eacute aberta(4) onde eacute possiacutevel adicionar o tempo que o usuaacuterio esperou na fila Primeiro eacute escolhido orestaurante depois a data e hora que a pessoa chegou na fila e por fim o tempo de esperaem minutos Ao tocar em ldquoEnviar Feedback rdquo os dados satildeo incluiacutedos no banco de dados eatualizados para os outros usuaacuterios Assim eacute apicado o conceito de Crowdsourcing no apli-cativo

Ao tocar em um item da lista de restaurantes seraacute aberta a tela de detalhes de um res-taurante (5) na qual eacute possiacutevel ver com mais clareza os tempos de trajeto e espera o tempototal o endereccedilo do estabelecimento e um pequeno mapa centrado no local Pressionandoo botatildeo ldquoDireccedilotildeesrdquo o usuaacuterio seraacute redirecionado ao aplicativo de mapas de sua preferecircnciano caso do exemplo (8) o Google Maps jaacute traccedilando a rota da localizaccedilatildeo do usuaacuterio para oestabelecimento em questatildeo

Novamente na tela inicial tocando no iacutecone de lupa eacute possiacutevel realizar uma busca digi-tando o nome do estabelecimento na caixa de texto a qual exibe sugestotildees dependendo doque foi digitado Ao clicar em um dos resultados da busca o usuaacuterio eacute novamente direcionadopara a tela de detalhes do restaurante (5)

Tambeacutem eacute possiacutevel tocar no iacutecone de mapa na tela inicial onde seraacute mostrado um mapacentrado na localizaccedilatildeo do usuaacuterio

Ao ficar parado por um tempo em um mesmo local proacuteximo a um estabelecimentocadastrado o usuaacuterio eacute perguntado em uma notificaccedilatildeo quanto tempo ele permaneceu nafila Ao tocar na notificaccedilatildeo a caixa de diaacutelogo para feedback do usuaacuterio seraacute aberta (4) jaacutecom o restaurante preenchido e apoacutes o feedback a janela seraacute fechada e os dados enviadosao banco de dados

46 Implementaccedilatildeo do banco de dadosO banco de dados do aplicativo foi modelado e populado em forma de aacutervore (Fi-

gura 419) de forma a facilitar o acesso aos dados necessaacuterios ao aplicativo No primeironiacutevel estatildeo os ids dos restaurantes Cada id de restaurante guarda a localizaccedilatildeo (latitudelongitude) do restaurante o nome o endereccedilo e um objeto fila O objeto fila guarda todos osdias da semana (domingo a saacutebado) e cada dia da semana possui 24 campos um para cadahora do dia Cada hora possui o tempo meacutedio de espera da fila naquela hora e um peso paraesse tempo O peso eacute um valor que aumenta de acordo com o nuacutemero de feedbacks dadospara que o novo valor do tempo meacutedio seja calculado de forma consistente

Modelamos o banco de dados de uma forma que respeitasse uma hierarquia de dados

42 DESENVOLVIMENTO DO PROJETO 46

Figura 419 Aacutervore que ilustra a organizaccedilatildeo de um restaurante no banco de dados

Com o banco de dados jaacute populado o aplicativo faz consultas e atualizaccedilotildees de dadosConsultas satildeo feitas ao criar a tela de listagem de restaurantes e de detalhes de um restau-rante consultado As atualizaccedilotildees satildeo feitas quando o usuaacuterio manda o feedback de tempo deespera em um estabelecimento em determinado horaacuterio o aplicativo calcula a nova meacutedia eatualiza o campo do respectivo horaacuterio

Capiacutetulo 5

Conclusatildeo

Ao longo dos capiacutetulos deste trabalho pocircde-se acompanhar todo o processo de criaccedilatildeo edesenvolvimento do aplicativo que apoacutes finalizado foi batizado com o nome Queue

Comeccedilando com um problema para o qual o grupo almejava oferecer uma soluccedilatildeoacabou-se por adentrar-se um pouco no campo da Estatiacutestica e estudar diversas metodo-logias que poderiam ser uacuteteis para fornecer um caacutelculo de previsatildeo de espera meacutedia porperiacuteodo aplicaccedilatildeo da teoria das filas e utilizaccedilatildeo de redes neurais

Atraveacutes de uma parceria com a empresa GetIn obteve-se acesso a uma grande quantidadede dados e foi possiacutevel utilizaacute-los em anaacutelises feitas nas metodologias escolhidas conseguindoassim resultados relevantes Por meio destes foi feita a escolha de um dos meacutetodos para ocaacutelculo da previsatildeo de filas a meacutedia por periacuteodo

Aleacutem desses estudos ao longo do ano o grupo aprendeu a desenvolver para a plata-forma Android sobre a qual nenhum dos integrantes tinha conhecimento preacutevio Tambeacutemfoi possiacutevel aprender e utilizar a metodologia aacutegil com Scrum para guiar o processo de de-senvolvimento

Ao fim do ciclo de desenvolvimento conseguiu-se entregar um aplicativo em funciona-mento que fornece a previsatildeo de espera no instante da consulta de estabelecimentos cadas-trados no banco de dados armazenado na nuvem

Na versatildeo atual do aplicativo natildeo foi implementado um sistema para o cadastro de novosestabelecimentos Isso soacute eacute possiacutevel atraveacutes da inserccedilatildeo direta no banco de dados atraveacutes dainterface fornecida pelo console do Firebase Atualmente estatildeo cadastrados 5 restaurantesos quais foram visitados durante o desenvolvimento do projeto Para que o cadastro deestabelecimentos escale seria necessaacuterio a implementaccedilatildeo de uma funcionalidade que permitaao usuaacuterio adicionar novos estabelecimentos a partir de locais disponiacuteveis na API de locaisda Google

43

45

46 APEcircNDICE A

Apecircndice A

Dados coletados

Figura A1 Dados de tempo de espera para grupos de tamanhos variados para cada horaacuterio e emcada dia da semana obtidos em entrevista em restaurantes Outback Steakhouse Shopping Uniatildeo nomecircs de outubro

Referecircncias Bibliograacuteficas

[1] Backpropagation httpmbpsourceforgenet Accesso em Janeiro 2017 14

[2] Bitbucket httpsbitbucketorgproduct Accesso em Dezembro 2016 19

[3] Crowdsourcing httpswwwmerriam-webstercomdictionarycrowdsourcing Ac-cesso em Novembro 2016 21

[4] Designing a survey httpwwwsciencebuddiesorgscience-fair-projectsproject_ideasSoc_surveyshtml Accesso em Outubro 2016 4 23

[5] Facebook httpswwwfacebookcom Accesso em Novembro 2016 24

[6] Firebase httpsfirebasegooglecom Accesso em Agosto 2016 20

[7] Getin app httpswwwgetinappcombrhomesao-paulo Accesso em Novembro2016 9

[8] Git 11 primeiros passos - sobre controle de versatildeo httpsgit-scmcombookpt-brv1Primeiros-passos-Sobre-Controle-de-Vers Accesso em Novembro 2016 19

[9] Google forms httpsdocsgooglecomforms Accesso em Novembro 2016 23

[10] Guia definitivo do project model canvas Project Builder 3

[11] Jsonorg introducing json httpwwwjsonorg Accesso em Novembro 2016 17

[12] Manifesto para desenvolvimento Aacutegil de software httpagilemanifestoorgisoptbrmanifestohtml Accesso em Novembro 2016 5

[13] Nosql httpsenwikipediaorgwikiNoSQL Accesso em Novembro 2016 20

[14] Outback steakhouse httpswwwoutbackcombrhome Accesso em Novembro 20169

[15] Restful api development with lumen microframework httpsbelitsoftcomlaravel-development-servicesapi-development Accesso em Novembro 2016 17

[16] Scrum httpswwwatlassiancomagilescrum Accesso em Novembro 2016 5

[17] Smartphone os market share 2016 q2 httpwwwidccomprodservsmartphone-os-market-sharejsp Accesso em Novembro 2016 15

[18] Smartphone os sales market share kantar worldpanel comtech httpwwwkantarworldpanelcomsmartphone-os-market-share Accesso em Novembro 2016 15

[19] Sourcetree httpswwwsourcetreeappcom Accesso em Dezembro 2016 19

47

48 REFEREcircNCIAS BIBLIOGRAacuteFICAS

[20] Sql httpsptkhanacademyorgcomputingcomputer-programmingsql Accesso emDezembro 2016 20

[21] Trello httpstrellocom Accesso em Novembro 2016 6

[22] Usability test httpsenwikipediaorgwikiUsability_testing Accesso em Novembro2016 36

[23] Versionone 2012 agile dev survey httpswwwversiononecompdf7th-Annual-State-of-Agile-Development-Surveypdf Accesso em Novembro 2016 5

[24] Waze httpswwwwazecom Accesso em Novembro 2016 1

[25] What is an open source httpsopensourcecomresourceswhat-open-source Accessoem Novembro 2016 15

[26] Xml tutorial httpwwww3schoolscomxml Accesso em Novembro 2016 17

[27] Paulo F Cabral dos Anjos Jr Aron Ifanger Maciel Christopher Silva de Paacutedua Com-posiccedilatildeo de carteiras de accedilotildees utilizando modelo de redes neurais artificiais e modelo derisco e retorno de Markowitz 2012 14

[28] Google Distance matrix api documentation httpsdevelopersgooglecommapsdocumentationdistance-matrix Accesso em Novembro 2016 17

[29] Alan Klement Designing features using job stories httpsblogintercomcomusing-job-stories-design-features-ui-ux Accesso em Novembro 2016 6

[30] Azmat Nafees Queuing theory and its application analysis of the sales checkout opera-tion in ica supermarket httpwwwstatisticsduseessaysD07ENafeespdf Accessoem Novembro 2016 12

[31] Eric Ries A Startup Enxuta Lua de papel primeira ediccedilatildeo edition 2012 3

  • Introduccedilatildeo
    • Motivaccedilatildeo
    • Trabalho Proposto
    • Estrutura da monografia
      • Estudos Preliminares
        • Desenvolvimento de Startups
          • Desenvolvimento de Questionaacuterios
            • Metodologia Aacutegil
            • Jobs to be done
            • Caacutelculo da previsatildeo do tempo de espera na fila
              • Descriccedilatildeo do problema
              • Meacutetodos de caacutelculo da espera
                  • Tecnologias utilizadas
                    • O sistema Android
                      • Organizaccedilatildeo de uma aplicaccedilatildeo Android
                        • JSON
                        • Google APIs
                        • Localizaccedilatildeo do Usuaacuterio
                        • Controle de Versatildeo
                        • Banco de dados
                          • Firebase
                            • Crowdsourcing
                              • Desenvolvimento do Projeto
                                • Pesquisa de Mercado
                                  • Pesquisa com o usuaacuterio
                                    • Projeto do Aplicativo
                                    • Aplicaccedilatildeo dos meacutetodos de caacutelculo de espera
                                      • Aplicando a meacutedia por periacuteodo
                                      • Aplicando teoria das filas
                                      • Aplicando redes neurais
                                      • Conclusatildeo sobre os meacutetodos estudados
                                        • Definiccedilatildeo da Interface do aplicativo
                                        • Explicaccedilatildeo das funcionalidades
                                        • Implementaccedilatildeo do banco de dados
                                          • Conclusatildeo
                                          • Dados coletados
                                          • Referecircncias Bibliograacuteficas

14 ESTUDOS PRELIMINARES 24

∙ Processo de espera Eacute um processo que inclui o evento ldquocomece a servir o proacuteximocliente da filardquo que retira um cliente da fila o coloca no processo de atendimento eespera a conclusatildeo do evento ldquocliente servidordquo para recomeccedilar Nele se trabalha comtamanho e disciplina da fila

∙ Processo de atendimento Eacute um processo que inclui o evento ldquocliente servidordquo eespera a conclusatildeo do evento ldquocomece a servir o proacuteximo cliente da filardquo para recomeccedilarNele se trabalha com tipo taxa e tempo de atendimento

Dentre esses 3 modelos o que mais se encaixa na situaccedilatildeo de um restaurante eacute o segundomodelo canal uacutenico com fila uacutenica e muacuteltiplos atendimentos paralelos O processo de chegadade novos clientes na fila eacute tido como aleatoacuterio

Terceiro meacutetodo Rede Neural

Rede Neural eacute uma teacutecnica computacional inspirada no sistema nervoso que com o auxiacute-lio de um modelo matemaacutetico apresenta respostas para problemas de decisatildeo Esses modelosfuncionam da seguinte forma primeiro um conjunto de dados (conjunto de treinamento) eacuteapresentado ao sistema e este aprende com ele atraveacutes de reconhecimento de padratildeo entatildeocoloca-se o sistema para analisar os dados (conjunto de teste) para os quais deseja-se obteralgum resultado Este processo eacute chamado de aprendizagem de maacutequina Quanto melhor forseu treinamento mais precisas seratildeo as respostas para o segundo conjunto

Uma rede neural eacute formada por subestruturas chamadas neurocircnios Um neurocircnio tem oseguinte funcionamento ele recebe como entrada sinais cada sinal recebe um peso de acordocom a influecircncia dele na saiacuteda e uma soma eacute feita para produzir o niacutevel de atividade entatildeodependendo se o niacutevel de atividade exceder o limite dado pela funccedilatildeo de transferecircncia aresposta eacute produzida[27]

Software Multiple Back-Propagation

Para implementar a soluccedilatildeo baseada em redes neurais foi usado o Software MultipleBack-Propagation [1] Este eacute um software de faacutecil utilizaccedilatildeo que fornece uma rede a qualaprende atraveacutes do processo de propagaccedilatildeo inversa Esse meacutetodo baseia-se na comparaccedilatildeodos dados esperados (conjunto de teste) com os dados obtidos a partir do treinamento senecessaacuterio adaptaccedilotildees satildeo feitas a estrutura da rede para melhor aproximar aos dados doconjunto teste e isso eacute chamado de propagaccedilatildeo inversa

Por se tratar de um meacutetodo de aprendizagem de maacutequinas para se obter um resultadodeve-se treinar o algoritmo Primeiramente submete-se o conjunto de treinamento ao soft-ware para isso foi escolhido o mecircs de Agosto O criteacuterio de parada para o treino eacute o erroquadraacutetico meacutedio o qual teve seu valor atribuiacutedo para 001

Capiacutetulo 3

Tecnologias utilizadas

31 O sistema AndroidAndroid eacute um Sistema operacional open source (software de coacutedigo aberto o qual as

pessoas podem acessar e modificar para contribuir com o projeto [25]) e para dispositivosmoacuteveis desenvolvido pela Google baseado no Kernel do Linux e utilizado principalmente emdispositivos touchscreen Atualmente o Android eacute o sistema operacional que deteacutem a maiorparcela do mercado[17] com 836 dos dispositivos contra 134 do iOS da Apple

A Google tambeacutem oferece um ambiente de desenvolvimento para a plataforma Androidchamado Android Studio no qual os aplicativos satildeo criados e exportados para os dispositi-vos moacuteveis Aplicativos Android satildeo programados na linguagem Java com vaacuterias bibliotecasdisponibilizadas pela Google para suporte ao sistema operacional

A escolha da plataforma foi feita principalmente por conta de o sistema possuir a maiorparte dos usuaacuterios de Smartphones e tambeacutem pela ampla comunidade ativa de desenvolve-dores agrave qual se pode recorrer em casos de duacutevidas e problemas tornando suas resoluccedilotildeesmais raacutepidas e com muacuteltiplas alternativas Outros motivos que contribuiacuteram para a escolhado Android foram

∙ A disponibilidade do ambiente de desenvolvimento Android Studio que possui todosos recursos necessaacuterios para desenvolver um aplicativo funcional logo apoacutes a instalaccedilatildeosem a necessidade de utilizar outras dependecircncias as quais satildeo gerenciadas automati-camente pelo proacuteprio software

∙ O fato de no mercado brasileiro o sistema Android se encontrar em 918 dos dispo-sitivos segundo pesquisa da Kantar[18] e dado a pesquisa realizada para definiccedilatildeo depuacuteblico alvo onde foi possiacutevel perceber que 639 dos entrevistados utilizam smartpho-nes com sistema Android

∙ A utilizaccedilatildeo da linguagem de programaccedilatildeo Java para desenvolvimento que jaacute eraconhecida e fora utilizada anteriormente ao contraacuterio das linguagens Objective C eSwift linguagens utilizadas para desenvolver aplicativos para o sistema iOS Assimcomo a disponibilidade de dispositivos por parte do grupo que em sua maioria era decelulares com o sistema Android

15

16 TECNOLOGIAS UTILIZADAS 31

Figura 31 Parcela de mercado dos dispositivos no Brasil

311 Organizaccedilatildeo de uma aplicaccedilatildeo Android

Aplicativos Android satildeo divididos em componentes Haacute quatro tipos de componentespresentes Activities (ou atividades) Services (ou serviccedilos) Content providers (ou provedoresde conteuacutedo) Broadcast receivers (ou receptores de transmissatildeo)

∙ Activities Satildeo as telas e interfaces do usuaacuterio Cada tela de uma aplicaccedilatildeo eacute repre-sentada por uma activity e cada activity eacute independente de outras apesar de seremcomponentes de uma mesma aplicaccedilatildeo Isso se daacute pelo fato de haver a possibilidade deutilizar activities de aplicativos durante a execuccedilatildeo de outros Atividades satildeo iniciadase se comunicam entre si atraveacutes de objetos chamados Intent que transferem um pacotede dados que pode ser carregado no iniacutecio da nova atividade

∙ Services Sempre satildeo executados em segundo plano sem interferir na experiecircncia dousuaacuterio geralmente para realizar operaccedilotildees longas ou realizar operaccedilotildees de troca dedados enquanto o usuaacuterio estaacute utilizando outra aplicaccedilatildeo em primeiro plano

∙ Content Providers Satildeo gerenciadores de dados de aplicaccedilotildees Android utilizadospara ler e salvar dados compartilhados ou secretos dos aplicativos e do sistema

∙ Broadcast Receivers Satildeo componentes responsaacuteveis por obter eventos que aconte-ceram em outras aplicaccedilotildees ou no sistema e direcionar dados sobre esses eventos paraeventuais aplicaccedilotildees que necessitem destes dados alguns exemplos de eventos obtidospelos receptores de transmissatildeo satildeo tela desligada e bateria fraca

Aleacutem dos componentes uma parte importante de uma aplicaccedilatildeo Android eacute o ArquivoManifest que eacute uma declaraccedilatildeo de permissotildees serviccedilos e exigecircncias de hardware necessaacuterios

33 JSON 17

para o funcionamento do aplicativo Outra funccedilatildeo eacute possuir declaraccedilotildees de todos os compo-nentes utilizados no projeto nomes iacutecones entre outros

As interfaces de usuaacuterio do Android satildeo definidas em arquivos XML (eXtensible MarkupLanguage)[26] nos quais estatildeo declarados todos os layouts e configuraccedilotildees das telas Essesarquivos de layout satildeo depois inflados e satildeo gerados os componentes visuais da aplicaccedilatildeoEssa estrutura tem como objetivo facilitar o design da interface do usuaacuterio jaacute que arquivosxml satildeo de faacutecil compreensatildeo do desenvolvedor

32 JSONJSON ou Javascript Object Notation eacute um formato de dados amplamente utilizado para

troca de informaccedilotildees entre programas Possui uma notaccedilatildeo simples para grande parte dosprogramadores pois se assemelha a convenccedilotildees utilizadas em linguagens de programaccedilatildeomuito conhecidas como C C++ Python e Java O objetivo eacute que ele seja de faacutecil entendi-mento tanto para pessoas como para maacutequinas[11]

Um arquivo JSON eacute organizado como um objeto contendo pares nomevalorseparadospor viacutergulas e dentro de chaves(lsquolsquo rsquorsquo) ou como um array que eacute uma lista de valores separa-dos por viacutergulas e entre colchetes(lsquo[lsquo rsquo]rsquo) Um valor por sua vez pode ser um objeto ou umarray mas tambeacutem um nuacutemero inteiro ou uma String entre outros

Um exemplo de arquivo JSON eacute

1 2 Carros [3 4 Nome Scen ic 5 Marca Renault 6 Ano 20127 8 9 Nome Sentra

10 Marca Nissan 11 Ano 200912 13 ]14

33 Google APIsAPIs (Application Program Interfaces) satildeo interfaces para facilitar a troca de informa-

ccedilotildees entre aplicaccedilotildees utilizando comandos especiacuteficos[15]

Ao longo do desenvolvimento algumas APIs fornecidas pela Google foram utilizadascomo fonte de informaccedilotildees adicionais para o aplicativo

∙ Google Maps Distance Matrix API Esta API eacute utilizada para obter o tempo emsegundos de trajeto entre dois pontos (latlong) no mapa podem ser consultados ostempos de trajeto de carro bicicleta a peacute e utilizando transporte puacuteblico[28] Esta eacute

18 TECNOLOGIAS UTILIZADAS 35

uma API web logo utiliza-se um request http para realizar uma consulta

Por exemplo o request

httpsmapsgoogleapiscommapsapidistancematrixjsonorigins=Seattleampdestinations=Victoria+BCampkey=[user_key]

retorna o JSON

1 2 des t ina t i on_addre s s e s [ Vic tor ia BC Canada ] 3 o r i g in_addre s s e s [ Sea t t l e WA EUA ] 4 rows [5 6 e lements [7 8 d i s t anc e 9 text 172 km

10 value 17166811 12 durat ion 13 text 4 horas 40 minutos 14 value 1680915 16 s t a tu s OK17 18 ]19 20 ] 21 s t a tu s OK22

no qual eacute possiacutevel obter o tempo de trajeto em segundos

∙ Google Maps Android API Esta API eacute utilizada para habilitar o uso de mapasda Google integrados agrave aplicaccedilatildeo jaacute disponiacutevel com todas as funcionalidades de zoome arrastar presentes no aplicativo nativo permitindo tambeacutem a personalizaccedilatildeo comoa adiccedilatildeo de pontos definidos pelo usuaacuterio ao mapa

34 Localizaccedilatildeo do UsuaacuterioOutro serviccedilo que foi utilizado com o intuito de obter o tempo de trajeto e a lista ordenada

de forma personalizada de restaurantes foi a localizaccedilatildeo do usuaacuterio que eacute obtida atraveacutes doGPS presente nos smartphones Um objeto de localizaccedilatildeo eacute criado e realiza a comunicaccedilatildeocom o serviccedilo de localizaccedilatildeo do aparelho Ao obter a localizaccedilatildeo ele lanccedila um evento quepode ser acessado por outras partes da aplicaccedilatildeo obtendo a localizaccedilatildeo mais atualizada dodispositivo

36 CONTROLE DE VERSAtildeO 19

35 Controle de VersatildeoControle de versatildeo eacute uma praacutetica usada para manter a organizaccedilatildeo do coacutedigo e do seu de-

senvolvimento quando muitos desenvolvedores colaboram conjuntamente Existem softwaresque auxiliam essa organizaccedilatildeo registrando todas as mudanccedilas feitas ao longo do processo eque possui recursos que permitem que vaacuterios usuaacuterios trabalhem nos mesmos arquivos semperda de informaccedilotildees

No caso do Git [8] o projeto fica organizado em uma estrutura de aacutervore onde cadacommit (checkpoints criados pelos membros do grupo durante o processo) eacute marcado porum noacute para onde se pode retornar quando necessaacuterio Existem tambeacutem estruturas chama-das branches que satildeo bifurcaccedilotildees na estrutura para que partes do projeto sejam criadasseparadamente sem interferir com a linha principal As branches depois satildeo unidas agrave linhaprincipal atraveacutes do comando merge

Neste projeto o serviccedilo de controle de versatildeo utilizado foi o Bitbucket [2] (que eacute um ser-viccedilo web-based de controle de versatildeo que utiliza Git) com auxiacutelio do software SourceTree[19]que eacute uma interface graacutefica para os serviccedilos do Bitbucket onde eacute possiacutevel visualizar com maisfacilidade as fases do desenvolvimento do projeto e realizar os comandos mais intuitivamente

Figura 32 Interface do SourceTree que mostra o controle de versionamento do projeto

36 Banco de dadosCom o intuito de deixar o aplicativo mais completo guardando informaccedilotildees dos usuaacuterios

e dos estabelecimentos optou-se por utilizar-se um banco de dados Alguns exemplos de

20 TECNOLOGIAS UTILIZADAS 36

banco de dados aprendidos no curso Laboratoacuterio de Banco de Dados foram

∙ SQL (Structured Query Language - Linguagem de Consulta Estruturada)[20] umalinguagem para atualizar deletar e requisitar informaccedilotildees atraveacutes de consultas emtabelas que possuem relaccedilatildeo entre si

∙ noSQL[13] um banco de dados que armazena e recupera informaccedilotildees modeladas deuma forma onde natildeo satildeo usadas tabelas relacionais

Como este uacuteltimo natildeo foi o foco da disciplina por falta de tempo decidiu-se por utilizaacute-lopara que o grupo pudesse aprender melhor esse modelo

Outra decisatildeo tomada foi a hospedagem dos dados na nuvem ou seja colocaacute-los em umservidor que natildeo seja local e conseguir acessaacute-los atraveacutes de uma conexatildeo via internet Dessemodo os dados sempre estaratildeo disponiacuteveis para serem consultados

361 Firebase

Buscando-se atender as decisotildees tomadas sobre o banco de dados procuramos um serviccedilode banco de dados da Google por conter ampla integraccedilatildeo com a plataforma de desenvolvi-mento Android por ser conhecido bastante utilizado e por possuir uma ampla comunidadede desenvolvedores dispostos a oferecer auxiacutelio em foacuteruns de discussatildeo de coacutedigos

Para atender esses requisitos escolheu-se o Firebase Realtime Database[6] desenvolvido edisponibilizado pela Google que consiste em um banco de dados noSQL com armazenamentona nuvem Esse serviccedilo armazena os dados do usuaacuterio no servidor da Google em formatoJSON e a cada alteraccedilatildeo sincroniza em tempo real com todos os clientes conectados

O grupo pode observar as seguintes vantagens de se trabalhar com a ferramenta existea sincronizaccedilatildeo em tempo real dos dados de todos os clientes e sua disponibilidade mesmocom o aplicativo offline ou seja quando o aplicativo natildeo estiver conectado a internet osdados do dispositivo moacutevel seratildeo armazenados e sincronizados com o banco de dados assimque a conexatildeo estiver disponiacutevel novamente Aleacutem disso os desenvolvedores possuem acessoa um console online (figura 33) onde o JSON eacute mostrado numa interface interativa de umaforma mais amigaacutevel e no qual eacute permitido editaacute-lo facilmente

37 CROWDSOURCING 21

Figura 33 Console online do Firebase onde os dados satildeo mostrados de forma mais amigaacutevel eintuitiva

Outra observaccedilatildeo feita foi que o Firebase Realtime Database funciona como o esperadose ele guardar uma coacutepia local dos dados em um arquivo JSON no celular Poreacutem isso natildeofoi visto como um problema pois como essa coacutepia pode ser salva em um arquivo texto oespaccedilo utilizado diminui consideravelmente

Na primeira vez que os dados satildeo criados e todas as vezes em que os dados forem atua-lizados por algum dispositivo moacutevel eacute enviada uma atualizaccedilatildeo que seraacute recebida atraveacutes delisteners por todos os aparelhos que utilizam o aplicativo para que eles atualizem seus res-pectivos JSONs Listeners satildeo interfaces de comunicaccedilatildeo que executam uma seacuterie de accedilotildeesassim que um outro evento esperado acontece

37 CrowdsourcingO termo Crowdsourcing tem origem nas palavras da liacutengua inglesa Crowd (multidatildeo) e

Outsourcing (terceirizaccedilatildeo) e eacute definido pelo dicionaacuterio Merriam Webster como A praacuteticade obtenccedilatildeo de serviccedilos ideias ou conteuacutedo solicitando contribuiccedilotildees de grandes grupos depessoas e especialmente da comunidade online [3] Esta praacutetica eacute utilizada para que sejapossiacutevel agrave comunidade contribuir com dados para algum programa ou serviccedilo como no apli-cativo Waze do qual a principal fonte de dados de tracircnsito acidentes e radares eacute obtida pormeio dos proacuteprios usuaacuterios

Capiacutetulo 4

Desenvolvimento do Projeto

Este capiacutetulo aborda o processo de desenvolvimento do projeto iniciado com o preen-chimento do diagrama Canvas e uma pesquisa de mercado direcionada ao usuaacuterio A partirdas informaccedilotildees coletadas foi possiacutevel projetar um aplicativo que atendesse as necessidadesexpostas pela pesquisa e selecionar as tecnologias necessaacuterias Tambeacutem eacute abordada a aplica-ccedilatildeo dos diferentes meacutetodos de caacutelculo da previsatildeo de tempo de espera que foram estudadose explicados no Capiacutetulo 2 Por fim satildeo expostas as diferentes versotildees do aplicativo duranteo processo e seus detalhes

41 Pesquisa de MercadoAntes de iniciar-se o desenvolvimento praacutetico algumas questotildees foram levantadas se

um aplicativo com as funcionalidades escolhidas seria de alguma forma uacutetil para o usuaacuterioe se sim qual metodologia deveria ser usada para que este produto fosse entregue o maiscompleto possiacutevel ateacute o final do ano Para responder a primeira pergunta desenvolveu-seum questionaacuterio

411 Pesquisa com o usuaacuterio

O questionaacuterio foi desenvolvido para avaliar a viabilidade do aplicativo e suas funciona-lidades e foi criado utilizando-se o Google Forms [9] Essa eacute uma ferramenta desenvolvidapelo Google que possibilita a criaccedilatildeo de formulaacuterios contendo diversos formatos de pergun-tas tanto dissertativas quanto de muacuteltipla escolha

Seguindo os princiacutepios de desenvolvimento de questionaacuterios [4] o conjunto de perguntasfoi mantido curto simples e de faacutecil entendimento Tambeacutem variou-se o tipo de questotildeesentre estruturadas (questotildees com respostas em forma de alternativas) e desestruturadas(questotildees com respostas em formato texto) seguindo esses mesmos princiacutepios para captarmelhor as informaccedilotildees dos entrevistados e evitar erros de entendimento

Com as respostas do questionaacuterio tinha-se o intuito de traccedilar um possiacutevel puacuteblico alvoconhecer seu modo de uso de dispositivos moacuteveis e validar a aplicabilidade de diferentesfuncionalidades pretendidas inicialmente sendo essas engajamento do usuaacuterio atraveacutes denotificaccedilotildees do sistema aceitaccedilatildeo de sugestotildees de locais alternativos avaliaccedilatildeo da existecircnciado problema que queremos resolver (se este aplicativo supre uma necessidade real do usuaacute-rio) e aceitaccedilatildeo do aplicativo

23

24 DESENVOLVIMENTO DO PROJETO 41

Para a divulgaccedilatildeo redes sociais como Facebook [5] e sistemas de mensagem instantacircneascomo WhatsApp foram usados e o envio de respostas foi restrito ateacute trecircs semanas apoacutes suaprimeira postagem Neste periacuteodo foram obtidas 210 respostas as quais ajudaram a definiros aspectos do sistema a ser desenvolvido

O questionaacuterio foi dividido em duas subseccedilotildees perfil do usuaacuterio e funcionalidade Comelas obteve-se os seguintes resultados

41 PESQUISA DE MERCADO 25

Questatildeo 1

Figura 41 Graacutefico pizza da distribuiccedilatildeo das respostas em relaccedilatildeo a idade dos pesquisados

As faixas de idade apresentadas estatildeo desbalanceadas por natildeo terem a mesma quantidadede anos em cada uma poreacutem essa divisatildeo foi pensada levando-se em conta a fluecircncia comtecnologia que cada idade possui Com o resultado verificou-se que do puacuteblico alcanccediladocom a pesquisa a maioria estaacute na faixa de 18 a 25 anos de idade assumida como parcelacom maior conhecimento tecnoloacutegico

Questatildeo 2

Figura 42 Graacutefico pizza da distribuiccedilatildeo das respostas em relaccedilatildeo ao sistema operacional

Esta questatildeo foi pensada para medir a porcentagem de cada sistema operacional pre-sente nos celulares do puacuteblico Com ela descobriu-se que 639 das pessoas dentro desse

26 DESENVOLVIMENTO DO PROJETO 41

grupo possuem o sistema Android enquanto 234 possuem iOS e 38 Windows phoneEssa pergunta foi incluiacuteda para um melhor direcionamento do desenvolvimento do aplicativo

Uma questatildeo levantada ao aplicar esse questionaacuterio foi a dificuldade que algumas pessoasencontraram para identificar a versatildeo do proacuteprio aparelho Poreacutem para manter a consistecircnciadas respostas decidiu-se natildeo mudar nada nesta questatildeo para remediar isso

Questatildeo 3

Figura 43 Graacutefico em barras da distribuiccedilatildeo de frequecircncias mensais de cada local analisado

41 PESQUISA DE MERCADO 27

Questatildeo 4

Figura 44 Graacutefico em pizza da distribuiccedilatildeo de interesse do usuaacuterio no tempo de espera de cadalocal

A princiacutepio viu-se muitas possiacuteveis aplicaccedilotildees para a previsatildeo de tempo de espera Paraentender qual seria a prioridade do puacuteblico as questotildees acima foram incluiacutedas A primeiraverificou a frequecircncia de visitas em alguns locais e a segunda serviu para analisar qualestabelecimento despertava mais interesse nos entrevistados quanto ao quesito fila Nos doiscasos restaurantes se destacaram com o maior interesse

Questatildeo 5

Figura 45 Graacutefico em barras da distribuiccedilatildeo de interesse do usuaacuterio por cada item avaliado

Para acompanhar o dado de espera e fornecer mais informaccedilotildees relevantes ao usuaacuteriosem potencial perguntou-se quais outras informaccedilotildees eles acham interessante saber sobre umdeterminado estabelecimento Com isso descobriu-se que a faixa de preccedilo o trajeto ateacute olocal e o cardaacutepio seriam dados importantes de se obter juntamente com o tempo de espera

28 DESENVOLVIMENTO DO PROJETO 41

Questatildeo 6O que vocecirc costuma fazer para evitar filasNeste ponto testou-se se a soluccedilatildeo proposta atraveacutes do aplicativo resolveria o problema dousuaacuterio de uma forma melhor do que a soluccedilatildeo atualmente utilizada Para isso foi perguntadoo que as pessoas fazem para evitar filas e as principais respostas foram

∙ Evitar horaacuterios de pico

∙ Chegar cedo

∙ Ir em outro lugar caso uma fila seja encontrada

∙ Tentar realizar reservas antecipadamente

∙ Se distrair com livroscelular

Notou-se que as soluccedilotildees utilizadas atualmente natildeo suprem as necessidades dos entre-vistados pois mesmo em horaacuterios natildeo convencionais pode-se encontrar filas ou quandodecide-se esperar na fila muito tempo eacute perdido Concluiu-se que a soluccedilatildeo proposta a par-tir do aplicativo resolve de forma mais abrangente o problema pois ajuda o usuaacuterio a evitarhoraacuterios de pico inesperados

Questatildeo 7

Figura 46 Graacutefico em pizza da distribuiccedilatildeo do meio de transporte utilizado pelos usuaacuterios

Essa questatildeo foi formulada com o objetivo de verificar quais meios de transporte seriamincluiacutedos com previsatildeo de tempo de trajeto no aplicativo Foi verificado que a maioria dosentrevistados utilizam transporte puacuteblico seguido por carro

41 PESQUISA DE MERCADO 29

Questatildeo 8

Figura 47 Graacutefico em pizza da distribuiccedilatildeo do interesse do usuaacuterio pela informaccedilatildeo fornecida

Questatildeo 9

Figura 48 Graacutefico em pizza da distribuiccedilatildeo de quantidade de quilocircmetros que o usuaacuterio sedeslocaria para ir a um local com menos fila

Com essas questotildees foi verificado que algo importante para o usuaacuterio eacute saber de outrosestabelecimentos que possam oferecer tempos de espera menores nas redondezas de onde ousuaacuterio se encontra que eacute uma das funcionalidades que desejaacutevamos utilizar no sistema

30 DESENVOLVIMENTO DO PROJETO 41

Questatildeo 10

Figura 49 Graacutefico em barras da distribuiccedilatildeo de sentimento do usuaacuterio em relaccedilatildeo a notificaccedilatildeode aplicativos

Questatildeo 11

Figura 410 Graacutefico em pizza da distribuiccedilatildeo de opiniatildeo do usuaacuterio sobre desabilitar notificaccedilotildeesem celular

42 PESQUISA DE MERCADO 31

Questatildeo 12

Figura 411 Graacutefico em pizza da distribuiccedilatildeo de opiniatildeo do usuaacuterio sobre habilitar GPS emcelular

A ideia inicial era poder usar o GPS para verificar a localizaccedilatildeo do usuaacuterio e enviarnotificaccedilotildees quando este estivesse parado nas proximidades de algum dos estabelecimentoscadastrados Para que essa funcionalidade possa existir eacute necessaacuterio que o aplicativo tenhaacesso agrave localizaccedilatildeo precisa da pessoa atraveacutes do GPS ou internet ateacute mesmo quando natildeoestiver aberto Aleacutem disso tambeacutem eacute necessaacuterio que as notificaccedilotildees estejam habilitadas parafinalizar esta interaccedilatildeo Entatildeo as perguntas 10 11 e 12 foram incluiacutedas no questionaacuterio Ob-servando as respostas foi possiacutevel verificar que 295 das pessoas que responderam deixamambas as funcionalidades habilitadas (GPS e notificaccedilotildees) Com isso pudemos prosseguircom essa ideia e tambeacutem pensar em possiacuteveis alternativas de interaccedilatildeo e engajamento como usuaacuterio

Por conta dessa pesquisa ter sido compartilhada atraveacutes das contas das redes sociais ecomunicadores dos componentes deste grupo sabe-se que este pode apresentar um resultadoviesado mas que mesmo assim natildeo deve ser desconsiderado e que muito ajudou a sanar asduacutevidas iniciaisComo resultado traccedilamos o perfil do entrevistado

∙ Faixa etaacuteria predominante entre 18 e 30 anos

∙ Possui sistema operacional Android (versotildees 4 5 e 6)

∙ Vai a restaurantes com certa frequecircncia mensal resultando em interesses sobre infor-maccedilotildees relacionadas a esse estabelecimento

∙ Costuma chegar cedo ou evitar os horaacuterios de pico para evitar filas nos locais

∙ Carro e transporte coletivo satildeo os principais meios de transporte

∙ Se deslocaria para um estabelecimento semelhante que possui menos fila contanto queeste fique num raio de 2km de distacircncia

32 DESENVOLVIMENTO DO PROJETO 43

42 Projeto do AplicativoO grupo comeccedilou o projeto com o preenchimento do diagrama Canvas(figura 412) apre-

sentado na Seccedilatildeo 21 Desse modo foi adquirida uma ideia mais consistente e uma base paracomeccedilar a implementaccedilatildeo

Figura 412 Diagrama Canvas preenchido pelo grupo

Com o modelo de negoacutecios definido e com base no resultado da pesquisa com o usuaacuterioapresentada na seccedilatildeo seguinte foram aplicadas pequenas mudanccedilas no projeto para melhoradequar-se agraves necessidades e ao perfil do puacuteblico alvo

Para o desenvolvimento foi utilizado um meacutetodo aacutegil baseado no scrum com sprints de3 a 4 semanas devido agrave disponibilidade dos membros do grupo Os encontros natildeo eram diaacute-rios como recomendado para o meacutetodo scrum tambeacutem em razatildeo da disponibilidade Haviamstand ups (discussotildees raacutepidas no comeccedilo de cada encontro) e retrospectivas ao final de cadasprint A cada sprint eram selecionadas histoacuterias e tarefas para serem executadas e caso natildeofossem concluiacutedas ao final da iteraccedilatildeo eram inseridas ao backlog e feitas no sprint seguinte

43 Aplicaccedilatildeo dos meacutetodos de caacutelculo de espera

431 Aplicando a meacutedia por periacuteodo

Aplicando-se no trecho abaixo a teacutecnica desenvolvida na Seccedilatildeo 242 para uma queryrealizada no dia 19082016 no intervalo de 2040 - 2055 analisa-se a semana anterior quepossua tais intervalos Assim o saacutebado dia 06082016 seraacute selecionado

43 APLICACcedilAtildeO DOS MEacuteTODOS DE CAacuteLCULO DE ESPERA 33

Entrada Qtd Pessoas Notificado Espera

6816 2043 2 862016 2053 1606

6816 2044 2 862016 2055 674

6816 2048 2 862016 2056 528

6816 2048 2 862016 2057 520

6816 2051 2 862016 2107 1118

6816 2051 3 862016 2110 1305

6816 2052 2 862016 2110 1273

6816 2052 2 862016 2111 1179

6816 2053 2 862016 2112 1217

6816 2053 2 NULL 59

6816 2054 3 862016 2119 1541

6816 2055 2 862016 2117 1444

6816 2055 2 862016 2120 1570

6816 2055 2 862016 2122 1613

Tabela 41 Trecho do dia 06082016 entre os horaacuterios das 2043 agraves 2055 um intervalo de 12minutos retirado dos dados da empresa Get In

Com esses dados obteve-se a meacutedia de espera de 1080 segundos (18 minutos) a qualseria sugerida para o usuaacuterio com a busca e desvio padratildeo de 465144719 segundos (775 mi-nutos) Dentro desse intervalo tem-se como maacuteximo tempo de espera 1613 segundos (2688minutos) e como miacutenimo 59 segundos (1 minuto) Analisando-se os dados do dia 19082016no mesmo periacuteodo temos

34 DESENVOLVIMENTO DO PROJETO 43

Entrada Pessoas Notificado Espera Erro previsatildeo Erro p 2 pessoas

19816 2043 2 8192016 2051 544 -563 522

19816 2043 2 8192016 2052 605 -502 461

19816 2044 2 8192016 2056 723 -384 343

19816 2046 4 8192016 2119 1988 881 X

19816 2048 2 8192016 2102 919 188 147

19816 2051 2 8192016 2103 821 286 245

19816 2051 3 8192016 2108 1773 666 X

19816 2053 2 8192016 2110 1083 24 -17

19816 2053 2 8192016 2111 1105 2 -39

19816 2053 2 8192016 2112 1169 62 -103

19816 2055 2 8192016 2114 1447 340 -381

Tabela 42 Trecho do dia 19082016 entre os horaacuterios das 2043 agraves 2055um intervalo de 12minutos retirado dos dados da empresa Get In

Ou seja se um grupo chegasse dentro desse periacuteodo e a previsatildeo dada fosse a meacutediaobtida anteriormente o erro calculado pela diferenccedila entre o tempo sugerido e o real tempode espera estaria no intervalo de 15 minutos para menos ou 8 minutos para mais Sendoesse um valor aceitaacutevel

Um proacuteximo passo eacute a restriccedilatildeo dos registros a grupos com 2 integrantes Com tal restri-ccedilatildeo a previsatildeo de espera eacute de 1066 segundos (1776 minutos) Aplicando essa nova meacutedia aosregistros com 2 integrantes do dia 19082016 obteacutem-se um erro (Coluna 6 - erro previsatildeopara 2 pessoas) menor do que o anterior O intervalo do erro calculado neste caso seria de 522segundos (87 minutos) para mais e 381 segundos (635 minutos) para menos Este resultadoeacute ainda mais favoraacutevel mostrando que a inclusatildeo de mais filtros para o caacutelculo da previsatildeomelhorou o tempo previsto

432 Aplicando teoria das filas

A teoria das filas (Seccedilatildeo 242) eacute uma ferramenta muito completa que calcula muitos dadosuacuteteis para a previsatildeo de espera Contudo por conta da necessidade de informaccedilotildees sobreo tempo de atendimento a qual natildeo estaacute contida no banco utilizado esta teoria natildeo podeser aplicada neste caso Poreacutem esse dado pode ter um valor assumido para que a utilizaccedilatildeodessa teoria fosse possiacutevel entretanto a sua precisatildeo ficaria comprometida e imprevisiacutevel

433 Aplicando redes neurais

Para aplicar o que foi estudado na Seccedilatildeo 242 foi executado o software com o mecircs deAgosto como teste o mecircs de Setembro como treino e o limite do erro quadraacutetico como 001 eobteve-se a tabela presente no apecircndice B Na tabela podemos ver o tempo de fila esperadoou seja o tempo contido na tabela do mecircs de Setembro o tempo que o algoritmo deu comoresposta baseado no mecircs de Agosto e o erro entre eles respectivamente

44 DEFINICcedilAtildeO DA INTERFACE DO APLICATIVO 35

Figura 413 Software Multiple Back-Propagation com a configuraccedilatildeo escolhida para os dadosdisponiacuteveis

Mesmo o erro se mantendo em 0018 os dados obtidos possuem um erro padratildeo de 15minutos Se mais dados forem adicionados o criteacuterio de parada pode ser atingido e assimuma previsatildeo melhor pode ser alcanccedilada

434 Conclusatildeo sobre os meacutetodos estudados

Dentre todas as possibilidades estudadas visualizamos na meacutedia por periacuteodo a melhoropccedilatildeo assumindo os dados disponiacuteveis para teste Se mais paracircmetros fossem fornecidoscomo o tempo de atendimento a teoria das filas seria uma boa opccedilatildeo para fornecer a pre-visatildeo de espera E se mais dados estivessem disponiacuteveis as redes neurais conseguiriam umaaproximaccedilatildeo melhor e assim seria uma boa opccedilatildeo tambeacutem

44 Definiccedilatildeo da Interface do aplicativoComo um primeiro protoacutetipo foi desenvolvida uma interface simples que tinha como tela

de iniacutecio um mapa com um campo para buscas na parte superior

36 DESENVOLVIMENTO DO PROJETO 44

Figura 414 Fluxo de telas do primeiro protoacutetipo

Ao efetuar uma busca por algum estabelecimento uma tela mostrando o tempo de esperaaproximado da fila no local era exibida junto com bototildees que permitiam selecionar o meiode transporte visualizar outras opccedilotildees ou dar iniacutecio a rota ateacute o local desejado Tambeacutemhavia uma notificaccedilatildeo para quando a pessoa estivesse parada proacutexima a um restaurantecadastrado que direcionaria o usuaacuterio a uma tela com um cronocircmetro do tempo de esperana fila

Para testar essa visualizaccedilatildeo escolhemos algumas pessoas e realizamos um teste deusabilidade[22] este teste eacute feito da seguinte forma

44 DEFINICcedilAtildeO DA INTERFACE DO APLICATIVO 37

Uma contextualizaccedilatildeo eacute feita para o voluntaacuterio e entatildeo uma tarefa eacute passada para sercompletada Os integrantes do grupo observam dificuldades enfrentadas pelo entrevistado etomam notas Esse teste eacute repetido algumas vezes e seu resultado eacute coletado para avaliaccedilatildeoe modificaccedilatildeo das funcionalidades

Figura 415 Tela de detalhes de um restaurante(segunda versatildeo)

Notou-se que algumas funcionalidadespareceram confusas e natildeo intuitivas porexemplo natildeo ficou claro se o tempo mos-trado era de trajeto ou de espera na filanem qual era o meio de transporte utili-zado

Logo esse protoacutetipo foi reformuladocom o intuito de melhorar a experi-ecircncia do usuaacuterio com o nosso aplica-tivo

Foram colocados aleacutem do tempo deespera da fila o tempo que o usuaacuteriolevaria para chegar ateacute o local selecio-nado (conforme o tipo de transporte es-colhido) e a quantidade estimada de pes-soas na fila O tempo total (espera so-mado ao tempo de deslocamento) ga-nhou destaque entre as informaccedilotildees doestabelecimento e o botatildeo que direcionao usuaacuterio ao trajeto ficou mais especiacute-fico

Tambeacutem cogitou-se a possibilidade deadicionar login e um perfil de usuaacuteriojunto com uma lista de restaurantes favo-ritos

O fluxo das telas deste novo protoacutetipo ficou como mostra o esquema a seguir

38 DESENVOLVIMENTO DO PROJETO 44

Figura 416 Fluxo de telas do segundo protoacutetipo

44 DEFINICcedilAtildeO DA INTERFACE DO APLICATIVO 39

Figura 417 Tela de detalhes de um restaurante(terceira versatildeo)

Apoacutes outras avaliaccedilotildees mais algumaspequenas alteraccedilotildees foram realizadas nainterface Foi decidido que seria inviaacute-vel estimar o nuacutemero de pessoas nafila entatildeo essa funcionalidade foi remo-vida

Notificaccedilotildees foram adicionadas paraquando o usuaacuterio estiver parado na aacutereado restaurante para que ele possa con-tribuir com informaccedilotildees sobre a fila quepegou aleacutem de um botatildeo de contri-buiccedilatildeo ter sido inserido na tela ini-cial

40 DESENVOLVIMENTO DO PROJETO 45

O fluxo de telas do aplicativo atual ficou da seguinte forma

Figura 418 Fluxo de telas do terceiro protoacutetipo

46 EXPLICACcedilAtildeO DAS FUNCIONALIDADES 41

45 Explicaccedilatildeo das funcionalidadesEsta seccedilatildeo explica as funcionalidades do produto utilizando a figura 418

A tela inicial (3) exibe uma lista de restaurantes incluindo seus respectivos tempos detrajeto e tempo de espera na fila Ao clicar no botatildeo ldquo+rdquo uma caixa de diaacutelogo eacute aberta(4) onde eacute possiacutevel adicionar o tempo que o usuaacuterio esperou na fila Primeiro eacute escolhido orestaurante depois a data e hora que a pessoa chegou na fila e por fim o tempo de esperaem minutos Ao tocar em ldquoEnviar Feedback rdquo os dados satildeo incluiacutedos no banco de dados eatualizados para os outros usuaacuterios Assim eacute apicado o conceito de Crowdsourcing no apli-cativo

Ao tocar em um item da lista de restaurantes seraacute aberta a tela de detalhes de um res-taurante (5) na qual eacute possiacutevel ver com mais clareza os tempos de trajeto e espera o tempototal o endereccedilo do estabelecimento e um pequeno mapa centrado no local Pressionandoo botatildeo ldquoDireccedilotildeesrdquo o usuaacuterio seraacute redirecionado ao aplicativo de mapas de sua preferecircnciano caso do exemplo (8) o Google Maps jaacute traccedilando a rota da localizaccedilatildeo do usuaacuterio para oestabelecimento em questatildeo

Novamente na tela inicial tocando no iacutecone de lupa eacute possiacutevel realizar uma busca digi-tando o nome do estabelecimento na caixa de texto a qual exibe sugestotildees dependendo doque foi digitado Ao clicar em um dos resultados da busca o usuaacuterio eacute novamente direcionadopara a tela de detalhes do restaurante (5)

Tambeacutem eacute possiacutevel tocar no iacutecone de mapa na tela inicial onde seraacute mostrado um mapacentrado na localizaccedilatildeo do usuaacuterio

Ao ficar parado por um tempo em um mesmo local proacuteximo a um estabelecimentocadastrado o usuaacuterio eacute perguntado em uma notificaccedilatildeo quanto tempo ele permaneceu nafila Ao tocar na notificaccedilatildeo a caixa de diaacutelogo para feedback do usuaacuterio seraacute aberta (4) jaacutecom o restaurante preenchido e apoacutes o feedback a janela seraacute fechada e os dados enviadosao banco de dados

46 Implementaccedilatildeo do banco de dadosO banco de dados do aplicativo foi modelado e populado em forma de aacutervore (Fi-

gura 419) de forma a facilitar o acesso aos dados necessaacuterios ao aplicativo No primeironiacutevel estatildeo os ids dos restaurantes Cada id de restaurante guarda a localizaccedilatildeo (latitudelongitude) do restaurante o nome o endereccedilo e um objeto fila O objeto fila guarda todos osdias da semana (domingo a saacutebado) e cada dia da semana possui 24 campos um para cadahora do dia Cada hora possui o tempo meacutedio de espera da fila naquela hora e um peso paraesse tempo O peso eacute um valor que aumenta de acordo com o nuacutemero de feedbacks dadospara que o novo valor do tempo meacutedio seja calculado de forma consistente

Modelamos o banco de dados de uma forma que respeitasse uma hierarquia de dados

42 DESENVOLVIMENTO DO PROJETO 46

Figura 419 Aacutervore que ilustra a organizaccedilatildeo de um restaurante no banco de dados

Com o banco de dados jaacute populado o aplicativo faz consultas e atualizaccedilotildees de dadosConsultas satildeo feitas ao criar a tela de listagem de restaurantes e de detalhes de um restau-rante consultado As atualizaccedilotildees satildeo feitas quando o usuaacuterio manda o feedback de tempo deespera em um estabelecimento em determinado horaacuterio o aplicativo calcula a nova meacutedia eatualiza o campo do respectivo horaacuterio

Capiacutetulo 5

Conclusatildeo

Ao longo dos capiacutetulos deste trabalho pocircde-se acompanhar todo o processo de criaccedilatildeo edesenvolvimento do aplicativo que apoacutes finalizado foi batizado com o nome Queue

Comeccedilando com um problema para o qual o grupo almejava oferecer uma soluccedilatildeoacabou-se por adentrar-se um pouco no campo da Estatiacutestica e estudar diversas metodo-logias que poderiam ser uacuteteis para fornecer um caacutelculo de previsatildeo de espera meacutedia porperiacuteodo aplicaccedilatildeo da teoria das filas e utilizaccedilatildeo de redes neurais

Atraveacutes de uma parceria com a empresa GetIn obteve-se acesso a uma grande quantidadede dados e foi possiacutevel utilizaacute-los em anaacutelises feitas nas metodologias escolhidas conseguindoassim resultados relevantes Por meio destes foi feita a escolha de um dos meacutetodos para ocaacutelculo da previsatildeo de filas a meacutedia por periacuteodo

Aleacutem desses estudos ao longo do ano o grupo aprendeu a desenvolver para a plata-forma Android sobre a qual nenhum dos integrantes tinha conhecimento preacutevio Tambeacutemfoi possiacutevel aprender e utilizar a metodologia aacutegil com Scrum para guiar o processo de de-senvolvimento

Ao fim do ciclo de desenvolvimento conseguiu-se entregar um aplicativo em funciona-mento que fornece a previsatildeo de espera no instante da consulta de estabelecimentos cadas-trados no banco de dados armazenado na nuvem

Na versatildeo atual do aplicativo natildeo foi implementado um sistema para o cadastro de novosestabelecimentos Isso soacute eacute possiacutevel atraveacutes da inserccedilatildeo direta no banco de dados atraveacutes dainterface fornecida pelo console do Firebase Atualmente estatildeo cadastrados 5 restaurantesos quais foram visitados durante o desenvolvimento do projeto Para que o cadastro deestabelecimentos escale seria necessaacuterio a implementaccedilatildeo de uma funcionalidade que permitaao usuaacuterio adicionar novos estabelecimentos a partir de locais disponiacuteveis na API de locaisda Google

43

45

46 APEcircNDICE A

Apecircndice A

Dados coletados

Figura A1 Dados de tempo de espera para grupos de tamanhos variados para cada horaacuterio e emcada dia da semana obtidos em entrevista em restaurantes Outback Steakhouse Shopping Uniatildeo nomecircs de outubro

Referecircncias Bibliograacuteficas

[1] Backpropagation httpmbpsourceforgenet Accesso em Janeiro 2017 14

[2] Bitbucket httpsbitbucketorgproduct Accesso em Dezembro 2016 19

[3] Crowdsourcing httpswwwmerriam-webstercomdictionarycrowdsourcing Ac-cesso em Novembro 2016 21

[4] Designing a survey httpwwwsciencebuddiesorgscience-fair-projectsproject_ideasSoc_surveyshtml Accesso em Outubro 2016 4 23

[5] Facebook httpswwwfacebookcom Accesso em Novembro 2016 24

[6] Firebase httpsfirebasegooglecom Accesso em Agosto 2016 20

[7] Getin app httpswwwgetinappcombrhomesao-paulo Accesso em Novembro2016 9

[8] Git 11 primeiros passos - sobre controle de versatildeo httpsgit-scmcombookpt-brv1Primeiros-passos-Sobre-Controle-de-Vers Accesso em Novembro 2016 19

[9] Google forms httpsdocsgooglecomforms Accesso em Novembro 2016 23

[10] Guia definitivo do project model canvas Project Builder 3

[11] Jsonorg introducing json httpwwwjsonorg Accesso em Novembro 2016 17

[12] Manifesto para desenvolvimento Aacutegil de software httpagilemanifestoorgisoptbrmanifestohtml Accesso em Novembro 2016 5

[13] Nosql httpsenwikipediaorgwikiNoSQL Accesso em Novembro 2016 20

[14] Outback steakhouse httpswwwoutbackcombrhome Accesso em Novembro 20169

[15] Restful api development with lumen microframework httpsbelitsoftcomlaravel-development-servicesapi-development Accesso em Novembro 2016 17

[16] Scrum httpswwwatlassiancomagilescrum Accesso em Novembro 2016 5

[17] Smartphone os market share 2016 q2 httpwwwidccomprodservsmartphone-os-market-sharejsp Accesso em Novembro 2016 15

[18] Smartphone os sales market share kantar worldpanel comtech httpwwwkantarworldpanelcomsmartphone-os-market-share Accesso em Novembro 2016 15

[19] Sourcetree httpswwwsourcetreeappcom Accesso em Dezembro 2016 19

47

48 REFEREcircNCIAS BIBLIOGRAacuteFICAS

[20] Sql httpsptkhanacademyorgcomputingcomputer-programmingsql Accesso emDezembro 2016 20

[21] Trello httpstrellocom Accesso em Novembro 2016 6

[22] Usability test httpsenwikipediaorgwikiUsability_testing Accesso em Novembro2016 36

[23] Versionone 2012 agile dev survey httpswwwversiononecompdf7th-Annual-State-of-Agile-Development-Surveypdf Accesso em Novembro 2016 5

[24] Waze httpswwwwazecom Accesso em Novembro 2016 1

[25] What is an open source httpsopensourcecomresourceswhat-open-source Accessoem Novembro 2016 15

[26] Xml tutorial httpwwww3schoolscomxml Accesso em Novembro 2016 17

[27] Paulo F Cabral dos Anjos Jr Aron Ifanger Maciel Christopher Silva de Paacutedua Com-posiccedilatildeo de carteiras de accedilotildees utilizando modelo de redes neurais artificiais e modelo derisco e retorno de Markowitz 2012 14

[28] Google Distance matrix api documentation httpsdevelopersgooglecommapsdocumentationdistance-matrix Accesso em Novembro 2016 17

[29] Alan Klement Designing features using job stories httpsblogintercomcomusing-job-stories-design-features-ui-ux Accesso em Novembro 2016 6

[30] Azmat Nafees Queuing theory and its application analysis of the sales checkout opera-tion in ica supermarket httpwwwstatisticsduseessaysD07ENafeespdf Accessoem Novembro 2016 12

[31] Eric Ries A Startup Enxuta Lua de papel primeira ediccedilatildeo edition 2012 3

  • Introduccedilatildeo
    • Motivaccedilatildeo
    • Trabalho Proposto
    • Estrutura da monografia
      • Estudos Preliminares
        • Desenvolvimento de Startups
          • Desenvolvimento de Questionaacuterios
            • Metodologia Aacutegil
            • Jobs to be done
            • Caacutelculo da previsatildeo do tempo de espera na fila
              • Descriccedilatildeo do problema
              • Meacutetodos de caacutelculo da espera
                  • Tecnologias utilizadas
                    • O sistema Android
                      • Organizaccedilatildeo de uma aplicaccedilatildeo Android
                        • JSON
                        • Google APIs
                        • Localizaccedilatildeo do Usuaacuterio
                        • Controle de Versatildeo
                        • Banco de dados
                          • Firebase
                            • Crowdsourcing
                              • Desenvolvimento do Projeto
                                • Pesquisa de Mercado
                                  • Pesquisa com o usuaacuterio
                                    • Projeto do Aplicativo
                                    • Aplicaccedilatildeo dos meacutetodos de caacutelculo de espera
                                      • Aplicando a meacutedia por periacuteodo
                                      • Aplicando teoria das filas
                                      • Aplicando redes neurais
                                      • Conclusatildeo sobre os meacutetodos estudados
                                        • Definiccedilatildeo da Interface do aplicativo
                                        • Explicaccedilatildeo das funcionalidades
                                        • Implementaccedilatildeo do banco de dados
                                          • Conclusatildeo
                                          • Dados coletados
                                          • Referecircncias Bibliograacuteficas

Capiacutetulo 3

Tecnologias utilizadas

31 O sistema AndroidAndroid eacute um Sistema operacional open source (software de coacutedigo aberto o qual as

pessoas podem acessar e modificar para contribuir com o projeto [25]) e para dispositivosmoacuteveis desenvolvido pela Google baseado no Kernel do Linux e utilizado principalmente emdispositivos touchscreen Atualmente o Android eacute o sistema operacional que deteacutem a maiorparcela do mercado[17] com 836 dos dispositivos contra 134 do iOS da Apple

A Google tambeacutem oferece um ambiente de desenvolvimento para a plataforma Androidchamado Android Studio no qual os aplicativos satildeo criados e exportados para os dispositi-vos moacuteveis Aplicativos Android satildeo programados na linguagem Java com vaacuterias bibliotecasdisponibilizadas pela Google para suporte ao sistema operacional

A escolha da plataforma foi feita principalmente por conta de o sistema possuir a maiorparte dos usuaacuterios de Smartphones e tambeacutem pela ampla comunidade ativa de desenvolve-dores agrave qual se pode recorrer em casos de duacutevidas e problemas tornando suas resoluccedilotildeesmais raacutepidas e com muacuteltiplas alternativas Outros motivos que contribuiacuteram para a escolhado Android foram

∙ A disponibilidade do ambiente de desenvolvimento Android Studio que possui todosos recursos necessaacuterios para desenvolver um aplicativo funcional logo apoacutes a instalaccedilatildeosem a necessidade de utilizar outras dependecircncias as quais satildeo gerenciadas automati-camente pelo proacuteprio software

∙ O fato de no mercado brasileiro o sistema Android se encontrar em 918 dos dispo-sitivos segundo pesquisa da Kantar[18] e dado a pesquisa realizada para definiccedilatildeo depuacuteblico alvo onde foi possiacutevel perceber que 639 dos entrevistados utilizam smartpho-nes com sistema Android

∙ A utilizaccedilatildeo da linguagem de programaccedilatildeo Java para desenvolvimento que jaacute eraconhecida e fora utilizada anteriormente ao contraacuterio das linguagens Objective C eSwift linguagens utilizadas para desenvolver aplicativos para o sistema iOS Assimcomo a disponibilidade de dispositivos por parte do grupo que em sua maioria era decelulares com o sistema Android

15

16 TECNOLOGIAS UTILIZADAS 31

Figura 31 Parcela de mercado dos dispositivos no Brasil

311 Organizaccedilatildeo de uma aplicaccedilatildeo Android

Aplicativos Android satildeo divididos em componentes Haacute quatro tipos de componentespresentes Activities (ou atividades) Services (ou serviccedilos) Content providers (ou provedoresde conteuacutedo) Broadcast receivers (ou receptores de transmissatildeo)

∙ Activities Satildeo as telas e interfaces do usuaacuterio Cada tela de uma aplicaccedilatildeo eacute repre-sentada por uma activity e cada activity eacute independente de outras apesar de seremcomponentes de uma mesma aplicaccedilatildeo Isso se daacute pelo fato de haver a possibilidade deutilizar activities de aplicativos durante a execuccedilatildeo de outros Atividades satildeo iniciadase se comunicam entre si atraveacutes de objetos chamados Intent que transferem um pacotede dados que pode ser carregado no iniacutecio da nova atividade

∙ Services Sempre satildeo executados em segundo plano sem interferir na experiecircncia dousuaacuterio geralmente para realizar operaccedilotildees longas ou realizar operaccedilotildees de troca dedados enquanto o usuaacuterio estaacute utilizando outra aplicaccedilatildeo em primeiro plano

∙ Content Providers Satildeo gerenciadores de dados de aplicaccedilotildees Android utilizadospara ler e salvar dados compartilhados ou secretos dos aplicativos e do sistema

∙ Broadcast Receivers Satildeo componentes responsaacuteveis por obter eventos que aconte-ceram em outras aplicaccedilotildees ou no sistema e direcionar dados sobre esses eventos paraeventuais aplicaccedilotildees que necessitem destes dados alguns exemplos de eventos obtidospelos receptores de transmissatildeo satildeo tela desligada e bateria fraca

Aleacutem dos componentes uma parte importante de uma aplicaccedilatildeo Android eacute o ArquivoManifest que eacute uma declaraccedilatildeo de permissotildees serviccedilos e exigecircncias de hardware necessaacuterios

33 JSON 17

para o funcionamento do aplicativo Outra funccedilatildeo eacute possuir declaraccedilotildees de todos os compo-nentes utilizados no projeto nomes iacutecones entre outros

As interfaces de usuaacuterio do Android satildeo definidas em arquivos XML (eXtensible MarkupLanguage)[26] nos quais estatildeo declarados todos os layouts e configuraccedilotildees das telas Essesarquivos de layout satildeo depois inflados e satildeo gerados os componentes visuais da aplicaccedilatildeoEssa estrutura tem como objetivo facilitar o design da interface do usuaacuterio jaacute que arquivosxml satildeo de faacutecil compreensatildeo do desenvolvedor

32 JSONJSON ou Javascript Object Notation eacute um formato de dados amplamente utilizado para

troca de informaccedilotildees entre programas Possui uma notaccedilatildeo simples para grande parte dosprogramadores pois se assemelha a convenccedilotildees utilizadas em linguagens de programaccedilatildeomuito conhecidas como C C++ Python e Java O objetivo eacute que ele seja de faacutecil entendi-mento tanto para pessoas como para maacutequinas[11]

Um arquivo JSON eacute organizado como um objeto contendo pares nomevalorseparadospor viacutergulas e dentro de chaves(lsquolsquo rsquorsquo) ou como um array que eacute uma lista de valores separa-dos por viacutergulas e entre colchetes(lsquo[lsquo rsquo]rsquo) Um valor por sua vez pode ser um objeto ou umarray mas tambeacutem um nuacutemero inteiro ou uma String entre outros

Um exemplo de arquivo JSON eacute

1 2 Carros [3 4 Nome Scen ic 5 Marca Renault 6 Ano 20127 8 9 Nome Sentra

10 Marca Nissan 11 Ano 200912 13 ]14

33 Google APIsAPIs (Application Program Interfaces) satildeo interfaces para facilitar a troca de informa-

ccedilotildees entre aplicaccedilotildees utilizando comandos especiacuteficos[15]

Ao longo do desenvolvimento algumas APIs fornecidas pela Google foram utilizadascomo fonte de informaccedilotildees adicionais para o aplicativo

∙ Google Maps Distance Matrix API Esta API eacute utilizada para obter o tempo emsegundos de trajeto entre dois pontos (latlong) no mapa podem ser consultados ostempos de trajeto de carro bicicleta a peacute e utilizando transporte puacuteblico[28] Esta eacute

18 TECNOLOGIAS UTILIZADAS 35

uma API web logo utiliza-se um request http para realizar uma consulta

Por exemplo o request

httpsmapsgoogleapiscommapsapidistancematrixjsonorigins=Seattleampdestinations=Victoria+BCampkey=[user_key]

retorna o JSON

1 2 des t ina t i on_addre s s e s [ Vic tor ia BC Canada ] 3 o r i g in_addre s s e s [ Sea t t l e WA EUA ] 4 rows [5 6 e lements [7 8 d i s t anc e 9 text 172 km

10 value 17166811 12 durat ion 13 text 4 horas 40 minutos 14 value 1680915 16 s t a tu s OK17 18 ]19 20 ] 21 s t a tu s OK22

no qual eacute possiacutevel obter o tempo de trajeto em segundos

∙ Google Maps Android API Esta API eacute utilizada para habilitar o uso de mapasda Google integrados agrave aplicaccedilatildeo jaacute disponiacutevel com todas as funcionalidades de zoome arrastar presentes no aplicativo nativo permitindo tambeacutem a personalizaccedilatildeo comoa adiccedilatildeo de pontos definidos pelo usuaacuterio ao mapa

34 Localizaccedilatildeo do UsuaacuterioOutro serviccedilo que foi utilizado com o intuito de obter o tempo de trajeto e a lista ordenada

de forma personalizada de restaurantes foi a localizaccedilatildeo do usuaacuterio que eacute obtida atraveacutes doGPS presente nos smartphones Um objeto de localizaccedilatildeo eacute criado e realiza a comunicaccedilatildeocom o serviccedilo de localizaccedilatildeo do aparelho Ao obter a localizaccedilatildeo ele lanccedila um evento quepode ser acessado por outras partes da aplicaccedilatildeo obtendo a localizaccedilatildeo mais atualizada dodispositivo

36 CONTROLE DE VERSAtildeO 19

35 Controle de VersatildeoControle de versatildeo eacute uma praacutetica usada para manter a organizaccedilatildeo do coacutedigo e do seu de-

senvolvimento quando muitos desenvolvedores colaboram conjuntamente Existem softwaresque auxiliam essa organizaccedilatildeo registrando todas as mudanccedilas feitas ao longo do processo eque possui recursos que permitem que vaacuterios usuaacuterios trabalhem nos mesmos arquivos semperda de informaccedilotildees

No caso do Git [8] o projeto fica organizado em uma estrutura de aacutervore onde cadacommit (checkpoints criados pelos membros do grupo durante o processo) eacute marcado porum noacute para onde se pode retornar quando necessaacuterio Existem tambeacutem estruturas chama-das branches que satildeo bifurcaccedilotildees na estrutura para que partes do projeto sejam criadasseparadamente sem interferir com a linha principal As branches depois satildeo unidas agrave linhaprincipal atraveacutes do comando merge

Neste projeto o serviccedilo de controle de versatildeo utilizado foi o Bitbucket [2] (que eacute um ser-viccedilo web-based de controle de versatildeo que utiliza Git) com auxiacutelio do software SourceTree[19]que eacute uma interface graacutefica para os serviccedilos do Bitbucket onde eacute possiacutevel visualizar com maisfacilidade as fases do desenvolvimento do projeto e realizar os comandos mais intuitivamente

Figura 32 Interface do SourceTree que mostra o controle de versionamento do projeto

36 Banco de dadosCom o intuito de deixar o aplicativo mais completo guardando informaccedilotildees dos usuaacuterios

e dos estabelecimentos optou-se por utilizar-se um banco de dados Alguns exemplos de

20 TECNOLOGIAS UTILIZADAS 36

banco de dados aprendidos no curso Laboratoacuterio de Banco de Dados foram

∙ SQL (Structured Query Language - Linguagem de Consulta Estruturada)[20] umalinguagem para atualizar deletar e requisitar informaccedilotildees atraveacutes de consultas emtabelas que possuem relaccedilatildeo entre si

∙ noSQL[13] um banco de dados que armazena e recupera informaccedilotildees modeladas deuma forma onde natildeo satildeo usadas tabelas relacionais

Como este uacuteltimo natildeo foi o foco da disciplina por falta de tempo decidiu-se por utilizaacute-lopara que o grupo pudesse aprender melhor esse modelo

Outra decisatildeo tomada foi a hospedagem dos dados na nuvem ou seja colocaacute-los em umservidor que natildeo seja local e conseguir acessaacute-los atraveacutes de uma conexatildeo via internet Dessemodo os dados sempre estaratildeo disponiacuteveis para serem consultados

361 Firebase

Buscando-se atender as decisotildees tomadas sobre o banco de dados procuramos um serviccedilode banco de dados da Google por conter ampla integraccedilatildeo com a plataforma de desenvolvi-mento Android por ser conhecido bastante utilizado e por possuir uma ampla comunidadede desenvolvedores dispostos a oferecer auxiacutelio em foacuteruns de discussatildeo de coacutedigos

Para atender esses requisitos escolheu-se o Firebase Realtime Database[6] desenvolvido edisponibilizado pela Google que consiste em um banco de dados noSQL com armazenamentona nuvem Esse serviccedilo armazena os dados do usuaacuterio no servidor da Google em formatoJSON e a cada alteraccedilatildeo sincroniza em tempo real com todos os clientes conectados

O grupo pode observar as seguintes vantagens de se trabalhar com a ferramenta existea sincronizaccedilatildeo em tempo real dos dados de todos os clientes e sua disponibilidade mesmocom o aplicativo offline ou seja quando o aplicativo natildeo estiver conectado a internet osdados do dispositivo moacutevel seratildeo armazenados e sincronizados com o banco de dados assimque a conexatildeo estiver disponiacutevel novamente Aleacutem disso os desenvolvedores possuem acessoa um console online (figura 33) onde o JSON eacute mostrado numa interface interativa de umaforma mais amigaacutevel e no qual eacute permitido editaacute-lo facilmente

37 CROWDSOURCING 21

Figura 33 Console online do Firebase onde os dados satildeo mostrados de forma mais amigaacutevel eintuitiva

Outra observaccedilatildeo feita foi que o Firebase Realtime Database funciona como o esperadose ele guardar uma coacutepia local dos dados em um arquivo JSON no celular Poreacutem isso natildeofoi visto como um problema pois como essa coacutepia pode ser salva em um arquivo texto oespaccedilo utilizado diminui consideravelmente

Na primeira vez que os dados satildeo criados e todas as vezes em que os dados forem atua-lizados por algum dispositivo moacutevel eacute enviada uma atualizaccedilatildeo que seraacute recebida atraveacutes delisteners por todos os aparelhos que utilizam o aplicativo para que eles atualizem seus res-pectivos JSONs Listeners satildeo interfaces de comunicaccedilatildeo que executam uma seacuterie de accedilotildeesassim que um outro evento esperado acontece

37 CrowdsourcingO termo Crowdsourcing tem origem nas palavras da liacutengua inglesa Crowd (multidatildeo) e

Outsourcing (terceirizaccedilatildeo) e eacute definido pelo dicionaacuterio Merriam Webster como A praacuteticade obtenccedilatildeo de serviccedilos ideias ou conteuacutedo solicitando contribuiccedilotildees de grandes grupos depessoas e especialmente da comunidade online [3] Esta praacutetica eacute utilizada para que sejapossiacutevel agrave comunidade contribuir com dados para algum programa ou serviccedilo como no apli-cativo Waze do qual a principal fonte de dados de tracircnsito acidentes e radares eacute obtida pormeio dos proacuteprios usuaacuterios

Capiacutetulo 4

Desenvolvimento do Projeto

Este capiacutetulo aborda o processo de desenvolvimento do projeto iniciado com o preen-chimento do diagrama Canvas e uma pesquisa de mercado direcionada ao usuaacuterio A partirdas informaccedilotildees coletadas foi possiacutevel projetar um aplicativo que atendesse as necessidadesexpostas pela pesquisa e selecionar as tecnologias necessaacuterias Tambeacutem eacute abordada a aplica-ccedilatildeo dos diferentes meacutetodos de caacutelculo da previsatildeo de tempo de espera que foram estudadose explicados no Capiacutetulo 2 Por fim satildeo expostas as diferentes versotildees do aplicativo duranteo processo e seus detalhes

41 Pesquisa de MercadoAntes de iniciar-se o desenvolvimento praacutetico algumas questotildees foram levantadas se

um aplicativo com as funcionalidades escolhidas seria de alguma forma uacutetil para o usuaacuterioe se sim qual metodologia deveria ser usada para que este produto fosse entregue o maiscompleto possiacutevel ateacute o final do ano Para responder a primeira pergunta desenvolveu-seum questionaacuterio

411 Pesquisa com o usuaacuterio

O questionaacuterio foi desenvolvido para avaliar a viabilidade do aplicativo e suas funciona-lidades e foi criado utilizando-se o Google Forms [9] Essa eacute uma ferramenta desenvolvidapelo Google que possibilita a criaccedilatildeo de formulaacuterios contendo diversos formatos de pergun-tas tanto dissertativas quanto de muacuteltipla escolha

Seguindo os princiacutepios de desenvolvimento de questionaacuterios [4] o conjunto de perguntasfoi mantido curto simples e de faacutecil entendimento Tambeacutem variou-se o tipo de questotildeesentre estruturadas (questotildees com respostas em forma de alternativas) e desestruturadas(questotildees com respostas em formato texto) seguindo esses mesmos princiacutepios para captarmelhor as informaccedilotildees dos entrevistados e evitar erros de entendimento

Com as respostas do questionaacuterio tinha-se o intuito de traccedilar um possiacutevel puacuteblico alvoconhecer seu modo de uso de dispositivos moacuteveis e validar a aplicabilidade de diferentesfuncionalidades pretendidas inicialmente sendo essas engajamento do usuaacuterio atraveacutes denotificaccedilotildees do sistema aceitaccedilatildeo de sugestotildees de locais alternativos avaliaccedilatildeo da existecircnciado problema que queremos resolver (se este aplicativo supre uma necessidade real do usuaacute-rio) e aceitaccedilatildeo do aplicativo

23

24 DESENVOLVIMENTO DO PROJETO 41

Para a divulgaccedilatildeo redes sociais como Facebook [5] e sistemas de mensagem instantacircneascomo WhatsApp foram usados e o envio de respostas foi restrito ateacute trecircs semanas apoacutes suaprimeira postagem Neste periacuteodo foram obtidas 210 respostas as quais ajudaram a definiros aspectos do sistema a ser desenvolvido

O questionaacuterio foi dividido em duas subseccedilotildees perfil do usuaacuterio e funcionalidade Comelas obteve-se os seguintes resultados

41 PESQUISA DE MERCADO 25

Questatildeo 1

Figura 41 Graacutefico pizza da distribuiccedilatildeo das respostas em relaccedilatildeo a idade dos pesquisados

As faixas de idade apresentadas estatildeo desbalanceadas por natildeo terem a mesma quantidadede anos em cada uma poreacutem essa divisatildeo foi pensada levando-se em conta a fluecircncia comtecnologia que cada idade possui Com o resultado verificou-se que do puacuteblico alcanccediladocom a pesquisa a maioria estaacute na faixa de 18 a 25 anos de idade assumida como parcelacom maior conhecimento tecnoloacutegico

Questatildeo 2

Figura 42 Graacutefico pizza da distribuiccedilatildeo das respostas em relaccedilatildeo ao sistema operacional

Esta questatildeo foi pensada para medir a porcentagem de cada sistema operacional pre-sente nos celulares do puacuteblico Com ela descobriu-se que 639 das pessoas dentro desse

26 DESENVOLVIMENTO DO PROJETO 41

grupo possuem o sistema Android enquanto 234 possuem iOS e 38 Windows phoneEssa pergunta foi incluiacuteda para um melhor direcionamento do desenvolvimento do aplicativo

Uma questatildeo levantada ao aplicar esse questionaacuterio foi a dificuldade que algumas pessoasencontraram para identificar a versatildeo do proacuteprio aparelho Poreacutem para manter a consistecircnciadas respostas decidiu-se natildeo mudar nada nesta questatildeo para remediar isso

Questatildeo 3

Figura 43 Graacutefico em barras da distribuiccedilatildeo de frequecircncias mensais de cada local analisado

41 PESQUISA DE MERCADO 27

Questatildeo 4

Figura 44 Graacutefico em pizza da distribuiccedilatildeo de interesse do usuaacuterio no tempo de espera de cadalocal

A princiacutepio viu-se muitas possiacuteveis aplicaccedilotildees para a previsatildeo de tempo de espera Paraentender qual seria a prioridade do puacuteblico as questotildees acima foram incluiacutedas A primeiraverificou a frequecircncia de visitas em alguns locais e a segunda serviu para analisar qualestabelecimento despertava mais interesse nos entrevistados quanto ao quesito fila Nos doiscasos restaurantes se destacaram com o maior interesse

Questatildeo 5

Figura 45 Graacutefico em barras da distribuiccedilatildeo de interesse do usuaacuterio por cada item avaliado

Para acompanhar o dado de espera e fornecer mais informaccedilotildees relevantes ao usuaacuteriosem potencial perguntou-se quais outras informaccedilotildees eles acham interessante saber sobre umdeterminado estabelecimento Com isso descobriu-se que a faixa de preccedilo o trajeto ateacute olocal e o cardaacutepio seriam dados importantes de se obter juntamente com o tempo de espera

28 DESENVOLVIMENTO DO PROJETO 41

Questatildeo 6O que vocecirc costuma fazer para evitar filasNeste ponto testou-se se a soluccedilatildeo proposta atraveacutes do aplicativo resolveria o problema dousuaacuterio de uma forma melhor do que a soluccedilatildeo atualmente utilizada Para isso foi perguntadoo que as pessoas fazem para evitar filas e as principais respostas foram

∙ Evitar horaacuterios de pico

∙ Chegar cedo

∙ Ir em outro lugar caso uma fila seja encontrada

∙ Tentar realizar reservas antecipadamente

∙ Se distrair com livroscelular

Notou-se que as soluccedilotildees utilizadas atualmente natildeo suprem as necessidades dos entre-vistados pois mesmo em horaacuterios natildeo convencionais pode-se encontrar filas ou quandodecide-se esperar na fila muito tempo eacute perdido Concluiu-se que a soluccedilatildeo proposta a par-tir do aplicativo resolve de forma mais abrangente o problema pois ajuda o usuaacuterio a evitarhoraacuterios de pico inesperados

Questatildeo 7

Figura 46 Graacutefico em pizza da distribuiccedilatildeo do meio de transporte utilizado pelos usuaacuterios

Essa questatildeo foi formulada com o objetivo de verificar quais meios de transporte seriamincluiacutedos com previsatildeo de tempo de trajeto no aplicativo Foi verificado que a maioria dosentrevistados utilizam transporte puacuteblico seguido por carro

41 PESQUISA DE MERCADO 29

Questatildeo 8

Figura 47 Graacutefico em pizza da distribuiccedilatildeo do interesse do usuaacuterio pela informaccedilatildeo fornecida

Questatildeo 9

Figura 48 Graacutefico em pizza da distribuiccedilatildeo de quantidade de quilocircmetros que o usuaacuterio sedeslocaria para ir a um local com menos fila

Com essas questotildees foi verificado que algo importante para o usuaacuterio eacute saber de outrosestabelecimentos que possam oferecer tempos de espera menores nas redondezas de onde ousuaacuterio se encontra que eacute uma das funcionalidades que desejaacutevamos utilizar no sistema

30 DESENVOLVIMENTO DO PROJETO 41

Questatildeo 10

Figura 49 Graacutefico em barras da distribuiccedilatildeo de sentimento do usuaacuterio em relaccedilatildeo a notificaccedilatildeode aplicativos

Questatildeo 11

Figura 410 Graacutefico em pizza da distribuiccedilatildeo de opiniatildeo do usuaacuterio sobre desabilitar notificaccedilotildeesem celular

42 PESQUISA DE MERCADO 31

Questatildeo 12

Figura 411 Graacutefico em pizza da distribuiccedilatildeo de opiniatildeo do usuaacuterio sobre habilitar GPS emcelular

A ideia inicial era poder usar o GPS para verificar a localizaccedilatildeo do usuaacuterio e enviarnotificaccedilotildees quando este estivesse parado nas proximidades de algum dos estabelecimentoscadastrados Para que essa funcionalidade possa existir eacute necessaacuterio que o aplicativo tenhaacesso agrave localizaccedilatildeo precisa da pessoa atraveacutes do GPS ou internet ateacute mesmo quando natildeoestiver aberto Aleacutem disso tambeacutem eacute necessaacuterio que as notificaccedilotildees estejam habilitadas parafinalizar esta interaccedilatildeo Entatildeo as perguntas 10 11 e 12 foram incluiacutedas no questionaacuterio Ob-servando as respostas foi possiacutevel verificar que 295 das pessoas que responderam deixamambas as funcionalidades habilitadas (GPS e notificaccedilotildees) Com isso pudemos prosseguircom essa ideia e tambeacutem pensar em possiacuteveis alternativas de interaccedilatildeo e engajamento como usuaacuterio

Por conta dessa pesquisa ter sido compartilhada atraveacutes das contas das redes sociais ecomunicadores dos componentes deste grupo sabe-se que este pode apresentar um resultadoviesado mas que mesmo assim natildeo deve ser desconsiderado e que muito ajudou a sanar asduacutevidas iniciaisComo resultado traccedilamos o perfil do entrevistado

∙ Faixa etaacuteria predominante entre 18 e 30 anos

∙ Possui sistema operacional Android (versotildees 4 5 e 6)

∙ Vai a restaurantes com certa frequecircncia mensal resultando em interesses sobre infor-maccedilotildees relacionadas a esse estabelecimento

∙ Costuma chegar cedo ou evitar os horaacuterios de pico para evitar filas nos locais

∙ Carro e transporte coletivo satildeo os principais meios de transporte

∙ Se deslocaria para um estabelecimento semelhante que possui menos fila contanto queeste fique num raio de 2km de distacircncia

32 DESENVOLVIMENTO DO PROJETO 43

42 Projeto do AplicativoO grupo comeccedilou o projeto com o preenchimento do diagrama Canvas(figura 412) apre-

sentado na Seccedilatildeo 21 Desse modo foi adquirida uma ideia mais consistente e uma base paracomeccedilar a implementaccedilatildeo

Figura 412 Diagrama Canvas preenchido pelo grupo

Com o modelo de negoacutecios definido e com base no resultado da pesquisa com o usuaacuterioapresentada na seccedilatildeo seguinte foram aplicadas pequenas mudanccedilas no projeto para melhoradequar-se agraves necessidades e ao perfil do puacuteblico alvo

Para o desenvolvimento foi utilizado um meacutetodo aacutegil baseado no scrum com sprints de3 a 4 semanas devido agrave disponibilidade dos membros do grupo Os encontros natildeo eram diaacute-rios como recomendado para o meacutetodo scrum tambeacutem em razatildeo da disponibilidade Haviamstand ups (discussotildees raacutepidas no comeccedilo de cada encontro) e retrospectivas ao final de cadasprint A cada sprint eram selecionadas histoacuterias e tarefas para serem executadas e caso natildeofossem concluiacutedas ao final da iteraccedilatildeo eram inseridas ao backlog e feitas no sprint seguinte

43 Aplicaccedilatildeo dos meacutetodos de caacutelculo de espera

431 Aplicando a meacutedia por periacuteodo

Aplicando-se no trecho abaixo a teacutecnica desenvolvida na Seccedilatildeo 242 para uma queryrealizada no dia 19082016 no intervalo de 2040 - 2055 analisa-se a semana anterior quepossua tais intervalos Assim o saacutebado dia 06082016 seraacute selecionado

43 APLICACcedilAtildeO DOS MEacuteTODOS DE CAacuteLCULO DE ESPERA 33

Entrada Qtd Pessoas Notificado Espera

6816 2043 2 862016 2053 1606

6816 2044 2 862016 2055 674

6816 2048 2 862016 2056 528

6816 2048 2 862016 2057 520

6816 2051 2 862016 2107 1118

6816 2051 3 862016 2110 1305

6816 2052 2 862016 2110 1273

6816 2052 2 862016 2111 1179

6816 2053 2 862016 2112 1217

6816 2053 2 NULL 59

6816 2054 3 862016 2119 1541

6816 2055 2 862016 2117 1444

6816 2055 2 862016 2120 1570

6816 2055 2 862016 2122 1613

Tabela 41 Trecho do dia 06082016 entre os horaacuterios das 2043 agraves 2055 um intervalo de 12minutos retirado dos dados da empresa Get In

Com esses dados obteve-se a meacutedia de espera de 1080 segundos (18 minutos) a qualseria sugerida para o usuaacuterio com a busca e desvio padratildeo de 465144719 segundos (775 mi-nutos) Dentro desse intervalo tem-se como maacuteximo tempo de espera 1613 segundos (2688minutos) e como miacutenimo 59 segundos (1 minuto) Analisando-se os dados do dia 19082016no mesmo periacuteodo temos

34 DESENVOLVIMENTO DO PROJETO 43

Entrada Pessoas Notificado Espera Erro previsatildeo Erro p 2 pessoas

19816 2043 2 8192016 2051 544 -563 522

19816 2043 2 8192016 2052 605 -502 461

19816 2044 2 8192016 2056 723 -384 343

19816 2046 4 8192016 2119 1988 881 X

19816 2048 2 8192016 2102 919 188 147

19816 2051 2 8192016 2103 821 286 245

19816 2051 3 8192016 2108 1773 666 X

19816 2053 2 8192016 2110 1083 24 -17

19816 2053 2 8192016 2111 1105 2 -39

19816 2053 2 8192016 2112 1169 62 -103

19816 2055 2 8192016 2114 1447 340 -381

Tabela 42 Trecho do dia 19082016 entre os horaacuterios das 2043 agraves 2055um intervalo de 12minutos retirado dos dados da empresa Get In

Ou seja se um grupo chegasse dentro desse periacuteodo e a previsatildeo dada fosse a meacutediaobtida anteriormente o erro calculado pela diferenccedila entre o tempo sugerido e o real tempode espera estaria no intervalo de 15 minutos para menos ou 8 minutos para mais Sendoesse um valor aceitaacutevel

Um proacuteximo passo eacute a restriccedilatildeo dos registros a grupos com 2 integrantes Com tal restri-ccedilatildeo a previsatildeo de espera eacute de 1066 segundos (1776 minutos) Aplicando essa nova meacutedia aosregistros com 2 integrantes do dia 19082016 obteacutem-se um erro (Coluna 6 - erro previsatildeopara 2 pessoas) menor do que o anterior O intervalo do erro calculado neste caso seria de 522segundos (87 minutos) para mais e 381 segundos (635 minutos) para menos Este resultadoeacute ainda mais favoraacutevel mostrando que a inclusatildeo de mais filtros para o caacutelculo da previsatildeomelhorou o tempo previsto

432 Aplicando teoria das filas

A teoria das filas (Seccedilatildeo 242) eacute uma ferramenta muito completa que calcula muitos dadosuacuteteis para a previsatildeo de espera Contudo por conta da necessidade de informaccedilotildees sobreo tempo de atendimento a qual natildeo estaacute contida no banco utilizado esta teoria natildeo podeser aplicada neste caso Poreacutem esse dado pode ter um valor assumido para que a utilizaccedilatildeodessa teoria fosse possiacutevel entretanto a sua precisatildeo ficaria comprometida e imprevisiacutevel

433 Aplicando redes neurais

Para aplicar o que foi estudado na Seccedilatildeo 242 foi executado o software com o mecircs deAgosto como teste o mecircs de Setembro como treino e o limite do erro quadraacutetico como 001 eobteve-se a tabela presente no apecircndice B Na tabela podemos ver o tempo de fila esperadoou seja o tempo contido na tabela do mecircs de Setembro o tempo que o algoritmo deu comoresposta baseado no mecircs de Agosto e o erro entre eles respectivamente

44 DEFINICcedilAtildeO DA INTERFACE DO APLICATIVO 35

Figura 413 Software Multiple Back-Propagation com a configuraccedilatildeo escolhida para os dadosdisponiacuteveis

Mesmo o erro se mantendo em 0018 os dados obtidos possuem um erro padratildeo de 15minutos Se mais dados forem adicionados o criteacuterio de parada pode ser atingido e assimuma previsatildeo melhor pode ser alcanccedilada

434 Conclusatildeo sobre os meacutetodos estudados

Dentre todas as possibilidades estudadas visualizamos na meacutedia por periacuteodo a melhoropccedilatildeo assumindo os dados disponiacuteveis para teste Se mais paracircmetros fossem fornecidoscomo o tempo de atendimento a teoria das filas seria uma boa opccedilatildeo para fornecer a pre-visatildeo de espera E se mais dados estivessem disponiacuteveis as redes neurais conseguiriam umaaproximaccedilatildeo melhor e assim seria uma boa opccedilatildeo tambeacutem

44 Definiccedilatildeo da Interface do aplicativoComo um primeiro protoacutetipo foi desenvolvida uma interface simples que tinha como tela

de iniacutecio um mapa com um campo para buscas na parte superior

36 DESENVOLVIMENTO DO PROJETO 44

Figura 414 Fluxo de telas do primeiro protoacutetipo

Ao efetuar uma busca por algum estabelecimento uma tela mostrando o tempo de esperaaproximado da fila no local era exibida junto com bototildees que permitiam selecionar o meiode transporte visualizar outras opccedilotildees ou dar iniacutecio a rota ateacute o local desejado Tambeacutemhavia uma notificaccedilatildeo para quando a pessoa estivesse parada proacutexima a um restaurantecadastrado que direcionaria o usuaacuterio a uma tela com um cronocircmetro do tempo de esperana fila

Para testar essa visualizaccedilatildeo escolhemos algumas pessoas e realizamos um teste deusabilidade[22] este teste eacute feito da seguinte forma

44 DEFINICcedilAtildeO DA INTERFACE DO APLICATIVO 37

Uma contextualizaccedilatildeo eacute feita para o voluntaacuterio e entatildeo uma tarefa eacute passada para sercompletada Os integrantes do grupo observam dificuldades enfrentadas pelo entrevistado etomam notas Esse teste eacute repetido algumas vezes e seu resultado eacute coletado para avaliaccedilatildeoe modificaccedilatildeo das funcionalidades

Figura 415 Tela de detalhes de um restaurante(segunda versatildeo)

Notou-se que algumas funcionalidadespareceram confusas e natildeo intuitivas porexemplo natildeo ficou claro se o tempo mos-trado era de trajeto ou de espera na filanem qual era o meio de transporte utili-zado

Logo esse protoacutetipo foi reformuladocom o intuito de melhorar a experi-ecircncia do usuaacuterio com o nosso aplica-tivo

Foram colocados aleacutem do tempo deespera da fila o tempo que o usuaacuteriolevaria para chegar ateacute o local selecio-nado (conforme o tipo de transporte es-colhido) e a quantidade estimada de pes-soas na fila O tempo total (espera so-mado ao tempo de deslocamento) ga-nhou destaque entre as informaccedilotildees doestabelecimento e o botatildeo que direcionao usuaacuterio ao trajeto ficou mais especiacute-fico

Tambeacutem cogitou-se a possibilidade deadicionar login e um perfil de usuaacuteriojunto com uma lista de restaurantes favo-ritos

O fluxo das telas deste novo protoacutetipo ficou como mostra o esquema a seguir

38 DESENVOLVIMENTO DO PROJETO 44

Figura 416 Fluxo de telas do segundo protoacutetipo

44 DEFINICcedilAtildeO DA INTERFACE DO APLICATIVO 39

Figura 417 Tela de detalhes de um restaurante(terceira versatildeo)

Apoacutes outras avaliaccedilotildees mais algumaspequenas alteraccedilotildees foram realizadas nainterface Foi decidido que seria inviaacute-vel estimar o nuacutemero de pessoas nafila entatildeo essa funcionalidade foi remo-vida

Notificaccedilotildees foram adicionadas paraquando o usuaacuterio estiver parado na aacutereado restaurante para que ele possa con-tribuir com informaccedilotildees sobre a fila quepegou aleacutem de um botatildeo de contri-buiccedilatildeo ter sido inserido na tela ini-cial

40 DESENVOLVIMENTO DO PROJETO 45

O fluxo de telas do aplicativo atual ficou da seguinte forma

Figura 418 Fluxo de telas do terceiro protoacutetipo

46 EXPLICACcedilAtildeO DAS FUNCIONALIDADES 41

45 Explicaccedilatildeo das funcionalidadesEsta seccedilatildeo explica as funcionalidades do produto utilizando a figura 418

A tela inicial (3) exibe uma lista de restaurantes incluindo seus respectivos tempos detrajeto e tempo de espera na fila Ao clicar no botatildeo ldquo+rdquo uma caixa de diaacutelogo eacute aberta(4) onde eacute possiacutevel adicionar o tempo que o usuaacuterio esperou na fila Primeiro eacute escolhido orestaurante depois a data e hora que a pessoa chegou na fila e por fim o tempo de esperaem minutos Ao tocar em ldquoEnviar Feedback rdquo os dados satildeo incluiacutedos no banco de dados eatualizados para os outros usuaacuterios Assim eacute apicado o conceito de Crowdsourcing no apli-cativo

Ao tocar em um item da lista de restaurantes seraacute aberta a tela de detalhes de um res-taurante (5) na qual eacute possiacutevel ver com mais clareza os tempos de trajeto e espera o tempototal o endereccedilo do estabelecimento e um pequeno mapa centrado no local Pressionandoo botatildeo ldquoDireccedilotildeesrdquo o usuaacuterio seraacute redirecionado ao aplicativo de mapas de sua preferecircnciano caso do exemplo (8) o Google Maps jaacute traccedilando a rota da localizaccedilatildeo do usuaacuterio para oestabelecimento em questatildeo

Novamente na tela inicial tocando no iacutecone de lupa eacute possiacutevel realizar uma busca digi-tando o nome do estabelecimento na caixa de texto a qual exibe sugestotildees dependendo doque foi digitado Ao clicar em um dos resultados da busca o usuaacuterio eacute novamente direcionadopara a tela de detalhes do restaurante (5)

Tambeacutem eacute possiacutevel tocar no iacutecone de mapa na tela inicial onde seraacute mostrado um mapacentrado na localizaccedilatildeo do usuaacuterio

Ao ficar parado por um tempo em um mesmo local proacuteximo a um estabelecimentocadastrado o usuaacuterio eacute perguntado em uma notificaccedilatildeo quanto tempo ele permaneceu nafila Ao tocar na notificaccedilatildeo a caixa de diaacutelogo para feedback do usuaacuterio seraacute aberta (4) jaacutecom o restaurante preenchido e apoacutes o feedback a janela seraacute fechada e os dados enviadosao banco de dados

46 Implementaccedilatildeo do banco de dadosO banco de dados do aplicativo foi modelado e populado em forma de aacutervore (Fi-

gura 419) de forma a facilitar o acesso aos dados necessaacuterios ao aplicativo No primeironiacutevel estatildeo os ids dos restaurantes Cada id de restaurante guarda a localizaccedilatildeo (latitudelongitude) do restaurante o nome o endereccedilo e um objeto fila O objeto fila guarda todos osdias da semana (domingo a saacutebado) e cada dia da semana possui 24 campos um para cadahora do dia Cada hora possui o tempo meacutedio de espera da fila naquela hora e um peso paraesse tempo O peso eacute um valor que aumenta de acordo com o nuacutemero de feedbacks dadospara que o novo valor do tempo meacutedio seja calculado de forma consistente

Modelamos o banco de dados de uma forma que respeitasse uma hierarquia de dados

42 DESENVOLVIMENTO DO PROJETO 46

Figura 419 Aacutervore que ilustra a organizaccedilatildeo de um restaurante no banco de dados

Com o banco de dados jaacute populado o aplicativo faz consultas e atualizaccedilotildees de dadosConsultas satildeo feitas ao criar a tela de listagem de restaurantes e de detalhes de um restau-rante consultado As atualizaccedilotildees satildeo feitas quando o usuaacuterio manda o feedback de tempo deespera em um estabelecimento em determinado horaacuterio o aplicativo calcula a nova meacutedia eatualiza o campo do respectivo horaacuterio

Capiacutetulo 5

Conclusatildeo

Ao longo dos capiacutetulos deste trabalho pocircde-se acompanhar todo o processo de criaccedilatildeo edesenvolvimento do aplicativo que apoacutes finalizado foi batizado com o nome Queue

Comeccedilando com um problema para o qual o grupo almejava oferecer uma soluccedilatildeoacabou-se por adentrar-se um pouco no campo da Estatiacutestica e estudar diversas metodo-logias que poderiam ser uacuteteis para fornecer um caacutelculo de previsatildeo de espera meacutedia porperiacuteodo aplicaccedilatildeo da teoria das filas e utilizaccedilatildeo de redes neurais

Atraveacutes de uma parceria com a empresa GetIn obteve-se acesso a uma grande quantidadede dados e foi possiacutevel utilizaacute-los em anaacutelises feitas nas metodologias escolhidas conseguindoassim resultados relevantes Por meio destes foi feita a escolha de um dos meacutetodos para ocaacutelculo da previsatildeo de filas a meacutedia por periacuteodo

Aleacutem desses estudos ao longo do ano o grupo aprendeu a desenvolver para a plata-forma Android sobre a qual nenhum dos integrantes tinha conhecimento preacutevio Tambeacutemfoi possiacutevel aprender e utilizar a metodologia aacutegil com Scrum para guiar o processo de de-senvolvimento

Ao fim do ciclo de desenvolvimento conseguiu-se entregar um aplicativo em funciona-mento que fornece a previsatildeo de espera no instante da consulta de estabelecimentos cadas-trados no banco de dados armazenado na nuvem

Na versatildeo atual do aplicativo natildeo foi implementado um sistema para o cadastro de novosestabelecimentos Isso soacute eacute possiacutevel atraveacutes da inserccedilatildeo direta no banco de dados atraveacutes dainterface fornecida pelo console do Firebase Atualmente estatildeo cadastrados 5 restaurantesos quais foram visitados durante o desenvolvimento do projeto Para que o cadastro deestabelecimentos escale seria necessaacuterio a implementaccedilatildeo de uma funcionalidade que permitaao usuaacuterio adicionar novos estabelecimentos a partir de locais disponiacuteveis na API de locaisda Google

43

45

46 APEcircNDICE A

Apecircndice A

Dados coletados

Figura A1 Dados de tempo de espera para grupos de tamanhos variados para cada horaacuterio e emcada dia da semana obtidos em entrevista em restaurantes Outback Steakhouse Shopping Uniatildeo nomecircs de outubro

Referecircncias Bibliograacuteficas

[1] Backpropagation httpmbpsourceforgenet Accesso em Janeiro 2017 14

[2] Bitbucket httpsbitbucketorgproduct Accesso em Dezembro 2016 19

[3] Crowdsourcing httpswwwmerriam-webstercomdictionarycrowdsourcing Ac-cesso em Novembro 2016 21

[4] Designing a survey httpwwwsciencebuddiesorgscience-fair-projectsproject_ideasSoc_surveyshtml Accesso em Outubro 2016 4 23

[5] Facebook httpswwwfacebookcom Accesso em Novembro 2016 24

[6] Firebase httpsfirebasegooglecom Accesso em Agosto 2016 20

[7] Getin app httpswwwgetinappcombrhomesao-paulo Accesso em Novembro2016 9

[8] Git 11 primeiros passos - sobre controle de versatildeo httpsgit-scmcombookpt-brv1Primeiros-passos-Sobre-Controle-de-Vers Accesso em Novembro 2016 19

[9] Google forms httpsdocsgooglecomforms Accesso em Novembro 2016 23

[10] Guia definitivo do project model canvas Project Builder 3

[11] Jsonorg introducing json httpwwwjsonorg Accesso em Novembro 2016 17

[12] Manifesto para desenvolvimento Aacutegil de software httpagilemanifestoorgisoptbrmanifestohtml Accesso em Novembro 2016 5

[13] Nosql httpsenwikipediaorgwikiNoSQL Accesso em Novembro 2016 20

[14] Outback steakhouse httpswwwoutbackcombrhome Accesso em Novembro 20169

[15] Restful api development with lumen microframework httpsbelitsoftcomlaravel-development-servicesapi-development Accesso em Novembro 2016 17

[16] Scrum httpswwwatlassiancomagilescrum Accesso em Novembro 2016 5

[17] Smartphone os market share 2016 q2 httpwwwidccomprodservsmartphone-os-market-sharejsp Accesso em Novembro 2016 15

[18] Smartphone os sales market share kantar worldpanel comtech httpwwwkantarworldpanelcomsmartphone-os-market-share Accesso em Novembro 2016 15

[19] Sourcetree httpswwwsourcetreeappcom Accesso em Dezembro 2016 19

47

48 REFEREcircNCIAS BIBLIOGRAacuteFICAS

[20] Sql httpsptkhanacademyorgcomputingcomputer-programmingsql Accesso emDezembro 2016 20

[21] Trello httpstrellocom Accesso em Novembro 2016 6

[22] Usability test httpsenwikipediaorgwikiUsability_testing Accesso em Novembro2016 36

[23] Versionone 2012 agile dev survey httpswwwversiononecompdf7th-Annual-State-of-Agile-Development-Surveypdf Accesso em Novembro 2016 5

[24] Waze httpswwwwazecom Accesso em Novembro 2016 1

[25] What is an open source httpsopensourcecomresourceswhat-open-source Accessoem Novembro 2016 15

[26] Xml tutorial httpwwww3schoolscomxml Accesso em Novembro 2016 17

[27] Paulo F Cabral dos Anjos Jr Aron Ifanger Maciel Christopher Silva de Paacutedua Com-posiccedilatildeo de carteiras de accedilotildees utilizando modelo de redes neurais artificiais e modelo derisco e retorno de Markowitz 2012 14

[28] Google Distance matrix api documentation httpsdevelopersgooglecommapsdocumentationdistance-matrix Accesso em Novembro 2016 17

[29] Alan Klement Designing features using job stories httpsblogintercomcomusing-job-stories-design-features-ui-ux Accesso em Novembro 2016 6

[30] Azmat Nafees Queuing theory and its application analysis of the sales checkout opera-tion in ica supermarket httpwwwstatisticsduseessaysD07ENafeespdf Accessoem Novembro 2016 12

[31] Eric Ries A Startup Enxuta Lua de papel primeira ediccedilatildeo edition 2012 3

  • Introduccedilatildeo
    • Motivaccedilatildeo
    • Trabalho Proposto
    • Estrutura da monografia
      • Estudos Preliminares
        • Desenvolvimento de Startups
          • Desenvolvimento de Questionaacuterios
            • Metodologia Aacutegil
            • Jobs to be done
            • Caacutelculo da previsatildeo do tempo de espera na fila
              • Descriccedilatildeo do problema
              • Meacutetodos de caacutelculo da espera
                  • Tecnologias utilizadas
                    • O sistema Android
                      • Organizaccedilatildeo de uma aplicaccedilatildeo Android
                        • JSON
                        • Google APIs
                        • Localizaccedilatildeo do Usuaacuterio
                        • Controle de Versatildeo
                        • Banco de dados
                          • Firebase
                            • Crowdsourcing
                              • Desenvolvimento do Projeto
                                • Pesquisa de Mercado
                                  • Pesquisa com o usuaacuterio
                                    • Projeto do Aplicativo
                                    • Aplicaccedilatildeo dos meacutetodos de caacutelculo de espera
                                      • Aplicando a meacutedia por periacuteodo
                                      • Aplicando teoria das filas
                                      • Aplicando redes neurais
                                      • Conclusatildeo sobre os meacutetodos estudados
                                        • Definiccedilatildeo da Interface do aplicativo
                                        • Explicaccedilatildeo das funcionalidades
                                        • Implementaccedilatildeo do banco de dados
                                          • Conclusatildeo
                                          • Dados coletados
                                          • Referecircncias Bibliograacuteficas

16 TECNOLOGIAS UTILIZADAS 31

Figura 31 Parcela de mercado dos dispositivos no Brasil

311 Organizaccedilatildeo de uma aplicaccedilatildeo Android

Aplicativos Android satildeo divididos em componentes Haacute quatro tipos de componentespresentes Activities (ou atividades) Services (ou serviccedilos) Content providers (ou provedoresde conteuacutedo) Broadcast receivers (ou receptores de transmissatildeo)

∙ Activities Satildeo as telas e interfaces do usuaacuterio Cada tela de uma aplicaccedilatildeo eacute repre-sentada por uma activity e cada activity eacute independente de outras apesar de seremcomponentes de uma mesma aplicaccedilatildeo Isso se daacute pelo fato de haver a possibilidade deutilizar activities de aplicativos durante a execuccedilatildeo de outros Atividades satildeo iniciadase se comunicam entre si atraveacutes de objetos chamados Intent que transferem um pacotede dados que pode ser carregado no iniacutecio da nova atividade

∙ Services Sempre satildeo executados em segundo plano sem interferir na experiecircncia dousuaacuterio geralmente para realizar operaccedilotildees longas ou realizar operaccedilotildees de troca dedados enquanto o usuaacuterio estaacute utilizando outra aplicaccedilatildeo em primeiro plano

∙ Content Providers Satildeo gerenciadores de dados de aplicaccedilotildees Android utilizadospara ler e salvar dados compartilhados ou secretos dos aplicativos e do sistema

∙ Broadcast Receivers Satildeo componentes responsaacuteveis por obter eventos que aconte-ceram em outras aplicaccedilotildees ou no sistema e direcionar dados sobre esses eventos paraeventuais aplicaccedilotildees que necessitem destes dados alguns exemplos de eventos obtidospelos receptores de transmissatildeo satildeo tela desligada e bateria fraca

Aleacutem dos componentes uma parte importante de uma aplicaccedilatildeo Android eacute o ArquivoManifest que eacute uma declaraccedilatildeo de permissotildees serviccedilos e exigecircncias de hardware necessaacuterios

33 JSON 17

para o funcionamento do aplicativo Outra funccedilatildeo eacute possuir declaraccedilotildees de todos os compo-nentes utilizados no projeto nomes iacutecones entre outros

As interfaces de usuaacuterio do Android satildeo definidas em arquivos XML (eXtensible MarkupLanguage)[26] nos quais estatildeo declarados todos os layouts e configuraccedilotildees das telas Essesarquivos de layout satildeo depois inflados e satildeo gerados os componentes visuais da aplicaccedilatildeoEssa estrutura tem como objetivo facilitar o design da interface do usuaacuterio jaacute que arquivosxml satildeo de faacutecil compreensatildeo do desenvolvedor

32 JSONJSON ou Javascript Object Notation eacute um formato de dados amplamente utilizado para

troca de informaccedilotildees entre programas Possui uma notaccedilatildeo simples para grande parte dosprogramadores pois se assemelha a convenccedilotildees utilizadas em linguagens de programaccedilatildeomuito conhecidas como C C++ Python e Java O objetivo eacute que ele seja de faacutecil entendi-mento tanto para pessoas como para maacutequinas[11]

Um arquivo JSON eacute organizado como um objeto contendo pares nomevalorseparadospor viacutergulas e dentro de chaves(lsquolsquo rsquorsquo) ou como um array que eacute uma lista de valores separa-dos por viacutergulas e entre colchetes(lsquo[lsquo rsquo]rsquo) Um valor por sua vez pode ser um objeto ou umarray mas tambeacutem um nuacutemero inteiro ou uma String entre outros

Um exemplo de arquivo JSON eacute

1 2 Carros [3 4 Nome Scen ic 5 Marca Renault 6 Ano 20127 8 9 Nome Sentra

10 Marca Nissan 11 Ano 200912 13 ]14

33 Google APIsAPIs (Application Program Interfaces) satildeo interfaces para facilitar a troca de informa-

ccedilotildees entre aplicaccedilotildees utilizando comandos especiacuteficos[15]

Ao longo do desenvolvimento algumas APIs fornecidas pela Google foram utilizadascomo fonte de informaccedilotildees adicionais para o aplicativo

∙ Google Maps Distance Matrix API Esta API eacute utilizada para obter o tempo emsegundos de trajeto entre dois pontos (latlong) no mapa podem ser consultados ostempos de trajeto de carro bicicleta a peacute e utilizando transporte puacuteblico[28] Esta eacute

18 TECNOLOGIAS UTILIZADAS 35

uma API web logo utiliza-se um request http para realizar uma consulta

Por exemplo o request

httpsmapsgoogleapiscommapsapidistancematrixjsonorigins=Seattleampdestinations=Victoria+BCampkey=[user_key]

retorna o JSON

1 2 des t ina t i on_addre s s e s [ Vic tor ia BC Canada ] 3 o r i g in_addre s s e s [ Sea t t l e WA EUA ] 4 rows [5 6 e lements [7 8 d i s t anc e 9 text 172 km

10 value 17166811 12 durat ion 13 text 4 horas 40 minutos 14 value 1680915 16 s t a tu s OK17 18 ]19 20 ] 21 s t a tu s OK22

no qual eacute possiacutevel obter o tempo de trajeto em segundos

∙ Google Maps Android API Esta API eacute utilizada para habilitar o uso de mapasda Google integrados agrave aplicaccedilatildeo jaacute disponiacutevel com todas as funcionalidades de zoome arrastar presentes no aplicativo nativo permitindo tambeacutem a personalizaccedilatildeo comoa adiccedilatildeo de pontos definidos pelo usuaacuterio ao mapa

34 Localizaccedilatildeo do UsuaacuterioOutro serviccedilo que foi utilizado com o intuito de obter o tempo de trajeto e a lista ordenada

de forma personalizada de restaurantes foi a localizaccedilatildeo do usuaacuterio que eacute obtida atraveacutes doGPS presente nos smartphones Um objeto de localizaccedilatildeo eacute criado e realiza a comunicaccedilatildeocom o serviccedilo de localizaccedilatildeo do aparelho Ao obter a localizaccedilatildeo ele lanccedila um evento quepode ser acessado por outras partes da aplicaccedilatildeo obtendo a localizaccedilatildeo mais atualizada dodispositivo

36 CONTROLE DE VERSAtildeO 19

35 Controle de VersatildeoControle de versatildeo eacute uma praacutetica usada para manter a organizaccedilatildeo do coacutedigo e do seu de-

senvolvimento quando muitos desenvolvedores colaboram conjuntamente Existem softwaresque auxiliam essa organizaccedilatildeo registrando todas as mudanccedilas feitas ao longo do processo eque possui recursos que permitem que vaacuterios usuaacuterios trabalhem nos mesmos arquivos semperda de informaccedilotildees

No caso do Git [8] o projeto fica organizado em uma estrutura de aacutervore onde cadacommit (checkpoints criados pelos membros do grupo durante o processo) eacute marcado porum noacute para onde se pode retornar quando necessaacuterio Existem tambeacutem estruturas chama-das branches que satildeo bifurcaccedilotildees na estrutura para que partes do projeto sejam criadasseparadamente sem interferir com a linha principal As branches depois satildeo unidas agrave linhaprincipal atraveacutes do comando merge

Neste projeto o serviccedilo de controle de versatildeo utilizado foi o Bitbucket [2] (que eacute um ser-viccedilo web-based de controle de versatildeo que utiliza Git) com auxiacutelio do software SourceTree[19]que eacute uma interface graacutefica para os serviccedilos do Bitbucket onde eacute possiacutevel visualizar com maisfacilidade as fases do desenvolvimento do projeto e realizar os comandos mais intuitivamente

Figura 32 Interface do SourceTree que mostra o controle de versionamento do projeto

36 Banco de dadosCom o intuito de deixar o aplicativo mais completo guardando informaccedilotildees dos usuaacuterios

e dos estabelecimentos optou-se por utilizar-se um banco de dados Alguns exemplos de

20 TECNOLOGIAS UTILIZADAS 36

banco de dados aprendidos no curso Laboratoacuterio de Banco de Dados foram

∙ SQL (Structured Query Language - Linguagem de Consulta Estruturada)[20] umalinguagem para atualizar deletar e requisitar informaccedilotildees atraveacutes de consultas emtabelas que possuem relaccedilatildeo entre si

∙ noSQL[13] um banco de dados que armazena e recupera informaccedilotildees modeladas deuma forma onde natildeo satildeo usadas tabelas relacionais

Como este uacuteltimo natildeo foi o foco da disciplina por falta de tempo decidiu-se por utilizaacute-lopara que o grupo pudesse aprender melhor esse modelo

Outra decisatildeo tomada foi a hospedagem dos dados na nuvem ou seja colocaacute-los em umservidor que natildeo seja local e conseguir acessaacute-los atraveacutes de uma conexatildeo via internet Dessemodo os dados sempre estaratildeo disponiacuteveis para serem consultados

361 Firebase

Buscando-se atender as decisotildees tomadas sobre o banco de dados procuramos um serviccedilode banco de dados da Google por conter ampla integraccedilatildeo com a plataforma de desenvolvi-mento Android por ser conhecido bastante utilizado e por possuir uma ampla comunidadede desenvolvedores dispostos a oferecer auxiacutelio em foacuteruns de discussatildeo de coacutedigos

Para atender esses requisitos escolheu-se o Firebase Realtime Database[6] desenvolvido edisponibilizado pela Google que consiste em um banco de dados noSQL com armazenamentona nuvem Esse serviccedilo armazena os dados do usuaacuterio no servidor da Google em formatoJSON e a cada alteraccedilatildeo sincroniza em tempo real com todos os clientes conectados

O grupo pode observar as seguintes vantagens de se trabalhar com a ferramenta existea sincronizaccedilatildeo em tempo real dos dados de todos os clientes e sua disponibilidade mesmocom o aplicativo offline ou seja quando o aplicativo natildeo estiver conectado a internet osdados do dispositivo moacutevel seratildeo armazenados e sincronizados com o banco de dados assimque a conexatildeo estiver disponiacutevel novamente Aleacutem disso os desenvolvedores possuem acessoa um console online (figura 33) onde o JSON eacute mostrado numa interface interativa de umaforma mais amigaacutevel e no qual eacute permitido editaacute-lo facilmente

37 CROWDSOURCING 21

Figura 33 Console online do Firebase onde os dados satildeo mostrados de forma mais amigaacutevel eintuitiva

Outra observaccedilatildeo feita foi que o Firebase Realtime Database funciona como o esperadose ele guardar uma coacutepia local dos dados em um arquivo JSON no celular Poreacutem isso natildeofoi visto como um problema pois como essa coacutepia pode ser salva em um arquivo texto oespaccedilo utilizado diminui consideravelmente

Na primeira vez que os dados satildeo criados e todas as vezes em que os dados forem atua-lizados por algum dispositivo moacutevel eacute enviada uma atualizaccedilatildeo que seraacute recebida atraveacutes delisteners por todos os aparelhos que utilizam o aplicativo para que eles atualizem seus res-pectivos JSONs Listeners satildeo interfaces de comunicaccedilatildeo que executam uma seacuterie de accedilotildeesassim que um outro evento esperado acontece

37 CrowdsourcingO termo Crowdsourcing tem origem nas palavras da liacutengua inglesa Crowd (multidatildeo) e

Outsourcing (terceirizaccedilatildeo) e eacute definido pelo dicionaacuterio Merriam Webster como A praacuteticade obtenccedilatildeo de serviccedilos ideias ou conteuacutedo solicitando contribuiccedilotildees de grandes grupos depessoas e especialmente da comunidade online [3] Esta praacutetica eacute utilizada para que sejapossiacutevel agrave comunidade contribuir com dados para algum programa ou serviccedilo como no apli-cativo Waze do qual a principal fonte de dados de tracircnsito acidentes e radares eacute obtida pormeio dos proacuteprios usuaacuterios

Capiacutetulo 4

Desenvolvimento do Projeto

Este capiacutetulo aborda o processo de desenvolvimento do projeto iniciado com o preen-chimento do diagrama Canvas e uma pesquisa de mercado direcionada ao usuaacuterio A partirdas informaccedilotildees coletadas foi possiacutevel projetar um aplicativo que atendesse as necessidadesexpostas pela pesquisa e selecionar as tecnologias necessaacuterias Tambeacutem eacute abordada a aplica-ccedilatildeo dos diferentes meacutetodos de caacutelculo da previsatildeo de tempo de espera que foram estudadose explicados no Capiacutetulo 2 Por fim satildeo expostas as diferentes versotildees do aplicativo duranteo processo e seus detalhes

41 Pesquisa de MercadoAntes de iniciar-se o desenvolvimento praacutetico algumas questotildees foram levantadas se

um aplicativo com as funcionalidades escolhidas seria de alguma forma uacutetil para o usuaacuterioe se sim qual metodologia deveria ser usada para que este produto fosse entregue o maiscompleto possiacutevel ateacute o final do ano Para responder a primeira pergunta desenvolveu-seum questionaacuterio

411 Pesquisa com o usuaacuterio

O questionaacuterio foi desenvolvido para avaliar a viabilidade do aplicativo e suas funciona-lidades e foi criado utilizando-se o Google Forms [9] Essa eacute uma ferramenta desenvolvidapelo Google que possibilita a criaccedilatildeo de formulaacuterios contendo diversos formatos de pergun-tas tanto dissertativas quanto de muacuteltipla escolha

Seguindo os princiacutepios de desenvolvimento de questionaacuterios [4] o conjunto de perguntasfoi mantido curto simples e de faacutecil entendimento Tambeacutem variou-se o tipo de questotildeesentre estruturadas (questotildees com respostas em forma de alternativas) e desestruturadas(questotildees com respostas em formato texto) seguindo esses mesmos princiacutepios para captarmelhor as informaccedilotildees dos entrevistados e evitar erros de entendimento

Com as respostas do questionaacuterio tinha-se o intuito de traccedilar um possiacutevel puacuteblico alvoconhecer seu modo de uso de dispositivos moacuteveis e validar a aplicabilidade de diferentesfuncionalidades pretendidas inicialmente sendo essas engajamento do usuaacuterio atraveacutes denotificaccedilotildees do sistema aceitaccedilatildeo de sugestotildees de locais alternativos avaliaccedilatildeo da existecircnciado problema que queremos resolver (se este aplicativo supre uma necessidade real do usuaacute-rio) e aceitaccedilatildeo do aplicativo

23

24 DESENVOLVIMENTO DO PROJETO 41

Para a divulgaccedilatildeo redes sociais como Facebook [5] e sistemas de mensagem instantacircneascomo WhatsApp foram usados e o envio de respostas foi restrito ateacute trecircs semanas apoacutes suaprimeira postagem Neste periacuteodo foram obtidas 210 respostas as quais ajudaram a definiros aspectos do sistema a ser desenvolvido

O questionaacuterio foi dividido em duas subseccedilotildees perfil do usuaacuterio e funcionalidade Comelas obteve-se os seguintes resultados

41 PESQUISA DE MERCADO 25

Questatildeo 1

Figura 41 Graacutefico pizza da distribuiccedilatildeo das respostas em relaccedilatildeo a idade dos pesquisados

As faixas de idade apresentadas estatildeo desbalanceadas por natildeo terem a mesma quantidadede anos em cada uma poreacutem essa divisatildeo foi pensada levando-se em conta a fluecircncia comtecnologia que cada idade possui Com o resultado verificou-se que do puacuteblico alcanccediladocom a pesquisa a maioria estaacute na faixa de 18 a 25 anos de idade assumida como parcelacom maior conhecimento tecnoloacutegico

Questatildeo 2

Figura 42 Graacutefico pizza da distribuiccedilatildeo das respostas em relaccedilatildeo ao sistema operacional

Esta questatildeo foi pensada para medir a porcentagem de cada sistema operacional pre-sente nos celulares do puacuteblico Com ela descobriu-se que 639 das pessoas dentro desse

26 DESENVOLVIMENTO DO PROJETO 41

grupo possuem o sistema Android enquanto 234 possuem iOS e 38 Windows phoneEssa pergunta foi incluiacuteda para um melhor direcionamento do desenvolvimento do aplicativo

Uma questatildeo levantada ao aplicar esse questionaacuterio foi a dificuldade que algumas pessoasencontraram para identificar a versatildeo do proacuteprio aparelho Poreacutem para manter a consistecircnciadas respostas decidiu-se natildeo mudar nada nesta questatildeo para remediar isso

Questatildeo 3

Figura 43 Graacutefico em barras da distribuiccedilatildeo de frequecircncias mensais de cada local analisado

41 PESQUISA DE MERCADO 27

Questatildeo 4

Figura 44 Graacutefico em pizza da distribuiccedilatildeo de interesse do usuaacuterio no tempo de espera de cadalocal

A princiacutepio viu-se muitas possiacuteveis aplicaccedilotildees para a previsatildeo de tempo de espera Paraentender qual seria a prioridade do puacuteblico as questotildees acima foram incluiacutedas A primeiraverificou a frequecircncia de visitas em alguns locais e a segunda serviu para analisar qualestabelecimento despertava mais interesse nos entrevistados quanto ao quesito fila Nos doiscasos restaurantes se destacaram com o maior interesse

Questatildeo 5

Figura 45 Graacutefico em barras da distribuiccedilatildeo de interesse do usuaacuterio por cada item avaliado

Para acompanhar o dado de espera e fornecer mais informaccedilotildees relevantes ao usuaacuteriosem potencial perguntou-se quais outras informaccedilotildees eles acham interessante saber sobre umdeterminado estabelecimento Com isso descobriu-se que a faixa de preccedilo o trajeto ateacute olocal e o cardaacutepio seriam dados importantes de se obter juntamente com o tempo de espera

28 DESENVOLVIMENTO DO PROJETO 41

Questatildeo 6O que vocecirc costuma fazer para evitar filasNeste ponto testou-se se a soluccedilatildeo proposta atraveacutes do aplicativo resolveria o problema dousuaacuterio de uma forma melhor do que a soluccedilatildeo atualmente utilizada Para isso foi perguntadoo que as pessoas fazem para evitar filas e as principais respostas foram

∙ Evitar horaacuterios de pico

∙ Chegar cedo

∙ Ir em outro lugar caso uma fila seja encontrada

∙ Tentar realizar reservas antecipadamente

∙ Se distrair com livroscelular

Notou-se que as soluccedilotildees utilizadas atualmente natildeo suprem as necessidades dos entre-vistados pois mesmo em horaacuterios natildeo convencionais pode-se encontrar filas ou quandodecide-se esperar na fila muito tempo eacute perdido Concluiu-se que a soluccedilatildeo proposta a par-tir do aplicativo resolve de forma mais abrangente o problema pois ajuda o usuaacuterio a evitarhoraacuterios de pico inesperados

Questatildeo 7

Figura 46 Graacutefico em pizza da distribuiccedilatildeo do meio de transporte utilizado pelos usuaacuterios

Essa questatildeo foi formulada com o objetivo de verificar quais meios de transporte seriamincluiacutedos com previsatildeo de tempo de trajeto no aplicativo Foi verificado que a maioria dosentrevistados utilizam transporte puacuteblico seguido por carro

41 PESQUISA DE MERCADO 29

Questatildeo 8

Figura 47 Graacutefico em pizza da distribuiccedilatildeo do interesse do usuaacuterio pela informaccedilatildeo fornecida

Questatildeo 9

Figura 48 Graacutefico em pizza da distribuiccedilatildeo de quantidade de quilocircmetros que o usuaacuterio sedeslocaria para ir a um local com menos fila

Com essas questotildees foi verificado que algo importante para o usuaacuterio eacute saber de outrosestabelecimentos que possam oferecer tempos de espera menores nas redondezas de onde ousuaacuterio se encontra que eacute uma das funcionalidades que desejaacutevamos utilizar no sistema

30 DESENVOLVIMENTO DO PROJETO 41

Questatildeo 10

Figura 49 Graacutefico em barras da distribuiccedilatildeo de sentimento do usuaacuterio em relaccedilatildeo a notificaccedilatildeode aplicativos

Questatildeo 11

Figura 410 Graacutefico em pizza da distribuiccedilatildeo de opiniatildeo do usuaacuterio sobre desabilitar notificaccedilotildeesem celular

42 PESQUISA DE MERCADO 31

Questatildeo 12

Figura 411 Graacutefico em pizza da distribuiccedilatildeo de opiniatildeo do usuaacuterio sobre habilitar GPS emcelular

A ideia inicial era poder usar o GPS para verificar a localizaccedilatildeo do usuaacuterio e enviarnotificaccedilotildees quando este estivesse parado nas proximidades de algum dos estabelecimentoscadastrados Para que essa funcionalidade possa existir eacute necessaacuterio que o aplicativo tenhaacesso agrave localizaccedilatildeo precisa da pessoa atraveacutes do GPS ou internet ateacute mesmo quando natildeoestiver aberto Aleacutem disso tambeacutem eacute necessaacuterio que as notificaccedilotildees estejam habilitadas parafinalizar esta interaccedilatildeo Entatildeo as perguntas 10 11 e 12 foram incluiacutedas no questionaacuterio Ob-servando as respostas foi possiacutevel verificar que 295 das pessoas que responderam deixamambas as funcionalidades habilitadas (GPS e notificaccedilotildees) Com isso pudemos prosseguircom essa ideia e tambeacutem pensar em possiacuteveis alternativas de interaccedilatildeo e engajamento como usuaacuterio

Por conta dessa pesquisa ter sido compartilhada atraveacutes das contas das redes sociais ecomunicadores dos componentes deste grupo sabe-se que este pode apresentar um resultadoviesado mas que mesmo assim natildeo deve ser desconsiderado e que muito ajudou a sanar asduacutevidas iniciaisComo resultado traccedilamos o perfil do entrevistado

∙ Faixa etaacuteria predominante entre 18 e 30 anos

∙ Possui sistema operacional Android (versotildees 4 5 e 6)

∙ Vai a restaurantes com certa frequecircncia mensal resultando em interesses sobre infor-maccedilotildees relacionadas a esse estabelecimento

∙ Costuma chegar cedo ou evitar os horaacuterios de pico para evitar filas nos locais

∙ Carro e transporte coletivo satildeo os principais meios de transporte

∙ Se deslocaria para um estabelecimento semelhante que possui menos fila contanto queeste fique num raio de 2km de distacircncia

32 DESENVOLVIMENTO DO PROJETO 43

42 Projeto do AplicativoO grupo comeccedilou o projeto com o preenchimento do diagrama Canvas(figura 412) apre-

sentado na Seccedilatildeo 21 Desse modo foi adquirida uma ideia mais consistente e uma base paracomeccedilar a implementaccedilatildeo

Figura 412 Diagrama Canvas preenchido pelo grupo

Com o modelo de negoacutecios definido e com base no resultado da pesquisa com o usuaacuterioapresentada na seccedilatildeo seguinte foram aplicadas pequenas mudanccedilas no projeto para melhoradequar-se agraves necessidades e ao perfil do puacuteblico alvo

Para o desenvolvimento foi utilizado um meacutetodo aacutegil baseado no scrum com sprints de3 a 4 semanas devido agrave disponibilidade dos membros do grupo Os encontros natildeo eram diaacute-rios como recomendado para o meacutetodo scrum tambeacutem em razatildeo da disponibilidade Haviamstand ups (discussotildees raacutepidas no comeccedilo de cada encontro) e retrospectivas ao final de cadasprint A cada sprint eram selecionadas histoacuterias e tarefas para serem executadas e caso natildeofossem concluiacutedas ao final da iteraccedilatildeo eram inseridas ao backlog e feitas no sprint seguinte

43 Aplicaccedilatildeo dos meacutetodos de caacutelculo de espera

431 Aplicando a meacutedia por periacuteodo

Aplicando-se no trecho abaixo a teacutecnica desenvolvida na Seccedilatildeo 242 para uma queryrealizada no dia 19082016 no intervalo de 2040 - 2055 analisa-se a semana anterior quepossua tais intervalos Assim o saacutebado dia 06082016 seraacute selecionado

43 APLICACcedilAtildeO DOS MEacuteTODOS DE CAacuteLCULO DE ESPERA 33

Entrada Qtd Pessoas Notificado Espera

6816 2043 2 862016 2053 1606

6816 2044 2 862016 2055 674

6816 2048 2 862016 2056 528

6816 2048 2 862016 2057 520

6816 2051 2 862016 2107 1118

6816 2051 3 862016 2110 1305

6816 2052 2 862016 2110 1273

6816 2052 2 862016 2111 1179

6816 2053 2 862016 2112 1217

6816 2053 2 NULL 59

6816 2054 3 862016 2119 1541

6816 2055 2 862016 2117 1444

6816 2055 2 862016 2120 1570

6816 2055 2 862016 2122 1613

Tabela 41 Trecho do dia 06082016 entre os horaacuterios das 2043 agraves 2055 um intervalo de 12minutos retirado dos dados da empresa Get In

Com esses dados obteve-se a meacutedia de espera de 1080 segundos (18 minutos) a qualseria sugerida para o usuaacuterio com a busca e desvio padratildeo de 465144719 segundos (775 mi-nutos) Dentro desse intervalo tem-se como maacuteximo tempo de espera 1613 segundos (2688minutos) e como miacutenimo 59 segundos (1 minuto) Analisando-se os dados do dia 19082016no mesmo periacuteodo temos

34 DESENVOLVIMENTO DO PROJETO 43

Entrada Pessoas Notificado Espera Erro previsatildeo Erro p 2 pessoas

19816 2043 2 8192016 2051 544 -563 522

19816 2043 2 8192016 2052 605 -502 461

19816 2044 2 8192016 2056 723 -384 343

19816 2046 4 8192016 2119 1988 881 X

19816 2048 2 8192016 2102 919 188 147

19816 2051 2 8192016 2103 821 286 245

19816 2051 3 8192016 2108 1773 666 X

19816 2053 2 8192016 2110 1083 24 -17

19816 2053 2 8192016 2111 1105 2 -39

19816 2053 2 8192016 2112 1169 62 -103

19816 2055 2 8192016 2114 1447 340 -381

Tabela 42 Trecho do dia 19082016 entre os horaacuterios das 2043 agraves 2055um intervalo de 12minutos retirado dos dados da empresa Get In

Ou seja se um grupo chegasse dentro desse periacuteodo e a previsatildeo dada fosse a meacutediaobtida anteriormente o erro calculado pela diferenccedila entre o tempo sugerido e o real tempode espera estaria no intervalo de 15 minutos para menos ou 8 minutos para mais Sendoesse um valor aceitaacutevel

Um proacuteximo passo eacute a restriccedilatildeo dos registros a grupos com 2 integrantes Com tal restri-ccedilatildeo a previsatildeo de espera eacute de 1066 segundos (1776 minutos) Aplicando essa nova meacutedia aosregistros com 2 integrantes do dia 19082016 obteacutem-se um erro (Coluna 6 - erro previsatildeopara 2 pessoas) menor do que o anterior O intervalo do erro calculado neste caso seria de 522segundos (87 minutos) para mais e 381 segundos (635 minutos) para menos Este resultadoeacute ainda mais favoraacutevel mostrando que a inclusatildeo de mais filtros para o caacutelculo da previsatildeomelhorou o tempo previsto

432 Aplicando teoria das filas

A teoria das filas (Seccedilatildeo 242) eacute uma ferramenta muito completa que calcula muitos dadosuacuteteis para a previsatildeo de espera Contudo por conta da necessidade de informaccedilotildees sobreo tempo de atendimento a qual natildeo estaacute contida no banco utilizado esta teoria natildeo podeser aplicada neste caso Poreacutem esse dado pode ter um valor assumido para que a utilizaccedilatildeodessa teoria fosse possiacutevel entretanto a sua precisatildeo ficaria comprometida e imprevisiacutevel

433 Aplicando redes neurais

Para aplicar o que foi estudado na Seccedilatildeo 242 foi executado o software com o mecircs deAgosto como teste o mecircs de Setembro como treino e o limite do erro quadraacutetico como 001 eobteve-se a tabela presente no apecircndice B Na tabela podemos ver o tempo de fila esperadoou seja o tempo contido na tabela do mecircs de Setembro o tempo que o algoritmo deu comoresposta baseado no mecircs de Agosto e o erro entre eles respectivamente

44 DEFINICcedilAtildeO DA INTERFACE DO APLICATIVO 35

Figura 413 Software Multiple Back-Propagation com a configuraccedilatildeo escolhida para os dadosdisponiacuteveis

Mesmo o erro se mantendo em 0018 os dados obtidos possuem um erro padratildeo de 15minutos Se mais dados forem adicionados o criteacuterio de parada pode ser atingido e assimuma previsatildeo melhor pode ser alcanccedilada

434 Conclusatildeo sobre os meacutetodos estudados

Dentre todas as possibilidades estudadas visualizamos na meacutedia por periacuteodo a melhoropccedilatildeo assumindo os dados disponiacuteveis para teste Se mais paracircmetros fossem fornecidoscomo o tempo de atendimento a teoria das filas seria uma boa opccedilatildeo para fornecer a pre-visatildeo de espera E se mais dados estivessem disponiacuteveis as redes neurais conseguiriam umaaproximaccedilatildeo melhor e assim seria uma boa opccedilatildeo tambeacutem

44 Definiccedilatildeo da Interface do aplicativoComo um primeiro protoacutetipo foi desenvolvida uma interface simples que tinha como tela

de iniacutecio um mapa com um campo para buscas na parte superior

36 DESENVOLVIMENTO DO PROJETO 44

Figura 414 Fluxo de telas do primeiro protoacutetipo

Ao efetuar uma busca por algum estabelecimento uma tela mostrando o tempo de esperaaproximado da fila no local era exibida junto com bototildees que permitiam selecionar o meiode transporte visualizar outras opccedilotildees ou dar iniacutecio a rota ateacute o local desejado Tambeacutemhavia uma notificaccedilatildeo para quando a pessoa estivesse parada proacutexima a um restaurantecadastrado que direcionaria o usuaacuterio a uma tela com um cronocircmetro do tempo de esperana fila

Para testar essa visualizaccedilatildeo escolhemos algumas pessoas e realizamos um teste deusabilidade[22] este teste eacute feito da seguinte forma

44 DEFINICcedilAtildeO DA INTERFACE DO APLICATIVO 37

Uma contextualizaccedilatildeo eacute feita para o voluntaacuterio e entatildeo uma tarefa eacute passada para sercompletada Os integrantes do grupo observam dificuldades enfrentadas pelo entrevistado etomam notas Esse teste eacute repetido algumas vezes e seu resultado eacute coletado para avaliaccedilatildeoe modificaccedilatildeo das funcionalidades

Figura 415 Tela de detalhes de um restaurante(segunda versatildeo)

Notou-se que algumas funcionalidadespareceram confusas e natildeo intuitivas porexemplo natildeo ficou claro se o tempo mos-trado era de trajeto ou de espera na filanem qual era o meio de transporte utili-zado

Logo esse protoacutetipo foi reformuladocom o intuito de melhorar a experi-ecircncia do usuaacuterio com o nosso aplica-tivo

Foram colocados aleacutem do tempo deespera da fila o tempo que o usuaacuteriolevaria para chegar ateacute o local selecio-nado (conforme o tipo de transporte es-colhido) e a quantidade estimada de pes-soas na fila O tempo total (espera so-mado ao tempo de deslocamento) ga-nhou destaque entre as informaccedilotildees doestabelecimento e o botatildeo que direcionao usuaacuterio ao trajeto ficou mais especiacute-fico

Tambeacutem cogitou-se a possibilidade deadicionar login e um perfil de usuaacuteriojunto com uma lista de restaurantes favo-ritos

O fluxo das telas deste novo protoacutetipo ficou como mostra o esquema a seguir

38 DESENVOLVIMENTO DO PROJETO 44

Figura 416 Fluxo de telas do segundo protoacutetipo

44 DEFINICcedilAtildeO DA INTERFACE DO APLICATIVO 39

Figura 417 Tela de detalhes de um restaurante(terceira versatildeo)

Apoacutes outras avaliaccedilotildees mais algumaspequenas alteraccedilotildees foram realizadas nainterface Foi decidido que seria inviaacute-vel estimar o nuacutemero de pessoas nafila entatildeo essa funcionalidade foi remo-vida

Notificaccedilotildees foram adicionadas paraquando o usuaacuterio estiver parado na aacutereado restaurante para que ele possa con-tribuir com informaccedilotildees sobre a fila quepegou aleacutem de um botatildeo de contri-buiccedilatildeo ter sido inserido na tela ini-cial

40 DESENVOLVIMENTO DO PROJETO 45

O fluxo de telas do aplicativo atual ficou da seguinte forma

Figura 418 Fluxo de telas do terceiro protoacutetipo

46 EXPLICACcedilAtildeO DAS FUNCIONALIDADES 41

45 Explicaccedilatildeo das funcionalidadesEsta seccedilatildeo explica as funcionalidades do produto utilizando a figura 418

A tela inicial (3) exibe uma lista de restaurantes incluindo seus respectivos tempos detrajeto e tempo de espera na fila Ao clicar no botatildeo ldquo+rdquo uma caixa de diaacutelogo eacute aberta(4) onde eacute possiacutevel adicionar o tempo que o usuaacuterio esperou na fila Primeiro eacute escolhido orestaurante depois a data e hora que a pessoa chegou na fila e por fim o tempo de esperaem minutos Ao tocar em ldquoEnviar Feedback rdquo os dados satildeo incluiacutedos no banco de dados eatualizados para os outros usuaacuterios Assim eacute apicado o conceito de Crowdsourcing no apli-cativo

Ao tocar em um item da lista de restaurantes seraacute aberta a tela de detalhes de um res-taurante (5) na qual eacute possiacutevel ver com mais clareza os tempos de trajeto e espera o tempototal o endereccedilo do estabelecimento e um pequeno mapa centrado no local Pressionandoo botatildeo ldquoDireccedilotildeesrdquo o usuaacuterio seraacute redirecionado ao aplicativo de mapas de sua preferecircnciano caso do exemplo (8) o Google Maps jaacute traccedilando a rota da localizaccedilatildeo do usuaacuterio para oestabelecimento em questatildeo

Novamente na tela inicial tocando no iacutecone de lupa eacute possiacutevel realizar uma busca digi-tando o nome do estabelecimento na caixa de texto a qual exibe sugestotildees dependendo doque foi digitado Ao clicar em um dos resultados da busca o usuaacuterio eacute novamente direcionadopara a tela de detalhes do restaurante (5)

Tambeacutem eacute possiacutevel tocar no iacutecone de mapa na tela inicial onde seraacute mostrado um mapacentrado na localizaccedilatildeo do usuaacuterio

Ao ficar parado por um tempo em um mesmo local proacuteximo a um estabelecimentocadastrado o usuaacuterio eacute perguntado em uma notificaccedilatildeo quanto tempo ele permaneceu nafila Ao tocar na notificaccedilatildeo a caixa de diaacutelogo para feedback do usuaacuterio seraacute aberta (4) jaacutecom o restaurante preenchido e apoacutes o feedback a janela seraacute fechada e os dados enviadosao banco de dados

46 Implementaccedilatildeo do banco de dadosO banco de dados do aplicativo foi modelado e populado em forma de aacutervore (Fi-

gura 419) de forma a facilitar o acesso aos dados necessaacuterios ao aplicativo No primeironiacutevel estatildeo os ids dos restaurantes Cada id de restaurante guarda a localizaccedilatildeo (latitudelongitude) do restaurante o nome o endereccedilo e um objeto fila O objeto fila guarda todos osdias da semana (domingo a saacutebado) e cada dia da semana possui 24 campos um para cadahora do dia Cada hora possui o tempo meacutedio de espera da fila naquela hora e um peso paraesse tempo O peso eacute um valor que aumenta de acordo com o nuacutemero de feedbacks dadospara que o novo valor do tempo meacutedio seja calculado de forma consistente

Modelamos o banco de dados de uma forma que respeitasse uma hierarquia de dados

42 DESENVOLVIMENTO DO PROJETO 46

Figura 419 Aacutervore que ilustra a organizaccedilatildeo de um restaurante no banco de dados

Com o banco de dados jaacute populado o aplicativo faz consultas e atualizaccedilotildees de dadosConsultas satildeo feitas ao criar a tela de listagem de restaurantes e de detalhes de um restau-rante consultado As atualizaccedilotildees satildeo feitas quando o usuaacuterio manda o feedback de tempo deespera em um estabelecimento em determinado horaacuterio o aplicativo calcula a nova meacutedia eatualiza o campo do respectivo horaacuterio

Capiacutetulo 5

Conclusatildeo

Ao longo dos capiacutetulos deste trabalho pocircde-se acompanhar todo o processo de criaccedilatildeo edesenvolvimento do aplicativo que apoacutes finalizado foi batizado com o nome Queue

Comeccedilando com um problema para o qual o grupo almejava oferecer uma soluccedilatildeoacabou-se por adentrar-se um pouco no campo da Estatiacutestica e estudar diversas metodo-logias que poderiam ser uacuteteis para fornecer um caacutelculo de previsatildeo de espera meacutedia porperiacuteodo aplicaccedilatildeo da teoria das filas e utilizaccedilatildeo de redes neurais

Atraveacutes de uma parceria com a empresa GetIn obteve-se acesso a uma grande quantidadede dados e foi possiacutevel utilizaacute-los em anaacutelises feitas nas metodologias escolhidas conseguindoassim resultados relevantes Por meio destes foi feita a escolha de um dos meacutetodos para ocaacutelculo da previsatildeo de filas a meacutedia por periacuteodo

Aleacutem desses estudos ao longo do ano o grupo aprendeu a desenvolver para a plata-forma Android sobre a qual nenhum dos integrantes tinha conhecimento preacutevio Tambeacutemfoi possiacutevel aprender e utilizar a metodologia aacutegil com Scrum para guiar o processo de de-senvolvimento

Ao fim do ciclo de desenvolvimento conseguiu-se entregar um aplicativo em funciona-mento que fornece a previsatildeo de espera no instante da consulta de estabelecimentos cadas-trados no banco de dados armazenado na nuvem

Na versatildeo atual do aplicativo natildeo foi implementado um sistema para o cadastro de novosestabelecimentos Isso soacute eacute possiacutevel atraveacutes da inserccedilatildeo direta no banco de dados atraveacutes dainterface fornecida pelo console do Firebase Atualmente estatildeo cadastrados 5 restaurantesos quais foram visitados durante o desenvolvimento do projeto Para que o cadastro deestabelecimentos escale seria necessaacuterio a implementaccedilatildeo de uma funcionalidade que permitaao usuaacuterio adicionar novos estabelecimentos a partir de locais disponiacuteveis na API de locaisda Google

43

45

46 APEcircNDICE A

Apecircndice A

Dados coletados

Figura A1 Dados de tempo de espera para grupos de tamanhos variados para cada horaacuterio e emcada dia da semana obtidos em entrevista em restaurantes Outback Steakhouse Shopping Uniatildeo nomecircs de outubro

Referecircncias Bibliograacuteficas

[1] Backpropagation httpmbpsourceforgenet Accesso em Janeiro 2017 14

[2] Bitbucket httpsbitbucketorgproduct Accesso em Dezembro 2016 19

[3] Crowdsourcing httpswwwmerriam-webstercomdictionarycrowdsourcing Ac-cesso em Novembro 2016 21

[4] Designing a survey httpwwwsciencebuddiesorgscience-fair-projectsproject_ideasSoc_surveyshtml Accesso em Outubro 2016 4 23

[5] Facebook httpswwwfacebookcom Accesso em Novembro 2016 24

[6] Firebase httpsfirebasegooglecom Accesso em Agosto 2016 20

[7] Getin app httpswwwgetinappcombrhomesao-paulo Accesso em Novembro2016 9

[8] Git 11 primeiros passos - sobre controle de versatildeo httpsgit-scmcombookpt-brv1Primeiros-passos-Sobre-Controle-de-Vers Accesso em Novembro 2016 19

[9] Google forms httpsdocsgooglecomforms Accesso em Novembro 2016 23

[10] Guia definitivo do project model canvas Project Builder 3

[11] Jsonorg introducing json httpwwwjsonorg Accesso em Novembro 2016 17

[12] Manifesto para desenvolvimento Aacutegil de software httpagilemanifestoorgisoptbrmanifestohtml Accesso em Novembro 2016 5

[13] Nosql httpsenwikipediaorgwikiNoSQL Accesso em Novembro 2016 20

[14] Outback steakhouse httpswwwoutbackcombrhome Accesso em Novembro 20169

[15] Restful api development with lumen microframework httpsbelitsoftcomlaravel-development-servicesapi-development Accesso em Novembro 2016 17

[16] Scrum httpswwwatlassiancomagilescrum Accesso em Novembro 2016 5

[17] Smartphone os market share 2016 q2 httpwwwidccomprodservsmartphone-os-market-sharejsp Accesso em Novembro 2016 15

[18] Smartphone os sales market share kantar worldpanel comtech httpwwwkantarworldpanelcomsmartphone-os-market-share Accesso em Novembro 2016 15

[19] Sourcetree httpswwwsourcetreeappcom Accesso em Dezembro 2016 19

47

48 REFEREcircNCIAS BIBLIOGRAacuteFICAS

[20] Sql httpsptkhanacademyorgcomputingcomputer-programmingsql Accesso emDezembro 2016 20

[21] Trello httpstrellocom Accesso em Novembro 2016 6

[22] Usability test httpsenwikipediaorgwikiUsability_testing Accesso em Novembro2016 36

[23] Versionone 2012 agile dev survey httpswwwversiononecompdf7th-Annual-State-of-Agile-Development-Surveypdf Accesso em Novembro 2016 5

[24] Waze httpswwwwazecom Accesso em Novembro 2016 1

[25] What is an open source httpsopensourcecomresourceswhat-open-source Accessoem Novembro 2016 15

[26] Xml tutorial httpwwww3schoolscomxml Accesso em Novembro 2016 17

[27] Paulo F Cabral dos Anjos Jr Aron Ifanger Maciel Christopher Silva de Paacutedua Com-posiccedilatildeo de carteiras de accedilotildees utilizando modelo de redes neurais artificiais e modelo derisco e retorno de Markowitz 2012 14

[28] Google Distance matrix api documentation httpsdevelopersgooglecommapsdocumentationdistance-matrix Accesso em Novembro 2016 17

[29] Alan Klement Designing features using job stories httpsblogintercomcomusing-job-stories-design-features-ui-ux Accesso em Novembro 2016 6

[30] Azmat Nafees Queuing theory and its application analysis of the sales checkout opera-tion in ica supermarket httpwwwstatisticsduseessaysD07ENafeespdf Accessoem Novembro 2016 12

[31] Eric Ries A Startup Enxuta Lua de papel primeira ediccedilatildeo edition 2012 3

  • Introduccedilatildeo
    • Motivaccedilatildeo
    • Trabalho Proposto
    • Estrutura da monografia
      • Estudos Preliminares
        • Desenvolvimento de Startups
          • Desenvolvimento de Questionaacuterios
            • Metodologia Aacutegil
            • Jobs to be done
            • Caacutelculo da previsatildeo do tempo de espera na fila
              • Descriccedilatildeo do problema
              • Meacutetodos de caacutelculo da espera
                  • Tecnologias utilizadas
                    • O sistema Android
                      • Organizaccedilatildeo de uma aplicaccedilatildeo Android
                        • JSON
                        • Google APIs
                        • Localizaccedilatildeo do Usuaacuterio
                        • Controle de Versatildeo
                        • Banco de dados
                          • Firebase
                            • Crowdsourcing
                              • Desenvolvimento do Projeto
                                • Pesquisa de Mercado
                                  • Pesquisa com o usuaacuterio
                                    • Projeto do Aplicativo
                                    • Aplicaccedilatildeo dos meacutetodos de caacutelculo de espera
                                      • Aplicando a meacutedia por periacuteodo
                                      • Aplicando teoria das filas
                                      • Aplicando redes neurais
                                      • Conclusatildeo sobre os meacutetodos estudados
                                        • Definiccedilatildeo da Interface do aplicativo
                                        • Explicaccedilatildeo das funcionalidades
                                        • Implementaccedilatildeo do banco de dados
                                          • Conclusatildeo
                                          • Dados coletados
                                          • Referecircncias Bibliograacuteficas

33 JSON 17

para o funcionamento do aplicativo Outra funccedilatildeo eacute possuir declaraccedilotildees de todos os compo-nentes utilizados no projeto nomes iacutecones entre outros

As interfaces de usuaacuterio do Android satildeo definidas em arquivos XML (eXtensible MarkupLanguage)[26] nos quais estatildeo declarados todos os layouts e configuraccedilotildees das telas Essesarquivos de layout satildeo depois inflados e satildeo gerados os componentes visuais da aplicaccedilatildeoEssa estrutura tem como objetivo facilitar o design da interface do usuaacuterio jaacute que arquivosxml satildeo de faacutecil compreensatildeo do desenvolvedor

32 JSONJSON ou Javascript Object Notation eacute um formato de dados amplamente utilizado para

troca de informaccedilotildees entre programas Possui uma notaccedilatildeo simples para grande parte dosprogramadores pois se assemelha a convenccedilotildees utilizadas em linguagens de programaccedilatildeomuito conhecidas como C C++ Python e Java O objetivo eacute que ele seja de faacutecil entendi-mento tanto para pessoas como para maacutequinas[11]

Um arquivo JSON eacute organizado como um objeto contendo pares nomevalorseparadospor viacutergulas e dentro de chaves(lsquolsquo rsquorsquo) ou como um array que eacute uma lista de valores separa-dos por viacutergulas e entre colchetes(lsquo[lsquo rsquo]rsquo) Um valor por sua vez pode ser um objeto ou umarray mas tambeacutem um nuacutemero inteiro ou uma String entre outros

Um exemplo de arquivo JSON eacute

1 2 Carros [3 4 Nome Scen ic 5 Marca Renault 6 Ano 20127 8 9 Nome Sentra

10 Marca Nissan 11 Ano 200912 13 ]14

33 Google APIsAPIs (Application Program Interfaces) satildeo interfaces para facilitar a troca de informa-

ccedilotildees entre aplicaccedilotildees utilizando comandos especiacuteficos[15]

Ao longo do desenvolvimento algumas APIs fornecidas pela Google foram utilizadascomo fonte de informaccedilotildees adicionais para o aplicativo

∙ Google Maps Distance Matrix API Esta API eacute utilizada para obter o tempo emsegundos de trajeto entre dois pontos (latlong) no mapa podem ser consultados ostempos de trajeto de carro bicicleta a peacute e utilizando transporte puacuteblico[28] Esta eacute

18 TECNOLOGIAS UTILIZADAS 35

uma API web logo utiliza-se um request http para realizar uma consulta

Por exemplo o request

httpsmapsgoogleapiscommapsapidistancematrixjsonorigins=Seattleampdestinations=Victoria+BCampkey=[user_key]

retorna o JSON

1 2 des t ina t i on_addre s s e s [ Vic tor ia BC Canada ] 3 o r i g in_addre s s e s [ Sea t t l e WA EUA ] 4 rows [5 6 e lements [7 8 d i s t anc e 9 text 172 km

10 value 17166811 12 durat ion 13 text 4 horas 40 minutos 14 value 1680915 16 s t a tu s OK17 18 ]19 20 ] 21 s t a tu s OK22

no qual eacute possiacutevel obter o tempo de trajeto em segundos

∙ Google Maps Android API Esta API eacute utilizada para habilitar o uso de mapasda Google integrados agrave aplicaccedilatildeo jaacute disponiacutevel com todas as funcionalidades de zoome arrastar presentes no aplicativo nativo permitindo tambeacutem a personalizaccedilatildeo comoa adiccedilatildeo de pontos definidos pelo usuaacuterio ao mapa

34 Localizaccedilatildeo do UsuaacuterioOutro serviccedilo que foi utilizado com o intuito de obter o tempo de trajeto e a lista ordenada

de forma personalizada de restaurantes foi a localizaccedilatildeo do usuaacuterio que eacute obtida atraveacutes doGPS presente nos smartphones Um objeto de localizaccedilatildeo eacute criado e realiza a comunicaccedilatildeocom o serviccedilo de localizaccedilatildeo do aparelho Ao obter a localizaccedilatildeo ele lanccedila um evento quepode ser acessado por outras partes da aplicaccedilatildeo obtendo a localizaccedilatildeo mais atualizada dodispositivo

36 CONTROLE DE VERSAtildeO 19

35 Controle de VersatildeoControle de versatildeo eacute uma praacutetica usada para manter a organizaccedilatildeo do coacutedigo e do seu de-

senvolvimento quando muitos desenvolvedores colaboram conjuntamente Existem softwaresque auxiliam essa organizaccedilatildeo registrando todas as mudanccedilas feitas ao longo do processo eque possui recursos que permitem que vaacuterios usuaacuterios trabalhem nos mesmos arquivos semperda de informaccedilotildees

No caso do Git [8] o projeto fica organizado em uma estrutura de aacutervore onde cadacommit (checkpoints criados pelos membros do grupo durante o processo) eacute marcado porum noacute para onde se pode retornar quando necessaacuterio Existem tambeacutem estruturas chama-das branches que satildeo bifurcaccedilotildees na estrutura para que partes do projeto sejam criadasseparadamente sem interferir com a linha principal As branches depois satildeo unidas agrave linhaprincipal atraveacutes do comando merge

Neste projeto o serviccedilo de controle de versatildeo utilizado foi o Bitbucket [2] (que eacute um ser-viccedilo web-based de controle de versatildeo que utiliza Git) com auxiacutelio do software SourceTree[19]que eacute uma interface graacutefica para os serviccedilos do Bitbucket onde eacute possiacutevel visualizar com maisfacilidade as fases do desenvolvimento do projeto e realizar os comandos mais intuitivamente

Figura 32 Interface do SourceTree que mostra o controle de versionamento do projeto

36 Banco de dadosCom o intuito de deixar o aplicativo mais completo guardando informaccedilotildees dos usuaacuterios

e dos estabelecimentos optou-se por utilizar-se um banco de dados Alguns exemplos de

20 TECNOLOGIAS UTILIZADAS 36

banco de dados aprendidos no curso Laboratoacuterio de Banco de Dados foram

∙ SQL (Structured Query Language - Linguagem de Consulta Estruturada)[20] umalinguagem para atualizar deletar e requisitar informaccedilotildees atraveacutes de consultas emtabelas que possuem relaccedilatildeo entre si

∙ noSQL[13] um banco de dados que armazena e recupera informaccedilotildees modeladas deuma forma onde natildeo satildeo usadas tabelas relacionais

Como este uacuteltimo natildeo foi o foco da disciplina por falta de tempo decidiu-se por utilizaacute-lopara que o grupo pudesse aprender melhor esse modelo

Outra decisatildeo tomada foi a hospedagem dos dados na nuvem ou seja colocaacute-los em umservidor que natildeo seja local e conseguir acessaacute-los atraveacutes de uma conexatildeo via internet Dessemodo os dados sempre estaratildeo disponiacuteveis para serem consultados

361 Firebase

Buscando-se atender as decisotildees tomadas sobre o banco de dados procuramos um serviccedilode banco de dados da Google por conter ampla integraccedilatildeo com a plataforma de desenvolvi-mento Android por ser conhecido bastante utilizado e por possuir uma ampla comunidadede desenvolvedores dispostos a oferecer auxiacutelio em foacuteruns de discussatildeo de coacutedigos

Para atender esses requisitos escolheu-se o Firebase Realtime Database[6] desenvolvido edisponibilizado pela Google que consiste em um banco de dados noSQL com armazenamentona nuvem Esse serviccedilo armazena os dados do usuaacuterio no servidor da Google em formatoJSON e a cada alteraccedilatildeo sincroniza em tempo real com todos os clientes conectados

O grupo pode observar as seguintes vantagens de se trabalhar com a ferramenta existea sincronizaccedilatildeo em tempo real dos dados de todos os clientes e sua disponibilidade mesmocom o aplicativo offline ou seja quando o aplicativo natildeo estiver conectado a internet osdados do dispositivo moacutevel seratildeo armazenados e sincronizados com o banco de dados assimque a conexatildeo estiver disponiacutevel novamente Aleacutem disso os desenvolvedores possuem acessoa um console online (figura 33) onde o JSON eacute mostrado numa interface interativa de umaforma mais amigaacutevel e no qual eacute permitido editaacute-lo facilmente

37 CROWDSOURCING 21

Figura 33 Console online do Firebase onde os dados satildeo mostrados de forma mais amigaacutevel eintuitiva

Outra observaccedilatildeo feita foi que o Firebase Realtime Database funciona como o esperadose ele guardar uma coacutepia local dos dados em um arquivo JSON no celular Poreacutem isso natildeofoi visto como um problema pois como essa coacutepia pode ser salva em um arquivo texto oespaccedilo utilizado diminui consideravelmente

Na primeira vez que os dados satildeo criados e todas as vezes em que os dados forem atua-lizados por algum dispositivo moacutevel eacute enviada uma atualizaccedilatildeo que seraacute recebida atraveacutes delisteners por todos os aparelhos que utilizam o aplicativo para que eles atualizem seus res-pectivos JSONs Listeners satildeo interfaces de comunicaccedilatildeo que executam uma seacuterie de accedilotildeesassim que um outro evento esperado acontece

37 CrowdsourcingO termo Crowdsourcing tem origem nas palavras da liacutengua inglesa Crowd (multidatildeo) e

Outsourcing (terceirizaccedilatildeo) e eacute definido pelo dicionaacuterio Merriam Webster como A praacuteticade obtenccedilatildeo de serviccedilos ideias ou conteuacutedo solicitando contribuiccedilotildees de grandes grupos depessoas e especialmente da comunidade online [3] Esta praacutetica eacute utilizada para que sejapossiacutevel agrave comunidade contribuir com dados para algum programa ou serviccedilo como no apli-cativo Waze do qual a principal fonte de dados de tracircnsito acidentes e radares eacute obtida pormeio dos proacuteprios usuaacuterios

Capiacutetulo 4

Desenvolvimento do Projeto

Este capiacutetulo aborda o processo de desenvolvimento do projeto iniciado com o preen-chimento do diagrama Canvas e uma pesquisa de mercado direcionada ao usuaacuterio A partirdas informaccedilotildees coletadas foi possiacutevel projetar um aplicativo que atendesse as necessidadesexpostas pela pesquisa e selecionar as tecnologias necessaacuterias Tambeacutem eacute abordada a aplica-ccedilatildeo dos diferentes meacutetodos de caacutelculo da previsatildeo de tempo de espera que foram estudadose explicados no Capiacutetulo 2 Por fim satildeo expostas as diferentes versotildees do aplicativo duranteo processo e seus detalhes

41 Pesquisa de MercadoAntes de iniciar-se o desenvolvimento praacutetico algumas questotildees foram levantadas se

um aplicativo com as funcionalidades escolhidas seria de alguma forma uacutetil para o usuaacuterioe se sim qual metodologia deveria ser usada para que este produto fosse entregue o maiscompleto possiacutevel ateacute o final do ano Para responder a primeira pergunta desenvolveu-seum questionaacuterio

411 Pesquisa com o usuaacuterio

O questionaacuterio foi desenvolvido para avaliar a viabilidade do aplicativo e suas funciona-lidades e foi criado utilizando-se o Google Forms [9] Essa eacute uma ferramenta desenvolvidapelo Google que possibilita a criaccedilatildeo de formulaacuterios contendo diversos formatos de pergun-tas tanto dissertativas quanto de muacuteltipla escolha

Seguindo os princiacutepios de desenvolvimento de questionaacuterios [4] o conjunto de perguntasfoi mantido curto simples e de faacutecil entendimento Tambeacutem variou-se o tipo de questotildeesentre estruturadas (questotildees com respostas em forma de alternativas) e desestruturadas(questotildees com respostas em formato texto) seguindo esses mesmos princiacutepios para captarmelhor as informaccedilotildees dos entrevistados e evitar erros de entendimento

Com as respostas do questionaacuterio tinha-se o intuito de traccedilar um possiacutevel puacuteblico alvoconhecer seu modo de uso de dispositivos moacuteveis e validar a aplicabilidade de diferentesfuncionalidades pretendidas inicialmente sendo essas engajamento do usuaacuterio atraveacutes denotificaccedilotildees do sistema aceitaccedilatildeo de sugestotildees de locais alternativos avaliaccedilatildeo da existecircnciado problema que queremos resolver (se este aplicativo supre uma necessidade real do usuaacute-rio) e aceitaccedilatildeo do aplicativo

23

24 DESENVOLVIMENTO DO PROJETO 41

Para a divulgaccedilatildeo redes sociais como Facebook [5] e sistemas de mensagem instantacircneascomo WhatsApp foram usados e o envio de respostas foi restrito ateacute trecircs semanas apoacutes suaprimeira postagem Neste periacuteodo foram obtidas 210 respostas as quais ajudaram a definiros aspectos do sistema a ser desenvolvido

O questionaacuterio foi dividido em duas subseccedilotildees perfil do usuaacuterio e funcionalidade Comelas obteve-se os seguintes resultados

41 PESQUISA DE MERCADO 25

Questatildeo 1

Figura 41 Graacutefico pizza da distribuiccedilatildeo das respostas em relaccedilatildeo a idade dos pesquisados

As faixas de idade apresentadas estatildeo desbalanceadas por natildeo terem a mesma quantidadede anos em cada uma poreacutem essa divisatildeo foi pensada levando-se em conta a fluecircncia comtecnologia que cada idade possui Com o resultado verificou-se que do puacuteblico alcanccediladocom a pesquisa a maioria estaacute na faixa de 18 a 25 anos de idade assumida como parcelacom maior conhecimento tecnoloacutegico

Questatildeo 2

Figura 42 Graacutefico pizza da distribuiccedilatildeo das respostas em relaccedilatildeo ao sistema operacional

Esta questatildeo foi pensada para medir a porcentagem de cada sistema operacional pre-sente nos celulares do puacuteblico Com ela descobriu-se que 639 das pessoas dentro desse

26 DESENVOLVIMENTO DO PROJETO 41

grupo possuem o sistema Android enquanto 234 possuem iOS e 38 Windows phoneEssa pergunta foi incluiacuteda para um melhor direcionamento do desenvolvimento do aplicativo

Uma questatildeo levantada ao aplicar esse questionaacuterio foi a dificuldade que algumas pessoasencontraram para identificar a versatildeo do proacuteprio aparelho Poreacutem para manter a consistecircnciadas respostas decidiu-se natildeo mudar nada nesta questatildeo para remediar isso

Questatildeo 3

Figura 43 Graacutefico em barras da distribuiccedilatildeo de frequecircncias mensais de cada local analisado

41 PESQUISA DE MERCADO 27

Questatildeo 4

Figura 44 Graacutefico em pizza da distribuiccedilatildeo de interesse do usuaacuterio no tempo de espera de cadalocal

A princiacutepio viu-se muitas possiacuteveis aplicaccedilotildees para a previsatildeo de tempo de espera Paraentender qual seria a prioridade do puacuteblico as questotildees acima foram incluiacutedas A primeiraverificou a frequecircncia de visitas em alguns locais e a segunda serviu para analisar qualestabelecimento despertava mais interesse nos entrevistados quanto ao quesito fila Nos doiscasos restaurantes se destacaram com o maior interesse

Questatildeo 5

Figura 45 Graacutefico em barras da distribuiccedilatildeo de interesse do usuaacuterio por cada item avaliado

Para acompanhar o dado de espera e fornecer mais informaccedilotildees relevantes ao usuaacuteriosem potencial perguntou-se quais outras informaccedilotildees eles acham interessante saber sobre umdeterminado estabelecimento Com isso descobriu-se que a faixa de preccedilo o trajeto ateacute olocal e o cardaacutepio seriam dados importantes de se obter juntamente com o tempo de espera

28 DESENVOLVIMENTO DO PROJETO 41

Questatildeo 6O que vocecirc costuma fazer para evitar filasNeste ponto testou-se se a soluccedilatildeo proposta atraveacutes do aplicativo resolveria o problema dousuaacuterio de uma forma melhor do que a soluccedilatildeo atualmente utilizada Para isso foi perguntadoo que as pessoas fazem para evitar filas e as principais respostas foram

∙ Evitar horaacuterios de pico

∙ Chegar cedo

∙ Ir em outro lugar caso uma fila seja encontrada

∙ Tentar realizar reservas antecipadamente

∙ Se distrair com livroscelular

Notou-se que as soluccedilotildees utilizadas atualmente natildeo suprem as necessidades dos entre-vistados pois mesmo em horaacuterios natildeo convencionais pode-se encontrar filas ou quandodecide-se esperar na fila muito tempo eacute perdido Concluiu-se que a soluccedilatildeo proposta a par-tir do aplicativo resolve de forma mais abrangente o problema pois ajuda o usuaacuterio a evitarhoraacuterios de pico inesperados

Questatildeo 7

Figura 46 Graacutefico em pizza da distribuiccedilatildeo do meio de transporte utilizado pelos usuaacuterios

Essa questatildeo foi formulada com o objetivo de verificar quais meios de transporte seriamincluiacutedos com previsatildeo de tempo de trajeto no aplicativo Foi verificado que a maioria dosentrevistados utilizam transporte puacuteblico seguido por carro

41 PESQUISA DE MERCADO 29

Questatildeo 8

Figura 47 Graacutefico em pizza da distribuiccedilatildeo do interesse do usuaacuterio pela informaccedilatildeo fornecida

Questatildeo 9

Figura 48 Graacutefico em pizza da distribuiccedilatildeo de quantidade de quilocircmetros que o usuaacuterio sedeslocaria para ir a um local com menos fila

Com essas questotildees foi verificado que algo importante para o usuaacuterio eacute saber de outrosestabelecimentos que possam oferecer tempos de espera menores nas redondezas de onde ousuaacuterio se encontra que eacute uma das funcionalidades que desejaacutevamos utilizar no sistema

30 DESENVOLVIMENTO DO PROJETO 41

Questatildeo 10

Figura 49 Graacutefico em barras da distribuiccedilatildeo de sentimento do usuaacuterio em relaccedilatildeo a notificaccedilatildeode aplicativos

Questatildeo 11

Figura 410 Graacutefico em pizza da distribuiccedilatildeo de opiniatildeo do usuaacuterio sobre desabilitar notificaccedilotildeesem celular

42 PESQUISA DE MERCADO 31

Questatildeo 12

Figura 411 Graacutefico em pizza da distribuiccedilatildeo de opiniatildeo do usuaacuterio sobre habilitar GPS emcelular

A ideia inicial era poder usar o GPS para verificar a localizaccedilatildeo do usuaacuterio e enviarnotificaccedilotildees quando este estivesse parado nas proximidades de algum dos estabelecimentoscadastrados Para que essa funcionalidade possa existir eacute necessaacuterio que o aplicativo tenhaacesso agrave localizaccedilatildeo precisa da pessoa atraveacutes do GPS ou internet ateacute mesmo quando natildeoestiver aberto Aleacutem disso tambeacutem eacute necessaacuterio que as notificaccedilotildees estejam habilitadas parafinalizar esta interaccedilatildeo Entatildeo as perguntas 10 11 e 12 foram incluiacutedas no questionaacuterio Ob-servando as respostas foi possiacutevel verificar que 295 das pessoas que responderam deixamambas as funcionalidades habilitadas (GPS e notificaccedilotildees) Com isso pudemos prosseguircom essa ideia e tambeacutem pensar em possiacuteveis alternativas de interaccedilatildeo e engajamento como usuaacuterio

Por conta dessa pesquisa ter sido compartilhada atraveacutes das contas das redes sociais ecomunicadores dos componentes deste grupo sabe-se que este pode apresentar um resultadoviesado mas que mesmo assim natildeo deve ser desconsiderado e que muito ajudou a sanar asduacutevidas iniciaisComo resultado traccedilamos o perfil do entrevistado

∙ Faixa etaacuteria predominante entre 18 e 30 anos

∙ Possui sistema operacional Android (versotildees 4 5 e 6)

∙ Vai a restaurantes com certa frequecircncia mensal resultando em interesses sobre infor-maccedilotildees relacionadas a esse estabelecimento

∙ Costuma chegar cedo ou evitar os horaacuterios de pico para evitar filas nos locais

∙ Carro e transporte coletivo satildeo os principais meios de transporte

∙ Se deslocaria para um estabelecimento semelhante que possui menos fila contanto queeste fique num raio de 2km de distacircncia

32 DESENVOLVIMENTO DO PROJETO 43

42 Projeto do AplicativoO grupo comeccedilou o projeto com o preenchimento do diagrama Canvas(figura 412) apre-

sentado na Seccedilatildeo 21 Desse modo foi adquirida uma ideia mais consistente e uma base paracomeccedilar a implementaccedilatildeo

Figura 412 Diagrama Canvas preenchido pelo grupo

Com o modelo de negoacutecios definido e com base no resultado da pesquisa com o usuaacuterioapresentada na seccedilatildeo seguinte foram aplicadas pequenas mudanccedilas no projeto para melhoradequar-se agraves necessidades e ao perfil do puacuteblico alvo

Para o desenvolvimento foi utilizado um meacutetodo aacutegil baseado no scrum com sprints de3 a 4 semanas devido agrave disponibilidade dos membros do grupo Os encontros natildeo eram diaacute-rios como recomendado para o meacutetodo scrum tambeacutem em razatildeo da disponibilidade Haviamstand ups (discussotildees raacutepidas no comeccedilo de cada encontro) e retrospectivas ao final de cadasprint A cada sprint eram selecionadas histoacuterias e tarefas para serem executadas e caso natildeofossem concluiacutedas ao final da iteraccedilatildeo eram inseridas ao backlog e feitas no sprint seguinte

43 Aplicaccedilatildeo dos meacutetodos de caacutelculo de espera

431 Aplicando a meacutedia por periacuteodo

Aplicando-se no trecho abaixo a teacutecnica desenvolvida na Seccedilatildeo 242 para uma queryrealizada no dia 19082016 no intervalo de 2040 - 2055 analisa-se a semana anterior quepossua tais intervalos Assim o saacutebado dia 06082016 seraacute selecionado

43 APLICACcedilAtildeO DOS MEacuteTODOS DE CAacuteLCULO DE ESPERA 33

Entrada Qtd Pessoas Notificado Espera

6816 2043 2 862016 2053 1606

6816 2044 2 862016 2055 674

6816 2048 2 862016 2056 528

6816 2048 2 862016 2057 520

6816 2051 2 862016 2107 1118

6816 2051 3 862016 2110 1305

6816 2052 2 862016 2110 1273

6816 2052 2 862016 2111 1179

6816 2053 2 862016 2112 1217

6816 2053 2 NULL 59

6816 2054 3 862016 2119 1541

6816 2055 2 862016 2117 1444

6816 2055 2 862016 2120 1570

6816 2055 2 862016 2122 1613

Tabela 41 Trecho do dia 06082016 entre os horaacuterios das 2043 agraves 2055 um intervalo de 12minutos retirado dos dados da empresa Get In

Com esses dados obteve-se a meacutedia de espera de 1080 segundos (18 minutos) a qualseria sugerida para o usuaacuterio com a busca e desvio padratildeo de 465144719 segundos (775 mi-nutos) Dentro desse intervalo tem-se como maacuteximo tempo de espera 1613 segundos (2688minutos) e como miacutenimo 59 segundos (1 minuto) Analisando-se os dados do dia 19082016no mesmo periacuteodo temos

34 DESENVOLVIMENTO DO PROJETO 43

Entrada Pessoas Notificado Espera Erro previsatildeo Erro p 2 pessoas

19816 2043 2 8192016 2051 544 -563 522

19816 2043 2 8192016 2052 605 -502 461

19816 2044 2 8192016 2056 723 -384 343

19816 2046 4 8192016 2119 1988 881 X

19816 2048 2 8192016 2102 919 188 147

19816 2051 2 8192016 2103 821 286 245

19816 2051 3 8192016 2108 1773 666 X

19816 2053 2 8192016 2110 1083 24 -17

19816 2053 2 8192016 2111 1105 2 -39

19816 2053 2 8192016 2112 1169 62 -103

19816 2055 2 8192016 2114 1447 340 -381

Tabela 42 Trecho do dia 19082016 entre os horaacuterios das 2043 agraves 2055um intervalo de 12minutos retirado dos dados da empresa Get In

Ou seja se um grupo chegasse dentro desse periacuteodo e a previsatildeo dada fosse a meacutediaobtida anteriormente o erro calculado pela diferenccedila entre o tempo sugerido e o real tempode espera estaria no intervalo de 15 minutos para menos ou 8 minutos para mais Sendoesse um valor aceitaacutevel

Um proacuteximo passo eacute a restriccedilatildeo dos registros a grupos com 2 integrantes Com tal restri-ccedilatildeo a previsatildeo de espera eacute de 1066 segundos (1776 minutos) Aplicando essa nova meacutedia aosregistros com 2 integrantes do dia 19082016 obteacutem-se um erro (Coluna 6 - erro previsatildeopara 2 pessoas) menor do que o anterior O intervalo do erro calculado neste caso seria de 522segundos (87 minutos) para mais e 381 segundos (635 minutos) para menos Este resultadoeacute ainda mais favoraacutevel mostrando que a inclusatildeo de mais filtros para o caacutelculo da previsatildeomelhorou o tempo previsto

432 Aplicando teoria das filas

A teoria das filas (Seccedilatildeo 242) eacute uma ferramenta muito completa que calcula muitos dadosuacuteteis para a previsatildeo de espera Contudo por conta da necessidade de informaccedilotildees sobreo tempo de atendimento a qual natildeo estaacute contida no banco utilizado esta teoria natildeo podeser aplicada neste caso Poreacutem esse dado pode ter um valor assumido para que a utilizaccedilatildeodessa teoria fosse possiacutevel entretanto a sua precisatildeo ficaria comprometida e imprevisiacutevel

433 Aplicando redes neurais

Para aplicar o que foi estudado na Seccedilatildeo 242 foi executado o software com o mecircs deAgosto como teste o mecircs de Setembro como treino e o limite do erro quadraacutetico como 001 eobteve-se a tabela presente no apecircndice B Na tabela podemos ver o tempo de fila esperadoou seja o tempo contido na tabela do mecircs de Setembro o tempo que o algoritmo deu comoresposta baseado no mecircs de Agosto e o erro entre eles respectivamente

44 DEFINICcedilAtildeO DA INTERFACE DO APLICATIVO 35

Figura 413 Software Multiple Back-Propagation com a configuraccedilatildeo escolhida para os dadosdisponiacuteveis

Mesmo o erro se mantendo em 0018 os dados obtidos possuem um erro padratildeo de 15minutos Se mais dados forem adicionados o criteacuterio de parada pode ser atingido e assimuma previsatildeo melhor pode ser alcanccedilada

434 Conclusatildeo sobre os meacutetodos estudados

Dentre todas as possibilidades estudadas visualizamos na meacutedia por periacuteodo a melhoropccedilatildeo assumindo os dados disponiacuteveis para teste Se mais paracircmetros fossem fornecidoscomo o tempo de atendimento a teoria das filas seria uma boa opccedilatildeo para fornecer a pre-visatildeo de espera E se mais dados estivessem disponiacuteveis as redes neurais conseguiriam umaaproximaccedilatildeo melhor e assim seria uma boa opccedilatildeo tambeacutem

44 Definiccedilatildeo da Interface do aplicativoComo um primeiro protoacutetipo foi desenvolvida uma interface simples que tinha como tela

de iniacutecio um mapa com um campo para buscas na parte superior

36 DESENVOLVIMENTO DO PROJETO 44

Figura 414 Fluxo de telas do primeiro protoacutetipo

Ao efetuar uma busca por algum estabelecimento uma tela mostrando o tempo de esperaaproximado da fila no local era exibida junto com bototildees que permitiam selecionar o meiode transporte visualizar outras opccedilotildees ou dar iniacutecio a rota ateacute o local desejado Tambeacutemhavia uma notificaccedilatildeo para quando a pessoa estivesse parada proacutexima a um restaurantecadastrado que direcionaria o usuaacuterio a uma tela com um cronocircmetro do tempo de esperana fila

Para testar essa visualizaccedilatildeo escolhemos algumas pessoas e realizamos um teste deusabilidade[22] este teste eacute feito da seguinte forma

44 DEFINICcedilAtildeO DA INTERFACE DO APLICATIVO 37

Uma contextualizaccedilatildeo eacute feita para o voluntaacuterio e entatildeo uma tarefa eacute passada para sercompletada Os integrantes do grupo observam dificuldades enfrentadas pelo entrevistado etomam notas Esse teste eacute repetido algumas vezes e seu resultado eacute coletado para avaliaccedilatildeoe modificaccedilatildeo das funcionalidades

Figura 415 Tela de detalhes de um restaurante(segunda versatildeo)

Notou-se que algumas funcionalidadespareceram confusas e natildeo intuitivas porexemplo natildeo ficou claro se o tempo mos-trado era de trajeto ou de espera na filanem qual era o meio de transporte utili-zado

Logo esse protoacutetipo foi reformuladocom o intuito de melhorar a experi-ecircncia do usuaacuterio com o nosso aplica-tivo

Foram colocados aleacutem do tempo deespera da fila o tempo que o usuaacuteriolevaria para chegar ateacute o local selecio-nado (conforme o tipo de transporte es-colhido) e a quantidade estimada de pes-soas na fila O tempo total (espera so-mado ao tempo de deslocamento) ga-nhou destaque entre as informaccedilotildees doestabelecimento e o botatildeo que direcionao usuaacuterio ao trajeto ficou mais especiacute-fico

Tambeacutem cogitou-se a possibilidade deadicionar login e um perfil de usuaacuteriojunto com uma lista de restaurantes favo-ritos

O fluxo das telas deste novo protoacutetipo ficou como mostra o esquema a seguir

38 DESENVOLVIMENTO DO PROJETO 44

Figura 416 Fluxo de telas do segundo protoacutetipo

44 DEFINICcedilAtildeO DA INTERFACE DO APLICATIVO 39

Figura 417 Tela de detalhes de um restaurante(terceira versatildeo)

Apoacutes outras avaliaccedilotildees mais algumaspequenas alteraccedilotildees foram realizadas nainterface Foi decidido que seria inviaacute-vel estimar o nuacutemero de pessoas nafila entatildeo essa funcionalidade foi remo-vida

Notificaccedilotildees foram adicionadas paraquando o usuaacuterio estiver parado na aacutereado restaurante para que ele possa con-tribuir com informaccedilotildees sobre a fila quepegou aleacutem de um botatildeo de contri-buiccedilatildeo ter sido inserido na tela ini-cial

40 DESENVOLVIMENTO DO PROJETO 45

O fluxo de telas do aplicativo atual ficou da seguinte forma

Figura 418 Fluxo de telas do terceiro protoacutetipo

46 EXPLICACcedilAtildeO DAS FUNCIONALIDADES 41

45 Explicaccedilatildeo das funcionalidadesEsta seccedilatildeo explica as funcionalidades do produto utilizando a figura 418

A tela inicial (3) exibe uma lista de restaurantes incluindo seus respectivos tempos detrajeto e tempo de espera na fila Ao clicar no botatildeo ldquo+rdquo uma caixa de diaacutelogo eacute aberta(4) onde eacute possiacutevel adicionar o tempo que o usuaacuterio esperou na fila Primeiro eacute escolhido orestaurante depois a data e hora que a pessoa chegou na fila e por fim o tempo de esperaem minutos Ao tocar em ldquoEnviar Feedback rdquo os dados satildeo incluiacutedos no banco de dados eatualizados para os outros usuaacuterios Assim eacute apicado o conceito de Crowdsourcing no apli-cativo

Ao tocar em um item da lista de restaurantes seraacute aberta a tela de detalhes de um res-taurante (5) na qual eacute possiacutevel ver com mais clareza os tempos de trajeto e espera o tempototal o endereccedilo do estabelecimento e um pequeno mapa centrado no local Pressionandoo botatildeo ldquoDireccedilotildeesrdquo o usuaacuterio seraacute redirecionado ao aplicativo de mapas de sua preferecircnciano caso do exemplo (8) o Google Maps jaacute traccedilando a rota da localizaccedilatildeo do usuaacuterio para oestabelecimento em questatildeo

Novamente na tela inicial tocando no iacutecone de lupa eacute possiacutevel realizar uma busca digi-tando o nome do estabelecimento na caixa de texto a qual exibe sugestotildees dependendo doque foi digitado Ao clicar em um dos resultados da busca o usuaacuterio eacute novamente direcionadopara a tela de detalhes do restaurante (5)

Tambeacutem eacute possiacutevel tocar no iacutecone de mapa na tela inicial onde seraacute mostrado um mapacentrado na localizaccedilatildeo do usuaacuterio

Ao ficar parado por um tempo em um mesmo local proacuteximo a um estabelecimentocadastrado o usuaacuterio eacute perguntado em uma notificaccedilatildeo quanto tempo ele permaneceu nafila Ao tocar na notificaccedilatildeo a caixa de diaacutelogo para feedback do usuaacuterio seraacute aberta (4) jaacutecom o restaurante preenchido e apoacutes o feedback a janela seraacute fechada e os dados enviadosao banco de dados

46 Implementaccedilatildeo do banco de dadosO banco de dados do aplicativo foi modelado e populado em forma de aacutervore (Fi-

gura 419) de forma a facilitar o acesso aos dados necessaacuterios ao aplicativo No primeironiacutevel estatildeo os ids dos restaurantes Cada id de restaurante guarda a localizaccedilatildeo (latitudelongitude) do restaurante o nome o endereccedilo e um objeto fila O objeto fila guarda todos osdias da semana (domingo a saacutebado) e cada dia da semana possui 24 campos um para cadahora do dia Cada hora possui o tempo meacutedio de espera da fila naquela hora e um peso paraesse tempo O peso eacute um valor que aumenta de acordo com o nuacutemero de feedbacks dadospara que o novo valor do tempo meacutedio seja calculado de forma consistente

Modelamos o banco de dados de uma forma que respeitasse uma hierarquia de dados

42 DESENVOLVIMENTO DO PROJETO 46

Figura 419 Aacutervore que ilustra a organizaccedilatildeo de um restaurante no banco de dados

Com o banco de dados jaacute populado o aplicativo faz consultas e atualizaccedilotildees de dadosConsultas satildeo feitas ao criar a tela de listagem de restaurantes e de detalhes de um restau-rante consultado As atualizaccedilotildees satildeo feitas quando o usuaacuterio manda o feedback de tempo deespera em um estabelecimento em determinado horaacuterio o aplicativo calcula a nova meacutedia eatualiza o campo do respectivo horaacuterio

Capiacutetulo 5

Conclusatildeo

Ao longo dos capiacutetulos deste trabalho pocircde-se acompanhar todo o processo de criaccedilatildeo edesenvolvimento do aplicativo que apoacutes finalizado foi batizado com o nome Queue

Comeccedilando com um problema para o qual o grupo almejava oferecer uma soluccedilatildeoacabou-se por adentrar-se um pouco no campo da Estatiacutestica e estudar diversas metodo-logias que poderiam ser uacuteteis para fornecer um caacutelculo de previsatildeo de espera meacutedia porperiacuteodo aplicaccedilatildeo da teoria das filas e utilizaccedilatildeo de redes neurais

Atraveacutes de uma parceria com a empresa GetIn obteve-se acesso a uma grande quantidadede dados e foi possiacutevel utilizaacute-los em anaacutelises feitas nas metodologias escolhidas conseguindoassim resultados relevantes Por meio destes foi feita a escolha de um dos meacutetodos para ocaacutelculo da previsatildeo de filas a meacutedia por periacuteodo

Aleacutem desses estudos ao longo do ano o grupo aprendeu a desenvolver para a plata-forma Android sobre a qual nenhum dos integrantes tinha conhecimento preacutevio Tambeacutemfoi possiacutevel aprender e utilizar a metodologia aacutegil com Scrum para guiar o processo de de-senvolvimento

Ao fim do ciclo de desenvolvimento conseguiu-se entregar um aplicativo em funciona-mento que fornece a previsatildeo de espera no instante da consulta de estabelecimentos cadas-trados no banco de dados armazenado na nuvem

Na versatildeo atual do aplicativo natildeo foi implementado um sistema para o cadastro de novosestabelecimentos Isso soacute eacute possiacutevel atraveacutes da inserccedilatildeo direta no banco de dados atraveacutes dainterface fornecida pelo console do Firebase Atualmente estatildeo cadastrados 5 restaurantesos quais foram visitados durante o desenvolvimento do projeto Para que o cadastro deestabelecimentos escale seria necessaacuterio a implementaccedilatildeo de uma funcionalidade que permitaao usuaacuterio adicionar novos estabelecimentos a partir de locais disponiacuteveis na API de locaisda Google

43

45

46 APEcircNDICE A

Apecircndice A

Dados coletados

Figura A1 Dados de tempo de espera para grupos de tamanhos variados para cada horaacuterio e emcada dia da semana obtidos em entrevista em restaurantes Outback Steakhouse Shopping Uniatildeo nomecircs de outubro

Referecircncias Bibliograacuteficas

[1] Backpropagation httpmbpsourceforgenet Accesso em Janeiro 2017 14

[2] Bitbucket httpsbitbucketorgproduct Accesso em Dezembro 2016 19

[3] Crowdsourcing httpswwwmerriam-webstercomdictionarycrowdsourcing Ac-cesso em Novembro 2016 21

[4] Designing a survey httpwwwsciencebuddiesorgscience-fair-projectsproject_ideasSoc_surveyshtml Accesso em Outubro 2016 4 23

[5] Facebook httpswwwfacebookcom Accesso em Novembro 2016 24

[6] Firebase httpsfirebasegooglecom Accesso em Agosto 2016 20

[7] Getin app httpswwwgetinappcombrhomesao-paulo Accesso em Novembro2016 9

[8] Git 11 primeiros passos - sobre controle de versatildeo httpsgit-scmcombookpt-brv1Primeiros-passos-Sobre-Controle-de-Vers Accesso em Novembro 2016 19

[9] Google forms httpsdocsgooglecomforms Accesso em Novembro 2016 23

[10] Guia definitivo do project model canvas Project Builder 3

[11] Jsonorg introducing json httpwwwjsonorg Accesso em Novembro 2016 17

[12] Manifesto para desenvolvimento Aacutegil de software httpagilemanifestoorgisoptbrmanifestohtml Accesso em Novembro 2016 5

[13] Nosql httpsenwikipediaorgwikiNoSQL Accesso em Novembro 2016 20

[14] Outback steakhouse httpswwwoutbackcombrhome Accesso em Novembro 20169

[15] Restful api development with lumen microframework httpsbelitsoftcomlaravel-development-servicesapi-development Accesso em Novembro 2016 17

[16] Scrum httpswwwatlassiancomagilescrum Accesso em Novembro 2016 5

[17] Smartphone os market share 2016 q2 httpwwwidccomprodservsmartphone-os-market-sharejsp Accesso em Novembro 2016 15

[18] Smartphone os sales market share kantar worldpanel comtech httpwwwkantarworldpanelcomsmartphone-os-market-share Accesso em Novembro 2016 15

[19] Sourcetree httpswwwsourcetreeappcom Accesso em Dezembro 2016 19

47

48 REFEREcircNCIAS BIBLIOGRAacuteFICAS

[20] Sql httpsptkhanacademyorgcomputingcomputer-programmingsql Accesso emDezembro 2016 20

[21] Trello httpstrellocom Accesso em Novembro 2016 6

[22] Usability test httpsenwikipediaorgwikiUsability_testing Accesso em Novembro2016 36

[23] Versionone 2012 agile dev survey httpswwwversiononecompdf7th-Annual-State-of-Agile-Development-Surveypdf Accesso em Novembro 2016 5

[24] Waze httpswwwwazecom Accesso em Novembro 2016 1

[25] What is an open source httpsopensourcecomresourceswhat-open-source Accessoem Novembro 2016 15

[26] Xml tutorial httpwwww3schoolscomxml Accesso em Novembro 2016 17

[27] Paulo F Cabral dos Anjos Jr Aron Ifanger Maciel Christopher Silva de Paacutedua Com-posiccedilatildeo de carteiras de accedilotildees utilizando modelo de redes neurais artificiais e modelo derisco e retorno de Markowitz 2012 14

[28] Google Distance matrix api documentation httpsdevelopersgooglecommapsdocumentationdistance-matrix Accesso em Novembro 2016 17

[29] Alan Klement Designing features using job stories httpsblogintercomcomusing-job-stories-design-features-ui-ux Accesso em Novembro 2016 6

[30] Azmat Nafees Queuing theory and its application analysis of the sales checkout opera-tion in ica supermarket httpwwwstatisticsduseessaysD07ENafeespdf Accessoem Novembro 2016 12

[31] Eric Ries A Startup Enxuta Lua de papel primeira ediccedilatildeo edition 2012 3

  • Introduccedilatildeo
    • Motivaccedilatildeo
    • Trabalho Proposto
    • Estrutura da monografia
      • Estudos Preliminares
        • Desenvolvimento de Startups
          • Desenvolvimento de Questionaacuterios
            • Metodologia Aacutegil
            • Jobs to be done
            • Caacutelculo da previsatildeo do tempo de espera na fila
              • Descriccedilatildeo do problema
              • Meacutetodos de caacutelculo da espera
                  • Tecnologias utilizadas
                    • O sistema Android
                      • Organizaccedilatildeo de uma aplicaccedilatildeo Android
                        • JSON
                        • Google APIs
                        • Localizaccedilatildeo do Usuaacuterio
                        • Controle de Versatildeo
                        • Banco de dados
                          • Firebase
                            • Crowdsourcing
                              • Desenvolvimento do Projeto
                                • Pesquisa de Mercado
                                  • Pesquisa com o usuaacuterio
                                    • Projeto do Aplicativo
                                    • Aplicaccedilatildeo dos meacutetodos de caacutelculo de espera
                                      • Aplicando a meacutedia por periacuteodo
                                      • Aplicando teoria das filas
                                      • Aplicando redes neurais
                                      • Conclusatildeo sobre os meacutetodos estudados
                                        • Definiccedilatildeo da Interface do aplicativo
                                        • Explicaccedilatildeo das funcionalidades
                                        • Implementaccedilatildeo do banco de dados
                                          • Conclusatildeo
                                          • Dados coletados
                                          • Referecircncias Bibliograacuteficas

18 TECNOLOGIAS UTILIZADAS 35

uma API web logo utiliza-se um request http para realizar uma consulta

Por exemplo o request

httpsmapsgoogleapiscommapsapidistancematrixjsonorigins=Seattleampdestinations=Victoria+BCampkey=[user_key]

retorna o JSON

1 2 des t ina t i on_addre s s e s [ Vic tor ia BC Canada ] 3 o r i g in_addre s s e s [ Sea t t l e WA EUA ] 4 rows [5 6 e lements [7 8 d i s t anc e 9 text 172 km

10 value 17166811 12 durat ion 13 text 4 horas 40 minutos 14 value 1680915 16 s t a tu s OK17 18 ]19 20 ] 21 s t a tu s OK22

no qual eacute possiacutevel obter o tempo de trajeto em segundos

∙ Google Maps Android API Esta API eacute utilizada para habilitar o uso de mapasda Google integrados agrave aplicaccedilatildeo jaacute disponiacutevel com todas as funcionalidades de zoome arrastar presentes no aplicativo nativo permitindo tambeacutem a personalizaccedilatildeo comoa adiccedilatildeo de pontos definidos pelo usuaacuterio ao mapa

34 Localizaccedilatildeo do UsuaacuterioOutro serviccedilo que foi utilizado com o intuito de obter o tempo de trajeto e a lista ordenada

de forma personalizada de restaurantes foi a localizaccedilatildeo do usuaacuterio que eacute obtida atraveacutes doGPS presente nos smartphones Um objeto de localizaccedilatildeo eacute criado e realiza a comunicaccedilatildeocom o serviccedilo de localizaccedilatildeo do aparelho Ao obter a localizaccedilatildeo ele lanccedila um evento quepode ser acessado por outras partes da aplicaccedilatildeo obtendo a localizaccedilatildeo mais atualizada dodispositivo

36 CONTROLE DE VERSAtildeO 19

35 Controle de VersatildeoControle de versatildeo eacute uma praacutetica usada para manter a organizaccedilatildeo do coacutedigo e do seu de-

senvolvimento quando muitos desenvolvedores colaboram conjuntamente Existem softwaresque auxiliam essa organizaccedilatildeo registrando todas as mudanccedilas feitas ao longo do processo eque possui recursos que permitem que vaacuterios usuaacuterios trabalhem nos mesmos arquivos semperda de informaccedilotildees

No caso do Git [8] o projeto fica organizado em uma estrutura de aacutervore onde cadacommit (checkpoints criados pelos membros do grupo durante o processo) eacute marcado porum noacute para onde se pode retornar quando necessaacuterio Existem tambeacutem estruturas chama-das branches que satildeo bifurcaccedilotildees na estrutura para que partes do projeto sejam criadasseparadamente sem interferir com a linha principal As branches depois satildeo unidas agrave linhaprincipal atraveacutes do comando merge

Neste projeto o serviccedilo de controle de versatildeo utilizado foi o Bitbucket [2] (que eacute um ser-viccedilo web-based de controle de versatildeo que utiliza Git) com auxiacutelio do software SourceTree[19]que eacute uma interface graacutefica para os serviccedilos do Bitbucket onde eacute possiacutevel visualizar com maisfacilidade as fases do desenvolvimento do projeto e realizar os comandos mais intuitivamente

Figura 32 Interface do SourceTree que mostra o controle de versionamento do projeto

36 Banco de dadosCom o intuito de deixar o aplicativo mais completo guardando informaccedilotildees dos usuaacuterios

e dos estabelecimentos optou-se por utilizar-se um banco de dados Alguns exemplos de

20 TECNOLOGIAS UTILIZADAS 36

banco de dados aprendidos no curso Laboratoacuterio de Banco de Dados foram

∙ SQL (Structured Query Language - Linguagem de Consulta Estruturada)[20] umalinguagem para atualizar deletar e requisitar informaccedilotildees atraveacutes de consultas emtabelas que possuem relaccedilatildeo entre si

∙ noSQL[13] um banco de dados que armazena e recupera informaccedilotildees modeladas deuma forma onde natildeo satildeo usadas tabelas relacionais

Como este uacuteltimo natildeo foi o foco da disciplina por falta de tempo decidiu-se por utilizaacute-lopara que o grupo pudesse aprender melhor esse modelo

Outra decisatildeo tomada foi a hospedagem dos dados na nuvem ou seja colocaacute-los em umservidor que natildeo seja local e conseguir acessaacute-los atraveacutes de uma conexatildeo via internet Dessemodo os dados sempre estaratildeo disponiacuteveis para serem consultados

361 Firebase

Buscando-se atender as decisotildees tomadas sobre o banco de dados procuramos um serviccedilode banco de dados da Google por conter ampla integraccedilatildeo com a plataforma de desenvolvi-mento Android por ser conhecido bastante utilizado e por possuir uma ampla comunidadede desenvolvedores dispostos a oferecer auxiacutelio em foacuteruns de discussatildeo de coacutedigos

Para atender esses requisitos escolheu-se o Firebase Realtime Database[6] desenvolvido edisponibilizado pela Google que consiste em um banco de dados noSQL com armazenamentona nuvem Esse serviccedilo armazena os dados do usuaacuterio no servidor da Google em formatoJSON e a cada alteraccedilatildeo sincroniza em tempo real com todos os clientes conectados

O grupo pode observar as seguintes vantagens de se trabalhar com a ferramenta existea sincronizaccedilatildeo em tempo real dos dados de todos os clientes e sua disponibilidade mesmocom o aplicativo offline ou seja quando o aplicativo natildeo estiver conectado a internet osdados do dispositivo moacutevel seratildeo armazenados e sincronizados com o banco de dados assimque a conexatildeo estiver disponiacutevel novamente Aleacutem disso os desenvolvedores possuem acessoa um console online (figura 33) onde o JSON eacute mostrado numa interface interativa de umaforma mais amigaacutevel e no qual eacute permitido editaacute-lo facilmente

37 CROWDSOURCING 21

Figura 33 Console online do Firebase onde os dados satildeo mostrados de forma mais amigaacutevel eintuitiva

Outra observaccedilatildeo feita foi que o Firebase Realtime Database funciona como o esperadose ele guardar uma coacutepia local dos dados em um arquivo JSON no celular Poreacutem isso natildeofoi visto como um problema pois como essa coacutepia pode ser salva em um arquivo texto oespaccedilo utilizado diminui consideravelmente

Na primeira vez que os dados satildeo criados e todas as vezes em que os dados forem atua-lizados por algum dispositivo moacutevel eacute enviada uma atualizaccedilatildeo que seraacute recebida atraveacutes delisteners por todos os aparelhos que utilizam o aplicativo para que eles atualizem seus res-pectivos JSONs Listeners satildeo interfaces de comunicaccedilatildeo que executam uma seacuterie de accedilotildeesassim que um outro evento esperado acontece

37 CrowdsourcingO termo Crowdsourcing tem origem nas palavras da liacutengua inglesa Crowd (multidatildeo) e

Outsourcing (terceirizaccedilatildeo) e eacute definido pelo dicionaacuterio Merriam Webster como A praacuteticade obtenccedilatildeo de serviccedilos ideias ou conteuacutedo solicitando contribuiccedilotildees de grandes grupos depessoas e especialmente da comunidade online [3] Esta praacutetica eacute utilizada para que sejapossiacutevel agrave comunidade contribuir com dados para algum programa ou serviccedilo como no apli-cativo Waze do qual a principal fonte de dados de tracircnsito acidentes e radares eacute obtida pormeio dos proacuteprios usuaacuterios

Capiacutetulo 4

Desenvolvimento do Projeto

Este capiacutetulo aborda o processo de desenvolvimento do projeto iniciado com o preen-chimento do diagrama Canvas e uma pesquisa de mercado direcionada ao usuaacuterio A partirdas informaccedilotildees coletadas foi possiacutevel projetar um aplicativo que atendesse as necessidadesexpostas pela pesquisa e selecionar as tecnologias necessaacuterias Tambeacutem eacute abordada a aplica-ccedilatildeo dos diferentes meacutetodos de caacutelculo da previsatildeo de tempo de espera que foram estudadose explicados no Capiacutetulo 2 Por fim satildeo expostas as diferentes versotildees do aplicativo duranteo processo e seus detalhes

41 Pesquisa de MercadoAntes de iniciar-se o desenvolvimento praacutetico algumas questotildees foram levantadas se

um aplicativo com as funcionalidades escolhidas seria de alguma forma uacutetil para o usuaacuterioe se sim qual metodologia deveria ser usada para que este produto fosse entregue o maiscompleto possiacutevel ateacute o final do ano Para responder a primeira pergunta desenvolveu-seum questionaacuterio

411 Pesquisa com o usuaacuterio

O questionaacuterio foi desenvolvido para avaliar a viabilidade do aplicativo e suas funciona-lidades e foi criado utilizando-se o Google Forms [9] Essa eacute uma ferramenta desenvolvidapelo Google que possibilita a criaccedilatildeo de formulaacuterios contendo diversos formatos de pergun-tas tanto dissertativas quanto de muacuteltipla escolha

Seguindo os princiacutepios de desenvolvimento de questionaacuterios [4] o conjunto de perguntasfoi mantido curto simples e de faacutecil entendimento Tambeacutem variou-se o tipo de questotildeesentre estruturadas (questotildees com respostas em forma de alternativas) e desestruturadas(questotildees com respostas em formato texto) seguindo esses mesmos princiacutepios para captarmelhor as informaccedilotildees dos entrevistados e evitar erros de entendimento

Com as respostas do questionaacuterio tinha-se o intuito de traccedilar um possiacutevel puacuteblico alvoconhecer seu modo de uso de dispositivos moacuteveis e validar a aplicabilidade de diferentesfuncionalidades pretendidas inicialmente sendo essas engajamento do usuaacuterio atraveacutes denotificaccedilotildees do sistema aceitaccedilatildeo de sugestotildees de locais alternativos avaliaccedilatildeo da existecircnciado problema que queremos resolver (se este aplicativo supre uma necessidade real do usuaacute-rio) e aceitaccedilatildeo do aplicativo

23

24 DESENVOLVIMENTO DO PROJETO 41

Para a divulgaccedilatildeo redes sociais como Facebook [5] e sistemas de mensagem instantacircneascomo WhatsApp foram usados e o envio de respostas foi restrito ateacute trecircs semanas apoacutes suaprimeira postagem Neste periacuteodo foram obtidas 210 respostas as quais ajudaram a definiros aspectos do sistema a ser desenvolvido

O questionaacuterio foi dividido em duas subseccedilotildees perfil do usuaacuterio e funcionalidade Comelas obteve-se os seguintes resultados

41 PESQUISA DE MERCADO 25

Questatildeo 1

Figura 41 Graacutefico pizza da distribuiccedilatildeo das respostas em relaccedilatildeo a idade dos pesquisados

As faixas de idade apresentadas estatildeo desbalanceadas por natildeo terem a mesma quantidadede anos em cada uma poreacutem essa divisatildeo foi pensada levando-se em conta a fluecircncia comtecnologia que cada idade possui Com o resultado verificou-se que do puacuteblico alcanccediladocom a pesquisa a maioria estaacute na faixa de 18 a 25 anos de idade assumida como parcelacom maior conhecimento tecnoloacutegico

Questatildeo 2

Figura 42 Graacutefico pizza da distribuiccedilatildeo das respostas em relaccedilatildeo ao sistema operacional

Esta questatildeo foi pensada para medir a porcentagem de cada sistema operacional pre-sente nos celulares do puacuteblico Com ela descobriu-se que 639 das pessoas dentro desse

26 DESENVOLVIMENTO DO PROJETO 41

grupo possuem o sistema Android enquanto 234 possuem iOS e 38 Windows phoneEssa pergunta foi incluiacuteda para um melhor direcionamento do desenvolvimento do aplicativo

Uma questatildeo levantada ao aplicar esse questionaacuterio foi a dificuldade que algumas pessoasencontraram para identificar a versatildeo do proacuteprio aparelho Poreacutem para manter a consistecircnciadas respostas decidiu-se natildeo mudar nada nesta questatildeo para remediar isso

Questatildeo 3

Figura 43 Graacutefico em barras da distribuiccedilatildeo de frequecircncias mensais de cada local analisado

41 PESQUISA DE MERCADO 27

Questatildeo 4

Figura 44 Graacutefico em pizza da distribuiccedilatildeo de interesse do usuaacuterio no tempo de espera de cadalocal

A princiacutepio viu-se muitas possiacuteveis aplicaccedilotildees para a previsatildeo de tempo de espera Paraentender qual seria a prioridade do puacuteblico as questotildees acima foram incluiacutedas A primeiraverificou a frequecircncia de visitas em alguns locais e a segunda serviu para analisar qualestabelecimento despertava mais interesse nos entrevistados quanto ao quesito fila Nos doiscasos restaurantes se destacaram com o maior interesse

Questatildeo 5

Figura 45 Graacutefico em barras da distribuiccedilatildeo de interesse do usuaacuterio por cada item avaliado

Para acompanhar o dado de espera e fornecer mais informaccedilotildees relevantes ao usuaacuteriosem potencial perguntou-se quais outras informaccedilotildees eles acham interessante saber sobre umdeterminado estabelecimento Com isso descobriu-se que a faixa de preccedilo o trajeto ateacute olocal e o cardaacutepio seriam dados importantes de se obter juntamente com o tempo de espera

28 DESENVOLVIMENTO DO PROJETO 41

Questatildeo 6O que vocecirc costuma fazer para evitar filasNeste ponto testou-se se a soluccedilatildeo proposta atraveacutes do aplicativo resolveria o problema dousuaacuterio de uma forma melhor do que a soluccedilatildeo atualmente utilizada Para isso foi perguntadoo que as pessoas fazem para evitar filas e as principais respostas foram

∙ Evitar horaacuterios de pico

∙ Chegar cedo

∙ Ir em outro lugar caso uma fila seja encontrada

∙ Tentar realizar reservas antecipadamente

∙ Se distrair com livroscelular

Notou-se que as soluccedilotildees utilizadas atualmente natildeo suprem as necessidades dos entre-vistados pois mesmo em horaacuterios natildeo convencionais pode-se encontrar filas ou quandodecide-se esperar na fila muito tempo eacute perdido Concluiu-se que a soluccedilatildeo proposta a par-tir do aplicativo resolve de forma mais abrangente o problema pois ajuda o usuaacuterio a evitarhoraacuterios de pico inesperados

Questatildeo 7

Figura 46 Graacutefico em pizza da distribuiccedilatildeo do meio de transporte utilizado pelos usuaacuterios

Essa questatildeo foi formulada com o objetivo de verificar quais meios de transporte seriamincluiacutedos com previsatildeo de tempo de trajeto no aplicativo Foi verificado que a maioria dosentrevistados utilizam transporte puacuteblico seguido por carro

41 PESQUISA DE MERCADO 29

Questatildeo 8

Figura 47 Graacutefico em pizza da distribuiccedilatildeo do interesse do usuaacuterio pela informaccedilatildeo fornecida

Questatildeo 9

Figura 48 Graacutefico em pizza da distribuiccedilatildeo de quantidade de quilocircmetros que o usuaacuterio sedeslocaria para ir a um local com menos fila

Com essas questotildees foi verificado que algo importante para o usuaacuterio eacute saber de outrosestabelecimentos que possam oferecer tempos de espera menores nas redondezas de onde ousuaacuterio se encontra que eacute uma das funcionalidades que desejaacutevamos utilizar no sistema

30 DESENVOLVIMENTO DO PROJETO 41

Questatildeo 10

Figura 49 Graacutefico em barras da distribuiccedilatildeo de sentimento do usuaacuterio em relaccedilatildeo a notificaccedilatildeode aplicativos

Questatildeo 11

Figura 410 Graacutefico em pizza da distribuiccedilatildeo de opiniatildeo do usuaacuterio sobre desabilitar notificaccedilotildeesem celular

42 PESQUISA DE MERCADO 31

Questatildeo 12

Figura 411 Graacutefico em pizza da distribuiccedilatildeo de opiniatildeo do usuaacuterio sobre habilitar GPS emcelular

A ideia inicial era poder usar o GPS para verificar a localizaccedilatildeo do usuaacuterio e enviarnotificaccedilotildees quando este estivesse parado nas proximidades de algum dos estabelecimentoscadastrados Para que essa funcionalidade possa existir eacute necessaacuterio que o aplicativo tenhaacesso agrave localizaccedilatildeo precisa da pessoa atraveacutes do GPS ou internet ateacute mesmo quando natildeoestiver aberto Aleacutem disso tambeacutem eacute necessaacuterio que as notificaccedilotildees estejam habilitadas parafinalizar esta interaccedilatildeo Entatildeo as perguntas 10 11 e 12 foram incluiacutedas no questionaacuterio Ob-servando as respostas foi possiacutevel verificar que 295 das pessoas que responderam deixamambas as funcionalidades habilitadas (GPS e notificaccedilotildees) Com isso pudemos prosseguircom essa ideia e tambeacutem pensar em possiacuteveis alternativas de interaccedilatildeo e engajamento como usuaacuterio

Por conta dessa pesquisa ter sido compartilhada atraveacutes das contas das redes sociais ecomunicadores dos componentes deste grupo sabe-se que este pode apresentar um resultadoviesado mas que mesmo assim natildeo deve ser desconsiderado e que muito ajudou a sanar asduacutevidas iniciaisComo resultado traccedilamos o perfil do entrevistado

∙ Faixa etaacuteria predominante entre 18 e 30 anos

∙ Possui sistema operacional Android (versotildees 4 5 e 6)

∙ Vai a restaurantes com certa frequecircncia mensal resultando em interesses sobre infor-maccedilotildees relacionadas a esse estabelecimento

∙ Costuma chegar cedo ou evitar os horaacuterios de pico para evitar filas nos locais

∙ Carro e transporte coletivo satildeo os principais meios de transporte

∙ Se deslocaria para um estabelecimento semelhante que possui menos fila contanto queeste fique num raio de 2km de distacircncia

32 DESENVOLVIMENTO DO PROJETO 43

42 Projeto do AplicativoO grupo comeccedilou o projeto com o preenchimento do diagrama Canvas(figura 412) apre-

sentado na Seccedilatildeo 21 Desse modo foi adquirida uma ideia mais consistente e uma base paracomeccedilar a implementaccedilatildeo

Figura 412 Diagrama Canvas preenchido pelo grupo

Com o modelo de negoacutecios definido e com base no resultado da pesquisa com o usuaacuterioapresentada na seccedilatildeo seguinte foram aplicadas pequenas mudanccedilas no projeto para melhoradequar-se agraves necessidades e ao perfil do puacuteblico alvo

Para o desenvolvimento foi utilizado um meacutetodo aacutegil baseado no scrum com sprints de3 a 4 semanas devido agrave disponibilidade dos membros do grupo Os encontros natildeo eram diaacute-rios como recomendado para o meacutetodo scrum tambeacutem em razatildeo da disponibilidade Haviamstand ups (discussotildees raacutepidas no comeccedilo de cada encontro) e retrospectivas ao final de cadasprint A cada sprint eram selecionadas histoacuterias e tarefas para serem executadas e caso natildeofossem concluiacutedas ao final da iteraccedilatildeo eram inseridas ao backlog e feitas no sprint seguinte

43 Aplicaccedilatildeo dos meacutetodos de caacutelculo de espera

431 Aplicando a meacutedia por periacuteodo

Aplicando-se no trecho abaixo a teacutecnica desenvolvida na Seccedilatildeo 242 para uma queryrealizada no dia 19082016 no intervalo de 2040 - 2055 analisa-se a semana anterior quepossua tais intervalos Assim o saacutebado dia 06082016 seraacute selecionado

43 APLICACcedilAtildeO DOS MEacuteTODOS DE CAacuteLCULO DE ESPERA 33

Entrada Qtd Pessoas Notificado Espera

6816 2043 2 862016 2053 1606

6816 2044 2 862016 2055 674

6816 2048 2 862016 2056 528

6816 2048 2 862016 2057 520

6816 2051 2 862016 2107 1118

6816 2051 3 862016 2110 1305

6816 2052 2 862016 2110 1273

6816 2052 2 862016 2111 1179

6816 2053 2 862016 2112 1217

6816 2053 2 NULL 59

6816 2054 3 862016 2119 1541

6816 2055 2 862016 2117 1444

6816 2055 2 862016 2120 1570

6816 2055 2 862016 2122 1613

Tabela 41 Trecho do dia 06082016 entre os horaacuterios das 2043 agraves 2055 um intervalo de 12minutos retirado dos dados da empresa Get In

Com esses dados obteve-se a meacutedia de espera de 1080 segundos (18 minutos) a qualseria sugerida para o usuaacuterio com a busca e desvio padratildeo de 465144719 segundos (775 mi-nutos) Dentro desse intervalo tem-se como maacuteximo tempo de espera 1613 segundos (2688minutos) e como miacutenimo 59 segundos (1 minuto) Analisando-se os dados do dia 19082016no mesmo periacuteodo temos

34 DESENVOLVIMENTO DO PROJETO 43

Entrada Pessoas Notificado Espera Erro previsatildeo Erro p 2 pessoas

19816 2043 2 8192016 2051 544 -563 522

19816 2043 2 8192016 2052 605 -502 461

19816 2044 2 8192016 2056 723 -384 343

19816 2046 4 8192016 2119 1988 881 X

19816 2048 2 8192016 2102 919 188 147

19816 2051 2 8192016 2103 821 286 245

19816 2051 3 8192016 2108 1773 666 X

19816 2053 2 8192016 2110 1083 24 -17

19816 2053 2 8192016 2111 1105 2 -39

19816 2053 2 8192016 2112 1169 62 -103

19816 2055 2 8192016 2114 1447 340 -381

Tabela 42 Trecho do dia 19082016 entre os horaacuterios das 2043 agraves 2055um intervalo de 12minutos retirado dos dados da empresa Get In

Ou seja se um grupo chegasse dentro desse periacuteodo e a previsatildeo dada fosse a meacutediaobtida anteriormente o erro calculado pela diferenccedila entre o tempo sugerido e o real tempode espera estaria no intervalo de 15 minutos para menos ou 8 minutos para mais Sendoesse um valor aceitaacutevel

Um proacuteximo passo eacute a restriccedilatildeo dos registros a grupos com 2 integrantes Com tal restri-ccedilatildeo a previsatildeo de espera eacute de 1066 segundos (1776 minutos) Aplicando essa nova meacutedia aosregistros com 2 integrantes do dia 19082016 obteacutem-se um erro (Coluna 6 - erro previsatildeopara 2 pessoas) menor do que o anterior O intervalo do erro calculado neste caso seria de 522segundos (87 minutos) para mais e 381 segundos (635 minutos) para menos Este resultadoeacute ainda mais favoraacutevel mostrando que a inclusatildeo de mais filtros para o caacutelculo da previsatildeomelhorou o tempo previsto

432 Aplicando teoria das filas

A teoria das filas (Seccedilatildeo 242) eacute uma ferramenta muito completa que calcula muitos dadosuacuteteis para a previsatildeo de espera Contudo por conta da necessidade de informaccedilotildees sobreo tempo de atendimento a qual natildeo estaacute contida no banco utilizado esta teoria natildeo podeser aplicada neste caso Poreacutem esse dado pode ter um valor assumido para que a utilizaccedilatildeodessa teoria fosse possiacutevel entretanto a sua precisatildeo ficaria comprometida e imprevisiacutevel

433 Aplicando redes neurais

Para aplicar o que foi estudado na Seccedilatildeo 242 foi executado o software com o mecircs deAgosto como teste o mecircs de Setembro como treino e o limite do erro quadraacutetico como 001 eobteve-se a tabela presente no apecircndice B Na tabela podemos ver o tempo de fila esperadoou seja o tempo contido na tabela do mecircs de Setembro o tempo que o algoritmo deu comoresposta baseado no mecircs de Agosto e o erro entre eles respectivamente

44 DEFINICcedilAtildeO DA INTERFACE DO APLICATIVO 35

Figura 413 Software Multiple Back-Propagation com a configuraccedilatildeo escolhida para os dadosdisponiacuteveis

Mesmo o erro se mantendo em 0018 os dados obtidos possuem um erro padratildeo de 15minutos Se mais dados forem adicionados o criteacuterio de parada pode ser atingido e assimuma previsatildeo melhor pode ser alcanccedilada

434 Conclusatildeo sobre os meacutetodos estudados

Dentre todas as possibilidades estudadas visualizamos na meacutedia por periacuteodo a melhoropccedilatildeo assumindo os dados disponiacuteveis para teste Se mais paracircmetros fossem fornecidoscomo o tempo de atendimento a teoria das filas seria uma boa opccedilatildeo para fornecer a pre-visatildeo de espera E se mais dados estivessem disponiacuteveis as redes neurais conseguiriam umaaproximaccedilatildeo melhor e assim seria uma boa opccedilatildeo tambeacutem

44 Definiccedilatildeo da Interface do aplicativoComo um primeiro protoacutetipo foi desenvolvida uma interface simples que tinha como tela

de iniacutecio um mapa com um campo para buscas na parte superior

36 DESENVOLVIMENTO DO PROJETO 44

Figura 414 Fluxo de telas do primeiro protoacutetipo

Ao efetuar uma busca por algum estabelecimento uma tela mostrando o tempo de esperaaproximado da fila no local era exibida junto com bototildees que permitiam selecionar o meiode transporte visualizar outras opccedilotildees ou dar iniacutecio a rota ateacute o local desejado Tambeacutemhavia uma notificaccedilatildeo para quando a pessoa estivesse parada proacutexima a um restaurantecadastrado que direcionaria o usuaacuterio a uma tela com um cronocircmetro do tempo de esperana fila

Para testar essa visualizaccedilatildeo escolhemos algumas pessoas e realizamos um teste deusabilidade[22] este teste eacute feito da seguinte forma

44 DEFINICcedilAtildeO DA INTERFACE DO APLICATIVO 37

Uma contextualizaccedilatildeo eacute feita para o voluntaacuterio e entatildeo uma tarefa eacute passada para sercompletada Os integrantes do grupo observam dificuldades enfrentadas pelo entrevistado etomam notas Esse teste eacute repetido algumas vezes e seu resultado eacute coletado para avaliaccedilatildeoe modificaccedilatildeo das funcionalidades

Figura 415 Tela de detalhes de um restaurante(segunda versatildeo)

Notou-se que algumas funcionalidadespareceram confusas e natildeo intuitivas porexemplo natildeo ficou claro se o tempo mos-trado era de trajeto ou de espera na filanem qual era o meio de transporte utili-zado

Logo esse protoacutetipo foi reformuladocom o intuito de melhorar a experi-ecircncia do usuaacuterio com o nosso aplica-tivo

Foram colocados aleacutem do tempo deespera da fila o tempo que o usuaacuteriolevaria para chegar ateacute o local selecio-nado (conforme o tipo de transporte es-colhido) e a quantidade estimada de pes-soas na fila O tempo total (espera so-mado ao tempo de deslocamento) ga-nhou destaque entre as informaccedilotildees doestabelecimento e o botatildeo que direcionao usuaacuterio ao trajeto ficou mais especiacute-fico

Tambeacutem cogitou-se a possibilidade deadicionar login e um perfil de usuaacuteriojunto com uma lista de restaurantes favo-ritos

O fluxo das telas deste novo protoacutetipo ficou como mostra o esquema a seguir

38 DESENVOLVIMENTO DO PROJETO 44

Figura 416 Fluxo de telas do segundo protoacutetipo

44 DEFINICcedilAtildeO DA INTERFACE DO APLICATIVO 39

Figura 417 Tela de detalhes de um restaurante(terceira versatildeo)

Apoacutes outras avaliaccedilotildees mais algumaspequenas alteraccedilotildees foram realizadas nainterface Foi decidido que seria inviaacute-vel estimar o nuacutemero de pessoas nafila entatildeo essa funcionalidade foi remo-vida

Notificaccedilotildees foram adicionadas paraquando o usuaacuterio estiver parado na aacutereado restaurante para que ele possa con-tribuir com informaccedilotildees sobre a fila quepegou aleacutem de um botatildeo de contri-buiccedilatildeo ter sido inserido na tela ini-cial

40 DESENVOLVIMENTO DO PROJETO 45

O fluxo de telas do aplicativo atual ficou da seguinte forma

Figura 418 Fluxo de telas do terceiro protoacutetipo

46 EXPLICACcedilAtildeO DAS FUNCIONALIDADES 41

45 Explicaccedilatildeo das funcionalidadesEsta seccedilatildeo explica as funcionalidades do produto utilizando a figura 418

A tela inicial (3) exibe uma lista de restaurantes incluindo seus respectivos tempos detrajeto e tempo de espera na fila Ao clicar no botatildeo ldquo+rdquo uma caixa de diaacutelogo eacute aberta(4) onde eacute possiacutevel adicionar o tempo que o usuaacuterio esperou na fila Primeiro eacute escolhido orestaurante depois a data e hora que a pessoa chegou na fila e por fim o tempo de esperaem minutos Ao tocar em ldquoEnviar Feedback rdquo os dados satildeo incluiacutedos no banco de dados eatualizados para os outros usuaacuterios Assim eacute apicado o conceito de Crowdsourcing no apli-cativo

Ao tocar em um item da lista de restaurantes seraacute aberta a tela de detalhes de um res-taurante (5) na qual eacute possiacutevel ver com mais clareza os tempos de trajeto e espera o tempototal o endereccedilo do estabelecimento e um pequeno mapa centrado no local Pressionandoo botatildeo ldquoDireccedilotildeesrdquo o usuaacuterio seraacute redirecionado ao aplicativo de mapas de sua preferecircnciano caso do exemplo (8) o Google Maps jaacute traccedilando a rota da localizaccedilatildeo do usuaacuterio para oestabelecimento em questatildeo

Novamente na tela inicial tocando no iacutecone de lupa eacute possiacutevel realizar uma busca digi-tando o nome do estabelecimento na caixa de texto a qual exibe sugestotildees dependendo doque foi digitado Ao clicar em um dos resultados da busca o usuaacuterio eacute novamente direcionadopara a tela de detalhes do restaurante (5)

Tambeacutem eacute possiacutevel tocar no iacutecone de mapa na tela inicial onde seraacute mostrado um mapacentrado na localizaccedilatildeo do usuaacuterio

Ao ficar parado por um tempo em um mesmo local proacuteximo a um estabelecimentocadastrado o usuaacuterio eacute perguntado em uma notificaccedilatildeo quanto tempo ele permaneceu nafila Ao tocar na notificaccedilatildeo a caixa de diaacutelogo para feedback do usuaacuterio seraacute aberta (4) jaacutecom o restaurante preenchido e apoacutes o feedback a janela seraacute fechada e os dados enviadosao banco de dados

46 Implementaccedilatildeo do banco de dadosO banco de dados do aplicativo foi modelado e populado em forma de aacutervore (Fi-

gura 419) de forma a facilitar o acesso aos dados necessaacuterios ao aplicativo No primeironiacutevel estatildeo os ids dos restaurantes Cada id de restaurante guarda a localizaccedilatildeo (latitudelongitude) do restaurante o nome o endereccedilo e um objeto fila O objeto fila guarda todos osdias da semana (domingo a saacutebado) e cada dia da semana possui 24 campos um para cadahora do dia Cada hora possui o tempo meacutedio de espera da fila naquela hora e um peso paraesse tempo O peso eacute um valor que aumenta de acordo com o nuacutemero de feedbacks dadospara que o novo valor do tempo meacutedio seja calculado de forma consistente

Modelamos o banco de dados de uma forma que respeitasse uma hierarquia de dados

42 DESENVOLVIMENTO DO PROJETO 46

Figura 419 Aacutervore que ilustra a organizaccedilatildeo de um restaurante no banco de dados

Com o banco de dados jaacute populado o aplicativo faz consultas e atualizaccedilotildees de dadosConsultas satildeo feitas ao criar a tela de listagem de restaurantes e de detalhes de um restau-rante consultado As atualizaccedilotildees satildeo feitas quando o usuaacuterio manda o feedback de tempo deespera em um estabelecimento em determinado horaacuterio o aplicativo calcula a nova meacutedia eatualiza o campo do respectivo horaacuterio

Capiacutetulo 5

Conclusatildeo

Ao longo dos capiacutetulos deste trabalho pocircde-se acompanhar todo o processo de criaccedilatildeo edesenvolvimento do aplicativo que apoacutes finalizado foi batizado com o nome Queue

Comeccedilando com um problema para o qual o grupo almejava oferecer uma soluccedilatildeoacabou-se por adentrar-se um pouco no campo da Estatiacutestica e estudar diversas metodo-logias que poderiam ser uacuteteis para fornecer um caacutelculo de previsatildeo de espera meacutedia porperiacuteodo aplicaccedilatildeo da teoria das filas e utilizaccedilatildeo de redes neurais

Atraveacutes de uma parceria com a empresa GetIn obteve-se acesso a uma grande quantidadede dados e foi possiacutevel utilizaacute-los em anaacutelises feitas nas metodologias escolhidas conseguindoassim resultados relevantes Por meio destes foi feita a escolha de um dos meacutetodos para ocaacutelculo da previsatildeo de filas a meacutedia por periacuteodo

Aleacutem desses estudos ao longo do ano o grupo aprendeu a desenvolver para a plata-forma Android sobre a qual nenhum dos integrantes tinha conhecimento preacutevio Tambeacutemfoi possiacutevel aprender e utilizar a metodologia aacutegil com Scrum para guiar o processo de de-senvolvimento

Ao fim do ciclo de desenvolvimento conseguiu-se entregar um aplicativo em funciona-mento que fornece a previsatildeo de espera no instante da consulta de estabelecimentos cadas-trados no banco de dados armazenado na nuvem

Na versatildeo atual do aplicativo natildeo foi implementado um sistema para o cadastro de novosestabelecimentos Isso soacute eacute possiacutevel atraveacutes da inserccedilatildeo direta no banco de dados atraveacutes dainterface fornecida pelo console do Firebase Atualmente estatildeo cadastrados 5 restaurantesos quais foram visitados durante o desenvolvimento do projeto Para que o cadastro deestabelecimentos escale seria necessaacuterio a implementaccedilatildeo de uma funcionalidade que permitaao usuaacuterio adicionar novos estabelecimentos a partir de locais disponiacuteveis na API de locaisda Google

43

45

46 APEcircNDICE A

Apecircndice A

Dados coletados

Figura A1 Dados de tempo de espera para grupos de tamanhos variados para cada horaacuterio e emcada dia da semana obtidos em entrevista em restaurantes Outback Steakhouse Shopping Uniatildeo nomecircs de outubro

Referecircncias Bibliograacuteficas

[1] Backpropagation httpmbpsourceforgenet Accesso em Janeiro 2017 14

[2] Bitbucket httpsbitbucketorgproduct Accesso em Dezembro 2016 19

[3] Crowdsourcing httpswwwmerriam-webstercomdictionarycrowdsourcing Ac-cesso em Novembro 2016 21

[4] Designing a survey httpwwwsciencebuddiesorgscience-fair-projectsproject_ideasSoc_surveyshtml Accesso em Outubro 2016 4 23

[5] Facebook httpswwwfacebookcom Accesso em Novembro 2016 24

[6] Firebase httpsfirebasegooglecom Accesso em Agosto 2016 20

[7] Getin app httpswwwgetinappcombrhomesao-paulo Accesso em Novembro2016 9

[8] Git 11 primeiros passos - sobre controle de versatildeo httpsgit-scmcombookpt-brv1Primeiros-passos-Sobre-Controle-de-Vers Accesso em Novembro 2016 19

[9] Google forms httpsdocsgooglecomforms Accesso em Novembro 2016 23

[10] Guia definitivo do project model canvas Project Builder 3

[11] Jsonorg introducing json httpwwwjsonorg Accesso em Novembro 2016 17

[12] Manifesto para desenvolvimento Aacutegil de software httpagilemanifestoorgisoptbrmanifestohtml Accesso em Novembro 2016 5

[13] Nosql httpsenwikipediaorgwikiNoSQL Accesso em Novembro 2016 20

[14] Outback steakhouse httpswwwoutbackcombrhome Accesso em Novembro 20169

[15] Restful api development with lumen microframework httpsbelitsoftcomlaravel-development-servicesapi-development Accesso em Novembro 2016 17

[16] Scrum httpswwwatlassiancomagilescrum Accesso em Novembro 2016 5

[17] Smartphone os market share 2016 q2 httpwwwidccomprodservsmartphone-os-market-sharejsp Accesso em Novembro 2016 15

[18] Smartphone os sales market share kantar worldpanel comtech httpwwwkantarworldpanelcomsmartphone-os-market-share Accesso em Novembro 2016 15

[19] Sourcetree httpswwwsourcetreeappcom Accesso em Dezembro 2016 19

47

48 REFEREcircNCIAS BIBLIOGRAacuteFICAS

[20] Sql httpsptkhanacademyorgcomputingcomputer-programmingsql Accesso emDezembro 2016 20

[21] Trello httpstrellocom Accesso em Novembro 2016 6

[22] Usability test httpsenwikipediaorgwikiUsability_testing Accesso em Novembro2016 36

[23] Versionone 2012 agile dev survey httpswwwversiononecompdf7th-Annual-State-of-Agile-Development-Surveypdf Accesso em Novembro 2016 5

[24] Waze httpswwwwazecom Accesso em Novembro 2016 1

[25] What is an open source httpsopensourcecomresourceswhat-open-source Accessoem Novembro 2016 15

[26] Xml tutorial httpwwww3schoolscomxml Accesso em Novembro 2016 17

[27] Paulo F Cabral dos Anjos Jr Aron Ifanger Maciel Christopher Silva de Paacutedua Com-posiccedilatildeo de carteiras de accedilotildees utilizando modelo de redes neurais artificiais e modelo derisco e retorno de Markowitz 2012 14

[28] Google Distance matrix api documentation httpsdevelopersgooglecommapsdocumentationdistance-matrix Accesso em Novembro 2016 17

[29] Alan Klement Designing features using job stories httpsblogintercomcomusing-job-stories-design-features-ui-ux Accesso em Novembro 2016 6

[30] Azmat Nafees Queuing theory and its application analysis of the sales checkout opera-tion in ica supermarket httpwwwstatisticsduseessaysD07ENafeespdf Accessoem Novembro 2016 12

[31] Eric Ries A Startup Enxuta Lua de papel primeira ediccedilatildeo edition 2012 3

  • Introduccedilatildeo
    • Motivaccedilatildeo
    • Trabalho Proposto
    • Estrutura da monografia
      • Estudos Preliminares
        • Desenvolvimento de Startups
          • Desenvolvimento de Questionaacuterios
            • Metodologia Aacutegil
            • Jobs to be done
            • Caacutelculo da previsatildeo do tempo de espera na fila
              • Descriccedilatildeo do problema
              • Meacutetodos de caacutelculo da espera
                  • Tecnologias utilizadas
                    • O sistema Android
                      • Organizaccedilatildeo de uma aplicaccedilatildeo Android
                        • JSON
                        • Google APIs
                        • Localizaccedilatildeo do Usuaacuterio
                        • Controle de Versatildeo
                        • Banco de dados
                          • Firebase
                            • Crowdsourcing
                              • Desenvolvimento do Projeto
                                • Pesquisa de Mercado
                                  • Pesquisa com o usuaacuterio
                                    • Projeto do Aplicativo
                                    • Aplicaccedilatildeo dos meacutetodos de caacutelculo de espera
                                      • Aplicando a meacutedia por periacuteodo
                                      • Aplicando teoria das filas
                                      • Aplicando redes neurais
                                      • Conclusatildeo sobre os meacutetodos estudados
                                        • Definiccedilatildeo da Interface do aplicativo
                                        • Explicaccedilatildeo das funcionalidades
                                        • Implementaccedilatildeo do banco de dados
                                          • Conclusatildeo
                                          • Dados coletados
                                          • Referecircncias Bibliograacuteficas

36 CONTROLE DE VERSAtildeO 19

35 Controle de VersatildeoControle de versatildeo eacute uma praacutetica usada para manter a organizaccedilatildeo do coacutedigo e do seu de-

senvolvimento quando muitos desenvolvedores colaboram conjuntamente Existem softwaresque auxiliam essa organizaccedilatildeo registrando todas as mudanccedilas feitas ao longo do processo eque possui recursos que permitem que vaacuterios usuaacuterios trabalhem nos mesmos arquivos semperda de informaccedilotildees

No caso do Git [8] o projeto fica organizado em uma estrutura de aacutervore onde cadacommit (checkpoints criados pelos membros do grupo durante o processo) eacute marcado porum noacute para onde se pode retornar quando necessaacuterio Existem tambeacutem estruturas chama-das branches que satildeo bifurcaccedilotildees na estrutura para que partes do projeto sejam criadasseparadamente sem interferir com a linha principal As branches depois satildeo unidas agrave linhaprincipal atraveacutes do comando merge

Neste projeto o serviccedilo de controle de versatildeo utilizado foi o Bitbucket [2] (que eacute um ser-viccedilo web-based de controle de versatildeo que utiliza Git) com auxiacutelio do software SourceTree[19]que eacute uma interface graacutefica para os serviccedilos do Bitbucket onde eacute possiacutevel visualizar com maisfacilidade as fases do desenvolvimento do projeto e realizar os comandos mais intuitivamente

Figura 32 Interface do SourceTree que mostra o controle de versionamento do projeto

36 Banco de dadosCom o intuito de deixar o aplicativo mais completo guardando informaccedilotildees dos usuaacuterios

e dos estabelecimentos optou-se por utilizar-se um banco de dados Alguns exemplos de

20 TECNOLOGIAS UTILIZADAS 36

banco de dados aprendidos no curso Laboratoacuterio de Banco de Dados foram

∙ SQL (Structured Query Language - Linguagem de Consulta Estruturada)[20] umalinguagem para atualizar deletar e requisitar informaccedilotildees atraveacutes de consultas emtabelas que possuem relaccedilatildeo entre si

∙ noSQL[13] um banco de dados que armazena e recupera informaccedilotildees modeladas deuma forma onde natildeo satildeo usadas tabelas relacionais

Como este uacuteltimo natildeo foi o foco da disciplina por falta de tempo decidiu-se por utilizaacute-lopara que o grupo pudesse aprender melhor esse modelo

Outra decisatildeo tomada foi a hospedagem dos dados na nuvem ou seja colocaacute-los em umservidor que natildeo seja local e conseguir acessaacute-los atraveacutes de uma conexatildeo via internet Dessemodo os dados sempre estaratildeo disponiacuteveis para serem consultados

361 Firebase

Buscando-se atender as decisotildees tomadas sobre o banco de dados procuramos um serviccedilode banco de dados da Google por conter ampla integraccedilatildeo com a plataforma de desenvolvi-mento Android por ser conhecido bastante utilizado e por possuir uma ampla comunidadede desenvolvedores dispostos a oferecer auxiacutelio em foacuteruns de discussatildeo de coacutedigos

Para atender esses requisitos escolheu-se o Firebase Realtime Database[6] desenvolvido edisponibilizado pela Google que consiste em um banco de dados noSQL com armazenamentona nuvem Esse serviccedilo armazena os dados do usuaacuterio no servidor da Google em formatoJSON e a cada alteraccedilatildeo sincroniza em tempo real com todos os clientes conectados

O grupo pode observar as seguintes vantagens de se trabalhar com a ferramenta existea sincronizaccedilatildeo em tempo real dos dados de todos os clientes e sua disponibilidade mesmocom o aplicativo offline ou seja quando o aplicativo natildeo estiver conectado a internet osdados do dispositivo moacutevel seratildeo armazenados e sincronizados com o banco de dados assimque a conexatildeo estiver disponiacutevel novamente Aleacutem disso os desenvolvedores possuem acessoa um console online (figura 33) onde o JSON eacute mostrado numa interface interativa de umaforma mais amigaacutevel e no qual eacute permitido editaacute-lo facilmente

37 CROWDSOURCING 21

Figura 33 Console online do Firebase onde os dados satildeo mostrados de forma mais amigaacutevel eintuitiva

Outra observaccedilatildeo feita foi que o Firebase Realtime Database funciona como o esperadose ele guardar uma coacutepia local dos dados em um arquivo JSON no celular Poreacutem isso natildeofoi visto como um problema pois como essa coacutepia pode ser salva em um arquivo texto oespaccedilo utilizado diminui consideravelmente

Na primeira vez que os dados satildeo criados e todas as vezes em que os dados forem atua-lizados por algum dispositivo moacutevel eacute enviada uma atualizaccedilatildeo que seraacute recebida atraveacutes delisteners por todos os aparelhos que utilizam o aplicativo para que eles atualizem seus res-pectivos JSONs Listeners satildeo interfaces de comunicaccedilatildeo que executam uma seacuterie de accedilotildeesassim que um outro evento esperado acontece

37 CrowdsourcingO termo Crowdsourcing tem origem nas palavras da liacutengua inglesa Crowd (multidatildeo) e

Outsourcing (terceirizaccedilatildeo) e eacute definido pelo dicionaacuterio Merriam Webster como A praacuteticade obtenccedilatildeo de serviccedilos ideias ou conteuacutedo solicitando contribuiccedilotildees de grandes grupos depessoas e especialmente da comunidade online [3] Esta praacutetica eacute utilizada para que sejapossiacutevel agrave comunidade contribuir com dados para algum programa ou serviccedilo como no apli-cativo Waze do qual a principal fonte de dados de tracircnsito acidentes e radares eacute obtida pormeio dos proacuteprios usuaacuterios

Capiacutetulo 4

Desenvolvimento do Projeto

Este capiacutetulo aborda o processo de desenvolvimento do projeto iniciado com o preen-chimento do diagrama Canvas e uma pesquisa de mercado direcionada ao usuaacuterio A partirdas informaccedilotildees coletadas foi possiacutevel projetar um aplicativo que atendesse as necessidadesexpostas pela pesquisa e selecionar as tecnologias necessaacuterias Tambeacutem eacute abordada a aplica-ccedilatildeo dos diferentes meacutetodos de caacutelculo da previsatildeo de tempo de espera que foram estudadose explicados no Capiacutetulo 2 Por fim satildeo expostas as diferentes versotildees do aplicativo duranteo processo e seus detalhes

41 Pesquisa de MercadoAntes de iniciar-se o desenvolvimento praacutetico algumas questotildees foram levantadas se

um aplicativo com as funcionalidades escolhidas seria de alguma forma uacutetil para o usuaacuterioe se sim qual metodologia deveria ser usada para que este produto fosse entregue o maiscompleto possiacutevel ateacute o final do ano Para responder a primeira pergunta desenvolveu-seum questionaacuterio

411 Pesquisa com o usuaacuterio

O questionaacuterio foi desenvolvido para avaliar a viabilidade do aplicativo e suas funciona-lidades e foi criado utilizando-se o Google Forms [9] Essa eacute uma ferramenta desenvolvidapelo Google que possibilita a criaccedilatildeo de formulaacuterios contendo diversos formatos de pergun-tas tanto dissertativas quanto de muacuteltipla escolha

Seguindo os princiacutepios de desenvolvimento de questionaacuterios [4] o conjunto de perguntasfoi mantido curto simples e de faacutecil entendimento Tambeacutem variou-se o tipo de questotildeesentre estruturadas (questotildees com respostas em forma de alternativas) e desestruturadas(questotildees com respostas em formato texto) seguindo esses mesmos princiacutepios para captarmelhor as informaccedilotildees dos entrevistados e evitar erros de entendimento

Com as respostas do questionaacuterio tinha-se o intuito de traccedilar um possiacutevel puacuteblico alvoconhecer seu modo de uso de dispositivos moacuteveis e validar a aplicabilidade de diferentesfuncionalidades pretendidas inicialmente sendo essas engajamento do usuaacuterio atraveacutes denotificaccedilotildees do sistema aceitaccedilatildeo de sugestotildees de locais alternativos avaliaccedilatildeo da existecircnciado problema que queremos resolver (se este aplicativo supre uma necessidade real do usuaacute-rio) e aceitaccedilatildeo do aplicativo

23

24 DESENVOLVIMENTO DO PROJETO 41

Para a divulgaccedilatildeo redes sociais como Facebook [5] e sistemas de mensagem instantacircneascomo WhatsApp foram usados e o envio de respostas foi restrito ateacute trecircs semanas apoacutes suaprimeira postagem Neste periacuteodo foram obtidas 210 respostas as quais ajudaram a definiros aspectos do sistema a ser desenvolvido

O questionaacuterio foi dividido em duas subseccedilotildees perfil do usuaacuterio e funcionalidade Comelas obteve-se os seguintes resultados

41 PESQUISA DE MERCADO 25

Questatildeo 1

Figura 41 Graacutefico pizza da distribuiccedilatildeo das respostas em relaccedilatildeo a idade dos pesquisados

As faixas de idade apresentadas estatildeo desbalanceadas por natildeo terem a mesma quantidadede anos em cada uma poreacutem essa divisatildeo foi pensada levando-se em conta a fluecircncia comtecnologia que cada idade possui Com o resultado verificou-se que do puacuteblico alcanccediladocom a pesquisa a maioria estaacute na faixa de 18 a 25 anos de idade assumida como parcelacom maior conhecimento tecnoloacutegico

Questatildeo 2

Figura 42 Graacutefico pizza da distribuiccedilatildeo das respostas em relaccedilatildeo ao sistema operacional

Esta questatildeo foi pensada para medir a porcentagem de cada sistema operacional pre-sente nos celulares do puacuteblico Com ela descobriu-se que 639 das pessoas dentro desse

26 DESENVOLVIMENTO DO PROJETO 41

grupo possuem o sistema Android enquanto 234 possuem iOS e 38 Windows phoneEssa pergunta foi incluiacuteda para um melhor direcionamento do desenvolvimento do aplicativo

Uma questatildeo levantada ao aplicar esse questionaacuterio foi a dificuldade que algumas pessoasencontraram para identificar a versatildeo do proacuteprio aparelho Poreacutem para manter a consistecircnciadas respostas decidiu-se natildeo mudar nada nesta questatildeo para remediar isso

Questatildeo 3

Figura 43 Graacutefico em barras da distribuiccedilatildeo de frequecircncias mensais de cada local analisado

41 PESQUISA DE MERCADO 27

Questatildeo 4

Figura 44 Graacutefico em pizza da distribuiccedilatildeo de interesse do usuaacuterio no tempo de espera de cadalocal

A princiacutepio viu-se muitas possiacuteveis aplicaccedilotildees para a previsatildeo de tempo de espera Paraentender qual seria a prioridade do puacuteblico as questotildees acima foram incluiacutedas A primeiraverificou a frequecircncia de visitas em alguns locais e a segunda serviu para analisar qualestabelecimento despertava mais interesse nos entrevistados quanto ao quesito fila Nos doiscasos restaurantes se destacaram com o maior interesse

Questatildeo 5

Figura 45 Graacutefico em barras da distribuiccedilatildeo de interesse do usuaacuterio por cada item avaliado

Para acompanhar o dado de espera e fornecer mais informaccedilotildees relevantes ao usuaacuteriosem potencial perguntou-se quais outras informaccedilotildees eles acham interessante saber sobre umdeterminado estabelecimento Com isso descobriu-se que a faixa de preccedilo o trajeto ateacute olocal e o cardaacutepio seriam dados importantes de se obter juntamente com o tempo de espera

28 DESENVOLVIMENTO DO PROJETO 41

Questatildeo 6O que vocecirc costuma fazer para evitar filasNeste ponto testou-se se a soluccedilatildeo proposta atraveacutes do aplicativo resolveria o problema dousuaacuterio de uma forma melhor do que a soluccedilatildeo atualmente utilizada Para isso foi perguntadoo que as pessoas fazem para evitar filas e as principais respostas foram

∙ Evitar horaacuterios de pico

∙ Chegar cedo

∙ Ir em outro lugar caso uma fila seja encontrada

∙ Tentar realizar reservas antecipadamente

∙ Se distrair com livroscelular

Notou-se que as soluccedilotildees utilizadas atualmente natildeo suprem as necessidades dos entre-vistados pois mesmo em horaacuterios natildeo convencionais pode-se encontrar filas ou quandodecide-se esperar na fila muito tempo eacute perdido Concluiu-se que a soluccedilatildeo proposta a par-tir do aplicativo resolve de forma mais abrangente o problema pois ajuda o usuaacuterio a evitarhoraacuterios de pico inesperados

Questatildeo 7

Figura 46 Graacutefico em pizza da distribuiccedilatildeo do meio de transporte utilizado pelos usuaacuterios

Essa questatildeo foi formulada com o objetivo de verificar quais meios de transporte seriamincluiacutedos com previsatildeo de tempo de trajeto no aplicativo Foi verificado que a maioria dosentrevistados utilizam transporte puacuteblico seguido por carro

41 PESQUISA DE MERCADO 29

Questatildeo 8

Figura 47 Graacutefico em pizza da distribuiccedilatildeo do interesse do usuaacuterio pela informaccedilatildeo fornecida

Questatildeo 9

Figura 48 Graacutefico em pizza da distribuiccedilatildeo de quantidade de quilocircmetros que o usuaacuterio sedeslocaria para ir a um local com menos fila

Com essas questotildees foi verificado que algo importante para o usuaacuterio eacute saber de outrosestabelecimentos que possam oferecer tempos de espera menores nas redondezas de onde ousuaacuterio se encontra que eacute uma das funcionalidades que desejaacutevamos utilizar no sistema

30 DESENVOLVIMENTO DO PROJETO 41

Questatildeo 10

Figura 49 Graacutefico em barras da distribuiccedilatildeo de sentimento do usuaacuterio em relaccedilatildeo a notificaccedilatildeode aplicativos

Questatildeo 11

Figura 410 Graacutefico em pizza da distribuiccedilatildeo de opiniatildeo do usuaacuterio sobre desabilitar notificaccedilotildeesem celular

42 PESQUISA DE MERCADO 31

Questatildeo 12

Figura 411 Graacutefico em pizza da distribuiccedilatildeo de opiniatildeo do usuaacuterio sobre habilitar GPS emcelular

A ideia inicial era poder usar o GPS para verificar a localizaccedilatildeo do usuaacuterio e enviarnotificaccedilotildees quando este estivesse parado nas proximidades de algum dos estabelecimentoscadastrados Para que essa funcionalidade possa existir eacute necessaacuterio que o aplicativo tenhaacesso agrave localizaccedilatildeo precisa da pessoa atraveacutes do GPS ou internet ateacute mesmo quando natildeoestiver aberto Aleacutem disso tambeacutem eacute necessaacuterio que as notificaccedilotildees estejam habilitadas parafinalizar esta interaccedilatildeo Entatildeo as perguntas 10 11 e 12 foram incluiacutedas no questionaacuterio Ob-servando as respostas foi possiacutevel verificar que 295 das pessoas que responderam deixamambas as funcionalidades habilitadas (GPS e notificaccedilotildees) Com isso pudemos prosseguircom essa ideia e tambeacutem pensar em possiacuteveis alternativas de interaccedilatildeo e engajamento como usuaacuterio

Por conta dessa pesquisa ter sido compartilhada atraveacutes das contas das redes sociais ecomunicadores dos componentes deste grupo sabe-se que este pode apresentar um resultadoviesado mas que mesmo assim natildeo deve ser desconsiderado e que muito ajudou a sanar asduacutevidas iniciaisComo resultado traccedilamos o perfil do entrevistado

∙ Faixa etaacuteria predominante entre 18 e 30 anos

∙ Possui sistema operacional Android (versotildees 4 5 e 6)

∙ Vai a restaurantes com certa frequecircncia mensal resultando em interesses sobre infor-maccedilotildees relacionadas a esse estabelecimento

∙ Costuma chegar cedo ou evitar os horaacuterios de pico para evitar filas nos locais

∙ Carro e transporte coletivo satildeo os principais meios de transporte

∙ Se deslocaria para um estabelecimento semelhante que possui menos fila contanto queeste fique num raio de 2km de distacircncia

32 DESENVOLVIMENTO DO PROJETO 43

42 Projeto do AplicativoO grupo comeccedilou o projeto com o preenchimento do diagrama Canvas(figura 412) apre-

sentado na Seccedilatildeo 21 Desse modo foi adquirida uma ideia mais consistente e uma base paracomeccedilar a implementaccedilatildeo

Figura 412 Diagrama Canvas preenchido pelo grupo

Com o modelo de negoacutecios definido e com base no resultado da pesquisa com o usuaacuterioapresentada na seccedilatildeo seguinte foram aplicadas pequenas mudanccedilas no projeto para melhoradequar-se agraves necessidades e ao perfil do puacuteblico alvo

Para o desenvolvimento foi utilizado um meacutetodo aacutegil baseado no scrum com sprints de3 a 4 semanas devido agrave disponibilidade dos membros do grupo Os encontros natildeo eram diaacute-rios como recomendado para o meacutetodo scrum tambeacutem em razatildeo da disponibilidade Haviamstand ups (discussotildees raacutepidas no comeccedilo de cada encontro) e retrospectivas ao final de cadasprint A cada sprint eram selecionadas histoacuterias e tarefas para serem executadas e caso natildeofossem concluiacutedas ao final da iteraccedilatildeo eram inseridas ao backlog e feitas no sprint seguinte

43 Aplicaccedilatildeo dos meacutetodos de caacutelculo de espera

431 Aplicando a meacutedia por periacuteodo

Aplicando-se no trecho abaixo a teacutecnica desenvolvida na Seccedilatildeo 242 para uma queryrealizada no dia 19082016 no intervalo de 2040 - 2055 analisa-se a semana anterior quepossua tais intervalos Assim o saacutebado dia 06082016 seraacute selecionado

43 APLICACcedilAtildeO DOS MEacuteTODOS DE CAacuteLCULO DE ESPERA 33

Entrada Qtd Pessoas Notificado Espera

6816 2043 2 862016 2053 1606

6816 2044 2 862016 2055 674

6816 2048 2 862016 2056 528

6816 2048 2 862016 2057 520

6816 2051 2 862016 2107 1118

6816 2051 3 862016 2110 1305

6816 2052 2 862016 2110 1273

6816 2052 2 862016 2111 1179

6816 2053 2 862016 2112 1217

6816 2053 2 NULL 59

6816 2054 3 862016 2119 1541

6816 2055 2 862016 2117 1444

6816 2055 2 862016 2120 1570

6816 2055 2 862016 2122 1613

Tabela 41 Trecho do dia 06082016 entre os horaacuterios das 2043 agraves 2055 um intervalo de 12minutos retirado dos dados da empresa Get In

Com esses dados obteve-se a meacutedia de espera de 1080 segundos (18 minutos) a qualseria sugerida para o usuaacuterio com a busca e desvio padratildeo de 465144719 segundos (775 mi-nutos) Dentro desse intervalo tem-se como maacuteximo tempo de espera 1613 segundos (2688minutos) e como miacutenimo 59 segundos (1 minuto) Analisando-se os dados do dia 19082016no mesmo periacuteodo temos

34 DESENVOLVIMENTO DO PROJETO 43

Entrada Pessoas Notificado Espera Erro previsatildeo Erro p 2 pessoas

19816 2043 2 8192016 2051 544 -563 522

19816 2043 2 8192016 2052 605 -502 461

19816 2044 2 8192016 2056 723 -384 343

19816 2046 4 8192016 2119 1988 881 X

19816 2048 2 8192016 2102 919 188 147

19816 2051 2 8192016 2103 821 286 245

19816 2051 3 8192016 2108 1773 666 X

19816 2053 2 8192016 2110 1083 24 -17

19816 2053 2 8192016 2111 1105 2 -39

19816 2053 2 8192016 2112 1169 62 -103

19816 2055 2 8192016 2114 1447 340 -381

Tabela 42 Trecho do dia 19082016 entre os horaacuterios das 2043 agraves 2055um intervalo de 12minutos retirado dos dados da empresa Get In

Ou seja se um grupo chegasse dentro desse periacuteodo e a previsatildeo dada fosse a meacutediaobtida anteriormente o erro calculado pela diferenccedila entre o tempo sugerido e o real tempode espera estaria no intervalo de 15 minutos para menos ou 8 minutos para mais Sendoesse um valor aceitaacutevel

Um proacuteximo passo eacute a restriccedilatildeo dos registros a grupos com 2 integrantes Com tal restri-ccedilatildeo a previsatildeo de espera eacute de 1066 segundos (1776 minutos) Aplicando essa nova meacutedia aosregistros com 2 integrantes do dia 19082016 obteacutem-se um erro (Coluna 6 - erro previsatildeopara 2 pessoas) menor do que o anterior O intervalo do erro calculado neste caso seria de 522segundos (87 minutos) para mais e 381 segundos (635 minutos) para menos Este resultadoeacute ainda mais favoraacutevel mostrando que a inclusatildeo de mais filtros para o caacutelculo da previsatildeomelhorou o tempo previsto

432 Aplicando teoria das filas

A teoria das filas (Seccedilatildeo 242) eacute uma ferramenta muito completa que calcula muitos dadosuacuteteis para a previsatildeo de espera Contudo por conta da necessidade de informaccedilotildees sobreo tempo de atendimento a qual natildeo estaacute contida no banco utilizado esta teoria natildeo podeser aplicada neste caso Poreacutem esse dado pode ter um valor assumido para que a utilizaccedilatildeodessa teoria fosse possiacutevel entretanto a sua precisatildeo ficaria comprometida e imprevisiacutevel

433 Aplicando redes neurais

Para aplicar o que foi estudado na Seccedilatildeo 242 foi executado o software com o mecircs deAgosto como teste o mecircs de Setembro como treino e o limite do erro quadraacutetico como 001 eobteve-se a tabela presente no apecircndice B Na tabela podemos ver o tempo de fila esperadoou seja o tempo contido na tabela do mecircs de Setembro o tempo que o algoritmo deu comoresposta baseado no mecircs de Agosto e o erro entre eles respectivamente

44 DEFINICcedilAtildeO DA INTERFACE DO APLICATIVO 35

Figura 413 Software Multiple Back-Propagation com a configuraccedilatildeo escolhida para os dadosdisponiacuteveis

Mesmo o erro se mantendo em 0018 os dados obtidos possuem um erro padratildeo de 15minutos Se mais dados forem adicionados o criteacuterio de parada pode ser atingido e assimuma previsatildeo melhor pode ser alcanccedilada

434 Conclusatildeo sobre os meacutetodos estudados

Dentre todas as possibilidades estudadas visualizamos na meacutedia por periacuteodo a melhoropccedilatildeo assumindo os dados disponiacuteveis para teste Se mais paracircmetros fossem fornecidoscomo o tempo de atendimento a teoria das filas seria uma boa opccedilatildeo para fornecer a pre-visatildeo de espera E se mais dados estivessem disponiacuteveis as redes neurais conseguiriam umaaproximaccedilatildeo melhor e assim seria uma boa opccedilatildeo tambeacutem

44 Definiccedilatildeo da Interface do aplicativoComo um primeiro protoacutetipo foi desenvolvida uma interface simples que tinha como tela

de iniacutecio um mapa com um campo para buscas na parte superior

36 DESENVOLVIMENTO DO PROJETO 44

Figura 414 Fluxo de telas do primeiro protoacutetipo

Ao efetuar uma busca por algum estabelecimento uma tela mostrando o tempo de esperaaproximado da fila no local era exibida junto com bototildees que permitiam selecionar o meiode transporte visualizar outras opccedilotildees ou dar iniacutecio a rota ateacute o local desejado Tambeacutemhavia uma notificaccedilatildeo para quando a pessoa estivesse parada proacutexima a um restaurantecadastrado que direcionaria o usuaacuterio a uma tela com um cronocircmetro do tempo de esperana fila

Para testar essa visualizaccedilatildeo escolhemos algumas pessoas e realizamos um teste deusabilidade[22] este teste eacute feito da seguinte forma

44 DEFINICcedilAtildeO DA INTERFACE DO APLICATIVO 37

Uma contextualizaccedilatildeo eacute feita para o voluntaacuterio e entatildeo uma tarefa eacute passada para sercompletada Os integrantes do grupo observam dificuldades enfrentadas pelo entrevistado etomam notas Esse teste eacute repetido algumas vezes e seu resultado eacute coletado para avaliaccedilatildeoe modificaccedilatildeo das funcionalidades

Figura 415 Tela de detalhes de um restaurante(segunda versatildeo)

Notou-se que algumas funcionalidadespareceram confusas e natildeo intuitivas porexemplo natildeo ficou claro se o tempo mos-trado era de trajeto ou de espera na filanem qual era o meio de transporte utili-zado

Logo esse protoacutetipo foi reformuladocom o intuito de melhorar a experi-ecircncia do usuaacuterio com o nosso aplica-tivo

Foram colocados aleacutem do tempo deespera da fila o tempo que o usuaacuteriolevaria para chegar ateacute o local selecio-nado (conforme o tipo de transporte es-colhido) e a quantidade estimada de pes-soas na fila O tempo total (espera so-mado ao tempo de deslocamento) ga-nhou destaque entre as informaccedilotildees doestabelecimento e o botatildeo que direcionao usuaacuterio ao trajeto ficou mais especiacute-fico

Tambeacutem cogitou-se a possibilidade deadicionar login e um perfil de usuaacuteriojunto com uma lista de restaurantes favo-ritos

O fluxo das telas deste novo protoacutetipo ficou como mostra o esquema a seguir

38 DESENVOLVIMENTO DO PROJETO 44

Figura 416 Fluxo de telas do segundo protoacutetipo

44 DEFINICcedilAtildeO DA INTERFACE DO APLICATIVO 39

Figura 417 Tela de detalhes de um restaurante(terceira versatildeo)

Apoacutes outras avaliaccedilotildees mais algumaspequenas alteraccedilotildees foram realizadas nainterface Foi decidido que seria inviaacute-vel estimar o nuacutemero de pessoas nafila entatildeo essa funcionalidade foi remo-vida

Notificaccedilotildees foram adicionadas paraquando o usuaacuterio estiver parado na aacutereado restaurante para que ele possa con-tribuir com informaccedilotildees sobre a fila quepegou aleacutem de um botatildeo de contri-buiccedilatildeo ter sido inserido na tela ini-cial

40 DESENVOLVIMENTO DO PROJETO 45

O fluxo de telas do aplicativo atual ficou da seguinte forma

Figura 418 Fluxo de telas do terceiro protoacutetipo

46 EXPLICACcedilAtildeO DAS FUNCIONALIDADES 41

45 Explicaccedilatildeo das funcionalidadesEsta seccedilatildeo explica as funcionalidades do produto utilizando a figura 418

A tela inicial (3) exibe uma lista de restaurantes incluindo seus respectivos tempos detrajeto e tempo de espera na fila Ao clicar no botatildeo ldquo+rdquo uma caixa de diaacutelogo eacute aberta(4) onde eacute possiacutevel adicionar o tempo que o usuaacuterio esperou na fila Primeiro eacute escolhido orestaurante depois a data e hora que a pessoa chegou na fila e por fim o tempo de esperaem minutos Ao tocar em ldquoEnviar Feedback rdquo os dados satildeo incluiacutedos no banco de dados eatualizados para os outros usuaacuterios Assim eacute apicado o conceito de Crowdsourcing no apli-cativo

Ao tocar em um item da lista de restaurantes seraacute aberta a tela de detalhes de um res-taurante (5) na qual eacute possiacutevel ver com mais clareza os tempos de trajeto e espera o tempototal o endereccedilo do estabelecimento e um pequeno mapa centrado no local Pressionandoo botatildeo ldquoDireccedilotildeesrdquo o usuaacuterio seraacute redirecionado ao aplicativo de mapas de sua preferecircnciano caso do exemplo (8) o Google Maps jaacute traccedilando a rota da localizaccedilatildeo do usuaacuterio para oestabelecimento em questatildeo

Novamente na tela inicial tocando no iacutecone de lupa eacute possiacutevel realizar uma busca digi-tando o nome do estabelecimento na caixa de texto a qual exibe sugestotildees dependendo doque foi digitado Ao clicar em um dos resultados da busca o usuaacuterio eacute novamente direcionadopara a tela de detalhes do restaurante (5)

Tambeacutem eacute possiacutevel tocar no iacutecone de mapa na tela inicial onde seraacute mostrado um mapacentrado na localizaccedilatildeo do usuaacuterio

Ao ficar parado por um tempo em um mesmo local proacuteximo a um estabelecimentocadastrado o usuaacuterio eacute perguntado em uma notificaccedilatildeo quanto tempo ele permaneceu nafila Ao tocar na notificaccedilatildeo a caixa de diaacutelogo para feedback do usuaacuterio seraacute aberta (4) jaacutecom o restaurante preenchido e apoacutes o feedback a janela seraacute fechada e os dados enviadosao banco de dados

46 Implementaccedilatildeo do banco de dadosO banco de dados do aplicativo foi modelado e populado em forma de aacutervore (Fi-

gura 419) de forma a facilitar o acesso aos dados necessaacuterios ao aplicativo No primeironiacutevel estatildeo os ids dos restaurantes Cada id de restaurante guarda a localizaccedilatildeo (latitudelongitude) do restaurante o nome o endereccedilo e um objeto fila O objeto fila guarda todos osdias da semana (domingo a saacutebado) e cada dia da semana possui 24 campos um para cadahora do dia Cada hora possui o tempo meacutedio de espera da fila naquela hora e um peso paraesse tempo O peso eacute um valor que aumenta de acordo com o nuacutemero de feedbacks dadospara que o novo valor do tempo meacutedio seja calculado de forma consistente

Modelamos o banco de dados de uma forma que respeitasse uma hierarquia de dados

42 DESENVOLVIMENTO DO PROJETO 46

Figura 419 Aacutervore que ilustra a organizaccedilatildeo de um restaurante no banco de dados

Com o banco de dados jaacute populado o aplicativo faz consultas e atualizaccedilotildees de dadosConsultas satildeo feitas ao criar a tela de listagem de restaurantes e de detalhes de um restau-rante consultado As atualizaccedilotildees satildeo feitas quando o usuaacuterio manda o feedback de tempo deespera em um estabelecimento em determinado horaacuterio o aplicativo calcula a nova meacutedia eatualiza o campo do respectivo horaacuterio

Capiacutetulo 5

Conclusatildeo

Ao longo dos capiacutetulos deste trabalho pocircde-se acompanhar todo o processo de criaccedilatildeo edesenvolvimento do aplicativo que apoacutes finalizado foi batizado com o nome Queue

Comeccedilando com um problema para o qual o grupo almejava oferecer uma soluccedilatildeoacabou-se por adentrar-se um pouco no campo da Estatiacutestica e estudar diversas metodo-logias que poderiam ser uacuteteis para fornecer um caacutelculo de previsatildeo de espera meacutedia porperiacuteodo aplicaccedilatildeo da teoria das filas e utilizaccedilatildeo de redes neurais

Atraveacutes de uma parceria com a empresa GetIn obteve-se acesso a uma grande quantidadede dados e foi possiacutevel utilizaacute-los em anaacutelises feitas nas metodologias escolhidas conseguindoassim resultados relevantes Por meio destes foi feita a escolha de um dos meacutetodos para ocaacutelculo da previsatildeo de filas a meacutedia por periacuteodo

Aleacutem desses estudos ao longo do ano o grupo aprendeu a desenvolver para a plata-forma Android sobre a qual nenhum dos integrantes tinha conhecimento preacutevio Tambeacutemfoi possiacutevel aprender e utilizar a metodologia aacutegil com Scrum para guiar o processo de de-senvolvimento

Ao fim do ciclo de desenvolvimento conseguiu-se entregar um aplicativo em funciona-mento que fornece a previsatildeo de espera no instante da consulta de estabelecimentos cadas-trados no banco de dados armazenado na nuvem

Na versatildeo atual do aplicativo natildeo foi implementado um sistema para o cadastro de novosestabelecimentos Isso soacute eacute possiacutevel atraveacutes da inserccedilatildeo direta no banco de dados atraveacutes dainterface fornecida pelo console do Firebase Atualmente estatildeo cadastrados 5 restaurantesos quais foram visitados durante o desenvolvimento do projeto Para que o cadastro deestabelecimentos escale seria necessaacuterio a implementaccedilatildeo de uma funcionalidade que permitaao usuaacuterio adicionar novos estabelecimentos a partir de locais disponiacuteveis na API de locaisda Google

43

45

46 APEcircNDICE A

Apecircndice A

Dados coletados

Figura A1 Dados de tempo de espera para grupos de tamanhos variados para cada horaacuterio e emcada dia da semana obtidos em entrevista em restaurantes Outback Steakhouse Shopping Uniatildeo nomecircs de outubro

Referecircncias Bibliograacuteficas

[1] Backpropagation httpmbpsourceforgenet Accesso em Janeiro 2017 14

[2] Bitbucket httpsbitbucketorgproduct Accesso em Dezembro 2016 19

[3] Crowdsourcing httpswwwmerriam-webstercomdictionarycrowdsourcing Ac-cesso em Novembro 2016 21

[4] Designing a survey httpwwwsciencebuddiesorgscience-fair-projectsproject_ideasSoc_surveyshtml Accesso em Outubro 2016 4 23

[5] Facebook httpswwwfacebookcom Accesso em Novembro 2016 24

[6] Firebase httpsfirebasegooglecom Accesso em Agosto 2016 20

[7] Getin app httpswwwgetinappcombrhomesao-paulo Accesso em Novembro2016 9

[8] Git 11 primeiros passos - sobre controle de versatildeo httpsgit-scmcombookpt-brv1Primeiros-passos-Sobre-Controle-de-Vers Accesso em Novembro 2016 19

[9] Google forms httpsdocsgooglecomforms Accesso em Novembro 2016 23

[10] Guia definitivo do project model canvas Project Builder 3

[11] Jsonorg introducing json httpwwwjsonorg Accesso em Novembro 2016 17

[12] Manifesto para desenvolvimento Aacutegil de software httpagilemanifestoorgisoptbrmanifestohtml Accesso em Novembro 2016 5

[13] Nosql httpsenwikipediaorgwikiNoSQL Accesso em Novembro 2016 20

[14] Outback steakhouse httpswwwoutbackcombrhome Accesso em Novembro 20169

[15] Restful api development with lumen microframework httpsbelitsoftcomlaravel-development-servicesapi-development Accesso em Novembro 2016 17

[16] Scrum httpswwwatlassiancomagilescrum Accesso em Novembro 2016 5

[17] Smartphone os market share 2016 q2 httpwwwidccomprodservsmartphone-os-market-sharejsp Accesso em Novembro 2016 15

[18] Smartphone os sales market share kantar worldpanel comtech httpwwwkantarworldpanelcomsmartphone-os-market-share Accesso em Novembro 2016 15

[19] Sourcetree httpswwwsourcetreeappcom Accesso em Dezembro 2016 19

47

48 REFEREcircNCIAS BIBLIOGRAacuteFICAS

[20] Sql httpsptkhanacademyorgcomputingcomputer-programmingsql Accesso emDezembro 2016 20

[21] Trello httpstrellocom Accesso em Novembro 2016 6

[22] Usability test httpsenwikipediaorgwikiUsability_testing Accesso em Novembro2016 36

[23] Versionone 2012 agile dev survey httpswwwversiononecompdf7th-Annual-State-of-Agile-Development-Surveypdf Accesso em Novembro 2016 5

[24] Waze httpswwwwazecom Accesso em Novembro 2016 1

[25] What is an open source httpsopensourcecomresourceswhat-open-source Accessoem Novembro 2016 15

[26] Xml tutorial httpwwww3schoolscomxml Accesso em Novembro 2016 17

[27] Paulo F Cabral dos Anjos Jr Aron Ifanger Maciel Christopher Silva de Paacutedua Com-posiccedilatildeo de carteiras de accedilotildees utilizando modelo de redes neurais artificiais e modelo derisco e retorno de Markowitz 2012 14

[28] Google Distance matrix api documentation httpsdevelopersgooglecommapsdocumentationdistance-matrix Accesso em Novembro 2016 17

[29] Alan Klement Designing features using job stories httpsblogintercomcomusing-job-stories-design-features-ui-ux Accesso em Novembro 2016 6

[30] Azmat Nafees Queuing theory and its application analysis of the sales checkout opera-tion in ica supermarket httpwwwstatisticsduseessaysD07ENafeespdf Accessoem Novembro 2016 12

[31] Eric Ries A Startup Enxuta Lua de papel primeira ediccedilatildeo edition 2012 3

  • Introduccedilatildeo
    • Motivaccedilatildeo
    • Trabalho Proposto
    • Estrutura da monografia
      • Estudos Preliminares
        • Desenvolvimento de Startups
          • Desenvolvimento de Questionaacuterios
            • Metodologia Aacutegil
            • Jobs to be done
            • Caacutelculo da previsatildeo do tempo de espera na fila
              • Descriccedilatildeo do problema
              • Meacutetodos de caacutelculo da espera
                  • Tecnologias utilizadas
                    • O sistema Android
                      • Organizaccedilatildeo de uma aplicaccedilatildeo Android
                        • JSON
                        • Google APIs
                        • Localizaccedilatildeo do Usuaacuterio
                        • Controle de Versatildeo
                        • Banco de dados
                          • Firebase
                            • Crowdsourcing
                              • Desenvolvimento do Projeto
                                • Pesquisa de Mercado
                                  • Pesquisa com o usuaacuterio
                                    • Projeto do Aplicativo
                                    • Aplicaccedilatildeo dos meacutetodos de caacutelculo de espera
                                      • Aplicando a meacutedia por periacuteodo
                                      • Aplicando teoria das filas
                                      • Aplicando redes neurais
                                      • Conclusatildeo sobre os meacutetodos estudados
                                        • Definiccedilatildeo da Interface do aplicativo
                                        • Explicaccedilatildeo das funcionalidades
                                        • Implementaccedilatildeo do banco de dados
                                          • Conclusatildeo
                                          • Dados coletados
                                          • Referecircncias Bibliograacuteficas

20 TECNOLOGIAS UTILIZADAS 36

banco de dados aprendidos no curso Laboratoacuterio de Banco de Dados foram

∙ SQL (Structured Query Language - Linguagem de Consulta Estruturada)[20] umalinguagem para atualizar deletar e requisitar informaccedilotildees atraveacutes de consultas emtabelas que possuem relaccedilatildeo entre si

∙ noSQL[13] um banco de dados que armazena e recupera informaccedilotildees modeladas deuma forma onde natildeo satildeo usadas tabelas relacionais

Como este uacuteltimo natildeo foi o foco da disciplina por falta de tempo decidiu-se por utilizaacute-lopara que o grupo pudesse aprender melhor esse modelo

Outra decisatildeo tomada foi a hospedagem dos dados na nuvem ou seja colocaacute-los em umservidor que natildeo seja local e conseguir acessaacute-los atraveacutes de uma conexatildeo via internet Dessemodo os dados sempre estaratildeo disponiacuteveis para serem consultados

361 Firebase

Buscando-se atender as decisotildees tomadas sobre o banco de dados procuramos um serviccedilode banco de dados da Google por conter ampla integraccedilatildeo com a plataforma de desenvolvi-mento Android por ser conhecido bastante utilizado e por possuir uma ampla comunidadede desenvolvedores dispostos a oferecer auxiacutelio em foacuteruns de discussatildeo de coacutedigos

Para atender esses requisitos escolheu-se o Firebase Realtime Database[6] desenvolvido edisponibilizado pela Google que consiste em um banco de dados noSQL com armazenamentona nuvem Esse serviccedilo armazena os dados do usuaacuterio no servidor da Google em formatoJSON e a cada alteraccedilatildeo sincroniza em tempo real com todos os clientes conectados

O grupo pode observar as seguintes vantagens de se trabalhar com a ferramenta existea sincronizaccedilatildeo em tempo real dos dados de todos os clientes e sua disponibilidade mesmocom o aplicativo offline ou seja quando o aplicativo natildeo estiver conectado a internet osdados do dispositivo moacutevel seratildeo armazenados e sincronizados com o banco de dados assimque a conexatildeo estiver disponiacutevel novamente Aleacutem disso os desenvolvedores possuem acessoa um console online (figura 33) onde o JSON eacute mostrado numa interface interativa de umaforma mais amigaacutevel e no qual eacute permitido editaacute-lo facilmente

37 CROWDSOURCING 21

Figura 33 Console online do Firebase onde os dados satildeo mostrados de forma mais amigaacutevel eintuitiva

Outra observaccedilatildeo feita foi que o Firebase Realtime Database funciona como o esperadose ele guardar uma coacutepia local dos dados em um arquivo JSON no celular Poreacutem isso natildeofoi visto como um problema pois como essa coacutepia pode ser salva em um arquivo texto oespaccedilo utilizado diminui consideravelmente

Na primeira vez que os dados satildeo criados e todas as vezes em que os dados forem atua-lizados por algum dispositivo moacutevel eacute enviada uma atualizaccedilatildeo que seraacute recebida atraveacutes delisteners por todos os aparelhos que utilizam o aplicativo para que eles atualizem seus res-pectivos JSONs Listeners satildeo interfaces de comunicaccedilatildeo que executam uma seacuterie de accedilotildeesassim que um outro evento esperado acontece

37 CrowdsourcingO termo Crowdsourcing tem origem nas palavras da liacutengua inglesa Crowd (multidatildeo) e

Outsourcing (terceirizaccedilatildeo) e eacute definido pelo dicionaacuterio Merriam Webster como A praacuteticade obtenccedilatildeo de serviccedilos ideias ou conteuacutedo solicitando contribuiccedilotildees de grandes grupos depessoas e especialmente da comunidade online [3] Esta praacutetica eacute utilizada para que sejapossiacutevel agrave comunidade contribuir com dados para algum programa ou serviccedilo como no apli-cativo Waze do qual a principal fonte de dados de tracircnsito acidentes e radares eacute obtida pormeio dos proacuteprios usuaacuterios

Capiacutetulo 4

Desenvolvimento do Projeto

Este capiacutetulo aborda o processo de desenvolvimento do projeto iniciado com o preen-chimento do diagrama Canvas e uma pesquisa de mercado direcionada ao usuaacuterio A partirdas informaccedilotildees coletadas foi possiacutevel projetar um aplicativo que atendesse as necessidadesexpostas pela pesquisa e selecionar as tecnologias necessaacuterias Tambeacutem eacute abordada a aplica-ccedilatildeo dos diferentes meacutetodos de caacutelculo da previsatildeo de tempo de espera que foram estudadose explicados no Capiacutetulo 2 Por fim satildeo expostas as diferentes versotildees do aplicativo duranteo processo e seus detalhes

41 Pesquisa de MercadoAntes de iniciar-se o desenvolvimento praacutetico algumas questotildees foram levantadas se

um aplicativo com as funcionalidades escolhidas seria de alguma forma uacutetil para o usuaacuterioe se sim qual metodologia deveria ser usada para que este produto fosse entregue o maiscompleto possiacutevel ateacute o final do ano Para responder a primeira pergunta desenvolveu-seum questionaacuterio

411 Pesquisa com o usuaacuterio

O questionaacuterio foi desenvolvido para avaliar a viabilidade do aplicativo e suas funciona-lidades e foi criado utilizando-se o Google Forms [9] Essa eacute uma ferramenta desenvolvidapelo Google que possibilita a criaccedilatildeo de formulaacuterios contendo diversos formatos de pergun-tas tanto dissertativas quanto de muacuteltipla escolha

Seguindo os princiacutepios de desenvolvimento de questionaacuterios [4] o conjunto de perguntasfoi mantido curto simples e de faacutecil entendimento Tambeacutem variou-se o tipo de questotildeesentre estruturadas (questotildees com respostas em forma de alternativas) e desestruturadas(questotildees com respostas em formato texto) seguindo esses mesmos princiacutepios para captarmelhor as informaccedilotildees dos entrevistados e evitar erros de entendimento

Com as respostas do questionaacuterio tinha-se o intuito de traccedilar um possiacutevel puacuteblico alvoconhecer seu modo de uso de dispositivos moacuteveis e validar a aplicabilidade de diferentesfuncionalidades pretendidas inicialmente sendo essas engajamento do usuaacuterio atraveacutes denotificaccedilotildees do sistema aceitaccedilatildeo de sugestotildees de locais alternativos avaliaccedilatildeo da existecircnciado problema que queremos resolver (se este aplicativo supre uma necessidade real do usuaacute-rio) e aceitaccedilatildeo do aplicativo

23

24 DESENVOLVIMENTO DO PROJETO 41

Para a divulgaccedilatildeo redes sociais como Facebook [5] e sistemas de mensagem instantacircneascomo WhatsApp foram usados e o envio de respostas foi restrito ateacute trecircs semanas apoacutes suaprimeira postagem Neste periacuteodo foram obtidas 210 respostas as quais ajudaram a definiros aspectos do sistema a ser desenvolvido

O questionaacuterio foi dividido em duas subseccedilotildees perfil do usuaacuterio e funcionalidade Comelas obteve-se os seguintes resultados

41 PESQUISA DE MERCADO 25

Questatildeo 1

Figura 41 Graacutefico pizza da distribuiccedilatildeo das respostas em relaccedilatildeo a idade dos pesquisados

As faixas de idade apresentadas estatildeo desbalanceadas por natildeo terem a mesma quantidadede anos em cada uma poreacutem essa divisatildeo foi pensada levando-se em conta a fluecircncia comtecnologia que cada idade possui Com o resultado verificou-se que do puacuteblico alcanccediladocom a pesquisa a maioria estaacute na faixa de 18 a 25 anos de idade assumida como parcelacom maior conhecimento tecnoloacutegico

Questatildeo 2

Figura 42 Graacutefico pizza da distribuiccedilatildeo das respostas em relaccedilatildeo ao sistema operacional

Esta questatildeo foi pensada para medir a porcentagem de cada sistema operacional pre-sente nos celulares do puacuteblico Com ela descobriu-se que 639 das pessoas dentro desse

26 DESENVOLVIMENTO DO PROJETO 41

grupo possuem o sistema Android enquanto 234 possuem iOS e 38 Windows phoneEssa pergunta foi incluiacuteda para um melhor direcionamento do desenvolvimento do aplicativo

Uma questatildeo levantada ao aplicar esse questionaacuterio foi a dificuldade que algumas pessoasencontraram para identificar a versatildeo do proacuteprio aparelho Poreacutem para manter a consistecircnciadas respostas decidiu-se natildeo mudar nada nesta questatildeo para remediar isso

Questatildeo 3

Figura 43 Graacutefico em barras da distribuiccedilatildeo de frequecircncias mensais de cada local analisado

41 PESQUISA DE MERCADO 27

Questatildeo 4

Figura 44 Graacutefico em pizza da distribuiccedilatildeo de interesse do usuaacuterio no tempo de espera de cadalocal

A princiacutepio viu-se muitas possiacuteveis aplicaccedilotildees para a previsatildeo de tempo de espera Paraentender qual seria a prioridade do puacuteblico as questotildees acima foram incluiacutedas A primeiraverificou a frequecircncia de visitas em alguns locais e a segunda serviu para analisar qualestabelecimento despertava mais interesse nos entrevistados quanto ao quesito fila Nos doiscasos restaurantes se destacaram com o maior interesse

Questatildeo 5

Figura 45 Graacutefico em barras da distribuiccedilatildeo de interesse do usuaacuterio por cada item avaliado

Para acompanhar o dado de espera e fornecer mais informaccedilotildees relevantes ao usuaacuteriosem potencial perguntou-se quais outras informaccedilotildees eles acham interessante saber sobre umdeterminado estabelecimento Com isso descobriu-se que a faixa de preccedilo o trajeto ateacute olocal e o cardaacutepio seriam dados importantes de se obter juntamente com o tempo de espera

28 DESENVOLVIMENTO DO PROJETO 41

Questatildeo 6O que vocecirc costuma fazer para evitar filasNeste ponto testou-se se a soluccedilatildeo proposta atraveacutes do aplicativo resolveria o problema dousuaacuterio de uma forma melhor do que a soluccedilatildeo atualmente utilizada Para isso foi perguntadoo que as pessoas fazem para evitar filas e as principais respostas foram

∙ Evitar horaacuterios de pico

∙ Chegar cedo

∙ Ir em outro lugar caso uma fila seja encontrada

∙ Tentar realizar reservas antecipadamente

∙ Se distrair com livroscelular

Notou-se que as soluccedilotildees utilizadas atualmente natildeo suprem as necessidades dos entre-vistados pois mesmo em horaacuterios natildeo convencionais pode-se encontrar filas ou quandodecide-se esperar na fila muito tempo eacute perdido Concluiu-se que a soluccedilatildeo proposta a par-tir do aplicativo resolve de forma mais abrangente o problema pois ajuda o usuaacuterio a evitarhoraacuterios de pico inesperados

Questatildeo 7

Figura 46 Graacutefico em pizza da distribuiccedilatildeo do meio de transporte utilizado pelos usuaacuterios

Essa questatildeo foi formulada com o objetivo de verificar quais meios de transporte seriamincluiacutedos com previsatildeo de tempo de trajeto no aplicativo Foi verificado que a maioria dosentrevistados utilizam transporte puacuteblico seguido por carro

41 PESQUISA DE MERCADO 29

Questatildeo 8

Figura 47 Graacutefico em pizza da distribuiccedilatildeo do interesse do usuaacuterio pela informaccedilatildeo fornecida

Questatildeo 9

Figura 48 Graacutefico em pizza da distribuiccedilatildeo de quantidade de quilocircmetros que o usuaacuterio sedeslocaria para ir a um local com menos fila

Com essas questotildees foi verificado que algo importante para o usuaacuterio eacute saber de outrosestabelecimentos que possam oferecer tempos de espera menores nas redondezas de onde ousuaacuterio se encontra que eacute uma das funcionalidades que desejaacutevamos utilizar no sistema

30 DESENVOLVIMENTO DO PROJETO 41

Questatildeo 10

Figura 49 Graacutefico em barras da distribuiccedilatildeo de sentimento do usuaacuterio em relaccedilatildeo a notificaccedilatildeode aplicativos

Questatildeo 11

Figura 410 Graacutefico em pizza da distribuiccedilatildeo de opiniatildeo do usuaacuterio sobre desabilitar notificaccedilotildeesem celular

42 PESQUISA DE MERCADO 31

Questatildeo 12

Figura 411 Graacutefico em pizza da distribuiccedilatildeo de opiniatildeo do usuaacuterio sobre habilitar GPS emcelular

A ideia inicial era poder usar o GPS para verificar a localizaccedilatildeo do usuaacuterio e enviarnotificaccedilotildees quando este estivesse parado nas proximidades de algum dos estabelecimentoscadastrados Para que essa funcionalidade possa existir eacute necessaacuterio que o aplicativo tenhaacesso agrave localizaccedilatildeo precisa da pessoa atraveacutes do GPS ou internet ateacute mesmo quando natildeoestiver aberto Aleacutem disso tambeacutem eacute necessaacuterio que as notificaccedilotildees estejam habilitadas parafinalizar esta interaccedilatildeo Entatildeo as perguntas 10 11 e 12 foram incluiacutedas no questionaacuterio Ob-servando as respostas foi possiacutevel verificar que 295 das pessoas que responderam deixamambas as funcionalidades habilitadas (GPS e notificaccedilotildees) Com isso pudemos prosseguircom essa ideia e tambeacutem pensar em possiacuteveis alternativas de interaccedilatildeo e engajamento como usuaacuterio

Por conta dessa pesquisa ter sido compartilhada atraveacutes das contas das redes sociais ecomunicadores dos componentes deste grupo sabe-se que este pode apresentar um resultadoviesado mas que mesmo assim natildeo deve ser desconsiderado e que muito ajudou a sanar asduacutevidas iniciaisComo resultado traccedilamos o perfil do entrevistado

∙ Faixa etaacuteria predominante entre 18 e 30 anos

∙ Possui sistema operacional Android (versotildees 4 5 e 6)

∙ Vai a restaurantes com certa frequecircncia mensal resultando em interesses sobre infor-maccedilotildees relacionadas a esse estabelecimento

∙ Costuma chegar cedo ou evitar os horaacuterios de pico para evitar filas nos locais

∙ Carro e transporte coletivo satildeo os principais meios de transporte

∙ Se deslocaria para um estabelecimento semelhante que possui menos fila contanto queeste fique num raio de 2km de distacircncia

32 DESENVOLVIMENTO DO PROJETO 43

42 Projeto do AplicativoO grupo comeccedilou o projeto com o preenchimento do diagrama Canvas(figura 412) apre-

sentado na Seccedilatildeo 21 Desse modo foi adquirida uma ideia mais consistente e uma base paracomeccedilar a implementaccedilatildeo

Figura 412 Diagrama Canvas preenchido pelo grupo

Com o modelo de negoacutecios definido e com base no resultado da pesquisa com o usuaacuterioapresentada na seccedilatildeo seguinte foram aplicadas pequenas mudanccedilas no projeto para melhoradequar-se agraves necessidades e ao perfil do puacuteblico alvo

Para o desenvolvimento foi utilizado um meacutetodo aacutegil baseado no scrum com sprints de3 a 4 semanas devido agrave disponibilidade dos membros do grupo Os encontros natildeo eram diaacute-rios como recomendado para o meacutetodo scrum tambeacutem em razatildeo da disponibilidade Haviamstand ups (discussotildees raacutepidas no comeccedilo de cada encontro) e retrospectivas ao final de cadasprint A cada sprint eram selecionadas histoacuterias e tarefas para serem executadas e caso natildeofossem concluiacutedas ao final da iteraccedilatildeo eram inseridas ao backlog e feitas no sprint seguinte

43 Aplicaccedilatildeo dos meacutetodos de caacutelculo de espera

431 Aplicando a meacutedia por periacuteodo

Aplicando-se no trecho abaixo a teacutecnica desenvolvida na Seccedilatildeo 242 para uma queryrealizada no dia 19082016 no intervalo de 2040 - 2055 analisa-se a semana anterior quepossua tais intervalos Assim o saacutebado dia 06082016 seraacute selecionado

43 APLICACcedilAtildeO DOS MEacuteTODOS DE CAacuteLCULO DE ESPERA 33

Entrada Qtd Pessoas Notificado Espera

6816 2043 2 862016 2053 1606

6816 2044 2 862016 2055 674

6816 2048 2 862016 2056 528

6816 2048 2 862016 2057 520

6816 2051 2 862016 2107 1118

6816 2051 3 862016 2110 1305

6816 2052 2 862016 2110 1273

6816 2052 2 862016 2111 1179

6816 2053 2 862016 2112 1217

6816 2053 2 NULL 59

6816 2054 3 862016 2119 1541

6816 2055 2 862016 2117 1444

6816 2055 2 862016 2120 1570

6816 2055 2 862016 2122 1613

Tabela 41 Trecho do dia 06082016 entre os horaacuterios das 2043 agraves 2055 um intervalo de 12minutos retirado dos dados da empresa Get In

Com esses dados obteve-se a meacutedia de espera de 1080 segundos (18 minutos) a qualseria sugerida para o usuaacuterio com a busca e desvio padratildeo de 465144719 segundos (775 mi-nutos) Dentro desse intervalo tem-se como maacuteximo tempo de espera 1613 segundos (2688minutos) e como miacutenimo 59 segundos (1 minuto) Analisando-se os dados do dia 19082016no mesmo periacuteodo temos

34 DESENVOLVIMENTO DO PROJETO 43

Entrada Pessoas Notificado Espera Erro previsatildeo Erro p 2 pessoas

19816 2043 2 8192016 2051 544 -563 522

19816 2043 2 8192016 2052 605 -502 461

19816 2044 2 8192016 2056 723 -384 343

19816 2046 4 8192016 2119 1988 881 X

19816 2048 2 8192016 2102 919 188 147

19816 2051 2 8192016 2103 821 286 245

19816 2051 3 8192016 2108 1773 666 X

19816 2053 2 8192016 2110 1083 24 -17

19816 2053 2 8192016 2111 1105 2 -39

19816 2053 2 8192016 2112 1169 62 -103

19816 2055 2 8192016 2114 1447 340 -381

Tabela 42 Trecho do dia 19082016 entre os horaacuterios das 2043 agraves 2055um intervalo de 12minutos retirado dos dados da empresa Get In

Ou seja se um grupo chegasse dentro desse periacuteodo e a previsatildeo dada fosse a meacutediaobtida anteriormente o erro calculado pela diferenccedila entre o tempo sugerido e o real tempode espera estaria no intervalo de 15 minutos para menos ou 8 minutos para mais Sendoesse um valor aceitaacutevel

Um proacuteximo passo eacute a restriccedilatildeo dos registros a grupos com 2 integrantes Com tal restri-ccedilatildeo a previsatildeo de espera eacute de 1066 segundos (1776 minutos) Aplicando essa nova meacutedia aosregistros com 2 integrantes do dia 19082016 obteacutem-se um erro (Coluna 6 - erro previsatildeopara 2 pessoas) menor do que o anterior O intervalo do erro calculado neste caso seria de 522segundos (87 minutos) para mais e 381 segundos (635 minutos) para menos Este resultadoeacute ainda mais favoraacutevel mostrando que a inclusatildeo de mais filtros para o caacutelculo da previsatildeomelhorou o tempo previsto

432 Aplicando teoria das filas

A teoria das filas (Seccedilatildeo 242) eacute uma ferramenta muito completa que calcula muitos dadosuacuteteis para a previsatildeo de espera Contudo por conta da necessidade de informaccedilotildees sobreo tempo de atendimento a qual natildeo estaacute contida no banco utilizado esta teoria natildeo podeser aplicada neste caso Poreacutem esse dado pode ter um valor assumido para que a utilizaccedilatildeodessa teoria fosse possiacutevel entretanto a sua precisatildeo ficaria comprometida e imprevisiacutevel

433 Aplicando redes neurais

Para aplicar o que foi estudado na Seccedilatildeo 242 foi executado o software com o mecircs deAgosto como teste o mecircs de Setembro como treino e o limite do erro quadraacutetico como 001 eobteve-se a tabela presente no apecircndice B Na tabela podemos ver o tempo de fila esperadoou seja o tempo contido na tabela do mecircs de Setembro o tempo que o algoritmo deu comoresposta baseado no mecircs de Agosto e o erro entre eles respectivamente

44 DEFINICcedilAtildeO DA INTERFACE DO APLICATIVO 35

Figura 413 Software Multiple Back-Propagation com a configuraccedilatildeo escolhida para os dadosdisponiacuteveis

Mesmo o erro se mantendo em 0018 os dados obtidos possuem um erro padratildeo de 15minutos Se mais dados forem adicionados o criteacuterio de parada pode ser atingido e assimuma previsatildeo melhor pode ser alcanccedilada

434 Conclusatildeo sobre os meacutetodos estudados

Dentre todas as possibilidades estudadas visualizamos na meacutedia por periacuteodo a melhoropccedilatildeo assumindo os dados disponiacuteveis para teste Se mais paracircmetros fossem fornecidoscomo o tempo de atendimento a teoria das filas seria uma boa opccedilatildeo para fornecer a pre-visatildeo de espera E se mais dados estivessem disponiacuteveis as redes neurais conseguiriam umaaproximaccedilatildeo melhor e assim seria uma boa opccedilatildeo tambeacutem

44 Definiccedilatildeo da Interface do aplicativoComo um primeiro protoacutetipo foi desenvolvida uma interface simples que tinha como tela

de iniacutecio um mapa com um campo para buscas na parte superior

36 DESENVOLVIMENTO DO PROJETO 44

Figura 414 Fluxo de telas do primeiro protoacutetipo

Ao efetuar uma busca por algum estabelecimento uma tela mostrando o tempo de esperaaproximado da fila no local era exibida junto com bototildees que permitiam selecionar o meiode transporte visualizar outras opccedilotildees ou dar iniacutecio a rota ateacute o local desejado Tambeacutemhavia uma notificaccedilatildeo para quando a pessoa estivesse parada proacutexima a um restaurantecadastrado que direcionaria o usuaacuterio a uma tela com um cronocircmetro do tempo de esperana fila

Para testar essa visualizaccedilatildeo escolhemos algumas pessoas e realizamos um teste deusabilidade[22] este teste eacute feito da seguinte forma

44 DEFINICcedilAtildeO DA INTERFACE DO APLICATIVO 37

Uma contextualizaccedilatildeo eacute feita para o voluntaacuterio e entatildeo uma tarefa eacute passada para sercompletada Os integrantes do grupo observam dificuldades enfrentadas pelo entrevistado etomam notas Esse teste eacute repetido algumas vezes e seu resultado eacute coletado para avaliaccedilatildeoe modificaccedilatildeo das funcionalidades

Figura 415 Tela de detalhes de um restaurante(segunda versatildeo)

Notou-se que algumas funcionalidadespareceram confusas e natildeo intuitivas porexemplo natildeo ficou claro se o tempo mos-trado era de trajeto ou de espera na filanem qual era o meio de transporte utili-zado

Logo esse protoacutetipo foi reformuladocom o intuito de melhorar a experi-ecircncia do usuaacuterio com o nosso aplica-tivo

Foram colocados aleacutem do tempo deespera da fila o tempo que o usuaacuteriolevaria para chegar ateacute o local selecio-nado (conforme o tipo de transporte es-colhido) e a quantidade estimada de pes-soas na fila O tempo total (espera so-mado ao tempo de deslocamento) ga-nhou destaque entre as informaccedilotildees doestabelecimento e o botatildeo que direcionao usuaacuterio ao trajeto ficou mais especiacute-fico

Tambeacutem cogitou-se a possibilidade deadicionar login e um perfil de usuaacuteriojunto com uma lista de restaurantes favo-ritos

O fluxo das telas deste novo protoacutetipo ficou como mostra o esquema a seguir

38 DESENVOLVIMENTO DO PROJETO 44

Figura 416 Fluxo de telas do segundo protoacutetipo

44 DEFINICcedilAtildeO DA INTERFACE DO APLICATIVO 39

Figura 417 Tela de detalhes de um restaurante(terceira versatildeo)

Apoacutes outras avaliaccedilotildees mais algumaspequenas alteraccedilotildees foram realizadas nainterface Foi decidido que seria inviaacute-vel estimar o nuacutemero de pessoas nafila entatildeo essa funcionalidade foi remo-vida

Notificaccedilotildees foram adicionadas paraquando o usuaacuterio estiver parado na aacutereado restaurante para que ele possa con-tribuir com informaccedilotildees sobre a fila quepegou aleacutem de um botatildeo de contri-buiccedilatildeo ter sido inserido na tela ini-cial

40 DESENVOLVIMENTO DO PROJETO 45

O fluxo de telas do aplicativo atual ficou da seguinte forma

Figura 418 Fluxo de telas do terceiro protoacutetipo

46 EXPLICACcedilAtildeO DAS FUNCIONALIDADES 41

45 Explicaccedilatildeo das funcionalidadesEsta seccedilatildeo explica as funcionalidades do produto utilizando a figura 418

A tela inicial (3) exibe uma lista de restaurantes incluindo seus respectivos tempos detrajeto e tempo de espera na fila Ao clicar no botatildeo ldquo+rdquo uma caixa de diaacutelogo eacute aberta(4) onde eacute possiacutevel adicionar o tempo que o usuaacuterio esperou na fila Primeiro eacute escolhido orestaurante depois a data e hora que a pessoa chegou na fila e por fim o tempo de esperaem minutos Ao tocar em ldquoEnviar Feedback rdquo os dados satildeo incluiacutedos no banco de dados eatualizados para os outros usuaacuterios Assim eacute apicado o conceito de Crowdsourcing no apli-cativo

Ao tocar em um item da lista de restaurantes seraacute aberta a tela de detalhes de um res-taurante (5) na qual eacute possiacutevel ver com mais clareza os tempos de trajeto e espera o tempototal o endereccedilo do estabelecimento e um pequeno mapa centrado no local Pressionandoo botatildeo ldquoDireccedilotildeesrdquo o usuaacuterio seraacute redirecionado ao aplicativo de mapas de sua preferecircnciano caso do exemplo (8) o Google Maps jaacute traccedilando a rota da localizaccedilatildeo do usuaacuterio para oestabelecimento em questatildeo

Novamente na tela inicial tocando no iacutecone de lupa eacute possiacutevel realizar uma busca digi-tando o nome do estabelecimento na caixa de texto a qual exibe sugestotildees dependendo doque foi digitado Ao clicar em um dos resultados da busca o usuaacuterio eacute novamente direcionadopara a tela de detalhes do restaurante (5)

Tambeacutem eacute possiacutevel tocar no iacutecone de mapa na tela inicial onde seraacute mostrado um mapacentrado na localizaccedilatildeo do usuaacuterio

Ao ficar parado por um tempo em um mesmo local proacuteximo a um estabelecimentocadastrado o usuaacuterio eacute perguntado em uma notificaccedilatildeo quanto tempo ele permaneceu nafila Ao tocar na notificaccedilatildeo a caixa de diaacutelogo para feedback do usuaacuterio seraacute aberta (4) jaacutecom o restaurante preenchido e apoacutes o feedback a janela seraacute fechada e os dados enviadosao banco de dados

46 Implementaccedilatildeo do banco de dadosO banco de dados do aplicativo foi modelado e populado em forma de aacutervore (Fi-

gura 419) de forma a facilitar o acesso aos dados necessaacuterios ao aplicativo No primeironiacutevel estatildeo os ids dos restaurantes Cada id de restaurante guarda a localizaccedilatildeo (latitudelongitude) do restaurante o nome o endereccedilo e um objeto fila O objeto fila guarda todos osdias da semana (domingo a saacutebado) e cada dia da semana possui 24 campos um para cadahora do dia Cada hora possui o tempo meacutedio de espera da fila naquela hora e um peso paraesse tempo O peso eacute um valor que aumenta de acordo com o nuacutemero de feedbacks dadospara que o novo valor do tempo meacutedio seja calculado de forma consistente

Modelamos o banco de dados de uma forma que respeitasse uma hierarquia de dados

42 DESENVOLVIMENTO DO PROJETO 46

Figura 419 Aacutervore que ilustra a organizaccedilatildeo de um restaurante no banco de dados

Com o banco de dados jaacute populado o aplicativo faz consultas e atualizaccedilotildees de dadosConsultas satildeo feitas ao criar a tela de listagem de restaurantes e de detalhes de um restau-rante consultado As atualizaccedilotildees satildeo feitas quando o usuaacuterio manda o feedback de tempo deespera em um estabelecimento em determinado horaacuterio o aplicativo calcula a nova meacutedia eatualiza o campo do respectivo horaacuterio

Capiacutetulo 5

Conclusatildeo

Ao longo dos capiacutetulos deste trabalho pocircde-se acompanhar todo o processo de criaccedilatildeo edesenvolvimento do aplicativo que apoacutes finalizado foi batizado com o nome Queue

Comeccedilando com um problema para o qual o grupo almejava oferecer uma soluccedilatildeoacabou-se por adentrar-se um pouco no campo da Estatiacutestica e estudar diversas metodo-logias que poderiam ser uacuteteis para fornecer um caacutelculo de previsatildeo de espera meacutedia porperiacuteodo aplicaccedilatildeo da teoria das filas e utilizaccedilatildeo de redes neurais

Atraveacutes de uma parceria com a empresa GetIn obteve-se acesso a uma grande quantidadede dados e foi possiacutevel utilizaacute-los em anaacutelises feitas nas metodologias escolhidas conseguindoassim resultados relevantes Por meio destes foi feita a escolha de um dos meacutetodos para ocaacutelculo da previsatildeo de filas a meacutedia por periacuteodo

Aleacutem desses estudos ao longo do ano o grupo aprendeu a desenvolver para a plata-forma Android sobre a qual nenhum dos integrantes tinha conhecimento preacutevio Tambeacutemfoi possiacutevel aprender e utilizar a metodologia aacutegil com Scrum para guiar o processo de de-senvolvimento

Ao fim do ciclo de desenvolvimento conseguiu-se entregar um aplicativo em funciona-mento que fornece a previsatildeo de espera no instante da consulta de estabelecimentos cadas-trados no banco de dados armazenado na nuvem

Na versatildeo atual do aplicativo natildeo foi implementado um sistema para o cadastro de novosestabelecimentos Isso soacute eacute possiacutevel atraveacutes da inserccedilatildeo direta no banco de dados atraveacutes dainterface fornecida pelo console do Firebase Atualmente estatildeo cadastrados 5 restaurantesos quais foram visitados durante o desenvolvimento do projeto Para que o cadastro deestabelecimentos escale seria necessaacuterio a implementaccedilatildeo de uma funcionalidade que permitaao usuaacuterio adicionar novos estabelecimentos a partir de locais disponiacuteveis na API de locaisda Google

43

45

46 APEcircNDICE A

Apecircndice A

Dados coletados

Figura A1 Dados de tempo de espera para grupos de tamanhos variados para cada horaacuterio e emcada dia da semana obtidos em entrevista em restaurantes Outback Steakhouse Shopping Uniatildeo nomecircs de outubro

Referecircncias Bibliograacuteficas

[1] Backpropagation httpmbpsourceforgenet Accesso em Janeiro 2017 14

[2] Bitbucket httpsbitbucketorgproduct Accesso em Dezembro 2016 19

[3] Crowdsourcing httpswwwmerriam-webstercomdictionarycrowdsourcing Ac-cesso em Novembro 2016 21

[4] Designing a survey httpwwwsciencebuddiesorgscience-fair-projectsproject_ideasSoc_surveyshtml Accesso em Outubro 2016 4 23

[5] Facebook httpswwwfacebookcom Accesso em Novembro 2016 24

[6] Firebase httpsfirebasegooglecom Accesso em Agosto 2016 20

[7] Getin app httpswwwgetinappcombrhomesao-paulo Accesso em Novembro2016 9

[8] Git 11 primeiros passos - sobre controle de versatildeo httpsgit-scmcombookpt-brv1Primeiros-passos-Sobre-Controle-de-Vers Accesso em Novembro 2016 19

[9] Google forms httpsdocsgooglecomforms Accesso em Novembro 2016 23

[10] Guia definitivo do project model canvas Project Builder 3

[11] Jsonorg introducing json httpwwwjsonorg Accesso em Novembro 2016 17

[12] Manifesto para desenvolvimento Aacutegil de software httpagilemanifestoorgisoptbrmanifestohtml Accesso em Novembro 2016 5

[13] Nosql httpsenwikipediaorgwikiNoSQL Accesso em Novembro 2016 20

[14] Outback steakhouse httpswwwoutbackcombrhome Accesso em Novembro 20169

[15] Restful api development with lumen microframework httpsbelitsoftcomlaravel-development-servicesapi-development Accesso em Novembro 2016 17

[16] Scrum httpswwwatlassiancomagilescrum Accesso em Novembro 2016 5

[17] Smartphone os market share 2016 q2 httpwwwidccomprodservsmartphone-os-market-sharejsp Accesso em Novembro 2016 15

[18] Smartphone os sales market share kantar worldpanel comtech httpwwwkantarworldpanelcomsmartphone-os-market-share Accesso em Novembro 2016 15

[19] Sourcetree httpswwwsourcetreeappcom Accesso em Dezembro 2016 19

47

48 REFEREcircNCIAS BIBLIOGRAacuteFICAS

[20] Sql httpsptkhanacademyorgcomputingcomputer-programmingsql Accesso emDezembro 2016 20

[21] Trello httpstrellocom Accesso em Novembro 2016 6

[22] Usability test httpsenwikipediaorgwikiUsability_testing Accesso em Novembro2016 36

[23] Versionone 2012 agile dev survey httpswwwversiononecompdf7th-Annual-State-of-Agile-Development-Surveypdf Accesso em Novembro 2016 5

[24] Waze httpswwwwazecom Accesso em Novembro 2016 1

[25] What is an open source httpsopensourcecomresourceswhat-open-source Accessoem Novembro 2016 15

[26] Xml tutorial httpwwww3schoolscomxml Accesso em Novembro 2016 17

[27] Paulo F Cabral dos Anjos Jr Aron Ifanger Maciel Christopher Silva de Paacutedua Com-posiccedilatildeo de carteiras de accedilotildees utilizando modelo de redes neurais artificiais e modelo derisco e retorno de Markowitz 2012 14

[28] Google Distance matrix api documentation httpsdevelopersgooglecommapsdocumentationdistance-matrix Accesso em Novembro 2016 17

[29] Alan Klement Designing features using job stories httpsblogintercomcomusing-job-stories-design-features-ui-ux Accesso em Novembro 2016 6

[30] Azmat Nafees Queuing theory and its application analysis of the sales checkout opera-tion in ica supermarket httpwwwstatisticsduseessaysD07ENafeespdf Accessoem Novembro 2016 12

[31] Eric Ries A Startup Enxuta Lua de papel primeira ediccedilatildeo edition 2012 3

  • Introduccedilatildeo
    • Motivaccedilatildeo
    • Trabalho Proposto
    • Estrutura da monografia
      • Estudos Preliminares
        • Desenvolvimento de Startups
          • Desenvolvimento de Questionaacuterios
            • Metodologia Aacutegil
            • Jobs to be done
            • Caacutelculo da previsatildeo do tempo de espera na fila
              • Descriccedilatildeo do problema
              • Meacutetodos de caacutelculo da espera
                  • Tecnologias utilizadas
                    • O sistema Android
                      • Organizaccedilatildeo de uma aplicaccedilatildeo Android
                        • JSON
                        • Google APIs
                        • Localizaccedilatildeo do Usuaacuterio
                        • Controle de Versatildeo
                        • Banco de dados
                          • Firebase
                            • Crowdsourcing
                              • Desenvolvimento do Projeto
                                • Pesquisa de Mercado
                                  • Pesquisa com o usuaacuterio
                                    • Projeto do Aplicativo
                                    • Aplicaccedilatildeo dos meacutetodos de caacutelculo de espera
                                      • Aplicando a meacutedia por periacuteodo
                                      • Aplicando teoria das filas
                                      • Aplicando redes neurais
                                      • Conclusatildeo sobre os meacutetodos estudados
                                        • Definiccedilatildeo da Interface do aplicativo
                                        • Explicaccedilatildeo das funcionalidades
                                        • Implementaccedilatildeo do banco de dados
                                          • Conclusatildeo
                                          • Dados coletados
                                          • Referecircncias Bibliograacuteficas

37 CROWDSOURCING 21

Figura 33 Console online do Firebase onde os dados satildeo mostrados de forma mais amigaacutevel eintuitiva

Outra observaccedilatildeo feita foi que o Firebase Realtime Database funciona como o esperadose ele guardar uma coacutepia local dos dados em um arquivo JSON no celular Poreacutem isso natildeofoi visto como um problema pois como essa coacutepia pode ser salva em um arquivo texto oespaccedilo utilizado diminui consideravelmente

Na primeira vez que os dados satildeo criados e todas as vezes em que os dados forem atua-lizados por algum dispositivo moacutevel eacute enviada uma atualizaccedilatildeo que seraacute recebida atraveacutes delisteners por todos os aparelhos que utilizam o aplicativo para que eles atualizem seus res-pectivos JSONs Listeners satildeo interfaces de comunicaccedilatildeo que executam uma seacuterie de accedilotildeesassim que um outro evento esperado acontece

37 CrowdsourcingO termo Crowdsourcing tem origem nas palavras da liacutengua inglesa Crowd (multidatildeo) e

Outsourcing (terceirizaccedilatildeo) e eacute definido pelo dicionaacuterio Merriam Webster como A praacuteticade obtenccedilatildeo de serviccedilos ideias ou conteuacutedo solicitando contribuiccedilotildees de grandes grupos depessoas e especialmente da comunidade online [3] Esta praacutetica eacute utilizada para que sejapossiacutevel agrave comunidade contribuir com dados para algum programa ou serviccedilo como no apli-cativo Waze do qual a principal fonte de dados de tracircnsito acidentes e radares eacute obtida pormeio dos proacuteprios usuaacuterios

Capiacutetulo 4

Desenvolvimento do Projeto

Este capiacutetulo aborda o processo de desenvolvimento do projeto iniciado com o preen-chimento do diagrama Canvas e uma pesquisa de mercado direcionada ao usuaacuterio A partirdas informaccedilotildees coletadas foi possiacutevel projetar um aplicativo que atendesse as necessidadesexpostas pela pesquisa e selecionar as tecnologias necessaacuterias Tambeacutem eacute abordada a aplica-ccedilatildeo dos diferentes meacutetodos de caacutelculo da previsatildeo de tempo de espera que foram estudadose explicados no Capiacutetulo 2 Por fim satildeo expostas as diferentes versotildees do aplicativo duranteo processo e seus detalhes

41 Pesquisa de MercadoAntes de iniciar-se o desenvolvimento praacutetico algumas questotildees foram levantadas se

um aplicativo com as funcionalidades escolhidas seria de alguma forma uacutetil para o usuaacuterioe se sim qual metodologia deveria ser usada para que este produto fosse entregue o maiscompleto possiacutevel ateacute o final do ano Para responder a primeira pergunta desenvolveu-seum questionaacuterio

411 Pesquisa com o usuaacuterio

O questionaacuterio foi desenvolvido para avaliar a viabilidade do aplicativo e suas funciona-lidades e foi criado utilizando-se o Google Forms [9] Essa eacute uma ferramenta desenvolvidapelo Google que possibilita a criaccedilatildeo de formulaacuterios contendo diversos formatos de pergun-tas tanto dissertativas quanto de muacuteltipla escolha

Seguindo os princiacutepios de desenvolvimento de questionaacuterios [4] o conjunto de perguntasfoi mantido curto simples e de faacutecil entendimento Tambeacutem variou-se o tipo de questotildeesentre estruturadas (questotildees com respostas em forma de alternativas) e desestruturadas(questotildees com respostas em formato texto) seguindo esses mesmos princiacutepios para captarmelhor as informaccedilotildees dos entrevistados e evitar erros de entendimento

Com as respostas do questionaacuterio tinha-se o intuito de traccedilar um possiacutevel puacuteblico alvoconhecer seu modo de uso de dispositivos moacuteveis e validar a aplicabilidade de diferentesfuncionalidades pretendidas inicialmente sendo essas engajamento do usuaacuterio atraveacutes denotificaccedilotildees do sistema aceitaccedilatildeo de sugestotildees de locais alternativos avaliaccedilatildeo da existecircnciado problema que queremos resolver (se este aplicativo supre uma necessidade real do usuaacute-rio) e aceitaccedilatildeo do aplicativo

23

24 DESENVOLVIMENTO DO PROJETO 41

Para a divulgaccedilatildeo redes sociais como Facebook [5] e sistemas de mensagem instantacircneascomo WhatsApp foram usados e o envio de respostas foi restrito ateacute trecircs semanas apoacutes suaprimeira postagem Neste periacuteodo foram obtidas 210 respostas as quais ajudaram a definiros aspectos do sistema a ser desenvolvido

O questionaacuterio foi dividido em duas subseccedilotildees perfil do usuaacuterio e funcionalidade Comelas obteve-se os seguintes resultados

41 PESQUISA DE MERCADO 25

Questatildeo 1

Figura 41 Graacutefico pizza da distribuiccedilatildeo das respostas em relaccedilatildeo a idade dos pesquisados

As faixas de idade apresentadas estatildeo desbalanceadas por natildeo terem a mesma quantidadede anos em cada uma poreacutem essa divisatildeo foi pensada levando-se em conta a fluecircncia comtecnologia que cada idade possui Com o resultado verificou-se que do puacuteblico alcanccediladocom a pesquisa a maioria estaacute na faixa de 18 a 25 anos de idade assumida como parcelacom maior conhecimento tecnoloacutegico

Questatildeo 2

Figura 42 Graacutefico pizza da distribuiccedilatildeo das respostas em relaccedilatildeo ao sistema operacional

Esta questatildeo foi pensada para medir a porcentagem de cada sistema operacional pre-sente nos celulares do puacuteblico Com ela descobriu-se que 639 das pessoas dentro desse

26 DESENVOLVIMENTO DO PROJETO 41

grupo possuem o sistema Android enquanto 234 possuem iOS e 38 Windows phoneEssa pergunta foi incluiacuteda para um melhor direcionamento do desenvolvimento do aplicativo

Uma questatildeo levantada ao aplicar esse questionaacuterio foi a dificuldade que algumas pessoasencontraram para identificar a versatildeo do proacuteprio aparelho Poreacutem para manter a consistecircnciadas respostas decidiu-se natildeo mudar nada nesta questatildeo para remediar isso

Questatildeo 3

Figura 43 Graacutefico em barras da distribuiccedilatildeo de frequecircncias mensais de cada local analisado

41 PESQUISA DE MERCADO 27

Questatildeo 4

Figura 44 Graacutefico em pizza da distribuiccedilatildeo de interesse do usuaacuterio no tempo de espera de cadalocal

A princiacutepio viu-se muitas possiacuteveis aplicaccedilotildees para a previsatildeo de tempo de espera Paraentender qual seria a prioridade do puacuteblico as questotildees acima foram incluiacutedas A primeiraverificou a frequecircncia de visitas em alguns locais e a segunda serviu para analisar qualestabelecimento despertava mais interesse nos entrevistados quanto ao quesito fila Nos doiscasos restaurantes se destacaram com o maior interesse

Questatildeo 5

Figura 45 Graacutefico em barras da distribuiccedilatildeo de interesse do usuaacuterio por cada item avaliado

Para acompanhar o dado de espera e fornecer mais informaccedilotildees relevantes ao usuaacuteriosem potencial perguntou-se quais outras informaccedilotildees eles acham interessante saber sobre umdeterminado estabelecimento Com isso descobriu-se que a faixa de preccedilo o trajeto ateacute olocal e o cardaacutepio seriam dados importantes de se obter juntamente com o tempo de espera

28 DESENVOLVIMENTO DO PROJETO 41

Questatildeo 6O que vocecirc costuma fazer para evitar filasNeste ponto testou-se se a soluccedilatildeo proposta atraveacutes do aplicativo resolveria o problema dousuaacuterio de uma forma melhor do que a soluccedilatildeo atualmente utilizada Para isso foi perguntadoo que as pessoas fazem para evitar filas e as principais respostas foram

∙ Evitar horaacuterios de pico

∙ Chegar cedo

∙ Ir em outro lugar caso uma fila seja encontrada

∙ Tentar realizar reservas antecipadamente

∙ Se distrair com livroscelular

Notou-se que as soluccedilotildees utilizadas atualmente natildeo suprem as necessidades dos entre-vistados pois mesmo em horaacuterios natildeo convencionais pode-se encontrar filas ou quandodecide-se esperar na fila muito tempo eacute perdido Concluiu-se que a soluccedilatildeo proposta a par-tir do aplicativo resolve de forma mais abrangente o problema pois ajuda o usuaacuterio a evitarhoraacuterios de pico inesperados

Questatildeo 7

Figura 46 Graacutefico em pizza da distribuiccedilatildeo do meio de transporte utilizado pelos usuaacuterios

Essa questatildeo foi formulada com o objetivo de verificar quais meios de transporte seriamincluiacutedos com previsatildeo de tempo de trajeto no aplicativo Foi verificado que a maioria dosentrevistados utilizam transporte puacuteblico seguido por carro

41 PESQUISA DE MERCADO 29

Questatildeo 8

Figura 47 Graacutefico em pizza da distribuiccedilatildeo do interesse do usuaacuterio pela informaccedilatildeo fornecida

Questatildeo 9

Figura 48 Graacutefico em pizza da distribuiccedilatildeo de quantidade de quilocircmetros que o usuaacuterio sedeslocaria para ir a um local com menos fila

Com essas questotildees foi verificado que algo importante para o usuaacuterio eacute saber de outrosestabelecimentos que possam oferecer tempos de espera menores nas redondezas de onde ousuaacuterio se encontra que eacute uma das funcionalidades que desejaacutevamos utilizar no sistema

30 DESENVOLVIMENTO DO PROJETO 41

Questatildeo 10

Figura 49 Graacutefico em barras da distribuiccedilatildeo de sentimento do usuaacuterio em relaccedilatildeo a notificaccedilatildeode aplicativos

Questatildeo 11

Figura 410 Graacutefico em pizza da distribuiccedilatildeo de opiniatildeo do usuaacuterio sobre desabilitar notificaccedilotildeesem celular

42 PESQUISA DE MERCADO 31

Questatildeo 12

Figura 411 Graacutefico em pizza da distribuiccedilatildeo de opiniatildeo do usuaacuterio sobre habilitar GPS emcelular

A ideia inicial era poder usar o GPS para verificar a localizaccedilatildeo do usuaacuterio e enviarnotificaccedilotildees quando este estivesse parado nas proximidades de algum dos estabelecimentoscadastrados Para que essa funcionalidade possa existir eacute necessaacuterio que o aplicativo tenhaacesso agrave localizaccedilatildeo precisa da pessoa atraveacutes do GPS ou internet ateacute mesmo quando natildeoestiver aberto Aleacutem disso tambeacutem eacute necessaacuterio que as notificaccedilotildees estejam habilitadas parafinalizar esta interaccedilatildeo Entatildeo as perguntas 10 11 e 12 foram incluiacutedas no questionaacuterio Ob-servando as respostas foi possiacutevel verificar que 295 das pessoas que responderam deixamambas as funcionalidades habilitadas (GPS e notificaccedilotildees) Com isso pudemos prosseguircom essa ideia e tambeacutem pensar em possiacuteveis alternativas de interaccedilatildeo e engajamento como usuaacuterio

Por conta dessa pesquisa ter sido compartilhada atraveacutes das contas das redes sociais ecomunicadores dos componentes deste grupo sabe-se que este pode apresentar um resultadoviesado mas que mesmo assim natildeo deve ser desconsiderado e que muito ajudou a sanar asduacutevidas iniciaisComo resultado traccedilamos o perfil do entrevistado

∙ Faixa etaacuteria predominante entre 18 e 30 anos

∙ Possui sistema operacional Android (versotildees 4 5 e 6)

∙ Vai a restaurantes com certa frequecircncia mensal resultando em interesses sobre infor-maccedilotildees relacionadas a esse estabelecimento

∙ Costuma chegar cedo ou evitar os horaacuterios de pico para evitar filas nos locais

∙ Carro e transporte coletivo satildeo os principais meios de transporte

∙ Se deslocaria para um estabelecimento semelhante que possui menos fila contanto queeste fique num raio de 2km de distacircncia

32 DESENVOLVIMENTO DO PROJETO 43

42 Projeto do AplicativoO grupo comeccedilou o projeto com o preenchimento do diagrama Canvas(figura 412) apre-

sentado na Seccedilatildeo 21 Desse modo foi adquirida uma ideia mais consistente e uma base paracomeccedilar a implementaccedilatildeo

Figura 412 Diagrama Canvas preenchido pelo grupo

Com o modelo de negoacutecios definido e com base no resultado da pesquisa com o usuaacuterioapresentada na seccedilatildeo seguinte foram aplicadas pequenas mudanccedilas no projeto para melhoradequar-se agraves necessidades e ao perfil do puacuteblico alvo

Para o desenvolvimento foi utilizado um meacutetodo aacutegil baseado no scrum com sprints de3 a 4 semanas devido agrave disponibilidade dos membros do grupo Os encontros natildeo eram diaacute-rios como recomendado para o meacutetodo scrum tambeacutem em razatildeo da disponibilidade Haviamstand ups (discussotildees raacutepidas no comeccedilo de cada encontro) e retrospectivas ao final de cadasprint A cada sprint eram selecionadas histoacuterias e tarefas para serem executadas e caso natildeofossem concluiacutedas ao final da iteraccedilatildeo eram inseridas ao backlog e feitas no sprint seguinte

43 Aplicaccedilatildeo dos meacutetodos de caacutelculo de espera

431 Aplicando a meacutedia por periacuteodo

Aplicando-se no trecho abaixo a teacutecnica desenvolvida na Seccedilatildeo 242 para uma queryrealizada no dia 19082016 no intervalo de 2040 - 2055 analisa-se a semana anterior quepossua tais intervalos Assim o saacutebado dia 06082016 seraacute selecionado

43 APLICACcedilAtildeO DOS MEacuteTODOS DE CAacuteLCULO DE ESPERA 33

Entrada Qtd Pessoas Notificado Espera

6816 2043 2 862016 2053 1606

6816 2044 2 862016 2055 674

6816 2048 2 862016 2056 528

6816 2048 2 862016 2057 520

6816 2051 2 862016 2107 1118

6816 2051 3 862016 2110 1305

6816 2052 2 862016 2110 1273

6816 2052 2 862016 2111 1179

6816 2053 2 862016 2112 1217

6816 2053 2 NULL 59

6816 2054 3 862016 2119 1541

6816 2055 2 862016 2117 1444

6816 2055 2 862016 2120 1570

6816 2055 2 862016 2122 1613

Tabela 41 Trecho do dia 06082016 entre os horaacuterios das 2043 agraves 2055 um intervalo de 12minutos retirado dos dados da empresa Get In

Com esses dados obteve-se a meacutedia de espera de 1080 segundos (18 minutos) a qualseria sugerida para o usuaacuterio com a busca e desvio padratildeo de 465144719 segundos (775 mi-nutos) Dentro desse intervalo tem-se como maacuteximo tempo de espera 1613 segundos (2688minutos) e como miacutenimo 59 segundos (1 minuto) Analisando-se os dados do dia 19082016no mesmo periacuteodo temos

34 DESENVOLVIMENTO DO PROJETO 43

Entrada Pessoas Notificado Espera Erro previsatildeo Erro p 2 pessoas

19816 2043 2 8192016 2051 544 -563 522

19816 2043 2 8192016 2052 605 -502 461

19816 2044 2 8192016 2056 723 -384 343

19816 2046 4 8192016 2119 1988 881 X

19816 2048 2 8192016 2102 919 188 147

19816 2051 2 8192016 2103 821 286 245

19816 2051 3 8192016 2108 1773 666 X

19816 2053 2 8192016 2110 1083 24 -17

19816 2053 2 8192016 2111 1105 2 -39

19816 2053 2 8192016 2112 1169 62 -103

19816 2055 2 8192016 2114 1447 340 -381

Tabela 42 Trecho do dia 19082016 entre os horaacuterios das 2043 agraves 2055um intervalo de 12minutos retirado dos dados da empresa Get In

Ou seja se um grupo chegasse dentro desse periacuteodo e a previsatildeo dada fosse a meacutediaobtida anteriormente o erro calculado pela diferenccedila entre o tempo sugerido e o real tempode espera estaria no intervalo de 15 minutos para menos ou 8 minutos para mais Sendoesse um valor aceitaacutevel

Um proacuteximo passo eacute a restriccedilatildeo dos registros a grupos com 2 integrantes Com tal restri-ccedilatildeo a previsatildeo de espera eacute de 1066 segundos (1776 minutos) Aplicando essa nova meacutedia aosregistros com 2 integrantes do dia 19082016 obteacutem-se um erro (Coluna 6 - erro previsatildeopara 2 pessoas) menor do que o anterior O intervalo do erro calculado neste caso seria de 522segundos (87 minutos) para mais e 381 segundos (635 minutos) para menos Este resultadoeacute ainda mais favoraacutevel mostrando que a inclusatildeo de mais filtros para o caacutelculo da previsatildeomelhorou o tempo previsto

432 Aplicando teoria das filas

A teoria das filas (Seccedilatildeo 242) eacute uma ferramenta muito completa que calcula muitos dadosuacuteteis para a previsatildeo de espera Contudo por conta da necessidade de informaccedilotildees sobreo tempo de atendimento a qual natildeo estaacute contida no banco utilizado esta teoria natildeo podeser aplicada neste caso Poreacutem esse dado pode ter um valor assumido para que a utilizaccedilatildeodessa teoria fosse possiacutevel entretanto a sua precisatildeo ficaria comprometida e imprevisiacutevel

433 Aplicando redes neurais

Para aplicar o que foi estudado na Seccedilatildeo 242 foi executado o software com o mecircs deAgosto como teste o mecircs de Setembro como treino e o limite do erro quadraacutetico como 001 eobteve-se a tabela presente no apecircndice B Na tabela podemos ver o tempo de fila esperadoou seja o tempo contido na tabela do mecircs de Setembro o tempo que o algoritmo deu comoresposta baseado no mecircs de Agosto e o erro entre eles respectivamente

44 DEFINICcedilAtildeO DA INTERFACE DO APLICATIVO 35

Figura 413 Software Multiple Back-Propagation com a configuraccedilatildeo escolhida para os dadosdisponiacuteveis

Mesmo o erro se mantendo em 0018 os dados obtidos possuem um erro padratildeo de 15minutos Se mais dados forem adicionados o criteacuterio de parada pode ser atingido e assimuma previsatildeo melhor pode ser alcanccedilada

434 Conclusatildeo sobre os meacutetodos estudados

Dentre todas as possibilidades estudadas visualizamos na meacutedia por periacuteodo a melhoropccedilatildeo assumindo os dados disponiacuteveis para teste Se mais paracircmetros fossem fornecidoscomo o tempo de atendimento a teoria das filas seria uma boa opccedilatildeo para fornecer a pre-visatildeo de espera E se mais dados estivessem disponiacuteveis as redes neurais conseguiriam umaaproximaccedilatildeo melhor e assim seria uma boa opccedilatildeo tambeacutem

44 Definiccedilatildeo da Interface do aplicativoComo um primeiro protoacutetipo foi desenvolvida uma interface simples que tinha como tela

de iniacutecio um mapa com um campo para buscas na parte superior

36 DESENVOLVIMENTO DO PROJETO 44

Figura 414 Fluxo de telas do primeiro protoacutetipo

Ao efetuar uma busca por algum estabelecimento uma tela mostrando o tempo de esperaaproximado da fila no local era exibida junto com bototildees que permitiam selecionar o meiode transporte visualizar outras opccedilotildees ou dar iniacutecio a rota ateacute o local desejado Tambeacutemhavia uma notificaccedilatildeo para quando a pessoa estivesse parada proacutexima a um restaurantecadastrado que direcionaria o usuaacuterio a uma tela com um cronocircmetro do tempo de esperana fila

Para testar essa visualizaccedilatildeo escolhemos algumas pessoas e realizamos um teste deusabilidade[22] este teste eacute feito da seguinte forma

44 DEFINICcedilAtildeO DA INTERFACE DO APLICATIVO 37

Uma contextualizaccedilatildeo eacute feita para o voluntaacuterio e entatildeo uma tarefa eacute passada para sercompletada Os integrantes do grupo observam dificuldades enfrentadas pelo entrevistado etomam notas Esse teste eacute repetido algumas vezes e seu resultado eacute coletado para avaliaccedilatildeoe modificaccedilatildeo das funcionalidades

Figura 415 Tela de detalhes de um restaurante(segunda versatildeo)

Notou-se que algumas funcionalidadespareceram confusas e natildeo intuitivas porexemplo natildeo ficou claro se o tempo mos-trado era de trajeto ou de espera na filanem qual era o meio de transporte utili-zado

Logo esse protoacutetipo foi reformuladocom o intuito de melhorar a experi-ecircncia do usuaacuterio com o nosso aplica-tivo

Foram colocados aleacutem do tempo deespera da fila o tempo que o usuaacuteriolevaria para chegar ateacute o local selecio-nado (conforme o tipo de transporte es-colhido) e a quantidade estimada de pes-soas na fila O tempo total (espera so-mado ao tempo de deslocamento) ga-nhou destaque entre as informaccedilotildees doestabelecimento e o botatildeo que direcionao usuaacuterio ao trajeto ficou mais especiacute-fico

Tambeacutem cogitou-se a possibilidade deadicionar login e um perfil de usuaacuteriojunto com uma lista de restaurantes favo-ritos

O fluxo das telas deste novo protoacutetipo ficou como mostra o esquema a seguir

38 DESENVOLVIMENTO DO PROJETO 44

Figura 416 Fluxo de telas do segundo protoacutetipo

44 DEFINICcedilAtildeO DA INTERFACE DO APLICATIVO 39

Figura 417 Tela de detalhes de um restaurante(terceira versatildeo)

Apoacutes outras avaliaccedilotildees mais algumaspequenas alteraccedilotildees foram realizadas nainterface Foi decidido que seria inviaacute-vel estimar o nuacutemero de pessoas nafila entatildeo essa funcionalidade foi remo-vida

Notificaccedilotildees foram adicionadas paraquando o usuaacuterio estiver parado na aacutereado restaurante para que ele possa con-tribuir com informaccedilotildees sobre a fila quepegou aleacutem de um botatildeo de contri-buiccedilatildeo ter sido inserido na tela ini-cial

40 DESENVOLVIMENTO DO PROJETO 45

O fluxo de telas do aplicativo atual ficou da seguinte forma

Figura 418 Fluxo de telas do terceiro protoacutetipo

46 EXPLICACcedilAtildeO DAS FUNCIONALIDADES 41

45 Explicaccedilatildeo das funcionalidadesEsta seccedilatildeo explica as funcionalidades do produto utilizando a figura 418

A tela inicial (3) exibe uma lista de restaurantes incluindo seus respectivos tempos detrajeto e tempo de espera na fila Ao clicar no botatildeo ldquo+rdquo uma caixa de diaacutelogo eacute aberta(4) onde eacute possiacutevel adicionar o tempo que o usuaacuterio esperou na fila Primeiro eacute escolhido orestaurante depois a data e hora que a pessoa chegou na fila e por fim o tempo de esperaem minutos Ao tocar em ldquoEnviar Feedback rdquo os dados satildeo incluiacutedos no banco de dados eatualizados para os outros usuaacuterios Assim eacute apicado o conceito de Crowdsourcing no apli-cativo

Ao tocar em um item da lista de restaurantes seraacute aberta a tela de detalhes de um res-taurante (5) na qual eacute possiacutevel ver com mais clareza os tempos de trajeto e espera o tempototal o endereccedilo do estabelecimento e um pequeno mapa centrado no local Pressionandoo botatildeo ldquoDireccedilotildeesrdquo o usuaacuterio seraacute redirecionado ao aplicativo de mapas de sua preferecircnciano caso do exemplo (8) o Google Maps jaacute traccedilando a rota da localizaccedilatildeo do usuaacuterio para oestabelecimento em questatildeo

Novamente na tela inicial tocando no iacutecone de lupa eacute possiacutevel realizar uma busca digi-tando o nome do estabelecimento na caixa de texto a qual exibe sugestotildees dependendo doque foi digitado Ao clicar em um dos resultados da busca o usuaacuterio eacute novamente direcionadopara a tela de detalhes do restaurante (5)

Tambeacutem eacute possiacutevel tocar no iacutecone de mapa na tela inicial onde seraacute mostrado um mapacentrado na localizaccedilatildeo do usuaacuterio

Ao ficar parado por um tempo em um mesmo local proacuteximo a um estabelecimentocadastrado o usuaacuterio eacute perguntado em uma notificaccedilatildeo quanto tempo ele permaneceu nafila Ao tocar na notificaccedilatildeo a caixa de diaacutelogo para feedback do usuaacuterio seraacute aberta (4) jaacutecom o restaurante preenchido e apoacutes o feedback a janela seraacute fechada e os dados enviadosao banco de dados

46 Implementaccedilatildeo do banco de dadosO banco de dados do aplicativo foi modelado e populado em forma de aacutervore (Fi-

gura 419) de forma a facilitar o acesso aos dados necessaacuterios ao aplicativo No primeironiacutevel estatildeo os ids dos restaurantes Cada id de restaurante guarda a localizaccedilatildeo (latitudelongitude) do restaurante o nome o endereccedilo e um objeto fila O objeto fila guarda todos osdias da semana (domingo a saacutebado) e cada dia da semana possui 24 campos um para cadahora do dia Cada hora possui o tempo meacutedio de espera da fila naquela hora e um peso paraesse tempo O peso eacute um valor que aumenta de acordo com o nuacutemero de feedbacks dadospara que o novo valor do tempo meacutedio seja calculado de forma consistente

Modelamos o banco de dados de uma forma que respeitasse uma hierarquia de dados

42 DESENVOLVIMENTO DO PROJETO 46

Figura 419 Aacutervore que ilustra a organizaccedilatildeo de um restaurante no banco de dados

Com o banco de dados jaacute populado o aplicativo faz consultas e atualizaccedilotildees de dadosConsultas satildeo feitas ao criar a tela de listagem de restaurantes e de detalhes de um restau-rante consultado As atualizaccedilotildees satildeo feitas quando o usuaacuterio manda o feedback de tempo deespera em um estabelecimento em determinado horaacuterio o aplicativo calcula a nova meacutedia eatualiza o campo do respectivo horaacuterio

Capiacutetulo 5

Conclusatildeo

Ao longo dos capiacutetulos deste trabalho pocircde-se acompanhar todo o processo de criaccedilatildeo edesenvolvimento do aplicativo que apoacutes finalizado foi batizado com o nome Queue

Comeccedilando com um problema para o qual o grupo almejava oferecer uma soluccedilatildeoacabou-se por adentrar-se um pouco no campo da Estatiacutestica e estudar diversas metodo-logias que poderiam ser uacuteteis para fornecer um caacutelculo de previsatildeo de espera meacutedia porperiacuteodo aplicaccedilatildeo da teoria das filas e utilizaccedilatildeo de redes neurais

Atraveacutes de uma parceria com a empresa GetIn obteve-se acesso a uma grande quantidadede dados e foi possiacutevel utilizaacute-los em anaacutelises feitas nas metodologias escolhidas conseguindoassim resultados relevantes Por meio destes foi feita a escolha de um dos meacutetodos para ocaacutelculo da previsatildeo de filas a meacutedia por periacuteodo

Aleacutem desses estudos ao longo do ano o grupo aprendeu a desenvolver para a plata-forma Android sobre a qual nenhum dos integrantes tinha conhecimento preacutevio Tambeacutemfoi possiacutevel aprender e utilizar a metodologia aacutegil com Scrum para guiar o processo de de-senvolvimento

Ao fim do ciclo de desenvolvimento conseguiu-se entregar um aplicativo em funciona-mento que fornece a previsatildeo de espera no instante da consulta de estabelecimentos cadas-trados no banco de dados armazenado na nuvem

Na versatildeo atual do aplicativo natildeo foi implementado um sistema para o cadastro de novosestabelecimentos Isso soacute eacute possiacutevel atraveacutes da inserccedilatildeo direta no banco de dados atraveacutes dainterface fornecida pelo console do Firebase Atualmente estatildeo cadastrados 5 restaurantesos quais foram visitados durante o desenvolvimento do projeto Para que o cadastro deestabelecimentos escale seria necessaacuterio a implementaccedilatildeo de uma funcionalidade que permitaao usuaacuterio adicionar novos estabelecimentos a partir de locais disponiacuteveis na API de locaisda Google

43

45

46 APEcircNDICE A

Apecircndice A

Dados coletados

Figura A1 Dados de tempo de espera para grupos de tamanhos variados para cada horaacuterio e emcada dia da semana obtidos em entrevista em restaurantes Outback Steakhouse Shopping Uniatildeo nomecircs de outubro

Referecircncias Bibliograacuteficas

[1] Backpropagation httpmbpsourceforgenet Accesso em Janeiro 2017 14

[2] Bitbucket httpsbitbucketorgproduct Accesso em Dezembro 2016 19

[3] Crowdsourcing httpswwwmerriam-webstercomdictionarycrowdsourcing Ac-cesso em Novembro 2016 21

[4] Designing a survey httpwwwsciencebuddiesorgscience-fair-projectsproject_ideasSoc_surveyshtml Accesso em Outubro 2016 4 23

[5] Facebook httpswwwfacebookcom Accesso em Novembro 2016 24

[6] Firebase httpsfirebasegooglecom Accesso em Agosto 2016 20

[7] Getin app httpswwwgetinappcombrhomesao-paulo Accesso em Novembro2016 9

[8] Git 11 primeiros passos - sobre controle de versatildeo httpsgit-scmcombookpt-brv1Primeiros-passos-Sobre-Controle-de-Vers Accesso em Novembro 2016 19

[9] Google forms httpsdocsgooglecomforms Accesso em Novembro 2016 23

[10] Guia definitivo do project model canvas Project Builder 3

[11] Jsonorg introducing json httpwwwjsonorg Accesso em Novembro 2016 17

[12] Manifesto para desenvolvimento Aacutegil de software httpagilemanifestoorgisoptbrmanifestohtml Accesso em Novembro 2016 5

[13] Nosql httpsenwikipediaorgwikiNoSQL Accesso em Novembro 2016 20

[14] Outback steakhouse httpswwwoutbackcombrhome Accesso em Novembro 20169

[15] Restful api development with lumen microframework httpsbelitsoftcomlaravel-development-servicesapi-development Accesso em Novembro 2016 17

[16] Scrum httpswwwatlassiancomagilescrum Accesso em Novembro 2016 5

[17] Smartphone os market share 2016 q2 httpwwwidccomprodservsmartphone-os-market-sharejsp Accesso em Novembro 2016 15

[18] Smartphone os sales market share kantar worldpanel comtech httpwwwkantarworldpanelcomsmartphone-os-market-share Accesso em Novembro 2016 15

[19] Sourcetree httpswwwsourcetreeappcom Accesso em Dezembro 2016 19

47

48 REFEREcircNCIAS BIBLIOGRAacuteFICAS

[20] Sql httpsptkhanacademyorgcomputingcomputer-programmingsql Accesso emDezembro 2016 20

[21] Trello httpstrellocom Accesso em Novembro 2016 6

[22] Usability test httpsenwikipediaorgwikiUsability_testing Accesso em Novembro2016 36

[23] Versionone 2012 agile dev survey httpswwwversiononecompdf7th-Annual-State-of-Agile-Development-Surveypdf Accesso em Novembro 2016 5

[24] Waze httpswwwwazecom Accesso em Novembro 2016 1

[25] What is an open source httpsopensourcecomresourceswhat-open-source Accessoem Novembro 2016 15

[26] Xml tutorial httpwwww3schoolscomxml Accesso em Novembro 2016 17

[27] Paulo F Cabral dos Anjos Jr Aron Ifanger Maciel Christopher Silva de Paacutedua Com-posiccedilatildeo de carteiras de accedilotildees utilizando modelo de redes neurais artificiais e modelo derisco e retorno de Markowitz 2012 14

[28] Google Distance matrix api documentation httpsdevelopersgooglecommapsdocumentationdistance-matrix Accesso em Novembro 2016 17

[29] Alan Klement Designing features using job stories httpsblogintercomcomusing-job-stories-design-features-ui-ux Accesso em Novembro 2016 6

[30] Azmat Nafees Queuing theory and its application analysis of the sales checkout opera-tion in ica supermarket httpwwwstatisticsduseessaysD07ENafeespdf Accessoem Novembro 2016 12

[31] Eric Ries A Startup Enxuta Lua de papel primeira ediccedilatildeo edition 2012 3

  • Introduccedilatildeo
    • Motivaccedilatildeo
    • Trabalho Proposto
    • Estrutura da monografia
      • Estudos Preliminares
        • Desenvolvimento de Startups
          • Desenvolvimento de Questionaacuterios
            • Metodologia Aacutegil
            • Jobs to be done
            • Caacutelculo da previsatildeo do tempo de espera na fila
              • Descriccedilatildeo do problema
              • Meacutetodos de caacutelculo da espera
                  • Tecnologias utilizadas
                    • O sistema Android
                      • Organizaccedilatildeo de uma aplicaccedilatildeo Android
                        • JSON
                        • Google APIs
                        • Localizaccedilatildeo do Usuaacuterio
                        • Controle de Versatildeo
                        • Banco de dados
                          • Firebase
                            • Crowdsourcing
                              • Desenvolvimento do Projeto
                                • Pesquisa de Mercado
                                  • Pesquisa com o usuaacuterio
                                    • Projeto do Aplicativo
                                    • Aplicaccedilatildeo dos meacutetodos de caacutelculo de espera
                                      • Aplicando a meacutedia por periacuteodo
                                      • Aplicando teoria das filas
                                      • Aplicando redes neurais
                                      • Conclusatildeo sobre os meacutetodos estudados
                                        • Definiccedilatildeo da Interface do aplicativo
                                        • Explicaccedilatildeo das funcionalidades
                                        • Implementaccedilatildeo do banco de dados
                                          • Conclusatildeo
                                          • Dados coletados
                                          • Referecircncias Bibliograacuteficas

Capiacutetulo 4

Desenvolvimento do Projeto

Este capiacutetulo aborda o processo de desenvolvimento do projeto iniciado com o preen-chimento do diagrama Canvas e uma pesquisa de mercado direcionada ao usuaacuterio A partirdas informaccedilotildees coletadas foi possiacutevel projetar um aplicativo que atendesse as necessidadesexpostas pela pesquisa e selecionar as tecnologias necessaacuterias Tambeacutem eacute abordada a aplica-ccedilatildeo dos diferentes meacutetodos de caacutelculo da previsatildeo de tempo de espera que foram estudadose explicados no Capiacutetulo 2 Por fim satildeo expostas as diferentes versotildees do aplicativo duranteo processo e seus detalhes

41 Pesquisa de MercadoAntes de iniciar-se o desenvolvimento praacutetico algumas questotildees foram levantadas se

um aplicativo com as funcionalidades escolhidas seria de alguma forma uacutetil para o usuaacuterioe se sim qual metodologia deveria ser usada para que este produto fosse entregue o maiscompleto possiacutevel ateacute o final do ano Para responder a primeira pergunta desenvolveu-seum questionaacuterio

411 Pesquisa com o usuaacuterio

O questionaacuterio foi desenvolvido para avaliar a viabilidade do aplicativo e suas funciona-lidades e foi criado utilizando-se o Google Forms [9] Essa eacute uma ferramenta desenvolvidapelo Google que possibilita a criaccedilatildeo de formulaacuterios contendo diversos formatos de pergun-tas tanto dissertativas quanto de muacuteltipla escolha

Seguindo os princiacutepios de desenvolvimento de questionaacuterios [4] o conjunto de perguntasfoi mantido curto simples e de faacutecil entendimento Tambeacutem variou-se o tipo de questotildeesentre estruturadas (questotildees com respostas em forma de alternativas) e desestruturadas(questotildees com respostas em formato texto) seguindo esses mesmos princiacutepios para captarmelhor as informaccedilotildees dos entrevistados e evitar erros de entendimento

Com as respostas do questionaacuterio tinha-se o intuito de traccedilar um possiacutevel puacuteblico alvoconhecer seu modo de uso de dispositivos moacuteveis e validar a aplicabilidade de diferentesfuncionalidades pretendidas inicialmente sendo essas engajamento do usuaacuterio atraveacutes denotificaccedilotildees do sistema aceitaccedilatildeo de sugestotildees de locais alternativos avaliaccedilatildeo da existecircnciado problema que queremos resolver (se este aplicativo supre uma necessidade real do usuaacute-rio) e aceitaccedilatildeo do aplicativo

23

24 DESENVOLVIMENTO DO PROJETO 41

Para a divulgaccedilatildeo redes sociais como Facebook [5] e sistemas de mensagem instantacircneascomo WhatsApp foram usados e o envio de respostas foi restrito ateacute trecircs semanas apoacutes suaprimeira postagem Neste periacuteodo foram obtidas 210 respostas as quais ajudaram a definiros aspectos do sistema a ser desenvolvido

O questionaacuterio foi dividido em duas subseccedilotildees perfil do usuaacuterio e funcionalidade Comelas obteve-se os seguintes resultados

41 PESQUISA DE MERCADO 25

Questatildeo 1

Figura 41 Graacutefico pizza da distribuiccedilatildeo das respostas em relaccedilatildeo a idade dos pesquisados

As faixas de idade apresentadas estatildeo desbalanceadas por natildeo terem a mesma quantidadede anos em cada uma poreacutem essa divisatildeo foi pensada levando-se em conta a fluecircncia comtecnologia que cada idade possui Com o resultado verificou-se que do puacuteblico alcanccediladocom a pesquisa a maioria estaacute na faixa de 18 a 25 anos de idade assumida como parcelacom maior conhecimento tecnoloacutegico

Questatildeo 2

Figura 42 Graacutefico pizza da distribuiccedilatildeo das respostas em relaccedilatildeo ao sistema operacional

Esta questatildeo foi pensada para medir a porcentagem de cada sistema operacional pre-sente nos celulares do puacuteblico Com ela descobriu-se que 639 das pessoas dentro desse

26 DESENVOLVIMENTO DO PROJETO 41

grupo possuem o sistema Android enquanto 234 possuem iOS e 38 Windows phoneEssa pergunta foi incluiacuteda para um melhor direcionamento do desenvolvimento do aplicativo

Uma questatildeo levantada ao aplicar esse questionaacuterio foi a dificuldade que algumas pessoasencontraram para identificar a versatildeo do proacuteprio aparelho Poreacutem para manter a consistecircnciadas respostas decidiu-se natildeo mudar nada nesta questatildeo para remediar isso

Questatildeo 3

Figura 43 Graacutefico em barras da distribuiccedilatildeo de frequecircncias mensais de cada local analisado

41 PESQUISA DE MERCADO 27

Questatildeo 4

Figura 44 Graacutefico em pizza da distribuiccedilatildeo de interesse do usuaacuterio no tempo de espera de cadalocal

A princiacutepio viu-se muitas possiacuteveis aplicaccedilotildees para a previsatildeo de tempo de espera Paraentender qual seria a prioridade do puacuteblico as questotildees acima foram incluiacutedas A primeiraverificou a frequecircncia de visitas em alguns locais e a segunda serviu para analisar qualestabelecimento despertava mais interesse nos entrevistados quanto ao quesito fila Nos doiscasos restaurantes se destacaram com o maior interesse

Questatildeo 5

Figura 45 Graacutefico em barras da distribuiccedilatildeo de interesse do usuaacuterio por cada item avaliado

Para acompanhar o dado de espera e fornecer mais informaccedilotildees relevantes ao usuaacuteriosem potencial perguntou-se quais outras informaccedilotildees eles acham interessante saber sobre umdeterminado estabelecimento Com isso descobriu-se que a faixa de preccedilo o trajeto ateacute olocal e o cardaacutepio seriam dados importantes de se obter juntamente com o tempo de espera

28 DESENVOLVIMENTO DO PROJETO 41

Questatildeo 6O que vocecirc costuma fazer para evitar filasNeste ponto testou-se se a soluccedilatildeo proposta atraveacutes do aplicativo resolveria o problema dousuaacuterio de uma forma melhor do que a soluccedilatildeo atualmente utilizada Para isso foi perguntadoo que as pessoas fazem para evitar filas e as principais respostas foram

∙ Evitar horaacuterios de pico

∙ Chegar cedo

∙ Ir em outro lugar caso uma fila seja encontrada

∙ Tentar realizar reservas antecipadamente

∙ Se distrair com livroscelular

Notou-se que as soluccedilotildees utilizadas atualmente natildeo suprem as necessidades dos entre-vistados pois mesmo em horaacuterios natildeo convencionais pode-se encontrar filas ou quandodecide-se esperar na fila muito tempo eacute perdido Concluiu-se que a soluccedilatildeo proposta a par-tir do aplicativo resolve de forma mais abrangente o problema pois ajuda o usuaacuterio a evitarhoraacuterios de pico inesperados

Questatildeo 7

Figura 46 Graacutefico em pizza da distribuiccedilatildeo do meio de transporte utilizado pelos usuaacuterios

Essa questatildeo foi formulada com o objetivo de verificar quais meios de transporte seriamincluiacutedos com previsatildeo de tempo de trajeto no aplicativo Foi verificado que a maioria dosentrevistados utilizam transporte puacuteblico seguido por carro

41 PESQUISA DE MERCADO 29

Questatildeo 8

Figura 47 Graacutefico em pizza da distribuiccedilatildeo do interesse do usuaacuterio pela informaccedilatildeo fornecida

Questatildeo 9

Figura 48 Graacutefico em pizza da distribuiccedilatildeo de quantidade de quilocircmetros que o usuaacuterio sedeslocaria para ir a um local com menos fila

Com essas questotildees foi verificado que algo importante para o usuaacuterio eacute saber de outrosestabelecimentos que possam oferecer tempos de espera menores nas redondezas de onde ousuaacuterio se encontra que eacute uma das funcionalidades que desejaacutevamos utilizar no sistema

30 DESENVOLVIMENTO DO PROJETO 41

Questatildeo 10

Figura 49 Graacutefico em barras da distribuiccedilatildeo de sentimento do usuaacuterio em relaccedilatildeo a notificaccedilatildeode aplicativos

Questatildeo 11

Figura 410 Graacutefico em pizza da distribuiccedilatildeo de opiniatildeo do usuaacuterio sobre desabilitar notificaccedilotildeesem celular

42 PESQUISA DE MERCADO 31

Questatildeo 12

Figura 411 Graacutefico em pizza da distribuiccedilatildeo de opiniatildeo do usuaacuterio sobre habilitar GPS emcelular

A ideia inicial era poder usar o GPS para verificar a localizaccedilatildeo do usuaacuterio e enviarnotificaccedilotildees quando este estivesse parado nas proximidades de algum dos estabelecimentoscadastrados Para que essa funcionalidade possa existir eacute necessaacuterio que o aplicativo tenhaacesso agrave localizaccedilatildeo precisa da pessoa atraveacutes do GPS ou internet ateacute mesmo quando natildeoestiver aberto Aleacutem disso tambeacutem eacute necessaacuterio que as notificaccedilotildees estejam habilitadas parafinalizar esta interaccedilatildeo Entatildeo as perguntas 10 11 e 12 foram incluiacutedas no questionaacuterio Ob-servando as respostas foi possiacutevel verificar que 295 das pessoas que responderam deixamambas as funcionalidades habilitadas (GPS e notificaccedilotildees) Com isso pudemos prosseguircom essa ideia e tambeacutem pensar em possiacuteveis alternativas de interaccedilatildeo e engajamento como usuaacuterio

Por conta dessa pesquisa ter sido compartilhada atraveacutes das contas das redes sociais ecomunicadores dos componentes deste grupo sabe-se que este pode apresentar um resultadoviesado mas que mesmo assim natildeo deve ser desconsiderado e que muito ajudou a sanar asduacutevidas iniciaisComo resultado traccedilamos o perfil do entrevistado

∙ Faixa etaacuteria predominante entre 18 e 30 anos

∙ Possui sistema operacional Android (versotildees 4 5 e 6)

∙ Vai a restaurantes com certa frequecircncia mensal resultando em interesses sobre infor-maccedilotildees relacionadas a esse estabelecimento

∙ Costuma chegar cedo ou evitar os horaacuterios de pico para evitar filas nos locais

∙ Carro e transporte coletivo satildeo os principais meios de transporte

∙ Se deslocaria para um estabelecimento semelhante que possui menos fila contanto queeste fique num raio de 2km de distacircncia

32 DESENVOLVIMENTO DO PROJETO 43

42 Projeto do AplicativoO grupo comeccedilou o projeto com o preenchimento do diagrama Canvas(figura 412) apre-

sentado na Seccedilatildeo 21 Desse modo foi adquirida uma ideia mais consistente e uma base paracomeccedilar a implementaccedilatildeo

Figura 412 Diagrama Canvas preenchido pelo grupo

Com o modelo de negoacutecios definido e com base no resultado da pesquisa com o usuaacuterioapresentada na seccedilatildeo seguinte foram aplicadas pequenas mudanccedilas no projeto para melhoradequar-se agraves necessidades e ao perfil do puacuteblico alvo

Para o desenvolvimento foi utilizado um meacutetodo aacutegil baseado no scrum com sprints de3 a 4 semanas devido agrave disponibilidade dos membros do grupo Os encontros natildeo eram diaacute-rios como recomendado para o meacutetodo scrum tambeacutem em razatildeo da disponibilidade Haviamstand ups (discussotildees raacutepidas no comeccedilo de cada encontro) e retrospectivas ao final de cadasprint A cada sprint eram selecionadas histoacuterias e tarefas para serem executadas e caso natildeofossem concluiacutedas ao final da iteraccedilatildeo eram inseridas ao backlog e feitas no sprint seguinte

43 Aplicaccedilatildeo dos meacutetodos de caacutelculo de espera

431 Aplicando a meacutedia por periacuteodo

Aplicando-se no trecho abaixo a teacutecnica desenvolvida na Seccedilatildeo 242 para uma queryrealizada no dia 19082016 no intervalo de 2040 - 2055 analisa-se a semana anterior quepossua tais intervalos Assim o saacutebado dia 06082016 seraacute selecionado

43 APLICACcedilAtildeO DOS MEacuteTODOS DE CAacuteLCULO DE ESPERA 33

Entrada Qtd Pessoas Notificado Espera

6816 2043 2 862016 2053 1606

6816 2044 2 862016 2055 674

6816 2048 2 862016 2056 528

6816 2048 2 862016 2057 520

6816 2051 2 862016 2107 1118

6816 2051 3 862016 2110 1305

6816 2052 2 862016 2110 1273

6816 2052 2 862016 2111 1179

6816 2053 2 862016 2112 1217

6816 2053 2 NULL 59

6816 2054 3 862016 2119 1541

6816 2055 2 862016 2117 1444

6816 2055 2 862016 2120 1570

6816 2055 2 862016 2122 1613

Tabela 41 Trecho do dia 06082016 entre os horaacuterios das 2043 agraves 2055 um intervalo de 12minutos retirado dos dados da empresa Get In

Com esses dados obteve-se a meacutedia de espera de 1080 segundos (18 minutos) a qualseria sugerida para o usuaacuterio com a busca e desvio padratildeo de 465144719 segundos (775 mi-nutos) Dentro desse intervalo tem-se como maacuteximo tempo de espera 1613 segundos (2688minutos) e como miacutenimo 59 segundos (1 minuto) Analisando-se os dados do dia 19082016no mesmo periacuteodo temos

34 DESENVOLVIMENTO DO PROJETO 43

Entrada Pessoas Notificado Espera Erro previsatildeo Erro p 2 pessoas

19816 2043 2 8192016 2051 544 -563 522

19816 2043 2 8192016 2052 605 -502 461

19816 2044 2 8192016 2056 723 -384 343

19816 2046 4 8192016 2119 1988 881 X

19816 2048 2 8192016 2102 919 188 147

19816 2051 2 8192016 2103 821 286 245

19816 2051 3 8192016 2108 1773 666 X

19816 2053 2 8192016 2110 1083 24 -17

19816 2053 2 8192016 2111 1105 2 -39

19816 2053 2 8192016 2112 1169 62 -103

19816 2055 2 8192016 2114 1447 340 -381

Tabela 42 Trecho do dia 19082016 entre os horaacuterios das 2043 agraves 2055um intervalo de 12minutos retirado dos dados da empresa Get In

Ou seja se um grupo chegasse dentro desse periacuteodo e a previsatildeo dada fosse a meacutediaobtida anteriormente o erro calculado pela diferenccedila entre o tempo sugerido e o real tempode espera estaria no intervalo de 15 minutos para menos ou 8 minutos para mais Sendoesse um valor aceitaacutevel

Um proacuteximo passo eacute a restriccedilatildeo dos registros a grupos com 2 integrantes Com tal restri-ccedilatildeo a previsatildeo de espera eacute de 1066 segundos (1776 minutos) Aplicando essa nova meacutedia aosregistros com 2 integrantes do dia 19082016 obteacutem-se um erro (Coluna 6 - erro previsatildeopara 2 pessoas) menor do que o anterior O intervalo do erro calculado neste caso seria de 522segundos (87 minutos) para mais e 381 segundos (635 minutos) para menos Este resultadoeacute ainda mais favoraacutevel mostrando que a inclusatildeo de mais filtros para o caacutelculo da previsatildeomelhorou o tempo previsto

432 Aplicando teoria das filas

A teoria das filas (Seccedilatildeo 242) eacute uma ferramenta muito completa que calcula muitos dadosuacuteteis para a previsatildeo de espera Contudo por conta da necessidade de informaccedilotildees sobreo tempo de atendimento a qual natildeo estaacute contida no banco utilizado esta teoria natildeo podeser aplicada neste caso Poreacutem esse dado pode ter um valor assumido para que a utilizaccedilatildeodessa teoria fosse possiacutevel entretanto a sua precisatildeo ficaria comprometida e imprevisiacutevel

433 Aplicando redes neurais

Para aplicar o que foi estudado na Seccedilatildeo 242 foi executado o software com o mecircs deAgosto como teste o mecircs de Setembro como treino e o limite do erro quadraacutetico como 001 eobteve-se a tabela presente no apecircndice B Na tabela podemos ver o tempo de fila esperadoou seja o tempo contido na tabela do mecircs de Setembro o tempo que o algoritmo deu comoresposta baseado no mecircs de Agosto e o erro entre eles respectivamente

44 DEFINICcedilAtildeO DA INTERFACE DO APLICATIVO 35

Figura 413 Software Multiple Back-Propagation com a configuraccedilatildeo escolhida para os dadosdisponiacuteveis

Mesmo o erro se mantendo em 0018 os dados obtidos possuem um erro padratildeo de 15minutos Se mais dados forem adicionados o criteacuterio de parada pode ser atingido e assimuma previsatildeo melhor pode ser alcanccedilada

434 Conclusatildeo sobre os meacutetodos estudados

Dentre todas as possibilidades estudadas visualizamos na meacutedia por periacuteodo a melhoropccedilatildeo assumindo os dados disponiacuteveis para teste Se mais paracircmetros fossem fornecidoscomo o tempo de atendimento a teoria das filas seria uma boa opccedilatildeo para fornecer a pre-visatildeo de espera E se mais dados estivessem disponiacuteveis as redes neurais conseguiriam umaaproximaccedilatildeo melhor e assim seria uma boa opccedilatildeo tambeacutem

44 Definiccedilatildeo da Interface do aplicativoComo um primeiro protoacutetipo foi desenvolvida uma interface simples que tinha como tela

de iniacutecio um mapa com um campo para buscas na parte superior

36 DESENVOLVIMENTO DO PROJETO 44

Figura 414 Fluxo de telas do primeiro protoacutetipo

Ao efetuar uma busca por algum estabelecimento uma tela mostrando o tempo de esperaaproximado da fila no local era exibida junto com bototildees que permitiam selecionar o meiode transporte visualizar outras opccedilotildees ou dar iniacutecio a rota ateacute o local desejado Tambeacutemhavia uma notificaccedilatildeo para quando a pessoa estivesse parada proacutexima a um restaurantecadastrado que direcionaria o usuaacuterio a uma tela com um cronocircmetro do tempo de esperana fila

Para testar essa visualizaccedilatildeo escolhemos algumas pessoas e realizamos um teste deusabilidade[22] este teste eacute feito da seguinte forma

44 DEFINICcedilAtildeO DA INTERFACE DO APLICATIVO 37

Uma contextualizaccedilatildeo eacute feita para o voluntaacuterio e entatildeo uma tarefa eacute passada para sercompletada Os integrantes do grupo observam dificuldades enfrentadas pelo entrevistado etomam notas Esse teste eacute repetido algumas vezes e seu resultado eacute coletado para avaliaccedilatildeoe modificaccedilatildeo das funcionalidades

Figura 415 Tela de detalhes de um restaurante(segunda versatildeo)

Notou-se que algumas funcionalidadespareceram confusas e natildeo intuitivas porexemplo natildeo ficou claro se o tempo mos-trado era de trajeto ou de espera na filanem qual era o meio de transporte utili-zado

Logo esse protoacutetipo foi reformuladocom o intuito de melhorar a experi-ecircncia do usuaacuterio com o nosso aplica-tivo

Foram colocados aleacutem do tempo deespera da fila o tempo que o usuaacuteriolevaria para chegar ateacute o local selecio-nado (conforme o tipo de transporte es-colhido) e a quantidade estimada de pes-soas na fila O tempo total (espera so-mado ao tempo de deslocamento) ga-nhou destaque entre as informaccedilotildees doestabelecimento e o botatildeo que direcionao usuaacuterio ao trajeto ficou mais especiacute-fico

Tambeacutem cogitou-se a possibilidade deadicionar login e um perfil de usuaacuteriojunto com uma lista de restaurantes favo-ritos

O fluxo das telas deste novo protoacutetipo ficou como mostra o esquema a seguir

38 DESENVOLVIMENTO DO PROJETO 44

Figura 416 Fluxo de telas do segundo protoacutetipo

44 DEFINICcedilAtildeO DA INTERFACE DO APLICATIVO 39

Figura 417 Tela de detalhes de um restaurante(terceira versatildeo)

Apoacutes outras avaliaccedilotildees mais algumaspequenas alteraccedilotildees foram realizadas nainterface Foi decidido que seria inviaacute-vel estimar o nuacutemero de pessoas nafila entatildeo essa funcionalidade foi remo-vida

Notificaccedilotildees foram adicionadas paraquando o usuaacuterio estiver parado na aacutereado restaurante para que ele possa con-tribuir com informaccedilotildees sobre a fila quepegou aleacutem de um botatildeo de contri-buiccedilatildeo ter sido inserido na tela ini-cial

40 DESENVOLVIMENTO DO PROJETO 45

O fluxo de telas do aplicativo atual ficou da seguinte forma

Figura 418 Fluxo de telas do terceiro protoacutetipo

46 EXPLICACcedilAtildeO DAS FUNCIONALIDADES 41

45 Explicaccedilatildeo das funcionalidadesEsta seccedilatildeo explica as funcionalidades do produto utilizando a figura 418

A tela inicial (3) exibe uma lista de restaurantes incluindo seus respectivos tempos detrajeto e tempo de espera na fila Ao clicar no botatildeo ldquo+rdquo uma caixa de diaacutelogo eacute aberta(4) onde eacute possiacutevel adicionar o tempo que o usuaacuterio esperou na fila Primeiro eacute escolhido orestaurante depois a data e hora que a pessoa chegou na fila e por fim o tempo de esperaem minutos Ao tocar em ldquoEnviar Feedback rdquo os dados satildeo incluiacutedos no banco de dados eatualizados para os outros usuaacuterios Assim eacute apicado o conceito de Crowdsourcing no apli-cativo

Ao tocar em um item da lista de restaurantes seraacute aberta a tela de detalhes de um res-taurante (5) na qual eacute possiacutevel ver com mais clareza os tempos de trajeto e espera o tempototal o endereccedilo do estabelecimento e um pequeno mapa centrado no local Pressionandoo botatildeo ldquoDireccedilotildeesrdquo o usuaacuterio seraacute redirecionado ao aplicativo de mapas de sua preferecircnciano caso do exemplo (8) o Google Maps jaacute traccedilando a rota da localizaccedilatildeo do usuaacuterio para oestabelecimento em questatildeo

Novamente na tela inicial tocando no iacutecone de lupa eacute possiacutevel realizar uma busca digi-tando o nome do estabelecimento na caixa de texto a qual exibe sugestotildees dependendo doque foi digitado Ao clicar em um dos resultados da busca o usuaacuterio eacute novamente direcionadopara a tela de detalhes do restaurante (5)

Tambeacutem eacute possiacutevel tocar no iacutecone de mapa na tela inicial onde seraacute mostrado um mapacentrado na localizaccedilatildeo do usuaacuterio

Ao ficar parado por um tempo em um mesmo local proacuteximo a um estabelecimentocadastrado o usuaacuterio eacute perguntado em uma notificaccedilatildeo quanto tempo ele permaneceu nafila Ao tocar na notificaccedilatildeo a caixa de diaacutelogo para feedback do usuaacuterio seraacute aberta (4) jaacutecom o restaurante preenchido e apoacutes o feedback a janela seraacute fechada e os dados enviadosao banco de dados

46 Implementaccedilatildeo do banco de dadosO banco de dados do aplicativo foi modelado e populado em forma de aacutervore (Fi-

gura 419) de forma a facilitar o acesso aos dados necessaacuterios ao aplicativo No primeironiacutevel estatildeo os ids dos restaurantes Cada id de restaurante guarda a localizaccedilatildeo (latitudelongitude) do restaurante o nome o endereccedilo e um objeto fila O objeto fila guarda todos osdias da semana (domingo a saacutebado) e cada dia da semana possui 24 campos um para cadahora do dia Cada hora possui o tempo meacutedio de espera da fila naquela hora e um peso paraesse tempo O peso eacute um valor que aumenta de acordo com o nuacutemero de feedbacks dadospara que o novo valor do tempo meacutedio seja calculado de forma consistente

Modelamos o banco de dados de uma forma que respeitasse uma hierarquia de dados

42 DESENVOLVIMENTO DO PROJETO 46

Figura 419 Aacutervore que ilustra a organizaccedilatildeo de um restaurante no banco de dados

Com o banco de dados jaacute populado o aplicativo faz consultas e atualizaccedilotildees de dadosConsultas satildeo feitas ao criar a tela de listagem de restaurantes e de detalhes de um restau-rante consultado As atualizaccedilotildees satildeo feitas quando o usuaacuterio manda o feedback de tempo deespera em um estabelecimento em determinado horaacuterio o aplicativo calcula a nova meacutedia eatualiza o campo do respectivo horaacuterio

Capiacutetulo 5

Conclusatildeo

Ao longo dos capiacutetulos deste trabalho pocircde-se acompanhar todo o processo de criaccedilatildeo edesenvolvimento do aplicativo que apoacutes finalizado foi batizado com o nome Queue

Comeccedilando com um problema para o qual o grupo almejava oferecer uma soluccedilatildeoacabou-se por adentrar-se um pouco no campo da Estatiacutestica e estudar diversas metodo-logias que poderiam ser uacuteteis para fornecer um caacutelculo de previsatildeo de espera meacutedia porperiacuteodo aplicaccedilatildeo da teoria das filas e utilizaccedilatildeo de redes neurais

Atraveacutes de uma parceria com a empresa GetIn obteve-se acesso a uma grande quantidadede dados e foi possiacutevel utilizaacute-los em anaacutelises feitas nas metodologias escolhidas conseguindoassim resultados relevantes Por meio destes foi feita a escolha de um dos meacutetodos para ocaacutelculo da previsatildeo de filas a meacutedia por periacuteodo

Aleacutem desses estudos ao longo do ano o grupo aprendeu a desenvolver para a plata-forma Android sobre a qual nenhum dos integrantes tinha conhecimento preacutevio Tambeacutemfoi possiacutevel aprender e utilizar a metodologia aacutegil com Scrum para guiar o processo de de-senvolvimento

Ao fim do ciclo de desenvolvimento conseguiu-se entregar um aplicativo em funciona-mento que fornece a previsatildeo de espera no instante da consulta de estabelecimentos cadas-trados no banco de dados armazenado na nuvem

Na versatildeo atual do aplicativo natildeo foi implementado um sistema para o cadastro de novosestabelecimentos Isso soacute eacute possiacutevel atraveacutes da inserccedilatildeo direta no banco de dados atraveacutes dainterface fornecida pelo console do Firebase Atualmente estatildeo cadastrados 5 restaurantesos quais foram visitados durante o desenvolvimento do projeto Para que o cadastro deestabelecimentos escale seria necessaacuterio a implementaccedilatildeo de uma funcionalidade que permitaao usuaacuterio adicionar novos estabelecimentos a partir de locais disponiacuteveis na API de locaisda Google

43

45

46 APEcircNDICE A

Apecircndice A

Dados coletados

Figura A1 Dados de tempo de espera para grupos de tamanhos variados para cada horaacuterio e emcada dia da semana obtidos em entrevista em restaurantes Outback Steakhouse Shopping Uniatildeo nomecircs de outubro

Referecircncias Bibliograacuteficas

[1] Backpropagation httpmbpsourceforgenet Accesso em Janeiro 2017 14

[2] Bitbucket httpsbitbucketorgproduct Accesso em Dezembro 2016 19

[3] Crowdsourcing httpswwwmerriam-webstercomdictionarycrowdsourcing Ac-cesso em Novembro 2016 21

[4] Designing a survey httpwwwsciencebuddiesorgscience-fair-projectsproject_ideasSoc_surveyshtml Accesso em Outubro 2016 4 23

[5] Facebook httpswwwfacebookcom Accesso em Novembro 2016 24

[6] Firebase httpsfirebasegooglecom Accesso em Agosto 2016 20

[7] Getin app httpswwwgetinappcombrhomesao-paulo Accesso em Novembro2016 9

[8] Git 11 primeiros passos - sobre controle de versatildeo httpsgit-scmcombookpt-brv1Primeiros-passos-Sobre-Controle-de-Vers Accesso em Novembro 2016 19

[9] Google forms httpsdocsgooglecomforms Accesso em Novembro 2016 23

[10] Guia definitivo do project model canvas Project Builder 3

[11] Jsonorg introducing json httpwwwjsonorg Accesso em Novembro 2016 17

[12] Manifesto para desenvolvimento Aacutegil de software httpagilemanifestoorgisoptbrmanifestohtml Accesso em Novembro 2016 5

[13] Nosql httpsenwikipediaorgwikiNoSQL Accesso em Novembro 2016 20

[14] Outback steakhouse httpswwwoutbackcombrhome Accesso em Novembro 20169

[15] Restful api development with lumen microframework httpsbelitsoftcomlaravel-development-servicesapi-development Accesso em Novembro 2016 17

[16] Scrum httpswwwatlassiancomagilescrum Accesso em Novembro 2016 5

[17] Smartphone os market share 2016 q2 httpwwwidccomprodservsmartphone-os-market-sharejsp Accesso em Novembro 2016 15

[18] Smartphone os sales market share kantar worldpanel comtech httpwwwkantarworldpanelcomsmartphone-os-market-share Accesso em Novembro 2016 15

[19] Sourcetree httpswwwsourcetreeappcom Accesso em Dezembro 2016 19

47

48 REFEREcircNCIAS BIBLIOGRAacuteFICAS

[20] Sql httpsptkhanacademyorgcomputingcomputer-programmingsql Accesso emDezembro 2016 20

[21] Trello httpstrellocom Accesso em Novembro 2016 6

[22] Usability test httpsenwikipediaorgwikiUsability_testing Accesso em Novembro2016 36

[23] Versionone 2012 agile dev survey httpswwwversiononecompdf7th-Annual-State-of-Agile-Development-Surveypdf Accesso em Novembro 2016 5

[24] Waze httpswwwwazecom Accesso em Novembro 2016 1

[25] What is an open source httpsopensourcecomresourceswhat-open-source Accessoem Novembro 2016 15

[26] Xml tutorial httpwwww3schoolscomxml Accesso em Novembro 2016 17

[27] Paulo F Cabral dos Anjos Jr Aron Ifanger Maciel Christopher Silva de Paacutedua Com-posiccedilatildeo de carteiras de accedilotildees utilizando modelo de redes neurais artificiais e modelo derisco e retorno de Markowitz 2012 14

[28] Google Distance matrix api documentation httpsdevelopersgooglecommapsdocumentationdistance-matrix Accesso em Novembro 2016 17

[29] Alan Klement Designing features using job stories httpsblogintercomcomusing-job-stories-design-features-ui-ux Accesso em Novembro 2016 6

[30] Azmat Nafees Queuing theory and its application analysis of the sales checkout opera-tion in ica supermarket httpwwwstatisticsduseessaysD07ENafeespdf Accessoem Novembro 2016 12

[31] Eric Ries A Startup Enxuta Lua de papel primeira ediccedilatildeo edition 2012 3

  • Introduccedilatildeo
    • Motivaccedilatildeo
    • Trabalho Proposto
    • Estrutura da monografia
      • Estudos Preliminares
        • Desenvolvimento de Startups
          • Desenvolvimento de Questionaacuterios
            • Metodologia Aacutegil
            • Jobs to be done
            • Caacutelculo da previsatildeo do tempo de espera na fila
              • Descriccedilatildeo do problema
              • Meacutetodos de caacutelculo da espera
                  • Tecnologias utilizadas
                    • O sistema Android
                      • Organizaccedilatildeo de uma aplicaccedilatildeo Android
                        • JSON
                        • Google APIs
                        • Localizaccedilatildeo do Usuaacuterio
                        • Controle de Versatildeo
                        • Banco de dados
                          • Firebase
                            • Crowdsourcing
                              • Desenvolvimento do Projeto
                                • Pesquisa de Mercado
                                  • Pesquisa com o usuaacuterio
                                    • Projeto do Aplicativo
                                    • Aplicaccedilatildeo dos meacutetodos de caacutelculo de espera
                                      • Aplicando a meacutedia por periacuteodo
                                      • Aplicando teoria das filas
                                      • Aplicando redes neurais
                                      • Conclusatildeo sobre os meacutetodos estudados
                                        • Definiccedilatildeo da Interface do aplicativo
                                        • Explicaccedilatildeo das funcionalidades
                                        • Implementaccedilatildeo do banco de dados
                                          • Conclusatildeo
                                          • Dados coletados
                                          • Referecircncias Bibliograacuteficas

24 DESENVOLVIMENTO DO PROJETO 41

Para a divulgaccedilatildeo redes sociais como Facebook [5] e sistemas de mensagem instantacircneascomo WhatsApp foram usados e o envio de respostas foi restrito ateacute trecircs semanas apoacutes suaprimeira postagem Neste periacuteodo foram obtidas 210 respostas as quais ajudaram a definiros aspectos do sistema a ser desenvolvido

O questionaacuterio foi dividido em duas subseccedilotildees perfil do usuaacuterio e funcionalidade Comelas obteve-se os seguintes resultados

41 PESQUISA DE MERCADO 25

Questatildeo 1

Figura 41 Graacutefico pizza da distribuiccedilatildeo das respostas em relaccedilatildeo a idade dos pesquisados

As faixas de idade apresentadas estatildeo desbalanceadas por natildeo terem a mesma quantidadede anos em cada uma poreacutem essa divisatildeo foi pensada levando-se em conta a fluecircncia comtecnologia que cada idade possui Com o resultado verificou-se que do puacuteblico alcanccediladocom a pesquisa a maioria estaacute na faixa de 18 a 25 anos de idade assumida como parcelacom maior conhecimento tecnoloacutegico

Questatildeo 2

Figura 42 Graacutefico pizza da distribuiccedilatildeo das respostas em relaccedilatildeo ao sistema operacional

Esta questatildeo foi pensada para medir a porcentagem de cada sistema operacional pre-sente nos celulares do puacuteblico Com ela descobriu-se que 639 das pessoas dentro desse

26 DESENVOLVIMENTO DO PROJETO 41

grupo possuem o sistema Android enquanto 234 possuem iOS e 38 Windows phoneEssa pergunta foi incluiacuteda para um melhor direcionamento do desenvolvimento do aplicativo

Uma questatildeo levantada ao aplicar esse questionaacuterio foi a dificuldade que algumas pessoasencontraram para identificar a versatildeo do proacuteprio aparelho Poreacutem para manter a consistecircnciadas respostas decidiu-se natildeo mudar nada nesta questatildeo para remediar isso

Questatildeo 3

Figura 43 Graacutefico em barras da distribuiccedilatildeo de frequecircncias mensais de cada local analisado

41 PESQUISA DE MERCADO 27

Questatildeo 4

Figura 44 Graacutefico em pizza da distribuiccedilatildeo de interesse do usuaacuterio no tempo de espera de cadalocal

A princiacutepio viu-se muitas possiacuteveis aplicaccedilotildees para a previsatildeo de tempo de espera Paraentender qual seria a prioridade do puacuteblico as questotildees acima foram incluiacutedas A primeiraverificou a frequecircncia de visitas em alguns locais e a segunda serviu para analisar qualestabelecimento despertava mais interesse nos entrevistados quanto ao quesito fila Nos doiscasos restaurantes se destacaram com o maior interesse

Questatildeo 5

Figura 45 Graacutefico em barras da distribuiccedilatildeo de interesse do usuaacuterio por cada item avaliado

Para acompanhar o dado de espera e fornecer mais informaccedilotildees relevantes ao usuaacuteriosem potencial perguntou-se quais outras informaccedilotildees eles acham interessante saber sobre umdeterminado estabelecimento Com isso descobriu-se que a faixa de preccedilo o trajeto ateacute olocal e o cardaacutepio seriam dados importantes de se obter juntamente com o tempo de espera

28 DESENVOLVIMENTO DO PROJETO 41

Questatildeo 6O que vocecirc costuma fazer para evitar filasNeste ponto testou-se se a soluccedilatildeo proposta atraveacutes do aplicativo resolveria o problema dousuaacuterio de uma forma melhor do que a soluccedilatildeo atualmente utilizada Para isso foi perguntadoo que as pessoas fazem para evitar filas e as principais respostas foram

∙ Evitar horaacuterios de pico

∙ Chegar cedo

∙ Ir em outro lugar caso uma fila seja encontrada

∙ Tentar realizar reservas antecipadamente

∙ Se distrair com livroscelular

Notou-se que as soluccedilotildees utilizadas atualmente natildeo suprem as necessidades dos entre-vistados pois mesmo em horaacuterios natildeo convencionais pode-se encontrar filas ou quandodecide-se esperar na fila muito tempo eacute perdido Concluiu-se que a soluccedilatildeo proposta a par-tir do aplicativo resolve de forma mais abrangente o problema pois ajuda o usuaacuterio a evitarhoraacuterios de pico inesperados

Questatildeo 7

Figura 46 Graacutefico em pizza da distribuiccedilatildeo do meio de transporte utilizado pelos usuaacuterios

Essa questatildeo foi formulada com o objetivo de verificar quais meios de transporte seriamincluiacutedos com previsatildeo de tempo de trajeto no aplicativo Foi verificado que a maioria dosentrevistados utilizam transporte puacuteblico seguido por carro

41 PESQUISA DE MERCADO 29

Questatildeo 8

Figura 47 Graacutefico em pizza da distribuiccedilatildeo do interesse do usuaacuterio pela informaccedilatildeo fornecida

Questatildeo 9

Figura 48 Graacutefico em pizza da distribuiccedilatildeo de quantidade de quilocircmetros que o usuaacuterio sedeslocaria para ir a um local com menos fila

Com essas questotildees foi verificado que algo importante para o usuaacuterio eacute saber de outrosestabelecimentos que possam oferecer tempos de espera menores nas redondezas de onde ousuaacuterio se encontra que eacute uma das funcionalidades que desejaacutevamos utilizar no sistema

30 DESENVOLVIMENTO DO PROJETO 41

Questatildeo 10

Figura 49 Graacutefico em barras da distribuiccedilatildeo de sentimento do usuaacuterio em relaccedilatildeo a notificaccedilatildeode aplicativos

Questatildeo 11

Figura 410 Graacutefico em pizza da distribuiccedilatildeo de opiniatildeo do usuaacuterio sobre desabilitar notificaccedilotildeesem celular

42 PESQUISA DE MERCADO 31

Questatildeo 12

Figura 411 Graacutefico em pizza da distribuiccedilatildeo de opiniatildeo do usuaacuterio sobre habilitar GPS emcelular

A ideia inicial era poder usar o GPS para verificar a localizaccedilatildeo do usuaacuterio e enviarnotificaccedilotildees quando este estivesse parado nas proximidades de algum dos estabelecimentoscadastrados Para que essa funcionalidade possa existir eacute necessaacuterio que o aplicativo tenhaacesso agrave localizaccedilatildeo precisa da pessoa atraveacutes do GPS ou internet ateacute mesmo quando natildeoestiver aberto Aleacutem disso tambeacutem eacute necessaacuterio que as notificaccedilotildees estejam habilitadas parafinalizar esta interaccedilatildeo Entatildeo as perguntas 10 11 e 12 foram incluiacutedas no questionaacuterio Ob-servando as respostas foi possiacutevel verificar que 295 das pessoas que responderam deixamambas as funcionalidades habilitadas (GPS e notificaccedilotildees) Com isso pudemos prosseguircom essa ideia e tambeacutem pensar em possiacuteveis alternativas de interaccedilatildeo e engajamento como usuaacuterio

Por conta dessa pesquisa ter sido compartilhada atraveacutes das contas das redes sociais ecomunicadores dos componentes deste grupo sabe-se que este pode apresentar um resultadoviesado mas que mesmo assim natildeo deve ser desconsiderado e que muito ajudou a sanar asduacutevidas iniciaisComo resultado traccedilamos o perfil do entrevistado

∙ Faixa etaacuteria predominante entre 18 e 30 anos

∙ Possui sistema operacional Android (versotildees 4 5 e 6)

∙ Vai a restaurantes com certa frequecircncia mensal resultando em interesses sobre infor-maccedilotildees relacionadas a esse estabelecimento

∙ Costuma chegar cedo ou evitar os horaacuterios de pico para evitar filas nos locais

∙ Carro e transporte coletivo satildeo os principais meios de transporte

∙ Se deslocaria para um estabelecimento semelhante que possui menos fila contanto queeste fique num raio de 2km de distacircncia

32 DESENVOLVIMENTO DO PROJETO 43

42 Projeto do AplicativoO grupo comeccedilou o projeto com o preenchimento do diagrama Canvas(figura 412) apre-

sentado na Seccedilatildeo 21 Desse modo foi adquirida uma ideia mais consistente e uma base paracomeccedilar a implementaccedilatildeo

Figura 412 Diagrama Canvas preenchido pelo grupo

Com o modelo de negoacutecios definido e com base no resultado da pesquisa com o usuaacuterioapresentada na seccedilatildeo seguinte foram aplicadas pequenas mudanccedilas no projeto para melhoradequar-se agraves necessidades e ao perfil do puacuteblico alvo

Para o desenvolvimento foi utilizado um meacutetodo aacutegil baseado no scrum com sprints de3 a 4 semanas devido agrave disponibilidade dos membros do grupo Os encontros natildeo eram diaacute-rios como recomendado para o meacutetodo scrum tambeacutem em razatildeo da disponibilidade Haviamstand ups (discussotildees raacutepidas no comeccedilo de cada encontro) e retrospectivas ao final de cadasprint A cada sprint eram selecionadas histoacuterias e tarefas para serem executadas e caso natildeofossem concluiacutedas ao final da iteraccedilatildeo eram inseridas ao backlog e feitas no sprint seguinte

43 Aplicaccedilatildeo dos meacutetodos de caacutelculo de espera

431 Aplicando a meacutedia por periacuteodo

Aplicando-se no trecho abaixo a teacutecnica desenvolvida na Seccedilatildeo 242 para uma queryrealizada no dia 19082016 no intervalo de 2040 - 2055 analisa-se a semana anterior quepossua tais intervalos Assim o saacutebado dia 06082016 seraacute selecionado

43 APLICACcedilAtildeO DOS MEacuteTODOS DE CAacuteLCULO DE ESPERA 33

Entrada Qtd Pessoas Notificado Espera

6816 2043 2 862016 2053 1606

6816 2044 2 862016 2055 674

6816 2048 2 862016 2056 528

6816 2048 2 862016 2057 520

6816 2051 2 862016 2107 1118

6816 2051 3 862016 2110 1305

6816 2052 2 862016 2110 1273

6816 2052 2 862016 2111 1179

6816 2053 2 862016 2112 1217

6816 2053 2 NULL 59

6816 2054 3 862016 2119 1541

6816 2055 2 862016 2117 1444

6816 2055 2 862016 2120 1570

6816 2055 2 862016 2122 1613

Tabela 41 Trecho do dia 06082016 entre os horaacuterios das 2043 agraves 2055 um intervalo de 12minutos retirado dos dados da empresa Get In

Com esses dados obteve-se a meacutedia de espera de 1080 segundos (18 minutos) a qualseria sugerida para o usuaacuterio com a busca e desvio padratildeo de 465144719 segundos (775 mi-nutos) Dentro desse intervalo tem-se como maacuteximo tempo de espera 1613 segundos (2688minutos) e como miacutenimo 59 segundos (1 minuto) Analisando-se os dados do dia 19082016no mesmo periacuteodo temos

34 DESENVOLVIMENTO DO PROJETO 43

Entrada Pessoas Notificado Espera Erro previsatildeo Erro p 2 pessoas

19816 2043 2 8192016 2051 544 -563 522

19816 2043 2 8192016 2052 605 -502 461

19816 2044 2 8192016 2056 723 -384 343

19816 2046 4 8192016 2119 1988 881 X

19816 2048 2 8192016 2102 919 188 147

19816 2051 2 8192016 2103 821 286 245

19816 2051 3 8192016 2108 1773 666 X

19816 2053 2 8192016 2110 1083 24 -17

19816 2053 2 8192016 2111 1105 2 -39

19816 2053 2 8192016 2112 1169 62 -103

19816 2055 2 8192016 2114 1447 340 -381

Tabela 42 Trecho do dia 19082016 entre os horaacuterios das 2043 agraves 2055um intervalo de 12minutos retirado dos dados da empresa Get In

Ou seja se um grupo chegasse dentro desse periacuteodo e a previsatildeo dada fosse a meacutediaobtida anteriormente o erro calculado pela diferenccedila entre o tempo sugerido e o real tempode espera estaria no intervalo de 15 minutos para menos ou 8 minutos para mais Sendoesse um valor aceitaacutevel

Um proacuteximo passo eacute a restriccedilatildeo dos registros a grupos com 2 integrantes Com tal restri-ccedilatildeo a previsatildeo de espera eacute de 1066 segundos (1776 minutos) Aplicando essa nova meacutedia aosregistros com 2 integrantes do dia 19082016 obteacutem-se um erro (Coluna 6 - erro previsatildeopara 2 pessoas) menor do que o anterior O intervalo do erro calculado neste caso seria de 522segundos (87 minutos) para mais e 381 segundos (635 minutos) para menos Este resultadoeacute ainda mais favoraacutevel mostrando que a inclusatildeo de mais filtros para o caacutelculo da previsatildeomelhorou o tempo previsto

432 Aplicando teoria das filas

A teoria das filas (Seccedilatildeo 242) eacute uma ferramenta muito completa que calcula muitos dadosuacuteteis para a previsatildeo de espera Contudo por conta da necessidade de informaccedilotildees sobreo tempo de atendimento a qual natildeo estaacute contida no banco utilizado esta teoria natildeo podeser aplicada neste caso Poreacutem esse dado pode ter um valor assumido para que a utilizaccedilatildeodessa teoria fosse possiacutevel entretanto a sua precisatildeo ficaria comprometida e imprevisiacutevel

433 Aplicando redes neurais

Para aplicar o que foi estudado na Seccedilatildeo 242 foi executado o software com o mecircs deAgosto como teste o mecircs de Setembro como treino e o limite do erro quadraacutetico como 001 eobteve-se a tabela presente no apecircndice B Na tabela podemos ver o tempo de fila esperadoou seja o tempo contido na tabela do mecircs de Setembro o tempo que o algoritmo deu comoresposta baseado no mecircs de Agosto e o erro entre eles respectivamente

44 DEFINICcedilAtildeO DA INTERFACE DO APLICATIVO 35

Figura 413 Software Multiple Back-Propagation com a configuraccedilatildeo escolhida para os dadosdisponiacuteveis

Mesmo o erro se mantendo em 0018 os dados obtidos possuem um erro padratildeo de 15minutos Se mais dados forem adicionados o criteacuterio de parada pode ser atingido e assimuma previsatildeo melhor pode ser alcanccedilada

434 Conclusatildeo sobre os meacutetodos estudados

Dentre todas as possibilidades estudadas visualizamos na meacutedia por periacuteodo a melhoropccedilatildeo assumindo os dados disponiacuteveis para teste Se mais paracircmetros fossem fornecidoscomo o tempo de atendimento a teoria das filas seria uma boa opccedilatildeo para fornecer a pre-visatildeo de espera E se mais dados estivessem disponiacuteveis as redes neurais conseguiriam umaaproximaccedilatildeo melhor e assim seria uma boa opccedilatildeo tambeacutem

44 Definiccedilatildeo da Interface do aplicativoComo um primeiro protoacutetipo foi desenvolvida uma interface simples que tinha como tela

de iniacutecio um mapa com um campo para buscas na parte superior

36 DESENVOLVIMENTO DO PROJETO 44

Figura 414 Fluxo de telas do primeiro protoacutetipo

Ao efetuar uma busca por algum estabelecimento uma tela mostrando o tempo de esperaaproximado da fila no local era exibida junto com bototildees que permitiam selecionar o meiode transporte visualizar outras opccedilotildees ou dar iniacutecio a rota ateacute o local desejado Tambeacutemhavia uma notificaccedilatildeo para quando a pessoa estivesse parada proacutexima a um restaurantecadastrado que direcionaria o usuaacuterio a uma tela com um cronocircmetro do tempo de esperana fila

Para testar essa visualizaccedilatildeo escolhemos algumas pessoas e realizamos um teste deusabilidade[22] este teste eacute feito da seguinte forma

44 DEFINICcedilAtildeO DA INTERFACE DO APLICATIVO 37

Uma contextualizaccedilatildeo eacute feita para o voluntaacuterio e entatildeo uma tarefa eacute passada para sercompletada Os integrantes do grupo observam dificuldades enfrentadas pelo entrevistado etomam notas Esse teste eacute repetido algumas vezes e seu resultado eacute coletado para avaliaccedilatildeoe modificaccedilatildeo das funcionalidades

Figura 415 Tela de detalhes de um restaurante(segunda versatildeo)

Notou-se que algumas funcionalidadespareceram confusas e natildeo intuitivas porexemplo natildeo ficou claro se o tempo mos-trado era de trajeto ou de espera na filanem qual era o meio de transporte utili-zado

Logo esse protoacutetipo foi reformuladocom o intuito de melhorar a experi-ecircncia do usuaacuterio com o nosso aplica-tivo

Foram colocados aleacutem do tempo deespera da fila o tempo que o usuaacuteriolevaria para chegar ateacute o local selecio-nado (conforme o tipo de transporte es-colhido) e a quantidade estimada de pes-soas na fila O tempo total (espera so-mado ao tempo de deslocamento) ga-nhou destaque entre as informaccedilotildees doestabelecimento e o botatildeo que direcionao usuaacuterio ao trajeto ficou mais especiacute-fico

Tambeacutem cogitou-se a possibilidade deadicionar login e um perfil de usuaacuteriojunto com uma lista de restaurantes favo-ritos

O fluxo das telas deste novo protoacutetipo ficou como mostra o esquema a seguir

38 DESENVOLVIMENTO DO PROJETO 44

Figura 416 Fluxo de telas do segundo protoacutetipo

44 DEFINICcedilAtildeO DA INTERFACE DO APLICATIVO 39

Figura 417 Tela de detalhes de um restaurante(terceira versatildeo)

Apoacutes outras avaliaccedilotildees mais algumaspequenas alteraccedilotildees foram realizadas nainterface Foi decidido que seria inviaacute-vel estimar o nuacutemero de pessoas nafila entatildeo essa funcionalidade foi remo-vida

Notificaccedilotildees foram adicionadas paraquando o usuaacuterio estiver parado na aacutereado restaurante para que ele possa con-tribuir com informaccedilotildees sobre a fila quepegou aleacutem de um botatildeo de contri-buiccedilatildeo ter sido inserido na tela ini-cial

40 DESENVOLVIMENTO DO PROJETO 45

O fluxo de telas do aplicativo atual ficou da seguinte forma

Figura 418 Fluxo de telas do terceiro protoacutetipo

46 EXPLICACcedilAtildeO DAS FUNCIONALIDADES 41

45 Explicaccedilatildeo das funcionalidadesEsta seccedilatildeo explica as funcionalidades do produto utilizando a figura 418

A tela inicial (3) exibe uma lista de restaurantes incluindo seus respectivos tempos detrajeto e tempo de espera na fila Ao clicar no botatildeo ldquo+rdquo uma caixa de diaacutelogo eacute aberta(4) onde eacute possiacutevel adicionar o tempo que o usuaacuterio esperou na fila Primeiro eacute escolhido orestaurante depois a data e hora que a pessoa chegou na fila e por fim o tempo de esperaem minutos Ao tocar em ldquoEnviar Feedback rdquo os dados satildeo incluiacutedos no banco de dados eatualizados para os outros usuaacuterios Assim eacute apicado o conceito de Crowdsourcing no apli-cativo

Ao tocar em um item da lista de restaurantes seraacute aberta a tela de detalhes de um res-taurante (5) na qual eacute possiacutevel ver com mais clareza os tempos de trajeto e espera o tempototal o endereccedilo do estabelecimento e um pequeno mapa centrado no local Pressionandoo botatildeo ldquoDireccedilotildeesrdquo o usuaacuterio seraacute redirecionado ao aplicativo de mapas de sua preferecircnciano caso do exemplo (8) o Google Maps jaacute traccedilando a rota da localizaccedilatildeo do usuaacuterio para oestabelecimento em questatildeo

Novamente na tela inicial tocando no iacutecone de lupa eacute possiacutevel realizar uma busca digi-tando o nome do estabelecimento na caixa de texto a qual exibe sugestotildees dependendo doque foi digitado Ao clicar em um dos resultados da busca o usuaacuterio eacute novamente direcionadopara a tela de detalhes do restaurante (5)

Tambeacutem eacute possiacutevel tocar no iacutecone de mapa na tela inicial onde seraacute mostrado um mapacentrado na localizaccedilatildeo do usuaacuterio

Ao ficar parado por um tempo em um mesmo local proacuteximo a um estabelecimentocadastrado o usuaacuterio eacute perguntado em uma notificaccedilatildeo quanto tempo ele permaneceu nafila Ao tocar na notificaccedilatildeo a caixa de diaacutelogo para feedback do usuaacuterio seraacute aberta (4) jaacutecom o restaurante preenchido e apoacutes o feedback a janela seraacute fechada e os dados enviadosao banco de dados

46 Implementaccedilatildeo do banco de dadosO banco de dados do aplicativo foi modelado e populado em forma de aacutervore (Fi-

gura 419) de forma a facilitar o acesso aos dados necessaacuterios ao aplicativo No primeironiacutevel estatildeo os ids dos restaurantes Cada id de restaurante guarda a localizaccedilatildeo (latitudelongitude) do restaurante o nome o endereccedilo e um objeto fila O objeto fila guarda todos osdias da semana (domingo a saacutebado) e cada dia da semana possui 24 campos um para cadahora do dia Cada hora possui o tempo meacutedio de espera da fila naquela hora e um peso paraesse tempo O peso eacute um valor que aumenta de acordo com o nuacutemero de feedbacks dadospara que o novo valor do tempo meacutedio seja calculado de forma consistente

Modelamos o banco de dados de uma forma que respeitasse uma hierarquia de dados

42 DESENVOLVIMENTO DO PROJETO 46

Figura 419 Aacutervore que ilustra a organizaccedilatildeo de um restaurante no banco de dados

Com o banco de dados jaacute populado o aplicativo faz consultas e atualizaccedilotildees de dadosConsultas satildeo feitas ao criar a tela de listagem de restaurantes e de detalhes de um restau-rante consultado As atualizaccedilotildees satildeo feitas quando o usuaacuterio manda o feedback de tempo deespera em um estabelecimento em determinado horaacuterio o aplicativo calcula a nova meacutedia eatualiza o campo do respectivo horaacuterio

Capiacutetulo 5

Conclusatildeo

Ao longo dos capiacutetulos deste trabalho pocircde-se acompanhar todo o processo de criaccedilatildeo edesenvolvimento do aplicativo que apoacutes finalizado foi batizado com o nome Queue

Comeccedilando com um problema para o qual o grupo almejava oferecer uma soluccedilatildeoacabou-se por adentrar-se um pouco no campo da Estatiacutestica e estudar diversas metodo-logias que poderiam ser uacuteteis para fornecer um caacutelculo de previsatildeo de espera meacutedia porperiacuteodo aplicaccedilatildeo da teoria das filas e utilizaccedilatildeo de redes neurais

Atraveacutes de uma parceria com a empresa GetIn obteve-se acesso a uma grande quantidadede dados e foi possiacutevel utilizaacute-los em anaacutelises feitas nas metodologias escolhidas conseguindoassim resultados relevantes Por meio destes foi feita a escolha de um dos meacutetodos para ocaacutelculo da previsatildeo de filas a meacutedia por periacuteodo

Aleacutem desses estudos ao longo do ano o grupo aprendeu a desenvolver para a plata-forma Android sobre a qual nenhum dos integrantes tinha conhecimento preacutevio Tambeacutemfoi possiacutevel aprender e utilizar a metodologia aacutegil com Scrum para guiar o processo de de-senvolvimento

Ao fim do ciclo de desenvolvimento conseguiu-se entregar um aplicativo em funciona-mento que fornece a previsatildeo de espera no instante da consulta de estabelecimentos cadas-trados no banco de dados armazenado na nuvem

Na versatildeo atual do aplicativo natildeo foi implementado um sistema para o cadastro de novosestabelecimentos Isso soacute eacute possiacutevel atraveacutes da inserccedilatildeo direta no banco de dados atraveacutes dainterface fornecida pelo console do Firebase Atualmente estatildeo cadastrados 5 restaurantesos quais foram visitados durante o desenvolvimento do projeto Para que o cadastro deestabelecimentos escale seria necessaacuterio a implementaccedilatildeo de uma funcionalidade que permitaao usuaacuterio adicionar novos estabelecimentos a partir de locais disponiacuteveis na API de locaisda Google

43

45

46 APEcircNDICE A

Apecircndice A

Dados coletados

Figura A1 Dados de tempo de espera para grupos de tamanhos variados para cada horaacuterio e emcada dia da semana obtidos em entrevista em restaurantes Outback Steakhouse Shopping Uniatildeo nomecircs de outubro

Referecircncias Bibliograacuteficas

[1] Backpropagation httpmbpsourceforgenet Accesso em Janeiro 2017 14

[2] Bitbucket httpsbitbucketorgproduct Accesso em Dezembro 2016 19

[3] Crowdsourcing httpswwwmerriam-webstercomdictionarycrowdsourcing Ac-cesso em Novembro 2016 21

[4] Designing a survey httpwwwsciencebuddiesorgscience-fair-projectsproject_ideasSoc_surveyshtml Accesso em Outubro 2016 4 23

[5] Facebook httpswwwfacebookcom Accesso em Novembro 2016 24

[6] Firebase httpsfirebasegooglecom Accesso em Agosto 2016 20

[7] Getin app httpswwwgetinappcombrhomesao-paulo Accesso em Novembro2016 9

[8] Git 11 primeiros passos - sobre controle de versatildeo httpsgit-scmcombookpt-brv1Primeiros-passos-Sobre-Controle-de-Vers Accesso em Novembro 2016 19

[9] Google forms httpsdocsgooglecomforms Accesso em Novembro 2016 23

[10] Guia definitivo do project model canvas Project Builder 3

[11] Jsonorg introducing json httpwwwjsonorg Accesso em Novembro 2016 17

[12] Manifesto para desenvolvimento Aacutegil de software httpagilemanifestoorgisoptbrmanifestohtml Accesso em Novembro 2016 5

[13] Nosql httpsenwikipediaorgwikiNoSQL Accesso em Novembro 2016 20

[14] Outback steakhouse httpswwwoutbackcombrhome Accesso em Novembro 20169

[15] Restful api development with lumen microframework httpsbelitsoftcomlaravel-development-servicesapi-development Accesso em Novembro 2016 17

[16] Scrum httpswwwatlassiancomagilescrum Accesso em Novembro 2016 5

[17] Smartphone os market share 2016 q2 httpwwwidccomprodservsmartphone-os-market-sharejsp Accesso em Novembro 2016 15

[18] Smartphone os sales market share kantar worldpanel comtech httpwwwkantarworldpanelcomsmartphone-os-market-share Accesso em Novembro 2016 15

[19] Sourcetree httpswwwsourcetreeappcom Accesso em Dezembro 2016 19

47

48 REFEREcircNCIAS BIBLIOGRAacuteFICAS

[20] Sql httpsptkhanacademyorgcomputingcomputer-programmingsql Accesso emDezembro 2016 20

[21] Trello httpstrellocom Accesso em Novembro 2016 6

[22] Usability test httpsenwikipediaorgwikiUsability_testing Accesso em Novembro2016 36

[23] Versionone 2012 agile dev survey httpswwwversiononecompdf7th-Annual-State-of-Agile-Development-Surveypdf Accesso em Novembro 2016 5

[24] Waze httpswwwwazecom Accesso em Novembro 2016 1

[25] What is an open source httpsopensourcecomresourceswhat-open-source Accessoem Novembro 2016 15

[26] Xml tutorial httpwwww3schoolscomxml Accesso em Novembro 2016 17

[27] Paulo F Cabral dos Anjos Jr Aron Ifanger Maciel Christopher Silva de Paacutedua Com-posiccedilatildeo de carteiras de accedilotildees utilizando modelo de redes neurais artificiais e modelo derisco e retorno de Markowitz 2012 14

[28] Google Distance matrix api documentation httpsdevelopersgooglecommapsdocumentationdistance-matrix Accesso em Novembro 2016 17

[29] Alan Klement Designing features using job stories httpsblogintercomcomusing-job-stories-design-features-ui-ux Accesso em Novembro 2016 6

[30] Azmat Nafees Queuing theory and its application analysis of the sales checkout opera-tion in ica supermarket httpwwwstatisticsduseessaysD07ENafeespdf Accessoem Novembro 2016 12

[31] Eric Ries A Startup Enxuta Lua de papel primeira ediccedilatildeo edition 2012 3

  • Introduccedilatildeo
    • Motivaccedilatildeo
    • Trabalho Proposto
    • Estrutura da monografia
      • Estudos Preliminares
        • Desenvolvimento de Startups
          • Desenvolvimento de Questionaacuterios
            • Metodologia Aacutegil
            • Jobs to be done
            • Caacutelculo da previsatildeo do tempo de espera na fila
              • Descriccedilatildeo do problema
              • Meacutetodos de caacutelculo da espera
                  • Tecnologias utilizadas
                    • O sistema Android
                      • Organizaccedilatildeo de uma aplicaccedilatildeo Android
                        • JSON
                        • Google APIs
                        • Localizaccedilatildeo do Usuaacuterio
                        • Controle de Versatildeo
                        • Banco de dados
                          • Firebase
                            • Crowdsourcing
                              • Desenvolvimento do Projeto
                                • Pesquisa de Mercado
                                  • Pesquisa com o usuaacuterio
                                    • Projeto do Aplicativo
                                    • Aplicaccedilatildeo dos meacutetodos de caacutelculo de espera
                                      • Aplicando a meacutedia por periacuteodo
                                      • Aplicando teoria das filas
                                      • Aplicando redes neurais
                                      • Conclusatildeo sobre os meacutetodos estudados
                                        • Definiccedilatildeo da Interface do aplicativo
                                        • Explicaccedilatildeo das funcionalidades
                                        • Implementaccedilatildeo do banco de dados
                                          • Conclusatildeo
                                          • Dados coletados
                                          • Referecircncias Bibliograacuteficas

41 PESQUISA DE MERCADO 25

Questatildeo 1

Figura 41 Graacutefico pizza da distribuiccedilatildeo das respostas em relaccedilatildeo a idade dos pesquisados

As faixas de idade apresentadas estatildeo desbalanceadas por natildeo terem a mesma quantidadede anos em cada uma poreacutem essa divisatildeo foi pensada levando-se em conta a fluecircncia comtecnologia que cada idade possui Com o resultado verificou-se que do puacuteblico alcanccediladocom a pesquisa a maioria estaacute na faixa de 18 a 25 anos de idade assumida como parcelacom maior conhecimento tecnoloacutegico

Questatildeo 2

Figura 42 Graacutefico pizza da distribuiccedilatildeo das respostas em relaccedilatildeo ao sistema operacional

Esta questatildeo foi pensada para medir a porcentagem de cada sistema operacional pre-sente nos celulares do puacuteblico Com ela descobriu-se que 639 das pessoas dentro desse

26 DESENVOLVIMENTO DO PROJETO 41

grupo possuem o sistema Android enquanto 234 possuem iOS e 38 Windows phoneEssa pergunta foi incluiacuteda para um melhor direcionamento do desenvolvimento do aplicativo

Uma questatildeo levantada ao aplicar esse questionaacuterio foi a dificuldade que algumas pessoasencontraram para identificar a versatildeo do proacuteprio aparelho Poreacutem para manter a consistecircnciadas respostas decidiu-se natildeo mudar nada nesta questatildeo para remediar isso

Questatildeo 3

Figura 43 Graacutefico em barras da distribuiccedilatildeo de frequecircncias mensais de cada local analisado

41 PESQUISA DE MERCADO 27

Questatildeo 4

Figura 44 Graacutefico em pizza da distribuiccedilatildeo de interesse do usuaacuterio no tempo de espera de cadalocal

A princiacutepio viu-se muitas possiacuteveis aplicaccedilotildees para a previsatildeo de tempo de espera Paraentender qual seria a prioridade do puacuteblico as questotildees acima foram incluiacutedas A primeiraverificou a frequecircncia de visitas em alguns locais e a segunda serviu para analisar qualestabelecimento despertava mais interesse nos entrevistados quanto ao quesito fila Nos doiscasos restaurantes se destacaram com o maior interesse

Questatildeo 5

Figura 45 Graacutefico em barras da distribuiccedilatildeo de interesse do usuaacuterio por cada item avaliado

Para acompanhar o dado de espera e fornecer mais informaccedilotildees relevantes ao usuaacuteriosem potencial perguntou-se quais outras informaccedilotildees eles acham interessante saber sobre umdeterminado estabelecimento Com isso descobriu-se que a faixa de preccedilo o trajeto ateacute olocal e o cardaacutepio seriam dados importantes de se obter juntamente com o tempo de espera

28 DESENVOLVIMENTO DO PROJETO 41

Questatildeo 6O que vocecirc costuma fazer para evitar filasNeste ponto testou-se se a soluccedilatildeo proposta atraveacutes do aplicativo resolveria o problema dousuaacuterio de uma forma melhor do que a soluccedilatildeo atualmente utilizada Para isso foi perguntadoo que as pessoas fazem para evitar filas e as principais respostas foram

∙ Evitar horaacuterios de pico

∙ Chegar cedo

∙ Ir em outro lugar caso uma fila seja encontrada

∙ Tentar realizar reservas antecipadamente

∙ Se distrair com livroscelular

Notou-se que as soluccedilotildees utilizadas atualmente natildeo suprem as necessidades dos entre-vistados pois mesmo em horaacuterios natildeo convencionais pode-se encontrar filas ou quandodecide-se esperar na fila muito tempo eacute perdido Concluiu-se que a soluccedilatildeo proposta a par-tir do aplicativo resolve de forma mais abrangente o problema pois ajuda o usuaacuterio a evitarhoraacuterios de pico inesperados

Questatildeo 7

Figura 46 Graacutefico em pizza da distribuiccedilatildeo do meio de transporte utilizado pelos usuaacuterios

Essa questatildeo foi formulada com o objetivo de verificar quais meios de transporte seriamincluiacutedos com previsatildeo de tempo de trajeto no aplicativo Foi verificado que a maioria dosentrevistados utilizam transporte puacuteblico seguido por carro

41 PESQUISA DE MERCADO 29

Questatildeo 8

Figura 47 Graacutefico em pizza da distribuiccedilatildeo do interesse do usuaacuterio pela informaccedilatildeo fornecida

Questatildeo 9

Figura 48 Graacutefico em pizza da distribuiccedilatildeo de quantidade de quilocircmetros que o usuaacuterio sedeslocaria para ir a um local com menos fila

Com essas questotildees foi verificado que algo importante para o usuaacuterio eacute saber de outrosestabelecimentos que possam oferecer tempos de espera menores nas redondezas de onde ousuaacuterio se encontra que eacute uma das funcionalidades que desejaacutevamos utilizar no sistema

30 DESENVOLVIMENTO DO PROJETO 41

Questatildeo 10

Figura 49 Graacutefico em barras da distribuiccedilatildeo de sentimento do usuaacuterio em relaccedilatildeo a notificaccedilatildeode aplicativos

Questatildeo 11

Figura 410 Graacutefico em pizza da distribuiccedilatildeo de opiniatildeo do usuaacuterio sobre desabilitar notificaccedilotildeesem celular

42 PESQUISA DE MERCADO 31

Questatildeo 12

Figura 411 Graacutefico em pizza da distribuiccedilatildeo de opiniatildeo do usuaacuterio sobre habilitar GPS emcelular

A ideia inicial era poder usar o GPS para verificar a localizaccedilatildeo do usuaacuterio e enviarnotificaccedilotildees quando este estivesse parado nas proximidades de algum dos estabelecimentoscadastrados Para que essa funcionalidade possa existir eacute necessaacuterio que o aplicativo tenhaacesso agrave localizaccedilatildeo precisa da pessoa atraveacutes do GPS ou internet ateacute mesmo quando natildeoestiver aberto Aleacutem disso tambeacutem eacute necessaacuterio que as notificaccedilotildees estejam habilitadas parafinalizar esta interaccedilatildeo Entatildeo as perguntas 10 11 e 12 foram incluiacutedas no questionaacuterio Ob-servando as respostas foi possiacutevel verificar que 295 das pessoas que responderam deixamambas as funcionalidades habilitadas (GPS e notificaccedilotildees) Com isso pudemos prosseguircom essa ideia e tambeacutem pensar em possiacuteveis alternativas de interaccedilatildeo e engajamento como usuaacuterio

Por conta dessa pesquisa ter sido compartilhada atraveacutes das contas das redes sociais ecomunicadores dos componentes deste grupo sabe-se que este pode apresentar um resultadoviesado mas que mesmo assim natildeo deve ser desconsiderado e que muito ajudou a sanar asduacutevidas iniciaisComo resultado traccedilamos o perfil do entrevistado

∙ Faixa etaacuteria predominante entre 18 e 30 anos

∙ Possui sistema operacional Android (versotildees 4 5 e 6)

∙ Vai a restaurantes com certa frequecircncia mensal resultando em interesses sobre infor-maccedilotildees relacionadas a esse estabelecimento

∙ Costuma chegar cedo ou evitar os horaacuterios de pico para evitar filas nos locais

∙ Carro e transporte coletivo satildeo os principais meios de transporte

∙ Se deslocaria para um estabelecimento semelhante que possui menos fila contanto queeste fique num raio de 2km de distacircncia

32 DESENVOLVIMENTO DO PROJETO 43

42 Projeto do AplicativoO grupo comeccedilou o projeto com o preenchimento do diagrama Canvas(figura 412) apre-

sentado na Seccedilatildeo 21 Desse modo foi adquirida uma ideia mais consistente e uma base paracomeccedilar a implementaccedilatildeo

Figura 412 Diagrama Canvas preenchido pelo grupo

Com o modelo de negoacutecios definido e com base no resultado da pesquisa com o usuaacuterioapresentada na seccedilatildeo seguinte foram aplicadas pequenas mudanccedilas no projeto para melhoradequar-se agraves necessidades e ao perfil do puacuteblico alvo

Para o desenvolvimento foi utilizado um meacutetodo aacutegil baseado no scrum com sprints de3 a 4 semanas devido agrave disponibilidade dos membros do grupo Os encontros natildeo eram diaacute-rios como recomendado para o meacutetodo scrum tambeacutem em razatildeo da disponibilidade Haviamstand ups (discussotildees raacutepidas no comeccedilo de cada encontro) e retrospectivas ao final de cadasprint A cada sprint eram selecionadas histoacuterias e tarefas para serem executadas e caso natildeofossem concluiacutedas ao final da iteraccedilatildeo eram inseridas ao backlog e feitas no sprint seguinte

43 Aplicaccedilatildeo dos meacutetodos de caacutelculo de espera

431 Aplicando a meacutedia por periacuteodo

Aplicando-se no trecho abaixo a teacutecnica desenvolvida na Seccedilatildeo 242 para uma queryrealizada no dia 19082016 no intervalo de 2040 - 2055 analisa-se a semana anterior quepossua tais intervalos Assim o saacutebado dia 06082016 seraacute selecionado

43 APLICACcedilAtildeO DOS MEacuteTODOS DE CAacuteLCULO DE ESPERA 33

Entrada Qtd Pessoas Notificado Espera

6816 2043 2 862016 2053 1606

6816 2044 2 862016 2055 674

6816 2048 2 862016 2056 528

6816 2048 2 862016 2057 520

6816 2051 2 862016 2107 1118

6816 2051 3 862016 2110 1305

6816 2052 2 862016 2110 1273

6816 2052 2 862016 2111 1179

6816 2053 2 862016 2112 1217

6816 2053 2 NULL 59

6816 2054 3 862016 2119 1541

6816 2055 2 862016 2117 1444

6816 2055 2 862016 2120 1570

6816 2055 2 862016 2122 1613

Tabela 41 Trecho do dia 06082016 entre os horaacuterios das 2043 agraves 2055 um intervalo de 12minutos retirado dos dados da empresa Get In

Com esses dados obteve-se a meacutedia de espera de 1080 segundos (18 minutos) a qualseria sugerida para o usuaacuterio com a busca e desvio padratildeo de 465144719 segundos (775 mi-nutos) Dentro desse intervalo tem-se como maacuteximo tempo de espera 1613 segundos (2688minutos) e como miacutenimo 59 segundos (1 minuto) Analisando-se os dados do dia 19082016no mesmo periacuteodo temos

34 DESENVOLVIMENTO DO PROJETO 43

Entrada Pessoas Notificado Espera Erro previsatildeo Erro p 2 pessoas

19816 2043 2 8192016 2051 544 -563 522

19816 2043 2 8192016 2052 605 -502 461

19816 2044 2 8192016 2056 723 -384 343

19816 2046 4 8192016 2119 1988 881 X

19816 2048 2 8192016 2102 919 188 147

19816 2051 2 8192016 2103 821 286 245

19816 2051 3 8192016 2108 1773 666 X

19816 2053 2 8192016 2110 1083 24 -17

19816 2053 2 8192016 2111 1105 2 -39

19816 2053 2 8192016 2112 1169 62 -103

19816 2055 2 8192016 2114 1447 340 -381

Tabela 42 Trecho do dia 19082016 entre os horaacuterios das 2043 agraves 2055um intervalo de 12minutos retirado dos dados da empresa Get In

Ou seja se um grupo chegasse dentro desse periacuteodo e a previsatildeo dada fosse a meacutediaobtida anteriormente o erro calculado pela diferenccedila entre o tempo sugerido e o real tempode espera estaria no intervalo de 15 minutos para menos ou 8 minutos para mais Sendoesse um valor aceitaacutevel

Um proacuteximo passo eacute a restriccedilatildeo dos registros a grupos com 2 integrantes Com tal restri-ccedilatildeo a previsatildeo de espera eacute de 1066 segundos (1776 minutos) Aplicando essa nova meacutedia aosregistros com 2 integrantes do dia 19082016 obteacutem-se um erro (Coluna 6 - erro previsatildeopara 2 pessoas) menor do que o anterior O intervalo do erro calculado neste caso seria de 522segundos (87 minutos) para mais e 381 segundos (635 minutos) para menos Este resultadoeacute ainda mais favoraacutevel mostrando que a inclusatildeo de mais filtros para o caacutelculo da previsatildeomelhorou o tempo previsto

432 Aplicando teoria das filas

A teoria das filas (Seccedilatildeo 242) eacute uma ferramenta muito completa que calcula muitos dadosuacuteteis para a previsatildeo de espera Contudo por conta da necessidade de informaccedilotildees sobreo tempo de atendimento a qual natildeo estaacute contida no banco utilizado esta teoria natildeo podeser aplicada neste caso Poreacutem esse dado pode ter um valor assumido para que a utilizaccedilatildeodessa teoria fosse possiacutevel entretanto a sua precisatildeo ficaria comprometida e imprevisiacutevel

433 Aplicando redes neurais

Para aplicar o que foi estudado na Seccedilatildeo 242 foi executado o software com o mecircs deAgosto como teste o mecircs de Setembro como treino e o limite do erro quadraacutetico como 001 eobteve-se a tabela presente no apecircndice B Na tabela podemos ver o tempo de fila esperadoou seja o tempo contido na tabela do mecircs de Setembro o tempo que o algoritmo deu comoresposta baseado no mecircs de Agosto e o erro entre eles respectivamente

44 DEFINICcedilAtildeO DA INTERFACE DO APLICATIVO 35

Figura 413 Software Multiple Back-Propagation com a configuraccedilatildeo escolhida para os dadosdisponiacuteveis

Mesmo o erro se mantendo em 0018 os dados obtidos possuem um erro padratildeo de 15minutos Se mais dados forem adicionados o criteacuterio de parada pode ser atingido e assimuma previsatildeo melhor pode ser alcanccedilada

434 Conclusatildeo sobre os meacutetodos estudados

Dentre todas as possibilidades estudadas visualizamos na meacutedia por periacuteodo a melhoropccedilatildeo assumindo os dados disponiacuteveis para teste Se mais paracircmetros fossem fornecidoscomo o tempo de atendimento a teoria das filas seria uma boa opccedilatildeo para fornecer a pre-visatildeo de espera E se mais dados estivessem disponiacuteveis as redes neurais conseguiriam umaaproximaccedilatildeo melhor e assim seria uma boa opccedilatildeo tambeacutem

44 Definiccedilatildeo da Interface do aplicativoComo um primeiro protoacutetipo foi desenvolvida uma interface simples que tinha como tela

de iniacutecio um mapa com um campo para buscas na parte superior

36 DESENVOLVIMENTO DO PROJETO 44

Figura 414 Fluxo de telas do primeiro protoacutetipo

Ao efetuar uma busca por algum estabelecimento uma tela mostrando o tempo de esperaaproximado da fila no local era exibida junto com bototildees que permitiam selecionar o meiode transporte visualizar outras opccedilotildees ou dar iniacutecio a rota ateacute o local desejado Tambeacutemhavia uma notificaccedilatildeo para quando a pessoa estivesse parada proacutexima a um restaurantecadastrado que direcionaria o usuaacuterio a uma tela com um cronocircmetro do tempo de esperana fila

Para testar essa visualizaccedilatildeo escolhemos algumas pessoas e realizamos um teste deusabilidade[22] este teste eacute feito da seguinte forma

44 DEFINICcedilAtildeO DA INTERFACE DO APLICATIVO 37

Uma contextualizaccedilatildeo eacute feita para o voluntaacuterio e entatildeo uma tarefa eacute passada para sercompletada Os integrantes do grupo observam dificuldades enfrentadas pelo entrevistado etomam notas Esse teste eacute repetido algumas vezes e seu resultado eacute coletado para avaliaccedilatildeoe modificaccedilatildeo das funcionalidades

Figura 415 Tela de detalhes de um restaurante(segunda versatildeo)

Notou-se que algumas funcionalidadespareceram confusas e natildeo intuitivas porexemplo natildeo ficou claro se o tempo mos-trado era de trajeto ou de espera na filanem qual era o meio de transporte utili-zado

Logo esse protoacutetipo foi reformuladocom o intuito de melhorar a experi-ecircncia do usuaacuterio com o nosso aplica-tivo

Foram colocados aleacutem do tempo deespera da fila o tempo que o usuaacuteriolevaria para chegar ateacute o local selecio-nado (conforme o tipo de transporte es-colhido) e a quantidade estimada de pes-soas na fila O tempo total (espera so-mado ao tempo de deslocamento) ga-nhou destaque entre as informaccedilotildees doestabelecimento e o botatildeo que direcionao usuaacuterio ao trajeto ficou mais especiacute-fico

Tambeacutem cogitou-se a possibilidade deadicionar login e um perfil de usuaacuteriojunto com uma lista de restaurantes favo-ritos

O fluxo das telas deste novo protoacutetipo ficou como mostra o esquema a seguir

38 DESENVOLVIMENTO DO PROJETO 44

Figura 416 Fluxo de telas do segundo protoacutetipo

44 DEFINICcedilAtildeO DA INTERFACE DO APLICATIVO 39

Figura 417 Tela de detalhes de um restaurante(terceira versatildeo)

Apoacutes outras avaliaccedilotildees mais algumaspequenas alteraccedilotildees foram realizadas nainterface Foi decidido que seria inviaacute-vel estimar o nuacutemero de pessoas nafila entatildeo essa funcionalidade foi remo-vida

Notificaccedilotildees foram adicionadas paraquando o usuaacuterio estiver parado na aacutereado restaurante para que ele possa con-tribuir com informaccedilotildees sobre a fila quepegou aleacutem de um botatildeo de contri-buiccedilatildeo ter sido inserido na tela ini-cial

40 DESENVOLVIMENTO DO PROJETO 45

O fluxo de telas do aplicativo atual ficou da seguinte forma

Figura 418 Fluxo de telas do terceiro protoacutetipo

46 EXPLICACcedilAtildeO DAS FUNCIONALIDADES 41

45 Explicaccedilatildeo das funcionalidadesEsta seccedilatildeo explica as funcionalidades do produto utilizando a figura 418

A tela inicial (3) exibe uma lista de restaurantes incluindo seus respectivos tempos detrajeto e tempo de espera na fila Ao clicar no botatildeo ldquo+rdquo uma caixa de diaacutelogo eacute aberta(4) onde eacute possiacutevel adicionar o tempo que o usuaacuterio esperou na fila Primeiro eacute escolhido orestaurante depois a data e hora que a pessoa chegou na fila e por fim o tempo de esperaem minutos Ao tocar em ldquoEnviar Feedback rdquo os dados satildeo incluiacutedos no banco de dados eatualizados para os outros usuaacuterios Assim eacute apicado o conceito de Crowdsourcing no apli-cativo

Ao tocar em um item da lista de restaurantes seraacute aberta a tela de detalhes de um res-taurante (5) na qual eacute possiacutevel ver com mais clareza os tempos de trajeto e espera o tempototal o endereccedilo do estabelecimento e um pequeno mapa centrado no local Pressionandoo botatildeo ldquoDireccedilotildeesrdquo o usuaacuterio seraacute redirecionado ao aplicativo de mapas de sua preferecircnciano caso do exemplo (8) o Google Maps jaacute traccedilando a rota da localizaccedilatildeo do usuaacuterio para oestabelecimento em questatildeo

Novamente na tela inicial tocando no iacutecone de lupa eacute possiacutevel realizar uma busca digi-tando o nome do estabelecimento na caixa de texto a qual exibe sugestotildees dependendo doque foi digitado Ao clicar em um dos resultados da busca o usuaacuterio eacute novamente direcionadopara a tela de detalhes do restaurante (5)

Tambeacutem eacute possiacutevel tocar no iacutecone de mapa na tela inicial onde seraacute mostrado um mapacentrado na localizaccedilatildeo do usuaacuterio

Ao ficar parado por um tempo em um mesmo local proacuteximo a um estabelecimentocadastrado o usuaacuterio eacute perguntado em uma notificaccedilatildeo quanto tempo ele permaneceu nafila Ao tocar na notificaccedilatildeo a caixa de diaacutelogo para feedback do usuaacuterio seraacute aberta (4) jaacutecom o restaurante preenchido e apoacutes o feedback a janela seraacute fechada e os dados enviadosao banco de dados

46 Implementaccedilatildeo do banco de dadosO banco de dados do aplicativo foi modelado e populado em forma de aacutervore (Fi-

gura 419) de forma a facilitar o acesso aos dados necessaacuterios ao aplicativo No primeironiacutevel estatildeo os ids dos restaurantes Cada id de restaurante guarda a localizaccedilatildeo (latitudelongitude) do restaurante o nome o endereccedilo e um objeto fila O objeto fila guarda todos osdias da semana (domingo a saacutebado) e cada dia da semana possui 24 campos um para cadahora do dia Cada hora possui o tempo meacutedio de espera da fila naquela hora e um peso paraesse tempo O peso eacute um valor que aumenta de acordo com o nuacutemero de feedbacks dadospara que o novo valor do tempo meacutedio seja calculado de forma consistente

Modelamos o banco de dados de uma forma que respeitasse uma hierarquia de dados

42 DESENVOLVIMENTO DO PROJETO 46

Figura 419 Aacutervore que ilustra a organizaccedilatildeo de um restaurante no banco de dados

Com o banco de dados jaacute populado o aplicativo faz consultas e atualizaccedilotildees de dadosConsultas satildeo feitas ao criar a tela de listagem de restaurantes e de detalhes de um restau-rante consultado As atualizaccedilotildees satildeo feitas quando o usuaacuterio manda o feedback de tempo deespera em um estabelecimento em determinado horaacuterio o aplicativo calcula a nova meacutedia eatualiza o campo do respectivo horaacuterio

Capiacutetulo 5

Conclusatildeo

Ao longo dos capiacutetulos deste trabalho pocircde-se acompanhar todo o processo de criaccedilatildeo edesenvolvimento do aplicativo que apoacutes finalizado foi batizado com o nome Queue

Comeccedilando com um problema para o qual o grupo almejava oferecer uma soluccedilatildeoacabou-se por adentrar-se um pouco no campo da Estatiacutestica e estudar diversas metodo-logias que poderiam ser uacuteteis para fornecer um caacutelculo de previsatildeo de espera meacutedia porperiacuteodo aplicaccedilatildeo da teoria das filas e utilizaccedilatildeo de redes neurais

Atraveacutes de uma parceria com a empresa GetIn obteve-se acesso a uma grande quantidadede dados e foi possiacutevel utilizaacute-los em anaacutelises feitas nas metodologias escolhidas conseguindoassim resultados relevantes Por meio destes foi feita a escolha de um dos meacutetodos para ocaacutelculo da previsatildeo de filas a meacutedia por periacuteodo

Aleacutem desses estudos ao longo do ano o grupo aprendeu a desenvolver para a plata-forma Android sobre a qual nenhum dos integrantes tinha conhecimento preacutevio Tambeacutemfoi possiacutevel aprender e utilizar a metodologia aacutegil com Scrum para guiar o processo de de-senvolvimento

Ao fim do ciclo de desenvolvimento conseguiu-se entregar um aplicativo em funciona-mento que fornece a previsatildeo de espera no instante da consulta de estabelecimentos cadas-trados no banco de dados armazenado na nuvem

Na versatildeo atual do aplicativo natildeo foi implementado um sistema para o cadastro de novosestabelecimentos Isso soacute eacute possiacutevel atraveacutes da inserccedilatildeo direta no banco de dados atraveacutes dainterface fornecida pelo console do Firebase Atualmente estatildeo cadastrados 5 restaurantesos quais foram visitados durante o desenvolvimento do projeto Para que o cadastro deestabelecimentos escale seria necessaacuterio a implementaccedilatildeo de uma funcionalidade que permitaao usuaacuterio adicionar novos estabelecimentos a partir de locais disponiacuteveis na API de locaisda Google

43

45

46 APEcircNDICE A

Apecircndice A

Dados coletados

Figura A1 Dados de tempo de espera para grupos de tamanhos variados para cada horaacuterio e emcada dia da semana obtidos em entrevista em restaurantes Outback Steakhouse Shopping Uniatildeo nomecircs de outubro

Referecircncias Bibliograacuteficas

[1] Backpropagation httpmbpsourceforgenet Accesso em Janeiro 2017 14

[2] Bitbucket httpsbitbucketorgproduct Accesso em Dezembro 2016 19

[3] Crowdsourcing httpswwwmerriam-webstercomdictionarycrowdsourcing Ac-cesso em Novembro 2016 21

[4] Designing a survey httpwwwsciencebuddiesorgscience-fair-projectsproject_ideasSoc_surveyshtml Accesso em Outubro 2016 4 23

[5] Facebook httpswwwfacebookcom Accesso em Novembro 2016 24

[6] Firebase httpsfirebasegooglecom Accesso em Agosto 2016 20

[7] Getin app httpswwwgetinappcombrhomesao-paulo Accesso em Novembro2016 9

[8] Git 11 primeiros passos - sobre controle de versatildeo httpsgit-scmcombookpt-brv1Primeiros-passos-Sobre-Controle-de-Vers Accesso em Novembro 2016 19

[9] Google forms httpsdocsgooglecomforms Accesso em Novembro 2016 23

[10] Guia definitivo do project model canvas Project Builder 3

[11] Jsonorg introducing json httpwwwjsonorg Accesso em Novembro 2016 17

[12] Manifesto para desenvolvimento Aacutegil de software httpagilemanifestoorgisoptbrmanifestohtml Accesso em Novembro 2016 5

[13] Nosql httpsenwikipediaorgwikiNoSQL Accesso em Novembro 2016 20

[14] Outback steakhouse httpswwwoutbackcombrhome Accesso em Novembro 20169

[15] Restful api development with lumen microframework httpsbelitsoftcomlaravel-development-servicesapi-development Accesso em Novembro 2016 17

[16] Scrum httpswwwatlassiancomagilescrum Accesso em Novembro 2016 5

[17] Smartphone os market share 2016 q2 httpwwwidccomprodservsmartphone-os-market-sharejsp Accesso em Novembro 2016 15

[18] Smartphone os sales market share kantar worldpanel comtech httpwwwkantarworldpanelcomsmartphone-os-market-share Accesso em Novembro 2016 15

[19] Sourcetree httpswwwsourcetreeappcom Accesso em Dezembro 2016 19

47

48 REFEREcircNCIAS BIBLIOGRAacuteFICAS

[20] Sql httpsptkhanacademyorgcomputingcomputer-programmingsql Accesso emDezembro 2016 20

[21] Trello httpstrellocom Accesso em Novembro 2016 6

[22] Usability test httpsenwikipediaorgwikiUsability_testing Accesso em Novembro2016 36

[23] Versionone 2012 agile dev survey httpswwwversiononecompdf7th-Annual-State-of-Agile-Development-Surveypdf Accesso em Novembro 2016 5

[24] Waze httpswwwwazecom Accesso em Novembro 2016 1

[25] What is an open source httpsopensourcecomresourceswhat-open-source Accessoem Novembro 2016 15

[26] Xml tutorial httpwwww3schoolscomxml Accesso em Novembro 2016 17

[27] Paulo F Cabral dos Anjos Jr Aron Ifanger Maciel Christopher Silva de Paacutedua Com-posiccedilatildeo de carteiras de accedilotildees utilizando modelo de redes neurais artificiais e modelo derisco e retorno de Markowitz 2012 14

[28] Google Distance matrix api documentation httpsdevelopersgooglecommapsdocumentationdistance-matrix Accesso em Novembro 2016 17

[29] Alan Klement Designing features using job stories httpsblogintercomcomusing-job-stories-design-features-ui-ux Accesso em Novembro 2016 6

[30] Azmat Nafees Queuing theory and its application analysis of the sales checkout opera-tion in ica supermarket httpwwwstatisticsduseessaysD07ENafeespdf Accessoem Novembro 2016 12

[31] Eric Ries A Startup Enxuta Lua de papel primeira ediccedilatildeo edition 2012 3

  • Introduccedilatildeo
    • Motivaccedilatildeo
    • Trabalho Proposto
    • Estrutura da monografia
      • Estudos Preliminares
        • Desenvolvimento de Startups
          • Desenvolvimento de Questionaacuterios
            • Metodologia Aacutegil
            • Jobs to be done
            • Caacutelculo da previsatildeo do tempo de espera na fila
              • Descriccedilatildeo do problema
              • Meacutetodos de caacutelculo da espera
                  • Tecnologias utilizadas
                    • O sistema Android
                      • Organizaccedilatildeo de uma aplicaccedilatildeo Android
                        • JSON
                        • Google APIs
                        • Localizaccedilatildeo do Usuaacuterio
                        • Controle de Versatildeo
                        • Banco de dados
                          • Firebase
                            • Crowdsourcing
                              • Desenvolvimento do Projeto
                                • Pesquisa de Mercado
                                  • Pesquisa com o usuaacuterio
                                    • Projeto do Aplicativo
                                    • Aplicaccedilatildeo dos meacutetodos de caacutelculo de espera
                                      • Aplicando a meacutedia por periacuteodo
                                      • Aplicando teoria das filas
                                      • Aplicando redes neurais
                                      • Conclusatildeo sobre os meacutetodos estudados
                                        • Definiccedilatildeo da Interface do aplicativo
                                        • Explicaccedilatildeo das funcionalidades
                                        • Implementaccedilatildeo do banco de dados
                                          • Conclusatildeo
                                          • Dados coletados
                                          • Referecircncias Bibliograacuteficas

26 DESENVOLVIMENTO DO PROJETO 41

grupo possuem o sistema Android enquanto 234 possuem iOS e 38 Windows phoneEssa pergunta foi incluiacuteda para um melhor direcionamento do desenvolvimento do aplicativo

Uma questatildeo levantada ao aplicar esse questionaacuterio foi a dificuldade que algumas pessoasencontraram para identificar a versatildeo do proacuteprio aparelho Poreacutem para manter a consistecircnciadas respostas decidiu-se natildeo mudar nada nesta questatildeo para remediar isso

Questatildeo 3

Figura 43 Graacutefico em barras da distribuiccedilatildeo de frequecircncias mensais de cada local analisado

41 PESQUISA DE MERCADO 27

Questatildeo 4

Figura 44 Graacutefico em pizza da distribuiccedilatildeo de interesse do usuaacuterio no tempo de espera de cadalocal

A princiacutepio viu-se muitas possiacuteveis aplicaccedilotildees para a previsatildeo de tempo de espera Paraentender qual seria a prioridade do puacuteblico as questotildees acima foram incluiacutedas A primeiraverificou a frequecircncia de visitas em alguns locais e a segunda serviu para analisar qualestabelecimento despertava mais interesse nos entrevistados quanto ao quesito fila Nos doiscasos restaurantes se destacaram com o maior interesse

Questatildeo 5

Figura 45 Graacutefico em barras da distribuiccedilatildeo de interesse do usuaacuterio por cada item avaliado

Para acompanhar o dado de espera e fornecer mais informaccedilotildees relevantes ao usuaacuteriosem potencial perguntou-se quais outras informaccedilotildees eles acham interessante saber sobre umdeterminado estabelecimento Com isso descobriu-se que a faixa de preccedilo o trajeto ateacute olocal e o cardaacutepio seriam dados importantes de se obter juntamente com o tempo de espera

28 DESENVOLVIMENTO DO PROJETO 41

Questatildeo 6O que vocecirc costuma fazer para evitar filasNeste ponto testou-se se a soluccedilatildeo proposta atraveacutes do aplicativo resolveria o problema dousuaacuterio de uma forma melhor do que a soluccedilatildeo atualmente utilizada Para isso foi perguntadoo que as pessoas fazem para evitar filas e as principais respostas foram

∙ Evitar horaacuterios de pico

∙ Chegar cedo

∙ Ir em outro lugar caso uma fila seja encontrada

∙ Tentar realizar reservas antecipadamente

∙ Se distrair com livroscelular

Notou-se que as soluccedilotildees utilizadas atualmente natildeo suprem as necessidades dos entre-vistados pois mesmo em horaacuterios natildeo convencionais pode-se encontrar filas ou quandodecide-se esperar na fila muito tempo eacute perdido Concluiu-se que a soluccedilatildeo proposta a par-tir do aplicativo resolve de forma mais abrangente o problema pois ajuda o usuaacuterio a evitarhoraacuterios de pico inesperados

Questatildeo 7

Figura 46 Graacutefico em pizza da distribuiccedilatildeo do meio de transporte utilizado pelos usuaacuterios

Essa questatildeo foi formulada com o objetivo de verificar quais meios de transporte seriamincluiacutedos com previsatildeo de tempo de trajeto no aplicativo Foi verificado que a maioria dosentrevistados utilizam transporte puacuteblico seguido por carro

41 PESQUISA DE MERCADO 29

Questatildeo 8

Figura 47 Graacutefico em pizza da distribuiccedilatildeo do interesse do usuaacuterio pela informaccedilatildeo fornecida

Questatildeo 9

Figura 48 Graacutefico em pizza da distribuiccedilatildeo de quantidade de quilocircmetros que o usuaacuterio sedeslocaria para ir a um local com menos fila

Com essas questotildees foi verificado que algo importante para o usuaacuterio eacute saber de outrosestabelecimentos que possam oferecer tempos de espera menores nas redondezas de onde ousuaacuterio se encontra que eacute uma das funcionalidades que desejaacutevamos utilizar no sistema

30 DESENVOLVIMENTO DO PROJETO 41

Questatildeo 10

Figura 49 Graacutefico em barras da distribuiccedilatildeo de sentimento do usuaacuterio em relaccedilatildeo a notificaccedilatildeode aplicativos

Questatildeo 11

Figura 410 Graacutefico em pizza da distribuiccedilatildeo de opiniatildeo do usuaacuterio sobre desabilitar notificaccedilotildeesem celular

42 PESQUISA DE MERCADO 31

Questatildeo 12

Figura 411 Graacutefico em pizza da distribuiccedilatildeo de opiniatildeo do usuaacuterio sobre habilitar GPS emcelular

A ideia inicial era poder usar o GPS para verificar a localizaccedilatildeo do usuaacuterio e enviarnotificaccedilotildees quando este estivesse parado nas proximidades de algum dos estabelecimentoscadastrados Para que essa funcionalidade possa existir eacute necessaacuterio que o aplicativo tenhaacesso agrave localizaccedilatildeo precisa da pessoa atraveacutes do GPS ou internet ateacute mesmo quando natildeoestiver aberto Aleacutem disso tambeacutem eacute necessaacuterio que as notificaccedilotildees estejam habilitadas parafinalizar esta interaccedilatildeo Entatildeo as perguntas 10 11 e 12 foram incluiacutedas no questionaacuterio Ob-servando as respostas foi possiacutevel verificar que 295 das pessoas que responderam deixamambas as funcionalidades habilitadas (GPS e notificaccedilotildees) Com isso pudemos prosseguircom essa ideia e tambeacutem pensar em possiacuteveis alternativas de interaccedilatildeo e engajamento como usuaacuterio

Por conta dessa pesquisa ter sido compartilhada atraveacutes das contas das redes sociais ecomunicadores dos componentes deste grupo sabe-se que este pode apresentar um resultadoviesado mas que mesmo assim natildeo deve ser desconsiderado e que muito ajudou a sanar asduacutevidas iniciaisComo resultado traccedilamos o perfil do entrevistado

∙ Faixa etaacuteria predominante entre 18 e 30 anos

∙ Possui sistema operacional Android (versotildees 4 5 e 6)

∙ Vai a restaurantes com certa frequecircncia mensal resultando em interesses sobre infor-maccedilotildees relacionadas a esse estabelecimento

∙ Costuma chegar cedo ou evitar os horaacuterios de pico para evitar filas nos locais

∙ Carro e transporte coletivo satildeo os principais meios de transporte

∙ Se deslocaria para um estabelecimento semelhante que possui menos fila contanto queeste fique num raio de 2km de distacircncia

32 DESENVOLVIMENTO DO PROJETO 43

42 Projeto do AplicativoO grupo comeccedilou o projeto com o preenchimento do diagrama Canvas(figura 412) apre-

sentado na Seccedilatildeo 21 Desse modo foi adquirida uma ideia mais consistente e uma base paracomeccedilar a implementaccedilatildeo

Figura 412 Diagrama Canvas preenchido pelo grupo

Com o modelo de negoacutecios definido e com base no resultado da pesquisa com o usuaacuterioapresentada na seccedilatildeo seguinte foram aplicadas pequenas mudanccedilas no projeto para melhoradequar-se agraves necessidades e ao perfil do puacuteblico alvo

Para o desenvolvimento foi utilizado um meacutetodo aacutegil baseado no scrum com sprints de3 a 4 semanas devido agrave disponibilidade dos membros do grupo Os encontros natildeo eram diaacute-rios como recomendado para o meacutetodo scrum tambeacutem em razatildeo da disponibilidade Haviamstand ups (discussotildees raacutepidas no comeccedilo de cada encontro) e retrospectivas ao final de cadasprint A cada sprint eram selecionadas histoacuterias e tarefas para serem executadas e caso natildeofossem concluiacutedas ao final da iteraccedilatildeo eram inseridas ao backlog e feitas no sprint seguinte

43 Aplicaccedilatildeo dos meacutetodos de caacutelculo de espera

431 Aplicando a meacutedia por periacuteodo

Aplicando-se no trecho abaixo a teacutecnica desenvolvida na Seccedilatildeo 242 para uma queryrealizada no dia 19082016 no intervalo de 2040 - 2055 analisa-se a semana anterior quepossua tais intervalos Assim o saacutebado dia 06082016 seraacute selecionado

43 APLICACcedilAtildeO DOS MEacuteTODOS DE CAacuteLCULO DE ESPERA 33

Entrada Qtd Pessoas Notificado Espera

6816 2043 2 862016 2053 1606

6816 2044 2 862016 2055 674

6816 2048 2 862016 2056 528

6816 2048 2 862016 2057 520

6816 2051 2 862016 2107 1118

6816 2051 3 862016 2110 1305

6816 2052 2 862016 2110 1273

6816 2052 2 862016 2111 1179

6816 2053 2 862016 2112 1217

6816 2053 2 NULL 59

6816 2054 3 862016 2119 1541

6816 2055 2 862016 2117 1444

6816 2055 2 862016 2120 1570

6816 2055 2 862016 2122 1613

Tabela 41 Trecho do dia 06082016 entre os horaacuterios das 2043 agraves 2055 um intervalo de 12minutos retirado dos dados da empresa Get In

Com esses dados obteve-se a meacutedia de espera de 1080 segundos (18 minutos) a qualseria sugerida para o usuaacuterio com a busca e desvio padratildeo de 465144719 segundos (775 mi-nutos) Dentro desse intervalo tem-se como maacuteximo tempo de espera 1613 segundos (2688minutos) e como miacutenimo 59 segundos (1 minuto) Analisando-se os dados do dia 19082016no mesmo periacuteodo temos

34 DESENVOLVIMENTO DO PROJETO 43

Entrada Pessoas Notificado Espera Erro previsatildeo Erro p 2 pessoas

19816 2043 2 8192016 2051 544 -563 522

19816 2043 2 8192016 2052 605 -502 461

19816 2044 2 8192016 2056 723 -384 343

19816 2046 4 8192016 2119 1988 881 X

19816 2048 2 8192016 2102 919 188 147

19816 2051 2 8192016 2103 821 286 245

19816 2051 3 8192016 2108 1773 666 X

19816 2053 2 8192016 2110 1083 24 -17

19816 2053 2 8192016 2111 1105 2 -39

19816 2053 2 8192016 2112 1169 62 -103

19816 2055 2 8192016 2114 1447 340 -381

Tabela 42 Trecho do dia 19082016 entre os horaacuterios das 2043 agraves 2055um intervalo de 12minutos retirado dos dados da empresa Get In

Ou seja se um grupo chegasse dentro desse periacuteodo e a previsatildeo dada fosse a meacutediaobtida anteriormente o erro calculado pela diferenccedila entre o tempo sugerido e o real tempode espera estaria no intervalo de 15 minutos para menos ou 8 minutos para mais Sendoesse um valor aceitaacutevel

Um proacuteximo passo eacute a restriccedilatildeo dos registros a grupos com 2 integrantes Com tal restri-ccedilatildeo a previsatildeo de espera eacute de 1066 segundos (1776 minutos) Aplicando essa nova meacutedia aosregistros com 2 integrantes do dia 19082016 obteacutem-se um erro (Coluna 6 - erro previsatildeopara 2 pessoas) menor do que o anterior O intervalo do erro calculado neste caso seria de 522segundos (87 minutos) para mais e 381 segundos (635 minutos) para menos Este resultadoeacute ainda mais favoraacutevel mostrando que a inclusatildeo de mais filtros para o caacutelculo da previsatildeomelhorou o tempo previsto

432 Aplicando teoria das filas

A teoria das filas (Seccedilatildeo 242) eacute uma ferramenta muito completa que calcula muitos dadosuacuteteis para a previsatildeo de espera Contudo por conta da necessidade de informaccedilotildees sobreo tempo de atendimento a qual natildeo estaacute contida no banco utilizado esta teoria natildeo podeser aplicada neste caso Poreacutem esse dado pode ter um valor assumido para que a utilizaccedilatildeodessa teoria fosse possiacutevel entretanto a sua precisatildeo ficaria comprometida e imprevisiacutevel

433 Aplicando redes neurais

Para aplicar o que foi estudado na Seccedilatildeo 242 foi executado o software com o mecircs deAgosto como teste o mecircs de Setembro como treino e o limite do erro quadraacutetico como 001 eobteve-se a tabela presente no apecircndice B Na tabela podemos ver o tempo de fila esperadoou seja o tempo contido na tabela do mecircs de Setembro o tempo que o algoritmo deu comoresposta baseado no mecircs de Agosto e o erro entre eles respectivamente

44 DEFINICcedilAtildeO DA INTERFACE DO APLICATIVO 35

Figura 413 Software Multiple Back-Propagation com a configuraccedilatildeo escolhida para os dadosdisponiacuteveis

Mesmo o erro se mantendo em 0018 os dados obtidos possuem um erro padratildeo de 15minutos Se mais dados forem adicionados o criteacuterio de parada pode ser atingido e assimuma previsatildeo melhor pode ser alcanccedilada

434 Conclusatildeo sobre os meacutetodos estudados

Dentre todas as possibilidades estudadas visualizamos na meacutedia por periacuteodo a melhoropccedilatildeo assumindo os dados disponiacuteveis para teste Se mais paracircmetros fossem fornecidoscomo o tempo de atendimento a teoria das filas seria uma boa opccedilatildeo para fornecer a pre-visatildeo de espera E se mais dados estivessem disponiacuteveis as redes neurais conseguiriam umaaproximaccedilatildeo melhor e assim seria uma boa opccedilatildeo tambeacutem

44 Definiccedilatildeo da Interface do aplicativoComo um primeiro protoacutetipo foi desenvolvida uma interface simples que tinha como tela

de iniacutecio um mapa com um campo para buscas na parte superior

36 DESENVOLVIMENTO DO PROJETO 44

Figura 414 Fluxo de telas do primeiro protoacutetipo

Ao efetuar uma busca por algum estabelecimento uma tela mostrando o tempo de esperaaproximado da fila no local era exibida junto com bototildees que permitiam selecionar o meiode transporte visualizar outras opccedilotildees ou dar iniacutecio a rota ateacute o local desejado Tambeacutemhavia uma notificaccedilatildeo para quando a pessoa estivesse parada proacutexima a um restaurantecadastrado que direcionaria o usuaacuterio a uma tela com um cronocircmetro do tempo de esperana fila

Para testar essa visualizaccedilatildeo escolhemos algumas pessoas e realizamos um teste deusabilidade[22] este teste eacute feito da seguinte forma

44 DEFINICcedilAtildeO DA INTERFACE DO APLICATIVO 37

Uma contextualizaccedilatildeo eacute feita para o voluntaacuterio e entatildeo uma tarefa eacute passada para sercompletada Os integrantes do grupo observam dificuldades enfrentadas pelo entrevistado etomam notas Esse teste eacute repetido algumas vezes e seu resultado eacute coletado para avaliaccedilatildeoe modificaccedilatildeo das funcionalidades

Figura 415 Tela de detalhes de um restaurante(segunda versatildeo)

Notou-se que algumas funcionalidadespareceram confusas e natildeo intuitivas porexemplo natildeo ficou claro se o tempo mos-trado era de trajeto ou de espera na filanem qual era o meio de transporte utili-zado

Logo esse protoacutetipo foi reformuladocom o intuito de melhorar a experi-ecircncia do usuaacuterio com o nosso aplica-tivo

Foram colocados aleacutem do tempo deespera da fila o tempo que o usuaacuteriolevaria para chegar ateacute o local selecio-nado (conforme o tipo de transporte es-colhido) e a quantidade estimada de pes-soas na fila O tempo total (espera so-mado ao tempo de deslocamento) ga-nhou destaque entre as informaccedilotildees doestabelecimento e o botatildeo que direcionao usuaacuterio ao trajeto ficou mais especiacute-fico

Tambeacutem cogitou-se a possibilidade deadicionar login e um perfil de usuaacuteriojunto com uma lista de restaurantes favo-ritos

O fluxo das telas deste novo protoacutetipo ficou como mostra o esquema a seguir

38 DESENVOLVIMENTO DO PROJETO 44

Figura 416 Fluxo de telas do segundo protoacutetipo

44 DEFINICcedilAtildeO DA INTERFACE DO APLICATIVO 39

Figura 417 Tela de detalhes de um restaurante(terceira versatildeo)

Apoacutes outras avaliaccedilotildees mais algumaspequenas alteraccedilotildees foram realizadas nainterface Foi decidido que seria inviaacute-vel estimar o nuacutemero de pessoas nafila entatildeo essa funcionalidade foi remo-vida

Notificaccedilotildees foram adicionadas paraquando o usuaacuterio estiver parado na aacutereado restaurante para que ele possa con-tribuir com informaccedilotildees sobre a fila quepegou aleacutem de um botatildeo de contri-buiccedilatildeo ter sido inserido na tela ini-cial

40 DESENVOLVIMENTO DO PROJETO 45

O fluxo de telas do aplicativo atual ficou da seguinte forma

Figura 418 Fluxo de telas do terceiro protoacutetipo

46 EXPLICACcedilAtildeO DAS FUNCIONALIDADES 41

45 Explicaccedilatildeo das funcionalidadesEsta seccedilatildeo explica as funcionalidades do produto utilizando a figura 418

A tela inicial (3) exibe uma lista de restaurantes incluindo seus respectivos tempos detrajeto e tempo de espera na fila Ao clicar no botatildeo ldquo+rdquo uma caixa de diaacutelogo eacute aberta(4) onde eacute possiacutevel adicionar o tempo que o usuaacuterio esperou na fila Primeiro eacute escolhido orestaurante depois a data e hora que a pessoa chegou na fila e por fim o tempo de esperaem minutos Ao tocar em ldquoEnviar Feedback rdquo os dados satildeo incluiacutedos no banco de dados eatualizados para os outros usuaacuterios Assim eacute apicado o conceito de Crowdsourcing no apli-cativo

Ao tocar em um item da lista de restaurantes seraacute aberta a tela de detalhes de um res-taurante (5) na qual eacute possiacutevel ver com mais clareza os tempos de trajeto e espera o tempototal o endereccedilo do estabelecimento e um pequeno mapa centrado no local Pressionandoo botatildeo ldquoDireccedilotildeesrdquo o usuaacuterio seraacute redirecionado ao aplicativo de mapas de sua preferecircnciano caso do exemplo (8) o Google Maps jaacute traccedilando a rota da localizaccedilatildeo do usuaacuterio para oestabelecimento em questatildeo

Novamente na tela inicial tocando no iacutecone de lupa eacute possiacutevel realizar uma busca digi-tando o nome do estabelecimento na caixa de texto a qual exibe sugestotildees dependendo doque foi digitado Ao clicar em um dos resultados da busca o usuaacuterio eacute novamente direcionadopara a tela de detalhes do restaurante (5)

Tambeacutem eacute possiacutevel tocar no iacutecone de mapa na tela inicial onde seraacute mostrado um mapacentrado na localizaccedilatildeo do usuaacuterio

Ao ficar parado por um tempo em um mesmo local proacuteximo a um estabelecimentocadastrado o usuaacuterio eacute perguntado em uma notificaccedilatildeo quanto tempo ele permaneceu nafila Ao tocar na notificaccedilatildeo a caixa de diaacutelogo para feedback do usuaacuterio seraacute aberta (4) jaacutecom o restaurante preenchido e apoacutes o feedback a janela seraacute fechada e os dados enviadosao banco de dados

46 Implementaccedilatildeo do banco de dadosO banco de dados do aplicativo foi modelado e populado em forma de aacutervore (Fi-

gura 419) de forma a facilitar o acesso aos dados necessaacuterios ao aplicativo No primeironiacutevel estatildeo os ids dos restaurantes Cada id de restaurante guarda a localizaccedilatildeo (latitudelongitude) do restaurante o nome o endereccedilo e um objeto fila O objeto fila guarda todos osdias da semana (domingo a saacutebado) e cada dia da semana possui 24 campos um para cadahora do dia Cada hora possui o tempo meacutedio de espera da fila naquela hora e um peso paraesse tempo O peso eacute um valor que aumenta de acordo com o nuacutemero de feedbacks dadospara que o novo valor do tempo meacutedio seja calculado de forma consistente

Modelamos o banco de dados de uma forma que respeitasse uma hierarquia de dados

42 DESENVOLVIMENTO DO PROJETO 46

Figura 419 Aacutervore que ilustra a organizaccedilatildeo de um restaurante no banco de dados

Com o banco de dados jaacute populado o aplicativo faz consultas e atualizaccedilotildees de dadosConsultas satildeo feitas ao criar a tela de listagem de restaurantes e de detalhes de um restau-rante consultado As atualizaccedilotildees satildeo feitas quando o usuaacuterio manda o feedback de tempo deespera em um estabelecimento em determinado horaacuterio o aplicativo calcula a nova meacutedia eatualiza o campo do respectivo horaacuterio

Capiacutetulo 5

Conclusatildeo

Ao longo dos capiacutetulos deste trabalho pocircde-se acompanhar todo o processo de criaccedilatildeo edesenvolvimento do aplicativo que apoacutes finalizado foi batizado com o nome Queue

Comeccedilando com um problema para o qual o grupo almejava oferecer uma soluccedilatildeoacabou-se por adentrar-se um pouco no campo da Estatiacutestica e estudar diversas metodo-logias que poderiam ser uacuteteis para fornecer um caacutelculo de previsatildeo de espera meacutedia porperiacuteodo aplicaccedilatildeo da teoria das filas e utilizaccedilatildeo de redes neurais

Atraveacutes de uma parceria com a empresa GetIn obteve-se acesso a uma grande quantidadede dados e foi possiacutevel utilizaacute-los em anaacutelises feitas nas metodologias escolhidas conseguindoassim resultados relevantes Por meio destes foi feita a escolha de um dos meacutetodos para ocaacutelculo da previsatildeo de filas a meacutedia por periacuteodo

Aleacutem desses estudos ao longo do ano o grupo aprendeu a desenvolver para a plata-forma Android sobre a qual nenhum dos integrantes tinha conhecimento preacutevio Tambeacutemfoi possiacutevel aprender e utilizar a metodologia aacutegil com Scrum para guiar o processo de de-senvolvimento

Ao fim do ciclo de desenvolvimento conseguiu-se entregar um aplicativo em funciona-mento que fornece a previsatildeo de espera no instante da consulta de estabelecimentos cadas-trados no banco de dados armazenado na nuvem

Na versatildeo atual do aplicativo natildeo foi implementado um sistema para o cadastro de novosestabelecimentos Isso soacute eacute possiacutevel atraveacutes da inserccedilatildeo direta no banco de dados atraveacutes dainterface fornecida pelo console do Firebase Atualmente estatildeo cadastrados 5 restaurantesos quais foram visitados durante o desenvolvimento do projeto Para que o cadastro deestabelecimentos escale seria necessaacuterio a implementaccedilatildeo de uma funcionalidade que permitaao usuaacuterio adicionar novos estabelecimentos a partir de locais disponiacuteveis na API de locaisda Google

43

45

46 APEcircNDICE A

Apecircndice A

Dados coletados

Figura A1 Dados de tempo de espera para grupos de tamanhos variados para cada horaacuterio e emcada dia da semana obtidos em entrevista em restaurantes Outback Steakhouse Shopping Uniatildeo nomecircs de outubro

Referecircncias Bibliograacuteficas

[1] Backpropagation httpmbpsourceforgenet Accesso em Janeiro 2017 14

[2] Bitbucket httpsbitbucketorgproduct Accesso em Dezembro 2016 19

[3] Crowdsourcing httpswwwmerriam-webstercomdictionarycrowdsourcing Ac-cesso em Novembro 2016 21

[4] Designing a survey httpwwwsciencebuddiesorgscience-fair-projectsproject_ideasSoc_surveyshtml Accesso em Outubro 2016 4 23

[5] Facebook httpswwwfacebookcom Accesso em Novembro 2016 24

[6] Firebase httpsfirebasegooglecom Accesso em Agosto 2016 20

[7] Getin app httpswwwgetinappcombrhomesao-paulo Accesso em Novembro2016 9

[8] Git 11 primeiros passos - sobre controle de versatildeo httpsgit-scmcombookpt-brv1Primeiros-passos-Sobre-Controle-de-Vers Accesso em Novembro 2016 19

[9] Google forms httpsdocsgooglecomforms Accesso em Novembro 2016 23

[10] Guia definitivo do project model canvas Project Builder 3

[11] Jsonorg introducing json httpwwwjsonorg Accesso em Novembro 2016 17

[12] Manifesto para desenvolvimento Aacutegil de software httpagilemanifestoorgisoptbrmanifestohtml Accesso em Novembro 2016 5

[13] Nosql httpsenwikipediaorgwikiNoSQL Accesso em Novembro 2016 20

[14] Outback steakhouse httpswwwoutbackcombrhome Accesso em Novembro 20169

[15] Restful api development with lumen microframework httpsbelitsoftcomlaravel-development-servicesapi-development Accesso em Novembro 2016 17

[16] Scrum httpswwwatlassiancomagilescrum Accesso em Novembro 2016 5

[17] Smartphone os market share 2016 q2 httpwwwidccomprodservsmartphone-os-market-sharejsp Accesso em Novembro 2016 15

[18] Smartphone os sales market share kantar worldpanel comtech httpwwwkantarworldpanelcomsmartphone-os-market-share Accesso em Novembro 2016 15

[19] Sourcetree httpswwwsourcetreeappcom Accesso em Dezembro 2016 19

47

48 REFEREcircNCIAS BIBLIOGRAacuteFICAS

[20] Sql httpsptkhanacademyorgcomputingcomputer-programmingsql Accesso emDezembro 2016 20

[21] Trello httpstrellocom Accesso em Novembro 2016 6

[22] Usability test httpsenwikipediaorgwikiUsability_testing Accesso em Novembro2016 36

[23] Versionone 2012 agile dev survey httpswwwversiononecompdf7th-Annual-State-of-Agile-Development-Surveypdf Accesso em Novembro 2016 5

[24] Waze httpswwwwazecom Accesso em Novembro 2016 1

[25] What is an open source httpsopensourcecomresourceswhat-open-source Accessoem Novembro 2016 15

[26] Xml tutorial httpwwww3schoolscomxml Accesso em Novembro 2016 17

[27] Paulo F Cabral dos Anjos Jr Aron Ifanger Maciel Christopher Silva de Paacutedua Com-posiccedilatildeo de carteiras de accedilotildees utilizando modelo de redes neurais artificiais e modelo derisco e retorno de Markowitz 2012 14

[28] Google Distance matrix api documentation httpsdevelopersgooglecommapsdocumentationdistance-matrix Accesso em Novembro 2016 17

[29] Alan Klement Designing features using job stories httpsblogintercomcomusing-job-stories-design-features-ui-ux Accesso em Novembro 2016 6

[30] Azmat Nafees Queuing theory and its application analysis of the sales checkout opera-tion in ica supermarket httpwwwstatisticsduseessaysD07ENafeespdf Accessoem Novembro 2016 12

[31] Eric Ries A Startup Enxuta Lua de papel primeira ediccedilatildeo edition 2012 3

  • Introduccedilatildeo
    • Motivaccedilatildeo
    • Trabalho Proposto
    • Estrutura da monografia
      • Estudos Preliminares
        • Desenvolvimento de Startups
          • Desenvolvimento de Questionaacuterios
            • Metodologia Aacutegil
            • Jobs to be done
            • Caacutelculo da previsatildeo do tempo de espera na fila
              • Descriccedilatildeo do problema
              • Meacutetodos de caacutelculo da espera
                  • Tecnologias utilizadas
                    • O sistema Android
                      • Organizaccedilatildeo de uma aplicaccedilatildeo Android
                        • JSON
                        • Google APIs
                        • Localizaccedilatildeo do Usuaacuterio
                        • Controle de Versatildeo
                        • Banco de dados
                          • Firebase
                            • Crowdsourcing
                              • Desenvolvimento do Projeto
                                • Pesquisa de Mercado
                                  • Pesquisa com o usuaacuterio
                                    • Projeto do Aplicativo
                                    • Aplicaccedilatildeo dos meacutetodos de caacutelculo de espera
                                      • Aplicando a meacutedia por periacuteodo
                                      • Aplicando teoria das filas
                                      • Aplicando redes neurais
                                      • Conclusatildeo sobre os meacutetodos estudados
                                        • Definiccedilatildeo da Interface do aplicativo
                                        • Explicaccedilatildeo das funcionalidades
                                        • Implementaccedilatildeo do banco de dados
                                          • Conclusatildeo
                                          • Dados coletados
                                          • Referecircncias Bibliograacuteficas

41 PESQUISA DE MERCADO 27

Questatildeo 4

Figura 44 Graacutefico em pizza da distribuiccedilatildeo de interesse do usuaacuterio no tempo de espera de cadalocal

A princiacutepio viu-se muitas possiacuteveis aplicaccedilotildees para a previsatildeo de tempo de espera Paraentender qual seria a prioridade do puacuteblico as questotildees acima foram incluiacutedas A primeiraverificou a frequecircncia de visitas em alguns locais e a segunda serviu para analisar qualestabelecimento despertava mais interesse nos entrevistados quanto ao quesito fila Nos doiscasos restaurantes se destacaram com o maior interesse

Questatildeo 5

Figura 45 Graacutefico em barras da distribuiccedilatildeo de interesse do usuaacuterio por cada item avaliado

Para acompanhar o dado de espera e fornecer mais informaccedilotildees relevantes ao usuaacuteriosem potencial perguntou-se quais outras informaccedilotildees eles acham interessante saber sobre umdeterminado estabelecimento Com isso descobriu-se que a faixa de preccedilo o trajeto ateacute olocal e o cardaacutepio seriam dados importantes de se obter juntamente com o tempo de espera

28 DESENVOLVIMENTO DO PROJETO 41

Questatildeo 6O que vocecirc costuma fazer para evitar filasNeste ponto testou-se se a soluccedilatildeo proposta atraveacutes do aplicativo resolveria o problema dousuaacuterio de uma forma melhor do que a soluccedilatildeo atualmente utilizada Para isso foi perguntadoo que as pessoas fazem para evitar filas e as principais respostas foram

∙ Evitar horaacuterios de pico

∙ Chegar cedo

∙ Ir em outro lugar caso uma fila seja encontrada

∙ Tentar realizar reservas antecipadamente

∙ Se distrair com livroscelular

Notou-se que as soluccedilotildees utilizadas atualmente natildeo suprem as necessidades dos entre-vistados pois mesmo em horaacuterios natildeo convencionais pode-se encontrar filas ou quandodecide-se esperar na fila muito tempo eacute perdido Concluiu-se que a soluccedilatildeo proposta a par-tir do aplicativo resolve de forma mais abrangente o problema pois ajuda o usuaacuterio a evitarhoraacuterios de pico inesperados

Questatildeo 7

Figura 46 Graacutefico em pizza da distribuiccedilatildeo do meio de transporte utilizado pelos usuaacuterios

Essa questatildeo foi formulada com o objetivo de verificar quais meios de transporte seriamincluiacutedos com previsatildeo de tempo de trajeto no aplicativo Foi verificado que a maioria dosentrevistados utilizam transporte puacuteblico seguido por carro

41 PESQUISA DE MERCADO 29

Questatildeo 8

Figura 47 Graacutefico em pizza da distribuiccedilatildeo do interesse do usuaacuterio pela informaccedilatildeo fornecida

Questatildeo 9

Figura 48 Graacutefico em pizza da distribuiccedilatildeo de quantidade de quilocircmetros que o usuaacuterio sedeslocaria para ir a um local com menos fila

Com essas questotildees foi verificado que algo importante para o usuaacuterio eacute saber de outrosestabelecimentos que possam oferecer tempos de espera menores nas redondezas de onde ousuaacuterio se encontra que eacute uma das funcionalidades que desejaacutevamos utilizar no sistema

30 DESENVOLVIMENTO DO PROJETO 41

Questatildeo 10

Figura 49 Graacutefico em barras da distribuiccedilatildeo de sentimento do usuaacuterio em relaccedilatildeo a notificaccedilatildeode aplicativos

Questatildeo 11

Figura 410 Graacutefico em pizza da distribuiccedilatildeo de opiniatildeo do usuaacuterio sobre desabilitar notificaccedilotildeesem celular

42 PESQUISA DE MERCADO 31

Questatildeo 12

Figura 411 Graacutefico em pizza da distribuiccedilatildeo de opiniatildeo do usuaacuterio sobre habilitar GPS emcelular

A ideia inicial era poder usar o GPS para verificar a localizaccedilatildeo do usuaacuterio e enviarnotificaccedilotildees quando este estivesse parado nas proximidades de algum dos estabelecimentoscadastrados Para que essa funcionalidade possa existir eacute necessaacuterio que o aplicativo tenhaacesso agrave localizaccedilatildeo precisa da pessoa atraveacutes do GPS ou internet ateacute mesmo quando natildeoestiver aberto Aleacutem disso tambeacutem eacute necessaacuterio que as notificaccedilotildees estejam habilitadas parafinalizar esta interaccedilatildeo Entatildeo as perguntas 10 11 e 12 foram incluiacutedas no questionaacuterio Ob-servando as respostas foi possiacutevel verificar que 295 das pessoas que responderam deixamambas as funcionalidades habilitadas (GPS e notificaccedilotildees) Com isso pudemos prosseguircom essa ideia e tambeacutem pensar em possiacuteveis alternativas de interaccedilatildeo e engajamento como usuaacuterio

Por conta dessa pesquisa ter sido compartilhada atraveacutes das contas das redes sociais ecomunicadores dos componentes deste grupo sabe-se que este pode apresentar um resultadoviesado mas que mesmo assim natildeo deve ser desconsiderado e que muito ajudou a sanar asduacutevidas iniciaisComo resultado traccedilamos o perfil do entrevistado

∙ Faixa etaacuteria predominante entre 18 e 30 anos

∙ Possui sistema operacional Android (versotildees 4 5 e 6)

∙ Vai a restaurantes com certa frequecircncia mensal resultando em interesses sobre infor-maccedilotildees relacionadas a esse estabelecimento

∙ Costuma chegar cedo ou evitar os horaacuterios de pico para evitar filas nos locais

∙ Carro e transporte coletivo satildeo os principais meios de transporte

∙ Se deslocaria para um estabelecimento semelhante que possui menos fila contanto queeste fique num raio de 2km de distacircncia

32 DESENVOLVIMENTO DO PROJETO 43

42 Projeto do AplicativoO grupo comeccedilou o projeto com o preenchimento do diagrama Canvas(figura 412) apre-

sentado na Seccedilatildeo 21 Desse modo foi adquirida uma ideia mais consistente e uma base paracomeccedilar a implementaccedilatildeo

Figura 412 Diagrama Canvas preenchido pelo grupo

Com o modelo de negoacutecios definido e com base no resultado da pesquisa com o usuaacuterioapresentada na seccedilatildeo seguinte foram aplicadas pequenas mudanccedilas no projeto para melhoradequar-se agraves necessidades e ao perfil do puacuteblico alvo

Para o desenvolvimento foi utilizado um meacutetodo aacutegil baseado no scrum com sprints de3 a 4 semanas devido agrave disponibilidade dos membros do grupo Os encontros natildeo eram diaacute-rios como recomendado para o meacutetodo scrum tambeacutem em razatildeo da disponibilidade Haviamstand ups (discussotildees raacutepidas no comeccedilo de cada encontro) e retrospectivas ao final de cadasprint A cada sprint eram selecionadas histoacuterias e tarefas para serem executadas e caso natildeofossem concluiacutedas ao final da iteraccedilatildeo eram inseridas ao backlog e feitas no sprint seguinte

43 Aplicaccedilatildeo dos meacutetodos de caacutelculo de espera

431 Aplicando a meacutedia por periacuteodo

Aplicando-se no trecho abaixo a teacutecnica desenvolvida na Seccedilatildeo 242 para uma queryrealizada no dia 19082016 no intervalo de 2040 - 2055 analisa-se a semana anterior quepossua tais intervalos Assim o saacutebado dia 06082016 seraacute selecionado

43 APLICACcedilAtildeO DOS MEacuteTODOS DE CAacuteLCULO DE ESPERA 33

Entrada Qtd Pessoas Notificado Espera

6816 2043 2 862016 2053 1606

6816 2044 2 862016 2055 674

6816 2048 2 862016 2056 528

6816 2048 2 862016 2057 520

6816 2051 2 862016 2107 1118

6816 2051 3 862016 2110 1305

6816 2052 2 862016 2110 1273

6816 2052 2 862016 2111 1179

6816 2053 2 862016 2112 1217

6816 2053 2 NULL 59

6816 2054 3 862016 2119 1541

6816 2055 2 862016 2117 1444

6816 2055 2 862016 2120 1570

6816 2055 2 862016 2122 1613

Tabela 41 Trecho do dia 06082016 entre os horaacuterios das 2043 agraves 2055 um intervalo de 12minutos retirado dos dados da empresa Get In

Com esses dados obteve-se a meacutedia de espera de 1080 segundos (18 minutos) a qualseria sugerida para o usuaacuterio com a busca e desvio padratildeo de 465144719 segundos (775 mi-nutos) Dentro desse intervalo tem-se como maacuteximo tempo de espera 1613 segundos (2688minutos) e como miacutenimo 59 segundos (1 minuto) Analisando-se os dados do dia 19082016no mesmo periacuteodo temos

34 DESENVOLVIMENTO DO PROJETO 43

Entrada Pessoas Notificado Espera Erro previsatildeo Erro p 2 pessoas

19816 2043 2 8192016 2051 544 -563 522

19816 2043 2 8192016 2052 605 -502 461

19816 2044 2 8192016 2056 723 -384 343

19816 2046 4 8192016 2119 1988 881 X

19816 2048 2 8192016 2102 919 188 147

19816 2051 2 8192016 2103 821 286 245

19816 2051 3 8192016 2108 1773 666 X

19816 2053 2 8192016 2110 1083 24 -17

19816 2053 2 8192016 2111 1105 2 -39

19816 2053 2 8192016 2112 1169 62 -103

19816 2055 2 8192016 2114 1447 340 -381

Tabela 42 Trecho do dia 19082016 entre os horaacuterios das 2043 agraves 2055um intervalo de 12minutos retirado dos dados da empresa Get In

Ou seja se um grupo chegasse dentro desse periacuteodo e a previsatildeo dada fosse a meacutediaobtida anteriormente o erro calculado pela diferenccedila entre o tempo sugerido e o real tempode espera estaria no intervalo de 15 minutos para menos ou 8 minutos para mais Sendoesse um valor aceitaacutevel

Um proacuteximo passo eacute a restriccedilatildeo dos registros a grupos com 2 integrantes Com tal restri-ccedilatildeo a previsatildeo de espera eacute de 1066 segundos (1776 minutos) Aplicando essa nova meacutedia aosregistros com 2 integrantes do dia 19082016 obteacutem-se um erro (Coluna 6 - erro previsatildeopara 2 pessoas) menor do que o anterior O intervalo do erro calculado neste caso seria de 522segundos (87 minutos) para mais e 381 segundos (635 minutos) para menos Este resultadoeacute ainda mais favoraacutevel mostrando que a inclusatildeo de mais filtros para o caacutelculo da previsatildeomelhorou o tempo previsto

432 Aplicando teoria das filas

A teoria das filas (Seccedilatildeo 242) eacute uma ferramenta muito completa que calcula muitos dadosuacuteteis para a previsatildeo de espera Contudo por conta da necessidade de informaccedilotildees sobreo tempo de atendimento a qual natildeo estaacute contida no banco utilizado esta teoria natildeo podeser aplicada neste caso Poreacutem esse dado pode ter um valor assumido para que a utilizaccedilatildeodessa teoria fosse possiacutevel entretanto a sua precisatildeo ficaria comprometida e imprevisiacutevel

433 Aplicando redes neurais

Para aplicar o que foi estudado na Seccedilatildeo 242 foi executado o software com o mecircs deAgosto como teste o mecircs de Setembro como treino e o limite do erro quadraacutetico como 001 eobteve-se a tabela presente no apecircndice B Na tabela podemos ver o tempo de fila esperadoou seja o tempo contido na tabela do mecircs de Setembro o tempo que o algoritmo deu comoresposta baseado no mecircs de Agosto e o erro entre eles respectivamente

44 DEFINICcedilAtildeO DA INTERFACE DO APLICATIVO 35

Figura 413 Software Multiple Back-Propagation com a configuraccedilatildeo escolhida para os dadosdisponiacuteveis

Mesmo o erro se mantendo em 0018 os dados obtidos possuem um erro padratildeo de 15minutos Se mais dados forem adicionados o criteacuterio de parada pode ser atingido e assimuma previsatildeo melhor pode ser alcanccedilada

434 Conclusatildeo sobre os meacutetodos estudados

Dentre todas as possibilidades estudadas visualizamos na meacutedia por periacuteodo a melhoropccedilatildeo assumindo os dados disponiacuteveis para teste Se mais paracircmetros fossem fornecidoscomo o tempo de atendimento a teoria das filas seria uma boa opccedilatildeo para fornecer a pre-visatildeo de espera E se mais dados estivessem disponiacuteveis as redes neurais conseguiriam umaaproximaccedilatildeo melhor e assim seria uma boa opccedilatildeo tambeacutem

44 Definiccedilatildeo da Interface do aplicativoComo um primeiro protoacutetipo foi desenvolvida uma interface simples que tinha como tela

de iniacutecio um mapa com um campo para buscas na parte superior

36 DESENVOLVIMENTO DO PROJETO 44

Figura 414 Fluxo de telas do primeiro protoacutetipo

Ao efetuar uma busca por algum estabelecimento uma tela mostrando o tempo de esperaaproximado da fila no local era exibida junto com bototildees que permitiam selecionar o meiode transporte visualizar outras opccedilotildees ou dar iniacutecio a rota ateacute o local desejado Tambeacutemhavia uma notificaccedilatildeo para quando a pessoa estivesse parada proacutexima a um restaurantecadastrado que direcionaria o usuaacuterio a uma tela com um cronocircmetro do tempo de esperana fila

Para testar essa visualizaccedilatildeo escolhemos algumas pessoas e realizamos um teste deusabilidade[22] este teste eacute feito da seguinte forma

44 DEFINICcedilAtildeO DA INTERFACE DO APLICATIVO 37

Uma contextualizaccedilatildeo eacute feita para o voluntaacuterio e entatildeo uma tarefa eacute passada para sercompletada Os integrantes do grupo observam dificuldades enfrentadas pelo entrevistado etomam notas Esse teste eacute repetido algumas vezes e seu resultado eacute coletado para avaliaccedilatildeoe modificaccedilatildeo das funcionalidades

Figura 415 Tela de detalhes de um restaurante(segunda versatildeo)

Notou-se que algumas funcionalidadespareceram confusas e natildeo intuitivas porexemplo natildeo ficou claro se o tempo mos-trado era de trajeto ou de espera na filanem qual era o meio de transporte utili-zado

Logo esse protoacutetipo foi reformuladocom o intuito de melhorar a experi-ecircncia do usuaacuterio com o nosso aplica-tivo

Foram colocados aleacutem do tempo deespera da fila o tempo que o usuaacuteriolevaria para chegar ateacute o local selecio-nado (conforme o tipo de transporte es-colhido) e a quantidade estimada de pes-soas na fila O tempo total (espera so-mado ao tempo de deslocamento) ga-nhou destaque entre as informaccedilotildees doestabelecimento e o botatildeo que direcionao usuaacuterio ao trajeto ficou mais especiacute-fico

Tambeacutem cogitou-se a possibilidade deadicionar login e um perfil de usuaacuteriojunto com uma lista de restaurantes favo-ritos

O fluxo das telas deste novo protoacutetipo ficou como mostra o esquema a seguir

38 DESENVOLVIMENTO DO PROJETO 44

Figura 416 Fluxo de telas do segundo protoacutetipo

44 DEFINICcedilAtildeO DA INTERFACE DO APLICATIVO 39

Figura 417 Tela de detalhes de um restaurante(terceira versatildeo)

Apoacutes outras avaliaccedilotildees mais algumaspequenas alteraccedilotildees foram realizadas nainterface Foi decidido que seria inviaacute-vel estimar o nuacutemero de pessoas nafila entatildeo essa funcionalidade foi remo-vida

Notificaccedilotildees foram adicionadas paraquando o usuaacuterio estiver parado na aacutereado restaurante para que ele possa con-tribuir com informaccedilotildees sobre a fila quepegou aleacutem de um botatildeo de contri-buiccedilatildeo ter sido inserido na tela ini-cial

40 DESENVOLVIMENTO DO PROJETO 45

O fluxo de telas do aplicativo atual ficou da seguinte forma

Figura 418 Fluxo de telas do terceiro protoacutetipo

46 EXPLICACcedilAtildeO DAS FUNCIONALIDADES 41

45 Explicaccedilatildeo das funcionalidadesEsta seccedilatildeo explica as funcionalidades do produto utilizando a figura 418

A tela inicial (3) exibe uma lista de restaurantes incluindo seus respectivos tempos detrajeto e tempo de espera na fila Ao clicar no botatildeo ldquo+rdquo uma caixa de diaacutelogo eacute aberta(4) onde eacute possiacutevel adicionar o tempo que o usuaacuterio esperou na fila Primeiro eacute escolhido orestaurante depois a data e hora que a pessoa chegou na fila e por fim o tempo de esperaem minutos Ao tocar em ldquoEnviar Feedback rdquo os dados satildeo incluiacutedos no banco de dados eatualizados para os outros usuaacuterios Assim eacute apicado o conceito de Crowdsourcing no apli-cativo

Ao tocar em um item da lista de restaurantes seraacute aberta a tela de detalhes de um res-taurante (5) na qual eacute possiacutevel ver com mais clareza os tempos de trajeto e espera o tempototal o endereccedilo do estabelecimento e um pequeno mapa centrado no local Pressionandoo botatildeo ldquoDireccedilotildeesrdquo o usuaacuterio seraacute redirecionado ao aplicativo de mapas de sua preferecircnciano caso do exemplo (8) o Google Maps jaacute traccedilando a rota da localizaccedilatildeo do usuaacuterio para oestabelecimento em questatildeo

Novamente na tela inicial tocando no iacutecone de lupa eacute possiacutevel realizar uma busca digi-tando o nome do estabelecimento na caixa de texto a qual exibe sugestotildees dependendo doque foi digitado Ao clicar em um dos resultados da busca o usuaacuterio eacute novamente direcionadopara a tela de detalhes do restaurante (5)

Tambeacutem eacute possiacutevel tocar no iacutecone de mapa na tela inicial onde seraacute mostrado um mapacentrado na localizaccedilatildeo do usuaacuterio

Ao ficar parado por um tempo em um mesmo local proacuteximo a um estabelecimentocadastrado o usuaacuterio eacute perguntado em uma notificaccedilatildeo quanto tempo ele permaneceu nafila Ao tocar na notificaccedilatildeo a caixa de diaacutelogo para feedback do usuaacuterio seraacute aberta (4) jaacutecom o restaurante preenchido e apoacutes o feedback a janela seraacute fechada e os dados enviadosao banco de dados

46 Implementaccedilatildeo do banco de dadosO banco de dados do aplicativo foi modelado e populado em forma de aacutervore (Fi-

gura 419) de forma a facilitar o acesso aos dados necessaacuterios ao aplicativo No primeironiacutevel estatildeo os ids dos restaurantes Cada id de restaurante guarda a localizaccedilatildeo (latitudelongitude) do restaurante o nome o endereccedilo e um objeto fila O objeto fila guarda todos osdias da semana (domingo a saacutebado) e cada dia da semana possui 24 campos um para cadahora do dia Cada hora possui o tempo meacutedio de espera da fila naquela hora e um peso paraesse tempo O peso eacute um valor que aumenta de acordo com o nuacutemero de feedbacks dadospara que o novo valor do tempo meacutedio seja calculado de forma consistente

Modelamos o banco de dados de uma forma que respeitasse uma hierarquia de dados

42 DESENVOLVIMENTO DO PROJETO 46

Figura 419 Aacutervore que ilustra a organizaccedilatildeo de um restaurante no banco de dados

Com o banco de dados jaacute populado o aplicativo faz consultas e atualizaccedilotildees de dadosConsultas satildeo feitas ao criar a tela de listagem de restaurantes e de detalhes de um restau-rante consultado As atualizaccedilotildees satildeo feitas quando o usuaacuterio manda o feedback de tempo deespera em um estabelecimento em determinado horaacuterio o aplicativo calcula a nova meacutedia eatualiza o campo do respectivo horaacuterio

Capiacutetulo 5

Conclusatildeo

Ao longo dos capiacutetulos deste trabalho pocircde-se acompanhar todo o processo de criaccedilatildeo edesenvolvimento do aplicativo que apoacutes finalizado foi batizado com o nome Queue

Comeccedilando com um problema para o qual o grupo almejava oferecer uma soluccedilatildeoacabou-se por adentrar-se um pouco no campo da Estatiacutestica e estudar diversas metodo-logias que poderiam ser uacuteteis para fornecer um caacutelculo de previsatildeo de espera meacutedia porperiacuteodo aplicaccedilatildeo da teoria das filas e utilizaccedilatildeo de redes neurais

Atraveacutes de uma parceria com a empresa GetIn obteve-se acesso a uma grande quantidadede dados e foi possiacutevel utilizaacute-los em anaacutelises feitas nas metodologias escolhidas conseguindoassim resultados relevantes Por meio destes foi feita a escolha de um dos meacutetodos para ocaacutelculo da previsatildeo de filas a meacutedia por periacuteodo

Aleacutem desses estudos ao longo do ano o grupo aprendeu a desenvolver para a plata-forma Android sobre a qual nenhum dos integrantes tinha conhecimento preacutevio Tambeacutemfoi possiacutevel aprender e utilizar a metodologia aacutegil com Scrum para guiar o processo de de-senvolvimento

Ao fim do ciclo de desenvolvimento conseguiu-se entregar um aplicativo em funciona-mento que fornece a previsatildeo de espera no instante da consulta de estabelecimentos cadas-trados no banco de dados armazenado na nuvem

Na versatildeo atual do aplicativo natildeo foi implementado um sistema para o cadastro de novosestabelecimentos Isso soacute eacute possiacutevel atraveacutes da inserccedilatildeo direta no banco de dados atraveacutes dainterface fornecida pelo console do Firebase Atualmente estatildeo cadastrados 5 restaurantesos quais foram visitados durante o desenvolvimento do projeto Para que o cadastro deestabelecimentos escale seria necessaacuterio a implementaccedilatildeo de uma funcionalidade que permitaao usuaacuterio adicionar novos estabelecimentos a partir de locais disponiacuteveis na API de locaisda Google

43

45

46 APEcircNDICE A

Apecircndice A

Dados coletados

Figura A1 Dados de tempo de espera para grupos de tamanhos variados para cada horaacuterio e emcada dia da semana obtidos em entrevista em restaurantes Outback Steakhouse Shopping Uniatildeo nomecircs de outubro

Referecircncias Bibliograacuteficas

[1] Backpropagation httpmbpsourceforgenet Accesso em Janeiro 2017 14

[2] Bitbucket httpsbitbucketorgproduct Accesso em Dezembro 2016 19

[3] Crowdsourcing httpswwwmerriam-webstercomdictionarycrowdsourcing Ac-cesso em Novembro 2016 21

[4] Designing a survey httpwwwsciencebuddiesorgscience-fair-projectsproject_ideasSoc_surveyshtml Accesso em Outubro 2016 4 23

[5] Facebook httpswwwfacebookcom Accesso em Novembro 2016 24

[6] Firebase httpsfirebasegooglecom Accesso em Agosto 2016 20

[7] Getin app httpswwwgetinappcombrhomesao-paulo Accesso em Novembro2016 9

[8] Git 11 primeiros passos - sobre controle de versatildeo httpsgit-scmcombookpt-brv1Primeiros-passos-Sobre-Controle-de-Vers Accesso em Novembro 2016 19

[9] Google forms httpsdocsgooglecomforms Accesso em Novembro 2016 23

[10] Guia definitivo do project model canvas Project Builder 3

[11] Jsonorg introducing json httpwwwjsonorg Accesso em Novembro 2016 17

[12] Manifesto para desenvolvimento Aacutegil de software httpagilemanifestoorgisoptbrmanifestohtml Accesso em Novembro 2016 5

[13] Nosql httpsenwikipediaorgwikiNoSQL Accesso em Novembro 2016 20

[14] Outback steakhouse httpswwwoutbackcombrhome Accesso em Novembro 20169

[15] Restful api development with lumen microframework httpsbelitsoftcomlaravel-development-servicesapi-development Accesso em Novembro 2016 17

[16] Scrum httpswwwatlassiancomagilescrum Accesso em Novembro 2016 5

[17] Smartphone os market share 2016 q2 httpwwwidccomprodservsmartphone-os-market-sharejsp Accesso em Novembro 2016 15

[18] Smartphone os sales market share kantar worldpanel comtech httpwwwkantarworldpanelcomsmartphone-os-market-share Accesso em Novembro 2016 15

[19] Sourcetree httpswwwsourcetreeappcom Accesso em Dezembro 2016 19

47

48 REFEREcircNCIAS BIBLIOGRAacuteFICAS

[20] Sql httpsptkhanacademyorgcomputingcomputer-programmingsql Accesso emDezembro 2016 20

[21] Trello httpstrellocom Accesso em Novembro 2016 6

[22] Usability test httpsenwikipediaorgwikiUsability_testing Accesso em Novembro2016 36

[23] Versionone 2012 agile dev survey httpswwwversiononecompdf7th-Annual-State-of-Agile-Development-Surveypdf Accesso em Novembro 2016 5

[24] Waze httpswwwwazecom Accesso em Novembro 2016 1

[25] What is an open source httpsopensourcecomresourceswhat-open-source Accessoem Novembro 2016 15

[26] Xml tutorial httpwwww3schoolscomxml Accesso em Novembro 2016 17

[27] Paulo F Cabral dos Anjos Jr Aron Ifanger Maciel Christopher Silva de Paacutedua Com-posiccedilatildeo de carteiras de accedilotildees utilizando modelo de redes neurais artificiais e modelo derisco e retorno de Markowitz 2012 14

[28] Google Distance matrix api documentation httpsdevelopersgooglecommapsdocumentationdistance-matrix Accesso em Novembro 2016 17

[29] Alan Klement Designing features using job stories httpsblogintercomcomusing-job-stories-design-features-ui-ux Accesso em Novembro 2016 6

[30] Azmat Nafees Queuing theory and its application analysis of the sales checkout opera-tion in ica supermarket httpwwwstatisticsduseessaysD07ENafeespdf Accessoem Novembro 2016 12

[31] Eric Ries A Startup Enxuta Lua de papel primeira ediccedilatildeo edition 2012 3

  • Introduccedilatildeo
    • Motivaccedilatildeo
    • Trabalho Proposto
    • Estrutura da monografia
      • Estudos Preliminares
        • Desenvolvimento de Startups
          • Desenvolvimento de Questionaacuterios
            • Metodologia Aacutegil
            • Jobs to be done
            • Caacutelculo da previsatildeo do tempo de espera na fila
              • Descriccedilatildeo do problema
              • Meacutetodos de caacutelculo da espera
                  • Tecnologias utilizadas
                    • O sistema Android
                      • Organizaccedilatildeo de uma aplicaccedilatildeo Android
                        • JSON
                        • Google APIs
                        • Localizaccedilatildeo do Usuaacuterio
                        • Controle de Versatildeo
                        • Banco de dados
                          • Firebase
                            • Crowdsourcing
                              • Desenvolvimento do Projeto
                                • Pesquisa de Mercado
                                  • Pesquisa com o usuaacuterio
                                    • Projeto do Aplicativo
                                    • Aplicaccedilatildeo dos meacutetodos de caacutelculo de espera
                                      • Aplicando a meacutedia por periacuteodo
                                      • Aplicando teoria das filas
                                      • Aplicando redes neurais
                                      • Conclusatildeo sobre os meacutetodos estudados
                                        • Definiccedilatildeo da Interface do aplicativo
                                        • Explicaccedilatildeo das funcionalidades
                                        • Implementaccedilatildeo do banco de dados
                                          • Conclusatildeo
                                          • Dados coletados
                                          • Referecircncias Bibliograacuteficas

28 DESENVOLVIMENTO DO PROJETO 41

Questatildeo 6O que vocecirc costuma fazer para evitar filasNeste ponto testou-se se a soluccedilatildeo proposta atraveacutes do aplicativo resolveria o problema dousuaacuterio de uma forma melhor do que a soluccedilatildeo atualmente utilizada Para isso foi perguntadoo que as pessoas fazem para evitar filas e as principais respostas foram

∙ Evitar horaacuterios de pico

∙ Chegar cedo

∙ Ir em outro lugar caso uma fila seja encontrada

∙ Tentar realizar reservas antecipadamente

∙ Se distrair com livroscelular

Notou-se que as soluccedilotildees utilizadas atualmente natildeo suprem as necessidades dos entre-vistados pois mesmo em horaacuterios natildeo convencionais pode-se encontrar filas ou quandodecide-se esperar na fila muito tempo eacute perdido Concluiu-se que a soluccedilatildeo proposta a par-tir do aplicativo resolve de forma mais abrangente o problema pois ajuda o usuaacuterio a evitarhoraacuterios de pico inesperados

Questatildeo 7

Figura 46 Graacutefico em pizza da distribuiccedilatildeo do meio de transporte utilizado pelos usuaacuterios

Essa questatildeo foi formulada com o objetivo de verificar quais meios de transporte seriamincluiacutedos com previsatildeo de tempo de trajeto no aplicativo Foi verificado que a maioria dosentrevistados utilizam transporte puacuteblico seguido por carro

41 PESQUISA DE MERCADO 29

Questatildeo 8

Figura 47 Graacutefico em pizza da distribuiccedilatildeo do interesse do usuaacuterio pela informaccedilatildeo fornecida

Questatildeo 9

Figura 48 Graacutefico em pizza da distribuiccedilatildeo de quantidade de quilocircmetros que o usuaacuterio sedeslocaria para ir a um local com menos fila

Com essas questotildees foi verificado que algo importante para o usuaacuterio eacute saber de outrosestabelecimentos que possam oferecer tempos de espera menores nas redondezas de onde ousuaacuterio se encontra que eacute uma das funcionalidades que desejaacutevamos utilizar no sistema

30 DESENVOLVIMENTO DO PROJETO 41

Questatildeo 10

Figura 49 Graacutefico em barras da distribuiccedilatildeo de sentimento do usuaacuterio em relaccedilatildeo a notificaccedilatildeode aplicativos

Questatildeo 11

Figura 410 Graacutefico em pizza da distribuiccedilatildeo de opiniatildeo do usuaacuterio sobre desabilitar notificaccedilotildeesem celular

42 PESQUISA DE MERCADO 31

Questatildeo 12

Figura 411 Graacutefico em pizza da distribuiccedilatildeo de opiniatildeo do usuaacuterio sobre habilitar GPS emcelular

A ideia inicial era poder usar o GPS para verificar a localizaccedilatildeo do usuaacuterio e enviarnotificaccedilotildees quando este estivesse parado nas proximidades de algum dos estabelecimentoscadastrados Para que essa funcionalidade possa existir eacute necessaacuterio que o aplicativo tenhaacesso agrave localizaccedilatildeo precisa da pessoa atraveacutes do GPS ou internet ateacute mesmo quando natildeoestiver aberto Aleacutem disso tambeacutem eacute necessaacuterio que as notificaccedilotildees estejam habilitadas parafinalizar esta interaccedilatildeo Entatildeo as perguntas 10 11 e 12 foram incluiacutedas no questionaacuterio Ob-servando as respostas foi possiacutevel verificar que 295 das pessoas que responderam deixamambas as funcionalidades habilitadas (GPS e notificaccedilotildees) Com isso pudemos prosseguircom essa ideia e tambeacutem pensar em possiacuteveis alternativas de interaccedilatildeo e engajamento como usuaacuterio

Por conta dessa pesquisa ter sido compartilhada atraveacutes das contas das redes sociais ecomunicadores dos componentes deste grupo sabe-se que este pode apresentar um resultadoviesado mas que mesmo assim natildeo deve ser desconsiderado e que muito ajudou a sanar asduacutevidas iniciaisComo resultado traccedilamos o perfil do entrevistado

∙ Faixa etaacuteria predominante entre 18 e 30 anos

∙ Possui sistema operacional Android (versotildees 4 5 e 6)

∙ Vai a restaurantes com certa frequecircncia mensal resultando em interesses sobre infor-maccedilotildees relacionadas a esse estabelecimento

∙ Costuma chegar cedo ou evitar os horaacuterios de pico para evitar filas nos locais

∙ Carro e transporte coletivo satildeo os principais meios de transporte

∙ Se deslocaria para um estabelecimento semelhante que possui menos fila contanto queeste fique num raio de 2km de distacircncia

32 DESENVOLVIMENTO DO PROJETO 43

42 Projeto do AplicativoO grupo comeccedilou o projeto com o preenchimento do diagrama Canvas(figura 412) apre-

sentado na Seccedilatildeo 21 Desse modo foi adquirida uma ideia mais consistente e uma base paracomeccedilar a implementaccedilatildeo

Figura 412 Diagrama Canvas preenchido pelo grupo

Com o modelo de negoacutecios definido e com base no resultado da pesquisa com o usuaacuterioapresentada na seccedilatildeo seguinte foram aplicadas pequenas mudanccedilas no projeto para melhoradequar-se agraves necessidades e ao perfil do puacuteblico alvo

Para o desenvolvimento foi utilizado um meacutetodo aacutegil baseado no scrum com sprints de3 a 4 semanas devido agrave disponibilidade dos membros do grupo Os encontros natildeo eram diaacute-rios como recomendado para o meacutetodo scrum tambeacutem em razatildeo da disponibilidade Haviamstand ups (discussotildees raacutepidas no comeccedilo de cada encontro) e retrospectivas ao final de cadasprint A cada sprint eram selecionadas histoacuterias e tarefas para serem executadas e caso natildeofossem concluiacutedas ao final da iteraccedilatildeo eram inseridas ao backlog e feitas no sprint seguinte

43 Aplicaccedilatildeo dos meacutetodos de caacutelculo de espera

431 Aplicando a meacutedia por periacuteodo

Aplicando-se no trecho abaixo a teacutecnica desenvolvida na Seccedilatildeo 242 para uma queryrealizada no dia 19082016 no intervalo de 2040 - 2055 analisa-se a semana anterior quepossua tais intervalos Assim o saacutebado dia 06082016 seraacute selecionado

43 APLICACcedilAtildeO DOS MEacuteTODOS DE CAacuteLCULO DE ESPERA 33

Entrada Qtd Pessoas Notificado Espera

6816 2043 2 862016 2053 1606

6816 2044 2 862016 2055 674

6816 2048 2 862016 2056 528

6816 2048 2 862016 2057 520

6816 2051 2 862016 2107 1118

6816 2051 3 862016 2110 1305

6816 2052 2 862016 2110 1273

6816 2052 2 862016 2111 1179

6816 2053 2 862016 2112 1217

6816 2053 2 NULL 59

6816 2054 3 862016 2119 1541

6816 2055 2 862016 2117 1444

6816 2055 2 862016 2120 1570

6816 2055 2 862016 2122 1613

Tabela 41 Trecho do dia 06082016 entre os horaacuterios das 2043 agraves 2055 um intervalo de 12minutos retirado dos dados da empresa Get In

Com esses dados obteve-se a meacutedia de espera de 1080 segundos (18 minutos) a qualseria sugerida para o usuaacuterio com a busca e desvio padratildeo de 465144719 segundos (775 mi-nutos) Dentro desse intervalo tem-se como maacuteximo tempo de espera 1613 segundos (2688minutos) e como miacutenimo 59 segundos (1 minuto) Analisando-se os dados do dia 19082016no mesmo periacuteodo temos

34 DESENVOLVIMENTO DO PROJETO 43

Entrada Pessoas Notificado Espera Erro previsatildeo Erro p 2 pessoas

19816 2043 2 8192016 2051 544 -563 522

19816 2043 2 8192016 2052 605 -502 461

19816 2044 2 8192016 2056 723 -384 343

19816 2046 4 8192016 2119 1988 881 X

19816 2048 2 8192016 2102 919 188 147

19816 2051 2 8192016 2103 821 286 245

19816 2051 3 8192016 2108 1773 666 X

19816 2053 2 8192016 2110 1083 24 -17

19816 2053 2 8192016 2111 1105 2 -39

19816 2053 2 8192016 2112 1169 62 -103

19816 2055 2 8192016 2114 1447 340 -381

Tabela 42 Trecho do dia 19082016 entre os horaacuterios das 2043 agraves 2055um intervalo de 12minutos retirado dos dados da empresa Get In

Ou seja se um grupo chegasse dentro desse periacuteodo e a previsatildeo dada fosse a meacutediaobtida anteriormente o erro calculado pela diferenccedila entre o tempo sugerido e o real tempode espera estaria no intervalo de 15 minutos para menos ou 8 minutos para mais Sendoesse um valor aceitaacutevel

Um proacuteximo passo eacute a restriccedilatildeo dos registros a grupos com 2 integrantes Com tal restri-ccedilatildeo a previsatildeo de espera eacute de 1066 segundos (1776 minutos) Aplicando essa nova meacutedia aosregistros com 2 integrantes do dia 19082016 obteacutem-se um erro (Coluna 6 - erro previsatildeopara 2 pessoas) menor do que o anterior O intervalo do erro calculado neste caso seria de 522segundos (87 minutos) para mais e 381 segundos (635 minutos) para menos Este resultadoeacute ainda mais favoraacutevel mostrando que a inclusatildeo de mais filtros para o caacutelculo da previsatildeomelhorou o tempo previsto

432 Aplicando teoria das filas

A teoria das filas (Seccedilatildeo 242) eacute uma ferramenta muito completa que calcula muitos dadosuacuteteis para a previsatildeo de espera Contudo por conta da necessidade de informaccedilotildees sobreo tempo de atendimento a qual natildeo estaacute contida no banco utilizado esta teoria natildeo podeser aplicada neste caso Poreacutem esse dado pode ter um valor assumido para que a utilizaccedilatildeodessa teoria fosse possiacutevel entretanto a sua precisatildeo ficaria comprometida e imprevisiacutevel

433 Aplicando redes neurais

Para aplicar o que foi estudado na Seccedilatildeo 242 foi executado o software com o mecircs deAgosto como teste o mecircs de Setembro como treino e o limite do erro quadraacutetico como 001 eobteve-se a tabela presente no apecircndice B Na tabela podemos ver o tempo de fila esperadoou seja o tempo contido na tabela do mecircs de Setembro o tempo que o algoritmo deu comoresposta baseado no mecircs de Agosto e o erro entre eles respectivamente

44 DEFINICcedilAtildeO DA INTERFACE DO APLICATIVO 35

Figura 413 Software Multiple Back-Propagation com a configuraccedilatildeo escolhida para os dadosdisponiacuteveis

Mesmo o erro se mantendo em 0018 os dados obtidos possuem um erro padratildeo de 15minutos Se mais dados forem adicionados o criteacuterio de parada pode ser atingido e assimuma previsatildeo melhor pode ser alcanccedilada

434 Conclusatildeo sobre os meacutetodos estudados

Dentre todas as possibilidades estudadas visualizamos na meacutedia por periacuteodo a melhoropccedilatildeo assumindo os dados disponiacuteveis para teste Se mais paracircmetros fossem fornecidoscomo o tempo de atendimento a teoria das filas seria uma boa opccedilatildeo para fornecer a pre-visatildeo de espera E se mais dados estivessem disponiacuteveis as redes neurais conseguiriam umaaproximaccedilatildeo melhor e assim seria uma boa opccedilatildeo tambeacutem

44 Definiccedilatildeo da Interface do aplicativoComo um primeiro protoacutetipo foi desenvolvida uma interface simples que tinha como tela

de iniacutecio um mapa com um campo para buscas na parte superior

36 DESENVOLVIMENTO DO PROJETO 44

Figura 414 Fluxo de telas do primeiro protoacutetipo

Ao efetuar uma busca por algum estabelecimento uma tela mostrando o tempo de esperaaproximado da fila no local era exibida junto com bototildees que permitiam selecionar o meiode transporte visualizar outras opccedilotildees ou dar iniacutecio a rota ateacute o local desejado Tambeacutemhavia uma notificaccedilatildeo para quando a pessoa estivesse parada proacutexima a um restaurantecadastrado que direcionaria o usuaacuterio a uma tela com um cronocircmetro do tempo de esperana fila

Para testar essa visualizaccedilatildeo escolhemos algumas pessoas e realizamos um teste deusabilidade[22] este teste eacute feito da seguinte forma

44 DEFINICcedilAtildeO DA INTERFACE DO APLICATIVO 37

Uma contextualizaccedilatildeo eacute feita para o voluntaacuterio e entatildeo uma tarefa eacute passada para sercompletada Os integrantes do grupo observam dificuldades enfrentadas pelo entrevistado etomam notas Esse teste eacute repetido algumas vezes e seu resultado eacute coletado para avaliaccedilatildeoe modificaccedilatildeo das funcionalidades

Figura 415 Tela de detalhes de um restaurante(segunda versatildeo)

Notou-se que algumas funcionalidadespareceram confusas e natildeo intuitivas porexemplo natildeo ficou claro se o tempo mos-trado era de trajeto ou de espera na filanem qual era o meio de transporte utili-zado

Logo esse protoacutetipo foi reformuladocom o intuito de melhorar a experi-ecircncia do usuaacuterio com o nosso aplica-tivo

Foram colocados aleacutem do tempo deespera da fila o tempo que o usuaacuteriolevaria para chegar ateacute o local selecio-nado (conforme o tipo de transporte es-colhido) e a quantidade estimada de pes-soas na fila O tempo total (espera so-mado ao tempo de deslocamento) ga-nhou destaque entre as informaccedilotildees doestabelecimento e o botatildeo que direcionao usuaacuterio ao trajeto ficou mais especiacute-fico

Tambeacutem cogitou-se a possibilidade deadicionar login e um perfil de usuaacuteriojunto com uma lista de restaurantes favo-ritos

O fluxo das telas deste novo protoacutetipo ficou como mostra o esquema a seguir

38 DESENVOLVIMENTO DO PROJETO 44

Figura 416 Fluxo de telas do segundo protoacutetipo

44 DEFINICcedilAtildeO DA INTERFACE DO APLICATIVO 39

Figura 417 Tela de detalhes de um restaurante(terceira versatildeo)

Apoacutes outras avaliaccedilotildees mais algumaspequenas alteraccedilotildees foram realizadas nainterface Foi decidido que seria inviaacute-vel estimar o nuacutemero de pessoas nafila entatildeo essa funcionalidade foi remo-vida

Notificaccedilotildees foram adicionadas paraquando o usuaacuterio estiver parado na aacutereado restaurante para que ele possa con-tribuir com informaccedilotildees sobre a fila quepegou aleacutem de um botatildeo de contri-buiccedilatildeo ter sido inserido na tela ini-cial

40 DESENVOLVIMENTO DO PROJETO 45

O fluxo de telas do aplicativo atual ficou da seguinte forma

Figura 418 Fluxo de telas do terceiro protoacutetipo

46 EXPLICACcedilAtildeO DAS FUNCIONALIDADES 41

45 Explicaccedilatildeo das funcionalidadesEsta seccedilatildeo explica as funcionalidades do produto utilizando a figura 418

A tela inicial (3) exibe uma lista de restaurantes incluindo seus respectivos tempos detrajeto e tempo de espera na fila Ao clicar no botatildeo ldquo+rdquo uma caixa de diaacutelogo eacute aberta(4) onde eacute possiacutevel adicionar o tempo que o usuaacuterio esperou na fila Primeiro eacute escolhido orestaurante depois a data e hora que a pessoa chegou na fila e por fim o tempo de esperaem minutos Ao tocar em ldquoEnviar Feedback rdquo os dados satildeo incluiacutedos no banco de dados eatualizados para os outros usuaacuterios Assim eacute apicado o conceito de Crowdsourcing no apli-cativo

Ao tocar em um item da lista de restaurantes seraacute aberta a tela de detalhes de um res-taurante (5) na qual eacute possiacutevel ver com mais clareza os tempos de trajeto e espera o tempototal o endereccedilo do estabelecimento e um pequeno mapa centrado no local Pressionandoo botatildeo ldquoDireccedilotildeesrdquo o usuaacuterio seraacute redirecionado ao aplicativo de mapas de sua preferecircnciano caso do exemplo (8) o Google Maps jaacute traccedilando a rota da localizaccedilatildeo do usuaacuterio para oestabelecimento em questatildeo

Novamente na tela inicial tocando no iacutecone de lupa eacute possiacutevel realizar uma busca digi-tando o nome do estabelecimento na caixa de texto a qual exibe sugestotildees dependendo doque foi digitado Ao clicar em um dos resultados da busca o usuaacuterio eacute novamente direcionadopara a tela de detalhes do restaurante (5)

Tambeacutem eacute possiacutevel tocar no iacutecone de mapa na tela inicial onde seraacute mostrado um mapacentrado na localizaccedilatildeo do usuaacuterio

Ao ficar parado por um tempo em um mesmo local proacuteximo a um estabelecimentocadastrado o usuaacuterio eacute perguntado em uma notificaccedilatildeo quanto tempo ele permaneceu nafila Ao tocar na notificaccedilatildeo a caixa de diaacutelogo para feedback do usuaacuterio seraacute aberta (4) jaacutecom o restaurante preenchido e apoacutes o feedback a janela seraacute fechada e os dados enviadosao banco de dados

46 Implementaccedilatildeo do banco de dadosO banco de dados do aplicativo foi modelado e populado em forma de aacutervore (Fi-

gura 419) de forma a facilitar o acesso aos dados necessaacuterios ao aplicativo No primeironiacutevel estatildeo os ids dos restaurantes Cada id de restaurante guarda a localizaccedilatildeo (latitudelongitude) do restaurante o nome o endereccedilo e um objeto fila O objeto fila guarda todos osdias da semana (domingo a saacutebado) e cada dia da semana possui 24 campos um para cadahora do dia Cada hora possui o tempo meacutedio de espera da fila naquela hora e um peso paraesse tempo O peso eacute um valor que aumenta de acordo com o nuacutemero de feedbacks dadospara que o novo valor do tempo meacutedio seja calculado de forma consistente

Modelamos o banco de dados de uma forma que respeitasse uma hierarquia de dados

42 DESENVOLVIMENTO DO PROJETO 46

Figura 419 Aacutervore que ilustra a organizaccedilatildeo de um restaurante no banco de dados

Com o banco de dados jaacute populado o aplicativo faz consultas e atualizaccedilotildees de dadosConsultas satildeo feitas ao criar a tela de listagem de restaurantes e de detalhes de um restau-rante consultado As atualizaccedilotildees satildeo feitas quando o usuaacuterio manda o feedback de tempo deespera em um estabelecimento em determinado horaacuterio o aplicativo calcula a nova meacutedia eatualiza o campo do respectivo horaacuterio

Capiacutetulo 5

Conclusatildeo

Ao longo dos capiacutetulos deste trabalho pocircde-se acompanhar todo o processo de criaccedilatildeo edesenvolvimento do aplicativo que apoacutes finalizado foi batizado com o nome Queue

Comeccedilando com um problema para o qual o grupo almejava oferecer uma soluccedilatildeoacabou-se por adentrar-se um pouco no campo da Estatiacutestica e estudar diversas metodo-logias que poderiam ser uacuteteis para fornecer um caacutelculo de previsatildeo de espera meacutedia porperiacuteodo aplicaccedilatildeo da teoria das filas e utilizaccedilatildeo de redes neurais

Atraveacutes de uma parceria com a empresa GetIn obteve-se acesso a uma grande quantidadede dados e foi possiacutevel utilizaacute-los em anaacutelises feitas nas metodologias escolhidas conseguindoassim resultados relevantes Por meio destes foi feita a escolha de um dos meacutetodos para ocaacutelculo da previsatildeo de filas a meacutedia por periacuteodo

Aleacutem desses estudos ao longo do ano o grupo aprendeu a desenvolver para a plata-forma Android sobre a qual nenhum dos integrantes tinha conhecimento preacutevio Tambeacutemfoi possiacutevel aprender e utilizar a metodologia aacutegil com Scrum para guiar o processo de de-senvolvimento

Ao fim do ciclo de desenvolvimento conseguiu-se entregar um aplicativo em funciona-mento que fornece a previsatildeo de espera no instante da consulta de estabelecimentos cadas-trados no banco de dados armazenado na nuvem

Na versatildeo atual do aplicativo natildeo foi implementado um sistema para o cadastro de novosestabelecimentos Isso soacute eacute possiacutevel atraveacutes da inserccedilatildeo direta no banco de dados atraveacutes dainterface fornecida pelo console do Firebase Atualmente estatildeo cadastrados 5 restaurantesos quais foram visitados durante o desenvolvimento do projeto Para que o cadastro deestabelecimentos escale seria necessaacuterio a implementaccedilatildeo de uma funcionalidade que permitaao usuaacuterio adicionar novos estabelecimentos a partir de locais disponiacuteveis na API de locaisda Google

43

45

46 APEcircNDICE A

Apecircndice A

Dados coletados

Figura A1 Dados de tempo de espera para grupos de tamanhos variados para cada horaacuterio e emcada dia da semana obtidos em entrevista em restaurantes Outback Steakhouse Shopping Uniatildeo nomecircs de outubro

Referecircncias Bibliograacuteficas

[1] Backpropagation httpmbpsourceforgenet Accesso em Janeiro 2017 14

[2] Bitbucket httpsbitbucketorgproduct Accesso em Dezembro 2016 19

[3] Crowdsourcing httpswwwmerriam-webstercomdictionarycrowdsourcing Ac-cesso em Novembro 2016 21

[4] Designing a survey httpwwwsciencebuddiesorgscience-fair-projectsproject_ideasSoc_surveyshtml Accesso em Outubro 2016 4 23

[5] Facebook httpswwwfacebookcom Accesso em Novembro 2016 24

[6] Firebase httpsfirebasegooglecom Accesso em Agosto 2016 20

[7] Getin app httpswwwgetinappcombrhomesao-paulo Accesso em Novembro2016 9

[8] Git 11 primeiros passos - sobre controle de versatildeo httpsgit-scmcombookpt-brv1Primeiros-passos-Sobre-Controle-de-Vers Accesso em Novembro 2016 19

[9] Google forms httpsdocsgooglecomforms Accesso em Novembro 2016 23

[10] Guia definitivo do project model canvas Project Builder 3

[11] Jsonorg introducing json httpwwwjsonorg Accesso em Novembro 2016 17

[12] Manifesto para desenvolvimento Aacutegil de software httpagilemanifestoorgisoptbrmanifestohtml Accesso em Novembro 2016 5

[13] Nosql httpsenwikipediaorgwikiNoSQL Accesso em Novembro 2016 20

[14] Outback steakhouse httpswwwoutbackcombrhome Accesso em Novembro 20169

[15] Restful api development with lumen microframework httpsbelitsoftcomlaravel-development-servicesapi-development Accesso em Novembro 2016 17

[16] Scrum httpswwwatlassiancomagilescrum Accesso em Novembro 2016 5

[17] Smartphone os market share 2016 q2 httpwwwidccomprodservsmartphone-os-market-sharejsp Accesso em Novembro 2016 15

[18] Smartphone os sales market share kantar worldpanel comtech httpwwwkantarworldpanelcomsmartphone-os-market-share Accesso em Novembro 2016 15

[19] Sourcetree httpswwwsourcetreeappcom Accesso em Dezembro 2016 19

47

48 REFEREcircNCIAS BIBLIOGRAacuteFICAS

[20] Sql httpsptkhanacademyorgcomputingcomputer-programmingsql Accesso emDezembro 2016 20

[21] Trello httpstrellocom Accesso em Novembro 2016 6

[22] Usability test httpsenwikipediaorgwikiUsability_testing Accesso em Novembro2016 36

[23] Versionone 2012 agile dev survey httpswwwversiononecompdf7th-Annual-State-of-Agile-Development-Surveypdf Accesso em Novembro 2016 5

[24] Waze httpswwwwazecom Accesso em Novembro 2016 1

[25] What is an open source httpsopensourcecomresourceswhat-open-source Accessoem Novembro 2016 15

[26] Xml tutorial httpwwww3schoolscomxml Accesso em Novembro 2016 17

[27] Paulo F Cabral dos Anjos Jr Aron Ifanger Maciel Christopher Silva de Paacutedua Com-posiccedilatildeo de carteiras de accedilotildees utilizando modelo de redes neurais artificiais e modelo derisco e retorno de Markowitz 2012 14

[28] Google Distance matrix api documentation httpsdevelopersgooglecommapsdocumentationdistance-matrix Accesso em Novembro 2016 17

[29] Alan Klement Designing features using job stories httpsblogintercomcomusing-job-stories-design-features-ui-ux Accesso em Novembro 2016 6

[30] Azmat Nafees Queuing theory and its application analysis of the sales checkout opera-tion in ica supermarket httpwwwstatisticsduseessaysD07ENafeespdf Accessoem Novembro 2016 12

[31] Eric Ries A Startup Enxuta Lua de papel primeira ediccedilatildeo edition 2012 3

  • Introduccedilatildeo
    • Motivaccedilatildeo
    • Trabalho Proposto
    • Estrutura da monografia
      • Estudos Preliminares
        • Desenvolvimento de Startups
          • Desenvolvimento de Questionaacuterios
            • Metodologia Aacutegil
            • Jobs to be done
            • Caacutelculo da previsatildeo do tempo de espera na fila
              • Descriccedilatildeo do problema
              • Meacutetodos de caacutelculo da espera
                  • Tecnologias utilizadas
                    • O sistema Android
                      • Organizaccedilatildeo de uma aplicaccedilatildeo Android
                        • JSON
                        • Google APIs
                        • Localizaccedilatildeo do Usuaacuterio
                        • Controle de Versatildeo
                        • Banco de dados
                          • Firebase
                            • Crowdsourcing
                              • Desenvolvimento do Projeto
                                • Pesquisa de Mercado
                                  • Pesquisa com o usuaacuterio
                                    • Projeto do Aplicativo
                                    • Aplicaccedilatildeo dos meacutetodos de caacutelculo de espera
                                      • Aplicando a meacutedia por periacuteodo
                                      • Aplicando teoria das filas
                                      • Aplicando redes neurais
                                      • Conclusatildeo sobre os meacutetodos estudados
                                        • Definiccedilatildeo da Interface do aplicativo
                                        • Explicaccedilatildeo das funcionalidades
                                        • Implementaccedilatildeo do banco de dados
                                          • Conclusatildeo
                                          • Dados coletados
                                          • Referecircncias Bibliograacuteficas

41 PESQUISA DE MERCADO 29

Questatildeo 8

Figura 47 Graacutefico em pizza da distribuiccedilatildeo do interesse do usuaacuterio pela informaccedilatildeo fornecida

Questatildeo 9

Figura 48 Graacutefico em pizza da distribuiccedilatildeo de quantidade de quilocircmetros que o usuaacuterio sedeslocaria para ir a um local com menos fila

Com essas questotildees foi verificado que algo importante para o usuaacuterio eacute saber de outrosestabelecimentos que possam oferecer tempos de espera menores nas redondezas de onde ousuaacuterio se encontra que eacute uma das funcionalidades que desejaacutevamos utilizar no sistema

30 DESENVOLVIMENTO DO PROJETO 41

Questatildeo 10

Figura 49 Graacutefico em barras da distribuiccedilatildeo de sentimento do usuaacuterio em relaccedilatildeo a notificaccedilatildeode aplicativos

Questatildeo 11

Figura 410 Graacutefico em pizza da distribuiccedilatildeo de opiniatildeo do usuaacuterio sobre desabilitar notificaccedilotildeesem celular

42 PESQUISA DE MERCADO 31

Questatildeo 12

Figura 411 Graacutefico em pizza da distribuiccedilatildeo de opiniatildeo do usuaacuterio sobre habilitar GPS emcelular

A ideia inicial era poder usar o GPS para verificar a localizaccedilatildeo do usuaacuterio e enviarnotificaccedilotildees quando este estivesse parado nas proximidades de algum dos estabelecimentoscadastrados Para que essa funcionalidade possa existir eacute necessaacuterio que o aplicativo tenhaacesso agrave localizaccedilatildeo precisa da pessoa atraveacutes do GPS ou internet ateacute mesmo quando natildeoestiver aberto Aleacutem disso tambeacutem eacute necessaacuterio que as notificaccedilotildees estejam habilitadas parafinalizar esta interaccedilatildeo Entatildeo as perguntas 10 11 e 12 foram incluiacutedas no questionaacuterio Ob-servando as respostas foi possiacutevel verificar que 295 das pessoas que responderam deixamambas as funcionalidades habilitadas (GPS e notificaccedilotildees) Com isso pudemos prosseguircom essa ideia e tambeacutem pensar em possiacuteveis alternativas de interaccedilatildeo e engajamento como usuaacuterio

Por conta dessa pesquisa ter sido compartilhada atraveacutes das contas das redes sociais ecomunicadores dos componentes deste grupo sabe-se que este pode apresentar um resultadoviesado mas que mesmo assim natildeo deve ser desconsiderado e que muito ajudou a sanar asduacutevidas iniciaisComo resultado traccedilamos o perfil do entrevistado

∙ Faixa etaacuteria predominante entre 18 e 30 anos

∙ Possui sistema operacional Android (versotildees 4 5 e 6)

∙ Vai a restaurantes com certa frequecircncia mensal resultando em interesses sobre infor-maccedilotildees relacionadas a esse estabelecimento

∙ Costuma chegar cedo ou evitar os horaacuterios de pico para evitar filas nos locais

∙ Carro e transporte coletivo satildeo os principais meios de transporte

∙ Se deslocaria para um estabelecimento semelhante que possui menos fila contanto queeste fique num raio de 2km de distacircncia

32 DESENVOLVIMENTO DO PROJETO 43

42 Projeto do AplicativoO grupo comeccedilou o projeto com o preenchimento do diagrama Canvas(figura 412) apre-

sentado na Seccedilatildeo 21 Desse modo foi adquirida uma ideia mais consistente e uma base paracomeccedilar a implementaccedilatildeo

Figura 412 Diagrama Canvas preenchido pelo grupo

Com o modelo de negoacutecios definido e com base no resultado da pesquisa com o usuaacuterioapresentada na seccedilatildeo seguinte foram aplicadas pequenas mudanccedilas no projeto para melhoradequar-se agraves necessidades e ao perfil do puacuteblico alvo

Para o desenvolvimento foi utilizado um meacutetodo aacutegil baseado no scrum com sprints de3 a 4 semanas devido agrave disponibilidade dos membros do grupo Os encontros natildeo eram diaacute-rios como recomendado para o meacutetodo scrum tambeacutem em razatildeo da disponibilidade Haviamstand ups (discussotildees raacutepidas no comeccedilo de cada encontro) e retrospectivas ao final de cadasprint A cada sprint eram selecionadas histoacuterias e tarefas para serem executadas e caso natildeofossem concluiacutedas ao final da iteraccedilatildeo eram inseridas ao backlog e feitas no sprint seguinte

43 Aplicaccedilatildeo dos meacutetodos de caacutelculo de espera

431 Aplicando a meacutedia por periacuteodo

Aplicando-se no trecho abaixo a teacutecnica desenvolvida na Seccedilatildeo 242 para uma queryrealizada no dia 19082016 no intervalo de 2040 - 2055 analisa-se a semana anterior quepossua tais intervalos Assim o saacutebado dia 06082016 seraacute selecionado

43 APLICACcedilAtildeO DOS MEacuteTODOS DE CAacuteLCULO DE ESPERA 33

Entrada Qtd Pessoas Notificado Espera

6816 2043 2 862016 2053 1606

6816 2044 2 862016 2055 674

6816 2048 2 862016 2056 528

6816 2048 2 862016 2057 520

6816 2051 2 862016 2107 1118

6816 2051 3 862016 2110 1305

6816 2052 2 862016 2110 1273

6816 2052 2 862016 2111 1179

6816 2053 2 862016 2112 1217

6816 2053 2 NULL 59

6816 2054 3 862016 2119 1541

6816 2055 2 862016 2117 1444

6816 2055 2 862016 2120 1570

6816 2055 2 862016 2122 1613

Tabela 41 Trecho do dia 06082016 entre os horaacuterios das 2043 agraves 2055 um intervalo de 12minutos retirado dos dados da empresa Get In

Com esses dados obteve-se a meacutedia de espera de 1080 segundos (18 minutos) a qualseria sugerida para o usuaacuterio com a busca e desvio padratildeo de 465144719 segundos (775 mi-nutos) Dentro desse intervalo tem-se como maacuteximo tempo de espera 1613 segundos (2688minutos) e como miacutenimo 59 segundos (1 minuto) Analisando-se os dados do dia 19082016no mesmo periacuteodo temos

34 DESENVOLVIMENTO DO PROJETO 43

Entrada Pessoas Notificado Espera Erro previsatildeo Erro p 2 pessoas

19816 2043 2 8192016 2051 544 -563 522

19816 2043 2 8192016 2052 605 -502 461

19816 2044 2 8192016 2056 723 -384 343

19816 2046 4 8192016 2119 1988 881 X

19816 2048 2 8192016 2102 919 188 147

19816 2051 2 8192016 2103 821 286 245

19816 2051 3 8192016 2108 1773 666 X

19816 2053 2 8192016 2110 1083 24 -17

19816 2053 2 8192016 2111 1105 2 -39

19816 2053 2 8192016 2112 1169 62 -103

19816 2055 2 8192016 2114 1447 340 -381

Tabela 42 Trecho do dia 19082016 entre os horaacuterios das 2043 agraves 2055um intervalo de 12minutos retirado dos dados da empresa Get In

Ou seja se um grupo chegasse dentro desse periacuteodo e a previsatildeo dada fosse a meacutediaobtida anteriormente o erro calculado pela diferenccedila entre o tempo sugerido e o real tempode espera estaria no intervalo de 15 minutos para menos ou 8 minutos para mais Sendoesse um valor aceitaacutevel

Um proacuteximo passo eacute a restriccedilatildeo dos registros a grupos com 2 integrantes Com tal restri-ccedilatildeo a previsatildeo de espera eacute de 1066 segundos (1776 minutos) Aplicando essa nova meacutedia aosregistros com 2 integrantes do dia 19082016 obteacutem-se um erro (Coluna 6 - erro previsatildeopara 2 pessoas) menor do que o anterior O intervalo do erro calculado neste caso seria de 522segundos (87 minutos) para mais e 381 segundos (635 minutos) para menos Este resultadoeacute ainda mais favoraacutevel mostrando que a inclusatildeo de mais filtros para o caacutelculo da previsatildeomelhorou o tempo previsto

432 Aplicando teoria das filas

A teoria das filas (Seccedilatildeo 242) eacute uma ferramenta muito completa que calcula muitos dadosuacuteteis para a previsatildeo de espera Contudo por conta da necessidade de informaccedilotildees sobreo tempo de atendimento a qual natildeo estaacute contida no banco utilizado esta teoria natildeo podeser aplicada neste caso Poreacutem esse dado pode ter um valor assumido para que a utilizaccedilatildeodessa teoria fosse possiacutevel entretanto a sua precisatildeo ficaria comprometida e imprevisiacutevel

433 Aplicando redes neurais

Para aplicar o que foi estudado na Seccedilatildeo 242 foi executado o software com o mecircs deAgosto como teste o mecircs de Setembro como treino e o limite do erro quadraacutetico como 001 eobteve-se a tabela presente no apecircndice B Na tabela podemos ver o tempo de fila esperadoou seja o tempo contido na tabela do mecircs de Setembro o tempo que o algoritmo deu comoresposta baseado no mecircs de Agosto e o erro entre eles respectivamente

44 DEFINICcedilAtildeO DA INTERFACE DO APLICATIVO 35

Figura 413 Software Multiple Back-Propagation com a configuraccedilatildeo escolhida para os dadosdisponiacuteveis

Mesmo o erro se mantendo em 0018 os dados obtidos possuem um erro padratildeo de 15minutos Se mais dados forem adicionados o criteacuterio de parada pode ser atingido e assimuma previsatildeo melhor pode ser alcanccedilada

434 Conclusatildeo sobre os meacutetodos estudados

Dentre todas as possibilidades estudadas visualizamos na meacutedia por periacuteodo a melhoropccedilatildeo assumindo os dados disponiacuteveis para teste Se mais paracircmetros fossem fornecidoscomo o tempo de atendimento a teoria das filas seria uma boa opccedilatildeo para fornecer a pre-visatildeo de espera E se mais dados estivessem disponiacuteveis as redes neurais conseguiriam umaaproximaccedilatildeo melhor e assim seria uma boa opccedilatildeo tambeacutem

44 Definiccedilatildeo da Interface do aplicativoComo um primeiro protoacutetipo foi desenvolvida uma interface simples que tinha como tela

de iniacutecio um mapa com um campo para buscas na parte superior

36 DESENVOLVIMENTO DO PROJETO 44

Figura 414 Fluxo de telas do primeiro protoacutetipo

Ao efetuar uma busca por algum estabelecimento uma tela mostrando o tempo de esperaaproximado da fila no local era exibida junto com bototildees que permitiam selecionar o meiode transporte visualizar outras opccedilotildees ou dar iniacutecio a rota ateacute o local desejado Tambeacutemhavia uma notificaccedilatildeo para quando a pessoa estivesse parada proacutexima a um restaurantecadastrado que direcionaria o usuaacuterio a uma tela com um cronocircmetro do tempo de esperana fila

Para testar essa visualizaccedilatildeo escolhemos algumas pessoas e realizamos um teste deusabilidade[22] este teste eacute feito da seguinte forma

44 DEFINICcedilAtildeO DA INTERFACE DO APLICATIVO 37

Uma contextualizaccedilatildeo eacute feita para o voluntaacuterio e entatildeo uma tarefa eacute passada para sercompletada Os integrantes do grupo observam dificuldades enfrentadas pelo entrevistado etomam notas Esse teste eacute repetido algumas vezes e seu resultado eacute coletado para avaliaccedilatildeoe modificaccedilatildeo das funcionalidades

Figura 415 Tela de detalhes de um restaurante(segunda versatildeo)

Notou-se que algumas funcionalidadespareceram confusas e natildeo intuitivas porexemplo natildeo ficou claro se o tempo mos-trado era de trajeto ou de espera na filanem qual era o meio de transporte utili-zado

Logo esse protoacutetipo foi reformuladocom o intuito de melhorar a experi-ecircncia do usuaacuterio com o nosso aplica-tivo

Foram colocados aleacutem do tempo deespera da fila o tempo que o usuaacuteriolevaria para chegar ateacute o local selecio-nado (conforme o tipo de transporte es-colhido) e a quantidade estimada de pes-soas na fila O tempo total (espera so-mado ao tempo de deslocamento) ga-nhou destaque entre as informaccedilotildees doestabelecimento e o botatildeo que direcionao usuaacuterio ao trajeto ficou mais especiacute-fico

Tambeacutem cogitou-se a possibilidade deadicionar login e um perfil de usuaacuteriojunto com uma lista de restaurantes favo-ritos

O fluxo das telas deste novo protoacutetipo ficou como mostra o esquema a seguir

38 DESENVOLVIMENTO DO PROJETO 44

Figura 416 Fluxo de telas do segundo protoacutetipo

44 DEFINICcedilAtildeO DA INTERFACE DO APLICATIVO 39

Figura 417 Tela de detalhes de um restaurante(terceira versatildeo)

Apoacutes outras avaliaccedilotildees mais algumaspequenas alteraccedilotildees foram realizadas nainterface Foi decidido que seria inviaacute-vel estimar o nuacutemero de pessoas nafila entatildeo essa funcionalidade foi remo-vida

Notificaccedilotildees foram adicionadas paraquando o usuaacuterio estiver parado na aacutereado restaurante para que ele possa con-tribuir com informaccedilotildees sobre a fila quepegou aleacutem de um botatildeo de contri-buiccedilatildeo ter sido inserido na tela ini-cial

40 DESENVOLVIMENTO DO PROJETO 45

O fluxo de telas do aplicativo atual ficou da seguinte forma

Figura 418 Fluxo de telas do terceiro protoacutetipo

46 EXPLICACcedilAtildeO DAS FUNCIONALIDADES 41

45 Explicaccedilatildeo das funcionalidadesEsta seccedilatildeo explica as funcionalidades do produto utilizando a figura 418

A tela inicial (3) exibe uma lista de restaurantes incluindo seus respectivos tempos detrajeto e tempo de espera na fila Ao clicar no botatildeo ldquo+rdquo uma caixa de diaacutelogo eacute aberta(4) onde eacute possiacutevel adicionar o tempo que o usuaacuterio esperou na fila Primeiro eacute escolhido orestaurante depois a data e hora que a pessoa chegou na fila e por fim o tempo de esperaem minutos Ao tocar em ldquoEnviar Feedback rdquo os dados satildeo incluiacutedos no banco de dados eatualizados para os outros usuaacuterios Assim eacute apicado o conceito de Crowdsourcing no apli-cativo

Ao tocar em um item da lista de restaurantes seraacute aberta a tela de detalhes de um res-taurante (5) na qual eacute possiacutevel ver com mais clareza os tempos de trajeto e espera o tempototal o endereccedilo do estabelecimento e um pequeno mapa centrado no local Pressionandoo botatildeo ldquoDireccedilotildeesrdquo o usuaacuterio seraacute redirecionado ao aplicativo de mapas de sua preferecircnciano caso do exemplo (8) o Google Maps jaacute traccedilando a rota da localizaccedilatildeo do usuaacuterio para oestabelecimento em questatildeo

Novamente na tela inicial tocando no iacutecone de lupa eacute possiacutevel realizar uma busca digi-tando o nome do estabelecimento na caixa de texto a qual exibe sugestotildees dependendo doque foi digitado Ao clicar em um dos resultados da busca o usuaacuterio eacute novamente direcionadopara a tela de detalhes do restaurante (5)

Tambeacutem eacute possiacutevel tocar no iacutecone de mapa na tela inicial onde seraacute mostrado um mapacentrado na localizaccedilatildeo do usuaacuterio

Ao ficar parado por um tempo em um mesmo local proacuteximo a um estabelecimentocadastrado o usuaacuterio eacute perguntado em uma notificaccedilatildeo quanto tempo ele permaneceu nafila Ao tocar na notificaccedilatildeo a caixa de diaacutelogo para feedback do usuaacuterio seraacute aberta (4) jaacutecom o restaurante preenchido e apoacutes o feedback a janela seraacute fechada e os dados enviadosao banco de dados

46 Implementaccedilatildeo do banco de dadosO banco de dados do aplicativo foi modelado e populado em forma de aacutervore (Fi-

gura 419) de forma a facilitar o acesso aos dados necessaacuterios ao aplicativo No primeironiacutevel estatildeo os ids dos restaurantes Cada id de restaurante guarda a localizaccedilatildeo (latitudelongitude) do restaurante o nome o endereccedilo e um objeto fila O objeto fila guarda todos osdias da semana (domingo a saacutebado) e cada dia da semana possui 24 campos um para cadahora do dia Cada hora possui o tempo meacutedio de espera da fila naquela hora e um peso paraesse tempo O peso eacute um valor que aumenta de acordo com o nuacutemero de feedbacks dadospara que o novo valor do tempo meacutedio seja calculado de forma consistente

Modelamos o banco de dados de uma forma que respeitasse uma hierarquia de dados

42 DESENVOLVIMENTO DO PROJETO 46

Figura 419 Aacutervore que ilustra a organizaccedilatildeo de um restaurante no banco de dados

Com o banco de dados jaacute populado o aplicativo faz consultas e atualizaccedilotildees de dadosConsultas satildeo feitas ao criar a tela de listagem de restaurantes e de detalhes de um restau-rante consultado As atualizaccedilotildees satildeo feitas quando o usuaacuterio manda o feedback de tempo deespera em um estabelecimento em determinado horaacuterio o aplicativo calcula a nova meacutedia eatualiza o campo do respectivo horaacuterio

Capiacutetulo 5

Conclusatildeo

Ao longo dos capiacutetulos deste trabalho pocircde-se acompanhar todo o processo de criaccedilatildeo edesenvolvimento do aplicativo que apoacutes finalizado foi batizado com o nome Queue

Comeccedilando com um problema para o qual o grupo almejava oferecer uma soluccedilatildeoacabou-se por adentrar-se um pouco no campo da Estatiacutestica e estudar diversas metodo-logias que poderiam ser uacuteteis para fornecer um caacutelculo de previsatildeo de espera meacutedia porperiacuteodo aplicaccedilatildeo da teoria das filas e utilizaccedilatildeo de redes neurais

Atraveacutes de uma parceria com a empresa GetIn obteve-se acesso a uma grande quantidadede dados e foi possiacutevel utilizaacute-los em anaacutelises feitas nas metodologias escolhidas conseguindoassim resultados relevantes Por meio destes foi feita a escolha de um dos meacutetodos para ocaacutelculo da previsatildeo de filas a meacutedia por periacuteodo

Aleacutem desses estudos ao longo do ano o grupo aprendeu a desenvolver para a plata-forma Android sobre a qual nenhum dos integrantes tinha conhecimento preacutevio Tambeacutemfoi possiacutevel aprender e utilizar a metodologia aacutegil com Scrum para guiar o processo de de-senvolvimento

Ao fim do ciclo de desenvolvimento conseguiu-se entregar um aplicativo em funciona-mento que fornece a previsatildeo de espera no instante da consulta de estabelecimentos cadas-trados no banco de dados armazenado na nuvem

Na versatildeo atual do aplicativo natildeo foi implementado um sistema para o cadastro de novosestabelecimentos Isso soacute eacute possiacutevel atraveacutes da inserccedilatildeo direta no banco de dados atraveacutes dainterface fornecida pelo console do Firebase Atualmente estatildeo cadastrados 5 restaurantesos quais foram visitados durante o desenvolvimento do projeto Para que o cadastro deestabelecimentos escale seria necessaacuterio a implementaccedilatildeo de uma funcionalidade que permitaao usuaacuterio adicionar novos estabelecimentos a partir de locais disponiacuteveis na API de locaisda Google

43

45

46 APEcircNDICE A

Apecircndice A

Dados coletados

Figura A1 Dados de tempo de espera para grupos de tamanhos variados para cada horaacuterio e emcada dia da semana obtidos em entrevista em restaurantes Outback Steakhouse Shopping Uniatildeo nomecircs de outubro

Referecircncias Bibliograacuteficas

[1] Backpropagation httpmbpsourceforgenet Accesso em Janeiro 2017 14

[2] Bitbucket httpsbitbucketorgproduct Accesso em Dezembro 2016 19

[3] Crowdsourcing httpswwwmerriam-webstercomdictionarycrowdsourcing Ac-cesso em Novembro 2016 21

[4] Designing a survey httpwwwsciencebuddiesorgscience-fair-projectsproject_ideasSoc_surveyshtml Accesso em Outubro 2016 4 23

[5] Facebook httpswwwfacebookcom Accesso em Novembro 2016 24

[6] Firebase httpsfirebasegooglecom Accesso em Agosto 2016 20

[7] Getin app httpswwwgetinappcombrhomesao-paulo Accesso em Novembro2016 9

[8] Git 11 primeiros passos - sobre controle de versatildeo httpsgit-scmcombookpt-brv1Primeiros-passos-Sobre-Controle-de-Vers Accesso em Novembro 2016 19

[9] Google forms httpsdocsgooglecomforms Accesso em Novembro 2016 23

[10] Guia definitivo do project model canvas Project Builder 3

[11] Jsonorg introducing json httpwwwjsonorg Accesso em Novembro 2016 17

[12] Manifesto para desenvolvimento Aacutegil de software httpagilemanifestoorgisoptbrmanifestohtml Accesso em Novembro 2016 5

[13] Nosql httpsenwikipediaorgwikiNoSQL Accesso em Novembro 2016 20

[14] Outback steakhouse httpswwwoutbackcombrhome Accesso em Novembro 20169

[15] Restful api development with lumen microframework httpsbelitsoftcomlaravel-development-servicesapi-development Accesso em Novembro 2016 17

[16] Scrum httpswwwatlassiancomagilescrum Accesso em Novembro 2016 5

[17] Smartphone os market share 2016 q2 httpwwwidccomprodservsmartphone-os-market-sharejsp Accesso em Novembro 2016 15

[18] Smartphone os sales market share kantar worldpanel comtech httpwwwkantarworldpanelcomsmartphone-os-market-share Accesso em Novembro 2016 15

[19] Sourcetree httpswwwsourcetreeappcom Accesso em Dezembro 2016 19

47

48 REFEREcircNCIAS BIBLIOGRAacuteFICAS

[20] Sql httpsptkhanacademyorgcomputingcomputer-programmingsql Accesso emDezembro 2016 20

[21] Trello httpstrellocom Accesso em Novembro 2016 6

[22] Usability test httpsenwikipediaorgwikiUsability_testing Accesso em Novembro2016 36

[23] Versionone 2012 agile dev survey httpswwwversiononecompdf7th-Annual-State-of-Agile-Development-Surveypdf Accesso em Novembro 2016 5

[24] Waze httpswwwwazecom Accesso em Novembro 2016 1

[25] What is an open source httpsopensourcecomresourceswhat-open-source Accessoem Novembro 2016 15

[26] Xml tutorial httpwwww3schoolscomxml Accesso em Novembro 2016 17

[27] Paulo F Cabral dos Anjos Jr Aron Ifanger Maciel Christopher Silva de Paacutedua Com-posiccedilatildeo de carteiras de accedilotildees utilizando modelo de redes neurais artificiais e modelo derisco e retorno de Markowitz 2012 14

[28] Google Distance matrix api documentation httpsdevelopersgooglecommapsdocumentationdistance-matrix Accesso em Novembro 2016 17

[29] Alan Klement Designing features using job stories httpsblogintercomcomusing-job-stories-design-features-ui-ux Accesso em Novembro 2016 6

[30] Azmat Nafees Queuing theory and its application analysis of the sales checkout opera-tion in ica supermarket httpwwwstatisticsduseessaysD07ENafeespdf Accessoem Novembro 2016 12

[31] Eric Ries A Startup Enxuta Lua de papel primeira ediccedilatildeo edition 2012 3

  • Introduccedilatildeo
    • Motivaccedilatildeo
    • Trabalho Proposto
    • Estrutura da monografia
      • Estudos Preliminares
        • Desenvolvimento de Startups
          • Desenvolvimento de Questionaacuterios
            • Metodologia Aacutegil
            • Jobs to be done
            • Caacutelculo da previsatildeo do tempo de espera na fila
              • Descriccedilatildeo do problema
              • Meacutetodos de caacutelculo da espera
                  • Tecnologias utilizadas
                    • O sistema Android
                      • Organizaccedilatildeo de uma aplicaccedilatildeo Android
                        • JSON
                        • Google APIs
                        • Localizaccedilatildeo do Usuaacuterio
                        • Controle de Versatildeo
                        • Banco de dados
                          • Firebase
                            • Crowdsourcing
                              • Desenvolvimento do Projeto
                                • Pesquisa de Mercado
                                  • Pesquisa com o usuaacuterio
                                    • Projeto do Aplicativo
                                    • Aplicaccedilatildeo dos meacutetodos de caacutelculo de espera
                                      • Aplicando a meacutedia por periacuteodo
                                      • Aplicando teoria das filas
                                      • Aplicando redes neurais
                                      • Conclusatildeo sobre os meacutetodos estudados
                                        • Definiccedilatildeo da Interface do aplicativo
                                        • Explicaccedilatildeo das funcionalidades
                                        • Implementaccedilatildeo do banco de dados
                                          • Conclusatildeo
                                          • Dados coletados
                                          • Referecircncias Bibliograacuteficas

30 DESENVOLVIMENTO DO PROJETO 41

Questatildeo 10

Figura 49 Graacutefico em barras da distribuiccedilatildeo de sentimento do usuaacuterio em relaccedilatildeo a notificaccedilatildeode aplicativos

Questatildeo 11

Figura 410 Graacutefico em pizza da distribuiccedilatildeo de opiniatildeo do usuaacuterio sobre desabilitar notificaccedilotildeesem celular

42 PESQUISA DE MERCADO 31

Questatildeo 12

Figura 411 Graacutefico em pizza da distribuiccedilatildeo de opiniatildeo do usuaacuterio sobre habilitar GPS emcelular

A ideia inicial era poder usar o GPS para verificar a localizaccedilatildeo do usuaacuterio e enviarnotificaccedilotildees quando este estivesse parado nas proximidades de algum dos estabelecimentoscadastrados Para que essa funcionalidade possa existir eacute necessaacuterio que o aplicativo tenhaacesso agrave localizaccedilatildeo precisa da pessoa atraveacutes do GPS ou internet ateacute mesmo quando natildeoestiver aberto Aleacutem disso tambeacutem eacute necessaacuterio que as notificaccedilotildees estejam habilitadas parafinalizar esta interaccedilatildeo Entatildeo as perguntas 10 11 e 12 foram incluiacutedas no questionaacuterio Ob-servando as respostas foi possiacutevel verificar que 295 das pessoas que responderam deixamambas as funcionalidades habilitadas (GPS e notificaccedilotildees) Com isso pudemos prosseguircom essa ideia e tambeacutem pensar em possiacuteveis alternativas de interaccedilatildeo e engajamento como usuaacuterio

Por conta dessa pesquisa ter sido compartilhada atraveacutes das contas das redes sociais ecomunicadores dos componentes deste grupo sabe-se que este pode apresentar um resultadoviesado mas que mesmo assim natildeo deve ser desconsiderado e que muito ajudou a sanar asduacutevidas iniciaisComo resultado traccedilamos o perfil do entrevistado

∙ Faixa etaacuteria predominante entre 18 e 30 anos

∙ Possui sistema operacional Android (versotildees 4 5 e 6)

∙ Vai a restaurantes com certa frequecircncia mensal resultando em interesses sobre infor-maccedilotildees relacionadas a esse estabelecimento

∙ Costuma chegar cedo ou evitar os horaacuterios de pico para evitar filas nos locais

∙ Carro e transporte coletivo satildeo os principais meios de transporte

∙ Se deslocaria para um estabelecimento semelhante que possui menos fila contanto queeste fique num raio de 2km de distacircncia

32 DESENVOLVIMENTO DO PROJETO 43

42 Projeto do AplicativoO grupo comeccedilou o projeto com o preenchimento do diagrama Canvas(figura 412) apre-

sentado na Seccedilatildeo 21 Desse modo foi adquirida uma ideia mais consistente e uma base paracomeccedilar a implementaccedilatildeo

Figura 412 Diagrama Canvas preenchido pelo grupo

Com o modelo de negoacutecios definido e com base no resultado da pesquisa com o usuaacuterioapresentada na seccedilatildeo seguinte foram aplicadas pequenas mudanccedilas no projeto para melhoradequar-se agraves necessidades e ao perfil do puacuteblico alvo

Para o desenvolvimento foi utilizado um meacutetodo aacutegil baseado no scrum com sprints de3 a 4 semanas devido agrave disponibilidade dos membros do grupo Os encontros natildeo eram diaacute-rios como recomendado para o meacutetodo scrum tambeacutem em razatildeo da disponibilidade Haviamstand ups (discussotildees raacutepidas no comeccedilo de cada encontro) e retrospectivas ao final de cadasprint A cada sprint eram selecionadas histoacuterias e tarefas para serem executadas e caso natildeofossem concluiacutedas ao final da iteraccedilatildeo eram inseridas ao backlog e feitas no sprint seguinte

43 Aplicaccedilatildeo dos meacutetodos de caacutelculo de espera

431 Aplicando a meacutedia por periacuteodo

Aplicando-se no trecho abaixo a teacutecnica desenvolvida na Seccedilatildeo 242 para uma queryrealizada no dia 19082016 no intervalo de 2040 - 2055 analisa-se a semana anterior quepossua tais intervalos Assim o saacutebado dia 06082016 seraacute selecionado

43 APLICACcedilAtildeO DOS MEacuteTODOS DE CAacuteLCULO DE ESPERA 33

Entrada Qtd Pessoas Notificado Espera

6816 2043 2 862016 2053 1606

6816 2044 2 862016 2055 674

6816 2048 2 862016 2056 528

6816 2048 2 862016 2057 520

6816 2051 2 862016 2107 1118

6816 2051 3 862016 2110 1305

6816 2052 2 862016 2110 1273

6816 2052 2 862016 2111 1179

6816 2053 2 862016 2112 1217

6816 2053 2 NULL 59

6816 2054 3 862016 2119 1541

6816 2055 2 862016 2117 1444

6816 2055 2 862016 2120 1570

6816 2055 2 862016 2122 1613

Tabela 41 Trecho do dia 06082016 entre os horaacuterios das 2043 agraves 2055 um intervalo de 12minutos retirado dos dados da empresa Get In

Com esses dados obteve-se a meacutedia de espera de 1080 segundos (18 minutos) a qualseria sugerida para o usuaacuterio com a busca e desvio padratildeo de 465144719 segundos (775 mi-nutos) Dentro desse intervalo tem-se como maacuteximo tempo de espera 1613 segundos (2688minutos) e como miacutenimo 59 segundos (1 minuto) Analisando-se os dados do dia 19082016no mesmo periacuteodo temos

34 DESENVOLVIMENTO DO PROJETO 43

Entrada Pessoas Notificado Espera Erro previsatildeo Erro p 2 pessoas

19816 2043 2 8192016 2051 544 -563 522

19816 2043 2 8192016 2052 605 -502 461

19816 2044 2 8192016 2056 723 -384 343

19816 2046 4 8192016 2119 1988 881 X

19816 2048 2 8192016 2102 919 188 147

19816 2051 2 8192016 2103 821 286 245

19816 2051 3 8192016 2108 1773 666 X

19816 2053 2 8192016 2110 1083 24 -17

19816 2053 2 8192016 2111 1105 2 -39

19816 2053 2 8192016 2112 1169 62 -103

19816 2055 2 8192016 2114 1447 340 -381

Tabela 42 Trecho do dia 19082016 entre os horaacuterios das 2043 agraves 2055um intervalo de 12minutos retirado dos dados da empresa Get In

Ou seja se um grupo chegasse dentro desse periacuteodo e a previsatildeo dada fosse a meacutediaobtida anteriormente o erro calculado pela diferenccedila entre o tempo sugerido e o real tempode espera estaria no intervalo de 15 minutos para menos ou 8 minutos para mais Sendoesse um valor aceitaacutevel

Um proacuteximo passo eacute a restriccedilatildeo dos registros a grupos com 2 integrantes Com tal restri-ccedilatildeo a previsatildeo de espera eacute de 1066 segundos (1776 minutos) Aplicando essa nova meacutedia aosregistros com 2 integrantes do dia 19082016 obteacutem-se um erro (Coluna 6 - erro previsatildeopara 2 pessoas) menor do que o anterior O intervalo do erro calculado neste caso seria de 522segundos (87 minutos) para mais e 381 segundos (635 minutos) para menos Este resultadoeacute ainda mais favoraacutevel mostrando que a inclusatildeo de mais filtros para o caacutelculo da previsatildeomelhorou o tempo previsto

432 Aplicando teoria das filas

A teoria das filas (Seccedilatildeo 242) eacute uma ferramenta muito completa que calcula muitos dadosuacuteteis para a previsatildeo de espera Contudo por conta da necessidade de informaccedilotildees sobreo tempo de atendimento a qual natildeo estaacute contida no banco utilizado esta teoria natildeo podeser aplicada neste caso Poreacutem esse dado pode ter um valor assumido para que a utilizaccedilatildeodessa teoria fosse possiacutevel entretanto a sua precisatildeo ficaria comprometida e imprevisiacutevel

433 Aplicando redes neurais

Para aplicar o que foi estudado na Seccedilatildeo 242 foi executado o software com o mecircs deAgosto como teste o mecircs de Setembro como treino e o limite do erro quadraacutetico como 001 eobteve-se a tabela presente no apecircndice B Na tabela podemos ver o tempo de fila esperadoou seja o tempo contido na tabela do mecircs de Setembro o tempo que o algoritmo deu comoresposta baseado no mecircs de Agosto e o erro entre eles respectivamente

44 DEFINICcedilAtildeO DA INTERFACE DO APLICATIVO 35

Figura 413 Software Multiple Back-Propagation com a configuraccedilatildeo escolhida para os dadosdisponiacuteveis

Mesmo o erro se mantendo em 0018 os dados obtidos possuem um erro padratildeo de 15minutos Se mais dados forem adicionados o criteacuterio de parada pode ser atingido e assimuma previsatildeo melhor pode ser alcanccedilada

434 Conclusatildeo sobre os meacutetodos estudados

Dentre todas as possibilidades estudadas visualizamos na meacutedia por periacuteodo a melhoropccedilatildeo assumindo os dados disponiacuteveis para teste Se mais paracircmetros fossem fornecidoscomo o tempo de atendimento a teoria das filas seria uma boa opccedilatildeo para fornecer a pre-visatildeo de espera E se mais dados estivessem disponiacuteveis as redes neurais conseguiriam umaaproximaccedilatildeo melhor e assim seria uma boa opccedilatildeo tambeacutem

44 Definiccedilatildeo da Interface do aplicativoComo um primeiro protoacutetipo foi desenvolvida uma interface simples que tinha como tela

de iniacutecio um mapa com um campo para buscas na parte superior

36 DESENVOLVIMENTO DO PROJETO 44

Figura 414 Fluxo de telas do primeiro protoacutetipo

Ao efetuar uma busca por algum estabelecimento uma tela mostrando o tempo de esperaaproximado da fila no local era exibida junto com bototildees que permitiam selecionar o meiode transporte visualizar outras opccedilotildees ou dar iniacutecio a rota ateacute o local desejado Tambeacutemhavia uma notificaccedilatildeo para quando a pessoa estivesse parada proacutexima a um restaurantecadastrado que direcionaria o usuaacuterio a uma tela com um cronocircmetro do tempo de esperana fila

Para testar essa visualizaccedilatildeo escolhemos algumas pessoas e realizamos um teste deusabilidade[22] este teste eacute feito da seguinte forma

44 DEFINICcedilAtildeO DA INTERFACE DO APLICATIVO 37

Uma contextualizaccedilatildeo eacute feita para o voluntaacuterio e entatildeo uma tarefa eacute passada para sercompletada Os integrantes do grupo observam dificuldades enfrentadas pelo entrevistado etomam notas Esse teste eacute repetido algumas vezes e seu resultado eacute coletado para avaliaccedilatildeoe modificaccedilatildeo das funcionalidades

Figura 415 Tela de detalhes de um restaurante(segunda versatildeo)

Notou-se que algumas funcionalidadespareceram confusas e natildeo intuitivas porexemplo natildeo ficou claro se o tempo mos-trado era de trajeto ou de espera na filanem qual era o meio de transporte utili-zado

Logo esse protoacutetipo foi reformuladocom o intuito de melhorar a experi-ecircncia do usuaacuterio com o nosso aplica-tivo

Foram colocados aleacutem do tempo deespera da fila o tempo que o usuaacuteriolevaria para chegar ateacute o local selecio-nado (conforme o tipo de transporte es-colhido) e a quantidade estimada de pes-soas na fila O tempo total (espera so-mado ao tempo de deslocamento) ga-nhou destaque entre as informaccedilotildees doestabelecimento e o botatildeo que direcionao usuaacuterio ao trajeto ficou mais especiacute-fico

Tambeacutem cogitou-se a possibilidade deadicionar login e um perfil de usuaacuteriojunto com uma lista de restaurantes favo-ritos

O fluxo das telas deste novo protoacutetipo ficou como mostra o esquema a seguir

38 DESENVOLVIMENTO DO PROJETO 44

Figura 416 Fluxo de telas do segundo protoacutetipo

44 DEFINICcedilAtildeO DA INTERFACE DO APLICATIVO 39

Figura 417 Tela de detalhes de um restaurante(terceira versatildeo)

Apoacutes outras avaliaccedilotildees mais algumaspequenas alteraccedilotildees foram realizadas nainterface Foi decidido que seria inviaacute-vel estimar o nuacutemero de pessoas nafila entatildeo essa funcionalidade foi remo-vida

Notificaccedilotildees foram adicionadas paraquando o usuaacuterio estiver parado na aacutereado restaurante para que ele possa con-tribuir com informaccedilotildees sobre a fila quepegou aleacutem de um botatildeo de contri-buiccedilatildeo ter sido inserido na tela ini-cial

40 DESENVOLVIMENTO DO PROJETO 45

O fluxo de telas do aplicativo atual ficou da seguinte forma

Figura 418 Fluxo de telas do terceiro protoacutetipo

46 EXPLICACcedilAtildeO DAS FUNCIONALIDADES 41

45 Explicaccedilatildeo das funcionalidadesEsta seccedilatildeo explica as funcionalidades do produto utilizando a figura 418

A tela inicial (3) exibe uma lista de restaurantes incluindo seus respectivos tempos detrajeto e tempo de espera na fila Ao clicar no botatildeo ldquo+rdquo uma caixa de diaacutelogo eacute aberta(4) onde eacute possiacutevel adicionar o tempo que o usuaacuterio esperou na fila Primeiro eacute escolhido orestaurante depois a data e hora que a pessoa chegou na fila e por fim o tempo de esperaem minutos Ao tocar em ldquoEnviar Feedback rdquo os dados satildeo incluiacutedos no banco de dados eatualizados para os outros usuaacuterios Assim eacute apicado o conceito de Crowdsourcing no apli-cativo

Ao tocar em um item da lista de restaurantes seraacute aberta a tela de detalhes de um res-taurante (5) na qual eacute possiacutevel ver com mais clareza os tempos de trajeto e espera o tempototal o endereccedilo do estabelecimento e um pequeno mapa centrado no local Pressionandoo botatildeo ldquoDireccedilotildeesrdquo o usuaacuterio seraacute redirecionado ao aplicativo de mapas de sua preferecircnciano caso do exemplo (8) o Google Maps jaacute traccedilando a rota da localizaccedilatildeo do usuaacuterio para oestabelecimento em questatildeo

Novamente na tela inicial tocando no iacutecone de lupa eacute possiacutevel realizar uma busca digi-tando o nome do estabelecimento na caixa de texto a qual exibe sugestotildees dependendo doque foi digitado Ao clicar em um dos resultados da busca o usuaacuterio eacute novamente direcionadopara a tela de detalhes do restaurante (5)

Tambeacutem eacute possiacutevel tocar no iacutecone de mapa na tela inicial onde seraacute mostrado um mapacentrado na localizaccedilatildeo do usuaacuterio

Ao ficar parado por um tempo em um mesmo local proacuteximo a um estabelecimentocadastrado o usuaacuterio eacute perguntado em uma notificaccedilatildeo quanto tempo ele permaneceu nafila Ao tocar na notificaccedilatildeo a caixa de diaacutelogo para feedback do usuaacuterio seraacute aberta (4) jaacutecom o restaurante preenchido e apoacutes o feedback a janela seraacute fechada e os dados enviadosao banco de dados

46 Implementaccedilatildeo do banco de dadosO banco de dados do aplicativo foi modelado e populado em forma de aacutervore (Fi-

gura 419) de forma a facilitar o acesso aos dados necessaacuterios ao aplicativo No primeironiacutevel estatildeo os ids dos restaurantes Cada id de restaurante guarda a localizaccedilatildeo (latitudelongitude) do restaurante o nome o endereccedilo e um objeto fila O objeto fila guarda todos osdias da semana (domingo a saacutebado) e cada dia da semana possui 24 campos um para cadahora do dia Cada hora possui o tempo meacutedio de espera da fila naquela hora e um peso paraesse tempo O peso eacute um valor que aumenta de acordo com o nuacutemero de feedbacks dadospara que o novo valor do tempo meacutedio seja calculado de forma consistente

Modelamos o banco de dados de uma forma que respeitasse uma hierarquia de dados

42 DESENVOLVIMENTO DO PROJETO 46

Figura 419 Aacutervore que ilustra a organizaccedilatildeo de um restaurante no banco de dados

Com o banco de dados jaacute populado o aplicativo faz consultas e atualizaccedilotildees de dadosConsultas satildeo feitas ao criar a tela de listagem de restaurantes e de detalhes de um restau-rante consultado As atualizaccedilotildees satildeo feitas quando o usuaacuterio manda o feedback de tempo deespera em um estabelecimento em determinado horaacuterio o aplicativo calcula a nova meacutedia eatualiza o campo do respectivo horaacuterio

Capiacutetulo 5

Conclusatildeo

Ao longo dos capiacutetulos deste trabalho pocircde-se acompanhar todo o processo de criaccedilatildeo edesenvolvimento do aplicativo que apoacutes finalizado foi batizado com o nome Queue

Comeccedilando com um problema para o qual o grupo almejava oferecer uma soluccedilatildeoacabou-se por adentrar-se um pouco no campo da Estatiacutestica e estudar diversas metodo-logias que poderiam ser uacuteteis para fornecer um caacutelculo de previsatildeo de espera meacutedia porperiacuteodo aplicaccedilatildeo da teoria das filas e utilizaccedilatildeo de redes neurais

Atraveacutes de uma parceria com a empresa GetIn obteve-se acesso a uma grande quantidadede dados e foi possiacutevel utilizaacute-los em anaacutelises feitas nas metodologias escolhidas conseguindoassim resultados relevantes Por meio destes foi feita a escolha de um dos meacutetodos para ocaacutelculo da previsatildeo de filas a meacutedia por periacuteodo

Aleacutem desses estudos ao longo do ano o grupo aprendeu a desenvolver para a plata-forma Android sobre a qual nenhum dos integrantes tinha conhecimento preacutevio Tambeacutemfoi possiacutevel aprender e utilizar a metodologia aacutegil com Scrum para guiar o processo de de-senvolvimento

Ao fim do ciclo de desenvolvimento conseguiu-se entregar um aplicativo em funciona-mento que fornece a previsatildeo de espera no instante da consulta de estabelecimentos cadas-trados no banco de dados armazenado na nuvem

Na versatildeo atual do aplicativo natildeo foi implementado um sistema para o cadastro de novosestabelecimentos Isso soacute eacute possiacutevel atraveacutes da inserccedilatildeo direta no banco de dados atraveacutes dainterface fornecida pelo console do Firebase Atualmente estatildeo cadastrados 5 restaurantesos quais foram visitados durante o desenvolvimento do projeto Para que o cadastro deestabelecimentos escale seria necessaacuterio a implementaccedilatildeo de uma funcionalidade que permitaao usuaacuterio adicionar novos estabelecimentos a partir de locais disponiacuteveis na API de locaisda Google

43

45

46 APEcircNDICE A

Apecircndice A

Dados coletados

Figura A1 Dados de tempo de espera para grupos de tamanhos variados para cada horaacuterio e emcada dia da semana obtidos em entrevista em restaurantes Outback Steakhouse Shopping Uniatildeo nomecircs de outubro

Referecircncias Bibliograacuteficas

[1] Backpropagation httpmbpsourceforgenet Accesso em Janeiro 2017 14

[2] Bitbucket httpsbitbucketorgproduct Accesso em Dezembro 2016 19

[3] Crowdsourcing httpswwwmerriam-webstercomdictionarycrowdsourcing Ac-cesso em Novembro 2016 21

[4] Designing a survey httpwwwsciencebuddiesorgscience-fair-projectsproject_ideasSoc_surveyshtml Accesso em Outubro 2016 4 23

[5] Facebook httpswwwfacebookcom Accesso em Novembro 2016 24

[6] Firebase httpsfirebasegooglecom Accesso em Agosto 2016 20

[7] Getin app httpswwwgetinappcombrhomesao-paulo Accesso em Novembro2016 9

[8] Git 11 primeiros passos - sobre controle de versatildeo httpsgit-scmcombookpt-brv1Primeiros-passos-Sobre-Controle-de-Vers Accesso em Novembro 2016 19

[9] Google forms httpsdocsgooglecomforms Accesso em Novembro 2016 23

[10] Guia definitivo do project model canvas Project Builder 3

[11] Jsonorg introducing json httpwwwjsonorg Accesso em Novembro 2016 17

[12] Manifesto para desenvolvimento Aacutegil de software httpagilemanifestoorgisoptbrmanifestohtml Accesso em Novembro 2016 5

[13] Nosql httpsenwikipediaorgwikiNoSQL Accesso em Novembro 2016 20

[14] Outback steakhouse httpswwwoutbackcombrhome Accesso em Novembro 20169

[15] Restful api development with lumen microframework httpsbelitsoftcomlaravel-development-servicesapi-development Accesso em Novembro 2016 17

[16] Scrum httpswwwatlassiancomagilescrum Accesso em Novembro 2016 5

[17] Smartphone os market share 2016 q2 httpwwwidccomprodservsmartphone-os-market-sharejsp Accesso em Novembro 2016 15

[18] Smartphone os sales market share kantar worldpanel comtech httpwwwkantarworldpanelcomsmartphone-os-market-share Accesso em Novembro 2016 15

[19] Sourcetree httpswwwsourcetreeappcom Accesso em Dezembro 2016 19

47

48 REFEREcircNCIAS BIBLIOGRAacuteFICAS

[20] Sql httpsptkhanacademyorgcomputingcomputer-programmingsql Accesso emDezembro 2016 20

[21] Trello httpstrellocom Accesso em Novembro 2016 6

[22] Usability test httpsenwikipediaorgwikiUsability_testing Accesso em Novembro2016 36

[23] Versionone 2012 agile dev survey httpswwwversiononecompdf7th-Annual-State-of-Agile-Development-Surveypdf Accesso em Novembro 2016 5

[24] Waze httpswwwwazecom Accesso em Novembro 2016 1

[25] What is an open source httpsopensourcecomresourceswhat-open-source Accessoem Novembro 2016 15

[26] Xml tutorial httpwwww3schoolscomxml Accesso em Novembro 2016 17

[27] Paulo F Cabral dos Anjos Jr Aron Ifanger Maciel Christopher Silva de Paacutedua Com-posiccedilatildeo de carteiras de accedilotildees utilizando modelo de redes neurais artificiais e modelo derisco e retorno de Markowitz 2012 14

[28] Google Distance matrix api documentation httpsdevelopersgooglecommapsdocumentationdistance-matrix Accesso em Novembro 2016 17

[29] Alan Klement Designing features using job stories httpsblogintercomcomusing-job-stories-design-features-ui-ux Accesso em Novembro 2016 6

[30] Azmat Nafees Queuing theory and its application analysis of the sales checkout opera-tion in ica supermarket httpwwwstatisticsduseessaysD07ENafeespdf Accessoem Novembro 2016 12

[31] Eric Ries A Startup Enxuta Lua de papel primeira ediccedilatildeo edition 2012 3

  • Introduccedilatildeo
    • Motivaccedilatildeo
    • Trabalho Proposto
    • Estrutura da monografia
      • Estudos Preliminares
        • Desenvolvimento de Startups
          • Desenvolvimento de Questionaacuterios
            • Metodologia Aacutegil
            • Jobs to be done
            • Caacutelculo da previsatildeo do tempo de espera na fila
              • Descriccedilatildeo do problema
              • Meacutetodos de caacutelculo da espera
                  • Tecnologias utilizadas
                    • O sistema Android
                      • Organizaccedilatildeo de uma aplicaccedilatildeo Android
                        • JSON
                        • Google APIs
                        • Localizaccedilatildeo do Usuaacuterio
                        • Controle de Versatildeo
                        • Banco de dados
                          • Firebase
                            • Crowdsourcing
                              • Desenvolvimento do Projeto
                                • Pesquisa de Mercado
                                  • Pesquisa com o usuaacuterio
                                    • Projeto do Aplicativo
                                    • Aplicaccedilatildeo dos meacutetodos de caacutelculo de espera
                                      • Aplicando a meacutedia por periacuteodo
                                      • Aplicando teoria das filas
                                      • Aplicando redes neurais
                                      • Conclusatildeo sobre os meacutetodos estudados
                                        • Definiccedilatildeo da Interface do aplicativo
                                        • Explicaccedilatildeo das funcionalidades
                                        • Implementaccedilatildeo do banco de dados
                                          • Conclusatildeo
                                          • Dados coletados
                                          • Referecircncias Bibliograacuteficas

42 PESQUISA DE MERCADO 31

Questatildeo 12

Figura 411 Graacutefico em pizza da distribuiccedilatildeo de opiniatildeo do usuaacuterio sobre habilitar GPS emcelular

A ideia inicial era poder usar o GPS para verificar a localizaccedilatildeo do usuaacuterio e enviarnotificaccedilotildees quando este estivesse parado nas proximidades de algum dos estabelecimentoscadastrados Para que essa funcionalidade possa existir eacute necessaacuterio que o aplicativo tenhaacesso agrave localizaccedilatildeo precisa da pessoa atraveacutes do GPS ou internet ateacute mesmo quando natildeoestiver aberto Aleacutem disso tambeacutem eacute necessaacuterio que as notificaccedilotildees estejam habilitadas parafinalizar esta interaccedilatildeo Entatildeo as perguntas 10 11 e 12 foram incluiacutedas no questionaacuterio Ob-servando as respostas foi possiacutevel verificar que 295 das pessoas que responderam deixamambas as funcionalidades habilitadas (GPS e notificaccedilotildees) Com isso pudemos prosseguircom essa ideia e tambeacutem pensar em possiacuteveis alternativas de interaccedilatildeo e engajamento como usuaacuterio

Por conta dessa pesquisa ter sido compartilhada atraveacutes das contas das redes sociais ecomunicadores dos componentes deste grupo sabe-se que este pode apresentar um resultadoviesado mas que mesmo assim natildeo deve ser desconsiderado e que muito ajudou a sanar asduacutevidas iniciaisComo resultado traccedilamos o perfil do entrevistado

∙ Faixa etaacuteria predominante entre 18 e 30 anos

∙ Possui sistema operacional Android (versotildees 4 5 e 6)

∙ Vai a restaurantes com certa frequecircncia mensal resultando em interesses sobre infor-maccedilotildees relacionadas a esse estabelecimento

∙ Costuma chegar cedo ou evitar os horaacuterios de pico para evitar filas nos locais

∙ Carro e transporte coletivo satildeo os principais meios de transporte

∙ Se deslocaria para um estabelecimento semelhante que possui menos fila contanto queeste fique num raio de 2km de distacircncia

32 DESENVOLVIMENTO DO PROJETO 43

42 Projeto do AplicativoO grupo comeccedilou o projeto com o preenchimento do diagrama Canvas(figura 412) apre-

sentado na Seccedilatildeo 21 Desse modo foi adquirida uma ideia mais consistente e uma base paracomeccedilar a implementaccedilatildeo

Figura 412 Diagrama Canvas preenchido pelo grupo

Com o modelo de negoacutecios definido e com base no resultado da pesquisa com o usuaacuterioapresentada na seccedilatildeo seguinte foram aplicadas pequenas mudanccedilas no projeto para melhoradequar-se agraves necessidades e ao perfil do puacuteblico alvo

Para o desenvolvimento foi utilizado um meacutetodo aacutegil baseado no scrum com sprints de3 a 4 semanas devido agrave disponibilidade dos membros do grupo Os encontros natildeo eram diaacute-rios como recomendado para o meacutetodo scrum tambeacutem em razatildeo da disponibilidade Haviamstand ups (discussotildees raacutepidas no comeccedilo de cada encontro) e retrospectivas ao final de cadasprint A cada sprint eram selecionadas histoacuterias e tarefas para serem executadas e caso natildeofossem concluiacutedas ao final da iteraccedilatildeo eram inseridas ao backlog e feitas no sprint seguinte

43 Aplicaccedilatildeo dos meacutetodos de caacutelculo de espera

431 Aplicando a meacutedia por periacuteodo

Aplicando-se no trecho abaixo a teacutecnica desenvolvida na Seccedilatildeo 242 para uma queryrealizada no dia 19082016 no intervalo de 2040 - 2055 analisa-se a semana anterior quepossua tais intervalos Assim o saacutebado dia 06082016 seraacute selecionado

43 APLICACcedilAtildeO DOS MEacuteTODOS DE CAacuteLCULO DE ESPERA 33

Entrada Qtd Pessoas Notificado Espera

6816 2043 2 862016 2053 1606

6816 2044 2 862016 2055 674

6816 2048 2 862016 2056 528

6816 2048 2 862016 2057 520

6816 2051 2 862016 2107 1118

6816 2051 3 862016 2110 1305

6816 2052 2 862016 2110 1273

6816 2052 2 862016 2111 1179

6816 2053 2 862016 2112 1217

6816 2053 2 NULL 59

6816 2054 3 862016 2119 1541

6816 2055 2 862016 2117 1444

6816 2055 2 862016 2120 1570

6816 2055 2 862016 2122 1613

Tabela 41 Trecho do dia 06082016 entre os horaacuterios das 2043 agraves 2055 um intervalo de 12minutos retirado dos dados da empresa Get In

Com esses dados obteve-se a meacutedia de espera de 1080 segundos (18 minutos) a qualseria sugerida para o usuaacuterio com a busca e desvio padratildeo de 465144719 segundos (775 mi-nutos) Dentro desse intervalo tem-se como maacuteximo tempo de espera 1613 segundos (2688minutos) e como miacutenimo 59 segundos (1 minuto) Analisando-se os dados do dia 19082016no mesmo periacuteodo temos

34 DESENVOLVIMENTO DO PROJETO 43

Entrada Pessoas Notificado Espera Erro previsatildeo Erro p 2 pessoas

19816 2043 2 8192016 2051 544 -563 522

19816 2043 2 8192016 2052 605 -502 461

19816 2044 2 8192016 2056 723 -384 343

19816 2046 4 8192016 2119 1988 881 X

19816 2048 2 8192016 2102 919 188 147

19816 2051 2 8192016 2103 821 286 245

19816 2051 3 8192016 2108 1773 666 X

19816 2053 2 8192016 2110 1083 24 -17

19816 2053 2 8192016 2111 1105 2 -39

19816 2053 2 8192016 2112 1169 62 -103

19816 2055 2 8192016 2114 1447 340 -381

Tabela 42 Trecho do dia 19082016 entre os horaacuterios das 2043 agraves 2055um intervalo de 12minutos retirado dos dados da empresa Get In

Ou seja se um grupo chegasse dentro desse periacuteodo e a previsatildeo dada fosse a meacutediaobtida anteriormente o erro calculado pela diferenccedila entre o tempo sugerido e o real tempode espera estaria no intervalo de 15 minutos para menos ou 8 minutos para mais Sendoesse um valor aceitaacutevel

Um proacuteximo passo eacute a restriccedilatildeo dos registros a grupos com 2 integrantes Com tal restri-ccedilatildeo a previsatildeo de espera eacute de 1066 segundos (1776 minutos) Aplicando essa nova meacutedia aosregistros com 2 integrantes do dia 19082016 obteacutem-se um erro (Coluna 6 - erro previsatildeopara 2 pessoas) menor do que o anterior O intervalo do erro calculado neste caso seria de 522segundos (87 minutos) para mais e 381 segundos (635 minutos) para menos Este resultadoeacute ainda mais favoraacutevel mostrando que a inclusatildeo de mais filtros para o caacutelculo da previsatildeomelhorou o tempo previsto

432 Aplicando teoria das filas

A teoria das filas (Seccedilatildeo 242) eacute uma ferramenta muito completa que calcula muitos dadosuacuteteis para a previsatildeo de espera Contudo por conta da necessidade de informaccedilotildees sobreo tempo de atendimento a qual natildeo estaacute contida no banco utilizado esta teoria natildeo podeser aplicada neste caso Poreacutem esse dado pode ter um valor assumido para que a utilizaccedilatildeodessa teoria fosse possiacutevel entretanto a sua precisatildeo ficaria comprometida e imprevisiacutevel

433 Aplicando redes neurais

Para aplicar o que foi estudado na Seccedilatildeo 242 foi executado o software com o mecircs deAgosto como teste o mecircs de Setembro como treino e o limite do erro quadraacutetico como 001 eobteve-se a tabela presente no apecircndice B Na tabela podemos ver o tempo de fila esperadoou seja o tempo contido na tabela do mecircs de Setembro o tempo que o algoritmo deu comoresposta baseado no mecircs de Agosto e o erro entre eles respectivamente

44 DEFINICcedilAtildeO DA INTERFACE DO APLICATIVO 35

Figura 413 Software Multiple Back-Propagation com a configuraccedilatildeo escolhida para os dadosdisponiacuteveis

Mesmo o erro se mantendo em 0018 os dados obtidos possuem um erro padratildeo de 15minutos Se mais dados forem adicionados o criteacuterio de parada pode ser atingido e assimuma previsatildeo melhor pode ser alcanccedilada

434 Conclusatildeo sobre os meacutetodos estudados

Dentre todas as possibilidades estudadas visualizamos na meacutedia por periacuteodo a melhoropccedilatildeo assumindo os dados disponiacuteveis para teste Se mais paracircmetros fossem fornecidoscomo o tempo de atendimento a teoria das filas seria uma boa opccedilatildeo para fornecer a pre-visatildeo de espera E se mais dados estivessem disponiacuteveis as redes neurais conseguiriam umaaproximaccedilatildeo melhor e assim seria uma boa opccedilatildeo tambeacutem

44 Definiccedilatildeo da Interface do aplicativoComo um primeiro protoacutetipo foi desenvolvida uma interface simples que tinha como tela

de iniacutecio um mapa com um campo para buscas na parte superior

36 DESENVOLVIMENTO DO PROJETO 44

Figura 414 Fluxo de telas do primeiro protoacutetipo

Ao efetuar uma busca por algum estabelecimento uma tela mostrando o tempo de esperaaproximado da fila no local era exibida junto com bototildees que permitiam selecionar o meiode transporte visualizar outras opccedilotildees ou dar iniacutecio a rota ateacute o local desejado Tambeacutemhavia uma notificaccedilatildeo para quando a pessoa estivesse parada proacutexima a um restaurantecadastrado que direcionaria o usuaacuterio a uma tela com um cronocircmetro do tempo de esperana fila

Para testar essa visualizaccedilatildeo escolhemos algumas pessoas e realizamos um teste deusabilidade[22] este teste eacute feito da seguinte forma

44 DEFINICcedilAtildeO DA INTERFACE DO APLICATIVO 37

Uma contextualizaccedilatildeo eacute feita para o voluntaacuterio e entatildeo uma tarefa eacute passada para sercompletada Os integrantes do grupo observam dificuldades enfrentadas pelo entrevistado etomam notas Esse teste eacute repetido algumas vezes e seu resultado eacute coletado para avaliaccedilatildeoe modificaccedilatildeo das funcionalidades

Figura 415 Tela de detalhes de um restaurante(segunda versatildeo)

Notou-se que algumas funcionalidadespareceram confusas e natildeo intuitivas porexemplo natildeo ficou claro se o tempo mos-trado era de trajeto ou de espera na filanem qual era o meio de transporte utili-zado

Logo esse protoacutetipo foi reformuladocom o intuito de melhorar a experi-ecircncia do usuaacuterio com o nosso aplica-tivo

Foram colocados aleacutem do tempo deespera da fila o tempo que o usuaacuteriolevaria para chegar ateacute o local selecio-nado (conforme o tipo de transporte es-colhido) e a quantidade estimada de pes-soas na fila O tempo total (espera so-mado ao tempo de deslocamento) ga-nhou destaque entre as informaccedilotildees doestabelecimento e o botatildeo que direcionao usuaacuterio ao trajeto ficou mais especiacute-fico

Tambeacutem cogitou-se a possibilidade deadicionar login e um perfil de usuaacuteriojunto com uma lista de restaurantes favo-ritos

O fluxo das telas deste novo protoacutetipo ficou como mostra o esquema a seguir

38 DESENVOLVIMENTO DO PROJETO 44

Figura 416 Fluxo de telas do segundo protoacutetipo

44 DEFINICcedilAtildeO DA INTERFACE DO APLICATIVO 39

Figura 417 Tela de detalhes de um restaurante(terceira versatildeo)

Apoacutes outras avaliaccedilotildees mais algumaspequenas alteraccedilotildees foram realizadas nainterface Foi decidido que seria inviaacute-vel estimar o nuacutemero de pessoas nafila entatildeo essa funcionalidade foi remo-vida

Notificaccedilotildees foram adicionadas paraquando o usuaacuterio estiver parado na aacutereado restaurante para que ele possa con-tribuir com informaccedilotildees sobre a fila quepegou aleacutem de um botatildeo de contri-buiccedilatildeo ter sido inserido na tela ini-cial

40 DESENVOLVIMENTO DO PROJETO 45

O fluxo de telas do aplicativo atual ficou da seguinte forma

Figura 418 Fluxo de telas do terceiro protoacutetipo

46 EXPLICACcedilAtildeO DAS FUNCIONALIDADES 41

45 Explicaccedilatildeo das funcionalidadesEsta seccedilatildeo explica as funcionalidades do produto utilizando a figura 418

A tela inicial (3) exibe uma lista de restaurantes incluindo seus respectivos tempos detrajeto e tempo de espera na fila Ao clicar no botatildeo ldquo+rdquo uma caixa de diaacutelogo eacute aberta(4) onde eacute possiacutevel adicionar o tempo que o usuaacuterio esperou na fila Primeiro eacute escolhido orestaurante depois a data e hora que a pessoa chegou na fila e por fim o tempo de esperaem minutos Ao tocar em ldquoEnviar Feedback rdquo os dados satildeo incluiacutedos no banco de dados eatualizados para os outros usuaacuterios Assim eacute apicado o conceito de Crowdsourcing no apli-cativo

Ao tocar em um item da lista de restaurantes seraacute aberta a tela de detalhes de um res-taurante (5) na qual eacute possiacutevel ver com mais clareza os tempos de trajeto e espera o tempototal o endereccedilo do estabelecimento e um pequeno mapa centrado no local Pressionandoo botatildeo ldquoDireccedilotildeesrdquo o usuaacuterio seraacute redirecionado ao aplicativo de mapas de sua preferecircnciano caso do exemplo (8) o Google Maps jaacute traccedilando a rota da localizaccedilatildeo do usuaacuterio para oestabelecimento em questatildeo

Novamente na tela inicial tocando no iacutecone de lupa eacute possiacutevel realizar uma busca digi-tando o nome do estabelecimento na caixa de texto a qual exibe sugestotildees dependendo doque foi digitado Ao clicar em um dos resultados da busca o usuaacuterio eacute novamente direcionadopara a tela de detalhes do restaurante (5)

Tambeacutem eacute possiacutevel tocar no iacutecone de mapa na tela inicial onde seraacute mostrado um mapacentrado na localizaccedilatildeo do usuaacuterio

Ao ficar parado por um tempo em um mesmo local proacuteximo a um estabelecimentocadastrado o usuaacuterio eacute perguntado em uma notificaccedilatildeo quanto tempo ele permaneceu nafila Ao tocar na notificaccedilatildeo a caixa de diaacutelogo para feedback do usuaacuterio seraacute aberta (4) jaacutecom o restaurante preenchido e apoacutes o feedback a janela seraacute fechada e os dados enviadosao banco de dados

46 Implementaccedilatildeo do banco de dadosO banco de dados do aplicativo foi modelado e populado em forma de aacutervore (Fi-

gura 419) de forma a facilitar o acesso aos dados necessaacuterios ao aplicativo No primeironiacutevel estatildeo os ids dos restaurantes Cada id de restaurante guarda a localizaccedilatildeo (latitudelongitude) do restaurante o nome o endereccedilo e um objeto fila O objeto fila guarda todos osdias da semana (domingo a saacutebado) e cada dia da semana possui 24 campos um para cadahora do dia Cada hora possui o tempo meacutedio de espera da fila naquela hora e um peso paraesse tempo O peso eacute um valor que aumenta de acordo com o nuacutemero de feedbacks dadospara que o novo valor do tempo meacutedio seja calculado de forma consistente

Modelamos o banco de dados de uma forma que respeitasse uma hierarquia de dados

42 DESENVOLVIMENTO DO PROJETO 46

Figura 419 Aacutervore que ilustra a organizaccedilatildeo de um restaurante no banco de dados

Com o banco de dados jaacute populado o aplicativo faz consultas e atualizaccedilotildees de dadosConsultas satildeo feitas ao criar a tela de listagem de restaurantes e de detalhes de um restau-rante consultado As atualizaccedilotildees satildeo feitas quando o usuaacuterio manda o feedback de tempo deespera em um estabelecimento em determinado horaacuterio o aplicativo calcula a nova meacutedia eatualiza o campo do respectivo horaacuterio

Capiacutetulo 5

Conclusatildeo

Ao longo dos capiacutetulos deste trabalho pocircde-se acompanhar todo o processo de criaccedilatildeo edesenvolvimento do aplicativo que apoacutes finalizado foi batizado com o nome Queue

Comeccedilando com um problema para o qual o grupo almejava oferecer uma soluccedilatildeoacabou-se por adentrar-se um pouco no campo da Estatiacutestica e estudar diversas metodo-logias que poderiam ser uacuteteis para fornecer um caacutelculo de previsatildeo de espera meacutedia porperiacuteodo aplicaccedilatildeo da teoria das filas e utilizaccedilatildeo de redes neurais

Atraveacutes de uma parceria com a empresa GetIn obteve-se acesso a uma grande quantidadede dados e foi possiacutevel utilizaacute-los em anaacutelises feitas nas metodologias escolhidas conseguindoassim resultados relevantes Por meio destes foi feita a escolha de um dos meacutetodos para ocaacutelculo da previsatildeo de filas a meacutedia por periacuteodo

Aleacutem desses estudos ao longo do ano o grupo aprendeu a desenvolver para a plata-forma Android sobre a qual nenhum dos integrantes tinha conhecimento preacutevio Tambeacutemfoi possiacutevel aprender e utilizar a metodologia aacutegil com Scrum para guiar o processo de de-senvolvimento

Ao fim do ciclo de desenvolvimento conseguiu-se entregar um aplicativo em funciona-mento que fornece a previsatildeo de espera no instante da consulta de estabelecimentos cadas-trados no banco de dados armazenado na nuvem

Na versatildeo atual do aplicativo natildeo foi implementado um sistema para o cadastro de novosestabelecimentos Isso soacute eacute possiacutevel atraveacutes da inserccedilatildeo direta no banco de dados atraveacutes dainterface fornecida pelo console do Firebase Atualmente estatildeo cadastrados 5 restaurantesos quais foram visitados durante o desenvolvimento do projeto Para que o cadastro deestabelecimentos escale seria necessaacuterio a implementaccedilatildeo de uma funcionalidade que permitaao usuaacuterio adicionar novos estabelecimentos a partir de locais disponiacuteveis na API de locaisda Google

43

45

46 APEcircNDICE A

Apecircndice A

Dados coletados

Figura A1 Dados de tempo de espera para grupos de tamanhos variados para cada horaacuterio e emcada dia da semana obtidos em entrevista em restaurantes Outback Steakhouse Shopping Uniatildeo nomecircs de outubro

Referecircncias Bibliograacuteficas

[1] Backpropagation httpmbpsourceforgenet Accesso em Janeiro 2017 14

[2] Bitbucket httpsbitbucketorgproduct Accesso em Dezembro 2016 19

[3] Crowdsourcing httpswwwmerriam-webstercomdictionarycrowdsourcing Ac-cesso em Novembro 2016 21

[4] Designing a survey httpwwwsciencebuddiesorgscience-fair-projectsproject_ideasSoc_surveyshtml Accesso em Outubro 2016 4 23

[5] Facebook httpswwwfacebookcom Accesso em Novembro 2016 24

[6] Firebase httpsfirebasegooglecom Accesso em Agosto 2016 20

[7] Getin app httpswwwgetinappcombrhomesao-paulo Accesso em Novembro2016 9

[8] Git 11 primeiros passos - sobre controle de versatildeo httpsgit-scmcombookpt-brv1Primeiros-passos-Sobre-Controle-de-Vers Accesso em Novembro 2016 19

[9] Google forms httpsdocsgooglecomforms Accesso em Novembro 2016 23

[10] Guia definitivo do project model canvas Project Builder 3

[11] Jsonorg introducing json httpwwwjsonorg Accesso em Novembro 2016 17

[12] Manifesto para desenvolvimento Aacutegil de software httpagilemanifestoorgisoptbrmanifestohtml Accesso em Novembro 2016 5

[13] Nosql httpsenwikipediaorgwikiNoSQL Accesso em Novembro 2016 20

[14] Outback steakhouse httpswwwoutbackcombrhome Accesso em Novembro 20169

[15] Restful api development with lumen microframework httpsbelitsoftcomlaravel-development-servicesapi-development Accesso em Novembro 2016 17

[16] Scrum httpswwwatlassiancomagilescrum Accesso em Novembro 2016 5

[17] Smartphone os market share 2016 q2 httpwwwidccomprodservsmartphone-os-market-sharejsp Accesso em Novembro 2016 15

[18] Smartphone os sales market share kantar worldpanel comtech httpwwwkantarworldpanelcomsmartphone-os-market-share Accesso em Novembro 2016 15

[19] Sourcetree httpswwwsourcetreeappcom Accesso em Dezembro 2016 19

47

48 REFEREcircNCIAS BIBLIOGRAacuteFICAS

[20] Sql httpsptkhanacademyorgcomputingcomputer-programmingsql Accesso emDezembro 2016 20

[21] Trello httpstrellocom Accesso em Novembro 2016 6

[22] Usability test httpsenwikipediaorgwikiUsability_testing Accesso em Novembro2016 36

[23] Versionone 2012 agile dev survey httpswwwversiononecompdf7th-Annual-State-of-Agile-Development-Surveypdf Accesso em Novembro 2016 5

[24] Waze httpswwwwazecom Accesso em Novembro 2016 1

[25] What is an open source httpsopensourcecomresourceswhat-open-source Accessoem Novembro 2016 15

[26] Xml tutorial httpwwww3schoolscomxml Accesso em Novembro 2016 17

[27] Paulo F Cabral dos Anjos Jr Aron Ifanger Maciel Christopher Silva de Paacutedua Com-posiccedilatildeo de carteiras de accedilotildees utilizando modelo de redes neurais artificiais e modelo derisco e retorno de Markowitz 2012 14

[28] Google Distance matrix api documentation httpsdevelopersgooglecommapsdocumentationdistance-matrix Accesso em Novembro 2016 17

[29] Alan Klement Designing features using job stories httpsblogintercomcomusing-job-stories-design-features-ui-ux Accesso em Novembro 2016 6

[30] Azmat Nafees Queuing theory and its application analysis of the sales checkout opera-tion in ica supermarket httpwwwstatisticsduseessaysD07ENafeespdf Accessoem Novembro 2016 12

[31] Eric Ries A Startup Enxuta Lua de papel primeira ediccedilatildeo edition 2012 3

  • Introduccedilatildeo
    • Motivaccedilatildeo
    • Trabalho Proposto
    • Estrutura da monografia
      • Estudos Preliminares
        • Desenvolvimento de Startups
          • Desenvolvimento de Questionaacuterios
            • Metodologia Aacutegil
            • Jobs to be done
            • Caacutelculo da previsatildeo do tempo de espera na fila
              • Descriccedilatildeo do problema
              • Meacutetodos de caacutelculo da espera
                  • Tecnologias utilizadas
                    • O sistema Android
                      • Organizaccedilatildeo de uma aplicaccedilatildeo Android
                        • JSON
                        • Google APIs
                        • Localizaccedilatildeo do Usuaacuterio
                        • Controle de Versatildeo
                        • Banco de dados
                          • Firebase
                            • Crowdsourcing
                              • Desenvolvimento do Projeto
                                • Pesquisa de Mercado
                                  • Pesquisa com o usuaacuterio
                                    • Projeto do Aplicativo
                                    • Aplicaccedilatildeo dos meacutetodos de caacutelculo de espera
                                      • Aplicando a meacutedia por periacuteodo
                                      • Aplicando teoria das filas
                                      • Aplicando redes neurais
                                      • Conclusatildeo sobre os meacutetodos estudados
                                        • Definiccedilatildeo da Interface do aplicativo
                                        • Explicaccedilatildeo das funcionalidades
                                        • Implementaccedilatildeo do banco de dados
                                          • Conclusatildeo
                                          • Dados coletados
                                          • Referecircncias Bibliograacuteficas

32 DESENVOLVIMENTO DO PROJETO 43

42 Projeto do AplicativoO grupo comeccedilou o projeto com o preenchimento do diagrama Canvas(figura 412) apre-

sentado na Seccedilatildeo 21 Desse modo foi adquirida uma ideia mais consistente e uma base paracomeccedilar a implementaccedilatildeo

Figura 412 Diagrama Canvas preenchido pelo grupo

Com o modelo de negoacutecios definido e com base no resultado da pesquisa com o usuaacuterioapresentada na seccedilatildeo seguinte foram aplicadas pequenas mudanccedilas no projeto para melhoradequar-se agraves necessidades e ao perfil do puacuteblico alvo

Para o desenvolvimento foi utilizado um meacutetodo aacutegil baseado no scrum com sprints de3 a 4 semanas devido agrave disponibilidade dos membros do grupo Os encontros natildeo eram diaacute-rios como recomendado para o meacutetodo scrum tambeacutem em razatildeo da disponibilidade Haviamstand ups (discussotildees raacutepidas no comeccedilo de cada encontro) e retrospectivas ao final de cadasprint A cada sprint eram selecionadas histoacuterias e tarefas para serem executadas e caso natildeofossem concluiacutedas ao final da iteraccedilatildeo eram inseridas ao backlog e feitas no sprint seguinte

43 Aplicaccedilatildeo dos meacutetodos de caacutelculo de espera

431 Aplicando a meacutedia por periacuteodo

Aplicando-se no trecho abaixo a teacutecnica desenvolvida na Seccedilatildeo 242 para uma queryrealizada no dia 19082016 no intervalo de 2040 - 2055 analisa-se a semana anterior quepossua tais intervalos Assim o saacutebado dia 06082016 seraacute selecionado

43 APLICACcedilAtildeO DOS MEacuteTODOS DE CAacuteLCULO DE ESPERA 33

Entrada Qtd Pessoas Notificado Espera

6816 2043 2 862016 2053 1606

6816 2044 2 862016 2055 674

6816 2048 2 862016 2056 528

6816 2048 2 862016 2057 520

6816 2051 2 862016 2107 1118

6816 2051 3 862016 2110 1305

6816 2052 2 862016 2110 1273

6816 2052 2 862016 2111 1179

6816 2053 2 862016 2112 1217

6816 2053 2 NULL 59

6816 2054 3 862016 2119 1541

6816 2055 2 862016 2117 1444

6816 2055 2 862016 2120 1570

6816 2055 2 862016 2122 1613

Tabela 41 Trecho do dia 06082016 entre os horaacuterios das 2043 agraves 2055 um intervalo de 12minutos retirado dos dados da empresa Get In

Com esses dados obteve-se a meacutedia de espera de 1080 segundos (18 minutos) a qualseria sugerida para o usuaacuterio com a busca e desvio padratildeo de 465144719 segundos (775 mi-nutos) Dentro desse intervalo tem-se como maacuteximo tempo de espera 1613 segundos (2688minutos) e como miacutenimo 59 segundos (1 minuto) Analisando-se os dados do dia 19082016no mesmo periacuteodo temos

34 DESENVOLVIMENTO DO PROJETO 43

Entrada Pessoas Notificado Espera Erro previsatildeo Erro p 2 pessoas

19816 2043 2 8192016 2051 544 -563 522

19816 2043 2 8192016 2052 605 -502 461

19816 2044 2 8192016 2056 723 -384 343

19816 2046 4 8192016 2119 1988 881 X

19816 2048 2 8192016 2102 919 188 147

19816 2051 2 8192016 2103 821 286 245

19816 2051 3 8192016 2108 1773 666 X

19816 2053 2 8192016 2110 1083 24 -17

19816 2053 2 8192016 2111 1105 2 -39

19816 2053 2 8192016 2112 1169 62 -103

19816 2055 2 8192016 2114 1447 340 -381

Tabela 42 Trecho do dia 19082016 entre os horaacuterios das 2043 agraves 2055um intervalo de 12minutos retirado dos dados da empresa Get In

Ou seja se um grupo chegasse dentro desse periacuteodo e a previsatildeo dada fosse a meacutediaobtida anteriormente o erro calculado pela diferenccedila entre o tempo sugerido e o real tempode espera estaria no intervalo de 15 minutos para menos ou 8 minutos para mais Sendoesse um valor aceitaacutevel

Um proacuteximo passo eacute a restriccedilatildeo dos registros a grupos com 2 integrantes Com tal restri-ccedilatildeo a previsatildeo de espera eacute de 1066 segundos (1776 minutos) Aplicando essa nova meacutedia aosregistros com 2 integrantes do dia 19082016 obteacutem-se um erro (Coluna 6 - erro previsatildeopara 2 pessoas) menor do que o anterior O intervalo do erro calculado neste caso seria de 522segundos (87 minutos) para mais e 381 segundos (635 minutos) para menos Este resultadoeacute ainda mais favoraacutevel mostrando que a inclusatildeo de mais filtros para o caacutelculo da previsatildeomelhorou o tempo previsto

432 Aplicando teoria das filas

A teoria das filas (Seccedilatildeo 242) eacute uma ferramenta muito completa que calcula muitos dadosuacuteteis para a previsatildeo de espera Contudo por conta da necessidade de informaccedilotildees sobreo tempo de atendimento a qual natildeo estaacute contida no banco utilizado esta teoria natildeo podeser aplicada neste caso Poreacutem esse dado pode ter um valor assumido para que a utilizaccedilatildeodessa teoria fosse possiacutevel entretanto a sua precisatildeo ficaria comprometida e imprevisiacutevel

433 Aplicando redes neurais

Para aplicar o que foi estudado na Seccedilatildeo 242 foi executado o software com o mecircs deAgosto como teste o mecircs de Setembro como treino e o limite do erro quadraacutetico como 001 eobteve-se a tabela presente no apecircndice B Na tabela podemos ver o tempo de fila esperadoou seja o tempo contido na tabela do mecircs de Setembro o tempo que o algoritmo deu comoresposta baseado no mecircs de Agosto e o erro entre eles respectivamente

44 DEFINICcedilAtildeO DA INTERFACE DO APLICATIVO 35

Figura 413 Software Multiple Back-Propagation com a configuraccedilatildeo escolhida para os dadosdisponiacuteveis

Mesmo o erro se mantendo em 0018 os dados obtidos possuem um erro padratildeo de 15minutos Se mais dados forem adicionados o criteacuterio de parada pode ser atingido e assimuma previsatildeo melhor pode ser alcanccedilada

434 Conclusatildeo sobre os meacutetodos estudados

Dentre todas as possibilidades estudadas visualizamos na meacutedia por periacuteodo a melhoropccedilatildeo assumindo os dados disponiacuteveis para teste Se mais paracircmetros fossem fornecidoscomo o tempo de atendimento a teoria das filas seria uma boa opccedilatildeo para fornecer a pre-visatildeo de espera E se mais dados estivessem disponiacuteveis as redes neurais conseguiriam umaaproximaccedilatildeo melhor e assim seria uma boa opccedilatildeo tambeacutem

44 Definiccedilatildeo da Interface do aplicativoComo um primeiro protoacutetipo foi desenvolvida uma interface simples que tinha como tela

de iniacutecio um mapa com um campo para buscas na parte superior

36 DESENVOLVIMENTO DO PROJETO 44

Figura 414 Fluxo de telas do primeiro protoacutetipo

Ao efetuar uma busca por algum estabelecimento uma tela mostrando o tempo de esperaaproximado da fila no local era exibida junto com bototildees que permitiam selecionar o meiode transporte visualizar outras opccedilotildees ou dar iniacutecio a rota ateacute o local desejado Tambeacutemhavia uma notificaccedilatildeo para quando a pessoa estivesse parada proacutexima a um restaurantecadastrado que direcionaria o usuaacuterio a uma tela com um cronocircmetro do tempo de esperana fila

Para testar essa visualizaccedilatildeo escolhemos algumas pessoas e realizamos um teste deusabilidade[22] este teste eacute feito da seguinte forma

44 DEFINICcedilAtildeO DA INTERFACE DO APLICATIVO 37

Uma contextualizaccedilatildeo eacute feita para o voluntaacuterio e entatildeo uma tarefa eacute passada para sercompletada Os integrantes do grupo observam dificuldades enfrentadas pelo entrevistado etomam notas Esse teste eacute repetido algumas vezes e seu resultado eacute coletado para avaliaccedilatildeoe modificaccedilatildeo das funcionalidades

Figura 415 Tela de detalhes de um restaurante(segunda versatildeo)

Notou-se que algumas funcionalidadespareceram confusas e natildeo intuitivas porexemplo natildeo ficou claro se o tempo mos-trado era de trajeto ou de espera na filanem qual era o meio de transporte utili-zado

Logo esse protoacutetipo foi reformuladocom o intuito de melhorar a experi-ecircncia do usuaacuterio com o nosso aplica-tivo

Foram colocados aleacutem do tempo deespera da fila o tempo que o usuaacuteriolevaria para chegar ateacute o local selecio-nado (conforme o tipo de transporte es-colhido) e a quantidade estimada de pes-soas na fila O tempo total (espera so-mado ao tempo de deslocamento) ga-nhou destaque entre as informaccedilotildees doestabelecimento e o botatildeo que direcionao usuaacuterio ao trajeto ficou mais especiacute-fico

Tambeacutem cogitou-se a possibilidade deadicionar login e um perfil de usuaacuteriojunto com uma lista de restaurantes favo-ritos

O fluxo das telas deste novo protoacutetipo ficou como mostra o esquema a seguir

38 DESENVOLVIMENTO DO PROJETO 44

Figura 416 Fluxo de telas do segundo protoacutetipo

44 DEFINICcedilAtildeO DA INTERFACE DO APLICATIVO 39

Figura 417 Tela de detalhes de um restaurante(terceira versatildeo)

Apoacutes outras avaliaccedilotildees mais algumaspequenas alteraccedilotildees foram realizadas nainterface Foi decidido que seria inviaacute-vel estimar o nuacutemero de pessoas nafila entatildeo essa funcionalidade foi remo-vida

Notificaccedilotildees foram adicionadas paraquando o usuaacuterio estiver parado na aacutereado restaurante para que ele possa con-tribuir com informaccedilotildees sobre a fila quepegou aleacutem de um botatildeo de contri-buiccedilatildeo ter sido inserido na tela ini-cial

40 DESENVOLVIMENTO DO PROJETO 45

O fluxo de telas do aplicativo atual ficou da seguinte forma

Figura 418 Fluxo de telas do terceiro protoacutetipo

46 EXPLICACcedilAtildeO DAS FUNCIONALIDADES 41

45 Explicaccedilatildeo das funcionalidadesEsta seccedilatildeo explica as funcionalidades do produto utilizando a figura 418

A tela inicial (3) exibe uma lista de restaurantes incluindo seus respectivos tempos detrajeto e tempo de espera na fila Ao clicar no botatildeo ldquo+rdquo uma caixa de diaacutelogo eacute aberta(4) onde eacute possiacutevel adicionar o tempo que o usuaacuterio esperou na fila Primeiro eacute escolhido orestaurante depois a data e hora que a pessoa chegou na fila e por fim o tempo de esperaem minutos Ao tocar em ldquoEnviar Feedback rdquo os dados satildeo incluiacutedos no banco de dados eatualizados para os outros usuaacuterios Assim eacute apicado o conceito de Crowdsourcing no apli-cativo

Ao tocar em um item da lista de restaurantes seraacute aberta a tela de detalhes de um res-taurante (5) na qual eacute possiacutevel ver com mais clareza os tempos de trajeto e espera o tempototal o endereccedilo do estabelecimento e um pequeno mapa centrado no local Pressionandoo botatildeo ldquoDireccedilotildeesrdquo o usuaacuterio seraacute redirecionado ao aplicativo de mapas de sua preferecircnciano caso do exemplo (8) o Google Maps jaacute traccedilando a rota da localizaccedilatildeo do usuaacuterio para oestabelecimento em questatildeo

Novamente na tela inicial tocando no iacutecone de lupa eacute possiacutevel realizar uma busca digi-tando o nome do estabelecimento na caixa de texto a qual exibe sugestotildees dependendo doque foi digitado Ao clicar em um dos resultados da busca o usuaacuterio eacute novamente direcionadopara a tela de detalhes do restaurante (5)

Tambeacutem eacute possiacutevel tocar no iacutecone de mapa na tela inicial onde seraacute mostrado um mapacentrado na localizaccedilatildeo do usuaacuterio

Ao ficar parado por um tempo em um mesmo local proacuteximo a um estabelecimentocadastrado o usuaacuterio eacute perguntado em uma notificaccedilatildeo quanto tempo ele permaneceu nafila Ao tocar na notificaccedilatildeo a caixa de diaacutelogo para feedback do usuaacuterio seraacute aberta (4) jaacutecom o restaurante preenchido e apoacutes o feedback a janela seraacute fechada e os dados enviadosao banco de dados

46 Implementaccedilatildeo do banco de dadosO banco de dados do aplicativo foi modelado e populado em forma de aacutervore (Fi-

gura 419) de forma a facilitar o acesso aos dados necessaacuterios ao aplicativo No primeironiacutevel estatildeo os ids dos restaurantes Cada id de restaurante guarda a localizaccedilatildeo (latitudelongitude) do restaurante o nome o endereccedilo e um objeto fila O objeto fila guarda todos osdias da semana (domingo a saacutebado) e cada dia da semana possui 24 campos um para cadahora do dia Cada hora possui o tempo meacutedio de espera da fila naquela hora e um peso paraesse tempo O peso eacute um valor que aumenta de acordo com o nuacutemero de feedbacks dadospara que o novo valor do tempo meacutedio seja calculado de forma consistente

Modelamos o banco de dados de uma forma que respeitasse uma hierarquia de dados

42 DESENVOLVIMENTO DO PROJETO 46

Figura 419 Aacutervore que ilustra a organizaccedilatildeo de um restaurante no banco de dados

Com o banco de dados jaacute populado o aplicativo faz consultas e atualizaccedilotildees de dadosConsultas satildeo feitas ao criar a tela de listagem de restaurantes e de detalhes de um restau-rante consultado As atualizaccedilotildees satildeo feitas quando o usuaacuterio manda o feedback de tempo deespera em um estabelecimento em determinado horaacuterio o aplicativo calcula a nova meacutedia eatualiza o campo do respectivo horaacuterio

Capiacutetulo 5

Conclusatildeo

Ao longo dos capiacutetulos deste trabalho pocircde-se acompanhar todo o processo de criaccedilatildeo edesenvolvimento do aplicativo que apoacutes finalizado foi batizado com o nome Queue

Comeccedilando com um problema para o qual o grupo almejava oferecer uma soluccedilatildeoacabou-se por adentrar-se um pouco no campo da Estatiacutestica e estudar diversas metodo-logias que poderiam ser uacuteteis para fornecer um caacutelculo de previsatildeo de espera meacutedia porperiacuteodo aplicaccedilatildeo da teoria das filas e utilizaccedilatildeo de redes neurais

Atraveacutes de uma parceria com a empresa GetIn obteve-se acesso a uma grande quantidadede dados e foi possiacutevel utilizaacute-los em anaacutelises feitas nas metodologias escolhidas conseguindoassim resultados relevantes Por meio destes foi feita a escolha de um dos meacutetodos para ocaacutelculo da previsatildeo de filas a meacutedia por periacuteodo

Aleacutem desses estudos ao longo do ano o grupo aprendeu a desenvolver para a plata-forma Android sobre a qual nenhum dos integrantes tinha conhecimento preacutevio Tambeacutemfoi possiacutevel aprender e utilizar a metodologia aacutegil com Scrum para guiar o processo de de-senvolvimento

Ao fim do ciclo de desenvolvimento conseguiu-se entregar um aplicativo em funciona-mento que fornece a previsatildeo de espera no instante da consulta de estabelecimentos cadas-trados no banco de dados armazenado na nuvem

Na versatildeo atual do aplicativo natildeo foi implementado um sistema para o cadastro de novosestabelecimentos Isso soacute eacute possiacutevel atraveacutes da inserccedilatildeo direta no banco de dados atraveacutes dainterface fornecida pelo console do Firebase Atualmente estatildeo cadastrados 5 restaurantesos quais foram visitados durante o desenvolvimento do projeto Para que o cadastro deestabelecimentos escale seria necessaacuterio a implementaccedilatildeo de uma funcionalidade que permitaao usuaacuterio adicionar novos estabelecimentos a partir de locais disponiacuteveis na API de locaisda Google

43

45

46 APEcircNDICE A

Apecircndice A

Dados coletados

Figura A1 Dados de tempo de espera para grupos de tamanhos variados para cada horaacuterio e emcada dia da semana obtidos em entrevista em restaurantes Outback Steakhouse Shopping Uniatildeo nomecircs de outubro

Referecircncias Bibliograacuteficas

[1] Backpropagation httpmbpsourceforgenet Accesso em Janeiro 2017 14

[2] Bitbucket httpsbitbucketorgproduct Accesso em Dezembro 2016 19

[3] Crowdsourcing httpswwwmerriam-webstercomdictionarycrowdsourcing Ac-cesso em Novembro 2016 21

[4] Designing a survey httpwwwsciencebuddiesorgscience-fair-projectsproject_ideasSoc_surveyshtml Accesso em Outubro 2016 4 23

[5] Facebook httpswwwfacebookcom Accesso em Novembro 2016 24

[6] Firebase httpsfirebasegooglecom Accesso em Agosto 2016 20

[7] Getin app httpswwwgetinappcombrhomesao-paulo Accesso em Novembro2016 9

[8] Git 11 primeiros passos - sobre controle de versatildeo httpsgit-scmcombookpt-brv1Primeiros-passos-Sobre-Controle-de-Vers Accesso em Novembro 2016 19

[9] Google forms httpsdocsgooglecomforms Accesso em Novembro 2016 23

[10] Guia definitivo do project model canvas Project Builder 3

[11] Jsonorg introducing json httpwwwjsonorg Accesso em Novembro 2016 17

[12] Manifesto para desenvolvimento Aacutegil de software httpagilemanifestoorgisoptbrmanifestohtml Accesso em Novembro 2016 5

[13] Nosql httpsenwikipediaorgwikiNoSQL Accesso em Novembro 2016 20

[14] Outback steakhouse httpswwwoutbackcombrhome Accesso em Novembro 20169

[15] Restful api development with lumen microframework httpsbelitsoftcomlaravel-development-servicesapi-development Accesso em Novembro 2016 17

[16] Scrum httpswwwatlassiancomagilescrum Accesso em Novembro 2016 5

[17] Smartphone os market share 2016 q2 httpwwwidccomprodservsmartphone-os-market-sharejsp Accesso em Novembro 2016 15

[18] Smartphone os sales market share kantar worldpanel comtech httpwwwkantarworldpanelcomsmartphone-os-market-share Accesso em Novembro 2016 15

[19] Sourcetree httpswwwsourcetreeappcom Accesso em Dezembro 2016 19

47

48 REFEREcircNCIAS BIBLIOGRAacuteFICAS

[20] Sql httpsptkhanacademyorgcomputingcomputer-programmingsql Accesso emDezembro 2016 20

[21] Trello httpstrellocom Accesso em Novembro 2016 6

[22] Usability test httpsenwikipediaorgwikiUsability_testing Accesso em Novembro2016 36

[23] Versionone 2012 agile dev survey httpswwwversiononecompdf7th-Annual-State-of-Agile-Development-Surveypdf Accesso em Novembro 2016 5

[24] Waze httpswwwwazecom Accesso em Novembro 2016 1

[25] What is an open source httpsopensourcecomresourceswhat-open-source Accessoem Novembro 2016 15

[26] Xml tutorial httpwwww3schoolscomxml Accesso em Novembro 2016 17

[27] Paulo F Cabral dos Anjos Jr Aron Ifanger Maciel Christopher Silva de Paacutedua Com-posiccedilatildeo de carteiras de accedilotildees utilizando modelo de redes neurais artificiais e modelo derisco e retorno de Markowitz 2012 14

[28] Google Distance matrix api documentation httpsdevelopersgooglecommapsdocumentationdistance-matrix Accesso em Novembro 2016 17

[29] Alan Klement Designing features using job stories httpsblogintercomcomusing-job-stories-design-features-ui-ux Accesso em Novembro 2016 6

[30] Azmat Nafees Queuing theory and its application analysis of the sales checkout opera-tion in ica supermarket httpwwwstatisticsduseessaysD07ENafeespdf Accessoem Novembro 2016 12

[31] Eric Ries A Startup Enxuta Lua de papel primeira ediccedilatildeo edition 2012 3

  • Introduccedilatildeo
    • Motivaccedilatildeo
    • Trabalho Proposto
    • Estrutura da monografia
      • Estudos Preliminares
        • Desenvolvimento de Startups
          • Desenvolvimento de Questionaacuterios
            • Metodologia Aacutegil
            • Jobs to be done
            • Caacutelculo da previsatildeo do tempo de espera na fila
              • Descriccedilatildeo do problema
              • Meacutetodos de caacutelculo da espera
                  • Tecnologias utilizadas
                    • O sistema Android
                      • Organizaccedilatildeo de uma aplicaccedilatildeo Android
                        • JSON
                        • Google APIs
                        • Localizaccedilatildeo do Usuaacuterio
                        • Controle de Versatildeo
                        • Banco de dados
                          • Firebase
                            • Crowdsourcing
                              • Desenvolvimento do Projeto
                                • Pesquisa de Mercado
                                  • Pesquisa com o usuaacuterio
                                    • Projeto do Aplicativo
                                    • Aplicaccedilatildeo dos meacutetodos de caacutelculo de espera
                                      • Aplicando a meacutedia por periacuteodo
                                      • Aplicando teoria das filas
                                      • Aplicando redes neurais
                                      • Conclusatildeo sobre os meacutetodos estudados
                                        • Definiccedilatildeo da Interface do aplicativo
                                        • Explicaccedilatildeo das funcionalidades
                                        • Implementaccedilatildeo do banco de dados
                                          • Conclusatildeo
                                          • Dados coletados
                                          • Referecircncias Bibliograacuteficas

43 APLICACcedilAtildeO DOS MEacuteTODOS DE CAacuteLCULO DE ESPERA 33

Entrada Qtd Pessoas Notificado Espera

6816 2043 2 862016 2053 1606

6816 2044 2 862016 2055 674

6816 2048 2 862016 2056 528

6816 2048 2 862016 2057 520

6816 2051 2 862016 2107 1118

6816 2051 3 862016 2110 1305

6816 2052 2 862016 2110 1273

6816 2052 2 862016 2111 1179

6816 2053 2 862016 2112 1217

6816 2053 2 NULL 59

6816 2054 3 862016 2119 1541

6816 2055 2 862016 2117 1444

6816 2055 2 862016 2120 1570

6816 2055 2 862016 2122 1613

Tabela 41 Trecho do dia 06082016 entre os horaacuterios das 2043 agraves 2055 um intervalo de 12minutos retirado dos dados da empresa Get In

Com esses dados obteve-se a meacutedia de espera de 1080 segundos (18 minutos) a qualseria sugerida para o usuaacuterio com a busca e desvio padratildeo de 465144719 segundos (775 mi-nutos) Dentro desse intervalo tem-se como maacuteximo tempo de espera 1613 segundos (2688minutos) e como miacutenimo 59 segundos (1 minuto) Analisando-se os dados do dia 19082016no mesmo periacuteodo temos

34 DESENVOLVIMENTO DO PROJETO 43

Entrada Pessoas Notificado Espera Erro previsatildeo Erro p 2 pessoas

19816 2043 2 8192016 2051 544 -563 522

19816 2043 2 8192016 2052 605 -502 461

19816 2044 2 8192016 2056 723 -384 343

19816 2046 4 8192016 2119 1988 881 X

19816 2048 2 8192016 2102 919 188 147

19816 2051 2 8192016 2103 821 286 245

19816 2051 3 8192016 2108 1773 666 X

19816 2053 2 8192016 2110 1083 24 -17

19816 2053 2 8192016 2111 1105 2 -39

19816 2053 2 8192016 2112 1169 62 -103

19816 2055 2 8192016 2114 1447 340 -381

Tabela 42 Trecho do dia 19082016 entre os horaacuterios das 2043 agraves 2055um intervalo de 12minutos retirado dos dados da empresa Get In

Ou seja se um grupo chegasse dentro desse periacuteodo e a previsatildeo dada fosse a meacutediaobtida anteriormente o erro calculado pela diferenccedila entre o tempo sugerido e o real tempode espera estaria no intervalo de 15 minutos para menos ou 8 minutos para mais Sendoesse um valor aceitaacutevel

Um proacuteximo passo eacute a restriccedilatildeo dos registros a grupos com 2 integrantes Com tal restri-ccedilatildeo a previsatildeo de espera eacute de 1066 segundos (1776 minutos) Aplicando essa nova meacutedia aosregistros com 2 integrantes do dia 19082016 obteacutem-se um erro (Coluna 6 - erro previsatildeopara 2 pessoas) menor do que o anterior O intervalo do erro calculado neste caso seria de 522segundos (87 minutos) para mais e 381 segundos (635 minutos) para menos Este resultadoeacute ainda mais favoraacutevel mostrando que a inclusatildeo de mais filtros para o caacutelculo da previsatildeomelhorou o tempo previsto

432 Aplicando teoria das filas

A teoria das filas (Seccedilatildeo 242) eacute uma ferramenta muito completa que calcula muitos dadosuacuteteis para a previsatildeo de espera Contudo por conta da necessidade de informaccedilotildees sobreo tempo de atendimento a qual natildeo estaacute contida no banco utilizado esta teoria natildeo podeser aplicada neste caso Poreacutem esse dado pode ter um valor assumido para que a utilizaccedilatildeodessa teoria fosse possiacutevel entretanto a sua precisatildeo ficaria comprometida e imprevisiacutevel

433 Aplicando redes neurais

Para aplicar o que foi estudado na Seccedilatildeo 242 foi executado o software com o mecircs deAgosto como teste o mecircs de Setembro como treino e o limite do erro quadraacutetico como 001 eobteve-se a tabela presente no apecircndice B Na tabela podemos ver o tempo de fila esperadoou seja o tempo contido na tabela do mecircs de Setembro o tempo que o algoritmo deu comoresposta baseado no mecircs de Agosto e o erro entre eles respectivamente

44 DEFINICcedilAtildeO DA INTERFACE DO APLICATIVO 35

Figura 413 Software Multiple Back-Propagation com a configuraccedilatildeo escolhida para os dadosdisponiacuteveis

Mesmo o erro se mantendo em 0018 os dados obtidos possuem um erro padratildeo de 15minutos Se mais dados forem adicionados o criteacuterio de parada pode ser atingido e assimuma previsatildeo melhor pode ser alcanccedilada

434 Conclusatildeo sobre os meacutetodos estudados

Dentre todas as possibilidades estudadas visualizamos na meacutedia por periacuteodo a melhoropccedilatildeo assumindo os dados disponiacuteveis para teste Se mais paracircmetros fossem fornecidoscomo o tempo de atendimento a teoria das filas seria uma boa opccedilatildeo para fornecer a pre-visatildeo de espera E se mais dados estivessem disponiacuteveis as redes neurais conseguiriam umaaproximaccedilatildeo melhor e assim seria uma boa opccedilatildeo tambeacutem

44 Definiccedilatildeo da Interface do aplicativoComo um primeiro protoacutetipo foi desenvolvida uma interface simples que tinha como tela

de iniacutecio um mapa com um campo para buscas na parte superior

36 DESENVOLVIMENTO DO PROJETO 44

Figura 414 Fluxo de telas do primeiro protoacutetipo

Ao efetuar uma busca por algum estabelecimento uma tela mostrando o tempo de esperaaproximado da fila no local era exibida junto com bototildees que permitiam selecionar o meiode transporte visualizar outras opccedilotildees ou dar iniacutecio a rota ateacute o local desejado Tambeacutemhavia uma notificaccedilatildeo para quando a pessoa estivesse parada proacutexima a um restaurantecadastrado que direcionaria o usuaacuterio a uma tela com um cronocircmetro do tempo de esperana fila

Para testar essa visualizaccedilatildeo escolhemos algumas pessoas e realizamos um teste deusabilidade[22] este teste eacute feito da seguinte forma

44 DEFINICcedilAtildeO DA INTERFACE DO APLICATIVO 37

Uma contextualizaccedilatildeo eacute feita para o voluntaacuterio e entatildeo uma tarefa eacute passada para sercompletada Os integrantes do grupo observam dificuldades enfrentadas pelo entrevistado etomam notas Esse teste eacute repetido algumas vezes e seu resultado eacute coletado para avaliaccedilatildeoe modificaccedilatildeo das funcionalidades

Figura 415 Tela de detalhes de um restaurante(segunda versatildeo)

Notou-se que algumas funcionalidadespareceram confusas e natildeo intuitivas porexemplo natildeo ficou claro se o tempo mos-trado era de trajeto ou de espera na filanem qual era o meio de transporte utili-zado

Logo esse protoacutetipo foi reformuladocom o intuito de melhorar a experi-ecircncia do usuaacuterio com o nosso aplica-tivo

Foram colocados aleacutem do tempo deespera da fila o tempo que o usuaacuteriolevaria para chegar ateacute o local selecio-nado (conforme o tipo de transporte es-colhido) e a quantidade estimada de pes-soas na fila O tempo total (espera so-mado ao tempo de deslocamento) ga-nhou destaque entre as informaccedilotildees doestabelecimento e o botatildeo que direcionao usuaacuterio ao trajeto ficou mais especiacute-fico

Tambeacutem cogitou-se a possibilidade deadicionar login e um perfil de usuaacuteriojunto com uma lista de restaurantes favo-ritos

O fluxo das telas deste novo protoacutetipo ficou como mostra o esquema a seguir

38 DESENVOLVIMENTO DO PROJETO 44

Figura 416 Fluxo de telas do segundo protoacutetipo

44 DEFINICcedilAtildeO DA INTERFACE DO APLICATIVO 39

Figura 417 Tela de detalhes de um restaurante(terceira versatildeo)

Apoacutes outras avaliaccedilotildees mais algumaspequenas alteraccedilotildees foram realizadas nainterface Foi decidido que seria inviaacute-vel estimar o nuacutemero de pessoas nafila entatildeo essa funcionalidade foi remo-vida

Notificaccedilotildees foram adicionadas paraquando o usuaacuterio estiver parado na aacutereado restaurante para que ele possa con-tribuir com informaccedilotildees sobre a fila quepegou aleacutem de um botatildeo de contri-buiccedilatildeo ter sido inserido na tela ini-cial

40 DESENVOLVIMENTO DO PROJETO 45

O fluxo de telas do aplicativo atual ficou da seguinte forma

Figura 418 Fluxo de telas do terceiro protoacutetipo

46 EXPLICACcedilAtildeO DAS FUNCIONALIDADES 41

45 Explicaccedilatildeo das funcionalidadesEsta seccedilatildeo explica as funcionalidades do produto utilizando a figura 418

A tela inicial (3) exibe uma lista de restaurantes incluindo seus respectivos tempos detrajeto e tempo de espera na fila Ao clicar no botatildeo ldquo+rdquo uma caixa de diaacutelogo eacute aberta(4) onde eacute possiacutevel adicionar o tempo que o usuaacuterio esperou na fila Primeiro eacute escolhido orestaurante depois a data e hora que a pessoa chegou na fila e por fim o tempo de esperaem minutos Ao tocar em ldquoEnviar Feedback rdquo os dados satildeo incluiacutedos no banco de dados eatualizados para os outros usuaacuterios Assim eacute apicado o conceito de Crowdsourcing no apli-cativo

Ao tocar em um item da lista de restaurantes seraacute aberta a tela de detalhes de um res-taurante (5) na qual eacute possiacutevel ver com mais clareza os tempos de trajeto e espera o tempototal o endereccedilo do estabelecimento e um pequeno mapa centrado no local Pressionandoo botatildeo ldquoDireccedilotildeesrdquo o usuaacuterio seraacute redirecionado ao aplicativo de mapas de sua preferecircnciano caso do exemplo (8) o Google Maps jaacute traccedilando a rota da localizaccedilatildeo do usuaacuterio para oestabelecimento em questatildeo

Novamente na tela inicial tocando no iacutecone de lupa eacute possiacutevel realizar uma busca digi-tando o nome do estabelecimento na caixa de texto a qual exibe sugestotildees dependendo doque foi digitado Ao clicar em um dos resultados da busca o usuaacuterio eacute novamente direcionadopara a tela de detalhes do restaurante (5)

Tambeacutem eacute possiacutevel tocar no iacutecone de mapa na tela inicial onde seraacute mostrado um mapacentrado na localizaccedilatildeo do usuaacuterio

Ao ficar parado por um tempo em um mesmo local proacuteximo a um estabelecimentocadastrado o usuaacuterio eacute perguntado em uma notificaccedilatildeo quanto tempo ele permaneceu nafila Ao tocar na notificaccedilatildeo a caixa de diaacutelogo para feedback do usuaacuterio seraacute aberta (4) jaacutecom o restaurante preenchido e apoacutes o feedback a janela seraacute fechada e os dados enviadosao banco de dados

46 Implementaccedilatildeo do banco de dadosO banco de dados do aplicativo foi modelado e populado em forma de aacutervore (Fi-

gura 419) de forma a facilitar o acesso aos dados necessaacuterios ao aplicativo No primeironiacutevel estatildeo os ids dos restaurantes Cada id de restaurante guarda a localizaccedilatildeo (latitudelongitude) do restaurante o nome o endereccedilo e um objeto fila O objeto fila guarda todos osdias da semana (domingo a saacutebado) e cada dia da semana possui 24 campos um para cadahora do dia Cada hora possui o tempo meacutedio de espera da fila naquela hora e um peso paraesse tempo O peso eacute um valor que aumenta de acordo com o nuacutemero de feedbacks dadospara que o novo valor do tempo meacutedio seja calculado de forma consistente

Modelamos o banco de dados de uma forma que respeitasse uma hierarquia de dados

42 DESENVOLVIMENTO DO PROJETO 46

Figura 419 Aacutervore que ilustra a organizaccedilatildeo de um restaurante no banco de dados

Com o banco de dados jaacute populado o aplicativo faz consultas e atualizaccedilotildees de dadosConsultas satildeo feitas ao criar a tela de listagem de restaurantes e de detalhes de um restau-rante consultado As atualizaccedilotildees satildeo feitas quando o usuaacuterio manda o feedback de tempo deespera em um estabelecimento em determinado horaacuterio o aplicativo calcula a nova meacutedia eatualiza o campo do respectivo horaacuterio

Capiacutetulo 5

Conclusatildeo

Ao longo dos capiacutetulos deste trabalho pocircde-se acompanhar todo o processo de criaccedilatildeo edesenvolvimento do aplicativo que apoacutes finalizado foi batizado com o nome Queue

Comeccedilando com um problema para o qual o grupo almejava oferecer uma soluccedilatildeoacabou-se por adentrar-se um pouco no campo da Estatiacutestica e estudar diversas metodo-logias que poderiam ser uacuteteis para fornecer um caacutelculo de previsatildeo de espera meacutedia porperiacuteodo aplicaccedilatildeo da teoria das filas e utilizaccedilatildeo de redes neurais

Atraveacutes de uma parceria com a empresa GetIn obteve-se acesso a uma grande quantidadede dados e foi possiacutevel utilizaacute-los em anaacutelises feitas nas metodologias escolhidas conseguindoassim resultados relevantes Por meio destes foi feita a escolha de um dos meacutetodos para ocaacutelculo da previsatildeo de filas a meacutedia por periacuteodo

Aleacutem desses estudos ao longo do ano o grupo aprendeu a desenvolver para a plata-forma Android sobre a qual nenhum dos integrantes tinha conhecimento preacutevio Tambeacutemfoi possiacutevel aprender e utilizar a metodologia aacutegil com Scrum para guiar o processo de de-senvolvimento

Ao fim do ciclo de desenvolvimento conseguiu-se entregar um aplicativo em funciona-mento que fornece a previsatildeo de espera no instante da consulta de estabelecimentos cadas-trados no banco de dados armazenado na nuvem

Na versatildeo atual do aplicativo natildeo foi implementado um sistema para o cadastro de novosestabelecimentos Isso soacute eacute possiacutevel atraveacutes da inserccedilatildeo direta no banco de dados atraveacutes dainterface fornecida pelo console do Firebase Atualmente estatildeo cadastrados 5 restaurantesos quais foram visitados durante o desenvolvimento do projeto Para que o cadastro deestabelecimentos escale seria necessaacuterio a implementaccedilatildeo de uma funcionalidade que permitaao usuaacuterio adicionar novos estabelecimentos a partir de locais disponiacuteveis na API de locaisda Google

43

45

46 APEcircNDICE A

Apecircndice A

Dados coletados

Figura A1 Dados de tempo de espera para grupos de tamanhos variados para cada horaacuterio e emcada dia da semana obtidos em entrevista em restaurantes Outback Steakhouse Shopping Uniatildeo nomecircs de outubro

Referecircncias Bibliograacuteficas

[1] Backpropagation httpmbpsourceforgenet Accesso em Janeiro 2017 14

[2] Bitbucket httpsbitbucketorgproduct Accesso em Dezembro 2016 19

[3] Crowdsourcing httpswwwmerriam-webstercomdictionarycrowdsourcing Ac-cesso em Novembro 2016 21

[4] Designing a survey httpwwwsciencebuddiesorgscience-fair-projectsproject_ideasSoc_surveyshtml Accesso em Outubro 2016 4 23

[5] Facebook httpswwwfacebookcom Accesso em Novembro 2016 24

[6] Firebase httpsfirebasegooglecom Accesso em Agosto 2016 20

[7] Getin app httpswwwgetinappcombrhomesao-paulo Accesso em Novembro2016 9

[8] Git 11 primeiros passos - sobre controle de versatildeo httpsgit-scmcombookpt-brv1Primeiros-passos-Sobre-Controle-de-Vers Accesso em Novembro 2016 19

[9] Google forms httpsdocsgooglecomforms Accesso em Novembro 2016 23

[10] Guia definitivo do project model canvas Project Builder 3

[11] Jsonorg introducing json httpwwwjsonorg Accesso em Novembro 2016 17

[12] Manifesto para desenvolvimento Aacutegil de software httpagilemanifestoorgisoptbrmanifestohtml Accesso em Novembro 2016 5

[13] Nosql httpsenwikipediaorgwikiNoSQL Accesso em Novembro 2016 20

[14] Outback steakhouse httpswwwoutbackcombrhome Accesso em Novembro 20169

[15] Restful api development with lumen microframework httpsbelitsoftcomlaravel-development-servicesapi-development Accesso em Novembro 2016 17

[16] Scrum httpswwwatlassiancomagilescrum Accesso em Novembro 2016 5

[17] Smartphone os market share 2016 q2 httpwwwidccomprodservsmartphone-os-market-sharejsp Accesso em Novembro 2016 15

[18] Smartphone os sales market share kantar worldpanel comtech httpwwwkantarworldpanelcomsmartphone-os-market-share Accesso em Novembro 2016 15

[19] Sourcetree httpswwwsourcetreeappcom Accesso em Dezembro 2016 19

47

48 REFEREcircNCIAS BIBLIOGRAacuteFICAS

[20] Sql httpsptkhanacademyorgcomputingcomputer-programmingsql Accesso emDezembro 2016 20

[21] Trello httpstrellocom Accesso em Novembro 2016 6

[22] Usability test httpsenwikipediaorgwikiUsability_testing Accesso em Novembro2016 36

[23] Versionone 2012 agile dev survey httpswwwversiononecompdf7th-Annual-State-of-Agile-Development-Surveypdf Accesso em Novembro 2016 5

[24] Waze httpswwwwazecom Accesso em Novembro 2016 1

[25] What is an open source httpsopensourcecomresourceswhat-open-source Accessoem Novembro 2016 15

[26] Xml tutorial httpwwww3schoolscomxml Accesso em Novembro 2016 17

[27] Paulo F Cabral dos Anjos Jr Aron Ifanger Maciel Christopher Silva de Paacutedua Com-posiccedilatildeo de carteiras de accedilotildees utilizando modelo de redes neurais artificiais e modelo derisco e retorno de Markowitz 2012 14

[28] Google Distance matrix api documentation httpsdevelopersgooglecommapsdocumentationdistance-matrix Accesso em Novembro 2016 17

[29] Alan Klement Designing features using job stories httpsblogintercomcomusing-job-stories-design-features-ui-ux Accesso em Novembro 2016 6

[30] Azmat Nafees Queuing theory and its application analysis of the sales checkout opera-tion in ica supermarket httpwwwstatisticsduseessaysD07ENafeespdf Accessoem Novembro 2016 12

[31] Eric Ries A Startup Enxuta Lua de papel primeira ediccedilatildeo edition 2012 3

  • Introduccedilatildeo
    • Motivaccedilatildeo
    • Trabalho Proposto
    • Estrutura da monografia
      • Estudos Preliminares
        • Desenvolvimento de Startups
          • Desenvolvimento de Questionaacuterios
            • Metodologia Aacutegil
            • Jobs to be done
            • Caacutelculo da previsatildeo do tempo de espera na fila
              • Descriccedilatildeo do problema
              • Meacutetodos de caacutelculo da espera
                  • Tecnologias utilizadas
                    • O sistema Android
                      • Organizaccedilatildeo de uma aplicaccedilatildeo Android
                        • JSON
                        • Google APIs
                        • Localizaccedilatildeo do Usuaacuterio
                        • Controle de Versatildeo
                        • Banco de dados
                          • Firebase
                            • Crowdsourcing
                              • Desenvolvimento do Projeto
                                • Pesquisa de Mercado
                                  • Pesquisa com o usuaacuterio
                                    • Projeto do Aplicativo
                                    • Aplicaccedilatildeo dos meacutetodos de caacutelculo de espera
                                      • Aplicando a meacutedia por periacuteodo
                                      • Aplicando teoria das filas
                                      • Aplicando redes neurais
                                      • Conclusatildeo sobre os meacutetodos estudados
                                        • Definiccedilatildeo da Interface do aplicativo
                                        • Explicaccedilatildeo das funcionalidades
                                        • Implementaccedilatildeo do banco de dados
                                          • Conclusatildeo
                                          • Dados coletados
                                          • Referecircncias Bibliograacuteficas

34 DESENVOLVIMENTO DO PROJETO 43

Entrada Pessoas Notificado Espera Erro previsatildeo Erro p 2 pessoas

19816 2043 2 8192016 2051 544 -563 522

19816 2043 2 8192016 2052 605 -502 461

19816 2044 2 8192016 2056 723 -384 343

19816 2046 4 8192016 2119 1988 881 X

19816 2048 2 8192016 2102 919 188 147

19816 2051 2 8192016 2103 821 286 245

19816 2051 3 8192016 2108 1773 666 X

19816 2053 2 8192016 2110 1083 24 -17

19816 2053 2 8192016 2111 1105 2 -39

19816 2053 2 8192016 2112 1169 62 -103

19816 2055 2 8192016 2114 1447 340 -381

Tabela 42 Trecho do dia 19082016 entre os horaacuterios das 2043 agraves 2055um intervalo de 12minutos retirado dos dados da empresa Get In

Ou seja se um grupo chegasse dentro desse periacuteodo e a previsatildeo dada fosse a meacutediaobtida anteriormente o erro calculado pela diferenccedila entre o tempo sugerido e o real tempode espera estaria no intervalo de 15 minutos para menos ou 8 minutos para mais Sendoesse um valor aceitaacutevel

Um proacuteximo passo eacute a restriccedilatildeo dos registros a grupos com 2 integrantes Com tal restri-ccedilatildeo a previsatildeo de espera eacute de 1066 segundos (1776 minutos) Aplicando essa nova meacutedia aosregistros com 2 integrantes do dia 19082016 obteacutem-se um erro (Coluna 6 - erro previsatildeopara 2 pessoas) menor do que o anterior O intervalo do erro calculado neste caso seria de 522segundos (87 minutos) para mais e 381 segundos (635 minutos) para menos Este resultadoeacute ainda mais favoraacutevel mostrando que a inclusatildeo de mais filtros para o caacutelculo da previsatildeomelhorou o tempo previsto

432 Aplicando teoria das filas

A teoria das filas (Seccedilatildeo 242) eacute uma ferramenta muito completa que calcula muitos dadosuacuteteis para a previsatildeo de espera Contudo por conta da necessidade de informaccedilotildees sobreo tempo de atendimento a qual natildeo estaacute contida no banco utilizado esta teoria natildeo podeser aplicada neste caso Poreacutem esse dado pode ter um valor assumido para que a utilizaccedilatildeodessa teoria fosse possiacutevel entretanto a sua precisatildeo ficaria comprometida e imprevisiacutevel

433 Aplicando redes neurais

Para aplicar o que foi estudado na Seccedilatildeo 242 foi executado o software com o mecircs deAgosto como teste o mecircs de Setembro como treino e o limite do erro quadraacutetico como 001 eobteve-se a tabela presente no apecircndice B Na tabela podemos ver o tempo de fila esperadoou seja o tempo contido na tabela do mecircs de Setembro o tempo que o algoritmo deu comoresposta baseado no mecircs de Agosto e o erro entre eles respectivamente

44 DEFINICcedilAtildeO DA INTERFACE DO APLICATIVO 35

Figura 413 Software Multiple Back-Propagation com a configuraccedilatildeo escolhida para os dadosdisponiacuteveis

Mesmo o erro se mantendo em 0018 os dados obtidos possuem um erro padratildeo de 15minutos Se mais dados forem adicionados o criteacuterio de parada pode ser atingido e assimuma previsatildeo melhor pode ser alcanccedilada

434 Conclusatildeo sobre os meacutetodos estudados

Dentre todas as possibilidades estudadas visualizamos na meacutedia por periacuteodo a melhoropccedilatildeo assumindo os dados disponiacuteveis para teste Se mais paracircmetros fossem fornecidoscomo o tempo de atendimento a teoria das filas seria uma boa opccedilatildeo para fornecer a pre-visatildeo de espera E se mais dados estivessem disponiacuteveis as redes neurais conseguiriam umaaproximaccedilatildeo melhor e assim seria uma boa opccedilatildeo tambeacutem

44 Definiccedilatildeo da Interface do aplicativoComo um primeiro protoacutetipo foi desenvolvida uma interface simples que tinha como tela

de iniacutecio um mapa com um campo para buscas na parte superior

36 DESENVOLVIMENTO DO PROJETO 44

Figura 414 Fluxo de telas do primeiro protoacutetipo

Ao efetuar uma busca por algum estabelecimento uma tela mostrando o tempo de esperaaproximado da fila no local era exibida junto com bototildees que permitiam selecionar o meiode transporte visualizar outras opccedilotildees ou dar iniacutecio a rota ateacute o local desejado Tambeacutemhavia uma notificaccedilatildeo para quando a pessoa estivesse parada proacutexima a um restaurantecadastrado que direcionaria o usuaacuterio a uma tela com um cronocircmetro do tempo de esperana fila

Para testar essa visualizaccedilatildeo escolhemos algumas pessoas e realizamos um teste deusabilidade[22] este teste eacute feito da seguinte forma

44 DEFINICcedilAtildeO DA INTERFACE DO APLICATIVO 37

Uma contextualizaccedilatildeo eacute feita para o voluntaacuterio e entatildeo uma tarefa eacute passada para sercompletada Os integrantes do grupo observam dificuldades enfrentadas pelo entrevistado etomam notas Esse teste eacute repetido algumas vezes e seu resultado eacute coletado para avaliaccedilatildeoe modificaccedilatildeo das funcionalidades

Figura 415 Tela de detalhes de um restaurante(segunda versatildeo)

Notou-se que algumas funcionalidadespareceram confusas e natildeo intuitivas porexemplo natildeo ficou claro se o tempo mos-trado era de trajeto ou de espera na filanem qual era o meio de transporte utili-zado

Logo esse protoacutetipo foi reformuladocom o intuito de melhorar a experi-ecircncia do usuaacuterio com o nosso aplica-tivo

Foram colocados aleacutem do tempo deespera da fila o tempo que o usuaacuteriolevaria para chegar ateacute o local selecio-nado (conforme o tipo de transporte es-colhido) e a quantidade estimada de pes-soas na fila O tempo total (espera so-mado ao tempo de deslocamento) ga-nhou destaque entre as informaccedilotildees doestabelecimento e o botatildeo que direcionao usuaacuterio ao trajeto ficou mais especiacute-fico

Tambeacutem cogitou-se a possibilidade deadicionar login e um perfil de usuaacuteriojunto com uma lista de restaurantes favo-ritos

O fluxo das telas deste novo protoacutetipo ficou como mostra o esquema a seguir

38 DESENVOLVIMENTO DO PROJETO 44

Figura 416 Fluxo de telas do segundo protoacutetipo

44 DEFINICcedilAtildeO DA INTERFACE DO APLICATIVO 39

Figura 417 Tela de detalhes de um restaurante(terceira versatildeo)

Apoacutes outras avaliaccedilotildees mais algumaspequenas alteraccedilotildees foram realizadas nainterface Foi decidido que seria inviaacute-vel estimar o nuacutemero de pessoas nafila entatildeo essa funcionalidade foi remo-vida

Notificaccedilotildees foram adicionadas paraquando o usuaacuterio estiver parado na aacutereado restaurante para que ele possa con-tribuir com informaccedilotildees sobre a fila quepegou aleacutem de um botatildeo de contri-buiccedilatildeo ter sido inserido na tela ini-cial

40 DESENVOLVIMENTO DO PROJETO 45

O fluxo de telas do aplicativo atual ficou da seguinte forma

Figura 418 Fluxo de telas do terceiro protoacutetipo

46 EXPLICACcedilAtildeO DAS FUNCIONALIDADES 41

45 Explicaccedilatildeo das funcionalidadesEsta seccedilatildeo explica as funcionalidades do produto utilizando a figura 418

A tela inicial (3) exibe uma lista de restaurantes incluindo seus respectivos tempos detrajeto e tempo de espera na fila Ao clicar no botatildeo ldquo+rdquo uma caixa de diaacutelogo eacute aberta(4) onde eacute possiacutevel adicionar o tempo que o usuaacuterio esperou na fila Primeiro eacute escolhido orestaurante depois a data e hora que a pessoa chegou na fila e por fim o tempo de esperaem minutos Ao tocar em ldquoEnviar Feedback rdquo os dados satildeo incluiacutedos no banco de dados eatualizados para os outros usuaacuterios Assim eacute apicado o conceito de Crowdsourcing no apli-cativo

Ao tocar em um item da lista de restaurantes seraacute aberta a tela de detalhes de um res-taurante (5) na qual eacute possiacutevel ver com mais clareza os tempos de trajeto e espera o tempototal o endereccedilo do estabelecimento e um pequeno mapa centrado no local Pressionandoo botatildeo ldquoDireccedilotildeesrdquo o usuaacuterio seraacute redirecionado ao aplicativo de mapas de sua preferecircnciano caso do exemplo (8) o Google Maps jaacute traccedilando a rota da localizaccedilatildeo do usuaacuterio para oestabelecimento em questatildeo

Novamente na tela inicial tocando no iacutecone de lupa eacute possiacutevel realizar uma busca digi-tando o nome do estabelecimento na caixa de texto a qual exibe sugestotildees dependendo doque foi digitado Ao clicar em um dos resultados da busca o usuaacuterio eacute novamente direcionadopara a tela de detalhes do restaurante (5)

Tambeacutem eacute possiacutevel tocar no iacutecone de mapa na tela inicial onde seraacute mostrado um mapacentrado na localizaccedilatildeo do usuaacuterio

Ao ficar parado por um tempo em um mesmo local proacuteximo a um estabelecimentocadastrado o usuaacuterio eacute perguntado em uma notificaccedilatildeo quanto tempo ele permaneceu nafila Ao tocar na notificaccedilatildeo a caixa de diaacutelogo para feedback do usuaacuterio seraacute aberta (4) jaacutecom o restaurante preenchido e apoacutes o feedback a janela seraacute fechada e os dados enviadosao banco de dados

46 Implementaccedilatildeo do banco de dadosO banco de dados do aplicativo foi modelado e populado em forma de aacutervore (Fi-

gura 419) de forma a facilitar o acesso aos dados necessaacuterios ao aplicativo No primeironiacutevel estatildeo os ids dos restaurantes Cada id de restaurante guarda a localizaccedilatildeo (latitudelongitude) do restaurante o nome o endereccedilo e um objeto fila O objeto fila guarda todos osdias da semana (domingo a saacutebado) e cada dia da semana possui 24 campos um para cadahora do dia Cada hora possui o tempo meacutedio de espera da fila naquela hora e um peso paraesse tempo O peso eacute um valor que aumenta de acordo com o nuacutemero de feedbacks dadospara que o novo valor do tempo meacutedio seja calculado de forma consistente

Modelamos o banco de dados de uma forma que respeitasse uma hierarquia de dados

42 DESENVOLVIMENTO DO PROJETO 46

Figura 419 Aacutervore que ilustra a organizaccedilatildeo de um restaurante no banco de dados

Com o banco de dados jaacute populado o aplicativo faz consultas e atualizaccedilotildees de dadosConsultas satildeo feitas ao criar a tela de listagem de restaurantes e de detalhes de um restau-rante consultado As atualizaccedilotildees satildeo feitas quando o usuaacuterio manda o feedback de tempo deespera em um estabelecimento em determinado horaacuterio o aplicativo calcula a nova meacutedia eatualiza o campo do respectivo horaacuterio

Capiacutetulo 5

Conclusatildeo

Ao longo dos capiacutetulos deste trabalho pocircde-se acompanhar todo o processo de criaccedilatildeo edesenvolvimento do aplicativo que apoacutes finalizado foi batizado com o nome Queue

Comeccedilando com um problema para o qual o grupo almejava oferecer uma soluccedilatildeoacabou-se por adentrar-se um pouco no campo da Estatiacutestica e estudar diversas metodo-logias que poderiam ser uacuteteis para fornecer um caacutelculo de previsatildeo de espera meacutedia porperiacuteodo aplicaccedilatildeo da teoria das filas e utilizaccedilatildeo de redes neurais

Atraveacutes de uma parceria com a empresa GetIn obteve-se acesso a uma grande quantidadede dados e foi possiacutevel utilizaacute-los em anaacutelises feitas nas metodologias escolhidas conseguindoassim resultados relevantes Por meio destes foi feita a escolha de um dos meacutetodos para ocaacutelculo da previsatildeo de filas a meacutedia por periacuteodo

Aleacutem desses estudos ao longo do ano o grupo aprendeu a desenvolver para a plata-forma Android sobre a qual nenhum dos integrantes tinha conhecimento preacutevio Tambeacutemfoi possiacutevel aprender e utilizar a metodologia aacutegil com Scrum para guiar o processo de de-senvolvimento

Ao fim do ciclo de desenvolvimento conseguiu-se entregar um aplicativo em funciona-mento que fornece a previsatildeo de espera no instante da consulta de estabelecimentos cadas-trados no banco de dados armazenado na nuvem

Na versatildeo atual do aplicativo natildeo foi implementado um sistema para o cadastro de novosestabelecimentos Isso soacute eacute possiacutevel atraveacutes da inserccedilatildeo direta no banco de dados atraveacutes dainterface fornecida pelo console do Firebase Atualmente estatildeo cadastrados 5 restaurantesos quais foram visitados durante o desenvolvimento do projeto Para que o cadastro deestabelecimentos escale seria necessaacuterio a implementaccedilatildeo de uma funcionalidade que permitaao usuaacuterio adicionar novos estabelecimentos a partir de locais disponiacuteveis na API de locaisda Google

43

45

46 APEcircNDICE A

Apecircndice A

Dados coletados

Figura A1 Dados de tempo de espera para grupos de tamanhos variados para cada horaacuterio e emcada dia da semana obtidos em entrevista em restaurantes Outback Steakhouse Shopping Uniatildeo nomecircs de outubro

Referecircncias Bibliograacuteficas

[1] Backpropagation httpmbpsourceforgenet Accesso em Janeiro 2017 14

[2] Bitbucket httpsbitbucketorgproduct Accesso em Dezembro 2016 19

[3] Crowdsourcing httpswwwmerriam-webstercomdictionarycrowdsourcing Ac-cesso em Novembro 2016 21

[4] Designing a survey httpwwwsciencebuddiesorgscience-fair-projectsproject_ideasSoc_surveyshtml Accesso em Outubro 2016 4 23

[5] Facebook httpswwwfacebookcom Accesso em Novembro 2016 24

[6] Firebase httpsfirebasegooglecom Accesso em Agosto 2016 20

[7] Getin app httpswwwgetinappcombrhomesao-paulo Accesso em Novembro2016 9

[8] Git 11 primeiros passos - sobre controle de versatildeo httpsgit-scmcombookpt-brv1Primeiros-passos-Sobre-Controle-de-Vers Accesso em Novembro 2016 19

[9] Google forms httpsdocsgooglecomforms Accesso em Novembro 2016 23

[10] Guia definitivo do project model canvas Project Builder 3

[11] Jsonorg introducing json httpwwwjsonorg Accesso em Novembro 2016 17

[12] Manifesto para desenvolvimento Aacutegil de software httpagilemanifestoorgisoptbrmanifestohtml Accesso em Novembro 2016 5

[13] Nosql httpsenwikipediaorgwikiNoSQL Accesso em Novembro 2016 20

[14] Outback steakhouse httpswwwoutbackcombrhome Accesso em Novembro 20169

[15] Restful api development with lumen microframework httpsbelitsoftcomlaravel-development-servicesapi-development Accesso em Novembro 2016 17

[16] Scrum httpswwwatlassiancomagilescrum Accesso em Novembro 2016 5

[17] Smartphone os market share 2016 q2 httpwwwidccomprodservsmartphone-os-market-sharejsp Accesso em Novembro 2016 15

[18] Smartphone os sales market share kantar worldpanel comtech httpwwwkantarworldpanelcomsmartphone-os-market-share Accesso em Novembro 2016 15

[19] Sourcetree httpswwwsourcetreeappcom Accesso em Dezembro 2016 19

47

48 REFEREcircNCIAS BIBLIOGRAacuteFICAS

[20] Sql httpsptkhanacademyorgcomputingcomputer-programmingsql Accesso emDezembro 2016 20

[21] Trello httpstrellocom Accesso em Novembro 2016 6

[22] Usability test httpsenwikipediaorgwikiUsability_testing Accesso em Novembro2016 36

[23] Versionone 2012 agile dev survey httpswwwversiononecompdf7th-Annual-State-of-Agile-Development-Surveypdf Accesso em Novembro 2016 5

[24] Waze httpswwwwazecom Accesso em Novembro 2016 1

[25] What is an open source httpsopensourcecomresourceswhat-open-source Accessoem Novembro 2016 15

[26] Xml tutorial httpwwww3schoolscomxml Accesso em Novembro 2016 17

[27] Paulo F Cabral dos Anjos Jr Aron Ifanger Maciel Christopher Silva de Paacutedua Com-posiccedilatildeo de carteiras de accedilotildees utilizando modelo de redes neurais artificiais e modelo derisco e retorno de Markowitz 2012 14

[28] Google Distance matrix api documentation httpsdevelopersgooglecommapsdocumentationdistance-matrix Accesso em Novembro 2016 17

[29] Alan Klement Designing features using job stories httpsblogintercomcomusing-job-stories-design-features-ui-ux Accesso em Novembro 2016 6

[30] Azmat Nafees Queuing theory and its application analysis of the sales checkout opera-tion in ica supermarket httpwwwstatisticsduseessaysD07ENafeespdf Accessoem Novembro 2016 12

[31] Eric Ries A Startup Enxuta Lua de papel primeira ediccedilatildeo edition 2012 3

  • Introduccedilatildeo
    • Motivaccedilatildeo
    • Trabalho Proposto
    • Estrutura da monografia
      • Estudos Preliminares
        • Desenvolvimento de Startups
          • Desenvolvimento de Questionaacuterios
            • Metodologia Aacutegil
            • Jobs to be done
            • Caacutelculo da previsatildeo do tempo de espera na fila
              • Descriccedilatildeo do problema
              • Meacutetodos de caacutelculo da espera
                  • Tecnologias utilizadas
                    • O sistema Android
                      • Organizaccedilatildeo de uma aplicaccedilatildeo Android
                        • JSON
                        • Google APIs
                        • Localizaccedilatildeo do Usuaacuterio
                        • Controle de Versatildeo
                        • Banco de dados
                          • Firebase
                            • Crowdsourcing
                              • Desenvolvimento do Projeto
                                • Pesquisa de Mercado
                                  • Pesquisa com o usuaacuterio
                                    • Projeto do Aplicativo
                                    • Aplicaccedilatildeo dos meacutetodos de caacutelculo de espera
                                      • Aplicando a meacutedia por periacuteodo
                                      • Aplicando teoria das filas
                                      • Aplicando redes neurais
                                      • Conclusatildeo sobre os meacutetodos estudados
                                        • Definiccedilatildeo da Interface do aplicativo
                                        • Explicaccedilatildeo das funcionalidades
                                        • Implementaccedilatildeo do banco de dados
                                          • Conclusatildeo
                                          • Dados coletados
                                          • Referecircncias Bibliograacuteficas

44 DEFINICcedilAtildeO DA INTERFACE DO APLICATIVO 35

Figura 413 Software Multiple Back-Propagation com a configuraccedilatildeo escolhida para os dadosdisponiacuteveis

Mesmo o erro se mantendo em 0018 os dados obtidos possuem um erro padratildeo de 15minutos Se mais dados forem adicionados o criteacuterio de parada pode ser atingido e assimuma previsatildeo melhor pode ser alcanccedilada

434 Conclusatildeo sobre os meacutetodos estudados

Dentre todas as possibilidades estudadas visualizamos na meacutedia por periacuteodo a melhoropccedilatildeo assumindo os dados disponiacuteveis para teste Se mais paracircmetros fossem fornecidoscomo o tempo de atendimento a teoria das filas seria uma boa opccedilatildeo para fornecer a pre-visatildeo de espera E se mais dados estivessem disponiacuteveis as redes neurais conseguiriam umaaproximaccedilatildeo melhor e assim seria uma boa opccedilatildeo tambeacutem

44 Definiccedilatildeo da Interface do aplicativoComo um primeiro protoacutetipo foi desenvolvida uma interface simples que tinha como tela

de iniacutecio um mapa com um campo para buscas na parte superior

36 DESENVOLVIMENTO DO PROJETO 44

Figura 414 Fluxo de telas do primeiro protoacutetipo

Ao efetuar uma busca por algum estabelecimento uma tela mostrando o tempo de esperaaproximado da fila no local era exibida junto com bototildees que permitiam selecionar o meiode transporte visualizar outras opccedilotildees ou dar iniacutecio a rota ateacute o local desejado Tambeacutemhavia uma notificaccedilatildeo para quando a pessoa estivesse parada proacutexima a um restaurantecadastrado que direcionaria o usuaacuterio a uma tela com um cronocircmetro do tempo de esperana fila

Para testar essa visualizaccedilatildeo escolhemos algumas pessoas e realizamos um teste deusabilidade[22] este teste eacute feito da seguinte forma

44 DEFINICcedilAtildeO DA INTERFACE DO APLICATIVO 37

Uma contextualizaccedilatildeo eacute feita para o voluntaacuterio e entatildeo uma tarefa eacute passada para sercompletada Os integrantes do grupo observam dificuldades enfrentadas pelo entrevistado etomam notas Esse teste eacute repetido algumas vezes e seu resultado eacute coletado para avaliaccedilatildeoe modificaccedilatildeo das funcionalidades

Figura 415 Tela de detalhes de um restaurante(segunda versatildeo)

Notou-se que algumas funcionalidadespareceram confusas e natildeo intuitivas porexemplo natildeo ficou claro se o tempo mos-trado era de trajeto ou de espera na filanem qual era o meio de transporte utili-zado

Logo esse protoacutetipo foi reformuladocom o intuito de melhorar a experi-ecircncia do usuaacuterio com o nosso aplica-tivo

Foram colocados aleacutem do tempo deespera da fila o tempo que o usuaacuteriolevaria para chegar ateacute o local selecio-nado (conforme o tipo de transporte es-colhido) e a quantidade estimada de pes-soas na fila O tempo total (espera so-mado ao tempo de deslocamento) ga-nhou destaque entre as informaccedilotildees doestabelecimento e o botatildeo que direcionao usuaacuterio ao trajeto ficou mais especiacute-fico

Tambeacutem cogitou-se a possibilidade deadicionar login e um perfil de usuaacuteriojunto com uma lista de restaurantes favo-ritos

O fluxo das telas deste novo protoacutetipo ficou como mostra o esquema a seguir

38 DESENVOLVIMENTO DO PROJETO 44

Figura 416 Fluxo de telas do segundo protoacutetipo

44 DEFINICcedilAtildeO DA INTERFACE DO APLICATIVO 39

Figura 417 Tela de detalhes de um restaurante(terceira versatildeo)

Apoacutes outras avaliaccedilotildees mais algumaspequenas alteraccedilotildees foram realizadas nainterface Foi decidido que seria inviaacute-vel estimar o nuacutemero de pessoas nafila entatildeo essa funcionalidade foi remo-vida

Notificaccedilotildees foram adicionadas paraquando o usuaacuterio estiver parado na aacutereado restaurante para que ele possa con-tribuir com informaccedilotildees sobre a fila quepegou aleacutem de um botatildeo de contri-buiccedilatildeo ter sido inserido na tela ini-cial

40 DESENVOLVIMENTO DO PROJETO 45

O fluxo de telas do aplicativo atual ficou da seguinte forma

Figura 418 Fluxo de telas do terceiro protoacutetipo

46 EXPLICACcedilAtildeO DAS FUNCIONALIDADES 41

45 Explicaccedilatildeo das funcionalidadesEsta seccedilatildeo explica as funcionalidades do produto utilizando a figura 418

A tela inicial (3) exibe uma lista de restaurantes incluindo seus respectivos tempos detrajeto e tempo de espera na fila Ao clicar no botatildeo ldquo+rdquo uma caixa de diaacutelogo eacute aberta(4) onde eacute possiacutevel adicionar o tempo que o usuaacuterio esperou na fila Primeiro eacute escolhido orestaurante depois a data e hora que a pessoa chegou na fila e por fim o tempo de esperaem minutos Ao tocar em ldquoEnviar Feedback rdquo os dados satildeo incluiacutedos no banco de dados eatualizados para os outros usuaacuterios Assim eacute apicado o conceito de Crowdsourcing no apli-cativo

Ao tocar em um item da lista de restaurantes seraacute aberta a tela de detalhes de um res-taurante (5) na qual eacute possiacutevel ver com mais clareza os tempos de trajeto e espera o tempototal o endereccedilo do estabelecimento e um pequeno mapa centrado no local Pressionandoo botatildeo ldquoDireccedilotildeesrdquo o usuaacuterio seraacute redirecionado ao aplicativo de mapas de sua preferecircnciano caso do exemplo (8) o Google Maps jaacute traccedilando a rota da localizaccedilatildeo do usuaacuterio para oestabelecimento em questatildeo

Novamente na tela inicial tocando no iacutecone de lupa eacute possiacutevel realizar uma busca digi-tando o nome do estabelecimento na caixa de texto a qual exibe sugestotildees dependendo doque foi digitado Ao clicar em um dos resultados da busca o usuaacuterio eacute novamente direcionadopara a tela de detalhes do restaurante (5)

Tambeacutem eacute possiacutevel tocar no iacutecone de mapa na tela inicial onde seraacute mostrado um mapacentrado na localizaccedilatildeo do usuaacuterio

Ao ficar parado por um tempo em um mesmo local proacuteximo a um estabelecimentocadastrado o usuaacuterio eacute perguntado em uma notificaccedilatildeo quanto tempo ele permaneceu nafila Ao tocar na notificaccedilatildeo a caixa de diaacutelogo para feedback do usuaacuterio seraacute aberta (4) jaacutecom o restaurante preenchido e apoacutes o feedback a janela seraacute fechada e os dados enviadosao banco de dados

46 Implementaccedilatildeo do banco de dadosO banco de dados do aplicativo foi modelado e populado em forma de aacutervore (Fi-

gura 419) de forma a facilitar o acesso aos dados necessaacuterios ao aplicativo No primeironiacutevel estatildeo os ids dos restaurantes Cada id de restaurante guarda a localizaccedilatildeo (latitudelongitude) do restaurante o nome o endereccedilo e um objeto fila O objeto fila guarda todos osdias da semana (domingo a saacutebado) e cada dia da semana possui 24 campos um para cadahora do dia Cada hora possui o tempo meacutedio de espera da fila naquela hora e um peso paraesse tempo O peso eacute um valor que aumenta de acordo com o nuacutemero de feedbacks dadospara que o novo valor do tempo meacutedio seja calculado de forma consistente

Modelamos o banco de dados de uma forma que respeitasse uma hierarquia de dados

42 DESENVOLVIMENTO DO PROJETO 46

Figura 419 Aacutervore que ilustra a organizaccedilatildeo de um restaurante no banco de dados

Com o banco de dados jaacute populado o aplicativo faz consultas e atualizaccedilotildees de dadosConsultas satildeo feitas ao criar a tela de listagem de restaurantes e de detalhes de um restau-rante consultado As atualizaccedilotildees satildeo feitas quando o usuaacuterio manda o feedback de tempo deespera em um estabelecimento em determinado horaacuterio o aplicativo calcula a nova meacutedia eatualiza o campo do respectivo horaacuterio

Capiacutetulo 5

Conclusatildeo

Ao longo dos capiacutetulos deste trabalho pocircde-se acompanhar todo o processo de criaccedilatildeo edesenvolvimento do aplicativo que apoacutes finalizado foi batizado com o nome Queue

Comeccedilando com um problema para o qual o grupo almejava oferecer uma soluccedilatildeoacabou-se por adentrar-se um pouco no campo da Estatiacutestica e estudar diversas metodo-logias que poderiam ser uacuteteis para fornecer um caacutelculo de previsatildeo de espera meacutedia porperiacuteodo aplicaccedilatildeo da teoria das filas e utilizaccedilatildeo de redes neurais

Atraveacutes de uma parceria com a empresa GetIn obteve-se acesso a uma grande quantidadede dados e foi possiacutevel utilizaacute-los em anaacutelises feitas nas metodologias escolhidas conseguindoassim resultados relevantes Por meio destes foi feita a escolha de um dos meacutetodos para ocaacutelculo da previsatildeo de filas a meacutedia por periacuteodo

Aleacutem desses estudos ao longo do ano o grupo aprendeu a desenvolver para a plata-forma Android sobre a qual nenhum dos integrantes tinha conhecimento preacutevio Tambeacutemfoi possiacutevel aprender e utilizar a metodologia aacutegil com Scrum para guiar o processo de de-senvolvimento

Ao fim do ciclo de desenvolvimento conseguiu-se entregar um aplicativo em funciona-mento que fornece a previsatildeo de espera no instante da consulta de estabelecimentos cadas-trados no banco de dados armazenado na nuvem

Na versatildeo atual do aplicativo natildeo foi implementado um sistema para o cadastro de novosestabelecimentos Isso soacute eacute possiacutevel atraveacutes da inserccedilatildeo direta no banco de dados atraveacutes dainterface fornecida pelo console do Firebase Atualmente estatildeo cadastrados 5 restaurantesos quais foram visitados durante o desenvolvimento do projeto Para que o cadastro deestabelecimentos escale seria necessaacuterio a implementaccedilatildeo de uma funcionalidade que permitaao usuaacuterio adicionar novos estabelecimentos a partir de locais disponiacuteveis na API de locaisda Google

43

45

46 APEcircNDICE A

Apecircndice A

Dados coletados

Figura A1 Dados de tempo de espera para grupos de tamanhos variados para cada horaacuterio e emcada dia da semana obtidos em entrevista em restaurantes Outback Steakhouse Shopping Uniatildeo nomecircs de outubro

Referecircncias Bibliograacuteficas

[1] Backpropagation httpmbpsourceforgenet Accesso em Janeiro 2017 14

[2] Bitbucket httpsbitbucketorgproduct Accesso em Dezembro 2016 19

[3] Crowdsourcing httpswwwmerriam-webstercomdictionarycrowdsourcing Ac-cesso em Novembro 2016 21

[4] Designing a survey httpwwwsciencebuddiesorgscience-fair-projectsproject_ideasSoc_surveyshtml Accesso em Outubro 2016 4 23

[5] Facebook httpswwwfacebookcom Accesso em Novembro 2016 24

[6] Firebase httpsfirebasegooglecom Accesso em Agosto 2016 20

[7] Getin app httpswwwgetinappcombrhomesao-paulo Accesso em Novembro2016 9

[8] Git 11 primeiros passos - sobre controle de versatildeo httpsgit-scmcombookpt-brv1Primeiros-passos-Sobre-Controle-de-Vers Accesso em Novembro 2016 19

[9] Google forms httpsdocsgooglecomforms Accesso em Novembro 2016 23

[10] Guia definitivo do project model canvas Project Builder 3

[11] Jsonorg introducing json httpwwwjsonorg Accesso em Novembro 2016 17

[12] Manifesto para desenvolvimento Aacutegil de software httpagilemanifestoorgisoptbrmanifestohtml Accesso em Novembro 2016 5

[13] Nosql httpsenwikipediaorgwikiNoSQL Accesso em Novembro 2016 20

[14] Outback steakhouse httpswwwoutbackcombrhome Accesso em Novembro 20169

[15] Restful api development with lumen microframework httpsbelitsoftcomlaravel-development-servicesapi-development Accesso em Novembro 2016 17

[16] Scrum httpswwwatlassiancomagilescrum Accesso em Novembro 2016 5

[17] Smartphone os market share 2016 q2 httpwwwidccomprodservsmartphone-os-market-sharejsp Accesso em Novembro 2016 15

[18] Smartphone os sales market share kantar worldpanel comtech httpwwwkantarworldpanelcomsmartphone-os-market-share Accesso em Novembro 2016 15

[19] Sourcetree httpswwwsourcetreeappcom Accesso em Dezembro 2016 19

47

48 REFEREcircNCIAS BIBLIOGRAacuteFICAS

[20] Sql httpsptkhanacademyorgcomputingcomputer-programmingsql Accesso emDezembro 2016 20

[21] Trello httpstrellocom Accesso em Novembro 2016 6

[22] Usability test httpsenwikipediaorgwikiUsability_testing Accesso em Novembro2016 36

[23] Versionone 2012 agile dev survey httpswwwversiononecompdf7th-Annual-State-of-Agile-Development-Surveypdf Accesso em Novembro 2016 5

[24] Waze httpswwwwazecom Accesso em Novembro 2016 1

[25] What is an open source httpsopensourcecomresourceswhat-open-source Accessoem Novembro 2016 15

[26] Xml tutorial httpwwww3schoolscomxml Accesso em Novembro 2016 17

[27] Paulo F Cabral dos Anjos Jr Aron Ifanger Maciel Christopher Silva de Paacutedua Com-posiccedilatildeo de carteiras de accedilotildees utilizando modelo de redes neurais artificiais e modelo derisco e retorno de Markowitz 2012 14

[28] Google Distance matrix api documentation httpsdevelopersgooglecommapsdocumentationdistance-matrix Accesso em Novembro 2016 17

[29] Alan Klement Designing features using job stories httpsblogintercomcomusing-job-stories-design-features-ui-ux Accesso em Novembro 2016 6

[30] Azmat Nafees Queuing theory and its application analysis of the sales checkout opera-tion in ica supermarket httpwwwstatisticsduseessaysD07ENafeespdf Accessoem Novembro 2016 12

[31] Eric Ries A Startup Enxuta Lua de papel primeira ediccedilatildeo edition 2012 3

  • Introduccedilatildeo
    • Motivaccedilatildeo
    • Trabalho Proposto
    • Estrutura da monografia
      • Estudos Preliminares
        • Desenvolvimento de Startups
          • Desenvolvimento de Questionaacuterios
            • Metodologia Aacutegil
            • Jobs to be done
            • Caacutelculo da previsatildeo do tempo de espera na fila
              • Descriccedilatildeo do problema
              • Meacutetodos de caacutelculo da espera
                  • Tecnologias utilizadas
                    • O sistema Android
                      • Organizaccedilatildeo de uma aplicaccedilatildeo Android
                        • JSON
                        • Google APIs
                        • Localizaccedilatildeo do Usuaacuterio
                        • Controle de Versatildeo
                        • Banco de dados
                          • Firebase
                            • Crowdsourcing
                              • Desenvolvimento do Projeto
                                • Pesquisa de Mercado
                                  • Pesquisa com o usuaacuterio
                                    • Projeto do Aplicativo
                                    • Aplicaccedilatildeo dos meacutetodos de caacutelculo de espera
                                      • Aplicando a meacutedia por periacuteodo
                                      • Aplicando teoria das filas
                                      • Aplicando redes neurais
                                      • Conclusatildeo sobre os meacutetodos estudados
                                        • Definiccedilatildeo da Interface do aplicativo
                                        • Explicaccedilatildeo das funcionalidades
                                        • Implementaccedilatildeo do banco de dados
                                          • Conclusatildeo
                                          • Dados coletados
                                          • Referecircncias Bibliograacuteficas

36 DESENVOLVIMENTO DO PROJETO 44

Figura 414 Fluxo de telas do primeiro protoacutetipo

Ao efetuar uma busca por algum estabelecimento uma tela mostrando o tempo de esperaaproximado da fila no local era exibida junto com bototildees que permitiam selecionar o meiode transporte visualizar outras opccedilotildees ou dar iniacutecio a rota ateacute o local desejado Tambeacutemhavia uma notificaccedilatildeo para quando a pessoa estivesse parada proacutexima a um restaurantecadastrado que direcionaria o usuaacuterio a uma tela com um cronocircmetro do tempo de esperana fila

Para testar essa visualizaccedilatildeo escolhemos algumas pessoas e realizamos um teste deusabilidade[22] este teste eacute feito da seguinte forma

44 DEFINICcedilAtildeO DA INTERFACE DO APLICATIVO 37

Uma contextualizaccedilatildeo eacute feita para o voluntaacuterio e entatildeo uma tarefa eacute passada para sercompletada Os integrantes do grupo observam dificuldades enfrentadas pelo entrevistado etomam notas Esse teste eacute repetido algumas vezes e seu resultado eacute coletado para avaliaccedilatildeoe modificaccedilatildeo das funcionalidades

Figura 415 Tela de detalhes de um restaurante(segunda versatildeo)

Notou-se que algumas funcionalidadespareceram confusas e natildeo intuitivas porexemplo natildeo ficou claro se o tempo mos-trado era de trajeto ou de espera na filanem qual era o meio de transporte utili-zado

Logo esse protoacutetipo foi reformuladocom o intuito de melhorar a experi-ecircncia do usuaacuterio com o nosso aplica-tivo

Foram colocados aleacutem do tempo deespera da fila o tempo que o usuaacuteriolevaria para chegar ateacute o local selecio-nado (conforme o tipo de transporte es-colhido) e a quantidade estimada de pes-soas na fila O tempo total (espera so-mado ao tempo de deslocamento) ga-nhou destaque entre as informaccedilotildees doestabelecimento e o botatildeo que direcionao usuaacuterio ao trajeto ficou mais especiacute-fico

Tambeacutem cogitou-se a possibilidade deadicionar login e um perfil de usuaacuteriojunto com uma lista de restaurantes favo-ritos

O fluxo das telas deste novo protoacutetipo ficou como mostra o esquema a seguir

38 DESENVOLVIMENTO DO PROJETO 44

Figura 416 Fluxo de telas do segundo protoacutetipo

44 DEFINICcedilAtildeO DA INTERFACE DO APLICATIVO 39

Figura 417 Tela de detalhes de um restaurante(terceira versatildeo)

Apoacutes outras avaliaccedilotildees mais algumaspequenas alteraccedilotildees foram realizadas nainterface Foi decidido que seria inviaacute-vel estimar o nuacutemero de pessoas nafila entatildeo essa funcionalidade foi remo-vida

Notificaccedilotildees foram adicionadas paraquando o usuaacuterio estiver parado na aacutereado restaurante para que ele possa con-tribuir com informaccedilotildees sobre a fila quepegou aleacutem de um botatildeo de contri-buiccedilatildeo ter sido inserido na tela ini-cial

40 DESENVOLVIMENTO DO PROJETO 45

O fluxo de telas do aplicativo atual ficou da seguinte forma

Figura 418 Fluxo de telas do terceiro protoacutetipo

46 EXPLICACcedilAtildeO DAS FUNCIONALIDADES 41

45 Explicaccedilatildeo das funcionalidadesEsta seccedilatildeo explica as funcionalidades do produto utilizando a figura 418

A tela inicial (3) exibe uma lista de restaurantes incluindo seus respectivos tempos detrajeto e tempo de espera na fila Ao clicar no botatildeo ldquo+rdquo uma caixa de diaacutelogo eacute aberta(4) onde eacute possiacutevel adicionar o tempo que o usuaacuterio esperou na fila Primeiro eacute escolhido orestaurante depois a data e hora que a pessoa chegou na fila e por fim o tempo de esperaem minutos Ao tocar em ldquoEnviar Feedback rdquo os dados satildeo incluiacutedos no banco de dados eatualizados para os outros usuaacuterios Assim eacute apicado o conceito de Crowdsourcing no apli-cativo

Ao tocar em um item da lista de restaurantes seraacute aberta a tela de detalhes de um res-taurante (5) na qual eacute possiacutevel ver com mais clareza os tempos de trajeto e espera o tempototal o endereccedilo do estabelecimento e um pequeno mapa centrado no local Pressionandoo botatildeo ldquoDireccedilotildeesrdquo o usuaacuterio seraacute redirecionado ao aplicativo de mapas de sua preferecircnciano caso do exemplo (8) o Google Maps jaacute traccedilando a rota da localizaccedilatildeo do usuaacuterio para oestabelecimento em questatildeo

Novamente na tela inicial tocando no iacutecone de lupa eacute possiacutevel realizar uma busca digi-tando o nome do estabelecimento na caixa de texto a qual exibe sugestotildees dependendo doque foi digitado Ao clicar em um dos resultados da busca o usuaacuterio eacute novamente direcionadopara a tela de detalhes do restaurante (5)

Tambeacutem eacute possiacutevel tocar no iacutecone de mapa na tela inicial onde seraacute mostrado um mapacentrado na localizaccedilatildeo do usuaacuterio

Ao ficar parado por um tempo em um mesmo local proacuteximo a um estabelecimentocadastrado o usuaacuterio eacute perguntado em uma notificaccedilatildeo quanto tempo ele permaneceu nafila Ao tocar na notificaccedilatildeo a caixa de diaacutelogo para feedback do usuaacuterio seraacute aberta (4) jaacutecom o restaurante preenchido e apoacutes o feedback a janela seraacute fechada e os dados enviadosao banco de dados

46 Implementaccedilatildeo do banco de dadosO banco de dados do aplicativo foi modelado e populado em forma de aacutervore (Fi-

gura 419) de forma a facilitar o acesso aos dados necessaacuterios ao aplicativo No primeironiacutevel estatildeo os ids dos restaurantes Cada id de restaurante guarda a localizaccedilatildeo (latitudelongitude) do restaurante o nome o endereccedilo e um objeto fila O objeto fila guarda todos osdias da semana (domingo a saacutebado) e cada dia da semana possui 24 campos um para cadahora do dia Cada hora possui o tempo meacutedio de espera da fila naquela hora e um peso paraesse tempo O peso eacute um valor que aumenta de acordo com o nuacutemero de feedbacks dadospara que o novo valor do tempo meacutedio seja calculado de forma consistente

Modelamos o banco de dados de uma forma que respeitasse uma hierarquia de dados

42 DESENVOLVIMENTO DO PROJETO 46

Figura 419 Aacutervore que ilustra a organizaccedilatildeo de um restaurante no banco de dados

Com o banco de dados jaacute populado o aplicativo faz consultas e atualizaccedilotildees de dadosConsultas satildeo feitas ao criar a tela de listagem de restaurantes e de detalhes de um restau-rante consultado As atualizaccedilotildees satildeo feitas quando o usuaacuterio manda o feedback de tempo deespera em um estabelecimento em determinado horaacuterio o aplicativo calcula a nova meacutedia eatualiza o campo do respectivo horaacuterio

Capiacutetulo 5

Conclusatildeo

Ao longo dos capiacutetulos deste trabalho pocircde-se acompanhar todo o processo de criaccedilatildeo edesenvolvimento do aplicativo que apoacutes finalizado foi batizado com o nome Queue

Comeccedilando com um problema para o qual o grupo almejava oferecer uma soluccedilatildeoacabou-se por adentrar-se um pouco no campo da Estatiacutestica e estudar diversas metodo-logias que poderiam ser uacuteteis para fornecer um caacutelculo de previsatildeo de espera meacutedia porperiacuteodo aplicaccedilatildeo da teoria das filas e utilizaccedilatildeo de redes neurais

Atraveacutes de uma parceria com a empresa GetIn obteve-se acesso a uma grande quantidadede dados e foi possiacutevel utilizaacute-los em anaacutelises feitas nas metodologias escolhidas conseguindoassim resultados relevantes Por meio destes foi feita a escolha de um dos meacutetodos para ocaacutelculo da previsatildeo de filas a meacutedia por periacuteodo

Aleacutem desses estudos ao longo do ano o grupo aprendeu a desenvolver para a plata-forma Android sobre a qual nenhum dos integrantes tinha conhecimento preacutevio Tambeacutemfoi possiacutevel aprender e utilizar a metodologia aacutegil com Scrum para guiar o processo de de-senvolvimento

Ao fim do ciclo de desenvolvimento conseguiu-se entregar um aplicativo em funciona-mento que fornece a previsatildeo de espera no instante da consulta de estabelecimentos cadas-trados no banco de dados armazenado na nuvem

Na versatildeo atual do aplicativo natildeo foi implementado um sistema para o cadastro de novosestabelecimentos Isso soacute eacute possiacutevel atraveacutes da inserccedilatildeo direta no banco de dados atraveacutes dainterface fornecida pelo console do Firebase Atualmente estatildeo cadastrados 5 restaurantesos quais foram visitados durante o desenvolvimento do projeto Para que o cadastro deestabelecimentos escale seria necessaacuterio a implementaccedilatildeo de uma funcionalidade que permitaao usuaacuterio adicionar novos estabelecimentos a partir de locais disponiacuteveis na API de locaisda Google

43

45

46 APEcircNDICE A

Apecircndice A

Dados coletados

Figura A1 Dados de tempo de espera para grupos de tamanhos variados para cada horaacuterio e emcada dia da semana obtidos em entrevista em restaurantes Outback Steakhouse Shopping Uniatildeo nomecircs de outubro

Referecircncias Bibliograacuteficas

[1] Backpropagation httpmbpsourceforgenet Accesso em Janeiro 2017 14

[2] Bitbucket httpsbitbucketorgproduct Accesso em Dezembro 2016 19

[3] Crowdsourcing httpswwwmerriam-webstercomdictionarycrowdsourcing Ac-cesso em Novembro 2016 21

[4] Designing a survey httpwwwsciencebuddiesorgscience-fair-projectsproject_ideasSoc_surveyshtml Accesso em Outubro 2016 4 23

[5] Facebook httpswwwfacebookcom Accesso em Novembro 2016 24

[6] Firebase httpsfirebasegooglecom Accesso em Agosto 2016 20

[7] Getin app httpswwwgetinappcombrhomesao-paulo Accesso em Novembro2016 9

[8] Git 11 primeiros passos - sobre controle de versatildeo httpsgit-scmcombookpt-brv1Primeiros-passos-Sobre-Controle-de-Vers Accesso em Novembro 2016 19

[9] Google forms httpsdocsgooglecomforms Accesso em Novembro 2016 23

[10] Guia definitivo do project model canvas Project Builder 3

[11] Jsonorg introducing json httpwwwjsonorg Accesso em Novembro 2016 17

[12] Manifesto para desenvolvimento Aacutegil de software httpagilemanifestoorgisoptbrmanifestohtml Accesso em Novembro 2016 5

[13] Nosql httpsenwikipediaorgwikiNoSQL Accesso em Novembro 2016 20

[14] Outback steakhouse httpswwwoutbackcombrhome Accesso em Novembro 20169

[15] Restful api development with lumen microframework httpsbelitsoftcomlaravel-development-servicesapi-development Accesso em Novembro 2016 17

[16] Scrum httpswwwatlassiancomagilescrum Accesso em Novembro 2016 5

[17] Smartphone os market share 2016 q2 httpwwwidccomprodservsmartphone-os-market-sharejsp Accesso em Novembro 2016 15

[18] Smartphone os sales market share kantar worldpanel comtech httpwwwkantarworldpanelcomsmartphone-os-market-share Accesso em Novembro 2016 15

[19] Sourcetree httpswwwsourcetreeappcom Accesso em Dezembro 2016 19

47

48 REFEREcircNCIAS BIBLIOGRAacuteFICAS

[20] Sql httpsptkhanacademyorgcomputingcomputer-programmingsql Accesso emDezembro 2016 20

[21] Trello httpstrellocom Accesso em Novembro 2016 6

[22] Usability test httpsenwikipediaorgwikiUsability_testing Accesso em Novembro2016 36

[23] Versionone 2012 agile dev survey httpswwwversiononecompdf7th-Annual-State-of-Agile-Development-Surveypdf Accesso em Novembro 2016 5

[24] Waze httpswwwwazecom Accesso em Novembro 2016 1

[25] What is an open source httpsopensourcecomresourceswhat-open-source Accessoem Novembro 2016 15

[26] Xml tutorial httpwwww3schoolscomxml Accesso em Novembro 2016 17

[27] Paulo F Cabral dos Anjos Jr Aron Ifanger Maciel Christopher Silva de Paacutedua Com-posiccedilatildeo de carteiras de accedilotildees utilizando modelo de redes neurais artificiais e modelo derisco e retorno de Markowitz 2012 14

[28] Google Distance matrix api documentation httpsdevelopersgooglecommapsdocumentationdistance-matrix Accesso em Novembro 2016 17

[29] Alan Klement Designing features using job stories httpsblogintercomcomusing-job-stories-design-features-ui-ux Accesso em Novembro 2016 6

[30] Azmat Nafees Queuing theory and its application analysis of the sales checkout opera-tion in ica supermarket httpwwwstatisticsduseessaysD07ENafeespdf Accessoem Novembro 2016 12

[31] Eric Ries A Startup Enxuta Lua de papel primeira ediccedilatildeo edition 2012 3

  • Introduccedilatildeo
    • Motivaccedilatildeo
    • Trabalho Proposto
    • Estrutura da monografia
      • Estudos Preliminares
        • Desenvolvimento de Startups
          • Desenvolvimento de Questionaacuterios
            • Metodologia Aacutegil
            • Jobs to be done
            • Caacutelculo da previsatildeo do tempo de espera na fila
              • Descriccedilatildeo do problema
              • Meacutetodos de caacutelculo da espera
                  • Tecnologias utilizadas
                    • O sistema Android
                      • Organizaccedilatildeo de uma aplicaccedilatildeo Android
                        • JSON
                        • Google APIs
                        • Localizaccedilatildeo do Usuaacuterio
                        • Controle de Versatildeo
                        • Banco de dados
                          • Firebase
                            • Crowdsourcing
                              • Desenvolvimento do Projeto
                                • Pesquisa de Mercado
                                  • Pesquisa com o usuaacuterio
                                    • Projeto do Aplicativo
                                    • Aplicaccedilatildeo dos meacutetodos de caacutelculo de espera
                                      • Aplicando a meacutedia por periacuteodo
                                      • Aplicando teoria das filas
                                      • Aplicando redes neurais
                                      • Conclusatildeo sobre os meacutetodos estudados
                                        • Definiccedilatildeo da Interface do aplicativo
                                        • Explicaccedilatildeo das funcionalidades
                                        • Implementaccedilatildeo do banco de dados
                                          • Conclusatildeo
                                          • Dados coletados
                                          • Referecircncias Bibliograacuteficas

44 DEFINICcedilAtildeO DA INTERFACE DO APLICATIVO 37

Uma contextualizaccedilatildeo eacute feita para o voluntaacuterio e entatildeo uma tarefa eacute passada para sercompletada Os integrantes do grupo observam dificuldades enfrentadas pelo entrevistado etomam notas Esse teste eacute repetido algumas vezes e seu resultado eacute coletado para avaliaccedilatildeoe modificaccedilatildeo das funcionalidades

Figura 415 Tela de detalhes de um restaurante(segunda versatildeo)

Notou-se que algumas funcionalidadespareceram confusas e natildeo intuitivas porexemplo natildeo ficou claro se o tempo mos-trado era de trajeto ou de espera na filanem qual era o meio de transporte utili-zado

Logo esse protoacutetipo foi reformuladocom o intuito de melhorar a experi-ecircncia do usuaacuterio com o nosso aplica-tivo

Foram colocados aleacutem do tempo deespera da fila o tempo que o usuaacuteriolevaria para chegar ateacute o local selecio-nado (conforme o tipo de transporte es-colhido) e a quantidade estimada de pes-soas na fila O tempo total (espera so-mado ao tempo de deslocamento) ga-nhou destaque entre as informaccedilotildees doestabelecimento e o botatildeo que direcionao usuaacuterio ao trajeto ficou mais especiacute-fico

Tambeacutem cogitou-se a possibilidade deadicionar login e um perfil de usuaacuteriojunto com uma lista de restaurantes favo-ritos

O fluxo das telas deste novo protoacutetipo ficou como mostra o esquema a seguir

38 DESENVOLVIMENTO DO PROJETO 44

Figura 416 Fluxo de telas do segundo protoacutetipo

44 DEFINICcedilAtildeO DA INTERFACE DO APLICATIVO 39

Figura 417 Tela de detalhes de um restaurante(terceira versatildeo)

Apoacutes outras avaliaccedilotildees mais algumaspequenas alteraccedilotildees foram realizadas nainterface Foi decidido que seria inviaacute-vel estimar o nuacutemero de pessoas nafila entatildeo essa funcionalidade foi remo-vida

Notificaccedilotildees foram adicionadas paraquando o usuaacuterio estiver parado na aacutereado restaurante para que ele possa con-tribuir com informaccedilotildees sobre a fila quepegou aleacutem de um botatildeo de contri-buiccedilatildeo ter sido inserido na tela ini-cial

40 DESENVOLVIMENTO DO PROJETO 45

O fluxo de telas do aplicativo atual ficou da seguinte forma

Figura 418 Fluxo de telas do terceiro protoacutetipo

46 EXPLICACcedilAtildeO DAS FUNCIONALIDADES 41

45 Explicaccedilatildeo das funcionalidadesEsta seccedilatildeo explica as funcionalidades do produto utilizando a figura 418

A tela inicial (3) exibe uma lista de restaurantes incluindo seus respectivos tempos detrajeto e tempo de espera na fila Ao clicar no botatildeo ldquo+rdquo uma caixa de diaacutelogo eacute aberta(4) onde eacute possiacutevel adicionar o tempo que o usuaacuterio esperou na fila Primeiro eacute escolhido orestaurante depois a data e hora que a pessoa chegou na fila e por fim o tempo de esperaem minutos Ao tocar em ldquoEnviar Feedback rdquo os dados satildeo incluiacutedos no banco de dados eatualizados para os outros usuaacuterios Assim eacute apicado o conceito de Crowdsourcing no apli-cativo

Ao tocar em um item da lista de restaurantes seraacute aberta a tela de detalhes de um res-taurante (5) na qual eacute possiacutevel ver com mais clareza os tempos de trajeto e espera o tempototal o endereccedilo do estabelecimento e um pequeno mapa centrado no local Pressionandoo botatildeo ldquoDireccedilotildeesrdquo o usuaacuterio seraacute redirecionado ao aplicativo de mapas de sua preferecircnciano caso do exemplo (8) o Google Maps jaacute traccedilando a rota da localizaccedilatildeo do usuaacuterio para oestabelecimento em questatildeo

Novamente na tela inicial tocando no iacutecone de lupa eacute possiacutevel realizar uma busca digi-tando o nome do estabelecimento na caixa de texto a qual exibe sugestotildees dependendo doque foi digitado Ao clicar em um dos resultados da busca o usuaacuterio eacute novamente direcionadopara a tela de detalhes do restaurante (5)

Tambeacutem eacute possiacutevel tocar no iacutecone de mapa na tela inicial onde seraacute mostrado um mapacentrado na localizaccedilatildeo do usuaacuterio

Ao ficar parado por um tempo em um mesmo local proacuteximo a um estabelecimentocadastrado o usuaacuterio eacute perguntado em uma notificaccedilatildeo quanto tempo ele permaneceu nafila Ao tocar na notificaccedilatildeo a caixa de diaacutelogo para feedback do usuaacuterio seraacute aberta (4) jaacutecom o restaurante preenchido e apoacutes o feedback a janela seraacute fechada e os dados enviadosao banco de dados

46 Implementaccedilatildeo do banco de dadosO banco de dados do aplicativo foi modelado e populado em forma de aacutervore (Fi-

gura 419) de forma a facilitar o acesso aos dados necessaacuterios ao aplicativo No primeironiacutevel estatildeo os ids dos restaurantes Cada id de restaurante guarda a localizaccedilatildeo (latitudelongitude) do restaurante o nome o endereccedilo e um objeto fila O objeto fila guarda todos osdias da semana (domingo a saacutebado) e cada dia da semana possui 24 campos um para cadahora do dia Cada hora possui o tempo meacutedio de espera da fila naquela hora e um peso paraesse tempo O peso eacute um valor que aumenta de acordo com o nuacutemero de feedbacks dadospara que o novo valor do tempo meacutedio seja calculado de forma consistente

Modelamos o banco de dados de uma forma que respeitasse uma hierarquia de dados

42 DESENVOLVIMENTO DO PROJETO 46

Figura 419 Aacutervore que ilustra a organizaccedilatildeo de um restaurante no banco de dados

Com o banco de dados jaacute populado o aplicativo faz consultas e atualizaccedilotildees de dadosConsultas satildeo feitas ao criar a tela de listagem de restaurantes e de detalhes de um restau-rante consultado As atualizaccedilotildees satildeo feitas quando o usuaacuterio manda o feedback de tempo deespera em um estabelecimento em determinado horaacuterio o aplicativo calcula a nova meacutedia eatualiza o campo do respectivo horaacuterio

Capiacutetulo 5

Conclusatildeo

Ao longo dos capiacutetulos deste trabalho pocircde-se acompanhar todo o processo de criaccedilatildeo edesenvolvimento do aplicativo que apoacutes finalizado foi batizado com o nome Queue

Comeccedilando com um problema para o qual o grupo almejava oferecer uma soluccedilatildeoacabou-se por adentrar-se um pouco no campo da Estatiacutestica e estudar diversas metodo-logias que poderiam ser uacuteteis para fornecer um caacutelculo de previsatildeo de espera meacutedia porperiacuteodo aplicaccedilatildeo da teoria das filas e utilizaccedilatildeo de redes neurais

Atraveacutes de uma parceria com a empresa GetIn obteve-se acesso a uma grande quantidadede dados e foi possiacutevel utilizaacute-los em anaacutelises feitas nas metodologias escolhidas conseguindoassim resultados relevantes Por meio destes foi feita a escolha de um dos meacutetodos para ocaacutelculo da previsatildeo de filas a meacutedia por periacuteodo

Aleacutem desses estudos ao longo do ano o grupo aprendeu a desenvolver para a plata-forma Android sobre a qual nenhum dos integrantes tinha conhecimento preacutevio Tambeacutemfoi possiacutevel aprender e utilizar a metodologia aacutegil com Scrum para guiar o processo de de-senvolvimento

Ao fim do ciclo de desenvolvimento conseguiu-se entregar um aplicativo em funciona-mento que fornece a previsatildeo de espera no instante da consulta de estabelecimentos cadas-trados no banco de dados armazenado na nuvem

Na versatildeo atual do aplicativo natildeo foi implementado um sistema para o cadastro de novosestabelecimentos Isso soacute eacute possiacutevel atraveacutes da inserccedilatildeo direta no banco de dados atraveacutes dainterface fornecida pelo console do Firebase Atualmente estatildeo cadastrados 5 restaurantesos quais foram visitados durante o desenvolvimento do projeto Para que o cadastro deestabelecimentos escale seria necessaacuterio a implementaccedilatildeo de uma funcionalidade que permitaao usuaacuterio adicionar novos estabelecimentos a partir de locais disponiacuteveis na API de locaisda Google

43

45

46 APEcircNDICE A

Apecircndice A

Dados coletados

Figura A1 Dados de tempo de espera para grupos de tamanhos variados para cada horaacuterio e emcada dia da semana obtidos em entrevista em restaurantes Outback Steakhouse Shopping Uniatildeo nomecircs de outubro

Referecircncias Bibliograacuteficas

[1] Backpropagation httpmbpsourceforgenet Accesso em Janeiro 2017 14

[2] Bitbucket httpsbitbucketorgproduct Accesso em Dezembro 2016 19

[3] Crowdsourcing httpswwwmerriam-webstercomdictionarycrowdsourcing Ac-cesso em Novembro 2016 21

[4] Designing a survey httpwwwsciencebuddiesorgscience-fair-projectsproject_ideasSoc_surveyshtml Accesso em Outubro 2016 4 23

[5] Facebook httpswwwfacebookcom Accesso em Novembro 2016 24

[6] Firebase httpsfirebasegooglecom Accesso em Agosto 2016 20

[7] Getin app httpswwwgetinappcombrhomesao-paulo Accesso em Novembro2016 9

[8] Git 11 primeiros passos - sobre controle de versatildeo httpsgit-scmcombookpt-brv1Primeiros-passos-Sobre-Controle-de-Vers Accesso em Novembro 2016 19

[9] Google forms httpsdocsgooglecomforms Accesso em Novembro 2016 23

[10] Guia definitivo do project model canvas Project Builder 3

[11] Jsonorg introducing json httpwwwjsonorg Accesso em Novembro 2016 17

[12] Manifesto para desenvolvimento Aacutegil de software httpagilemanifestoorgisoptbrmanifestohtml Accesso em Novembro 2016 5

[13] Nosql httpsenwikipediaorgwikiNoSQL Accesso em Novembro 2016 20

[14] Outback steakhouse httpswwwoutbackcombrhome Accesso em Novembro 20169

[15] Restful api development with lumen microframework httpsbelitsoftcomlaravel-development-servicesapi-development Accesso em Novembro 2016 17

[16] Scrum httpswwwatlassiancomagilescrum Accesso em Novembro 2016 5

[17] Smartphone os market share 2016 q2 httpwwwidccomprodservsmartphone-os-market-sharejsp Accesso em Novembro 2016 15

[18] Smartphone os sales market share kantar worldpanel comtech httpwwwkantarworldpanelcomsmartphone-os-market-share Accesso em Novembro 2016 15

[19] Sourcetree httpswwwsourcetreeappcom Accesso em Dezembro 2016 19

47

48 REFEREcircNCIAS BIBLIOGRAacuteFICAS

[20] Sql httpsptkhanacademyorgcomputingcomputer-programmingsql Accesso emDezembro 2016 20

[21] Trello httpstrellocom Accesso em Novembro 2016 6

[22] Usability test httpsenwikipediaorgwikiUsability_testing Accesso em Novembro2016 36

[23] Versionone 2012 agile dev survey httpswwwversiononecompdf7th-Annual-State-of-Agile-Development-Surveypdf Accesso em Novembro 2016 5

[24] Waze httpswwwwazecom Accesso em Novembro 2016 1

[25] What is an open source httpsopensourcecomresourceswhat-open-source Accessoem Novembro 2016 15

[26] Xml tutorial httpwwww3schoolscomxml Accesso em Novembro 2016 17

[27] Paulo F Cabral dos Anjos Jr Aron Ifanger Maciel Christopher Silva de Paacutedua Com-posiccedilatildeo de carteiras de accedilotildees utilizando modelo de redes neurais artificiais e modelo derisco e retorno de Markowitz 2012 14

[28] Google Distance matrix api documentation httpsdevelopersgooglecommapsdocumentationdistance-matrix Accesso em Novembro 2016 17

[29] Alan Klement Designing features using job stories httpsblogintercomcomusing-job-stories-design-features-ui-ux Accesso em Novembro 2016 6

[30] Azmat Nafees Queuing theory and its application analysis of the sales checkout opera-tion in ica supermarket httpwwwstatisticsduseessaysD07ENafeespdf Accessoem Novembro 2016 12

[31] Eric Ries A Startup Enxuta Lua de papel primeira ediccedilatildeo edition 2012 3

  • Introduccedilatildeo
    • Motivaccedilatildeo
    • Trabalho Proposto
    • Estrutura da monografia
      • Estudos Preliminares
        • Desenvolvimento de Startups
          • Desenvolvimento de Questionaacuterios
            • Metodologia Aacutegil
            • Jobs to be done
            • Caacutelculo da previsatildeo do tempo de espera na fila
              • Descriccedilatildeo do problema
              • Meacutetodos de caacutelculo da espera
                  • Tecnologias utilizadas
                    • O sistema Android
                      • Organizaccedilatildeo de uma aplicaccedilatildeo Android
                        • JSON
                        • Google APIs
                        • Localizaccedilatildeo do Usuaacuterio
                        • Controle de Versatildeo
                        • Banco de dados
                          • Firebase
                            • Crowdsourcing
                              • Desenvolvimento do Projeto
                                • Pesquisa de Mercado
                                  • Pesquisa com o usuaacuterio
                                    • Projeto do Aplicativo
                                    • Aplicaccedilatildeo dos meacutetodos de caacutelculo de espera
                                      • Aplicando a meacutedia por periacuteodo
                                      • Aplicando teoria das filas
                                      • Aplicando redes neurais
                                      • Conclusatildeo sobre os meacutetodos estudados
                                        • Definiccedilatildeo da Interface do aplicativo
                                        • Explicaccedilatildeo das funcionalidades
                                        • Implementaccedilatildeo do banco de dados
                                          • Conclusatildeo
                                          • Dados coletados
                                          • Referecircncias Bibliograacuteficas

38 DESENVOLVIMENTO DO PROJETO 44

Figura 416 Fluxo de telas do segundo protoacutetipo

44 DEFINICcedilAtildeO DA INTERFACE DO APLICATIVO 39

Figura 417 Tela de detalhes de um restaurante(terceira versatildeo)

Apoacutes outras avaliaccedilotildees mais algumaspequenas alteraccedilotildees foram realizadas nainterface Foi decidido que seria inviaacute-vel estimar o nuacutemero de pessoas nafila entatildeo essa funcionalidade foi remo-vida

Notificaccedilotildees foram adicionadas paraquando o usuaacuterio estiver parado na aacutereado restaurante para que ele possa con-tribuir com informaccedilotildees sobre a fila quepegou aleacutem de um botatildeo de contri-buiccedilatildeo ter sido inserido na tela ini-cial

40 DESENVOLVIMENTO DO PROJETO 45

O fluxo de telas do aplicativo atual ficou da seguinte forma

Figura 418 Fluxo de telas do terceiro protoacutetipo

46 EXPLICACcedilAtildeO DAS FUNCIONALIDADES 41

45 Explicaccedilatildeo das funcionalidadesEsta seccedilatildeo explica as funcionalidades do produto utilizando a figura 418

A tela inicial (3) exibe uma lista de restaurantes incluindo seus respectivos tempos detrajeto e tempo de espera na fila Ao clicar no botatildeo ldquo+rdquo uma caixa de diaacutelogo eacute aberta(4) onde eacute possiacutevel adicionar o tempo que o usuaacuterio esperou na fila Primeiro eacute escolhido orestaurante depois a data e hora que a pessoa chegou na fila e por fim o tempo de esperaem minutos Ao tocar em ldquoEnviar Feedback rdquo os dados satildeo incluiacutedos no banco de dados eatualizados para os outros usuaacuterios Assim eacute apicado o conceito de Crowdsourcing no apli-cativo

Ao tocar em um item da lista de restaurantes seraacute aberta a tela de detalhes de um res-taurante (5) na qual eacute possiacutevel ver com mais clareza os tempos de trajeto e espera o tempototal o endereccedilo do estabelecimento e um pequeno mapa centrado no local Pressionandoo botatildeo ldquoDireccedilotildeesrdquo o usuaacuterio seraacute redirecionado ao aplicativo de mapas de sua preferecircnciano caso do exemplo (8) o Google Maps jaacute traccedilando a rota da localizaccedilatildeo do usuaacuterio para oestabelecimento em questatildeo

Novamente na tela inicial tocando no iacutecone de lupa eacute possiacutevel realizar uma busca digi-tando o nome do estabelecimento na caixa de texto a qual exibe sugestotildees dependendo doque foi digitado Ao clicar em um dos resultados da busca o usuaacuterio eacute novamente direcionadopara a tela de detalhes do restaurante (5)

Tambeacutem eacute possiacutevel tocar no iacutecone de mapa na tela inicial onde seraacute mostrado um mapacentrado na localizaccedilatildeo do usuaacuterio

Ao ficar parado por um tempo em um mesmo local proacuteximo a um estabelecimentocadastrado o usuaacuterio eacute perguntado em uma notificaccedilatildeo quanto tempo ele permaneceu nafila Ao tocar na notificaccedilatildeo a caixa de diaacutelogo para feedback do usuaacuterio seraacute aberta (4) jaacutecom o restaurante preenchido e apoacutes o feedback a janela seraacute fechada e os dados enviadosao banco de dados

46 Implementaccedilatildeo do banco de dadosO banco de dados do aplicativo foi modelado e populado em forma de aacutervore (Fi-

gura 419) de forma a facilitar o acesso aos dados necessaacuterios ao aplicativo No primeironiacutevel estatildeo os ids dos restaurantes Cada id de restaurante guarda a localizaccedilatildeo (latitudelongitude) do restaurante o nome o endereccedilo e um objeto fila O objeto fila guarda todos osdias da semana (domingo a saacutebado) e cada dia da semana possui 24 campos um para cadahora do dia Cada hora possui o tempo meacutedio de espera da fila naquela hora e um peso paraesse tempo O peso eacute um valor que aumenta de acordo com o nuacutemero de feedbacks dadospara que o novo valor do tempo meacutedio seja calculado de forma consistente

Modelamos o banco de dados de uma forma que respeitasse uma hierarquia de dados

42 DESENVOLVIMENTO DO PROJETO 46

Figura 419 Aacutervore que ilustra a organizaccedilatildeo de um restaurante no banco de dados

Com o banco de dados jaacute populado o aplicativo faz consultas e atualizaccedilotildees de dadosConsultas satildeo feitas ao criar a tela de listagem de restaurantes e de detalhes de um restau-rante consultado As atualizaccedilotildees satildeo feitas quando o usuaacuterio manda o feedback de tempo deespera em um estabelecimento em determinado horaacuterio o aplicativo calcula a nova meacutedia eatualiza o campo do respectivo horaacuterio

Capiacutetulo 5

Conclusatildeo

Ao longo dos capiacutetulos deste trabalho pocircde-se acompanhar todo o processo de criaccedilatildeo edesenvolvimento do aplicativo que apoacutes finalizado foi batizado com o nome Queue

Comeccedilando com um problema para o qual o grupo almejava oferecer uma soluccedilatildeoacabou-se por adentrar-se um pouco no campo da Estatiacutestica e estudar diversas metodo-logias que poderiam ser uacuteteis para fornecer um caacutelculo de previsatildeo de espera meacutedia porperiacuteodo aplicaccedilatildeo da teoria das filas e utilizaccedilatildeo de redes neurais

Atraveacutes de uma parceria com a empresa GetIn obteve-se acesso a uma grande quantidadede dados e foi possiacutevel utilizaacute-los em anaacutelises feitas nas metodologias escolhidas conseguindoassim resultados relevantes Por meio destes foi feita a escolha de um dos meacutetodos para ocaacutelculo da previsatildeo de filas a meacutedia por periacuteodo

Aleacutem desses estudos ao longo do ano o grupo aprendeu a desenvolver para a plata-forma Android sobre a qual nenhum dos integrantes tinha conhecimento preacutevio Tambeacutemfoi possiacutevel aprender e utilizar a metodologia aacutegil com Scrum para guiar o processo de de-senvolvimento

Ao fim do ciclo de desenvolvimento conseguiu-se entregar um aplicativo em funciona-mento que fornece a previsatildeo de espera no instante da consulta de estabelecimentos cadas-trados no banco de dados armazenado na nuvem

Na versatildeo atual do aplicativo natildeo foi implementado um sistema para o cadastro de novosestabelecimentos Isso soacute eacute possiacutevel atraveacutes da inserccedilatildeo direta no banco de dados atraveacutes dainterface fornecida pelo console do Firebase Atualmente estatildeo cadastrados 5 restaurantesos quais foram visitados durante o desenvolvimento do projeto Para que o cadastro deestabelecimentos escale seria necessaacuterio a implementaccedilatildeo de uma funcionalidade que permitaao usuaacuterio adicionar novos estabelecimentos a partir de locais disponiacuteveis na API de locaisda Google

43

45

46 APEcircNDICE A

Apecircndice A

Dados coletados

Figura A1 Dados de tempo de espera para grupos de tamanhos variados para cada horaacuterio e emcada dia da semana obtidos em entrevista em restaurantes Outback Steakhouse Shopping Uniatildeo nomecircs de outubro

Referecircncias Bibliograacuteficas

[1] Backpropagation httpmbpsourceforgenet Accesso em Janeiro 2017 14

[2] Bitbucket httpsbitbucketorgproduct Accesso em Dezembro 2016 19

[3] Crowdsourcing httpswwwmerriam-webstercomdictionarycrowdsourcing Ac-cesso em Novembro 2016 21

[4] Designing a survey httpwwwsciencebuddiesorgscience-fair-projectsproject_ideasSoc_surveyshtml Accesso em Outubro 2016 4 23

[5] Facebook httpswwwfacebookcom Accesso em Novembro 2016 24

[6] Firebase httpsfirebasegooglecom Accesso em Agosto 2016 20

[7] Getin app httpswwwgetinappcombrhomesao-paulo Accesso em Novembro2016 9

[8] Git 11 primeiros passos - sobre controle de versatildeo httpsgit-scmcombookpt-brv1Primeiros-passos-Sobre-Controle-de-Vers Accesso em Novembro 2016 19

[9] Google forms httpsdocsgooglecomforms Accesso em Novembro 2016 23

[10] Guia definitivo do project model canvas Project Builder 3

[11] Jsonorg introducing json httpwwwjsonorg Accesso em Novembro 2016 17

[12] Manifesto para desenvolvimento Aacutegil de software httpagilemanifestoorgisoptbrmanifestohtml Accesso em Novembro 2016 5

[13] Nosql httpsenwikipediaorgwikiNoSQL Accesso em Novembro 2016 20

[14] Outback steakhouse httpswwwoutbackcombrhome Accesso em Novembro 20169

[15] Restful api development with lumen microframework httpsbelitsoftcomlaravel-development-servicesapi-development Accesso em Novembro 2016 17

[16] Scrum httpswwwatlassiancomagilescrum Accesso em Novembro 2016 5

[17] Smartphone os market share 2016 q2 httpwwwidccomprodservsmartphone-os-market-sharejsp Accesso em Novembro 2016 15

[18] Smartphone os sales market share kantar worldpanel comtech httpwwwkantarworldpanelcomsmartphone-os-market-share Accesso em Novembro 2016 15

[19] Sourcetree httpswwwsourcetreeappcom Accesso em Dezembro 2016 19

47

48 REFEREcircNCIAS BIBLIOGRAacuteFICAS

[20] Sql httpsptkhanacademyorgcomputingcomputer-programmingsql Accesso emDezembro 2016 20

[21] Trello httpstrellocom Accesso em Novembro 2016 6

[22] Usability test httpsenwikipediaorgwikiUsability_testing Accesso em Novembro2016 36

[23] Versionone 2012 agile dev survey httpswwwversiononecompdf7th-Annual-State-of-Agile-Development-Surveypdf Accesso em Novembro 2016 5

[24] Waze httpswwwwazecom Accesso em Novembro 2016 1

[25] What is an open source httpsopensourcecomresourceswhat-open-source Accessoem Novembro 2016 15

[26] Xml tutorial httpwwww3schoolscomxml Accesso em Novembro 2016 17

[27] Paulo F Cabral dos Anjos Jr Aron Ifanger Maciel Christopher Silva de Paacutedua Com-posiccedilatildeo de carteiras de accedilotildees utilizando modelo de redes neurais artificiais e modelo derisco e retorno de Markowitz 2012 14

[28] Google Distance matrix api documentation httpsdevelopersgooglecommapsdocumentationdistance-matrix Accesso em Novembro 2016 17

[29] Alan Klement Designing features using job stories httpsblogintercomcomusing-job-stories-design-features-ui-ux Accesso em Novembro 2016 6

[30] Azmat Nafees Queuing theory and its application analysis of the sales checkout opera-tion in ica supermarket httpwwwstatisticsduseessaysD07ENafeespdf Accessoem Novembro 2016 12

[31] Eric Ries A Startup Enxuta Lua de papel primeira ediccedilatildeo edition 2012 3

  • Introduccedilatildeo
    • Motivaccedilatildeo
    • Trabalho Proposto
    • Estrutura da monografia
      • Estudos Preliminares
        • Desenvolvimento de Startups
          • Desenvolvimento de Questionaacuterios
            • Metodologia Aacutegil
            • Jobs to be done
            • Caacutelculo da previsatildeo do tempo de espera na fila
              • Descriccedilatildeo do problema
              • Meacutetodos de caacutelculo da espera
                  • Tecnologias utilizadas
                    • O sistema Android
                      • Organizaccedilatildeo de uma aplicaccedilatildeo Android
                        • JSON
                        • Google APIs
                        • Localizaccedilatildeo do Usuaacuterio
                        • Controle de Versatildeo
                        • Banco de dados
                          • Firebase
                            • Crowdsourcing
                              • Desenvolvimento do Projeto
                                • Pesquisa de Mercado
                                  • Pesquisa com o usuaacuterio
                                    • Projeto do Aplicativo
                                    • Aplicaccedilatildeo dos meacutetodos de caacutelculo de espera
                                      • Aplicando a meacutedia por periacuteodo
                                      • Aplicando teoria das filas
                                      • Aplicando redes neurais
                                      • Conclusatildeo sobre os meacutetodos estudados
                                        • Definiccedilatildeo da Interface do aplicativo
                                        • Explicaccedilatildeo das funcionalidades
                                        • Implementaccedilatildeo do banco de dados
                                          • Conclusatildeo
                                          • Dados coletados
                                          • Referecircncias Bibliograacuteficas

44 DEFINICcedilAtildeO DA INTERFACE DO APLICATIVO 39

Figura 417 Tela de detalhes de um restaurante(terceira versatildeo)

Apoacutes outras avaliaccedilotildees mais algumaspequenas alteraccedilotildees foram realizadas nainterface Foi decidido que seria inviaacute-vel estimar o nuacutemero de pessoas nafila entatildeo essa funcionalidade foi remo-vida

Notificaccedilotildees foram adicionadas paraquando o usuaacuterio estiver parado na aacutereado restaurante para que ele possa con-tribuir com informaccedilotildees sobre a fila quepegou aleacutem de um botatildeo de contri-buiccedilatildeo ter sido inserido na tela ini-cial

40 DESENVOLVIMENTO DO PROJETO 45

O fluxo de telas do aplicativo atual ficou da seguinte forma

Figura 418 Fluxo de telas do terceiro protoacutetipo

46 EXPLICACcedilAtildeO DAS FUNCIONALIDADES 41

45 Explicaccedilatildeo das funcionalidadesEsta seccedilatildeo explica as funcionalidades do produto utilizando a figura 418

A tela inicial (3) exibe uma lista de restaurantes incluindo seus respectivos tempos detrajeto e tempo de espera na fila Ao clicar no botatildeo ldquo+rdquo uma caixa de diaacutelogo eacute aberta(4) onde eacute possiacutevel adicionar o tempo que o usuaacuterio esperou na fila Primeiro eacute escolhido orestaurante depois a data e hora que a pessoa chegou na fila e por fim o tempo de esperaem minutos Ao tocar em ldquoEnviar Feedback rdquo os dados satildeo incluiacutedos no banco de dados eatualizados para os outros usuaacuterios Assim eacute apicado o conceito de Crowdsourcing no apli-cativo

Ao tocar em um item da lista de restaurantes seraacute aberta a tela de detalhes de um res-taurante (5) na qual eacute possiacutevel ver com mais clareza os tempos de trajeto e espera o tempototal o endereccedilo do estabelecimento e um pequeno mapa centrado no local Pressionandoo botatildeo ldquoDireccedilotildeesrdquo o usuaacuterio seraacute redirecionado ao aplicativo de mapas de sua preferecircnciano caso do exemplo (8) o Google Maps jaacute traccedilando a rota da localizaccedilatildeo do usuaacuterio para oestabelecimento em questatildeo

Novamente na tela inicial tocando no iacutecone de lupa eacute possiacutevel realizar uma busca digi-tando o nome do estabelecimento na caixa de texto a qual exibe sugestotildees dependendo doque foi digitado Ao clicar em um dos resultados da busca o usuaacuterio eacute novamente direcionadopara a tela de detalhes do restaurante (5)

Tambeacutem eacute possiacutevel tocar no iacutecone de mapa na tela inicial onde seraacute mostrado um mapacentrado na localizaccedilatildeo do usuaacuterio

Ao ficar parado por um tempo em um mesmo local proacuteximo a um estabelecimentocadastrado o usuaacuterio eacute perguntado em uma notificaccedilatildeo quanto tempo ele permaneceu nafila Ao tocar na notificaccedilatildeo a caixa de diaacutelogo para feedback do usuaacuterio seraacute aberta (4) jaacutecom o restaurante preenchido e apoacutes o feedback a janela seraacute fechada e os dados enviadosao banco de dados

46 Implementaccedilatildeo do banco de dadosO banco de dados do aplicativo foi modelado e populado em forma de aacutervore (Fi-

gura 419) de forma a facilitar o acesso aos dados necessaacuterios ao aplicativo No primeironiacutevel estatildeo os ids dos restaurantes Cada id de restaurante guarda a localizaccedilatildeo (latitudelongitude) do restaurante o nome o endereccedilo e um objeto fila O objeto fila guarda todos osdias da semana (domingo a saacutebado) e cada dia da semana possui 24 campos um para cadahora do dia Cada hora possui o tempo meacutedio de espera da fila naquela hora e um peso paraesse tempo O peso eacute um valor que aumenta de acordo com o nuacutemero de feedbacks dadospara que o novo valor do tempo meacutedio seja calculado de forma consistente

Modelamos o banco de dados de uma forma que respeitasse uma hierarquia de dados

42 DESENVOLVIMENTO DO PROJETO 46

Figura 419 Aacutervore que ilustra a organizaccedilatildeo de um restaurante no banco de dados

Com o banco de dados jaacute populado o aplicativo faz consultas e atualizaccedilotildees de dadosConsultas satildeo feitas ao criar a tela de listagem de restaurantes e de detalhes de um restau-rante consultado As atualizaccedilotildees satildeo feitas quando o usuaacuterio manda o feedback de tempo deespera em um estabelecimento em determinado horaacuterio o aplicativo calcula a nova meacutedia eatualiza o campo do respectivo horaacuterio

Capiacutetulo 5

Conclusatildeo

Ao longo dos capiacutetulos deste trabalho pocircde-se acompanhar todo o processo de criaccedilatildeo edesenvolvimento do aplicativo que apoacutes finalizado foi batizado com o nome Queue

Comeccedilando com um problema para o qual o grupo almejava oferecer uma soluccedilatildeoacabou-se por adentrar-se um pouco no campo da Estatiacutestica e estudar diversas metodo-logias que poderiam ser uacuteteis para fornecer um caacutelculo de previsatildeo de espera meacutedia porperiacuteodo aplicaccedilatildeo da teoria das filas e utilizaccedilatildeo de redes neurais

Atraveacutes de uma parceria com a empresa GetIn obteve-se acesso a uma grande quantidadede dados e foi possiacutevel utilizaacute-los em anaacutelises feitas nas metodologias escolhidas conseguindoassim resultados relevantes Por meio destes foi feita a escolha de um dos meacutetodos para ocaacutelculo da previsatildeo de filas a meacutedia por periacuteodo

Aleacutem desses estudos ao longo do ano o grupo aprendeu a desenvolver para a plata-forma Android sobre a qual nenhum dos integrantes tinha conhecimento preacutevio Tambeacutemfoi possiacutevel aprender e utilizar a metodologia aacutegil com Scrum para guiar o processo de de-senvolvimento

Ao fim do ciclo de desenvolvimento conseguiu-se entregar um aplicativo em funciona-mento que fornece a previsatildeo de espera no instante da consulta de estabelecimentos cadas-trados no banco de dados armazenado na nuvem

Na versatildeo atual do aplicativo natildeo foi implementado um sistema para o cadastro de novosestabelecimentos Isso soacute eacute possiacutevel atraveacutes da inserccedilatildeo direta no banco de dados atraveacutes dainterface fornecida pelo console do Firebase Atualmente estatildeo cadastrados 5 restaurantesos quais foram visitados durante o desenvolvimento do projeto Para que o cadastro deestabelecimentos escale seria necessaacuterio a implementaccedilatildeo de uma funcionalidade que permitaao usuaacuterio adicionar novos estabelecimentos a partir de locais disponiacuteveis na API de locaisda Google

43

45

46 APEcircNDICE A

Apecircndice A

Dados coletados

Figura A1 Dados de tempo de espera para grupos de tamanhos variados para cada horaacuterio e emcada dia da semana obtidos em entrevista em restaurantes Outback Steakhouse Shopping Uniatildeo nomecircs de outubro

Referecircncias Bibliograacuteficas

[1] Backpropagation httpmbpsourceforgenet Accesso em Janeiro 2017 14

[2] Bitbucket httpsbitbucketorgproduct Accesso em Dezembro 2016 19

[3] Crowdsourcing httpswwwmerriam-webstercomdictionarycrowdsourcing Ac-cesso em Novembro 2016 21

[4] Designing a survey httpwwwsciencebuddiesorgscience-fair-projectsproject_ideasSoc_surveyshtml Accesso em Outubro 2016 4 23

[5] Facebook httpswwwfacebookcom Accesso em Novembro 2016 24

[6] Firebase httpsfirebasegooglecom Accesso em Agosto 2016 20

[7] Getin app httpswwwgetinappcombrhomesao-paulo Accesso em Novembro2016 9

[8] Git 11 primeiros passos - sobre controle de versatildeo httpsgit-scmcombookpt-brv1Primeiros-passos-Sobre-Controle-de-Vers Accesso em Novembro 2016 19

[9] Google forms httpsdocsgooglecomforms Accesso em Novembro 2016 23

[10] Guia definitivo do project model canvas Project Builder 3

[11] Jsonorg introducing json httpwwwjsonorg Accesso em Novembro 2016 17

[12] Manifesto para desenvolvimento Aacutegil de software httpagilemanifestoorgisoptbrmanifestohtml Accesso em Novembro 2016 5

[13] Nosql httpsenwikipediaorgwikiNoSQL Accesso em Novembro 2016 20

[14] Outback steakhouse httpswwwoutbackcombrhome Accesso em Novembro 20169

[15] Restful api development with lumen microframework httpsbelitsoftcomlaravel-development-servicesapi-development Accesso em Novembro 2016 17

[16] Scrum httpswwwatlassiancomagilescrum Accesso em Novembro 2016 5

[17] Smartphone os market share 2016 q2 httpwwwidccomprodservsmartphone-os-market-sharejsp Accesso em Novembro 2016 15

[18] Smartphone os sales market share kantar worldpanel comtech httpwwwkantarworldpanelcomsmartphone-os-market-share Accesso em Novembro 2016 15

[19] Sourcetree httpswwwsourcetreeappcom Accesso em Dezembro 2016 19

47

48 REFEREcircNCIAS BIBLIOGRAacuteFICAS

[20] Sql httpsptkhanacademyorgcomputingcomputer-programmingsql Accesso emDezembro 2016 20

[21] Trello httpstrellocom Accesso em Novembro 2016 6

[22] Usability test httpsenwikipediaorgwikiUsability_testing Accesso em Novembro2016 36

[23] Versionone 2012 agile dev survey httpswwwversiononecompdf7th-Annual-State-of-Agile-Development-Surveypdf Accesso em Novembro 2016 5

[24] Waze httpswwwwazecom Accesso em Novembro 2016 1

[25] What is an open source httpsopensourcecomresourceswhat-open-source Accessoem Novembro 2016 15

[26] Xml tutorial httpwwww3schoolscomxml Accesso em Novembro 2016 17

[27] Paulo F Cabral dos Anjos Jr Aron Ifanger Maciel Christopher Silva de Paacutedua Com-posiccedilatildeo de carteiras de accedilotildees utilizando modelo de redes neurais artificiais e modelo derisco e retorno de Markowitz 2012 14

[28] Google Distance matrix api documentation httpsdevelopersgooglecommapsdocumentationdistance-matrix Accesso em Novembro 2016 17

[29] Alan Klement Designing features using job stories httpsblogintercomcomusing-job-stories-design-features-ui-ux Accesso em Novembro 2016 6

[30] Azmat Nafees Queuing theory and its application analysis of the sales checkout opera-tion in ica supermarket httpwwwstatisticsduseessaysD07ENafeespdf Accessoem Novembro 2016 12

[31] Eric Ries A Startup Enxuta Lua de papel primeira ediccedilatildeo edition 2012 3

  • Introduccedilatildeo
    • Motivaccedilatildeo
    • Trabalho Proposto
    • Estrutura da monografia
      • Estudos Preliminares
        • Desenvolvimento de Startups
          • Desenvolvimento de Questionaacuterios
            • Metodologia Aacutegil
            • Jobs to be done
            • Caacutelculo da previsatildeo do tempo de espera na fila
              • Descriccedilatildeo do problema
              • Meacutetodos de caacutelculo da espera
                  • Tecnologias utilizadas
                    • O sistema Android
                      • Organizaccedilatildeo de uma aplicaccedilatildeo Android
                        • JSON
                        • Google APIs
                        • Localizaccedilatildeo do Usuaacuterio
                        • Controle de Versatildeo
                        • Banco de dados
                          • Firebase
                            • Crowdsourcing
                              • Desenvolvimento do Projeto
                                • Pesquisa de Mercado
                                  • Pesquisa com o usuaacuterio
                                    • Projeto do Aplicativo
                                    • Aplicaccedilatildeo dos meacutetodos de caacutelculo de espera
                                      • Aplicando a meacutedia por periacuteodo
                                      • Aplicando teoria das filas
                                      • Aplicando redes neurais
                                      • Conclusatildeo sobre os meacutetodos estudados
                                        • Definiccedilatildeo da Interface do aplicativo
                                        • Explicaccedilatildeo das funcionalidades
                                        • Implementaccedilatildeo do banco de dados
                                          • Conclusatildeo
                                          • Dados coletados
                                          • Referecircncias Bibliograacuteficas

40 DESENVOLVIMENTO DO PROJETO 45

O fluxo de telas do aplicativo atual ficou da seguinte forma

Figura 418 Fluxo de telas do terceiro protoacutetipo

46 EXPLICACcedilAtildeO DAS FUNCIONALIDADES 41

45 Explicaccedilatildeo das funcionalidadesEsta seccedilatildeo explica as funcionalidades do produto utilizando a figura 418

A tela inicial (3) exibe uma lista de restaurantes incluindo seus respectivos tempos detrajeto e tempo de espera na fila Ao clicar no botatildeo ldquo+rdquo uma caixa de diaacutelogo eacute aberta(4) onde eacute possiacutevel adicionar o tempo que o usuaacuterio esperou na fila Primeiro eacute escolhido orestaurante depois a data e hora que a pessoa chegou na fila e por fim o tempo de esperaem minutos Ao tocar em ldquoEnviar Feedback rdquo os dados satildeo incluiacutedos no banco de dados eatualizados para os outros usuaacuterios Assim eacute apicado o conceito de Crowdsourcing no apli-cativo

Ao tocar em um item da lista de restaurantes seraacute aberta a tela de detalhes de um res-taurante (5) na qual eacute possiacutevel ver com mais clareza os tempos de trajeto e espera o tempototal o endereccedilo do estabelecimento e um pequeno mapa centrado no local Pressionandoo botatildeo ldquoDireccedilotildeesrdquo o usuaacuterio seraacute redirecionado ao aplicativo de mapas de sua preferecircnciano caso do exemplo (8) o Google Maps jaacute traccedilando a rota da localizaccedilatildeo do usuaacuterio para oestabelecimento em questatildeo

Novamente na tela inicial tocando no iacutecone de lupa eacute possiacutevel realizar uma busca digi-tando o nome do estabelecimento na caixa de texto a qual exibe sugestotildees dependendo doque foi digitado Ao clicar em um dos resultados da busca o usuaacuterio eacute novamente direcionadopara a tela de detalhes do restaurante (5)

Tambeacutem eacute possiacutevel tocar no iacutecone de mapa na tela inicial onde seraacute mostrado um mapacentrado na localizaccedilatildeo do usuaacuterio

Ao ficar parado por um tempo em um mesmo local proacuteximo a um estabelecimentocadastrado o usuaacuterio eacute perguntado em uma notificaccedilatildeo quanto tempo ele permaneceu nafila Ao tocar na notificaccedilatildeo a caixa de diaacutelogo para feedback do usuaacuterio seraacute aberta (4) jaacutecom o restaurante preenchido e apoacutes o feedback a janela seraacute fechada e os dados enviadosao banco de dados

46 Implementaccedilatildeo do banco de dadosO banco de dados do aplicativo foi modelado e populado em forma de aacutervore (Fi-

gura 419) de forma a facilitar o acesso aos dados necessaacuterios ao aplicativo No primeironiacutevel estatildeo os ids dos restaurantes Cada id de restaurante guarda a localizaccedilatildeo (latitudelongitude) do restaurante o nome o endereccedilo e um objeto fila O objeto fila guarda todos osdias da semana (domingo a saacutebado) e cada dia da semana possui 24 campos um para cadahora do dia Cada hora possui o tempo meacutedio de espera da fila naquela hora e um peso paraesse tempo O peso eacute um valor que aumenta de acordo com o nuacutemero de feedbacks dadospara que o novo valor do tempo meacutedio seja calculado de forma consistente

Modelamos o banco de dados de uma forma que respeitasse uma hierarquia de dados

42 DESENVOLVIMENTO DO PROJETO 46

Figura 419 Aacutervore que ilustra a organizaccedilatildeo de um restaurante no banco de dados

Com o banco de dados jaacute populado o aplicativo faz consultas e atualizaccedilotildees de dadosConsultas satildeo feitas ao criar a tela de listagem de restaurantes e de detalhes de um restau-rante consultado As atualizaccedilotildees satildeo feitas quando o usuaacuterio manda o feedback de tempo deespera em um estabelecimento em determinado horaacuterio o aplicativo calcula a nova meacutedia eatualiza o campo do respectivo horaacuterio

Capiacutetulo 5

Conclusatildeo

Ao longo dos capiacutetulos deste trabalho pocircde-se acompanhar todo o processo de criaccedilatildeo edesenvolvimento do aplicativo que apoacutes finalizado foi batizado com o nome Queue

Comeccedilando com um problema para o qual o grupo almejava oferecer uma soluccedilatildeoacabou-se por adentrar-se um pouco no campo da Estatiacutestica e estudar diversas metodo-logias que poderiam ser uacuteteis para fornecer um caacutelculo de previsatildeo de espera meacutedia porperiacuteodo aplicaccedilatildeo da teoria das filas e utilizaccedilatildeo de redes neurais

Atraveacutes de uma parceria com a empresa GetIn obteve-se acesso a uma grande quantidadede dados e foi possiacutevel utilizaacute-los em anaacutelises feitas nas metodologias escolhidas conseguindoassim resultados relevantes Por meio destes foi feita a escolha de um dos meacutetodos para ocaacutelculo da previsatildeo de filas a meacutedia por periacuteodo

Aleacutem desses estudos ao longo do ano o grupo aprendeu a desenvolver para a plata-forma Android sobre a qual nenhum dos integrantes tinha conhecimento preacutevio Tambeacutemfoi possiacutevel aprender e utilizar a metodologia aacutegil com Scrum para guiar o processo de de-senvolvimento

Ao fim do ciclo de desenvolvimento conseguiu-se entregar um aplicativo em funciona-mento que fornece a previsatildeo de espera no instante da consulta de estabelecimentos cadas-trados no banco de dados armazenado na nuvem

Na versatildeo atual do aplicativo natildeo foi implementado um sistema para o cadastro de novosestabelecimentos Isso soacute eacute possiacutevel atraveacutes da inserccedilatildeo direta no banco de dados atraveacutes dainterface fornecida pelo console do Firebase Atualmente estatildeo cadastrados 5 restaurantesos quais foram visitados durante o desenvolvimento do projeto Para que o cadastro deestabelecimentos escale seria necessaacuterio a implementaccedilatildeo de uma funcionalidade que permitaao usuaacuterio adicionar novos estabelecimentos a partir de locais disponiacuteveis na API de locaisda Google

43

45

46 APEcircNDICE A

Apecircndice A

Dados coletados

Figura A1 Dados de tempo de espera para grupos de tamanhos variados para cada horaacuterio e emcada dia da semana obtidos em entrevista em restaurantes Outback Steakhouse Shopping Uniatildeo nomecircs de outubro

Referecircncias Bibliograacuteficas

[1] Backpropagation httpmbpsourceforgenet Accesso em Janeiro 2017 14

[2] Bitbucket httpsbitbucketorgproduct Accesso em Dezembro 2016 19

[3] Crowdsourcing httpswwwmerriam-webstercomdictionarycrowdsourcing Ac-cesso em Novembro 2016 21

[4] Designing a survey httpwwwsciencebuddiesorgscience-fair-projectsproject_ideasSoc_surveyshtml Accesso em Outubro 2016 4 23

[5] Facebook httpswwwfacebookcom Accesso em Novembro 2016 24

[6] Firebase httpsfirebasegooglecom Accesso em Agosto 2016 20

[7] Getin app httpswwwgetinappcombrhomesao-paulo Accesso em Novembro2016 9

[8] Git 11 primeiros passos - sobre controle de versatildeo httpsgit-scmcombookpt-brv1Primeiros-passos-Sobre-Controle-de-Vers Accesso em Novembro 2016 19

[9] Google forms httpsdocsgooglecomforms Accesso em Novembro 2016 23

[10] Guia definitivo do project model canvas Project Builder 3

[11] Jsonorg introducing json httpwwwjsonorg Accesso em Novembro 2016 17

[12] Manifesto para desenvolvimento Aacutegil de software httpagilemanifestoorgisoptbrmanifestohtml Accesso em Novembro 2016 5

[13] Nosql httpsenwikipediaorgwikiNoSQL Accesso em Novembro 2016 20

[14] Outback steakhouse httpswwwoutbackcombrhome Accesso em Novembro 20169

[15] Restful api development with lumen microframework httpsbelitsoftcomlaravel-development-servicesapi-development Accesso em Novembro 2016 17

[16] Scrum httpswwwatlassiancomagilescrum Accesso em Novembro 2016 5

[17] Smartphone os market share 2016 q2 httpwwwidccomprodservsmartphone-os-market-sharejsp Accesso em Novembro 2016 15

[18] Smartphone os sales market share kantar worldpanel comtech httpwwwkantarworldpanelcomsmartphone-os-market-share Accesso em Novembro 2016 15

[19] Sourcetree httpswwwsourcetreeappcom Accesso em Dezembro 2016 19

47

48 REFEREcircNCIAS BIBLIOGRAacuteFICAS

[20] Sql httpsptkhanacademyorgcomputingcomputer-programmingsql Accesso emDezembro 2016 20

[21] Trello httpstrellocom Accesso em Novembro 2016 6

[22] Usability test httpsenwikipediaorgwikiUsability_testing Accesso em Novembro2016 36

[23] Versionone 2012 agile dev survey httpswwwversiononecompdf7th-Annual-State-of-Agile-Development-Surveypdf Accesso em Novembro 2016 5

[24] Waze httpswwwwazecom Accesso em Novembro 2016 1

[25] What is an open source httpsopensourcecomresourceswhat-open-source Accessoem Novembro 2016 15

[26] Xml tutorial httpwwww3schoolscomxml Accesso em Novembro 2016 17

[27] Paulo F Cabral dos Anjos Jr Aron Ifanger Maciel Christopher Silva de Paacutedua Com-posiccedilatildeo de carteiras de accedilotildees utilizando modelo de redes neurais artificiais e modelo derisco e retorno de Markowitz 2012 14

[28] Google Distance matrix api documentation httpsdevelopersgooglecommapsdocumentationdistance-matrix Accesso em Novembro 2016 17

[29] Alan Klement Designing features using job stories httpsblogintercomcomusing-job-stories-design-features-ui-ux Accesso em Novembro 2016 6

[30] Azmat Nafees Queuing theory and its application analysis of the sales checkout opera-tion in ica supermarket httpwwwstatisticsduseessaysD07ENafeespdf Accessoem Novembro 2016 12

[31] Eric Ries A Startup Enxuta Lua de papel primeira ediccedilatildeo edition 2012 3

  • Introduccedilatildeo
    • Motivaccedilatildeo
    • Trabalho Proposto
    • Estrutura da monografia
      • Estudos Preliminares
        • Desenvolvimento de Startups
          • Desenvolvimento de Questionaacuterios
            • Metodologia Aacutegil
            • Jobs to be done
            • Caacutelculo da previsatildeo do tempo de espera na fila
              • Descriccedilatildeo do problema
              • Meacutetodos de caacutelculo da espera
                  • Tecnologias utilizadas
                    • O sistema Android
                      • Organizaccedilatildeo de uma aplicaccedilatildeo Android
                        • JSON
                        • Google APIs
                        • Localizaccedilatildeo do Usuaacuterio
                        • Controle de Versatildeo
                        • Banco de dados
                          • Firebase
                            • Crowdsourcing
                              • Desenvolvimento do Projeto
                                • Pesquisa de Mercado
                                  • Pesquisa com o usuaacuterio
                                    • Projeto do Aplicativo
                                    • Aplicaccedilatildeo dos meacutetodos de caacutelculo de espera
                                      • Aplicando a meacutedia por periacuteodo
                                      • Aplicando teoria das filas
                                      • Aplicando redes neurais
                                      • Conclusatildeo sobre os meacutetodos estudados
                                        • Definiccedilatildeo da Interface do aplicativo
                                        • Explicaccedilatildeo das funcionalidades
                                        • Implementaccedilatildeo do banco de dados
                                          • Conclusatildeo
                                          • Dados coletados
                                          • Referecircncias Bibliograacuteficas

46 EXPLICACcedilAtildeO DAS FUNCIONALIDADES 41

45 Explicaccedilatildeo das funcionalidadesEsta seccedilatildeo explica as funcionalidades do produto utilizando a figura 418

A tela inicial (3) exibe uma lista de restaurantes incluindo seus respectivos tempos detrajeto e tempo de espera na fila Ao clicar no botatildeo ldquo+rdquo uma caixa de diaacutelogo eacute aberta(4) onde eacute possiacutevel adicionar o tempo que o usuaacuterio esperou na fila Primeiro eacute escolhido orestaurante depois a data e hora que a pessoa chegou na fila e por fim o tempo de esperaem minutos Ao tocar em ldquoEnviar Feedback rdquo os dados satildeo incluiacutedos no banco de dados eatualizados para os outros usuaacuterios Assim eacute apicado o conceito de Crowdsourcing no apli-cativo

Ao tocar em um item da lista de restaurantes seraacute aberta a tela de detalhes de um res-taurante (5) na qual eacute possiacutevel ver com mais clareza os tempos de trajeto e espera o tempototal o endereccedilo do estabelecimento e um pequeno mapa centrado no local Pressionandoo botatildeo ldquoDireccedilotildeesrdquo o usuaacuterio seraacute redirecionado ao aplicativo de mapas de sua preferecircnciano caso do exemplo (8) o Google Maps jaacute traccedilando a rota da localizaccedilatildeo do usuaacuterio para oestabelecimento em questatildeo

Novamente na tela inicial tocando no iacutecone de lupa eacute possiacutevel realizar uma busca digi-tando o nome do estabelecimento na caixa de texto a qual exibe sugestotildees dependendo doque foi digitado Ao clicar em um dos resultados da busca o usuaacuterio eacute novamente direcionadopara a tela de detalhes do restaurante (5)

Tambeacutem eacute possiacutevel tocar no iacutecone de mapa na tela inicial onde seraacute mostrado um mapacentrado na localizaccedilatildeo do usuaacuterio

Ao ficar parado por um tempo em um mesmo local proacuteximo a um estabelecimentocadastrado o usuaacuterio eacute perguntado em uma notificaccedilatildeo quanto tempo ele permaneceu nafila Ao tocar na notificaccedilatildeo a caixa de diaacutelogo para feedback do usuaacuterio seraacute aberta (4) jaacutecom o restaurante preenchido e apoacutes o feedback a janela seraacute fechada e os dados enviadosao banco de dados

46 Implementaccedilatildeo do banco de dadosO banco de dados do aplicativo foi modelado e populado em forma de aacutervore (Fi-

gura 419) de forma a facilitar o acesso aos dados necessaacuterios ao aplicativo No primeironiacutevel estatildeo os ids dos restaurantes Cada id de restaurante guarda a localizaccedilatildeo (latitudelongitude) do restaurante o nome o endereccedilo e um objeto fila O objeto fila guarda todos osdias da semana (domingo a saacutebado) e cada dia da semana possui 24 campos um para cadahora do dia Cada hora possui o tempo meacutedio de espera da fila naquela hora e um peso paraesse tempo O peso eacute um valor que aumenta de acordo com o nuacutemero de feedbacks dadospara que o novo valor do tempo meacutedio seja calculado de forma consistente

Modelamos o banco de dados de uma forma que respeitasse uma hierarquia de dados

42 DESENVOLVIMENTO DO PROJETO 46

Figura 419 Aacutervore que ilustra a organizaccedilatildeo de um restaurante no banco de dados

Com o banco de dados jaacute populado o aplicativo faz consultas e atualizaccedilotildees de dadosConsultas satildeo feitas ao criar a tela de listagem de restaurantes e de detalhes de um restau-rante consultado As atualizaccedilotildees satildeo feitas quando o usuaacuterio manda o feedback de tempo deespera em um estabelecimento em determinado horaacuterio o aplicativo calcula a nova meacutedia eatualiza o campo do respectivo horaacuterio

Capiacutetulo 5

Conclusatildeo

Ao longo dos capiacutetulos deste trabalho pocircde-se acompanhar todo o processo de criaccedilatildeo edesenvolvimento do aplicativo que apoacutes finalizado foi batizado com o nome Queue

Comeccedilando com um problema para o qual o grupo almejava oferecer uma soluccedilatildeoacabou-se por adentrar-se um pouco no campo da Estatiacutestica e estudar diversas metodo-logias que poderiam ser uacuteteis para fornecer um caacutelculo de previsatildeo de espera meacutedia porperiacuteodo aplicaccedilatildeo da teoria das filas e utilizaccedilatildeo de redes neurais

Atraveacutes de uma parceria com a empresa GetIn obteve-se acesso a uma grande quantidadede dados e foi possiacutevel utilizaacute-los em anaacutelises feitas nas metodologias escolhidas conseguindoassim resultados relevantes Por meio destes foi feita a escolha de um dos meacutetodos para ocaacutelculo da previsatildeo de filas a meacutedia por periacuteodo

Aleacutem desses estudos ao longo do ano o grupo aprendeu a desenvolver para a plata-forma Android sobre a qual nenhum dos integrantes tinha conhecimento preacutevio Tambeacutemfoi possiacutevel aprender e utilizar a metodologia aacutegil com Scrum para guiar o processo de de-senvolvimento

Ao fim do ciclo de desenvolvimento conseguiu-se entregar um aplicativo em funciona-mento que fornece a previsatildeo de espera no instante da consulta de estabelecimentos cadas-trados no banco de dados armazenado na nuvem

Na versatildeo atual do aplicativo natildeo foi implementado um sistema para o cadastro de novosestabelecimentos Isso soacute eacute possiacutevel atraveacutes da inserccedilatildeo direta no banco de dados atraveacutes dainterface fornecida pelo console do Firebase Atualmente estatildeo cadastrados 5 restaurantesos quais foram visitados durante o desenvolvimento do projeto Para que o cadastro deestabelecimentos escale seria necessaacuterio a implementaccedilatildeo de uma funcionalidade que permitaao usuaacuterio adicionar novos estabelecimentos a partir de locais disponiacuteveis na API de locaisda Google

43

45

46 APEcircNDICE A

Apecircndice A

Dados coletados

Figura A1 Dados de tempo de espera para grupos de tamanhos variados para cada horaacuterio e emcada dia da semana obtidos em entrevista em restaurantes Outback Steakhouse Shopping Uniatildeo nomecircs de outubro

Referecircncias Bibliograacuteficas

[1] Backpropagation httpmbpsourceforgenet Accesso em Janeiro 2017 14

[2] Bitbucket httpsbitbucketorgproduct Accesso em Dezembro 2016 19

[3] Crowdsourcing httpswwwmerriam-webstercomdictionarycrowdsourcing Ac-cesso em Novembro 2016 21

[4] Designing a survey httpwwwsciencebuddiesorgscience-fair-projectsproject_ideasSoc_surveyshtml Accesso em Outubro 2016 4 23

[5] Facebook httpswwwfacebookcom Accesso em Novembro 2016 24

[6] Firebase httpsfirebasegooglecom Accesso em Agosto 2016 20

[7] Getin app httpswwwgetinappcombrhomesao-paulo Accesso em Novembro2016 9

[8] Git 11 primeiros passos - sobre controle de versatildeo httpsgit-scmcombookpt-brv1Primeiros-passos-Sobre-Controle-de-Vers Accesso em Novembro 2016 19

[9] Google forms httpsdocsgooglecomforms Accesso em Novembro 2016 23

[10] Guia definitivo do project model canvas Project Builder 3

[11] Jsonorg introducing json httpwwwjsonorg Accesso em Novembro 2016 17

[12] Manifesto para desenvolvimento Aacutegil de software httpagilemanifestoorgisoptbrmanifestohtml Accesso em Novembro 2016 5

[13] Nosql httpsenwikipediaorgwikiNoSQL Accesso em Novembro 2016 20

[14] Outback steakhouse httpswwwoutbackcombrhome Accesso em Novembro 20169

[15] Restful api development with lumen microframework httpsbelitsoftcomlaravel-development-servicesapi-development Accesso em Novembro 2016 17

[16] Scrum httpswwwatlassiancomagilescrum Accesso em Novembro 2016 5

[17] Smartphone os market share 2016 q2 httpwwwidccomprodservsmartphone-os-market-sharejsp Accesso em Novembro 2016 15

[18] Smartphone os sales market share kantar worldpanel comtech httpwwwkantarworldpanelcomsmartphone-os-market-share Accesso em Novembro 2016 15

[19] Sourcetree httpswwwsourcetreeappcom Accesso em Dezembro 2016 19

47

48 REFEREcircNCIAS BIBLIOGRAacuteFICAS

[20] Sql httpsptkhanacademyorgcomputingcomputer-programmingsql Accesso emDezembro 2016 20

[21] Trello httpstrellocom Accesso em Novembro 2016 6

[22] Usability test httpsenwikipediaorgwikiUsability_testing Accesso em Novembro2016 36

[23] Versionone 2012 agile dev survey httpswwwversiononecompdf7th-Annual-State-of-Agile-Development-Surveypdf Accesso em Novembro 2016 5

[24] Waze httpswwwwazecom Accesso em Novembro 2016 1

[25] What is an open source httpsopensourcecomresourceswhat-open-source Accessoem Novembro 2016 15

[26] Xml tutorial httpwwww3schoolscomxml Accesso em Novembro 2016 17

[27] Paulo F Cabral dos Anjos Jr Aron Ifanger Maciel Christopher Silva de Paacutedua Com-posiccedilatildeo de carteiras de accedilotildees utilizando modelo de redes neurais artificiais e modelo derisco e retorno de Markowitz 2012 14

[28] Google Distance matrix api documentation httpsdevelopersgooglecommapsdocumentationdistance-matrix Accesso em Novembro 2016 17

[29] Alan Klement Designing features using job stories httpsblogintercomcomusing-job-stories-design-features-ui-ux Accesso em Novembro 2016 6

[30] Azmat Nafees Queuing theory and its application analysis of the sales checkout opera-tion in ica supermarket httpwwwstatisticsduseessaysD07ENafeespdf Accessoem Novembro 2016 12

[31] Eric Ries A Startup Enxuta Lua de papel primeira ediccedilatildeo edition 2012 3

  • Introduccedilatildeo
    • Motivaccedilatildeo
    • Trabalho Proposto
    • Estrutura da monografia
      • Estudos Preliminares
        • Desenvolvimento de Startups
          • Desenvolvimento de Questionaacuterios
            • Metodologia Aacutegil
            • Jobs to be done
            • Caacutelculo da previsatildeo do tempo de espera na fila
              • Descriccedilatildeo do problema
              • Meacutetodos de caacutelculo da espera
                  • Tecnologias utilizadas
                    • O sistema Android
                      • Organizaccedilatildeo de uma aplicaccedilatildeo Android
                        • JSON
                        • Google APIs
                        • Localizaccedilatildeo do Usuaacuterio
                        • Controle de Versatildeo
                        • Banco de dados
                          • Firebase
                            • Crowdsourcing
                              • Desenvolvimento do Projeto
                                • Pesquisa de Mercado
                                  • Pesquisa com o usuaacuterio
                                    • Projeto do Aplicativo
                                    • Aplicaccedilatildeo dos meacutetodos de caacutelculo de espera
                                      • Aplicando a meacutedia por periacuteodo
                                      • Aplicando teoria das filas
                                      • Aplicando redes neurais
                                      • Conclusatildeo sobre os meacutetodos estudados
                                        • Definiccedilatildeo da Interface do aplicativo
                                        • Explicaccedilatildeo das funcionalidades
                                        • Implementaccedilatildeo do banco de dados
                                          • Conclusatildeo
                                          • Dados coletados
                                          • Referecircncias Bibliograacuteficas

42 DESENVOLVIMENTO DO PROJETO 46

Figura 419 Aacutervore que ilustra a organizaccedilatildeo de um restaurante no banco de dados

Com o banco de dados jaacute populado o aplicativo faz consultas e atualizaccedilotildees de dadosConsultas satildeo feitas ao criar a tela de listagem de restaurantes e de detalhes de um restau-rante consultado As atualizaccedilotildees satildeo feitas quando o usuaacuterio manda o feedback de tempo deespera em um estabelecimento em determinado horaacuterio o aplicativo calcula a nova meacutedia eatualiza o campo do respectivo horaacuterio

Capiacutetulo 5

Conclusatildeo

Ao longo dos capiacutetulos deste trabalho pocircde-se acompanhar todo o processo de criaccedilatildeo edesenvolvimento do aplicativo que apoacutes finalizado foi batizado com o nome Queue

Comeccedilando com um problema para o qual o grupo almejava oferecer uma soluccedilatildeoacabou-se por adentrar-se um pouco no campo da Estatiacutestica e estudar diversas metodo-logias que poderiam ser uacuteteis para fornecer um caacutelculo de previsatildeo de espera meacutedia porperiacuteodo aplicaccedilatildeo da teoria das filas e utilizaccedilatildeo de redes neurais

Atraveacutes de uma parceria com a empresa GetIn obteve-se acesso a uma grande quantidadede dados e foi possiacutevel utilizaacute-los em anaacutelises feitas nas metodologias escolhidas conseguindoassim resultados relevantes Por meio destes foi feita a escolha de um dos meacutetodos para ocaacutelculo da previsatildeo de filas a meacutedia por periacuteodo

Aleacutem desses estudos ao longo do ano o grupo aprendeu a desenvolver para a plata-forma Android sobre a qual nenhum dos integrantes tinha conhecimento preacutevio Tambeacutemfoi possiacutevel aprender e utilizar a metodologia aacutegil com Scrum para guiar o processo de de-senvolvimento

Ao fim do ciclo de desenvolvimento conseguiu-se entregar um aplicativo em funciona-mento que fornece a previsatildeo de espera no instante da consulta de estabelecimentos cadas-trados no banco de dados armazenado na nuvem

Na versatildeo atual do aplicativo natildeo foi implementado um sistema para o cadastro de novosestabelecimentos Isso soacute eacute possiacutevel atraveacutes da inserccedilatildeo direta no banco de dados atraveacutes dainterface fornecida pelo console do Firebase Atualmente estatildeo cadastrados 5 restaurantesos quais foram visitados durante o desenvolvimento do projeto Para que o cadastro deestabelecimentos escale seria necessaacuterio a implementaccedilatildeo de uma funcionalidade que permitaao usuaacuterio adicionar novos estabelecimentos a partir de locais disponiacuteveis na API de locaisda Google

43

45

46 APEcircNDICE A

Apecircndice A

Dados coletados

Figura A1 Dados de tempo de espera para grupos de tamanhos variados para cada horaacuterio e emcada dia da semana obtidos em entrevista em restaurantes Outback Steakhouse Shopping Uniatildeo nomecircs de outubro

Referecircncias Bibliograacuteficas

[1] Backpropagation httpmbpsourceforgenet Accesso em Janeiro 2017 14

[2] Bitbucket httpsbitbucketorgproduct Accesso em Dezembro 2016 19

[3] Crowdsourcing httpswwwmerriam-webstercomdictionarycrowdsourcing Ac-cesso em Novembro 2016 21

[4] Designing a survey httpwwwsciencebuddiesorgscience-fair-projectsproject_ideasSoc_surveyshtml Accesso em Outubro 2016 4 23

[5] Facebook httpswwwfacebookcom Accesso em Novembro 2016 24

[6] Firebase httpsfirebasegooglecom Accesso em Agosto 2016 20

[7] Getin app httpswwwgetinappcombrhomesao-paulo Accesso em Novembro2016 9

[8] Git 11 primeiros passos - sobre controle de versatildeo httpsgit-scmcombookpt-brv1Primeiros-passos-Sobre-Controle-de-Vers Accesso em Novembro 2016 19

[9] Google forms httpsdocsgooglecomforms Accesso em Novembro 2016 23

[10] Guia definitivo do project model canvas Project Builder 3

[11] Jsonorg introducing json httpwwwjsonorg Accesso em Novembro 2016 17

[12] Manifesto para desenvolvimento Aacutegil de software httpagilemanifestoorgisoptbrmanifestohtml Accesso em Novembro 2016 5

[13] Nosql httpsenwikipediaorgwikiNoSQL Accesso em Novembro 2016 20

[14] Outback steakhouse httpswwwoutbackcombrhome Accesso em Novembro 20169

[15] Restful api development with lumen microframework httpsbelitsoftcomlaravel-development-servicesapi-development Accesso em Novembro 2016 17

[16] Scrum httpswwwatlassiancomagilescrum Accesso em Novembro 2016 5

[17] Smartphone os market share 2016 q2 httpwwwidccomprodservsmartphone-os-market-sharejsp Accesso em Novembro 2016 15

[18] Smartphone os sales market share kantar worldpanel comtech httpwwwkantarworldpanelcomsmartphone-os-market-share Accesso em Novembro 2016 15

[19] Sourcetree httpswwwsourcetreeappcom Accesso em Dezembro 2016 19

47

48 REFEREcircNCIAS BIBLIOGRAacuteFICAS

[20] Sql httpsptkhanacademyorgcomputingcomputer-programmingsql Accesso emDezembro 2016 20

[21] Trello httpstrellocom Accesso em Novembro 2016 6

[22] Usability test httpsenwikipediaorgwikiUsability_testing Accesso em Novembro2016 36

[23] Versionone 2012 agile dev survey httpswwwversiononecompdf7th-Annual-State-of-Agile-Development-Surveypdf Accesso em Novembro 2016 5

[24] Waze httpswwwwazecom Accesso em Novembro 2016 1

[25] What is an open source httpsopensourcecomresourceswhat-open-source Accessoem Novembro 2016 15

[26] Xml tutorial httpwwww3schoolscomxml Accesso em Novembro 2016 17

[27] Paulo F Cabral dos Anjos Jr Aron Ifanger Maciel Christopher Silva de Paacutedua Com-posiccedilatildeo de carteiras de accedilotildees utilizando modelo de redes neurais artificiais e modelo derisco e retorno de Markowitz 2012 14

[28] Google Distance matrix api documentation httpsdevelopersgooglecommapsdocumentationdistance-matrix Accesso em Novembro 2016 17

[29] Alan Klement Designing features using job stories httpsblogintercomcomusing-job-stories-design-features-ui-ux Accesso em Novembro 2016 6

[30] Azmat Nafees Queuing theory and its application analysis of the sales checkout opera-tion in ica supermarket httpwwwstatisticsduseessaysD07ENafeespdf Accessoem Novembro 2016 12

[31] Eric Ries A Startup Enxuta Lua de papel primeira ediccedilatildeo edition 2012 3

  • Introduccedilatildeo
    • Motivaccedilatildeo
    • Trabalho Proposto
    • Estrutura da monografia
      • Estudos Preliminares
        • Desenvolvimento de Startups
          • Desenvolvimento de Questionaacuterios
            • Metodologia Aacutegil
            • Jobs to be done
            • Caacutelculo da previsatildeo do tempo de espera na fila
              • Descriccedilatildeo do problema
              • Meacutetodos de caacutelculo da espera
                  • Tecnologias utilizadas
                    • O sistema Android
                      • Organizaccedilatildeo de uma aplicaccedilatildeo Android
                        • JSON
                        • Google APIs
                        • Localizaccedilatildeo do Usuaacuterio
                        • Controle de Versatildeo
                        • Banco de dados
                          • Firebase
                            • Crowdsourcing
                              • Desenvolvimento do Projeto
                                • Pesquisa de Mercado
                                  • Pesquisa com o usuaacuterio
                                    • Projeto do Aplicativo
                                    • Aplicaccedilatildeo dos meacutetodos de caacutelculo de espera
                                      • Aplicando a meacutedia por periacuteodo
                                      • Aplicando teoria das filas
                                      • Aplicando redes neurais
                                      • Conclusatildeo sobre os meacutetodos estudados
                                        • Definiccedilatildeo da Interface do aplicativo
                                        • Explicaccedilatildeo das funcionalidades
                                        • Implementaccedilatildeo do banco de dados
                                          • Conclusatildeo
                                          • Dados coletados
                                          • Referecircncias Bibliograacuteficas

Capiacutetulo 5

Conclusatildeo

Ao longo dos capiacutetulos deste trabalho pocircde-se acompanhar todo o processo de criaccedilatildeo edesenvolvimento do aplicativo que apoacutes finalizado foi batizado com o nome Queue

Comeccedilando com um problema para o qual o grupo almejava oferecer uma soluccedilatildeoacabou-se por adentrar-se um pouco no campo da Estatiacutestica e estudar diversas metodo-logias que poderiam ser uacuteteis para fornecer um caacutelculo de previsatildeo de espera meacutedia porperiacuteodo aplicaccedilatildeo da teoria das filas e utilizaccedilatildeo de redes neurais

Atraveacutes de uma parceria com a empresa GetIn obteve-se acesso a uma grande quantidadede dados e foi possiacutevel utilizaacute-los em anaacutelises feitas nas metodologias escolhidas conseguindoassim resultados relevantes Por meio destes foi feita a escolha de um dos meacutetodos para ocaacutelculo da previsatildeo de filas a meacutedia por periacuteodo

Aleacutem desses estudos ao longo do ano o grupo aprendeu a desenvolver para a plata-forma Android sobre a qual nenhum dos integrantes tinha conhecimento preacutevio Tambeacutemfoi possiacutevel aprender e utilizar a metodologia aacutegil com Scrum para guiar o processo de de-senvolvimento

Ao fim do ciclo de desenvolvimento conseguiu-se entregar um aplicativo em funciona-mento que fornece a previsatildeo de espera no instante da consulta de estabelecimentos cadas-trados no banco de dados armazenado na nuvem

Na versatildeo atual do aplicativo natildeo foi implementado um sistema para o cadastro de novosestabelecimentos Isso soacute eacute possiacutevel atraveacutes da inserccedilatildeo direta no banco de dados atraveacutes dainterface fornecida pelo console do Firebase Atualmente estatildeo cadastrados 5 restaurantesos quais foram visitados durante o desenvolvimento do projeto Para que o cadastro deestabelecimentos escale seria necessaacuterio a implementaccedilatildeo de uma funcionalidade que permitaao usuaacuterio adicionar novos estabelecimentos a partir de locais disponiacuteveis na API de locaisda Google

43

45

46 APEcircNDICE A

Apecircndice A

Dados coletados

Figura A1 Dados de tempo de espera para grupos de tamanhos variados para cada horaacuterio e emcada dia da semana obtidos em entrevista em restaurantes Outback Steakhouse Shopping Uniatildeo nomecircs de outubro

Referecircncias Bibliograacuteficas

[1] Backpropagation httpmbpsourceforgenet Accesso em Janeiro 2017 14

[2] Bitbucket httpsbitbucketorgproduct Accesso em Dezembro 2016 19

[3] Crowdsourcing httpswwwmerriam-webstercomdictionarycrowdsourcing Ac-cesso em Novembro 2016 21

[4] Designing a survey httpwwwsciencebuddiesorgscience-fair-projectsproject_ideasSoc_surveyshtml Accesso em Outubro 2016 4 23

[5] Facebook httpswwwfacebookcom Accesso em Novembro 2016 24

[6] Firebase httpsfirebasegooglecom Accesso em Agosto 2016 20

[7] Getin app httpswwwgetinappcombrhomesao-paulo Accesso em Novembro2016 9

[8] Git 11 primeiros passos - sobre controle de versatildeo httpsgit-scmcombookpt-brv1Primeiros-passos-Sobre-Controle-de-Vers Accesso em Novembro 2016 19

[9] Google forms httpsdocsgooglecomforms Accesso em Novembro 2016 23

[10] Guia definitivo do project model canvas Project Builder 3

[11] Jsonorg introducing json httpwwwjsonorg Accesso em Novembro 2016 17

[12] Manifesto para desenvolvimento Aacutegil de software httpagilemanifestoorgisoptbrmanifestohtml Accesso em Novembro 2016 5

[13] Nosql httpsenwikipediaorgwikiNoSQL Accesso em Novembro 2016 20

[14] Outback steakhouse httpswwwoutbackcombrhome Accesso em Novembro 20169

[15] Restful api development with lumen microframework httpsbelitsoftcomlaravel-development-servicesapi-development Accesso em Novembro 2016 17

[16] Scrum httpswwwatlassiancomagilescrum Accesso em Novembro 2016 5

[17] Smartphone os market share 2016 q2 httpwwwidccomprodservsmartphone-os-market-sharejsp Accesso em Novembro 2016 15

[18] Smartphone os sales market share kantar worldpanel comtech httpwwwkantarworldpanelcomsmartphone-os-market-share Accesso em Novembro 2016 15

[19] Sourcetree httpswwwsourcetreeappcom Accesso em Dezembro 2016 19

47

48 REFEREcircNCIAS BIBLIOGRAacuteFICAS

[20] Sql httpsptkhanacademyorgcomputingcomputer-programmingsql Accesso emDezembro 2016 20

[21] Trello httpstrellocom Accesso em Novembro 2016 6

[22] Usability test httpsenwikipediaorgwikiUsability_testing Accesso em Novembro2016 36

[23] Versionone 2012 agile dev survey httpswwwversiononecompdf7th-Annual-State-of-Agile-Development-Surveypdf Accesso em Novembro 2016 5

[24] Waze httpswwwwazecom Accesso em Novembro 2016 1

[25] What is an open source httpsopensourcecomresourceswhat-open-source Accessoem Novembro 2016 15

[26] Xml tutorial httpwwww3schoolscomxml Accesso em Novembro 2016 17

[27] Paulo F Cabral dos Anjos Jr Aron Ifanger Maciel Christopher Silva de Paacutedua Com-posiccedilatildeo de carteiras de accedilotildees utilizando modelo de redes neurais artificiais e modelo derisco e retorno de Markowitz 2012 14

[28] Google Distance matrix api documentation httpsdevelopersgooglecommapsdocumentationdistance-matrix Accesso em Novembro 2016 17

[29] Alan Klement Designing features using job stories httpsblogintercomcomusing-job-stories-design-features-ui-ux Accesso em Novembro 2016 6

[30] Azmat Nafees Queuing theory and its application analysis of the sales checkout opera-tion in ica supermarket httpwwwstatisticsduseessaysD07ENafeespdf Accessoem Novembro 2016 12

[31] Eric Ries A Startup Enxuta Lua de papel primeira ediccedilatildeo edition 2012 3

  • Introduccedilatildeo
    • Motivaccedilatildeo
    • Trabalho Proposto
    • Estrutura da monografia
      • Estudos Preliminares
        • Desenvolvimento de Startups
          • Desenvolvimento de Questionaacuterios
            • Metodologia Aacutegil
            • Jobs to be done
            • Caacutelculo da previsatildeo do tempo de espera na fila
              • Descriccedilatildeo do problema
              • Meacutetodos de caacutelculo da espera
                  • Tecnologias utilizadas
                    • O sistema Android
                      • Organizaccedilatildeo de uma aplicaccedilatildeo Android
                        • JSON
                        • Google APIs
                        • Localizaccedilatildeo do Usuaacuterio
                        • Controle de Versatildeo
                        • Banco de dados
                          • Firebase
                            • Crowdsourcing
                              • Desenvolvimento do Projeto
                                • Pesquisa de Mercado
                                  • Pesquisa com o usuaacuterio
                                    • Projeto do Aplicativo
                                    • Aplicaccedilatildeo dos meacutetodos de caacutelculo de espera
                                      • Aplicando a meacutedia por periacuteodo
                                      • Aplicando teoria das filas
                                      • Aplicando redes neurais
                                      • Conclusatildeo sobre os meacutetodos estudados
                                        • Definiccedilatildeo da Interface do aplicativo
                                        • Explicaccedilatildeo das funcionalidades
                                        • Implementaccedilatildeo do banco de dados
                                          • Conclusatildeo
                                          • Dados coletados
                                          • Referecircncias Bibliograacuteficas

45

46 APEcircNDICE A

Apecircndice A

Dados coletados

Figura A1 Dados de tempo de espera para grupos de tamanhos variados para cada horaacuterio e emcada dia da semana obtidos em entrevista em restaurantes Outback Steakhouse Shopping Uniatildeo nomecircs de outubro

Referecircncias Bibliograacuteficas

[1] Backpropagation httpmbpsourceforgenet Accesso em Janeiro 2017 14

[2] Bitbucket httpsbitbucketorgproduct Accesso em Dezembro 2016 19

[3] Crowdsourcing httpswwwmerriam-webstercomdictionarycrowdsourcing Ac-cesso em Novembro 2016 21

[4] Designing a survey httpwwwsciencebuddiesorgscience-fair-projectsproject_ideasSoc_surveyshtml Accesso em Outubro 2016 4 23

[5] Facebook httpswwwfacebookcom Accesso em Novembro 2016 24

[6] Firebase httpsfirebasegooglecom Accesso em Agosto 2016 20

[7] Getin app httpswwwgetinappcombrhomesao-paulo Accesso em Novembro2016 9

[8] Git 11 primeiros passos - sobre controle de versatildeo httpsgit-scmcombookpt-brv1Primeiros-passos-Sobre-Controle-de-Vers Accesso em Novembro 2016 19

[9] Google forms httpsdocsgooglecomforms Accesso em Novembro 2016 23

[10] Guia definitivo do project model canvas Project Builder 3

[11] Jsonorg introducing json httpwwwjsonorg Accesso em Novembro 2016 17

[12] Manifesto para desenvolvimento Aacutegil de software httpagilemanifestoorgisoptbrmanifestohtml Accesso em Novembro 2016 5

[13] Nosql httpsenwikipediaorgwikiNoSQL Accesso em Novembro 2016 20

[14] Outback steakhouse httpswwwoutbackcombrhome Accesso em Novembro 20169

[15] Restful api development with lumen microframework httpsbelitsoftcomlaravel-development-servicesapi-development Accesso em Novembro 2016 17

[16] Scrum httpswwwatlassiancomagilescrum Accesso em Novembro 2016 5

[17] Smartphone os market share 2016 q2 httpwwwidccomprodservsmartphone-os-market-sharejsp Accesso em Novembro 2016 15

[18] Smartphone os sales market share kantar worldpanel comtech httpwwwkantarworldpanelcomsmartphone-os-market-share Accesso em Novembro 2016 15

[19] Sourcetree httpswwwsourcetreeappcom Accesso em Dezembro 2016 19

47

48 REFEREcircNCIAS BIBLIOGRAacuteFICAS

[20] Sql httpsptkhanacademyorgcomputingcomputer-programmingsql Accesso emDezembro 2016 20

[21] Trello httpstrellocom Accesso em Novembro 2016 6

[22] Usability test httpsenwikipediaorgwikiUsability_testing Accesso em Novembro2016 36

[23] Versionone 2012 agile dev survey httpswwwversiononecompdf7th-Annual-State-of-Agile-Development-Surveypdf Accesso em Novembro 2016 5

[24] Waze httpswwwwazecom Accesso em Novembro 2016 1

[25] What is an open source httpsopensourcecomresourceswhat-open-source Accessoem Novembro 2016 15

[26] Xml tutorial httpwwww3schoolscomxml Accesso em Novembro 2016 17

[27] Paulo F Cabral dos Anjos Jr Aron Ifanger Maciel Christopher Silva de Paacutedua Com-posiccedilatildeo de carteiras de accedilotildees utilizando modelo de redes neurais artificiais e modelo derisco e retorno de Markowitz 2012 14

[28] Google Distance matrix api documentation httpsdevelopersgooglecommapsdocumentationdistance-matrix Accesso em Novembro 2016 17

[29] Alan Klement Designing features using job stories httpsblogintercomcomusing-job-stories-design-features-ui-ux Accesso em Novembro 2016 6

[30] Azmat Nafees Queuing theory and its application analysis of the sales checkout opera-tion in ica supermarket httpwwwstatisticsduseessaysD07ENafeespdf Accessoem Novembro 2016 12

[31] Eric Ries A Startup Enxuta Lua de papel primeira ediccedilatildeo edition 2012 3

  • Introduccedilatildeo
    • Motivaccedilatildeo
    • Trabalho Proposto
    • Estrutura da monografia
      • Estudos Preliminares
        • Desenvolvimento de Startups
          • Desenvolvimento de Questionaacuterios
            • Metodologia Aacutegil
            • Jobs to be done
            • Caacutelculo da previsatildeo do tempo de espera na fila
              • Descriccedilatildeo do problema
              • Meacutetodos de caacutelculo da espera
                  • Tecnologias utilizadas
                    • O sistema Android
                      • Organizaccedilatildeo de uma aplicaccedilatildeo Android
                        • JSON
                        • Google APIs
                        • Localizaccedilatildeo do Usuaacuterio
                        • Controle de Versatildeo
                        • Banco de dados
                          • Firebase
                            • Crowdsourcing
                              • Desenvolvimento do Projeto
                                • Pesquisa de Mercado
                                  • Pesquisa com o usuaacuterio
                                    • Projeto do Aplicativo
                                    • Aplicaccedilatildeo dos meacutetodos de caacutelculo de espera
                                      • Aplicando a meacutedia por periacuteodo
                                      • Aplicando teoria das filas
                                      • Aplicando redes neurais
                                      • Conclusatildeo sobre os meacutetodos estudados
                                        • Definiccedilatildeo da Interface do aplicativo
                                        • Explicaccedilatildeo das funcionalidades
                                        • Implementaccedilatildeo do banco de dados
                                          • Conclusatildeo
                                          • Dados coletados
                                          • Referecircncias Bibliograacuteficas

46 APEcircNDICE A

Apecircndice A

Dados coletados

Figura A1 Dados de tempo de espera para grupos de tamanhos variados para cada horaacuterio e emcada dia da semana obtidos em entrevista em restaurantes Outback Steakhouse Shopping Uniatildeo nomecircs de outubro

Referecircncias Bibliograacuteficas

[1] Backpropagation httpmbpsourceforgenet Accesso em Janeiro 2017 14

[2] Bitbucket httpsbitbucketorgproduct Accesso em Dezembro 2016 19

[3] Crowdsourcing httpswwwmerriam-webstercomdictionarycrowdsourcing Ac-cesso em Novembro 2016 21

[4] Designing a survey httpwwwsciencebuddiesorgscience-fair-projectsproject_ideasSoc_surveyshtml Accesso em Outubro 2016 4 23

[5] Facebook httpswwwfacebookcom Accesso em Novembro 2016 24

[6] Firebase httpsfirebasegooglecom Accesso em Agosto 2016 20

[7] Getin app httpswwwgetinappcombrhomesao-paulo Accesso em Novembro2016 9

[8] Git 11 primeiros passos - sobre controle de versatildeo httpsgit-scmcombookpt-brv1Primeiros-passos-Sobre-Controle-de-Vers Accesso em Novembro 2016 19

[9] Google forms httpsdocsgooglecomforms Accesso em Novembro 2016 23

[10] Guia definitivo do project model canvas Project Builder 3

[11] Jsonorg introducing json httpwwwjsonorg Accesso em Novembro 2016 17

[12] Manifesto para desenvolvimento Aacutegil de software httpagilemanifestoorgisoptbrmanifestohtml Accesso em Novembro 2016 5

[13] Nosql httpsenwikipediaorgwikiNoSQL Accesso em Novembro 2016 20

[14] Outback steakhouse httpswwwoutbackcombrhome Accesso em Novembro 20169

[15] Restful api development with lumen microframework httpsbelitsoftcomlaravel-development-servicesapi-development Accesso em Novembro 2016 17

[16] Scrum httpswwwatlassiancomagilescrum Accesso em Novembro 2016 5

[17] Smartphone os market share 2016 q2 httpwwwidccomprodservsmartphone-os-market-sharejsp Accesso em Novembro 2016 15

[18] Smartphone os sales market share kantar worldpanel comtech httpwwwkantarworldpanelcomsmartphone-os-market-share Accesso em Novembro 2016 15

[19] Sourcetree httpswwwsourcetreeappcom Accesso em Dezembro 2016 19

47

48 REFEREcircNCIAS BIBLIOGRAacuteFICAS

[20] Sql httpsptkhanacademyorgcomputingcomputer-programmingsql Accesso emDezembro 2016 20

[21] Trello httpstrellocom Accesso em Novembro 2016 6

[22] Usability test httpsenwikipediaorgwikiUsability_testing Accesso em Novembro2016 36

[23] Versionone 2012 agile dev survey httpswwwversiononecompdf7th-Annual-State-of-Agile-Development-Surveypdf Accesso em Novembro 2016 5

[24] Waze httpswwwwazecom Accesso em Novembro 2016 1

[25] What is an open source httpsopensourcecomresourceswhat-open-source Accessoem Novembro 2016 15

[26] Xml tutorial httpwwww3schoolscomxml Accesso em Novembro 2016 17

[27] Paulo F Cabral dos Anjos Jr Aron Ifanger Maciel Christopher Silva de Paacutedua Com-posiccedilatildeo de carteiras de accedilotildees utilizando modelo de redes neurais artificiais e modelo derisco e retorno de Markowitz 2012 14

[28] Google Distance matrix api documentation httpsdevelopersgooglecommapsdocumentationdistance-matrix Accesso em Novembro 2016 17

[29] Alan Klement Designing features using job stories httpsblogintercomcomusing-job-stories-design-features-ui-ux Accesso em Novembro 2016 6

[30] Azmat Nafees Queuing theory and its application analysis of the sales checkout opera-tion in ica supermarket httpwwwstatisticsduseessaysD07ENafeespdf Accessoem Novembro 2016 12

[31] Eric Ries A Startup Enxuta Lua de papel primeira ediccedilatildeo edition 2012 3

  • Introduccedilatildeo
    • Motivaccedilatildeo
    • Trabalho Proposto
    • Estrutura da monografia
      • Estudos Preliminares
        • Desenvolvimento de Startups
          • Desenvolvimento de Questionaacuterios
            • Metodologia Aacutegil
            • Jobs to be done
            • Caacutelculo da previsatildeo do tempo de espera na fila
              • Descriccedilatildeo do problema
              • Meacutetodos de caacutelculo da espera
                  • Tecnologias utilizadas
                    • O sistema Android
                      • Organizaccedilatildeo de uma aplicaccedilatildeo Android
                        • JSON
                        • Google APIs
                        • Localizaccedilatildeo do Usuaacuterio
                        • Controle de Versatildeo
                        • Banco de dados
                          • Firebase
                            • Crowdsourcing
                              • Desenvolvimento do Projeto
                                • Pesquisa de Mercado
                                  • Pesquisa com o usuaacuterio
                                    • Projeto do Aplicativo
                                    • Aplicaccedilatildeo dos meacutetodos de caacutelculo de espera
                                      • Aplicando a meacutedia por periacuteodo
                                      • Aplicando teoria das filas
                                      • Aplicando redes neurais
                                      • Conclusatildeo sobre os meacutetodos estudados
                                        • Definiccedilatildeo da Interface do aplicativo
                                        • Explicaccedilatildeo das funcionalidades
                                        • Implementaccedilatildeo do banco de dados
                                          • Conclusatildeo
                                          • Dados coletados
                                          • Referecircncias Bibliograacuteficas

Referecircncias Bibliograacuteficas

[1] Backpropagation httpmbpsourceforgenet Accesso em Janeiro 2017 14

[2] Bitbucket httpsbitbucketorgproduct Accesso em Dezembro 2016 19

[3] Crowdsourcing httpswwwmerriam-webstercomdictionarycrowdsourcing Ac-cesso em Novembro 2016 21

[4] Designing a survey httpwwwsciencebuddiesorgscience-fair-projectsproject_ideasSoc_surveyshtml Accesso em Outubro 2016 4 23

[5] Facebook httpswwwfacebookcom Accesso em Novembro 2016 24

[6] Firebase httpsfirebasegooglecom Accesso em Agosto 2016 20

[7] Getin app httpswwwgetinappcombrhomesao-paulo Accesso em Novembro2016 9

[8] Git 11 primeiros passos - sobre controle de versatildeo httpsgit-scmcombookpt-brv1Primeiros-passos-Sobre-Controle-de-Vers Accesso em Novembro 2016 19

[9] Google forms httpsdocsgooglecomforms Accesso em Novembro 2016 23

[10] Guia definitivo do project model canvas Project Builder 3

[11] Jsonorg introducing json httpwwwjsonorg Accesso em Novembro 2016 17

[12] Manifesto para desenvolvimento Aacutegil de software httpagilemanifestoorgisoptbrmanifestohtml Accesso em Novembro 2016 5

[13] Nosql httpsenwikipediaorgwikiNoSQL Accesso em Novembro 2016 20

[14] Outback steakhouse httpswwwoutbackcombrhome Accesso em Novembro 20169

[15] Restful api development with lumen microframework httpsbelitsoftcomlaravel-development-servicesapi-development Accesso em Novembro 2016 17

[16] Scrum httpswwwatlassiancomagilescrum Accesso em Novembro 2016 5

[17] Smartphone os market share 2016 q2 httpwwwidccomprodservsmartphone-os-market-sharejsp Accesso em Novembro 2016 15

[18] Smartphone os sales market share kantar worldpanel comtech httpwwwkantarworldpanelcomsmartphone-os-market-share Accesso em Novembro 2016 15

[19] Sourcetree httpswwwsourcetreeappcom Accesso em Dezembro 2016 19

47

48 REFEREcircNCIAS BIBLIOGRAacuteFICAS

[20] Sql httpsptkhanacademyorgcomputingcomputer-programmingsql Accesso emDezembro 2016 20

[21] Trello httpstrellocom Accesso em Novembro 2016 6

[22] Usability test httpsenwikipediaorgwikiUsability_testing Accesso em Novembro2016 36

[23] Versionone 2012 agile dev survey httpswwwversiononecompdf7th-Annual-State-of-Agile-Development-Surveypdf Accesso em Novembro 2016 5

[24] Waze httpswwwwazecom Accesso em Novembro 2016 1

[25] What is an open source httpsopensourcecomresourceswhat-open-source Accessoem Novembro 2016 15

[26] Xml tutorial httpwwww3schoolscomxml Accesso em Novembro 2016 17

[27] Paulo F Cabral dos Anjos Jr Aron Ifanger Maciel Christopher Silva de Paacutedua Com-posiccedilatildeo de carteiras de accedilotildees utilizando modelo de redes neurais artificiais e modelo derisco e retorno de Markowitz 2012 14

[28] Google Distance matrix api documentation httpsdevelopersgooglecommapsdocumentationdistance-matrix Accesso em Novembro 2016 17

[29] Alan Klement Designing features using job stories httpsblogintercomcomusing-job-stories-design-features-ui-ux Accesso em Novembro 2016 6

[30] Azmat Nafees Queuing theory and its application analysis of the sales checkout opera-tion in ica supermarket httpwwwstatisticsduseessaysD07ENafeespdf Accessoem Novembro 2016 12

[31] Eric Ries A Startup Enxuta Lua de papel primeira ediccedilatildeo edition 2012 3

  • Introduccedilatildeo
    • Motivaccedilatildeo
    • Trabalho Proposto
    • Estrutura da monografia
      • Estudos Preliminares
        • Desenvolvimento de Startups
          • Desenvolvimento de Questionaacuterios
            • Metodologia Aacutegil
            • Jobs to be done
            • Caacutelculo da previsatildeo do tempo de espera na fila
              • Descriccedilatildeo do problema
              • Meacutetodos de caacutelculo da espera
                  • Tecnologias utilizadas
                    • O sistema Android
                      • Organizaccedilatildeo de uma aplicaccedilatildeo Android
                        • JSON
                        • Google APIs
                        • Localizaccedilatildeo do Usuaacuterio
                        • Controle de Versatildeo
                        • Banco de dados
                          • Firebase
                            • Crowdsourcing
                              • Desenvolvimento do Projeto
                                • Pesquisa de Mercado
                                  • Pesquisa com o usuaacuterio
                                    • Projeto do Aplicativo
                                    • Aplicaccedilatildeo dos meacutetodos de caacutelculo de espera
                                      • Aplicando a meacutedia por periacuteodo
                                      • Aplicando teoria das filas
                                      • Aplicando redes neurais
                                      • Conclusatildeo sobre os meacutetodos estudados
                                        • Definiccedilatildeo da Interface do aplicativo
                                        • Explicaccedilatildeo das funcionalidades
                                        • Implementaccedilatildeo do banco de dados
                                          • Conclusatildeo
                                          • Dados coletados
                                          • Referecircncias Bibliograacuteficas

48 REFEREcircNCIAS BIBLIOGRAacuteFICAS

[20] Sql httpsptkhanacademyorgcomputingcomputer-programmingsql Accesso emDezembro 2016 20

[21] Trello httpstrellocom Accesso em Novembro 2016 6

[22] Usability test httpsenwikipediaorgwikiUsability_testing Accesso em Novembro2016 36

[23] Versionone 2012 agile dev survey httpswwwversiononecompdf7th-Annual-State-of-Agile-Development-Surveypdf Accesso em Novembro 2016 5

[24] Waze httpswwwwazecom Accesso em Novembro 2016 1

[25] What is an open source httpsopensourcecomresourceswhat-open-source Accessoem Novembro 2016 15

[26] Xml tutorial httpwwww3schoolscomxml Accesso em Novembro 2016 17

[27] Paulo F Cabral dos Anjos Jr Aron Ifanger Maciel Christopher Silva de Paacutedua Com-posiccedilatildeo de carteiras de accedilotildees utilizando modelo de redes neurais artificiais e modelo derisco e retorno de Markowitz 2012 14

[28] Google Distance matrix api documentation httpsdevelopersgooglecommapsdocumentationdistance-matrix Accesso em Novembro 2016 17

[29] Alan Klement Designing features using job stories httpsblogintercomcomusing-job-stories-design-features-ui-ux Accesso em Novembro 2016 6

[30] Azmat Nafees Queuing theory and its application analysis of the sales checkout opera-tion in ica supermarket httpwwwstatisticsduseessaysD07ENafeespdf Accessoem Novembro 2016 12

[31] Eric Ries A Startup Enxuta Lua de papel primeira ediccedilatildeo edition 2012 3

  • Introduccedilatildeo
    • Motivaccedilatildeo
    • Trabalho Proposto
    • Estrutura da monografia
      • Estudos Preliminares
        • Desenvolvimento de Startups
          • Desenvolvimento de Questionaacuterios
            • Metodologia Aacutegil
            • Jobs to be done
            • Caacutelculo da previsatildeo do tempo de espera na fila
              • Descriccedilatildeo do problema
              • Meacutetodos de caacutelculo da espera
                  • Tecnologias utilizadas
                    • O sistema Android
                      • Organizaccedilatildeo de uma aplicaccedilatildeo Android
                        • JSON
                        • Google APIs
                        • Localizaccedilatildeo do Usuaacuterio
                        • Controle de Versatildeo
                        • Banco de dados
                          • Firebase
                            • Crowdsourcing
                              • Desenvolvimento do Projeto
                                • Pesquisa de Mercado
                                  • Pesquisa com o usuaacuterio
                                    • Projeto do Aplicativo
                                    • Aplicaccedilatildeo dos meacutetodos de caacutelculo de espera
                                      • Aplicando a meacutedia por periacuteodo
                                      • Aplicando teoria das filas
                                      • Aplicando redes neurais
                                      • Conclusatildeo sobre os meacutetodos estudados
                                        • Definiccedilatildeo da Interface do aplicativo
                                        • Explicaccedilatildeo das funcionalidades
                                        • Implementaccedilatildeo do banco de dados
                                          • Conclusatildeo
                                          • Dados coletados
                                          • Referecircncias Bibliograacuteficas