Post on 21-Dec-2018
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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