166
Mestrado em Engenharia Informática Estágio Relatório Final Uso de Bluetooth Smart e de aplicações móveis para melhorar a experiência de compra dentro de superfícies comerciais João Silva Aguiar [email protected] Orientadores: Professor Doutor Rui Pedro Paiva Engenheiro Rafael Jegundo Data: 2 de Setembro de 2015

Uso de Bluetooth Smart e de aplicações móveis para ... de... · Glossário Beacon UmBeaconéumdispositivoqueeletrónicoqueemiteumsinalperió-dicooucontinuo. Oconceitodebeacon éusadoemdiferentescontextos

  • Upload
    doanh

  • View
    219

  • Download
    0

Embed Size (px)

Citation preview

Mestrado em Engenharia InformticaEstgioRelatrio Final

Uso de Bluetooth Smart e deaplicaes mveis para melhorara experincia de compra dentro desuperfcies comerciais

Joo Silva [email protected]

Orientadores:

Professor Doutor Rui Pedro PaivaEngenheiro Rafael Jegundo

Data: 2 de Setembro de 2015

Mestrado em Engenharia InformticaEstgioRelatrio Final

Uso de Bluetooth Smart e deaplicaes mveis para melhorara experincia de compra dentro desuperfcies comerciais

Joo Silva [email protected]

Jri:

Professora Doutora Marlia CuradoProfessor Doutor Rui Pedro PaivaEngenheiro Lus Filipe Cordeiro

Data: 2 de Setembro de 2015

Resumo

Os sistemas de localizao tm evoludo ao longo dos anos. Triangulao de

antenas, uso de sistema de posicionamento global (global positioning system ou

GPS) e outras tecnologias tm sido desenvolvidas para indicar, com preciso, a

localizao do utilizador. O problema destas solues a sua ineficcia dentro

de edifcios.

Com a proliferao dos smarthpones, a localizao dentro de edifcios tornou-se

ainda mais relevante. Para solucionar este problema, vrias tecnologias foram

desenvolvidas, aparecendo os beacons usando bluetooth como uma soluo v-

lida e de baixo custo para solucionar este problema.

Nesta dissertao exposto o desenvolvimento de um sistema que tira partido

desta tecnologia para auxlio de clientes de grandes espaos comerciais. Com

este propsito tem-se por objetivo criar um sistema capaz de indicar com preci-

so a localizao de determinado produto, bem como indicar um caminho que

o utilizador deve percorrer para conseguir recolher todos os produtos presentes

na sua lista de compras.

Este documento demonstra o desenvolvimento de uma das aplicao deste sis-

tema, que responsvel por realizar localizao dentro de edifcio, com uma

margem de erro mdia de aproximadamente 1 metro, e capaz de gerar o per-

curso mais curto, com uma margem de erro mdia de 9.01% em relao ao

percurso timo.

Com esta dissertao pode-se concluir que possvel criar um sistema de baixo

custo suficientemente eficaz para guiar um utilizador dentro de um espao

fechado.

i

ii

Abstract

Location systems have evolved over the years. Triangulation of GSM signals,

Global Positioning System and other technologies had been developed in order

to indicate accurately the location of the user. The problem with these kind

of solutions is their ineffectiveness inside buildings.

With the proliferation of smartphones, the indoor location has become even

more important. To solve this problem, various technologies have been deve-

loped as the bluetooth beacons. This technology is a valid and cost-effective

solution to solve this problem.

In this dissertation is exposed the development of a system that takes advan-

tage of bluetooth beacons in order to Enhanced Shopping Experience. For this

purpose it was designed a system capable of accurately indicate the location of

a particular product and generate and indicate the path that the user should

follow in order to collect all the products present on users shopping list.

This document shows the development of one of the applications of this system,

responsible for estimate the location of the user within the building, with an

average error of near 1 meter and is able to generate the shortest route with a

average margin of error of 9.01% over the best route.

With this dissertation can be concluded that it is possible to create a effective

low cost system to guide a user inside a building.

iii

iv

Agradecimentos

Este trabalho foi desenvolvido com a orientao do Professor Doutor Rui Pedro

Paiva e pelo Engenheiro Rafael Jegundo, a quem gostaria de expressar os

meus mais sinceros agradecimentos, pela presena e apoio dados. Gostaria

tambm de deixar uma palavra de apreo ao Professor Doutor Lus Paquete,

que apesar no estar ligado a este projeto auxiliou-me numa fase importante

deste trabalho.

Whitesmith por contribudo para minha formao profissional, apostando

em mim e por mais tarde darem-me a oportunidade de realizar este estgio.

Aos meus amigos e colegas, que me brindaram e apoiaram ao longo destes

anos. Em particular gostaria de agradecer a Goncalo Dias, Pedro Carmona e

Lus Ramos por terem sempre presentes para todas as ocasies.

E aos meus pais, pelo apoio, compreenso e carinho incondicional que sempre

me deram.

v

vi

ndice

Resumo i

Abstract i

Agradecimentos v

Lista de Tabelas xii

Lista de Figuras xv

Glossrio xvii

Lista de Abreviaturas xix

1 Introduo 1

1.1 Contextualizao . . . . . . . . . . . . . . . . . . . . . . . . . . 2

1.1.1 Aplicaes Mveis In-Store . . . . . . . . . . . . . . . . . 3

1.2 Motivao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

1.3 Objetivos e Abordagens . . . . . . . . . . . . . . . . . . . . . . 4

vii

viii NDICE

1.4 Contribuies Principais . . . . . . . . . . . . . . . . . . . . . . 6

1.5 Estrutura do Documento . . . . . . . . . . . . . . . . . . . . . . 6

2 Estado da Arte 8

2.1 Estado atual das aplicaes dos hipermercados . . . . . . . . . . 8

2.2 Algoritmos de Localizao . . . . . . . . . . . . . . . . . . . . . 13

2.2.1 Laterao ou Lateration . . . . . . . . . . . . . . . . . . 14

2.2.2 Cell Based . . . . . . . . . . . . . . . . . . . . . . . . . . 15

2.2.3 Fingerprinting . . . . . . . . . . . . . . . . . . . . . . . 16

2.2.4 Angulao . . . . . . . . . . . . . . . . . . . . . . . . . . 17

2.2.5 Dead reckoning . . . . . . . . . . . . . . . . . . . . . . . 18

2.3 Tecnologias capazes de localizar smartphones dentro de edifcios 19

2.3.1 Magnetmetro . . . . . . . . . . . . . . . . . . . . . . . . 19

2.3.2 Near Field Communication (NFC) . . . . . . . . . . . . 20

2.3.3 Rede de telecomunicaes . . . . . . . . . . . . . . . . . 21

2.3.4 Giroscpio e Acelermetro . . . . . . . . . . . . . . . . . 21

2.3.5 Sensor de Imagem . . . . . . . . . . . . . . . . . . . . . . 23

2.3.6 Wi-Fi e Bluetooth . . . . . . . . . . . . . . . . . . . . . 23

2.3.7 Anlise das tecnologias . . . . . . . . . . . . . . . . . . . 27

2.4 Sistemas Relacionados . . . . . . . . . . . . . . . . . . . . . . . 29

2.4.1 Senionlab . . . . . . . . . . . . . . . . . . . . . . . . . . 29

NDICE ix

2.4.2 Indoors . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

2.4.3 Quuppa . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

2.4.4 StoreMode . . . . . . . . . . . . . . . . . . . . . . . . . . 31

2.4.5 aisle411 . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

2.5 Desenvolvimento de Aplicaes Mveis . . . . . . . . . . . . . . 32

3 Metodologia e Planeamento 40

3.1 Metodologia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

3.2 Planeamento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

3.2.1 Primeiro Semestre . . . . . . . . . . . . . . . . . . . . . 42

3.2.2 Segundo Semestre . . . . . . . . . . . . . . . . . . . . . . 44

4 Requisitos 46

4.1 Stakeholders . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

4.2 Casos de Uso . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

4.3 Requisitos Funcionais . . . . . . . . . . . . . . . . . . . . . . . . 53

4.4 Requisitos No Funcionais . . . . . . . . . . . . . . . . . . . . . 61

4.4.1 Atributos de qualidade . . . . . . . . . . . . . . . . . . . 61

4.4.2 Restries . . . . . . . . . . . . . . . . . . . . . . . . . . 64

5 Arquitetura do Sistema 66

5.1 Vista de Alto nvel . . . . . . . . . . . . . . . . . . . . . . . . . 67

x NDICE

5.2 Arquitetura da Aplicao de Gesto da Lista de Compras . . . . 69

5.3 Arquitetura da Aplicao de Guia dos Clientes . . . . . . . . . . 70

5.4 Arquitetura da Aplicao dos Funcionrios . . . . . . . . . . . . 73

5.5 Servidor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74

6 Implementao 75

6.1 Aplicao Mvel . . . . . . . . . . . . . . . . . . . . . . . . . . . 75

6.2 Linguagem de Programao . . . . . . . . . . . . . . . . . . . . 77

6.3 Mdulo de mapeamento . . . . . . . . . . . . . . . . . . . . . . 78

6.3.1 Gerar o Mapa . . . . . . . . . . . . . . . . . . . . . . . . 78

6.3.2 Mapear produtos . . . . . . . . . . . . . . . . . . . . . . 78

6.3.3 Grafo . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79

6.4 Mdulo de Localizao . . . . . . . . . . . . . . . . . . . . . . . 80

6.4.1 Decises . . . . . . . . . . . . . . . . . . . . . . . . . . . 80

6.4.2 Implementao da Laterao . . . . . . . . . . . . . . . . 83

6.4.3 Otimizao . . . . . . . . . . . . . . . . . . . . . . . . . 88

6.5 Mdulo de Navegao . . . . . . . . . . . . . . . . . . . . . . . 90

6.5.1 Introduzir produtos no grafo . . . . . . . . . . . . . . . . 90

6.5.2 Ordem a recolher os produtos . . . . . . . . . . . . . . . 92

6.5.3 Gerao do percurso . . . . . . . . . . . . . . . . . . . . 94

6.5.4 Otimizao do percurso . . . . . . . . . . . . . . . . . . 96

NDICE xi

6.5.5 Guia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98

6.5.6 Funcionamento . . . . . . . . . . . . . . . . . . . . . . . 101

6.6 Mdulo de comunicao . . . . . . . . . . . . . . . . . . . . . . 103

6.6.1 Comunicao com outra aplicao . . . . . . . . . . . . . 103

6.6.2 Comunicao com o servidor . . . . . . . . . . . . . . . . 104

6.6.3 Gesto de dados . . . . . . . . . . . . . . . . . . . . . . . 108

6.7 Testes ao sistema . . . . . . . . . . . . . . . . . . . . . . . . . . 110

6.7.1 Inicializao . . . . . . . . . . . . . . . . . . . . . . . . . 110

6.7.2 Lista de compras . . . . . . . . . . . . . . . . . . . . . . 111

6.7.3 Mapeamento . . . . . . . . . . . . . . . . . . . . . . . . 112

6.7.4 Navegao . . . . . . . . . . . . . . . . . . . . . . . . . . 113

7 Concluso e Trabalho Futuro 115

7.1 Concluso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115

7.2 Trabalho Futuro . . . . . . . . . . . . . . . . . . . . . . . . . . . 116

Referncias 118

A Estado da Arte 126

B Diagramas de Gant Detalhados 140

Lista de Tabelas

2.1 Estado da arte das aplicaes de grandes superfcies . . . . . . . 13

2.2 Analise das tecnologias capazes de localizar smartphones dentro

de edifcios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

2.3 Comparao entre o sistema ailse411 e Whitesmith . . . . . . . 32

2.4 Aplicaes Nativas vs Multi-plataforma vs Web . . . . . . . . . 39

4.1 Stakeholders - Descrio e Responsabilidades . . . . . . . . . . . 47

6.1 Comparao entre a Laterao e Fingerprinting . . . . . . . . . 83

6.2 Resposta json para cada superfcie comercial . . . . . . . . . . . 105

6.3 Resposta json para cada mapa . . . . . . . . . . . . . . . . . . . 106

6.4 Resposta json para prateleiras . . . . . . . . . . . . . . . . . . . 106

6.5 Resposta json para beacons . . . . . . . . . . . . . . . . . . . . 107

6.6 Resposta json para o grafo . . . . . . . . . . . . . . . . . . . . . 107

6.7 Resposta json para produtos . . . . . . . . . . . . . . . . . . . . 108

A.1 Anlise da aplicao Continente . . . . . . . . . . . . . . . . . . 128

xii

A.2 Anlise da aplicao Auchan . . . . . . . . . . . . . . . . . . . . 129

A.3 Anlise da aplicao Intermarch . . . . . . . . . . . . . . . . . 129

A.4 Anlise da aplicao Tesco Groceries . . . . . . . . . . . . . . . 130

A.5 Anlise da aplicao Walmart . . . . . . . . . . . . . . . . . . . 131

A.6 Anlise da aplicao ASDA . . . . . . . . . . . . . . . . . . . . 132

A.7 Anlise da aplicao Sainsburys . . . . . . . . . . . . . . . . . . 133

A.8 Anlise da aplicao Lidl . . . . . . . . . . . . . . . . . . . . . . 134

A.9 Anlise da aplicao Kroger . . . . . . . . . . . . . . . . . . . . 135

A.10 Anlise da aplicao Costco . . . . . . . . . . . . . . . . . . . . 136

A.11 Anlise da aplicao fnac.pt . . . . . . . . . . . . . . . . . . . . 137

A.12 Anlise da aplicao Ikea . . . . . . . . . . . . . . . . . . . . . . 138

A.13 Anlise da aplicao Toys R Us . . . . . . . . . . . . . . . . . 139

xiii

xiv

Lista de Figuras

2.1 Funcionamento do mtodo Laterao [1] . . . . . . . . . . . . . 15

2.2 Um Recetor que est no alcance dos beacons B,C e D mas no

de A e E deve estar localizado na regio sombreada[2] . . . . . . 16

2.3 Posicionamento baseado na angulao [3] . . . . . . . . . . . . . 17

2.4 Funcionamento do algoritmo Dead reckoning [4] . . . . . . . . . 18

2.5 Uso de beacons [5] . . . . . . . . . . . . . . . . . . . . . . . . . 26

2.6 Informao enviada em cada pacote . . . . . . . . . . . . . . . . 26

3.1 Diagrama de Gant inicial relativo ao primeiro semestre . . . . . 43

3.2 Diagrama de Gant final relativo ao primeiro semestre . . . . . . 43

3.3 Diagrama de Gant planeado para o segundo semestre . . . . . . 44

3.4 Diagrama de Gant real do segundo semestre . . . . . . . . . . . 44

5.1 Arquitetura de alto nvel do sistema . . . . . . . . . . . . . . . . 67

5.2 Arquitetura da aplicao da lista de compras . . . . . . . . . . . 69

5.3 Arquitetura de alto nvel da aplicao de guia dos clientes . . . 70

xv

5.4 Arquitetura detalhada da aplicao de guia dos clientes . . . . . 71

5.5 Arquitetura do sistema da aplicao dos funcionrios . . . . . . 73

6.1 Grafo do local . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79

6.2 Triangulao vs Multilatereo [6] . . . . . . . . . . . . . . . . . 84

6.3 Teste 1 - Exatido . . . . . . . . . . . . . . . . . . . . . . . . . 86

6.4 Teste 2 - Exatido . . . . . . . . . . . . . . . . . . . . . . . . . 86

6.5 Teste 1 - Preciso . . . . . . . . . . . . . . . . . . . . . . . . . . 87

6.6 Teste 2 - Preciso . . . . . . . . . . . . . . . . . . . . . . . . . . 88

6.7 Posio do utilizador no grafo . . . . . . . . . . . . . . . . . . . 90

6.8 Adicionar produto no grafo . . . . . . . . . . . . . . . . . . . . . 92

6.9 Pseudocdigo do Algoritmo A* . . . . . . . . . . . . . . . . . . 95

6.10 Cenrio 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96

6.11 Cenrio 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97

6.12 rvore de deciso do guia de navegao . . . . . . . . . . . . . . 99

6.13 Fluxo dos mtodos do guia de navegao . . . . . . . . . . . . . 102

6.14 Aplicao no guia de navegao . . . . . . . . . . . . . . . . . . 103

6.15 Diagrama entidade-relao da base de dados da aplicao do

guia dos clientes . . . . . . . . . . . . . . . . . . . . . . . . . . . 109

B.1 Diagrama de Gant planeado para o segundo semestre (detalhado)141

B.2 Diagrama de Gant real do segundo semestre (detalhado) . . . . 142

xvi

Glossrio

Beacon Um Beacon um dispositivo que eletrnico que emite um sinal peri-

dico ou continuo. O conceito de beacon usado em diferentes contextos

na rea de informtica, sendo normalmente usados em sistemas de po-

sicionamento, sendo que cada beacon se encontra num ponto conhecido

(ponto ncora), o que permite estimar a posio do recetor..

Internet of Things A International Telecommunication Union define a In-

ternet of things como sendo uma infraestrutura global para a sociedade

da informao, permitindo servios avanados atravs da interligao

(fsica e virtual) de coisas baseadas na interoperabilidade existente e em

evoluo da informao e comunicao. [7] .

UI Kit A UI Kit uma framework que permite auxiliar o programador a

desenhar views e as reagir s suas aes. Esta framework composta

por vrios tipos de componentes (Views) para fins especficos, como a

UITextField no iOS, que permite ao utilizador introduzir texto, ou a

UIWebView que capaz de interpretar cdigo HTML, CSS e JavaScript

gerado atravs de um servidor externo ou no prprio dispositivo. Cada

uma destas views capaz de reagir a eventos do utilizador, contendo

respostas predefinidas, como mostrar automaticamente o teclado, caso

essa view permita a introduo de texto. Caso pretendido, tanto os

eventos como o layout de cada view podem ser personalizados.

xvii

UIView UIView uma view, que pode conter vrios tipos de subviews. O

utilizador capaz de interagir com esta, sendo que cada interao gera

um evento que podem ser tratado pelo programador.

xviii

Lista de Abreviaturas

AP Access Point .

API Application Programming Interface.

BLE Bluetooth Smart ou Bluetooth Low Energy .

DNS Domain Name System.

GPS Global Positioning System ou Sistema de Posicionamento Global.

IOT Internet of Things .

IRR Inquiry Response Rate.

JSON JavaScript Object Notation.

LQ Link Quality .

LSD Lean Software Development .

NFC Near Field Communication.

RSSI Received Signal Strength Indication.

SDK Software Development Kit ou Kit de Desenvolvimento de Software.

TI tecnologia de informao.

xix

UI User Interface.

UID Unique identifier .

URL Uniform resource locator .

VCS Version Control System.

XML eXtensible Markup Language.

xx

Captulo 1

Introduo

Este documento expe o estudo e desenvolvimento do projeto proposto pela

empresa Whitesmith, Lda que se enquadrou com a realizao do estgio cur-

ricular do Mestrado em Engenharia Informtica. Este foi supervisionado pelo

Mestre Rafael Jegundo, CEO da Whitesmith, Lda, e pelo Professor Doutor

Rui Pedro Paiva.

Este captulo introdutrio est dividido em quatro seces. Na primeira seco

exposta uma contextualizao do trabalho. Na segunda seco explicado o

propsito da realizao deste projeto. Na terceira realizada uma sntese dos

objetivos e da abordagem ao desafio. No quarta seco realizada uma sntese

das contribuies do principais deste trabalho. Por fim, na ltima seco

explicado o propsito dos captulos seguintes deste documento.

1

2 Captulo 1. Introduo

1.1 Contextualizao

Apesar de no haver uma definio concreta de smartphone podemos conside-

rar que um dispositivo capaz de realizar o mesmo que um telemvel, como

por exemplo realizar chamadas, mas tambm realizar funes avanadas que

apenas computadores eram capazes de o fazer [8][9]. No fundo, so telemveis

com elevado poder de processamento e com sistemas operativos complexos.

Ao longo dos ltimos anos estes dispositivos tiveram uma grande evoluo.

Foram aumentando cada vez mais o seu poder de processamento, foram ad-

quirindo novas funcionalidades e substituindo outros equipamentos eletrnicos

(mquinas pessoais fotogrficas e de filmar, sistemas de navegao, entre ou-

tros), tornando-se cada vez mais num dispositivo multiusos. Por sua vez as

redes mveis foram acompanhando as necessidades, evolues e desafios destes

dispositivos aumentando cada vez mais as velocidades de acesso Internet,

tornando-os nos dispositivos mais utilizados pelas pessoas para a utilizao

desta em vrios pases [10] [11]. Uma vez que os sistemas operativos destes

dispositivos esto abertos a programadores externos, milhares de aplicaes

so desenvolvidas anualmente, para todo o tipo de funes [12]. Com isto,

estes dispositivos foram adquirindo cada vez mais consumidores, estando atu-

almente presentes na Europa e nos Estados Unidos da Amrica, em 3/5 da

populao.[13][14] portanto um mercado muito importante na rea da tec-

nologia de informao (TI). Para as empresas produtoras de dispositivos ele-

trnicos, estas tentam entrar ou aumentar o seu mercado. Para as empresas de

software compete-lhes diferenciar as suas aplicaes das inumeras atualmente

existentes.

1.2. Motivao 3

1.1.1 Aplicaes Mveis In-Store

Segundo a Google Shopper Marketing Agency Council, 79% dos utilizadores

de smartphones nos Estados Unidos da Amrica utilizam-nos para auxiliar as

compras que realizam, o que eles designam por smartphone shoppers. Desse

grupo, 84% utilizam os seus dispositivos dentro das lojas para auxlio das suas

compras [15]. As superfcies comerciais podem tirar proveito desta utilizao

de forma melhorar a experincia dos clientes dentro das suas lojas. Aplicaes

deste tipo para alm de ajudarem a melhorar as vendas, aumentam a relao

entre o consumidor e a marca, tornando-os assim mais fiis [16].

1.2 Motivao

Com a introduo dos smartphones foram criados novos paradigmas no comr-

cio. Instituiu-se a cultura "Theres an App for That", isto , os utilizadores

comearam a usar e preferir aplicaes em vez de websites. Se at ento era

essencial para uma marca ter um website, agora tm de se adaptar e abra-

ar esta nova plataforma. Devido ao facto de milhes de aplicaes estarem

disponveis atualmente, necessrio criar aplicaes que se diferenciem, sendo

inovadoras e indo de encontro s necessidades do consumidor.

O facto dos utilizadores de smartphones j estarem habituados a usar o seu

pequeno computador dentro de superfcies comerciais deve ser canalizado para

melhorar a sua experincia. Estudos indicam que 87% destes utilizadores gos-

tariam de poder aceder ao mapa destas superfcies de forma a auxili-los a

localizar produtos [17].

Observando as aplicaes das grandes superfcies comerciais atualmente exis-

4 Captulo 1. Introduo

tentes, so poucas as que permitem realizar esta tarefa. Por isso, a Whitesmith

e o estagirio decidiram abraar o desafio destes utilizadores desenvolvendo um

sistema que, alm de indicar a posio dos produtos, capaz de indicar como

chegar at eles, bem como criar um percurso timo, baseado na lista de com-

pras de cada utilizador, que minimize o tempo despendido nas superfcies de

elevada dimenso.

1.3 Objetivos e Abordagens

Os objetivos deste trabalho podem ser divididos em trs partes importantes:

Estgio, cujo objetivo principal o ganho de experincia e conhecimento

por parte do estagirio;

Empresa, cujo objetivo principal validar as potencialidades do Blueto-

oth Smart ou Bluetooth Low Energy (BLE);

Projeto, que corresponde implementao de um sistema que auxilie os

clientes dos hipermercados.

Estgio

Do ponto de vista do estgio, os objetivos passam pela consolidao dos co-

nhecimentos de engenharia de software, a capacidade de enfrentar e resolver

problemas/desafios e aprender e dominar a programao de aplicaes para o

sistema operativo mvel iOS.

1.3. Objetivos e Abordagens 5

Empresa

AWhitesmith foca os seus recursos na rea da Internet of Things (IOT), consi-

derando assim importante validar as potencialidades do BLE. Como empresa,

do seu interesse criar um produto que seja uma mais valia no mercado, o que

levou alterao do projeto inicial. Essa alterao permitiu a criao de um

produto mais diferenciador no mercado do que o inicialmente proposto.

Projeto

Do ponto de vista do projeto, o objetivo criar um sistema que auxilie os

clientes dos hipermercados na realizao das suas compras. Para isso, tira-se

partido de uma tecnologia recente, mais concretamente o BLE que, indireta-

mente, permite a localizao dentro de edifcios.

Este sistema constitudo por 3 aplicaes mveis:

Aplicao de gesto de lista de compras. Esta aplicao tem o objetivo

de permitir ao utilizador a criao da sua lista de compras;

Aplicao de guia dos clientes, que ser usada pelos clientes dentro da

superfcie comercial. Permite indicar o local onde se encontram os pro-

dutos que esto na lista de compras, sendo capaz de criar um percurso

de forma a minimiza-lo;

Aplicao dos funcionrios. Durante a reposio do stock, os funcionrios

devero usar esta aplicao para indicar ao sistema o local onde cada

produto se encontra.

6 Captulo 1. Introduo

Sendo este um sistema complexo, o estagirio apenas responsvel pela apli-

cao de guia dos clientes, devido ao facto de ser a aplicao fulcral e mais

complexa deste sistema. Foi pedido ao estagirio para ser generalista na sua

implementao, de forma a ser facilmente adaptvel a outros contextos.

1.4 Contribuies Principais

Este projeto demonstra que possvel criar sistemas de localizao dentro de

edifcios, suficientemente eficazes para guiar utilizadores dentro de um local

fechado, usando tecnologias atuais de baixo custo.

Neste documento descrito como foi possvel estimar a posio do utilizador

com uma margem de erro de 1 metro usando BLE, validando esta tecnologia

como uma boa soluo neste contexto.

De forma a tentar minimizar os problemas resultantes desta margem de erro

demonstrado um mecanismo que tira partido do mapa da superfcie de forma

a garantir a validade da posio estimada do utilizador.

tambm demonstrado um processo capaz de gerar o percurso mais curto em

tempo real. Este percurso tem algumas limitaes, devido elevada complexi-

dade de gerar um percurso timo. Por esta razo mostrado um mecanismo,

que gera o percurso mais curto com base na heurstica, sendo este em mdia

9.01% maior que o percurso timo.

1.5 Estrutura do Documento

O documento est dividido nos seguintes captulos:

1.5. Estrutura do Documento 7

Introduo No primeiro captulo, foram descritos o contexto, a moti-

vao e os objetivos do estgio;

Estado da Arte No segundo captulo, so estudadas as aplicaes das

superfcies comerciais atualmente existentes no mercado, sistemas seme-

lhantes ao proposto e tecnologias para localizao dentro de edifcios;

Metodologia e Planeamento No terceiro captulo, descrita a meto-

dologia usada neste projeto e o planeamento deste;

Requisitos No quarto captulo so definidos os requisitos funcionais e

no funcionais do sistema;

Arquitetura No quinto captulo, mostrada e defendida a arquitetura

do sistema;

Implementao No sexto captulo, documentada a implementao e

os testes realizados;

Concluso No ltimo captulo, realizada uma sntese e anlise critica

deste documento.

Captulo 2

Estado da Arte

2.1 Estado atual das aplicaes dos hipermerca-

dos

Para validar o valor de mercado que o sistema possa vir a ter, foram analisadas

13 aplicaes de grandes superfcies (ver anexo A).

Neste captulo so destacadas trs dessas aplicaes, a do Continente, Walmart

e Tesco Groceries, apresenta-se uma tabela de resumo das aplicaes analisadas

e faz-se uma breve reflexo sobre elas. Foram destacadas estas aplicaes uma

vez que conseguem generalizar as aplicaes atualmente existentes no mercado.

Os dados do nmero de downloads provm do servio xyo.net, que estima

este valor, e os do nvel de satisfao provm da Apple Store e Google Play

(informao extrada em Novembro de 2014).

8

2.1. Estado atual das aplicaes dos hipermercados 9

Continente

O Continente um dos maiores hipermercados portu-

gueses que pertence ao grupo Sonae. O principal foco

desta aplicao o auxlio dos seus mais de trs mi-

lhes de utilizadores que tm um carto da marca [18].

As principais funcionalidades so:

Visualizao do valor que o cliente tem em carto, cupes de desconto e

ltimas compras efetuadas (funcionalidades exclusivas para clientes com

carto de cliente);

Criao de listas de compras;

Pesquisa de um produto pelo seu cdigo de barras;

Alguns detalhes de produtos;

Visualizar os folhetos do estabelecimento;

Pesquisa do estabelecimento mais prximo do utilizador.

Nmero de downloads :

192 mil no sistema operativo Android;

55 mil no sistema operativo iOS.

Satisfao na Apple Store: 4 em 5 (verso 2.1.11)

Satisfao na Google Play: 3.9 em 5

10 Captulo 2. Estado da Arte

Tesco Groceries

Tesco Groceries uma aplicao mobile que pertence

Tesco Stores Ltd. sediada no Reino Unido. Foi desen-

volvida para ser usada nas mais de 3300 lojas presentes

no Reino Unido [19]. Enquanto a aplicao do Conti-

nente est mais orientada para os clientes com cartes

da marca, esta aplicao est mais otimizada para com-

pras online. As suas principais funcionalidades so:

Pesquisa pelo estabelecimento mais prximo (apenas atravs de cdigo

postal);

Mostrar as compras habituais;

Pesquisa de produtos por cdigo de barras;

Envio dos produtos para a morada ou recolha dos produtos pelo cliente.

Nmero de downloads :

2 milhes no sistema operativo Android;

658 mil no sistema operativo iOS.

Satisfao na Apple Store: 4 em 5 (verso 7.5)

Satisfao na Google Play: 3.5 em 5

2.1. Estado atual das aplicaes dos hipermercados 11

Walmart

A Wal-Mart Stores, Inc opera nos Estados Unidos da

Amrica como Walmart. A aplicao tem um foco

especial nas promoes existentes nos seus estabeleci-

mentos. As suas principais funcionalidades so:

Pesquisa pelo estabelecimento mais prximo;

Pesquisa de produtos por cdigo de barras e qrcode;

Variados detalhes dos produtos tais como os seus ingredientes e ndices

calricos;

Indicao do nmero da prateleira em que o produto se encontra.

Nmero de downloads :

14 milhes no sistema operativo Android;

5,2 milhes no sistema operativo iOS.

Satisfao na Apple Store: 4,5 em 5 (verso 5.1)

Satisfao na Google Play: 4,3 em 5

Uma vez que estas aplicaes so de empresas que esto no mesmo tipo de

mercado, interessante analisar o facto de como elas tiram proveito das suas

aplicaes. O continente d especial destaque aos clientes com cartes de

fidelizao, ao contrrio da Tesco que utiliza a sua aplicao para dar a possi-

bilidade de fazer compras atravs de um smartphone.

12 Captulo 2. Estado da Arte

A aplicao Walmart interessante pois consegue fazer um bom compromisso

entre as duas vertentes. Ajuda os seus clientes indicando a prateleira onde os

produtos se encontram e permite ao mesmo tempo realizar compras online.

Na anlise feita s 13 aplicaes no anexo A foram analisados os seguintes

campos:

Lista de compras, verifica se a aplicao tem capacidade de guardar uma

lista de compras;

Carto de fidelizao, verifica se capaz de substituir e complementar

os cartes de fidelizao;

Compras online, verifica se possvel a realizao de compras online;

Promoes, analisa a facilidade de acesso a produtos em promoo;

Compras habituais, analisa se a aplicao capaz de guardar as compras

habituais;

Detalhes de produtos, analisa a capacidade de pesquisa de produtos e

seus detalhes (como o preo e ndices nutricionais);

Loja mais prxima, analisa a capacidade da aplicao indicar ao utiliza-

dor qual a loja mais prxima;

Localizador de produtos, analisa a capacidade da aplicao em indicar

ao utilizador onde se encontra determinado produto.

Esta anlise originou a tabela 2.1. Observa-se que apenas duas permitem

localizar produtos dentro da loja, indicando apenas a prateleira onde o produto

se encontra.

2.2. Algoritmos de Localizao 13

Lista decompras

Carto defidelizao

Comprasonline Promoes

Comprashabituais

Detalhesde produtos

Loja maisprxima

Localizaode produtos

Continete 3 3 7 Parcial 7 Parcial 3 7

Auchan 3 7 3 3 7 3 3 7

Continete 3 3 7 Parcial 7 Parcial 3 7

Intermarch 3 7 7 3 7 7 3 7

Tesco Groceries 7 3 3 3 3 3 Parcial 7

Walmart 7 N.A. 3 3 7 3 3 Parcial

ASDA 3 N.A. 3 3 7 3 3 7

Sainsburys 7 3 3 3 7 3 3 7

Lidl 7 N.A. 7 3 7 Parcial Parcial 7

Kroger Co. 7 3 3 3 7 3 3 7

Costco 3 3 3 3 7 7 3 7

fnac.pt 7 7 3 3 7 3 3 7

Ikea 3 7 7 Parcial 7 3 3 Parcial

Toys R Us Shoping Wish List 7 3 3 7 Parcial 3 7

N.A - No Avaliado (A empresa no possui cartes de fidelizao);Parcial - Consegue satisfazer parcialmente o campo analisado;3- capaz de realizar o campo analisado;7- No capaz de realizar o campo analisado.

Tabela 2.1: Estado da arte das aplicaes de grandes superfcies

Em entrevista para a Fortune, o presidente da Toys R Us disse O que ns

aprendemos com os nossos clientes que eles precisam de ajuda na compra de

presentes. No querem entrar numa loja de 200.000 metros quadrados, onde

no conseguem encontrar o caminho de volta, eles querem que ns o tornemos

mais fcil [20].

Uma vez que nenhuma destas grandes superfcies tem um sistema de locali-

zao dentro dos seus estabelecimentos e estes sabem da importncia deles, o

sistema proposto pode ser uma mais valia no mercado.

2.2 Algoritmos de Localizao

Nesta seco so apresentados vrias algoritmos usados para estimar a locali-

zao de um dispositivo.

14 Captulo 2. Estado da Arte

2.2.1 Laterao ou Lateration

A laterao um dos algoritmos mais antigos e usados para determinar/estimar

a localizao de um dispositivo. Como requisito desde algoritmo necessria a

distncia entre o dispositivo e, no mnimo, trs pontos de conhecimento prvio

(pontos ncora), sendo estes os pontos onde os beacons esto posicionados.

Esta distncia habitualmente induzida a partir do parmetro Received Signal

Strength Indication (RSSI), criando uma relao entre a fora do sinal com a

distncia a que o utilizador se encontra [1] [21] [22].

O funcionamento do algoritmo inicia-se com a uso da equao da circunfe-

rncia 2.1. So criadas circunferncias com centro nos pontos ncora (pontos

conhecidos), e com o raio de valor igual distncia previamente calculada a

esse ponto.

(x xi)2 + (y yi)2 = r2i (2.1)

Os parmetros xi e yi devem ser substitudos pelas posies dos pontos ncora,

e ri pelas distncias previamente calculadas a cada um. Como descrito ante-

riormente, sero necessrios, no mnimo, trs pontos e distncias a ele para

garantir o funcionamento deste algoritmo. Assim sendo, tem-se um sistema

com, no mnimo, 3 equaes. O resultado do sistema de equaes o valor da

interceo dos crculos que, por sua vez, o valor da posio do smartphone

(figura 2.1).

2.2. Algoritmos de Localizao 15

Figura 2.1: Funcionamento do mtodo Laterao [1]

2.2.2 Cell Based

Este mtodo funciona a partir dos beacons visveis para determinar a posio

do dispositivo. Para isso so usados vrios beacons com curto alcance de forma

a que cada um cubra uma rea especfica. Assim, um utilizador em movimento,

ir encontrar reas cobertas por diferentes beacons num curto espao de tempo.

O funcionamento deste mtodo comea com uma fase de treino, onde feito

um scan dos beacons visveis em vrios segmentos da superfcie sendo esta

informao guardada numa base de dados. A descoberta da posio do uti-

lizador inicia-se com a procura de todos os beacons visveis em determinado

ponto, sendo guardado o seu Unique identifier (UID). Estes so depois compa-

rados com os valores guardados na base de dados anteriormente sendo a melhor

correspondncia selecionada como a posio do smartphone. (figura 2.2)

Nesta abordagem, os parmetros do sinal podem ser utilizados para desambi-

guar segmentos que sejam abrangidos pelo mesmos beacons [2][23].

16 Captulo 2. Estado da Arte

Figura 2.2: Um Recetor que est no alcance dos beacons B,C e D mas no deA e E deve estar localizado na regio sombreada[2]

2.2.3 Fingerprinting

Nesta abordagem o mapa dividido em vrios segmentos ou grelhas. Nesta

abordagem so igualmente usadas duas fases: online ou treino e offline. Esta

abordagem inicia-se com a fase de treino, onde associado a cada segmento

atributos nicos. No contexto das redes sem fios estes atributos podem ser o

RSSI, Inquiry Response Rate (IRR) ou Link Quality (LQ). Estes so medidos

e atribudos a cada segmento. Por exemplo, aplicando ao sistema proposto,

poderamos usar o RSSI como atributo e fazer uma mdia dos valores lidos em

cada segmento. Cada fingerprint constituda por vrias mdias dos valores

de RSSI e da posio do segmento no mapa, guardando-a numa base de dados.

Na segunda fase, fase online, onde estimada a posio do smartphone. Para

isso, este dispositivo deve recolher a informao do(s) mesmo(s) parmetro(s)

analisados na fase de treino e compar-los com os valores recolhidos. A posio

ser a associada fingerprint com melhor correspondncia aos valores lidos

naquele momento [24] [25].

2.2. Algoritmos de Localizao 17

2.2.4 Angulao

Nos mtodos baseados na angulao, a posio de determinado objeto indu-

zida tirando partido da geometria.

Figura 2.3: Posicionamento baseado na angulao [3]

Como se pode observar na Figura 2.3, so necessrios pelo menos dois pontos

ncora, representados como A e B, e a medio dos ngulos entre o objeto e

estes pontos (1 e 2). Com estes valores possvel calcular a posio deste

objeto usando as equaes 2.2 e 2.3 [26].

De forma a permitir estimar os ngulos necessrios para o funcionamento deste

algoritmo, so usualmente usadas antenas direcionais.

tan(1) =y y1x x1

tan(2) =y y2x x2

(2.2)

yi xitan(i) = y xtan(i) (2.3)

18 Captulo 2. Estado da Arte

2.2.5 Dead reckoning

Nesta abordagem a descoberta da posio do utilizador efetuada a partir da

posio previamente calculada. Sabendo o ponto anterior, a distncia percor-

rida e o ngulo do movimento, conseguimos calcular a posio atual (Observar

equaes 2.4 e figura 2.4). [4]

x1 = d1cos()

y1 = d1sin()

x2 = x1 + d1cos()

y2 = y1 + d1sin()

(2.4)

Figura 2.4: Funcionamento do algoritmo Dead reckoning [4]

O problema desta abordagem so os erros acumulativo, isto , sempre que

uma varivel (ngulo ou distncia) for mal calculada, o erro vai-se propagando

ao longo do algoritmo. Para colmatar esta falha, devem ser inseridos vrios

2.3. Tecnologias capazes de localizar smartphones dentro de edifcios 19

pontos de referncia, de forma a reiniciar o algoritmo.

2.3 Tecnologias capazes de localizar smartpho-

nes dentro de edifcios

Para ser possvel indicar qual o percurso que o cliente deve percorrer necessi-

tamos de saber qual a sua localizao exata em todo os os momentos. Visto

tratarem-se de grandes superfcies e estas estarem cobertas, o uso de Global

Positioning System ou Sistema de Posicionamento Global (GPS) no uma

soluo. Ser por isso feita um breve descrio das tecnologias que esto atu-

almente presentes nos smartphones que podem permitir realizar esta tarefa.

2.3.1 Magnetmetro

O magnetmetro um dos sensores atualmente presentes nos smarthpones.

Este normalmente usado para indicar a direo para que o dispositivo est

virado.

Dentro de edifcios existem oscilaes nas leituras deste sensor, essencialmente

porque a construo dos edifcios base de beto e ferro, o que interfere

com a preciso desta tecnologia. Assim, alguns investigadores [27] [28], propu-

seram aproveitar estas anomalias para realizar localizao dentro de edifcios.

Para isso usado um algoritmo de fingerprint onde se mapeia estas anomalias

usando-as para estimar a posio do utilizador.

O problema desta abordagem a influncia de outros objetos eletrnicos ou

com base em ferro produzem, que por sua vez aumentam as margens de erro

20 Captulo 2. Estado da Arte

desta soluo. Com esta abordagem possvel estimar a localizao do utili-

zador com uma margem de erro mdia de 4.7 metros [27].

2.3.2 Near Field Communication (NFC)

O Near Field Communication (NFC) uma tecnologia sem fios de ligao de

curto alcance (tipicamente 4 cm[29]) de baixo custo. Esta tecnologia permite

troca de informao entre dois dispositivos ou entre um dispositivo e uma

etiqueta (tag) NFC. atualmente usada para variadas aplicaes, como a

realizao de pagamentos, identificao ou partilha de informao. Opera na

gama dos 13.56 MHz com velocidades de transmisso at 424 kbps.

Alguns investigadores implementaram um sistema de localizao simples e de

baixo custo [30][31]. Para o funcionamento destes sistemas, so inicialmente

espalhadas vrias etiquetas NFC dentro do edifcio em posies especficas. O

utilizador quando chega perto de uma, deve aproximar o telemvel dela, sendo

esta interpretada pela aplicao. Atravs desta informao, a aplicao capaz

de indicar onde o utilizador se encontra, e indica para onde o utilizador deve

prosseguir. No final dessa rota, encontrar outra tag e o processo anterior

repetido at chegar ao ponto pretendido. Desta forma a margem de erro da

posicionamento da pessoa no local nula.

Uma limitao desta tecnologia que nem todos os sistemas operativos mveis

permitem tirar proveito desta tecnologia como o caso do iOS.

2.3. Tecnologias capazes de localizar smartphones dentro de edifcios 21

2.3.3 Rede de telecomunicaes

A funo bsica de um telemvel a capacidade de realizar e receber chama-

das. Para isso estabelece uma ligao contnua com a clula atravs de ondas

eletromagnticas. Quando um telemvel ligado este interceta a onda e inicia

a comunicao, sendo esta ligao multidirecional que mantida com a clula.

Uma vez que cada clula tem um nmero de ligaes limitadas, em zonas com

elevada densidade de utilizao, vrias clulas so instaladas.

Um exemplo do uso desta tecnologia para estimar a posio do utilizador

dentro de edifcios foi proposto no artigo Accurate GSM Indoor Localization

[32]. Para isso foi usado um algoritmo de fingerprinting, onde so mapeadas

as 6 clulas mais fortes em cada 1.5 metros. Segundo o autor, este teve uma

margem de erro mdia de aproximadamente 5 metros.

Apesar de ser possvel utilizar este mtodo no Android, no iOS no possvel

aceder informao da fora do sinal das redes de telecomunicaes, no sendo

portanto possvel utilizar este mtodo neste sistema operativo.

2.3.4 Giroscpio e Acelermetro

O giroscpio e o acelermetro so normalmente usados em conjunto apesar de

terem funes distintas. O giroscpio permite-nos indicar qual a inclinao do

smartphone segundo o eixo dos x,y e z. O acelermetro serve para medir a

acelerao no gravitacional, de cada movimento.

Trein, Singh e Maddila realizaram um sistema de localizao dentro de edif-

cios tirando partido destes dois sensores [4]. Estes usaram um algoritmo dead

22 Captulo 2. Estado da Arte

reckoning que, como descrito no captulo anterior, necessita da distncia per-

corrida, e do ngulo em que esta distncia foi efetuada.

Este ngulo inferido a partir do valor medido pelo magnetmetro que vali-

dado com o valores do giroscpio. Se ambos os valores coincidirem este ngulo

usado, caso contrrio ignorado, sendo usado o ltimo valor validado.

A distncia inferida a partir de cada passo dado. Para isso os autores co-

meam por identificar cada passo usando uma fase treino. Com este intuito,

uma pessoa percorre determinado percurso e conta o nmero de passos, sendo

a informao do acelermetro guardada. Esta informao depois analisada

de forma a ser possvel indicar inequivocamente cada um destes passos dados.

Um valor da distncia percorrida por cada passo definido previamente, de

acordo com a altura do utilizador. Desta forma so induzidas a distncia e o

ngulo necessrios para o algoritmo dead reckoning.

Os resultados desta experincia mostraram que possvel identificar os passos

de cada pessoa com uma taxa de erro de 1.055% e saber o ngulo de cada passo

com uma margem de erro de aproximadamente 20o. Mas o algoritmo no foi

capaz de identificar o caminho total percorrido por cada utilizador. Apesar de

no ser indicada qual a margem de erro real desta abordagem, afirmada a

necessidade de outras tecnologias como Bluetooth, para ultrapassar limitaes

desta abordagem.

Ladetto e Merminod criaram um sistema semelhante tendo os seus resultados

mostrado uma margem erro mdia de aproximadamente 10 metros [33].

2.3. Tecnologias capazes de localizar smartphones dentro de edifcios 23

2.3.5 Sensor de Imagem

Atualmente todos os smartphones esto equipados com sensores de imagem

(cmaras). Por esta razo existe o interesse de usar esta tecnologia para estimar

a posio do utilizador dentro de edifcios.

Um dos sistemas promissores o uso de comunicao de luz visvel. Essenci-

almente utilizam as frequncias das lmpadas para transmitir informao que,

apesar de o olho humano no ser capaz de as observar, estes sensores so.

assim usada uma aplicao no telemvel capaz de interpretar esta informao,

que essencialmente um ID da lmpada, para ser usado como ponto ncora.

tambm analisado o ngulo que a cmara faz com luz emissora. Com estes

dados, aplicado um mtodo baseado na angulao para estimar a posio do

utilizador, sendo possvel uma margem de erro mdia de 1.5 metros [34].

2.3.6 Wi-Fi e Bluetooth

Atualmente todos os smartphones tm placas de Bluetooth e Wi-fi, sendo por

isso uma tecnologia aprecivel para tentar resolver o problema de localizao

dentro de edifcios. Neste mbito, vrios sistemas foram desenvolvidos usando

Wi-FI [35][36][37][1] e usando Bluetooth [38][39][40][2][23]. O seu funciona-

mento passa por espalhar estes dispositivos no espao, criando uma malha de

rede. Aps isto, valores como a fora do sinal (RSSI) so usadas para identi-

ficar a posio do utilizador. O problema de ambas tecnologias, a variao

do sinal, isto , estando exatamente no mesmo ponto vrios valores RSSI so

lidos. Outro problema a refrao, reflexo e absoro do sinal, sendo esta

agravada dentro de edifcios devido ao facto de existirem mltiplos objetos

24 Captulo 2. Estado da Arte

entre o emissor e o recetor. Formas de minimizar o erro produzido por estes

fatores ainda uma rea em estudo.

Wi-Fi

O IEEE 802.11, vulgarmente conhecido por Wi-Fi, ao longo dos anos foi subs-

tituindo a necessidade de ligar um cabo Ethernet aos nossos dispositivos ele-

trnicos. Atualmente os smartphones esto equipados com placas compatveis

com protocolo 802.11n, sendo que os mais atuais j cumprem a norma 802.11ac.

A primeira norma opera no espectro de 2.4GHz e/ou 5GHz sendo que a se-

gunda apenas opera no de 5GHz. Estas evolues procuraram o aumento do

alcance, velocidade de transferncia e eficincia energtica.

Apesar de ser uma tecnologia banalizada, atualmente presente na maioria dos

edifcios, para a implementao de um sistema de localizao, necessrio colo-

car vrios Access Point (AP) em posies estratgicas. Usando esta tecnologia

expectvel um erro entre 2-6 metros dependendo do algoritmo utilizado [3].

Ao contrrio do Android, existe a limitao que no iOS no possvel aceder

informaes das redes Wi-Fi envolventes, sendo apenas possvel usando uma

API privada, infringindo assim uma regra da Apple Store, levando a que uma

possvel aplicao seja rejeitada. Para ultrapassar esta limitao, dever ser o

AP a estimar a posio do utilizador.

Bluetooth

O Bluetooth atualmente usado para a criao de redes pessoais, usualmente

para troca de informao. O Bluetooth usa a espectro de frequncia 2.4GHz. A

2.3. Tecnologias capazes de localizar smartphones dentro de edifcios 25

sua ultima verso, 4.0, conhecida como Bluetooth Low Energy (BLE) ou Blu-

etooth Smart, distingue-se essencialmente pelas melhorias a nvel energtico.

Esta nova verso consome entre 1/2 a 1/100 em comparao com o anterior

verso [41]. Isto permite a dispositivos que utilizem esta tecnologia terem uma

autonomia de anos quando alimentadas por pilhas usualmente presentes nos

relgios de pulso [42].

Como referido anteriormente, para o uso desta tecnologia para estimar a po-

sio do utilizador so espalhados Beacons que usam bluetooth pelo espao.

Com esta tecnologia expectvel uma margem de erro mdia entre 2-4 me-

tros. [40][43]

Sendo esta uma tecnologia barata e eficaz para o efeito, houve o interesse

de criar um produto comercial, mas ao mesmo tempo era necessrio que os

sistemas operativos mveis integrassem-se com esse produto.

A Apple decidiu ento desenvolver o seu protocolo de comunicao, que es-

tesBeacons devem cumprir, de forma ser possvel comunicar com os seus sis-

temas operativos, a que apelidou iBeacon

iBeacons

A Apple com a ambio de ligar os seus dispositivos eletrnicos ao mundo

externo decidiu criar um protocolo que apelidou iBeacon. O seu intuito criar

regies volta do Beacons, que podem estimar a proximidade do utilizador

a este e por sua vez a um produto (Figura 2.5). Apesar de ser um protocolo

desenvolvida pela Apple, qualquer dispositivo mvel com uma placa BLE

capaz de receber e interpretar estes pacotes.

26 Captulo 2. Estado da Arte

Figura 2.5: Uso de beacons [5]

Esta tecnologia tira partido do advertisement channel do BLE, emitindo cons-

tantemente pacotes, sendo que cada um transporta at um mximo de 31

bytes. Na figura 2.6 pode-se observar a informao enviada em cada pacote

usando este protocolo [44][45][46].

Figura 2.6: Informao enviada em cada pacote

iBeacon prefix

Este prefixo indica que o pacote provem de um iBeacon

UUID, Major, Minor

Servem para indicar inequivocamente a que beacon pertence o pacote.

Por exemplo, o campo UUID pode ser partilhado por uma cadeia de lojas.

O campo Major pode indicar qual a loja em questo e o Minor qual a

2.3. Tecnologias capazes de localizar smartphones dentro de edifcios 27

seco. Assim conseguimos inferir que o utilizador est em determinada

loja numa determinada seco.

TX power

Indica a fora do sinal medido a 1 metro, Este valor usado para inferir

a distncia ao beacon.

2.3.7 Anlise das tecnologias

Nesta seco realizada uma analise das vrios tecnologias documentadas nesta

seco. Para isso so analisados os campos:

Margem de erro A margem de erro mdia da posio estimada;

Compatibilidade Compatibilidade com os sistemas operativos mveis atu-

ais;

Escalabilidade A reao do sistema em relao a espaos diferentes;

Usabilidade Comodidade para o utilizador. Dever ser possvel estimar a

posio do utilizador, com o smartphone no bolso. Este campo impor-

tante, devido introduo dos smartwatches, que devido s suas limita-

es tem que ser o smartphone a estimar a posio do utilizador.

A tabela 2.2 demonstra a anlise feita em relao a estes campos.

Como referido anteriormente nesta seco, tanto o NFC como o uso de redes

de telecomunicaes no so compatveis com o iOS e como tal no satisfazem

o campo compatibilidade.

28 Captulo 2. Estado da Arte

TecnologiaMargem de

erro(metros)

Compatibi-lidade

Escalabili-dade

Usabili-dade

Bluetooth 2 3 3 3Wi-Fi 2 3* 3 3Cmara 1.5 3 3 7Giroscpio e Ace-lermetro 10 3 3 3

Rede de teleco-municaes 5 7 7 3

NFC - 7 3 7Magnetmetro 4.7 3 7 3* Se o AP for capaz de estimar a distncia ao utilizador;3- Satisfaz o campo analisado7- No satisfaz o campo analisado.

Tabela 2.2: Analise das tecnologias capazes de localizar smartphones dentrode edifcios

No caso da escalabilidade para o uso das redes de comunicao e o Magne-

tmetro para estimar a posio do utilizador, necessrio usar tcnicas de

fingerprinting. Como visto na seco 2.2.3, este algoritmo necessita de uma

fase de aprendizagem, onde necessrio retirar mltiplas amostras em mlti-

plos pontos, que apesar de sua realizao ser simples, demoroso. Uma vez

que alteraes no espao vo influenciar os dados previamente gravados, ser

necessria realizar esta fase sempre que houver uma alterao no espao.

Em relao usabilidade, tanto o NFC como o uso da cmara, no satisfazem

este campo. No caso da cmara, porque necessrio o smartphone estar na

mo do utilizador apontado para cima. No caso do NFC porque este no

capaz de estimar a posio do utilizador de forma continua, necessitando que

o utilizador se aproxime de uma tag NFC,

2.4. Sistemas Relacionados 29

2.4 Sistemas Relacionados

Nesta seco realizado um levantamento de sistemas atualmente presentes no

mercado ligados localizao dentro de edifcios para superfcies comerciais.

Uma vez que estes sistemas so proprietrios, a informao tcnica existente

muito limitada sendo informao levantada nesta seco proveniente dos

websites de cada produto e de emails trocados com estes.

2.4.1 Senionlab

A SenionLab fornece um sistema de localizao dentro de edifcios tirando par-

tido das tecnologias Wi-Fi e/ou Bluetooth. Estes comercializam o dispositivo

SenionBeacon que usa a tecnologia BLE, que deve ser instalado em variados

pontos da rea onde pretendemos implementar o sistema. Aps a instalao

destes dispositivos, o cliente envia o mapa para esta empresa. Esta empresa

gera um percurso que o cliente deve percorrer de forma a recolher informa-

o do espao. Esta informao depois analisada pela empresa de forma a

permitir indicar a posio do utilizador.

Apesar de no existir informao que o confirme, possvel especular que

utilizam um algoritmo de localizao baseado no fingerprinting. Estes afirmam

ter uma preciso entre 1 a 5 metros. Segundo emails trocados com a empresa,

o kit de avaliao tem o preo de 1500 euros com 10 beacons acrescido do

custo de cada beacon extra (40 Euros). Estes acrescentam que para uma

instalao definitiva, existe o custo de instalao e um custo de licenciamento

mensal baseado no tamanho da superfcie comercial, apesar de no relevarem

os possveis custos.

30 Captulo 2. Estado da Arte

2.4.2 Indoors

O Indoors um sistema muito semelhante ao SenionLab. Este diferencia-se por

ser um sistema mais maduro, tendo variadas ferramentas complementares j

desenvolvidas como ferramentas para gerar mapas. Ao contrario da SenionLab

que apenas permite o uso do SenionBeacon, este disponibiliza uma lista de

dispositivos bluetooth de terceiros compatveis.

Para realizar localizao dentro de edifcios este sistema usa uma abordagem

baseada no fingerprinting. Segundo os prprios, o sistema tem uma preciso

de 5 metros em 95% dos casos. Estes indicam que o valor pode ser menor

quanto maior o nmero de beacons, Wi-Fi ou Bluetooth, forem introduzidos.

A verso base deste sistema tem o custo de 500$ por ms mais o custo dos

beacons necessrios.

2.4.3 Quuppa

A Quuppa desenvolveu um sistema proprietrio para realizao de localizao

dentro de edifcios. Para isso, estes desenvolveram um recetor que permite

estimar o ngulo de determinado pacote bluetooth recebido. Com este(s) n-

gulo(s) (dependendo do numero de recetores) aplicado um algoritmo baseado

na angulao para estimar a posio do dispositivo. Para isto, os dispositivos

tm que possuir um placa BLE e correr um software proprietrio. Uma vez

que em muitos dispositivos no possvel instalar software de terceiros, estes

conceberam uma tag para este fim. Afirmam ser possvel uma preciso inferior

a 1 metro com o seu sistema. No foi possvel saber o custo deste sistema.

2.4. Sistemas Relacionados 31

2.4.4 StoreMode

A StoreMode uma plataforma desenvolvida pela empresa americana Point

Inside. Com esta plataforma possvel criar mapas interativos, gerir a lista

de compras, calcular o caminho mais eficiente de acordo com lista de com-

pras e realizar variados tipos de pesquisas de produtos. Do ponto de vista

da superfcie comercial esta plataforma realiza anlise do comportamento dos

utilizadores recomendando aes. No entanto, esta plataforma apenas um

backend, e no uma soluo completa como o aisle411.

2.4.5 aisle411

A aisle411 dedica-se melhoria da experincia de utilizadores dentro de su-

perfcies comerciais. Estes criaram um sistema que permite aos clientes da

superfcie comercial criar uma lista de compras e mapear os itens presentes

nesta lista e pesquisa por outros.

Em relao aos mtodos usados para realizar localizao dentro de edifcios, es-

tes usam diferentes tecnologias consoante o espao e as necessidades do cliente.

Segundo [47], em 2013, estes usavam um algoritmo de fingerprinting usando

Wi-Fi, existindo a limitao que apenas era possvel estimar a localizao do

utilizador em smartphones com o sistema operativo Android. Atualmente estes

tm parcerias com empresas como a IndoorAtlas, Estimote e Cisco, empresas

com vrias solues nesta rea, tento essa limitao sido ultrapassada. Es-

tes afirmam que o seu sistema tem uma preciso de 2 metros, apesar de no

especificarem com que tecnologia ou conjunto de tecnologias. Os custos de

implementao deste sistema podem rondar os 250 mil dlares.

32 Captulo 2. Estado da Arte

Sendo este sistema semelhante ao proposto, foi realizada uma anlise na tabela

2.3

Sistema aisle411 WhitesmithPesquisa de produtos 3 3Lista de compras 3 3Gerao do percurso mais curto 3 3indoor location 3 3Analise de dados 3 3*Check-out 3 3*Custo Elevado BaixoMargem de Erro 2 metros 1 metro*Planeado para a prxima iterao do sistema.3- Satisfaz o campo analisado.

Tabela 2.3: Comparao entre o sistema ailse411 e Whitesmith

Com est possvel observar que os sistemas apresentam semelhanas, no

entanto o sistema da Whitesmith destaca-se pela positiva nos pontos Margem

de erro e Custo.

2.5 Desenvolvimento de Aplicaes Mveis

Neste captulo so abordados os vrios tipos de aplicaes que so possveis

desenvolver para os smartphones, fazendo um levantamento das suas vantagens

e desvantagens.

Para desenvolvimento de aplicaes mveis existem trs formas distintas de o

fazer:

Aplicaes Nativas

As aplicaes nativas so desenvolvidas especificamente para cada sistema ope-

rativo mvel, usando Software Development Kit ou Kit de Desenvolvimento

2.5. Desenvolvimento de Aplicaes Mveis 33

de Software (SDK) e Application Programming Interface (API) de cada plata-

forma e as suas linguagens de programao (Java em Android, Ojective-C ou

Swift em iOS e C# no caso de Windows Phone). Estes foram desenvolvidos

de forma a permitir ao programador tirar o mximo partido das capacidades

do smarphone e do seu sistema operativo, tanto em termos de funcionalidades

como de performance.

A necessidade de criar diferentes aplicaes para os diferentes sistemas ope-

rativos o maior problema desta abordagem, onde o cdigo no pode ser

reaproveitado entre diferentes sistemas operativos. Por isso, existem algu-

mas ferramentas que nos permitem partilhar algum cdigo entre as diferentes

aplicaes e/ou usar diferentes linguagens de programao, sendo este cdigo

compilado para a arquitetura em questo. Alguns exemplos destas ferramentas

so o RubyMotion, que se programa na linguagem Ruby e permite a criao de

aplicaes compatveis com iOS e Android, ou Xamarin onde se programa na

linguagem C# e permite desenvolver para iOS, Android e Windowns Phone.

Aplicaes Web

Ao aplicaes web ou Web Apps so desenvolvidas usando tecnologias como

o HTML5, CSS e javascript, acedidas a partir dos browsers, sendo assim ne-

cessria uma ligao Internet. A vantagem em relao s aplicaes nativas,

so o facto de estas funcionarem em todos os sistemas operativos mveis atu-

ais mas terem acesso limitado s funcionalidades do telemvel, como aceder

aos contactos ou correr em background. Ao contrrio das aplicaes nativas,

em que cada ao pode ter um efeito imediato no estado da aplicao como

uma alterao de view, neste tipo de aplicaes isto no possvel uma vez

que, usualmente, cada ao implica um pedido ao servidor e interpretao da

34 Captulo 2. Estado da Arte

resposta.

Aplicaes Hbridas

Os SDK dos vrios sistemas operativos mveis contm na sua User Interface

(UI) framework uma Web View, que permite mostrar contedo HTML a partir

de um servidor remoto ou localmente. As aplicaes hbridas tiram proveito

destas, sendo essencialmente aplicaes web a correr numa aplicao nativa

com numa Web View. Isto permite aceder a APIs nativas que, normalmente,

no esto disponveis para aplicaes web, como a cmara, contactos ou cor-

rer em background. Uma vez que o UI desenvolvido em HTML/CSS, este

compatvel com todos os sistemas operativos, mas as chamadas a API nativas

tm que ser alteradas consoante os vrios sistemas operativos. Com o intuito

de colmatar esta falha, existem frameworks como PhoneGap, Ionic, Trigger.io

ou Cordova que funcionam como uma ponte entre a aplicao web e a aplica-

o nativa. Para isso, incluem cdigo em JavaScript que permite comunicar

assincronamente entre a aplicao nativa e a web view. Estas frameworks,

interpretam estas mensagens, e realizam as chamadas s API nativas para o

sistema operativo em que est a ser executado.

Vantagens/Desvantagens

Em seguida realizada uma comparao entre estes vrios tipos de aplicao,

onde so comparados segundo os campos de custo, portabilidade de cdigo,

capacidade de acesso s funcionalidades do smartphone, consistncia da UI,

distribuio e performance [48][49].

2.5. Desenvolvimento de Aplicaes Mveis 35

Custo As aplicaes nativas tm, normalmente, um maior custo devido s

vrias linguagens de programao para cada ecossistema, caso se pre-

tenda desenvolver para as vrias plataformas. Estas necessitam de equi-

pas com conhecimentos especficos para cada ecossistema. As aplicaes

Web so as de menor custo, devido ao facto de um projeto funcionar

automaticamente com todas as plataformas, e do facto de apenas ser

necessrio conhecimentos em desenvolvimento para a web. Nas aplica-

es multi-plataforma (aplicaes hbridas e nativas usando frameworks

de terceiros) possvel a partilha de parte do cdigo ao longo dos v-

rios ecossistemas, apresentando-se igualmente com um baixo custo de

desenvolvimento.

Apesar disso, o custo est dependente de outros fatores, por isso as aplica-

es nativas podem nem sempre ser as mais dispendiosas de desenvolver.

Principalmente no caso onde um elevado nvel de personalizao envol-

vido, uma vez que as APIs das frameworks de terceiros, apenas contm

acessos genricos/comuns s APIs do smartphone.

Portabilidade A portabilidade ou partilha de cdigo, a maior fraqueza das

aplicaes nativas, uma vez que estas no permitem partilha de qualquer

tipo de cdigo. J no caso das aplicaes web um projeto funciona em

todas as plataformas, sendo a compatibilidade com os diferentes browsers

a nica preocupao. No caso das aplicaes multi-plataforma, grande

parte do cdigo pode ser partilhado pelas vrias plataformas. usual-

mente necessrio, alteraes no layout das aplicaes, para ficarem em

conformidade com as normas de cada ecossistema e as suas lojas mveis.

Outras alteraes podem ter que ser necessrias realizar, consoante a

ferramenta de desenvolvimento utilizada.

36 Captulo 2. Estado da Arte

Capacidade de acesso s funcionalidades do smartphone As aplicaes

web apenas conseguem aceder a algumas APIs do smartphone como ao

GPS, mas so ainda muito limitadas. AW3C est atualmente a trabalhar

em novos standards de forma a aumentar o nmero de APIs disponveis

para este tipo de aplicaes. As aplicaes nativas so as com maior

acesso aos smartphone, devido a serem mantidas pelos proprietrios de

cada sistema operativo mvel. Assim, sempre que uma nova funcionali-

dade introduzida num novo smartphone, estes criam APIs de forma a

dar acesso aos programadores, caso assim o pretendam. J no caso das

aplicaes multi-plataforma, est usualmente dependente do suporte da

ferramenta utilizada.

Consistncia na UI As aplicaes nativas tiram partido dos UI Kits de-

senvolvidos pelos responsveis por cada sistema operativo, garantindo

consistncia entre as aplicaes de terceiros com o seu sistema operativo.

J no caso das aplicaes web e multi-plataforma as UIs so desenvol-

vidos usando HTML, CSS e Javascript tentando assemelhar-se s apli-

caes nativas, mas pormenores como efeitos grficos, no conseguem

ser simulados. O facto de no usarem os UI Kits de cada plataforma,

levanta um problema no caso de uma atualizao no layout do sistema

operativo. Aquando destas atualizaes, os UI Kits so igualmente atu-

alizados, passando as aplicaes a serem consistentes com essa verso

do sistema operativo, com um pequeno ou mesmo nenhum esforo do

lado do programador. J no caso das aplicaes web e hbridas, onde o

layout da aplicao independente destes UI Kits nativos, este nvel de

atualizaes torna-se mais complexo de realizar.

Distribuio As aplicaes nativas e hbridas, so instaladas no sistema ope-

2.5. Desenvolvimento de Aplicaes Mveis 37

rativo do utilizador, sendo por isso usualmente usadas as lojas mveis.

No caso do iOS apenas aplicaes na Apple Store podem ser instaladas

neste sistema operativo. No caso do Android, no existe este bloqueio,

podendo o utilizador instalar aplicaes provenientes ou de lojas de ter-

ceiros ou atravs do ficheiro de instalao (.apk). Mas a Google Play

Store, loja da Google para este sistema operativo, a loja com maior n-

mero de downloads para o Android, caso seja removido o mercado chins,

onde este loja no est presente atualmente[50]. Por esta razo torna-se

importante ter presena nestas duas lojas mveis, apesar de ambas te-

rem variados tipos de diretrizes que os programadores tm que cumprir,

tanto ao nvel do tipo de aplicaes permitidas como ao nvel do design

da aplicao. Estas lojas garantem ao utilizador segurana e comodi-

dade para encontrar e instalar aplicaes. Apesar das aplicaes Web

no terem qualquer tipo de restrio e custo associado (as lojas mveis

cobram aproximadamente 30% do custo da aplicao), tambm no tm

uma forma to fcil de chegar at aos seus consumidores.

Performance As aplicaes nativas comunicam diretamente com as APIs do

sistema e so programadas diretamente na linguagem em que o sistema

est otimizado para interpretar/compilar. So estas as mais capazes de

extrair a maior performance possvel de cada smartphone. As aplica-

es multi-plataforma nativas, sofrem do problema das vrias layers de

abstrao existentes, para ser possvel, por exemplo, partilhar views, en-

tre as vrias plataformas. Uma vez que nas aplicaes web e hbridas,

todo o tipo de renderizao como botes, animaes ou transies de

views so emulados usando HTML, CSS e JavaScript, no tirado dire-

tamente partido do hardware do telemvel, existindo ainda uma maior

perda de performance. Nas aplicaes web acresce o facto de depender

38 Captulo 2. Estado da Arte

diretamente da ligao rede.

Na tabela 2.4 pode-se observar um resumo dos tpicos em cima referidos, e clas-

sificados como vantagem, desvantagem e neutro (quando determinado tpico

analisado para determinada aplicao no se apresenta como uma vantagem

ou desvantagem).

Como se pode observar no existe uma melhor abordagem, dependendo sem-

pre dos requisitos e restries de determinado projeto, cabendo equipa de

desenvolvimento decidir o que melhor se adapta s suas necessidades.

2.5. Desenvolvimento de Aplicaes Mveis 39

Nativa

Multi-plataform

aWeb

Custo

Omaiselevad

o,caso

sepretenda

desenv

olverpa

raas

vrias

plata-

form

as

Semelha

nte

sap

licaes

web

mas

umconjun

toextrade

conh

e-cimentosrequ

erido.

Omaisba

ixodo

strs,devido

aofactode

umprojetofunciona

rem

toda

sas

plataformas

ede

apenas

sernecessrio

conh

ecim

entosna

rea

dedesenv

olvimento

Web.

Portatibilidad

eO

cdigo

para

umplataforma

apenas

funciona

nessaplataforma

Asferram

entaspa

radesenv

olvi-

mento

destas

aplicaes

perm

i-tem

apo

rtab

ilida

dede

cdigo

para

osvrios

sistem

asop

erativos

mveis.

Com

patibilid

adecom

osdiversos

brow

sers

epe

rforman

ceso

asn

icas

preocupa

es

Acesso

sfuncion

a-lidad

esdo

smar

tpho

ne

As

plataformas

dedesenv

olvi-

mento

para

cada

sistem

aop

era-

tivo

perm

item

aceder

atoda

sas

APIs

dosm

artphone

.

VriasAPIs

dosm

artphone

po-

dem

sera

cedida

s,mas

depe

ndeda

ferram

enta

utilizada

.

Pou

casAPIs

podem

seracedidas

Con

sistn

cia

daUI

Aplataformade

desenv

olvimento

contm

compo

nentes

UIun

ifor-

mizad

oscom

osistem

aop

erativo

emqu

esto.

Asfram

eworks

deUIpe

rmitem

alcanar

umaspe

tosemelha

nteao

nativo

Asfram

eworks

deUIpe

rmitem

alcanar

umaspe

tosemelha

nteao

nativo

Distribuio

Aslojasde

aplicaesmveispro-

porciona

mbe

nefc

iosde

marke-

ting

mas

tm

requ

isitos,restri-

es

ecustos.

Aslojasde

aplicaesmveispro-

porciona

mbe

nefc

iosde

marke-

ting

mas

tm

requ

isitos,restri-

es

ecustos.

Sem

restries,m

asn

ose

tem

osbe

nefc

iosda

slojasmveis.

Perform

ance

Cd

igona

tivo

acedediretamente

sfunciona

lidad

esda

plataforma,

resultan

donu

ma

melho

rexpe

ri-

ncia

Para

aplicaes

complexas,

ascamad

asde

abstrao

impe

dem

umape

rforman

cecomoas

aplica-

es

nativas.

Perform

ance

ba

sead

ano

brow

-serena

ligao

deInternet.

Legend

a:Pon

toafavor;

Pon

tone

utro;Pon

tocontra,

Tabe

la2.4:

AplicaesNativas

vsMulti-plataform

avs

Web

Captulo 3

Metodologia e Planeamento

3.1 Metodologia

Para este projeto foi escolhida uma metodologia gil. Mais concretamente foi

escolhida Lean Software Development (LSD). Esta metodologia foi escolhida

uma vez que se enquadra tanto com a filosofia da empresa como do estagirio.

Os princpios desta metodologia so:

Eliminar desperdcio;

Aumentar o conhecimento;

Decidir o mais tarde possvel;

Entregar o mais rpido possvel;

Dar poder equipa;

Construir integridade (Integridade de perceo e conceptual);

Ver o inteiro.

40

3.1. Metodologia 41

Eliminar desperdcio, como burocracias e outros artefactos menores que outras

metodologias requerem e dar poder de deciso ao estagirio, leva a ciclos mais

rpidos de desenvolvimento assim como ao mesmo tempo melhora a apren-

dizagem da equipa, podendo levar construo de um melhor sistema e ao

aumento do conhecimento do estagirio, satisfazendo assim o objetivo do es-

tgio.

Olhar para o sistema como um todo juntamente com o princpio de decidir o

mais tarde possvel permite uma rpida adaptao do sistema a novos requisi-

tos.

Para manter o controlo das tarefas estabelecidas e ao mesmo tempo da evoluo

do sistema, foi usada a ferramenta Trello 1. Esta ferramenta permite organizar

tarefas por seces personalizadas. Estas seces foram inspiradas no quadro

de Kanban. Esto assim divididas da seguinte forma:

Could Do, inserimos neste estado as tarefas que se podem realizar caso

seja possvel.

To Do, as tarefas inseridas neste estado so as que temos obrigatoria-

mente de realizar.

Doing, as tarefas aps iniciadas so postas neste estado.

Done, quando a tarefa concluda passamo-la para este estado.

Assim, olhando para este quadro conseguimos facilmente identificar o estado

em que cada tarefa se encontra em cada momento.

Para controlo das verses geradas foi usado um Version Control System (VCS).

A escolha recaiu sobre o Git, devido aos conhecimentos do estagirio e devido1Trelo: https://trello.com/

42 Captulo 3. Metodologia e Planeamento

ao facto de ser usado pela empresa. O repositrio Git sincronizado com uma

verso online hospedada pelo GitHub 2, o servio usado pela empresa.

3.2 Planeamento

3.2.1 Primeiro Semestre

Durante o primeiro semestre foram estabelecidas as seguintes tarefas:

Estado da arte;

Definio da arquitetura do sistema;

Definio dos requisitos do sistema;

Incio do desenvolvimento;

Para alm das tarefas estabelecidas o estagirio teve a necessidade de estudar

algumas tecnologias para o desenvolvimento deste projeto:

Swift, nova linguagem introduzida pela Apple;

Interao dos beacons com iOS;

Inter-App Communication;

Comunicao eficiente com o servidor em iOS.

Por isso, foi efetuado um planeamento do semestre que originou o diagrama

de Gant presente na figura 3.1,2GitHub: https://github.com/

3.2. Planeamento 43

Figura 3.1: Diagrama de Gant inicial relativo ao primeiro semestre

Inicialmente o estgio tinha por objetivo aproveitar as capacidades do BLE

para o contexto da smart home. Mas, com o incio da realizao do estado

da arte, foram encontradas diversas solues que tinham sido recentemente

lanadas para o efeito, e com o propsito de manter um carcter inovador

no estgio, foi proposta a sua alterao. Com isto, houve um desvio de trs

semanas em relao ao plano inicial.

O estudo das tecnologias necessrias demorou mais uma semana do que o pre-

visto, essencialmente pela necessidade do estudo do funcionamento dos beacons

e a sua integrao com o sistema operativo iOS.

Com estes desvios, o tempo de implementao foi reduzido em trs semanas.

O diagrama de Gant presente na figura 3.2 mostra a real distribuio temporal

das tarefas ao longo do primeiro semestre.

Figura 3.2: Diagrama de Gant final relativo ao primeiro semestre

44 Captulo 3. Metodologia e Planeamento

Pode-se observar que foi iniciado o desenvolvimento de um prottipo. Este

prottipo tinha por objetivo validar os objetivos deste estgio, sendo por isso

desenvolvido um algoritmo simples de localizao dentro de edifcios.

3.2.2 Segundo Semestre

Aps a discusso na defesa intermdia, houve uma necessidade de ajustar os

objetivos deste estgio, por este ser complexo e extenso. Inicialmente este

estgio tinha por objetivo a criao das trs diferentes aplicaes do sistema

(figura 3.3). Este objetivo foi redefinido, passando o estagirio a ser apenas

responsvel pelo desenvolvimento da aplicao de guia dos clientes (figura 3.4),

tal como sugerido na defesa intermdia. No anexo B esto presentes ambos os

diagramas detalhados.

Figura 3.3: Diagrama de Gant planeado para o segundo semestre

Figura 3.4: Diagrama de Gant real do segundo semestre

3.2. Planeamento 45

Aps a finalizao do prottipo, com resultados promissores, iniciou-se o de-

senvolvimento da aplicao de localizao dento de edifcios.

Esta aplicao composta por 4 diferentes mdulos:

Mdulo de localizao dentro de edifcios responsvel por estimar

a posio do utilizador;

Mdulo de mapeamento responsvel pelo mapeamento da espao;

Mdulo de navegao responsvel pela gerao do percurso mais curto

e de indicar ao utilizador quais as direes que deve seguir;

Mdulo de comunicao responsvel pela comunicao com o servidor

e com outras aplicaes.

Cada um destes mdulos vo ser vistos em mais detalhe nos captulos seguin-

tes.

Captulo 4

Requisitos

Neste captulo so abordados os requisitos do sistema. Para isso feito um le-

vantamento dos stakeholders, casos de uso, requisitos funcionais e de qualidade

deste projeto.

4.1 Stakeholders

Os stakeholders so agentes que interagem de forma direta ou indereta com o

sistema, que englobam [51]:

Financiadores do produto;

Responsveis pelo desenvolvimento;

Utilizadores do produto.

Na tabela 4.1 esto referenciados os stakeholders deste sistema.

46

4.2. Casos de Uso 47

Stakeholders Descrio ResponsabilidadeWhitesmith Empresa proprietria do projeto Comunicar necessidades e validar

o sistemaCoordenador doProjeto

Eng. Rafael Jegundo Monitorizar os processos de de-senvolvimento e utilizao

Utilizador Clientes da superfcie comercialque utilizam a aplicao

-

Superfcie co-mercial

Superfcie comercial onde o sis-tema est implementado

Responsvel por manter o sis-tema, comunicando alteraes deespao e de produtos

Tabela 4.1: Stakeholders - Descrio e Responsabilidades

4.2 Casos de Uso

Nesta seco so mostrados os casos de uso deste sistema dividido pelas dife-

rentes aplicaes.

Aplicao de Gesto Lista de Compras

Lista de compras

Descrio Geral: O utilizador quer ser capaz de ver a sua lista de

compras

Entidades Envolvidas: Utilizador

Pr-Condio: O Utilizador est autenticado

Fluxo de eventos: 1. Entra na aplicao

2. mostrada a lista de compras

48 Captulo 4. Requisitos

Inserir produto na lista de compras

Descrio Geral: O utilizador quer ser capaz de inserir produtos na

sua lista de compras.

Entidades Envolvidas: Utilizador

Pr-Condio: O utilizador est autenticado

Fluxo de eventos: 1. Entra na aplicao

2. Clica no boto de inserir

3. Insere o nome do produto e quantidade.

Ps-Condies: 1. O sistema capaz de identificar o produto e a

quantidade inserida.

2. O produto fica inserido na lista de compras.

Eliminar/Editar um produto inserido

Descrio Geral: O utilizador quer ser capaz de eliminar ou editar

determinado produto.

Entidades Envolvidas: Utilizador

Pr-Condio: 1. O utilizador est autenticado

2. O utilizador tem produtos na lista

Fluxo de eventos: 1. Entra na aplicao

2. Clica no produto

3. A linha do produto fica editvel sendo possvel apagar arras-

tando o dedo.

Ps-Condies: O produto editado/eliminado

4.2. Casos de Uso 49

Enviar lista de compras para a aplicao de guia dos clientes

Descrio Geral: O utilizador quer ser capaz de enviar a sua lista para

a de guia de clientes de forma a ser possvel indicar o percurso mais

curto

Entidades Envolvidas: Utilizador

Pr-Condio: 1. O utilizador est autenticado

2. A aplicao de guia dos clientes est instalada

Fluxo de eventos: 1. Entra na aplicao

2. Clica no boto de exportar para a aplicao de guia dos clientes

Ps-Condies: A lista enviada para a aplicao de guia dos clientes

Aplicao dos Funcionrios

Pesquisar por produtos

Descrio Geral: O funcionrio deve ser capaz de pesquisar por pro-

dutos existentes na superfcie comercial.

Entidades Envolvidas: Funcionrio

Pr-Condio: O funcionrio est autenticado

Fluxo de eventos: 1. Entra na aplicao

2. Clica no boto de pesquisa

3. mostrada uma lista categorizada dos produtos e um local

onde possvel inserir o nome do produto em questo

4. mostrada uma lista de produtos de acordo com a seleo

anterior

50 Captulo 4. Requisitos

5. Clica num produto

6. So mostrados detalhes do produto

Pesquisar por produtos por cdigo de barras

Descrio Geral: O funcionrio deve ser capaz de pesquisar produtos

atravs do cdigo de barras.

Entidades Envolvidas: Funcionrio

Pr-Condio: O funcionrio est autenticado

Fluxo de eventos: 1. Entra na aplicao;

2. Clica no boto de pesquisa;

3. Clica no boto de pesquisa por cdigo de barras;

4. Aponta a cmara para o cdigo de barras;

5. So mostrados detalhes do produto

Editar produto

Descrio Geral: O funcionrio deve ser capaz de editar informao

de um produto.

Entidades Envolvidas: Funcionrio

Pr-Condio: 1. O funcionrio est autenticado

2. Pesquisou pelo produto que quer editar

Fluxo de eventos: 1. (Pesquisa pelo produto);

2. Clica no boto editar;

3. Edita um produto.

4.2. Casos de Uso 51

Ps-Condies: O produto fica com os valores por este introduzido

Adicionar um novo produto

Descrio Geral: O funcionrio deve ser capaz de adicionar um novo

produto.

Entidades Envolvidas: Funcionrio

Pr-Condio: 1. O funcionrio est autenticado

2. Pesquisou pelo produto e este no foi encontrado no sistema

Fluxo de eventos: 1. Clica em adicionar produto;

2. Insere dados relativos aos produtos;

Ps-Condies: O produto introduzido no sistema

Reposio de stock

Descrio Geral: O funcionrio deve atualizar informao quando re-

pe um produto.

Entidades Envolvidas: Funcionrio

Pr-Condio: 1. O funcionrio est autenticado

2. Pesquisou pelo produto que est a repor

Fluxo de eventos: 1. (Pesquisa pelo produto);

2. Clica em repor;

3. Indica quantas unidades do produto est a repor;

4. O sistema verifica se est na posio habitual do produto;

5. Caso no esteja, pedido ao funcionrio para introduzir a nova

posio.

52 Captulo 4. Requisitos

Ps-Condies: O sistema guarda esta nova informao inserida

Aplicao de Guia dos Clientes

Pesquisa e detalhes de produtos

Descrio Geral: O cliente deve ser capaz de pesquisar e ver detalhes

dos produtos comercializados pela superfcie comercial

Entidades Envolvidas: Cliente

Fluxo de eventos: 1. Entra na aplicao;

2. Clica no boto de pesquisa;

3. mostrada uma lista categorizada dos produtos e um local

onde possvel inserir o nome do produto em questo;

4. mostrada uma lista de produtos de acordo com a seleo

anterior

5. Clica num produto;

6. So mostrados detalhes desse produto.

Indicar o percurso para determinado produto

Descrio Geral: A aplicao deve ser capaz de indicar ao cliente como

chegar at determinado produto

Entidades Envolvidas: Cliente

Pr-Condio: O cliente pesquisa por um produto

Fluxo de eventos: 1. (clica no produto)

2. Clica no boto de navegao

3. gerado o percurso at esse produto

4.3. Requisitos Funcionais 53

4. O percurso mostrado

5. A aplicao vai indicando o percurso a percorrer.

Receber a lista de compras

Descrio Geral: O sistema deve ser capaz de receber uma lista de

compras proveniente de outra aplicao.

Entidades Envolvidas: 1. Cliente

2. Aplicao de lista de compras

Fluxo de eventos: Recebe lista de compras proveniente de outra apli-

cao

Ps-Condies: A lista interpretada

Gerar percurso de acordo com a lista de compras

Descrio Geral: O sistema deve ser capaz de gerar o percurso mais

curto, consoante a lista de compras do cliente.

Entidades Envolvidas: 1. Cliente

2. Aplicao de lista de compras

Pr-Condio: A aplicao interpretou a lista de compras

Fluxo de eventos: 1. gerado o percurso mais curto

2. O percurso mostrado

3. A aplicao vai indicando o percuso a percorrer.

4.3 Requisitos Funcionais

Com base nos casos de uso previamente descritos foram levantados os requisitos

funcionais descritos nesta seco.

54 Captulo 4. Requisitos

Aplicao de Gesto Lista de Compras

ID: RF-LC1

Ttulo: Autenticao

Entidade: Utilizador

Descrio: Utilizador deve poder-se autenticar na aplicao (username

e password )

Racional: Por forma a ter uma conta com os seus dados e preferncias.

ID: RF-LC2

Ttulo: Mostrar lista de compras

Entidade: Sistema

Descrio: O utilizador quando abre a aplicao deve ter acesso imedi-

ato sua lista de compras

Racional: Uma vez que a funcionalidade principal desta aplicao

a gesto da lista de compras do utilizador, assim que este abre a

aplicao deve ser mostrada uma lista com todos os produtos que o

utilizador pretende comprar.

Dependncia: RF-LC1, RF-LC5

ID: RF-LC3

Ttulo: Inserir produtos na lista

Entidade: Utilizador e Sistema

4.3. Requisitos Funcionais 55

Descrio: O utilizador deve ser capaz de introduzir o que pretende

comprar,

Racional: O utilizador deve ser capaz de introduzir o que produtos na

sua lista de compras de forma simplificada.

Dependncia: RF-LC1

ID: RF-LC4

Ttulo: Gesto da Lista de Compras

Entidade: Utilizador

Descrio: O utilizador deve ser capaz de adicionar/remover/editar a

sua lista de compras.

Racional: Por forma a permitir a gesto da sua lista de compras.

Dependncia: RF-LC2, RF-LC4

ID: RF-LC5

Ttulo: Sincronizao

Entidade: Sistema

Descrio: O sistema deve sincronizar a lista de compras.

Racional: Por forma a permitir a utilizao de vrios dispositivos para

gesto da lista de compras pelo mesmo utilizador.

Dependncia: RF-LC1

56 Captulo 4. Requisitos

ID: RF-LC6

Ttulo: Exportar lista de compras

Entidade: Sistema

Descrio: O sistema deve ser capaz de enviar a lista de compras.

Racional: De forma a permitir aplicao de guia dos clientes gerar o

percurso mais curto.

Dependncia: RF-LC1

Aplicao para os Funcionrios

ID: RF-F1

Ttulo: Autenticao

Entidade: Superfcie comercial

Descrio: Utilizador deve poder-se autenticar na aplicao (username

e password )

Racional: Por forma a ter acesso s funcionalidades de administrao.

ID: RF-F2

Ttulo: Listar produtos

Entidade: Sistema

Descrio: A aplicao deve ser capaz de listar e categorizar todos os

artigos comercializados pela superfcie comercial.

4.3. Requisitos Funcionais 57

Racional: Por forma a possibilitar aos funcionrios visualizar todos os

produtos comercializados pela superfcie comercial.

Dependncia: RF-F1

ID: RF-F3

Ttulo: Editar produtos

Entidade: Sistema

Descrio: A aplicao deve ser capaz de editar a informao dos pro-

dutos

Racional: Por forma a possibilitar aos funcionrios editar a informao

de um dado produto.

Dependncia: RF-F1,RF-F2

ID: RF-F4

Ttulo: Adicionar produtos

Entidade